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

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

软件:Quartus

语言:Verilog

代码功能:

18路方波信号发生器设计

可以独立产生18路方波信号

方波信号的频率和占空比可调


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


演示视频:

设计文档:

18路方波信号发生器设计.doc

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;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 18路方波信号发生器设计Verilog代码Quartus仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员