一、首先需要一個存儲器:
Library ieee;
Use ieee.std_logic_1164.all;
entity my_dff is
Port(d:in std_logic_vector(11 downto 0);
clk:in std_logic;
Y:out std_logic_vector(11 downto 0));
end;
architecture dd of my_dff is
begin
y<=d when (clk'event and clk='1');
end;
編譯完成生成原理圖圖形符號。
二、建立一個正弦函數(shù)查表宏模塊
1. 用波形函數(shù)Guagle_wave產(chǎn)生正弦函數(shù)sin.mif文件。
1) 打開Guagle_wave軟件,在查看中設(shè)置全局參數(shù)1024、2048,......
2)在設(shè)定波形中選擇正弦波;
3)選擇另存為sin.mif文件。
2.在quartusII界面下建sinx項(xiàng)目。
1) 打開QuartusII,建立sinx項(xiàng)目
2)選擇New /Other File/Hexadecimal(Intel-Format)File ,點(diǎn)擊OK,數(shù)據(jù)寬度選擇256,即8位。
3)點(diǎn)擊Open,打開剛建立的sin.mif ,將sin.mif中的數(shù)據(jù)復(fù)制到新建.hex表格中,保存為項(xiàng)目文件代hex后綴文件
4)點(diǎn)擊Tools/MeagWiziard Plug-In Manmager
5) 在彈出的窗口中單選Create a new custon megafunction variation,點(diǎn)下一步NEXT
6)在彈出的對話框中,單選VHDL,在What name do you want for the output file下的框中,選擇項(xiàng)目路徑 和項(xiàng)目名,注意后綴.vhd
在左邊的菜單中選擇memory compiler下的ROM: 1-PORT,點(diǎn)擊Next
7)在彈出的對話框中選 8bits,xxxx words,其中xxxx要和表格一致。
單選選Auto 和Dual clock:Use separate ‘input’ and 'output' clocks,然后Next
8)在彈出對話框中,去掉‘q' output port前的對勾,即沒有對勾。點(diǎn)Next。
9)單選Yes,Use this File for memory content data.....
瀏覽選擇剛建立的代后綴hex的項(xiàng)目文件,即正弦函數(shù)函數(shù)表文件。勾選Allow In-System Memory Content...
再將框中的NONE改為ROM,點(diǎn)Next。
10)選VHDL,點(diǎn)完成。
11)再點(diǎn)擊Assignments/Settings...在彈出對話框中選Analy & Synthesis settings下的Default Parameters
在右邊的Name:中輸入CYCLONEII_SAFE_WRITE
在Deault setting:中輸入“VERIFIED_SAFE”后點(diǎn)擊ADD,然后點(diǎn)擊OK
12)編譯。
13) 編譯成功后,點(diǎn)擊OPEN,在打開窗口中選擇項(xiàng)目名稱sinx下的VHDL文件,然后生成原理圖符號。
三、建立DDS正弦項(xiàng)目
1)建立正弦項(xiàng)目,選擇 原理圖文件
2)調(diào)用加法器宏模塊
3)繪制原理圖
圖片
數(shù)字波形仿真調(diào)整步寬,可以改變頻率
四、將數(shù)字信號輸送到D/A轉(zhuǎn)換器,將數(shù)字信號轉(zhuǎn)換為正弦模擬信號即可。