【请教】检测信号边沿
看到有人用三个寄存器也有人用两个寄存器呢
可不可以只用一个寄存器啊 除了时序上的不同,还有什么区别么? 如果不涉及到消毛刺/振铃信号的问题,一个寄存器就够了. 一个检测不准确,异步信号亚稳态较多 msq 发表于 2012-10-22 17:22 static/image/common/back.gif
一个检测不准确,异步信号亚稳态较多
那一般是不是2个就可以了 simpleh 发表于 2012-10-22 17:33 static/image/common/back.gif
那一般是不是2个就可以了
2个差不多了,3个更安全 msq 发表于 2012-10-22 18:21 static/image/common/back.gif
2个差不多了,3个更安全
那如果我想用高电平来触发某个行为的启动
assignHigh = Singal;
assignLow = !Singal;
直接这样写,也会有两个周期的延时么
simpleh 发表于 2012-10-23 10:08 static/image/common/back.gif
那如果我想用高电平来触发某个行为的启动
assignHigh = Singal;
assignLow = !Singal;
这种写法没一个周期的延迟 msq 发表于 2012-10-23 10:45 static/image/common/back.gif
这种写法没一个周期的延迟
应该是检测到信号为1时,输出一个触发信号=1
但仿真的时候,输出一个触发信号=1时,检测到的信号是为0,而两个周期前的信号才为1。
就如那个图所示。
simpleh 发表于 2012-10-23 11:17 static/image/common/back.gif
应该是检测到信号为1时,输出一个触发信号=1
但仿真的时候,输出一个触发信号=1时,检测到的信号是为0, ...
完整的代码有吗?波形信号名称注明一下 msq 发表于 2012-10-23 11:28 static/image/common/back.gif
完整的代码有吗?波形信号名称注明一下
我把这部分代码单独弄出来仿真了下,
发现电平触发那样写的确是没有延迟的。
用3个reg出现了两个延迟,2个reg出现了一个延迟。这个延迟是不是就是这个移位寄存器造成的,N个移位寄存器造成N-1个周期的延迟? msq 发表于 2012-10-23 11:28 static/image/common/back.gif
完整的代码有吗?波形信号名称注明一下
这是代码 {:smile:}{:smile:} simpleh 发表于 2012-10-23 16:34 static/image/common/back.gif
这是代码
是这样的{:smile:} 3个寄存器好. 可以防止异步信号的同步化问题. 如果signal刚好在clk的边缘跳变,则会产生毛刺. 3寄存器可以去除这种毛刺. 1寄存器会造成逻辑错误.
时钟同步化处理: 任何外来信号, 均要通过2个寄存器同步之后, 才可以进行时序逻辑处理.
qinxg 发表于 2012-10-24 09:54 static/image/common/back.gif
3个寄存器好. 可以防止异步信号的同步化问题. 如果signal刚好在clk的边缘跳变,则会产生毛刺. 3寄存器可以去 ...
谢谢您的回答。
我想请问下,是不是只有移位寄存器才会有信号延迟,普通的寄存器不会? bucuo,xuexi....
页:
[1]