东莞市盛裕绒艺玩具有限公司

东莞市盛裕绒艺玩具有限公司

乐众集团官方线路

13927313907
联系方式
全国服务热线: 13927313907

咨询热线:15527815479
联系人:潘总
地址:江苏省南京市白下区168号

FPGA Asynchronous FIFO设计思路(2)

来源:乐众集团官方线路   发布时间:2019-10-30   点击量:96

FPGA Asynchronous FIFO设计思路(2

首先讨论格雷码的编码方式:

 

 

    先看4bit的格雷码,当MSB0时,正向计数,当MSB1时,即指针已经走过一遍了,最高位翻转,此时的格雷码是反向计数,这其中整套数据以最大值(深度)为对称中心,每一个数均符合格雷码的要求,即下一个状态比上一个状态只有1bit的变化。

3bit的格雷码,在最高位反向后,即指针达到了FIFO最后一个地址,低位开始重新计数,此时存在一个问题是,在最高位跳转的地方,有两bite的数据发生变化,违背了格雷码的规律。

 

 

    以上为一种利用格雷码来产生数据指针的模型,使用格雷码来传递FIFO指针数据,那么FIFO的深度一定是pow2,以上模型中,指针ptr先通过gray to binary comb logic 模块,将格雷码转化成二进制数据,然后进行加一操作,得到bnext,然后通过binary to gray comb logic bnext转化为gnext, 然后gnext通过寄存器输出得到新的数据指针ptr.再通过gnext的最高位和次高位,计算出addrmsb.

 

    以上是第二种数据指针生成模型,首先是,数据地址即指针去掉最高位后,参与加一运算,得到新的数据地址,采用二进制的形式。

  然后加一得到的新数据地址进行格雷码转换,得到gnext的值,然后通过寄存器输出,即此模型同时输出数据指针(采用的格雷码)和数据地址值(采用二进制)。

 

 以上为FIFO的一种整体设计模型。

 

 实际操作中,空满标志位信号生成的问题

 

 具体逻辑不用多说

 

    关于空信号的生成,最高位,以及数据地址完全相等,即可以判断为空。

    关于满信号的生成即复杂一些:

 

     如果采用以前的判断依据,指针的最高位不同,剩下的数据地址完全相同,如果采用的是格雷码编码方式,就会出现问题。

 

      满信号的判断依据中指出读指针和写指针的最高两位同时不同,剩下的相同,即可以判断FIFO满。

 

, 1, 0, 9);

相关产品

COPYRIGHTS©2017 乐众集团官方线路 ALL RIGHTS RESERVED 备案号:96