• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

移相信号发生器设计Verilog代码Quartus仿真

08/29 08:23
596
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240913160JO57.doc

共1个文件

名称:移相信号发生器设计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

  • 2-240913160JO57.doc
    下载

相关推荐