一种先入先出存储器及其读写地址的调整方法技术

技术编号:3084236 阅读:247 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种先入先出存储器,其特征在于,空满标志产生逻辑进一步接收写地址产生逻辑生成的写地址和读地址产生逻辑生成的读地址;并将接收的写地址和读地址与已使用单元进行比较,在状态出现异常时生成状态调整信号,分别输出给写地址产生逻辑和读地址产生逻辑,对先入先出存储器进行初始化。本发明专利技术同时公开了一种先入先出存储器读写地址的调整方法,在空满标志产生逻辑中判断等式W_addr=(Usedw+R_addr)modN是否成立,对FIFO的状态实时进行检测;如果等式不成立,则生成一个状态调整信号,在不破坏系统正常运行的前提下,自动在短时间内迅速对FIFO的状态进行纠正,保证系统出现异常情况后能及时自愈。

【技术实现步骤摘要】

本专利技术涉及通用缓冲存储器领域,特别涉及。
技术介绍
先入先出存储器(FIFO)是数字逻辑设计中常用的一种通用缓冲存储器,其写入和读出遵循先入先出的基本原则。FIFO是利用了一个双端口随机存储器(RAM)作为存储单元,再加上一个控制逻辑单元实现的。控制逻辑单元由读写允许产生逻辑、读写地址产生逻辑和一个空满标志产生逻辑组成。当RAM中数据没有存满,并且有数据要求写入时,FIFO将写入一个单元的数据;当RAM中保存的有数据,并且有数据读出的请求时,FIFO将读出一个单元的数据。在系统正常运行的情况下,表示FIFO中已使用数据单元数目的参数已使用单元Usedw,与写地址W_addr和读地址R_addr之间应满足一个固定的关系W_addr=(Usedw+R_addr)mod N,其中N为RAM的缓冲深度,mod N表示模N,即读写地址的取值是在0至N-1的范围内循环的。例如当N等于8时,如果读写地址的值为7,此时若再加1,读写地址的值就又变成0。在本专利技术中提到的读写地址的加1,都是基于模N的。如图1所示,图1为现有技术中FIFO的结构框图。现有技术中的FIFO包括空满标志产生逻辑101、写允许产生逻辑102、写地址产生逻辑103、双端口随机存储器104、读地址产生逻辑105和读允许产生逻辑106。空满标志产生逻辑101接收读写允许产生逻辑106和102输出的读写允许信号,生成已使用单元和空满标志信号,已使用单元被输出到存储器的外部,满标志信号被输出给写允许产生逻辑102,空标志信号被输出给读允许产生逻辑106。写允许产生逻辑102接收外部的写申请信号,生成写允许信号分别输出给空满标志产生逻辑101、写地址产生逻辑103和双端口随机存储器104。写地址产生逻辑103将写地址输出给双端口随机存储器104,根据该地址将数据单元写入双端口随机存储器104。读允许产生逻辑106接收外部的读申请信号,生成读允许信号分别输出给空满标志产生逻辑101、读地址产生逻辑105和双端口随机存储器104。读地址产生逻辑105将读地址输出给双端口随机存储器104,根据该地址从双端口随机存储器104将数据单元读出。当有一个写申请Wrreq到达写允许产生逻辑102时,写允许产生逻辑102判断空满标志产生逻辑101是否发送过来一个满标志Full,若空满标志产生逻辑101没有发送满标志Full,则写允许产生逻辑102就生成一个写允许信号W_allow。写允许信号W_allow被分别发送给双端口随机存储器104、写地址产生逻辑103和空满标志产生逻辑101,在双端口随机存储器104中有一个数据单元被写入,写地址产生逻辑103中的写地址W_addr加1,同时在空满标志产生逻辑101中的已使用单元Usedw加1。写地址W_addr被输出给双端口随机存储器104,已使用单元Usedw被输出到FIFO的外部。当有一个读申请Rdreq到达读允许产生逻辑106时,读允许产生逻辑106判断空满标志产生逻辑101是否发送过来一个空标志Empty,若空满标志产生逻辑101没有发送空标志Empty,则读允许产生逻辑106就生成一个读允许信号R_allow。读允许信号R_allow被分别发送给双端口随机存储器104、读地址产生逻辑105和空满标志产生逻辑101,在双端口随机存储器104中有一个数据单元被读出,读地址产生逻辑105中的读地址R_addr加1,同时在空满标志产生逻辑101中的已使用单元Usedw减1。读地址R_addr被输出给双端口随机存储器104,已使用单元Usedw被输出到FIFO的外部。其中,图1中空满标志产生逻辑101的结构如图2所示,图2为现有技术中FIFO的空满标志产生逻辑结构框图。空满标志产生逻辑是由一个计数器201和一个比较器202连接而成的,其工作原理如下读写允许产生逻辑106和102生成的读写允许信号R_allow和W_allow,在计数器201中驱动Usedw的计数在同一时刻,只有W_allow脉冲到来,而无R_allow脉冲到来,则Usedw加1;只有R_allow脉冲到来,而无W_allow脉冲到来,则Usedw减1;如果W_allow脉冲和R_allow脉冲同时到来或同时都没有到来,则Usedw都不变。在计数器201中生成的已使用单元Usedw被输出给比较器202,同时也被空满标志产生逻辑输出到FIFO的外部。在比较器202中,已使用单元Usedw与比较器202中预先设定的满值进行比较,如果Usedw等于预先设定的满值,则生成满标志Full,输出给写允许产生逻辑102;如果Usedw等于0,则生成空标志Empty,输出给读允许产生逻辑106。在上述系统正常运行的过程中,FIFO对读写地址R_addr和W_addr的调整,只是参考了读写允许信号R_allow和W_allow,即只是参考了FIFO的空满标志以及外部的读写申请信号Rdreq和Wrreq,而没能实时地参考非常重要的、实际上能够实时反映写地址与读地址差值的参数Usedw。在实际应用中,经常会遇到时钟抖动或者电磁辐射等异常干扰,这些干扰有可能造成FIFO内部的状态异常,而且有可能不可恢复。如果FIFO发生异常情况,可能会出现Usedw不能真实反映FIFO中已使用数据单元数目的现象,此时等式W_addr=(Usedw+R_addr)mod N不成立。例如当一个数据单元被写入并未被读出,而此时Usedw已经变为0,表示FIFO已经空了,那么这时即使有FIFO的读申请信号Rdreq输入,该数据也不会被读出,FIFO的写入和读出双方状态出现不一致,从而造成整个系统状态的紊乱。
技术实现思路
有鉴于此,本专利技术的一个目的在于提供一种先入先出存储器,使FIFO能够实时对自身的状态进行检测和纠正。本专利技术的另一个目的在于提供一种先入先出存储器读写地址的调整方法,使FIFO能够自动在短时间内迅速对自身的状态进行检测和纠正。为达到上述的一个目的,本专利技术提供了一种先入先出存储器,包括空满标志产生逻辑、写允许产生逻辑、写地址产生逻辑、双端口随机存储器、读地址产生逻辑和读允许产生逻辑;其中,空满标志产生逻辑接收读写允许产生逻辑输出的读写允许信号,生成已使用单元和空满标志信号,已使用单元被输出到存储器的外部,满标志信号被输出给写允许产生逻辑,空标志信号被输出给读允许产生逻辑;写允许产生逻辑接收外部的写申请信号,生成写允许信号分别输出给空满标志产生逻辑、写地址产生逻辑和双端口随机存储器;写地址产生逻辑将写地址输出给双端口随机存储器,根据该地址将数据单元写入双端口随机存储器;读允许产生逻辑接收外部的读申请信号,生成读允许信号分别输出给空满标志产生逻辑、读地址产生逻辑和双端口随机存储器;读地址产生逻辑将读地址输出给双端口随机存储器,根据该地址从双端口随机存储器将数据单元读出;关键在于所述的空满标志产生逻辑进一步接收写地址产生逻辑生成的写地址和读地址产生逻辑生成的读地址;并将接收的写地址和读地址与已使用单元进行比较,在状态出现异常时生成状态调整信号,分别输出给写地址产生逻辑和读地址产生逻辑,对先入先出存储器进行初始化。上述方案中,所述的空满标志产生逻辑包括计数器和比较器;所述的计数器接收读写允许产本文档来自技高网
...

