上升沿的捕获电路(代码)

2019-03-25 10:45发布

一个简单的上升沿检测代码:
reg RS_r1,RS_r2;
always @ (posedge CLKIN or posedge RESET)
    if(RESET)
        RS_r1 <= 1'b0;
    else
        RS_r1 <= RS;
always @ (posedge CLKIN or posedge RESET)
    if(RESET)
        RS_r2 <= 1'b0;
    else
        RS_r2 <= RS_r1;
        
wire pos_RS = RS_r1 & ~RS_r2;

然后我们使用pos_RS来在其他模块里做判断使用,

但这种方法实际检测到的上升沿会比实际上升沿延迟2个时钟

那用下面的方法不就可以直接检测上升沿了吗?


always @ (posedge RS or posedge RESET)//直接检测RS上升沿

这两种方法有什么具体区别吗? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
figoxwm
2019-03-25 21:09

原帖由 linhaiqing60 于 2010-9-25 09:34 发表 有区别,因为rs信号不像clk那样是已知的稳定的信号,可能rs信号中有毛刺,按照楼主的第二种方法来检测,如果rs中的毛刺信号产生的话,一样会被检测到,这样就满足了always @ (posedge RS or posedge RESET)//这句里的 ...

 

同意这个说法~

一周热门 更多>