新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 数字信号在不同时钟域间同步电路的设计

数字信号在不同时钟域间同步电路的设计

作者:时间:2011-08-22来源:网络收藏

异步FIFO的主要有两个难点,一是如何实现两种异步化问题以及如何消除由此产生的压稳态,二是如何正确的判断存储器空和满的状态。
为了提高FIFO的利用率,本文把FIFO组织成环形队列的形式。写指针始终指向下一个要写的字,读指针始终指向下一个要读的字。为了方便判断双端口存储器的空满/状态,给读写指针的最高位增加一个冗余位,把读写指针定义为[log2N:0],只有后log2N位是存储器地址。当FIFO第一次被完全写满的时候,写指针的值为N,而不是全零,所以可以根据读写指针方便的判断存储器的空满。当读写地址的存储器地址和冗余位都相等时,说明读指针追赶上写指针,即可认为FIFO为空:当存储器地址相等而冗余位不相等,即可认为FIFO是满的。
在异步FIFO的中,读写指针是在域里面产生的,只有到一个域里才能进行比较。然而,把一个二进制计数器到另外一个域里会面临很大的困难。这是因为自然二进制计数器的序列中一半的加1操作需要两个或者更多的计数器位的翻转。由于的固有延迟等原因,这些数据位的翻转不一定同时进行,那么就有可能在时钟域之间造成同步出错,从而导致读写指针的比较结果出错。
2.2 用格雷码实现读写指针
有效的解决指针跨时钟域传递的一个方法是格雷码技术,格雷码的特点是相邻的两个编码之间只有1位,消除了在同一个时钟沿多位编码同时变化所带来的问题。格雷码由二进制自然码右移一位后与原二进制码进行异或操作得到,运算关系为:
d.JPG
其中,N为n+1位二进制自然码,G为n+1位格雷码。
格雷码到二进制码的转变关系为:
e.JPG
其中,N[m]为二进制码的第m位,G[m]为格雷码的第m位。
格雷码和自然码的对应关系示例如图4所示,可以看出,直接采用格雷码进行空满判断有些不方便,n+1位格雷码的上下半区是一个对称的结构,因为当写指针追赶上读指针时,读写指针的G[n-1:0]并不相等,无法进行满判断。本文采用修改后的编码,如图4所示,修改后的格雷码MG[n-1:0]上下半区是一个相等的结构,修改后的编码只有第n-1位和格雷码不同,第n-1位按如下方式产生:
f.JPG
其中,MG[n-1]为格雷码的第n位,MG[n-1]为修改后的编码的第n-1位。
需要注意的是,修改后的编码最坏情况下,相邻的两个编码有两位不同,因此在跨时钟域的时候仍然采用格雷码,只有在跨时钟域结束后,进行空满判断的时候才对格雷码作修改。采用修改后的格雷码进行空满判断,比将格雷码转换到自然二进制进行判断节省运算量。例如,n+1位的格雷码转换到自然二进制码时,需要(n2+n)/2次异或操作,而转换为修改后的格雷码,只需n+1次异或操作,节省(n2-n-2)/2次异或操作(n>1)。

3 结束语
在不同时钟域之间的转换是复杂中不可缺少的一部分,直接锁存法和锁存反馈法可处理控制的同步,异步FIFO在跨时钟的数据交换方面具有高效的优势,本文设计的修改后的格雷码可以节省运算量,在具体设计时,需要在编码方法、跨时钟域的信号同步等关键问题上谨慎处理。

本文引用地址:http://www.eepw.com.cn/article/178712.htm

DIY机械键盘相关社区:机械键盘DIY



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