名称:移相信号发生器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
设计要求:根据DDS的原理,用verilog语言代码(或混合式)设计一个10位(即所用的ROM字长10位)的移相信号发生器,输出一路为基准正弦信号,另一路为移相后的正号信号,输出频率可调,给出伤真波形,下载并SignalTapll逻辑分析仪显示俩路波形。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. Signaltap设置
7. Testbench
8. 仿真图
部分代码展示:
`timescale 1ns / 1ps //DDS module DDS_top( input clk_50M,//时钟频率50MHz input [7:0]SW,//频率控制开关 output [9:0] sin_wave_1,//输出标准sin波形 output [9:0] sin_wave_2//移相后的可调频率正弦波 ); //波形 ROM 地址位数 n=10 wire [9:0] addra_1; wire [9:0] addra_2; //标准正弦波 Frequency_ctrl_1 i1_Frequency_ctrl( . clk_50M(clk_50M), . frequency(8'd1),//频率控制字=1 . addra(addra_1)//输出地址 ); //相位累加器 Frequency_ctrl_2 i2_Frequency_ctrl( . clk_50M(clk_50M), . frequency(SW),//频率控制字,值越大,输出频率越大 . addra(addra_2)//输出地址 ); //sin波ROM sin_ROM i1_sin_ROM ( .clock(clk_50M), // input wire clka .address(addra_1), // input wire [9 : 0] addra .q(sin_wave_1) // output wire [9 : 0] douta ); //sin波ROM sin_ROM i2_sin_ROM ( .clock(clk_50M), // input wire clka .address(addra_2), // input wire [9 : 0] addra .q(sin_wave_2) // output wire [9 : 0] douta ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1082
阅读全文
596