专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

DDS正弦信号发生器

作者:玉另符   来源:本站原创   点击数:  更新时间:2013年12月04日   【字体:

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

关闭窗口

相关文章