对触发器的数值的存储,会有亚稳态的影响,亚稳态就是在时钟到来时对数据经行存取,如果此时刚好触发器的输入端产生变化,那么就会在结果锁存为一个不稳定的状态,所以需要消除亚稳态;举例子如下:
wire pose_vsync;
wire nege_vsync;
reg [2:0]vsync_r;
always@(posedge Pclk or negedge Rst_n)
if(!Rst_n)
vsync_r <= 0;
else
vsync_r <= {vsync_r[1],vsync_r[0],VSYNC};
assign pose_vsync = ( (!vsync_r[2]) &&(vsync_r[1]) )? 1'd1:1'd0;
assign nege_vsync = ( (vsync_r[2]) &&(!vsync_r[1]) )? 1'd1:1'd0;
用一个变量缓存VSYNC,就行了。