名称:脉冲宽度测量电路设计Verilog代码Quartus? 睿智FPGA开发板
软件:Quartus
语言:Verilog
代码功能:
脉冲宽度测量电路,输出脉冲持续时间
(1)采用系统的1M输入时钟作为测量基准;
(2)输入高电平脉冲,异步于时钟;
(3)数码管显示当前脉冲的持续时间,可复位为0;
(4)记忆至少3个测量值,用按键回显。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在睿智FPGA开发板验证,睿智FPGA开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 仿真图
部分代码展示:
module?pulse_width( input?clk,//50MHz时钟 input?reset_n,//复位 input?pulse_key,//脉冲输入 input?callback_1,//回显1 input?callback_2,//回显2 input?callback_3,//回显3 output?[7:0]?DIG,//数码管位选 output?[7:0]?SEG//数码管段选 ); wire?pulse; wire?[31:0]?keep_time;//持续时间 //50MHz分频到1MHz clk_div?i_clk_div( .?clk_in(clk),//50MHz .?clk_1M(clk_1M)//分频得到1Mhz ); //按键消抖模块 key_jitter?i_key_jitter( .?clkin(clk_1M), .?key_in(pulse_key),//输入 .?key_value(pulse)//消抖后脉冲高电平 ); //控制模块 control?i_control( .?clk_1M(clk_1M),//1MHz .?reset_n(reset_n),//复位 .?pulse(pulse),//输入高电平脉冲 .?callback_1(callback_1),//回显1 .?callback_2(callback_2),//回显2 .?callback_3(callback_3),//回显3 .?keep_time(keep_time)//持续时间 ); //显示模块 display?i_display( .?clk(clk), .?keep_time(keep_time),//持续时间 .?DIG(DIG),//数码管位选 .?SEG(SEG)//数码管段选 ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=643
阅读全文