可编程三角波信号发生器设计Verilog代码Quartus DE1-SOC开发板
名称:可编程三角波信号发生器设计Verilog代码Quartus DE1-SOC开发板
软件:Quartus
语言:Verilog
代码功能:
可编程三角波信号发生器
可编程三角波信号发生器的上升、下降时间间隔由两个4位无符号整数控制信号m和n指定。上升持续时间和下降持续时间分别是m×100ms和n×100ms。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE1-SOC开发板验证,DE1-SOC开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图



部分代码展示:
//可编程三角波信号发生器 module square_gen ( input clk,//系统时钟50M,一个周期20ns input rstn,//复位 input [3:0]in_m,//控制信号m input [3:0]in_n,//控制信号n output [31:0] wave_out//输出三角波 ); //可编程三角波信号发生器的上升、下降时间间隔由两个4位无符号整数控制信号m和n指定。上升持续时间和下降持续时间分别是m×100ms和n×100ms。 reg add_sub = 0; reg [31:0] wave; reg [31:0]cnt = 32'd0; wire [31:0]on_time ; wire [31:0]off_time; //上板用该句 //assign on_time = 5000000*in_m;//时间乘以100ms,对应5_000_000个时钟周期,即乘以5_000_000 //assign off_time = 5000000*in_n;//时间乘以100ms,对应5_000_000个时钟周期,即乘以5_000_000 //仿真为减小耗时用该句 assign on_time = 50*in_m;//时间乘以100ms,对应5_000_000个时钟周期,即乘以5_000_000 assign off_time = 50*in_n;//时间乘以100ms,对应5_000_000个时钟周期,即乘以5_000_000 //递增或者递减标志 always @(posedge clk) begin if(!rstn) add_sub = 0; else if(cnt<on_time)//小于on_time递增 add_sub = 1;//递增 else//否则递减 add_sub = 0;//递减 end always @(posedge clk) begin if(!rstn) wave<=32'd0; else if((cnt >= on_time+off_time)) wave<=32'd0; else if(add_sub==1)////递增 wave<=wave+in_n;//上升 else if(wave>=in_m) wave<=wave-in_m;//下降 end
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 可编程三角波信号发生器设计Verilog代码Quartus DE1-SOC开发板
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 可编程三角波信号发生器设计Verilog代码Quartus DE1-SOC开发板
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm