可编程方波信号发生器Verilog代码Quartus仿真

名称:可编程方波信号发生器Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

1、方波信号发生器,可以控制高电平和低电平时间

2、通过输入信号M控制高电平时间

3、通过输入信号N控制低电平时间

1. 程序文件

2. Testbench文件

3. 仿真图

M控制高电平时间,n控制低电平时间

部分代码展示:

//可编程方波信号发生器
module square_gen
( 
input clk,//系统时钟50M,一个周期20ns
input rstn,//复位
input [3:0]in_m,//控制信号m
input [3:0]in_n,//控制信号n
output wave_out//输出方波
);
reg wave_buf = 0;
reg [15:0]cnt = 16'd0; 
wire [15:0]on_time ;
wire [15:0]off_time;
assign on_time = 5*in_m;//时间乘以100ns,对应5个时钟周期,即乘以5
assign off_time = 5*in_n;//时间乘以100ns,对应5个时钟周期,即乘以5
assign wave_out = wave_buf;//输出方波
always @(posedge clk)
begin
if(!rstn)
wave_buf = 0;
else if(cnt<on_time)//小于on_time输出为高电平
wave_buf = 1;
else//否则输出为低电平
wave_buf = 0;
end
always @(posedge clk)
begin
if(!rstn)
cnt <= 16'd0;
else if (cnt >= (on_time+off_time-1))//打开和关闭时间加起来就是一周期
cnt <= 16'd0;
else 
cnt <= cnt + 16'd1;//计数
end
endmodule
源代码

 扫描文章末尾的公众号二维码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值