首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
数字信号在不同时钟域间同步电路的设计
来源:本站整理  作者:佚名  2011-08-23 14:45:56




    异步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在跨时钟的数据交换方面具有高效的优势,本文设计的修改后的格雷码可以节省运算量,在具体设计时,需要在编码方法、跨时钟域的信号同步等关键问题上谨慎处理。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:17,710.94000 毫秒