钟控异步fifo存储器的制作方法

文档序号:6752225阅读:223来源:国知局
专利名称:钟控异步fifo存储器的制作方法
技术领域
本发明属于电子元件技术领域,特别是一种异步先入先出FIFO存储器,用于集成 电路芯片中不同时钟域间的数据缓冲。
背景技术
现代的集成电路芯片中,随着设计规模的不断扩大, 一个系统中往往含有数个时钟。 多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路。异步FIFO是解决 这个问题一种简便、快捷的解决方案。使用异步FIFO可以在两个不同时钟系统之间快 速而方便地传输实时数据。在网络接口、图像处理等方面,异步FIFO得到了广泛的应 用。异步通用FIFO具有两个独立的读写时钟,其传输数据使用一个时钟域将数据值依 序写入FIFO缓存,再使用另一个时钟域,按照先入先出的顺序从FIFO中读出数据值, 这两个时钟域相互独立且不相同。
不管是什么类型FIFO,其关键点是产生读,写地址和空、满的标志。通常一个好的 FIFO设计,其基本要求是写满而不溢出,能读空而不多读。因此,如何正确产生FIFO 空、满标志,是异步FIFO设计成败的关键。设计FIFO存在着两大难点 一是如何同步 异步信号,消除触发器产生亚稳态的问题;二是如何正确的设计空满以及近空满等信号 的产生电路。为了避免亚稳态,通常采用以下方法①对写地址/读地址采用格雷码。 由实践可知,同步多个异步输入信号出现亚稳态的概率远远大于同步一个异步信号的概 率。对多个触发器的输出所组成的写地址/读地址可以采用格雷码。由于格雷码每次只 变化一位,采用格雷码可以有效地减少亚稳态的产生。②采用触发器来同步异步输入信 号。空满标志的产生是FIFO的核心部分。如何正确设计此部分的逻辑,直接影响到FIFO 的性能。 一般做法是采用读写地址相比较来产生空满标志。当读写地址的差值等于一个 预设值的时候,空/满信号被置位。这种实现方法逻辑简单,但它是减法器形成的一个 比较大的组合逻辑,因而限制了FIF0的速度。
典型的异步FIFO的结构如图2所示。读地址是由读时钟触发的读地址控制模块产 生,而写地址是由写时钟触发的写地址控制模块产生,要产生FIFO的空满标志,处于 不同的时钟域的读写地址必须进行比较。为了降低亚稳态的风险,二进制码读写地址需转换成格雷码,这个过程由格雷码转化模块完成。转换后的读写地址格雷码在空满信号 产生模块中通过触发器同步,同步后的读写地址格雷码再还原成二进制码进行比较,产 生空满信号。
采用上述方法实现的异步FIFO有以下缺点
1. 二进制和格雷码的互相转换增加了硬件复杂度;
2. 在对读写地址进行比较时,常采用减法运算,这也增加了硬件复杂度,同时增加 了电路的延时。

