FPGA的边沿检测
AI summary
FPGA的边沿检测需要使用高频时钟对信号进行采样,确保时钟频率至少是信号最高频率的两倍。文中提供了两种Verilog代码实现上升沿和下降沿检测的方式,并展示了RTL视图和仿真结果,强调了使用D触发器和信号FIFO的实现方法。
Tags
FPGA Edge Detection
Verilog Implementation
Signal Sampling
Last edited by
Last edited time
Sep 23, 2024 02:29 PM
以前我曾一度傻乎乎的使用
这样的代码去检测signal的上升沿,闹出了很多问题。
当受实验室的一同学指教后,再也不会傻乎乎的这样干了。当然,你看完下文也不会这样干了。
检测上升沿的原理:使用高频的时钟对信号进行采样,因此要实现上升沿检测,时钟频率至少要在信号最高频率的2倍以上,否则就可能出现漏检测。具体请参见下面代码。
使用Quartus II综合布线之后的RTL视图如下:

从RTL视图中可以看出,电路是通过一个异步复位的D触发器实现的。
ModelSim的仿真视图如下,从中可看出已检测出上升和下降沿,但存在一个延时,这是因为使用了时钟同步的检测。

或者上面的Verilog代码还可以换一种写法,效率上差不了太多;
生成的RTL视图为

Loading...