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