一些比较使用的技巧
1、如何得到一个信号的上升沿
注意:时序逻辑有打一拍的特性,组合逻辑没有。
input vsync;
reg vsync_r;
reg vsync_r2;
wire vsync_r2_n;
wire vsync_rise;always@(posedge clk)
beginvsync_r <= vsync;vsync_r2 <= vsync_r;
endassign vsync_r2_n = ~vsync_r2;
assign vsync_rise = vsync_r2_n & vsync_r;
首先,对待检测信号进行本地同步后,得到本地同步信号vsync_r。其次,将同步信号打一拍得到vsync_r2,对第二拍信号取反得到vsync_r2_n。最后与vsync_r进行与运算可得到vsync的上升沿脉冲。
2、多拍处理
(1)信号多拍处理
一个信号的多拍信号也就是将信号连续打多拍,这个操作在时序对齐和防止亚稳态的应用中。将信号打多拍是比较简单的事情,利用移位寄存器即可实现。
parameter VSYNC_WIDTH = 9;
reg vsync_async;
reg vsync_async_r1;
reg [VSYNC_WIDTH : 0] vs