如何消除输出由于不同位0,1跳变带来的中间值?
时间:10-02
整理:3721RD
点击:
比如说一个简单的累加器,步长为1当输出从01变为10时,就会产生中间值11。除了我们常说的格雷码来消除以外,请问能从电路结构上消除吗?
PS:自己试了在输出再加一级寄存器,发现也不行。还是会出现中间值11。
PS:自己试了在输出再加一级寄存器,发现也不行。还是会出现中间值11。
能消除吗?怎样不去取这个错误的值才是重点吧!
此乃正解,小编何不换个思路!
要看你的代码设计,为什么会在这里出现这个值?
同步设计,寄存器就过滤掉这个毛刺了呀。
恩,这个思路不错,求详解
你的意思是加两级寄存器吗?我试试
如果你的波形图上那个不断01翻转的信号是clock的话,
这样的中间值根本没关系啊,因为根本不会被clock采到。
呃,这个图片是一个简单的64位计数器的时序仿真图。由于计数器采用的是二进制计数,所以会产生中间值这种毛刺。这个东西很影响设计性能的。
不可避免的,因为你们每bit走的path的延迟不可能完全一致的,
但是对于同步逻辑来说没影响啊。
普通计数器可能都会在过渡时产生这种状态,后面看怎么用,处理一下应该可以不影响电路的功能的
恩,目前我确实也没有想到什么解决方法。而且我看大部分讲格雷码的计数器的论文都有问题。都是先进行二进制计数,再进行码制转换,但这样的话其实根本就解决不了这个问题
要看你的代码设计,为什么会在这里出现这个值
