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

18路方波信号发生器设计Verilog代码Quartus仿真

3小时前
133
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2411141P459363.doc

共1个文件

名称:18路方波信号发生器设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

18路方波信号发生器设计

可以独立产生18路方波信号,方波信号的频率和占空比可调。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图(结构图)

5. Testbench

6. 仿真图

仿真图分析

以第一路为例,第一路设置频率参数为200,对应200*50Hz=10000Hz=10KHz。设置的高电平时间参数为100,对应1000ns。

下图测得方波1的周期为100000000ps=100us对应10KHz,以此频率正确

测得高电平时间为1000000ps=1000ns,因此高电平时间正确,周期与高电平时间均正确,则占空比正确

部分代码展示:

//频率50Hz到10KHz,高电平10ns~1000ns
module?signal_generator(
input?clk,//100M时钟,周期10ns
input?[7:0]set_freque,//设置方波频率(1~200)
input?[7:0]set_high,//设置高电平时间(1~100)
output?reg?square_wave//输出方波
);
//set_freque(1~200)对应频率50Hz到10KHz,乘以50
//set_high(1~100)对应高电平10ns~1000ns,乘以10
//分频参数调整
wire?[31:0]?div_parameter;//分频参数
assign?div_parameter=32'd100000000/(set_freque*8'd50);//set_freque(1~200)对应频率50Hz到10KHz
//占空比调整(设置高电平时间)
wire?[31:0]?high_parameter;//高电平参数
assign?high_parameter=(set_high*8'd10)/8'd10;//对应的100M时钟周期数
reg?[31:0]?div_cnt=32'd0;
always@(posedge?clk)
if(div_cnt>=div_parameter-1)
div_cnt<=32'd0;
else
div_cnt<=div_cnt+32'd1;//分频计数
always@(posedge?clk)
if(div_cnt<high_parameter)//设置方波高电平周期数
square_wave<=1;//高电平
else
square_wave<=0;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1362

  • 2-2411141P459363.doc
    下载

相关推荐