一种实现预读式FIFO的方法和预读式FIFO技术,超级预读专利

您所在的位置:网站首页 系统预读和超级预读 一种实现预读式FIFO的方法和预读式FIFO技术,超级预读专利

一种实现预读式FIFO的方法和预读式FIFO技术,超级预读专利

2024-07-11 12:35| 来源: 网络整理| 查看: 265

本发明专利技术提供了一种实现预读式先入先出存储器(FIFO)的方法和预读式FIFO,其中,输出寄存器的设置使得原来由RAM输出和后续用户逻辑单元的操作构成的关键路径被打破,输出通过单独的寄存器完成,输出延迟减小,从而使预读式FIFO更好地满足时序要求。另外,使能控制器在确定RAM为非空状态且输出寄存器为空状态,或者接收到读请求时,使输入FIFO控制器的读信号有效,并使能输出寄存器输出数据;否则,使输出FIFO控制器的读信号无效,并锁存输出寄存器,通过该方式,使能控制器能够保证在增加一级寄存器的基础上,仍能够保证预读方式的准确实现。

全部详细技术资料下载

【技术实现步骤摘要】 本专利技术涉及存储器技术,特别涉及一种实现预读式FIFO的方法和预读式FIFO。 技术介绍在现场可编程门阵列(FPGA)设计中,先入先出寄存器(FIFO)是最常用的功能模 块之一,按照对接口时序要求的不同,FIFO可以分为预读式FIFO和非预读式FIFO两种,其 中,预读式FIFO能够提高后级模块的处理效率,因此在高速设计中经常使用。预读式FIFO与非预读式FIFO的区别主要在于预读式FIFO中,在有数据的情 况下,数据已经准备在总线上,即用户在发起读请求之前数据已经有效,当用户发起读请求 后,能够在当前时钟周期读出数据,而非预读式FIFO需要在下一时钟周期读出数据。其中, 预读式FIFO的读时序图如图1所示,其中,rdclk为读时钟,empty为FIFO空信号,rd为用 户读请求的读信号,rdata为FIFO读出的数据。从时序图可以看出,在FIFO有数据的情况 下,数据已经准备在总线上;当用户发起读请求后,能够在当前时钟周期立即读出数据0, 并在后续时钟周期依次读出数据1和数据2。为了更清楚地说明预读式FIFO,参见图2所示的预读式FIFO的逻辑结构,主要包 括FIFO控制器、输入寄存器和随机存储器(RAM),其中,输入寄存器和RAM同属于RAM硬 核中的存储资源。FIFO控制器用于完成对读地址(rcLaddr)、写地址(Wr_addr)、空信号 (empty)和满信号(full)的管理。FIFO控制器通过输入寄存器设置RAM的rd_addr指向 当前数据的地址(非预读式FIFO中rcLaddr指向读取的上一数据的地址),也就是说,当 RAM内有数据时,输出FIFO控制器将RAM的读地址预先加1,将数据准备好。当接收到用户 的读请求,即读信号(rd)有效时,能够立即在当前时钟周期从RAM读取当前数据,即rdata 输出当前数据。然而,在上述过程中,RAM的输出到后续用户逻辑单元在一个时钟周期内执行,这 显然对RAM的逻辑时序影响较大,其中,RAM输出所带来的时延影响较为突出,特别是在诸 如时钟频率较高、逻辑利用率较高或者后级组合逻辑处理复杂等对时序要求较高的场合, 现有预读式FIFO往往不能满足时序要求。技术实现思路有鉴于此,本专利技术提供了一种实现预读式FIFO的方法和预读式FIFO,以便于使预 读式FIFO更好的满足时序要求。一种预读式先入先出寄存器FIFO,该FIFO包括FIFO控制器、输入寄存器和随机存 储器RAM ;还包括输出寄存器和使能控制器,且所述输出寄存器、输入寄存器和RAM均属于 RAM硬核中的存储资源;所述使能控制器,用于确定所述RAM为非空状态且所述输出寄存器为空状态,或 者接收到读请求时,使输入所述FIFO控制器的读信号有效,并使能所述输出寄存器输出数 据;否则,使输入所述FIFO控制器的读信号无效,并锁存所述输出寄存器;所述FIFO控制器,用于没有收到有效的读信号时,通过所述输入寄存器设置所述 RAM的读地址指向RAM中当前待读取的数据;收到有效的读信号时,通过所述输入寄存器设 置所述RAM的读地址指向RAM中下一待读取的数据;所述RAM,用于按照读时钟和被设置的读地址,以先入先出的方式输出被写入的数 据给所述输出寄存器;所述输出寄存器,用于在被使能时,按照读时钟输出寄存的数据。一种实现预读式FIFO的方法,在包含FIFO控制器、输入寄存器和RAM的FIFO中 增设输出寄存器和使能控制器,其中,所述输出寄存器、输入寄存器和RAM均属于RAM硬核 中的存储资源;所述使能控制器确定所述RAM为非空状态且所述输出寄存器为空状态,或者接收 到读请求时,使输入所述FIFO控制器的读信号有效,并使能所述输出寄存器输出数据;否 则,使输出所述FIFO控制器的读信号无效,并锁存所述输出寄存器;所述FIFO控制器在没有收到有效的读信号时,通过所述输入寄存器设置所述RAM 的读地址指向RAM中当前待读取的数据;收到有效的读信号时,通过所述输入寄存器设置 所述RAM的读地址指向RAM中下一待读取的数据;所述RAM按照读时钟和被设置的读地址,以先入先出的方式输出被写入的数据给 所述输出寄存器;所述输出寄存器在被使能时,按照读时钟输出寄存的数据。由以上技术方案可以看出,在本专利技术中,为了减小RAM的时延,在包含FIFO控制 器、输入寄存器和RAM的FIFO中增设输出寄存器和使能控制器,其中,输出寄存器的设置使 得原来由RAM输出和后续用户逻辑单元的操作构成的关键路径被打破,输出通过单独的寄 存器完成,输出延迟减小,从而使预读式FIFO更好地满足时序要求,解决时序紧张的问题。 另外,使能控制器在确定RAM为非空状态且输出寄存器为空状态,或者接收到读请求时,使 输入FIFO控制器的读信号有效,并使能输出寄存器输出数据;否则,使输出FIFO控制器的 读信号无效,并锁存输出寄存器,通过该方式,使能控制器能够保证在增加一级寄存器的基 础上,仍能够保证预读方式的准确实现。并且,输出寄存器充分使用了 RAM硬核中已有的寄 存器资源,从而节约了 FPGA的寄存器资源。附图说明图1为预读式FIFO的读时序图;图2为预读式FIFO的逻辑结构示意图;图3为本专利技术提供的预读式FIFO的逻辑结构示意图;图4为输出寄存器采用的寄存器示意图;图5为RAM和输出寄存器在RAM实例化模块中的结构示意图。具体实施例方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对 本专利技术进行详细描述。图3为本专利技术提供的预读式FIFO的逻辑结构示意图,如图3所示,该预读式FIFO可以包括FIFO控制器、输入寄存器、RAM、使能控制器和输出寄存器。其中,FIFO控制器、 输入寄存器和RAM是现有单元,而使能控制器和输出寄存器是增设的单元。输出寄存器也 是RAM硬核上已有的寄存器资源,现有技术中没有被预读式FIFO加以利用,而在本专利技术中 采用。其中,使能控制器,用于确定RAM为非空状态且输出寄存器为空状态,或者接收到 读请求时,使输入FIFO控制器的读信号有效,并使能输出寄存器输出数据;否则,使输入 FIFO控制器的读信号无效,并锁存输出寄存器。FIFO控制器,用于没有收到有效的读信号时,通过输入寄存器设置RAM的读地址 指向RAM中当前待读取的数据;收到有效的读信号时,通过输入寄存器设置RAM的读地址指 向RAM中下一待读取的数据。RAM,用于按照读时钟和被设置的读地址,以先入先出的方式输出被写入的数据给 输出寄存器。输出寄存器,用于在被使能时,按照读时钟输出寄存的数据。在该预读式FIFO结构中,利用了 RAM硬核内部寄存器资源的锁存功能,即输出寄 存器的锁存功能。通常,寄存器的结构可以如图4所示,当寄存器的时钟使能(EN)端无效 时,寄存器被锁存,其数据输出(Q)端保持数据不变;当寄存器的EN端有效时,寄存器被使 能从Q端正常输出数据。图中的D端为数据输入端。由于单纯增加一个输出寄存器会使得FIFO输出的数据晚一个读时钟周期,这样 就无法达到预读的功能要求,为此,上述预读式FIFO中额外增加了使能控制器。使能控制 器控制对输出寄存器的锁存和使能输出,主要包括以下三种情况当使能控制器没有收到读请求(图3中的rd),且RA本文档来自技高网...

