通用异步FIFO模块存储方法,涉及通用异步FIFO模块存储方法。它为了解决解决现有异步FIFO模块存在对于D锁存器存储结构FIFO的IP核不能够使用问题。本发明专利技术通过输入信号给FIFO模块实现复位,当清零信号为高,在任意写信号或读信号上升沿到来时,根据写地址和读地址的关系判断双口RAM是否将要写满或读空,并据此置位标志位flag,当清零信号为高时判断FIFO模块的写使能位是否为高,若是则返回程序顶部,若否则向RAM写入当前数据返回程序顶部;当清零信号为高时判断FIFO模块的读使能位是否为高,若是则返回程序顶部;若否则从RAM向外读当前数据返回程序顶部。本发明专利技术适用于电子领域。
【技术实现步骤摘要】
本专利技术涉及一种存储方法,具体涉及通用异步FIFO模块存储方法。
技术介绍
现有的异步FIFO模块都是针对RAM架构设计的,例如Altera公司设计的FIFO模块IP核,其内部的存储空间是双ロ RAM。对于FPGA,RAM以及部分CPLD,这种架构是有效和可以使用的,但是对于某些型号的CPLD,例如EPM1270系列,由于它的内部不存在RAM存储结构,而只有基于D锁存器的存储结构。因此现有的异步FIFO模块存在对于D锁存器的存储结构FIFO的IP核不能够使用的问题。
技术实现思路
本专利技术为了解决现有的异步FIFO模块存在对于D锁存器的存储结构FIFO的IP核不能够使用的问题,从而提出了通用异步FIFO模块存储方法。通用异步FIFO模块存储方法,它包括下述步骤步骤一、通过输入信号给FIFO模块实现复位,用于将FIFO模块的地址位和状态位初始化,执行步骤ニ ;步骤ニ、判断FIFO模块的清零信号是否为低,判断为是,执行步骤ー;判断为否,执行步骤三;步骤三、判断FIFO模块的输入信号是否为读信号,判断为是,执行步骤四;判断为否,执行步骤五;步骤四、判断所述读信号上升沿是否到来,判断为是,执行步骤十二和步骤六;判断为否,执行步骤ニ;步骤五、判断FIFO模块的写信号上升沿是否到来,判断为是,同时执行步骤十和步骤六;判断为否,执行步骤ニ ;步骤六、判断读地址是否等于写地址加1,判断为是,执行步骤七;判断为否,执行步骤八;步骤七、将RAM状态辅助标志位flag置1,执行步骤ニ ;步骤八、判断写地址是否等于读地址加1,判断为是,执行步骤九;判断为否,执行步骤ニ ;步骤九、将RAM状态辅助标志位flag置0,执行步骤ニ ;步骤十、判断FIFO模块的写使能位是否为高,判断为是,执行步骤ニ ;判断为否,执行步骤十一;步骤十一、向RAM写入当前数据,返回执行步骤ニ ;步骤十二、判断FIFO模块的读使能位是否为高,判断为是,执行步骤ニ ;判断为否,执行步骤十三;步骤十三、从RAM向外读当前数据,返回执行步骤ニ。本专利技术所述的通用异步FIFO模块存储方法达到了对于D锁存器的存储结构FIFO的IP核能够使用的目的,它不但能够在RAM结构下运行,也能够在基于D锁存器存储结构的PLD器件上运行,使得不同时钟域的数字电路能够进行互不干扰的有效地信息交互。附图说明图I为通用异步FIFO模块存储方法的工作流程图,图2为步骤步骤十一向RAM写入当前数据的具体步骤流程图;图3为步骤十三从RAM向外读当前数据的具体步骤流程图;图4为具体实施方式一的仿真波形图。具体实施方式·具体实施方式一、结合图I具体说明本实施方式,本实施方式所述的通用异步FIFO模块存储方法的步骤为步骤一、通过输入信号给FIFO模块实现复位,用于将FIFO模块的地址位和状态位初始化,执行步骤ニ ;步骤ニ、判断FIFO模块的清零信号是否为低,判断为是,执行步骤ー;判断为否,执行步骤三;步骤三、判断FIFO模块的输入信号是否为读信号,判断为是,执行步骤四;判断为否,执行步骤五;步骤四、判断所述读信号上升沿是否到来,判断为是,执行步骤十二和步骤六;判断为否,执行步骤ニ;步骤五、判断FIFO模块的写信号上升沿是否到来,判断为是,同时执行步骤十和步骤六;判断为否,执行步骤ニ ;步骤六、判断读地址是否等于写地址加1,判断为是,执行步骤七;判断为否,执行步骤八;步骤七、将RAM状态辅助标志位flag置1,执行步骤ニ ;flag为RAM状态辅助标志位,为I时表示RAM将要被写满,为O时表示RAM将要被读空,步骤八、判断写地址是否等于读地址加1,判断为是,执行步骤九;判断为否,执行步骤ニ ;步骤九、将RAM状态辅助标志位flag置0,执行步骤ニ ;步骤十、判断FIFO模块的写使能位是否为高,判断为是,执行步骤ニ ;判断为否,执行步骤十一;步骤十一、向RAM写入当前数据,返回执行步骤ニ ;步骤十二、判断FIFO模块的读使能位是否为高,判断为是,执行步骤ニ ;判断为否,执行步骤十三;步骤十三、从RAM向外读当前数据,返回执行步骤ニ。本实施方式本不但能够在RAM结构下运行,也能够在基于D锁存器存储结构的PLD器件上运行,使得不同时钟域的数字电路能够进行互不干扰的有效地信息交互。本实施方式可以实现任意深度的异步FIFO传输,不会发生数据错误和覆盖,当平均读速度比写速度快时,也不会发生数据丢失,可以在所有FPGA和CPLD上运行,不会受PLD器件的架构的影响,克服了 Altera公司设计的IP核不能在某些CPLD中使用的毛病。仿真结果如图4所示。具体实施方式ニ、结合图2具体说明本实施方式,本实施方式与具体实施方式一所述的通用异步FIFO模块存储方法的区别在于,步骤十一所述的向RAM写入当前数据的具体步骤为步骤十一一、判断写地址是否等于读地址,判断为是,执行步骤十一三;判断为否,执行步骤十一ニ;步骤十一ニ、向RAM写入当前数据,写地址加1,写满标志置0,执行步骤ニ ;步骤十一三、判断RAM状态辅助标志位flag是否为真,判断为是,执行步骤十五; 判断为否,执行步骤十四;步骤^^一四、写满标志置I,执行步骤ニ ;步骤i^ 一五、向RAM写入当前数据,写地址加1,写满标志置0,执行步骤ニ。具体实施方式三、结合图3具体说明本实施方式,本实施方式与具体实施方式一所述的通用异步FIFO模块存储方法的区别在于,步骤十三所述的从RAM向外读当前数据的具体步骤为步骤十三一、判断读地址是否等于写地址,判断为是,执行步骤十三ニ;判断为否,执行步骤十三三;步骤十三ニ、判断RAM状态辅助标志位flag是否为假,判断为是,执行步骤十三五;判断为否,执行步骤十三四;步骤十三三、从RAM向外读当前数据,读地址加1,读空标志置0,执行步骤ニ ;步骤十三四、读空标志置I,执行步骤ニ ;步骤十三五、从RAM向外读当前数据,读地址加1,读空标志置0,执行步骤ニ。本专利技术的原理为先给FIFO复位,将地址和状态位初始化,当清零信号为低时,系统一直处于复位状态当清零信号为高,在任意写信号或读信号上升沿到来时,根据写地址和读地址的关系判断双ロ RAM是否将要写满或读空,并据此置位标志位RAM状态辅助标志位flag,若写地址加I等于读地址,则将RAM状态辅助标志位flag置I,若写地址等于读地址加1,则将RAM状态辅助标志位flag置0,其它的情况RAM状态辅助标志位flag保持不变。当清零信号为高,写信号上升沿到来时,检查写使能位,当其为高时,返回程序顶部,重新检查清零信号,当其为低时,检查写地址和读地址的关系。当写地址不等于读地址吋,向RAM写入当前数,写地址加1,写满标志置O ;当写地址等于读地址时,根据RAM状态辅助标志位flag的真假决定是正常写数还是置位写满标志位,完成操作后返回程序顶部。当清零信号为高,读信号上升沿到来吋,检查读使能位,当其为高时,返回程序顶部,重新检查清零信号,当其为低时,检查写地址和读地址的关系。当写地址不等于读地址时,从RAM向外输出数据,读地址加1,读空标志置O ;当写地址等于读地址时,根据RAM状态辅助标志位flag的真假决定是正常读数还是置位读空标志,完成操作后返回程序顶部。权利要求1.通用异步FIFO模块存本文档来自技高网...
【技术保护点】
通用异步FIFO模块存储方法,其特征在于:它包括下述步骤:步骤一、通过输入信号给FIFO模块实现复位,用于将FIFO模块的地址位和状态位初始化,执行步骤二;步骤二、判断FIFO模块的清零信号是否为低,判断为是,执行步骤一;判断为否,执行步骤三;步骤三、判断FIFO模块的输入信号是否为读信号,判断为是,执行步骤四;判断为否,执行步骤五;步骤四、判断所述读信号上升沿是否到来,判断为是,执行步骤十二和步骤六;判断为否,执行步骤二;步骤五、判断FIFO模块的写信号上升沿是否到来,判断为是,同时执行步骤十和步骤六;判断为否,执行步骤二;步骤六、判断读地址是否等于写地址加1,判断为是,执行步骤七;判断为否,执行步骤八;步骤七、将RAM状态辅助标志位flag置1,执行步骤二;步骤八、判断写地址是否等于读地址加1,判断为是,执行步骤九;判断为否,执行步骤二;步骤九、将RAM状态辅助标志位flag置0,执行步骤二;步骤十、判断FIFO模块的写使能位是否为高,判断为是,执行步骤二;判断为否,执行步骤十一;步骤十一、向RAM写入当前数据,返回执行步骤二;步骤十二、判断FIFO模块的读使能位是否为高,判断为是,执行步骤二;判断为否,执行步骤十三;步骤十三、从RAM向外读当前数据,返回执行步骤二。...
【技术特征摘要】
【专利技术属性】
技术研发人员:吴志兵,孙光辉,于金泳,孙义勇,任雨,周世亮,卢秋刚,
申请(专利权)人:哈尔滨工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。