微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何消除输出由于不同位0,1跳变带来的中间值?

如何消除输出由于不同位0,1跳变带来的中间值?

时间:10-02 整理:3721RD 点击:
比如说一个简单的累加器,步长为1当输出从01变为10时,就会产生中间值11。除了我们常说的格雷码来消除以外,请问能从电路结构上消除吗?
PS:自己试了在输出再加一级寄存器,发现也不行。还是会出现中间值11。


能消除吗?怎样不去取这个错误的值才是重点吧!



    此乃正解,小编何不换个思路!

要看你的代码设计,为什么会在这里出现这个值?

同步设计,寄存器就过滤掉这个毛刺了呀。

   恩,这个思路不错,求详解

   你的意思是加两级寄存器吗?我试试

如果你的波形图上那个不断01翻转的信号是clock的话,
这样的中间值根本没关系啊,因为根本不会被clock采到。

   呃,这个图片是一个简单的64位计数器的时序仿真图。由于计数器采用的是二进制计数,所以会产生中间值这种毛刺。这个东西很影响设计性能的。

不可避免的,因为你们每bit走的path的延迟不可能完全一致的,
但是对于同步逻辑来说没影响啊。

普通计数器可能都会在过渡时产生这种状态,后面看怎么用,处理一下应该可以不影响电路的功能的

恩,目前我确实也没有想到什么解决方法。而且我看大部分讲格雷码的计数器的论文都有问题。都是先进行二进制计数,再进行码制转换,但这样的话其实根本就解决不了这个问题

要看你的代码设计,为什么会在这里出现这个值

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top