【技术保护点】 1.一种预读式先入先出寄存器FIFO,该FIFO包括FIFO控制器、输入寄存器和随机存储器RAM;其特征在于,还包括:输出寄存器和使能控制器,且所述输出寄存器、输入寄存器和RAM均属于RAM硬核中的存储资源;所述使能控制器,用于确定所述RAM为非空状态且所述输出寄存器为空状态,或者接收到读请求时,使输入所述FIFO控制器的读信号有效,并使能所述输出寄存器输出数据;否则,使输入所述FIFO控制器的读信号无效,并锁存所述输出寄存器;所述FIFO控制器,用于没有收到有效的读信号时,通过所述输入寄存器设置所述RAM的读地址指向RAM中当前待读取的数据;收到有效的读信号时,通过所述输入寄存器设置所述RAM的读地址指向RAM中下一待读取的数据;所述RAM,用于按照读时钟和被设置的读地址,以先入先出的方式输出被写入的数据给所述输出寄存器;所述输出寄存器,用于在被使能时,按照读时钟输出寄存的数据。

【技术特征摘要】

【专利技术属性】 技术研发人员:林晖, 申请(专利权)人:杭州华三通信技术有限公司, 类型:发明 国别省市:86[中国|杭州]

全部详细技术资料下载 我是这个专利的主人


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3