发明内容
本发明的目的在于避免上述技术的不足,提供一种钟控异步FIFO存储器,以降低 电路的复杂度,避免使用减法运算器,提高电路的速度。
为实现上述目的,本发明提供的钟控异步先入先出FIFO存储器,包括 双端口随机静态存储器SRAM,用以缓存写时钟域传送到读时钟域的数据; SRAM的写字线控制模块,用以把写时钟域的数据写入SRAM,同时将该数据的有效 标志传输给标志位模块;
SRAM的读字线控制模块,用以读出SRAM的数据至读时钟域,同时将该数据的无效 标志传输给标志位模块;
标志位模块,用以标识SRAM内每个存储空间的数据是否有效,并通过满信号和半 满信号产生模块产生满信号和半满信号,通过空信号和半空信号产生模块产生空信号和 半空信号输出到外部端口。
所述的写字线控制模块主要由第一寄存器链D1组成,每个寄存器Dli的输出通过 第- 组与门Al中的与门Ali传输给SRAM的写字线wwli, 0《i《n-l, n=SRAM的最大存 储数据的个数。
所述的读字线控制模块主要由第二寄存器链D2组成,每个寄存器D2i的输出通过 第二组与门A2中的与门A2i传输给SRAM的写字线rwli, 0《i《n-l, n=SRAM的最大存 储数据的个数。
所述的标志位模块内有n个标志位,每个标志位由一个双稳电路S,两个与门A3 和A4和三个NMOS晶体管Nl、 N2和N3电连接组成。
所述的满信号和半满信号产生模块由第五组与门A5、第六组与门A6、和第一组或 门01电连接组成。
所述的空信号和半空信号产生模块由第七组与门A7、第二组或门02和第三组或门
503电连接组成。
本发明具有以下优点
1. 本发明由于采用钟控寄存器链来选通SRAM的读写字线,同时把SRAM的每个数据的 是否有效标志直接传送给标志位模块,避免了复杂的编码转换。
2. 本发明由于将标志位的值存储在双稳电路中,使改变双稳电路的值仅仅依靠三个 函OS下拉晶体管,不存在多时钟域的问题,因而了避免了亚稳态问题。
3. 本发明由于标志位的值只需经过结构简单的组合逻辑就能产生空、满、半空和半满 信号,不需要复杂的减法逻辑单元,故降低了电路复杂度,提高了电路速度。
4. 本发明由于采用标志位的形式,不依赖比较读写时钟域的地址信号就能产生FIFO空 满及半空半满信号,避免了传统技术中地址转换成格雷码后再比较等- 系列复杂的 问题。
本发明的结构可结合附图做进一步的详细描述。


