本篇博主小飞和大家分享一个特别实用的脉冲转换电路,如下图1所示:
图1:实现电路图
该电路的主要功能描述为:
1)一个任意宽度(既可以大于,也可以小于触发器时钟周期)的输入正脉冲(INPUT_PULSE)经过该电路后,可以输出1路触发信号(OUTPUT_PULSE)和1路使能信号(OUTPUT_PULSE_REG)。触发信号(OUTPUT_PULSE)的上升沿和输入脉冲(INPUT_PULSE)的上升沿保持对齐(实际上相差ps级固定延迟),触发信号下降沿则和最近的下一个时钟上升沿对齐,该触发信号整体一定不大于1个CLK时钟周期。
2)该输出使能信号的宽度则是固定的1个CLK时钟周期,它可以用来作为下一级电路的使能信号。
其verilog实现的代码十分简单,如下图2所示:
用vivado仿真的结果如下图3、4所示:图3为输入脉冲上升沿出现在时钟的低电平区间,图4为输入脉冲上升沿出现在时钟的高电平区间。
从这两幅图确实可以看到:触发信号的上升沿始终和输入信号上升沿对齐、触发信号的下降沿始终和时钟信号上升沿对齐、输出使能信号始终为1个时钟周期,且其上升沿和触发信号下降沿对齐。
图3、4:vivado FPGA仿真结果