【技术保护点】
一种先入先出存储器,包括:空满标志产生逻辑、写允许产生逻辑、写地址产生逻辑、双端口随机存储器、读地址产生逻辑和读允许产生逻辑;空满标志产生逻辑接收读写允许产生逻辑输出的读写允许信号,生成已使用单元和空满标志信号,已使用单元被输出到存 储器的外部,满标志信号被输出给写允许产生逻辑,空标志信号被输出给读允许产生逻辑;写允许产生逻辑接收外部的写申请信号,生成写允许信号分别输出给空满标志产生逻辑、写地址产生逻辑和双端口随机存储器;写地址产生逻辑将写地址输出给双端 口随机存储器,根据该地址将数据单元写入双端口随机存储器;读允许产生逻辑接收外部的读申请信号,生成读允许信号分别输出给空满标志产生逻辑、读地址产生逻辑和双端口随机存储器;读地址产生逻辑将读地址输出给双端口随机存储器,根据该地址 从双端口随机存储器将数据单元读出;其特征在于:所述的空满标志产生逻辑进一步接收写地址产生逻辑生成的写地址和读地址产生逻辑生成的读地址;并将接收的写地址和读地址与已使用单元进行比较,在状态出现异常时生成状态调整信号,分别输出给写地址产 生逻辑和读地址产生逻辑,对先入先出存储器进行初始化。...

【技术特征摘要】
1.一种先入先出存储器,包括空满标志产生逻辑、写允许产生逻辑、写地址产生逻辑、双端口随机存储器、读地址产生逻辑和读允许产生逻辑;空满标志产生逻辑接收读写允许产生逻辑输出的读写允许信号,生成已使用单元和空满标志信号,已使用单元被输出到存储器的外部,满标志信号被输出给写允许产生逻辑,空标志信号被输出给读允许产生逻辑;写允许产生逻辑接收外部的写申请信号,生成写允许信号分别输出给空满标志产生逻辑、写地址产生逻辑和双端口随机存储器;写地址产生逻辑将写地址输出给双端口随机存储器,根据该地址将数据单元写入双端口随机存储器;读允许产生逻辑接收外部的读申请信号,生成读允许信号分别输出给空满标志产生逻辑、读地址产生逻辑和双端口随机存储器;读地址产生逻辑将读地址输出给双端口随机存储器,根据该地址从双端口随机存储器将数据单元读出;其特征在于所述的空满标志产生逻辑进一步接收写地址产生逻辑生成的写地址和读地址产生逻辑生成的读地址;并将接收的写地址和读地址与已使用单元进行比较,在状态出现异常时生成状态调整信号,分别输出给写地址产生逻辑和读地址产生逻辑,对先入先出存储器进行初始化。2.根据权利要求1所述的先入先出存储器,其特征在于,所述的空满标志产生逻辑包括计数器和比较器;所述的计数器接收读写允许产生逻辑输出的读写允许信号,生成已使用单元,并将已使用单元输出给存储器的外部和比较器;所述的比较器接收写地址产...

【专利技术属性】
技术研发人员:胡建凯
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1