图1为传统的异步FIFO的结构图2为本发明深度为8的FIFO存储器的结构框图3为本发明深度为4的FIFO存储器的电路原理图4为本发明的写时序波形图5为本发明的读时序波形图。
具体实施例方式
参照图2,本发明主要由双端口静态随机存储器SRAM、写字线控制模块、读字线控 制模块、标志位模块、满和半满信号产生模块、空和半空信号产生模块组成。其中
所述的写字线控制模块在三个外部输入写时钟信号wclk、写使能信号wen和复位 信号rst—n的作用下,以轮询方式,依次选通SRAM的8根写字线ww10, wwll, wwl2, wwl3, wwl4, wwl5, wwl6, wwl7之一,当一根写字线被选通时,外部输入端口的数据输 入data—in上的数据被写入该写字线对应的存储空间,同时写字线模块将该存储空间的 有效标志写入标志位模块,以指示该存储空间的数据是有效的,标志位模块将一直保持 该有效标志,直到读字线控制模块将该存储空间的无效标志写入标志位模块。
所述的读字线控制模块在三个外部输入读时钟信号rclk、读使能信号ren和复位信 号rst—n的作用下,以轮询方式,依次选通SRAM的8根读字线rw10, rwll, rwl2, rwl3, rwl4, rwl5, rwl6, rwl7之一,当一根读字线被选通时,该字线对应的存储空间的数据被读出至外部输出端口的数据输出data—out,同时读字线模块将该存储空间的无效标志 写入标志位模块,以指示该存储空间的数据是无效的,标志位模块将--直保持该无效标 志,直到写字线控制模块将该存储空间的有效标志写入标志位模块。
标志位模块将SRAM存储空间的数据有效和无效信息分别输出给满信号和半满信号 产生模块以及空信号和半空信号产生模块,并由这两个模块产生外部的输出信号满信号 full、半满信号half_full、空信号e即ty和半空信号half—empty。
参照图3,本发明给出了 "个实现深度为4的异步FIFO的电路原理图,它最多能存 储4个数据。各模块的结构如下
双端口静态随机存储器SRAM,采用4X32bits的存储内核;
写字线控制模块,包含第一寄存器链D1和第一组与门Al。第一寄存器链由第一寄 存器DIO、第二寄存器Dll、第三寄存器D12和第三寄存器D13首尾相连构成,第--组 与门A1由第一与门AIO、第二与门M1、第三与门A12和第四与门A13构成。第一寄存 器D10的输出连接至第二寄存器D11的数据输入端,第二寄存器Dll的输出连接至第三 寄存器D12的数据输入端,第三寄存器D12的输出连接至第四寄存器D13的数据输入端, 第四寄存器D13的输出连接至第一寄存器D10的数据输入端。另外,外部输入写时钟信 号wclk经过非门100反相后和外部输入写使能wen信号经过与门AOO相与生成写门控 时钟信号wclk—gated。写门控时钟信号wclk—gated分别连接至第一寄存器DIO、第二 寄存器Dll、第三寄存器D12和第四寄存器D13的时钟输入端。写门控时钟信号 wclk—gated经过非门101反相后连接至锁存器L10的数据输入端,写时钟wclk信号连 接至锁存器LIO的使能端。锁存器LIO的输出和写使能wen信号经过与门A01相与生成 写字线使能信号wwlen。写字线使能信号wwlen和第一寄存器D10的输出经过第一与门 A10相与后的输出连接至SRAM的写字线輕IO,写字线使能信号wwlen和第二寄存器Dll 的输出经过与门All相与后的输出连接至SRAM的写字线wwll,写字线使能信号wwlen 和第三寄存器D12的输出经过与门A12相与后的输出连接至SR細的写字线ww12,写字 线使能信号wwlen和第四寄存器D13的输出经过与门A13相与后的输出连接至SRAM的 写字线wwl3。该写字线控制模块的工作原理是写字线控制模块受外部的写使能信号 wen控制,产生4根写字线信号来控制SRAM的写入。复位后,第一寄存器D10的输出为 "1",其余寄存器的输出都为"0"。但是此时写字线使能wwlen信号为"0",所以4根 写字线都为"0",当写使能wen信号有效并保持一个写时钟周期时,上半个写时钟周期 写字线使能wwlen信号为"1",写字线wl0将被置为高电平,其余写字线都为低电平;下半个写时钟周期写字线使能wwlen信号为"0",所有字线都为低电平,同时与门AOO 会产生一个时钟脉冲,使得第一寄存器链Dl的值移位,于是第二寄存器Dll的输出为 "1",其余寄存器都为"0"。随着写使能wen信号的有效,4根写字线将依次被置为高 电平,并循环,完成写入的功能。写字线控制模块设有两个外部输入,分别是写时钟 wclk和写使能信号wen。 SRAM设有--个外部数据输入data一in。这三个外部输入的时序 要求如图4所示,其中要求data—in上的数据在前半个时钟周期就必须稳定。写门控时 钟信号wclk—gated和写字线使能wwlen是在三个外部输入的作用下产生的内部信号, 它门之间的时序波形关系也在图4中给出。
读字线控制模块,包含第二寄存器链D2和第二组与门A2。第二寄存器链由第五寄 存器D20、第六寄存器D2K第七寄存器D22和第八寄存器D23首尾相连构成,第二组 与门A2由第五与门A20、第六与门A21、第七与门A22和第八与门A23构成。第五寄存 器D20的输出连接至第六寄存器D21的数据输入端,第六寄存器D21的输出连接至第七 寄存器D22的数据输入端,第七寄存器D22的输出连接至第八寄存器D23的数据输入端, 第八寄存器D23的输出连接至第五寄存器D20的数据输入端。另外,外部输入写时钟rclk 经过非门102反相后和外部输入写使能ren信号经过与门A02相与生成读门控时钟信号 rclk一gat.ed。读门控时钟信号rclk一gated分别连接至第五寄存器D20、第六寄存器D21、 第七寄存器D22和第八寄存器D23的时钟输入端。读使能信号ren和第五寄存器D20的 输出经过第五与门A20相与后的输出连接至SRAM的读字线rw10,读使能信号ren和第 六寄存器D21的输出经过第六与门A21相与后的输出连接至SRAM的读字线rwll,读使 能信号ren和第七寄存器D22的输出经过第七与门A22相与后的输出连接至SRAM的读 字线rwl2,读使能信号ren和第八寄存器D23的输出经过第八与门A23相与后的输出连 接至SRAM的读字线rw13。另外,读字线控制模块还包括一组32个寄存器DO, SMM的 读出数据线连接至这32个寄存器DO,读门控时钟信号rclk—gated连接至这32个寄存 器DO的时钟输入端,这32个寄存器DO的输出即为外部输出data一out。该读字线控制 模块的工作原理是读字线控制模块受外部的读使能信号ren控制,产生4根读字线信 号来控制SRAM的读出。复位后,第五寄存器D20的输出为"1",其余寄存器都为"0"。 但是此时读使能ren信号为"0",所以4根读字线都为"0",当读使能ren信号有效并 保持一个写时钟周期时,上半个读时钟周期读字线rw10将被置为高电平,其余读字线 都为低电平;下半个读时钟周期与门A02会产生一个时钟脉冲,使得在上半周期读出的 数据被一组32位的寄存器DO保存,该32位的寄存器DO的输出即为外部输出data—out,与门A02产生的时钟脉冲还使寄存器链的值移位,于是第六寄存器D21的输出为"1", 其余寄存器都为"0",在下半个读时钟周期时,读字线rwll会被置为高电平,其余读 字线为低电平,但是data—out的值已经被寄存器保存,所以不会改变。随着读使能ren 信号的有效,4根读字线将依次被置为高电平,并循环,完成读出的功能。读字线控制 模块设有两个外部输入,分别是读时钟rclk和读使能信号ren。这两个个外部输入的 时序要求如图5所示。读门控时钟信号rclk一gated是在两个外部输入的作用下产生的 内部信号,data一out是外部的数据输出端口,它门之间的时序波形关系也在图4中给出。
标志位模块,包含第三组寄存器D3、第四组寄存器D4、第三组与门A3、第四组与 门A4、第一组画晶体管Nl、第二组NM0S晶体管N2、第三组簡0S晶体管N3和一组. 双稳电路S组成。第三组寄存器D3由第九寄存器D30、第十寄存器D31、第十一寄存器 D32和第十二寄存器D33组成。第四组寄存器D4由第十三寄存器D40、第十四寄存器D41、 第十五寄存器D42和第十六寄存器D43组成。第三组与门A3由第九与门A30、第十与门 A31、第十一与门A32和第十二与门A33组成。第四组与门A4由第十三与门A40、第十 四与门A41、第十五与门A42和第十六与门A43组成。第一组NMOS晶体管Nl由第一晶 体管NIO、第二晶体管Nll、第三晶体管N12和第四晶体管N13组成。第二组NMOS晶体 管N2由第五晶体管N20、第六晶体管N21、第七晶体管N22和第八晶体管N23组成。第 三组NMOS晶体管N3由第九晶体管N30、第十晶体管N31、第十一晶体管N32和第十二 晶体管N33组成。双稳电路S由第一双稳电路SO、第二双稳电路S1、第三双稳电路S2 和第四双稳电路S3组成。
标志位模块的这些电路元件共组成了四个标志位,分别是第一标志位、第二标 志位、第三标志位和第四标志位。其中
第一标志位由第一双稳电路SO、第九与门A30、第十三与门A40、第一醒OS晶体 管NIO、第五醒OS晶体管N20和第九應OS晶体管N30组成。第一 NMOS晶体管N10的漏 端与第一双稳电路SO的反节点HO连接,第一 NMOS晶体管N10的栅端与第九与门A30 的输出端连接,第一 NMOS晶体管N10的源端与地连接。第五NMOS晶体管N20的漏端与 第一双稳电路SO的正节点f00连接,第五NMOS晶体管N20的栅端与第十三与门A40的 输出端连接,第五NMOS晶体管N20的源端与地连接。第九NMOS晶体管N30的漏端与第 一双稳电路SO的正节点f00连接,第九NMOS晶体管N30的栅端与非门103的输出连接, 第九NMOS晶体管N30的源端与地连接。第九与门A30的一个输入端与第一双稳电路SO 的反节点fl0连接,另一个输入端与是第九寄存器D30的输出端rlO连接。第十三与门A40的--个输入端与第---双稳电路SO的正节点f00连接,另一个输入端与第十三寄存器 D40的输出端r20连接。
第二标志位由第二双稳电路S1、第十与门A31、第十四与门A41、第二羅OS晶体 管Nll、第六NMOS晶体管N21和第十丽OS晶体管N31组成。第二丽OS晶体管Nil的漏 端与第二双稳电路Sl的反节点fll连接,第二 NMOS晶体管Nil的栅端与第二与门A31 的输出端连接,第二醒OS晶体管Nll的源端与地连接。第六丽OS晶体管N21的漏端与 第二双稳电路Sl的正节点f01连接,第六NMOS晶体管N21的栅端与第十四与门A41的 输出端连接,第六丽OS晶体管N21的源端与地连接。第十NMOS晶体管N31的漏端与第 二双稳电路S1的正节点f01连接,第十丽OS晶体管N31的栅端与非门103的输出连接, 第十NMOS晶体管N31的源端与地连接。第十与门A31的一个输入端与第二双稳电路Sl 的反节点fll连接,另一个输入端与第十寄存器D31的输出端rll连接。第十四与门A41 的一个输入与第二双稳电路Sl的正节点f01连接,另一个输入与第十四寄存器D41的 输出端r21连接。
第三标志位由第三双稳电路S2、第-1-一与门A32、第十五与门A42、第三NM0S晶 体管N12、第七醒0S晶体管N22和第十一 丽0S晶体管N32组成。第三NM0S晶体管N12 的漏端与第三双稳电路S2的反节点f12连接,第三NMOS晶体管N12的栅端与第十一与 门A32的输出端连接,第三丽0S晶体管N12的源端与地连接。第七NM0S晶体管N22的 漏端与第三双稳电路S2的正节点f02连接,第七NMOS晶体管N22的栅端与第十五与门 A42的输出端连接,第七丽OS晶体管N22的源端与地连接。第十一 醒OS晶体管N32的 漏端与第三双稳电路S2的正节点f02连接,第十一 NMOS晶体管N32的栅端与非门103 的输出连接,第十一 函OS晶体管N32的源端与地连接。第十一与门A32的一个输入端 与第三双稳电路S2的反节点f 12连接,另一个输入端与第十一寄存器D32的输出端r12 连接。第十五与门A42的一个输入端与第三双稳电路S2的正节点f02连接,另一个输 入端与第十五寄存器D42的输出端r22连接。
第四标志位由第四双稳电路S3、第十二与门A33、第十六与门A43、第四丽OS晶 体管N13、第八NMOS晶体管N23和第十二丽OS晶体管N33组成。第四丽OS晶体管N13 的漏端与第四双稳电路S3的反节点f13连接,第四丽OS晶体管N13的栅端与第十二与 门A33的输出端连接,第四丽OS晶体管N13的源端与地连接。第八NMOS晶体管N23的 漏端与第四双稳电路S3的正节点f03连接,第八丽OS晶体管N23的栅端与第十六与门 A43的输出端连接,第八羅OS晶体管N23的源端与地连接。第十二 NMOS晶体管N33的漏端与第四双稳电路S3的正节点f03连接,第十二醒OS晶体管N33的栅端与非门103 的输出连接,第十二丽OS晶体管N33的源端与地连接。第十二与门A33的一个输入端 与第四双稳电路S3的反节点f13连接,另一个输入端与第十二寄存器D33的输出端r13 连接。第十六与门A43的 一个输入端与第四双稳电路S3的正节点f03连接,另--个输 入端与第I '六寄存器D43的输出端r23连接。
标志位模块的工作原理是标志位模块中的四个标志位和SRAM的四个32bits的 存储空间一一对应,第一标志位指示SRAM的第一存储空间的值是否有效;第二标志位 指示SR旭的第二存储空间的值是否有效;第三标志位指示SRAM的第一存储空间的值是 否有效;第四标志位指示SRAM的第四存储空间的值是否有效。这四个标志位的工作原 理完全相同,下面以第一标志位来说明它们的工作原理复位时,第九隨0S晶体管N30 管导通,第一标志位的输出节点fOO的值为"0"。复位后,第一丽OS晶体管NIO,第五 丽OS晶体管N20,第九NMOS晶体管N30管都关闭,第一标志位的输出节点f00的值仍 为"0"。当对SRAM的第一存储空间写入数据后,第九寄存器D30的输出为"1",导致 第九与门A30的输出为"1",于是第--NMOS晶体管N10管导通,使第一标志位的输出 节点fOO的值为"1",同时第一标志位的节点flO的值为"0",于是第九与门A30的输 出立刻为"0",从而关闭了第一 NMOS晶体管NIO,此时第-- 丽OS晶体管NIO,第五画OS 晶体管N20,第九應OS晶体管N30管都关闭,第一标志位的输出节点f00的值仍为"l", 表明SRAM的第一存储空间数据有效。当对SRAM的第一存储空间读出数据后,第十三寄 存器D40的输出为"1",导致第十三与门A40的输出为"1",于是第五晶体管N20管导 通,使第一标志位的输出节点f00的值为"0",同时第一标志位的节点flO的值为"1", 于是第十三与门A40的输出立刻为"0",从而关闭了第五丽OS晶体管N20管,此时第 一丽OS晶体管NIO,第五NMOS晶体管N20,第九NMOS晶体管N30管都关闭,第一标志 位的输出节点f00的值仍为"0",表明SRAM的第一存储空间数据无效。满、半满信号产生模块,包含第五组与门A5、第六组与门A6和第一组或门01。 第五组与门A5由第十七与门A50、第十八与门A51、第十九与门A52和第二十与门A53 组成。第六组与门A6由第二十一与门A60组成。第一或门01由第一或门010、第二或 门011和第三或门012组成。第五组与门(A5)中的第i个与门A5i的两个输入分别 与标志位的输出fOi和fOj连接,且当0《i《^时,j=i + ^-l;当^〈i《n-l时,
n=SRAM的最大存储数据的个数,具体连接关系为第十七与门A50的一个输入端与第一标志位的输出节点f00连接,另--个输入端与第二标志位的输出节点f01 连接;第I八々门A51的一个输入与第二标志位的输出节点f01连接,另-个输入端与 第三标志位的输出节点f02连接;第十九与门A52的--个输入端与第三标志位的输出节 点f02连接,另一个输入端与第四标志位的输出节点f03连接;第二十与门A53的一个 输入端与第四标志位的输出节点f03连接,另一个输入端与第一标志位的输出节点f00 连接。第二十一与门A60的一个输入端与第十七与门A50的输出端连接,另一个输入端 与第十九与门A52的输出端连接。第或门010的一个输入端与第十七与门A50的输出 端连接,另--个输入端与第十八与门A51的输出端连接。第二或门011的--个输入端与 第十九与门A52的输出端连接,另一个输入端与第二十与门A53的输出连接。第三或门 012的一个输入端与第一或门010的输出端连接,另一个输入端与第二或门011的输 出端连接。第二十一与门A60的输出端就是外部输出满信号full,第三或门012的输 出端就是外部输出半满信号half—full。
空、半空信号产生模块,包含第二组或门02、第三组或门03和第七组与门A7。 第二组或门由第四或门020、第五或门021、第六或门022和第七或门023组成。第 三组或门03由第八或门030组成。第七组与门A7由第二十二与门A70、第二十三与门 A71和第二十四与门A72组成。第二组或门(02)的第i个或门(02i)的两个输入分 别与标志位的输出fOi和fOj连接,且当0《i《^时,j=i + ^-l;当^〈i《n-l时,
『SRAM的最大存储数据的个数,具体连接关系为第四或门O20的一个输
入端与第一标志位的输出节点f00连接,另一个输入端与第二标志位的输出节点f01连 接;第五或门021的一个输入端与第二标志位的输出节点f01连接,另一个输入端与第 三标志位的输出节点f02连接;第六或门022的一个输入端与第三标志位的输出节点 f02连接,另一个输入端与第四标志位的输出节点f03连接;第七或门023的一个输入 端与第四标志位的输出节点f03连接,另一个输入端与第一标志位的输出节点fOO连接。 第八或门030的一个输入端与第一或门020的输出端连接,另一个输入端与第六或门 022的输出端连接。第二十二与门A70的一个输入端与第四或门020的输出端连接,另 一个输入端与第五或门021的输出端连接。第二十三与门A71的一个输入端与第六或门 022的输出端连接,另 -个输入端与第七或门023的输出端连接。第二十四与门A72 的一个输入端与第二十二与门A70的输出端连接,另一个输入端与第二十三与门A71的 输出端连接。第二十四与门A72的输出端与非门104的输入端连接。第八或门030的输出端就是外部输出空信号empty,非门104的输出端就是外部输出半空信号half—e即ty。 满、半满信号产生模块和空、半空信号产生模块的工作原理是依据所述四个标志位 的输出f00、 f01、 f02和f03的值产生满信号full、半满信号half—full、空信号empty 和半空信号half—e即ty。满信号full、半满信号half一full、空信号e即ty和半空信号 half—empty产生逻辑表达式如下。 /"〃 = /00-/01./02-/03
,(y = /00 + /01 + /02 + /03
to//—/M〃 = (/OO /01)+ (/Ol /02)+ (/02. /03)+ (/03 ,00)
/w// _ ,~ = (/00 + /01).(/01 + /02).(/02 + /03).(/03 + /OO)
本发明的实施方式不限于以上所述的深度为4的钟控异步FIFO存储器,根据实际 需要能够制作不同深度的FIFO存储器,例如深度为8或者16的电路原理与图3所述的 原理相同,仅是增加了第一寄存器链和第二寄存器链的长度,以及增加了标志位模块中 标志位的个数。显然,任何人在了解了本发明的技术原理后能够所作出不同的电路改动, 但是这些改动均属于本发明的保护范围之内。
1权利要求
1. 一种钟控异步先入先出FIFO存储器,包括双端口随机静态存储器SRAM,用以缓存写时钟域传送到读时钟域的数据;SRAM的写字线控制模块,用以把写时钟域的数据写入SRAM,同时将该数据的有效标志传输给标志位模块;SRAM的读字线控制模块,用以读出SRAM的数据至读时钟域,同时将该数据的无效标志传输给标志位模块;标志位模块,用以标识SRAM内每个存储空间的数据是否有效,并通过满信号和半满信号产生模块产生满信号和半满信号,通过空信号和半空信号产生模块产生空信号和半空信号输出到外部端口。
2. 根据权利要求1所述的FIFO存储器,其特征在于写字线控制模块主要由第一寄存器链(Dl)组成,每个寄存器(Dli)的输出通过第一组与门(Al)中的与门(Ali)传输给SRAM的写字线(wwli), 0《i《n-1, n=SRAM的最大存储数据的个数。
3. 根据权利要求1所述的FIFO存储器,其特征在于读字线控制模块主要由第二寄存器链(D2)组成,每个寄存器(D2i)的输出通过第二组与门(A2)中的与门(A2i)传输给SR認的写字线(rwli), 0《i《n-1, n=SRAM的最大存储数据的个数。
4. 根据权利要求2或3所述的FIFO存储器,其特征在于第一寄存器链由n个寄存器(Dli)首尾相连组成,第二寄存器链由n个寄存器(D2i)首尾相连组成,0《i《n-l,n二SRAM的最大存储数据的个数。
5. 根据权利要求1所述的FIFO存储器,其特征在于标志位模块内有n个标志位,每个标志位由一个双稳电路(S)、两个与门(A3和A4)和三个NMOS晶体管(Nl、 N2、N3)电连接组成。
6. 根据权利要求5所述的FIFO存储器,其特征在于每个标志位有两个输入端和--个输出端,其中第一组输入端(rl)与第三组寄存器(D3)的输出连接,第二组输入端(r2)与第四组寄存器(D4)的输出连接;输出端(f0)分别与与门(A5)的输入端和或门(02)的输入端连接。
7. 根据权利要求5所述的FIFO存储器,其特征在于每个标志位的第一 NMOS晶体管(Nl)的栅输入端与第三组与门(A3)连接,源端和双稳电路的反节点(n)连接,漏端与地连接;第二 NM0S晶体管(N2)的栅输入端与第四组与门(A4)连接,源端与双稳电路的正节点(f0)连接,漏端与地连接;第三NM0S晶体管(N3)的栅输入端与复位信号的反信号连接,源端与双稳电路的正节点(f0)连接,漏端与地连接。
8. 根据权利要求1所述的FIFO存储器,其特征在于满信号和半满信号产生模块由第五组与门(A5)、第六组与门(A6)、和第一组或门(01)电连接组成。
9. 根据权利要求1所述的FIFO存储器,其特征在于空信号和半空信号产生模块由第七组与门(A7)、第二组或门(02)和第三组或门(03)电连接组成。
10. 根据权利要求8所述的FIFO存储器,其特征在于第五组与门(A5)的输入与标志位(S)的输出连接,第五组与门(A5)的输出连接至第一组或门(01),由第一组或门(01)得到第五组与门(A5)的输出相或的值,即半满信号;第五组与门(A5)的输出连接至第六组与门(A6),由第六组与门(A6)得到这些输出相与的值,即满信号。
11.根据权利要求10所述的FIFO存储器,其特征在于第五组与门(A5)中的第i个与门A5i的两个输入分别与标志位的输出fOi和fOj连接,且n=SRAM的最大存储数据的个数。
12. 根据权利要求9所述的FIF0存储器,其特征在于第二组或门(02)的输入与标志位模块中双稳电路的正节点(f0)连接,第二组或门(02)的输出连接至第七组与门(A7),由第七组与门(A7)得到第二组或门(02)的输出相与的值,该值由非门反相后即为半空信号;第二组或门(02)的输出连接至第三组与门(03),由第三组与门(03)得到这些输出相与的值,即空信号。
13. 根据权利要求12所述的FIFO存储器,其特征在于第二组或门(02)的第i个或门(02i)的两个输入分别与标志位的输出fOi和fOj连接,且n=SRAM的最大存储数据的个数。
全文摘要
本发明公开了一种钟控异步FIFO存储器。包括双端口随机静态存储器SRAM、写字线控制模块、读字线控制模块、标志位模块、满和半满信号产生模块以及空和半空信号产生模块。读写字线控制模块采用门控时钟触发的寄存器链来选通SRAM的读写字线以完成读写功能,同时把SRAM中每个数据的是否有效标志直接传送给标志位模块,避免了复杂的编码转换。标志位模块将标志位的值存储在双稳电路中,使双稳电路的值仅依靠三个NMOS下拉晶体管,不存在多时钟域问题,避免了亚稳态问题。标志位的值只需经过结构简单的组合逻辑就能产生空、满、半空和半满信号,无需复杂的减法逻辑单元,降低了电路复杂度,提高了电路速度。本发明用于集成电路芯片中不同时钟域间的数据缓冲。
文档编号G11C11/413GK101477833SQ20091002084
公开日2009年7月8日 申请日期2009年1月8日 优先权日2009年1月8日
发明者思 全, 史江一, 潘伟涛, 珊 蔡, 谢元斌, 跃 郝 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1