一、首先需要一个存储器:
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转换器,将数字信号转换为正弦模拟信号即可。