打印

verilog 检测上升沿和下降沿的一种方法

[复制链接]
11621|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
各位好,有个问题像大家请教一下,检测上升沿和下降沿的 ,当检测到上升沿时out 输出1,检测到下降沿时out 输出0,用的以下的代码,
但是用逻辑分析仪查看波形如下,out 输出1延迟了两个时钟周期20ns,请问下有没有好的代码方法让这个延迟时间短一点,测量了别人的延迟只有5ns


reg sig_in0;
reg sig_in1;

wire rising_edge;
wire falling_edge;

assign  rising_edge  = ~sig_in0 &  sig_in1;
assign  falling_edge =  sig_in0 & ~sig_in1;

always@(posedge clk) begin
      sig_in0 <= sig_in1;
      sig_in1 <= mcu_sig_3 ;
end

always @(posedge clk)  begin
       if( falling_edge_3)
           out <= 0;         
        else if(rising_edge_3)
           out <= 1;   
end

相关帖子

沙发
Backkom80| | 2013-6-21 22:33 | 只看该作者
1,加快clk时钟频率
2,对于现有的这个逻辑,输入信号直接打一拍输出,如输入信号和clk的时钟域同步,直接输出好了,无需检测。

使用特权

评论回复
板凳
GoldSunMonkey| | 2013-6-22 20:51 | 只看该作者
Backkom80 发表于 2013-6-21 22:33
1,加快clk时钟频率
2,对于现有的这个逻辑,输入信号直接打一拍输出,如输入信号和clk的时钟域同步,直接 ...

同意啊

使用特权

评论回复
地板
Backkom80| | 2013-6-22 23:43 | 只看该作者
GoldSunMonkey 发表于 2013-6-22 20:51
同意啊

:)

使用特权

评论回复
5
GoldSunMonkey| | 2013-6-23 16:39 | 只看该作者

使用特权

评论回复
6
chenkui456| | 2013-6-23 20:20 | 只看该作者
倍频CLK最好! 补丁~~~~~~~~~

使用特权

评论回复
7
卧薪又尝胆|  楼主 | 2013-6-24 10:30 | 只看该作者
Backkom80 发表于 2013-6-21 22:33
1,加快clk时钟频率
2,对于现有的这个逻辑,输入信号直接打一拍输出,如输入信号和clk的时钟域同步,直接 ...

大侠您好,用的是CPLP没有PLL不能倍频,晶振也固定,您说的第二种方法没有理解是什么意思,能否讲的更直接一点啊,我是新手,请多多包涵 谢谢了

使用特权

评论回复
8
Backkom80| | 2013-6-24 11:15 | 只看该作者
如果要检测信号为a,输出为b

不同时钟域,异步情况:
always @ ( posedge clk )
b <= a

同时钟域,同步情况:
assign b = a

使用特权

评论回复
9
Backkom80| | 2013-6-24 11:15 | 只看该作者
卧薪又尝胆 发表于 2013-6-24 10:30
大侠您好,用的是CPLP没有PLL不能倍频,晶振也固定,您说的第二种方法没有理解是什么意思,能否讲的更直 ...


如果要检测信号为a,输出为b

不同时钟域,异步情况:
always @ ( posedge clk )
b <= a

同时钟域,同步情况:
assign b = a

使用特权

评论回复
10
xdh嘎嘎嘎、| | 2014-12-2 22:10 | 只看该作者
你好,你这个原理能讲一下么

使用特权

评论回复
11
ar_dong| | 2014-12-9 20:11 | 只看该作者
看输入信号是同步的还是异步的
如果异步的话就不要追求时间了
先用时钟打几拍之后再用,要不会有亚稳态的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

92

帖子

1

粉丝