一种无读取延迟的先进先出存储器的制作方法

文档序号:6759806阅读:186来源:国知局
专利名称:一种无读取延迟的先进先出存储器的制作方法
技术领域
本发明属于芯片设计领域,尤其涉及一种先进现出存储器(FIFO)。
背景技术
先进先出(First In First Out,FIFO)在专用集成电路(Application SpecificIntegrated Circuit,ASIC)和现场可编程逻辑阵列(Field Programmable GateArray,FPGA)设计中通常被理解为一种先入先出数据缓冲存储器。FIFO的工作特点是先从FIFO写入端口写入的数据,在FIFO读出端口被首先读出。在芯片设计领域,特别是进行数据通讯、无线通讯以及图像处理等领域的芯片设计时,通常利用FIFO的这个特性作为芯片内部的数据缓存,前一个模块将处理完毕的数据写入FIFO,后一个模块从FIFO的非空状态得知有数据写入FIFO后将数据从FIFO中读出进行处理。
图1示出了FIFO的典型结构,包括一个双端口存储器(RAM)12、一个状态产生单元(Status)14、一个写地址指针控制单元(WrPtr)16以及一个读地址指针控制单元(RdPtr)18。双端口存储器12作为数据缓存单元。状态产生单元14用于产生FIFO的空满状态。写地址指针控制单元16和读地址指针控制单元18分别用于控制FIFO写入和读出端口的地址。其中,ADDRA/B为RAM的写地址A/B端口,WEA/B为RAM的写使能A/B端口,DINA/B为RAM的写数据A/B端口,DOUTA/B为RAM的读数据A/B端口,CLKA/B为RAM的时钟A/B端口。AddEnb为写地址指针控制单元16和读地址指针控制单元18的使能端口,Clk为写地址指针控制单元16和读地址指针控制单元18的时钟信号端口。当写使能信号(Wenb)有效时,写地址指针控制单元16根据写时钟信号(WrClk)产生地址(Addr)给双端口存储器12和状态产生单元14,双端口存储器12根据写使能信号和写时钟信号同步存储外部写入的数据(Wdat)。当读地址使能信号(Renb)有效时,读地址指针控制单元18在读时钟信号(RdClk)的控制下产生双端口存储器12的地址,并将产生的地址输入至状态产生单元14,双端口存储器12在读时钟信号(RdClk)的控制下同步向外部输出数据。状态产生单元14根据写地址指针控制单元16和读地址指针控制单元18输入的地址,指示FIFO处于近满状态(AlFull)、满状态(Full),还是近空状态(AlEmpty)、空状态(Empty)。
读地址指针控制单元18通常由一个地址指针计数器1801构成,如图2所示。CE为地址指针计数器1801的使能端口,Clk为地址指针计数器1801的时钟信号端口,Q为地址指针计数器1801的地址(Addr)输出端口。当FIFO的读使能信号有效时,地址指针计数器1801加1。然而,由于双端口存储器12读取数据时具有读取延迟效应,即当双端口存储器12地址总线上地址有效后,下一个时钟周期数据总线上的数据才有效。如图3所示,当地址总线上为地址A0时,下一个时钟周期数据总线上才出现数据D0。因此,根据双端口存储器12读数据时序和读地址指针控制单元18的结构,可得到通常FIFO的读数据时序如图4所示。可以看到通常FIFO读数据时有读取延迟效应,当读使能信号Renb有效后,延迟一个时钟周期,数据总线上才连续出现有效的数据。这种FIFO为有读取延迟的FIFO。
在芯片设计过程中,经常需要在FIFO读端口发起一次读请求后(读使能信号置为高电平),立刻根据从FIFO中读出的数据进行处理分析,从而判断是否需要发起下一次读请求。如果采用有延迟的FIFO,将需要在发起一次读请求后,停止发起读请求,等待一个时钟周期,从读出数据总线上得到有效数据处理分析后,再发起下一次读请求。这样,每次需要根据读出数据判断是否发起下一次读请求时,都要等待一个时钟周期,浪费了FIFO读出端口的带宽,而且使得对FIFO的读出处理操作更加复杂。

