软件:Quartus
语言:VHDL
代码功能:
三角波发生器:
1、使用VHDL设计三角波发生器,输出三角波;
2、可以调整波形的频率。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
DDS原理
1. 工程文件
2. 程序文件
ROM IP核
3. 程序编译
4. RTL图
5. 仿真图
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; USE?ieee.std_logic_unsigned.all; --DDS频率等于clk*N/2^13,clk为输入时钟,N为频率控制字frequency;2^13是因为ROM里面存储了8192个点,相位累加器位宽为13位 ENTITY?DDS_top?IS ???PORT?( ??????clk_in??????:?IN?STD_LOGIC;--时钟 ??????frequency????:?IN?STD_LOGIC_VECTOR(9?DOWNTO?0);--频率控制字,控制输出波形频率,值越大,频率越大 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; ?????????frequency????:?IN?STD_LOGIC_VECTOR(9?DOWNTO?0); ?????????addra????????:?OUT?STD_LOGIC_VECTOR(12?DOWNTO?0) ??????); ???END?COMPONENT; --ROM表 COMPONENT?sanjiao_ROM?IS PORT ( address:?IN?STD_LOGIC_VECTOR?(12?DOWNTO?0); clock:?IN?STD_LOGIC??:=?'1'; q:?OUT?STD_LOGIC_VECTOR?(7?DOWNTO?0) ); END?COMPONENT; ??? ???SIGNAL?addra?????????:?STD_LOGIC_VECTOR(12?DOWNTO?0); ???SIGNAL?douta_sanjiao?:?STD_LOGIC_VECTOR(7?DOWNTO?0); BEGIN ??? ???--三角波ROM,存储波形数据 ???i_sanjiao_ROM?:?sanjiao_ROM ??????PORT?MAP?( ?????????clock???=>?clk_in, ?????????address??=>?addra, ?????????q??=>?douta_sanjiao ??????); ??? ???--相位累加器 ???i_Frequency_ctrl?:?Frequency_ctrl ??????PORT?MAP?( ?????????clk_in????=>?clk_in, ?????????frequency??=>?frequency,--频率控制字 ?????????addra??????=>?addra--输出地址 ??????); ??? wave<=douta_sanjiao;--波形输出 END?behave
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=405
							阅读全文
							
						
					
								
								
								
408