软件:Quartus
语言:VHDL
代码功能:
正弦波发生器:
使用quartus设计,VHDL语言设计正弦波发生器;
内部存储正弦波的ROM表,通过仿真波形可以观察到正弦波。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
ROM IP核
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; USE?ieee.std_logic_unsigned.all; --DDS ENTITY?DDS_top?IS ???PORT?( ??????clk_in??????:?IN?STD_LOGIC;--时钟 wave?????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--输出波形 ???); END?DDS_top; ARCHITECTURE?behave?OF?DDS_top?IS --例化模块 ??? --相位累加器模块 ???COMPONENT?Frequency_ctrl?IS ??????PORT?( ?????????clk_in??????:?IN?STD_LOGIC; ?????????addra????????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0) ??????); ???END?COMPONENT; --ROM表 COMPONENT?sin_ROM?IS PORT ( address:?IN?STD_LOGIC_VECTOR?(6?DOWNTO?0); clock:?IN?STD_LOGIC; q:?OUT?STD_LOGIC_VECTOR?(7?DOWNTO?0) ); END?COMPONENT; ??? ???SIGNAL?addra?:?STD_LOGIC_VECTOR(6?DOWNTO?0); BEGIN ???--sin波ROM,存储波形数据 ???i_sin_ROM?:?sin_ROM ??????PORT?MAP?( ?????????clock???=>?clk_in,--时钟 ?????????address??=>?addra,--ROM地址 ?????????q??=>?wave--输出波形 ??????);? ??? ???--相位累加器 ???i_Frequency_ctrl?:?Frequency_ctrl ??????PORT?MAP?( ?????????clk_in????=>?clk_in,--时钟 ?????????addra??????=>?addra--输出地址 ??????); ??? END?behave;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=404
阅读全文
462