发明内容
本发明的目的在于提供了一种先进先出存储器,旨在解决现有技术中有延迟效应的FIFO中,在根据读出数据判断是否发起下一次读请求时,要等待一个时钟周期,浪费了FIFO读出端口的带宽,而且使得对FIFO的读出处理操作更加复杂的问题。
本发明是这样实现的,一种无读取延迟的先进先出存储器,包括一个双端口存储器和一个读地址指针控制单元,当读使能信号有效时,读地址指针控制单元在时钟信号的控制下产生双端口存储器的地址,双端口存储器同步向外部输出所述地址对应的数据,所述读地址指针控制单元包括一个地址指针计数器,一个地址指针加1计数器,以及一个选通器;所述地址指针加1计数器的计数值为所述地址指针计数器的计数值加1;所述地址指针计数器和地址指针加1计数器通过所述选通器后将产生的地址输出;当读使能信号为高电平时,所述选通器选通所述地址指针计数器将产生的地址输出,当读使能信号为低电平时,所述选通器选通所述地址指针加1计数器将产生的地址输出。
本发明通过对FIFO读地址指针控制单元进行改进,消除了从FIFO读数据的读取延迟效应,使得在FIFO读端口发起读请求后,不必等待一个时钟周期就可在读出数据总线上得到有效数据,从而充分提高了FIFO读端口的带宽利用率,并简化了对FIFO的读出操作。


图1是现有技术中FIFO的结构图;图2是现有技术中有读取延迟的FIFO中读地址指针控制单元的结构图;图3是现有技术中有读取延迟的RAM的读数据时序图;图4是现有技术中有读取延迟的FIFO的读数据时序图。
图5是本发明提供的无读取延迟的FIFO中读地址指针控制单元的结构图;
图6是本发明中无读取延迟的FIFO的读数据时序图。
图7是无读取延迟的FIFO配合空信号和近空信号读数据时序图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图5示出了本发明提供的读地址指针控制单元的结构,在现有结构的基础上增加了一个地址指针加1计数器1802(CounterPlus1),地址指针加1计数器1802的计数值为地址指针计数器1801的计数值加1。地址指针计数器1801和地址指针加1计数器1802通过选通器1803后将地址输出。当读使能信号为高电平时,选通器1803选通地址指针加1计数器1802将地址输出;当读使能信号为低电平时,选通器1803选通地址指针计数器1801将地址输出。此时读使能信号有效时,读取数据总线上的数据同时有效,从而满足了读取无延迟的目的,提高了FIFO读端口的带宽利用率,相应的时序图如图6、图7所示。
参见图1,在本发明中,FIFO对于读端口除了提供空信号(Empty)表示FIFO内无数据,还提供近空信号(AlEmpty)。如果近空信号为低电平,表示FIFO内至少有一个数据,FIFO配合空信号和近空信号可以进一步提高FIFO读端口效率。如果前一个时钟周期FIFO读请求无效,即Renb为低电平,此时只关注FIFO空信号(Empty)。当FIFO空信号为低电平,则FIFO中有至少一个数据,可发起读请求;当FIFO空信号为高电平,则不可以发读请求。如果前一个时钟周期FIFO读请求有效,即Renb为高电平,此时只关注FIFO近空信号(AlEmpty)。当FIFO近空信号为低电平,则FIFO中至少有两个数据,可继续发起读请求;当FIFO近空信号为高电平,则不可以继续发读请求。这样就可以及时地从FIFO中读取数据,进一步提高FIFO读端口的数据读取效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种无读取延迟的先进先出存储器,包括一个双端口存储器和一个读地址指针控制单元,当读使能信号有效时,读地址指针控制单元在时钟信号的控制下产生双端口存储器的地址,双端口存储器同步向外部输出所述地址对应的数据,其特征在于,所述读地址指针控制单元包括一个地址指针计数器,一个地址指针加1计数器,以及一个选通器;所述地址指针加1计数器的计数值为所述地址指针计数器的计数值加1;所述地址指针计数器和地址指针加1计数器通过所述选通器后将产生的地址输出;当读使能信号为高电平时,所述选通器选通所述地址指针计数器将产生的地址输出,当读使能信号为低电平时,所述选通器选通所述地址指针加1计数器将产生的地址输出。
全文摘要
本发明适用于芯片设计领域,提供了一种无读取延迟的先进先出存储器,包括一个双端口存储器和一个读地址指针控制单元,当读使能信号有效时,读地址指针控制单元在时钟信号的控制下产生双端口存储器的地址,双端口存储器同步向外部输出所述地址对应的数据,所述读地址指针控制单元包括一个地址指针计数器,一个地址指针加1计数器,以及一个选通器。本发明通过对FIFO读地址指针控制单元进行改进,消除了从FIFO读数据的读取延迟效应,使得在FIFO读端口发起读请求后,不必等待一个时钟周期就可在读出数据总线上得到有效数据,从而充分提高了FIFO读端口的带宽利用率,并简化了对FIFO的读出操作。
文档编号G11C7/22GK101079313SQ20061006076
公开日2007年11月28日 申请日期2006年5月25日 优先权日2006年5月25日
发明者王峻, 邓子星, 李 浩 申请人:李 浩
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1