一种基于DDRx存储器的大容量FIFO控制器制造技术

技术编号:19593140 阅读:33 留言:0更新日期:2018-11-28 04:48
本发明专利技术公开了一种基于DDRx存储器的大容量FIFO控制器,将存储器封装一个或多个异步FIFO控制模块,且异步FIFO控制模块通过存储器接口时序控制模块与存储器连接;所述异步FIFO控制模块包括:写端口同步模块、读端口同步模块、写端口访问请求模块、读端口访问请求模块、读写指针管理模块和端口调度轮询模块。将存储器封装为异步FIFO控制器接口,在使用存储器作为先入先出数据缓存时,在保证具有存储器大容量空间、高带宽特性的同时,将应用接口简化。

【技术实现步骤摘要】
一种基于DDRx存储器的大容量FIFO控制器
本专利技术属于FIFO控制器架构
;具体涉及一种基于DDRx存储器的大容量FIFO控制器。
技术介绍
目前,在大多数的电子产品项目设计实施过程中,FPGA加DDR2/DDR3存储器的数据缓存架构得到越来越多的应用。虽然FPGA厂商大都提供了DDRx控制器的IP核,但是对于FPGA设计人员来说,还是需要做大量的FPGA数字逻辑电路设计工作来完成数据处理和DDRx控制器内部接口时序的功能,这不但增加了项目的设计难度还有可能影响项目进度。现有公开的技术提出的方案为FPGA连接两片DDRx芯片,使用乒乓操作的方式实现数据无间断传输,这种方法在很多情况会有缓存资源的浪费和逻辑设计难度的增加。FPGA供应商为其部分FPGA提供了基于FIFO接口的DDRx接口的控制器IP,但其控制时序较为复杂,且仅能应用与几款特定的FPGA芯片,不具有通用性
技术实现思路
本专利技术提供了一种基于DDRx存储器的大容量FIFO控制器;将存储器封装为异步FIFO控制器接口,在使用存储器作为先入先出数据缓存时,在保证DDRx存储器大容量、高带宽特性的同时,将应用接口简化。本专利技术的技术方案是:一种基于DDRx存储器的大容量FIFO控制器,将存储器封装一个或多个异步FIFO控制模块,且异步FIFO控制模块通过端口调度轮询模块和存储器接口时序控制模块与存储器连接;所述异步FIFO控制模块包括:写端口同步模块、读端口同步模块、写端口访问请求模块、读端口访问请求模块和读写指针管理模块;写端口同步模块,将写入该FIFO控制器的数据通过端口调度轮询模块同步到存储器接口时序控制模块上;读端口同步模块,将该FIFO控制器的数据从存储器接口时序控制模块中通过端口调度轮询模块读出并进行缓存;写端口访问请求模块,获取写端口同步模块需要写入到存储器中的数据的个数,并且向端口调度轮询模块发起写访问请求;读端口访问请求模块,获取读端口同步模块能够读取存储器中的数据的个数,并且向端口调度轮询模块发起读访问请求;端口调度轮询模块,轮询各个异步FIFO控制模块对存储器的读或写访问请求;存储器接口时序控制模块,响应异步FIFO控制模块的读或写操作请求,并且对DDRx存储区进行相应的访问。更进一步的,本专利技术的特点还在于:其中异步FIFO控制模块还包括读写指针管理模块,读写指针管理模块完成该FIFO控制器的读或写的指针操作,并计算该FIFO控制器中的数据的个数;在进行数据的读或写操作后,读写指针管理模块进行该FIFO控制器中的数据个数的更新以及对存储器的读写地址的更新。其中读端口同步模块中读出的数据为将读写指针管理模块读指针指向的数据。其中写端口访问请求模块中获取写端口同步模块需要写入到存储器中的数据的个数的过程是:获取需要传输的数据的个数n,当存储器的剩余空间能够存放n个数据时,则写端口请求模块输出的写请求的数据个数为n;当存储器的剩余空间能够存放m个数据,且m<n,则写端口请求模块输出的写请求的数据个数为m。其中读端口访问请求模块获取存储器中能够写入到读端口同步模块中的数据的个数的具体过程是:获取需要传输的数据的个数x,当读端口同步模块中的剩余空间能够存放x个数据时,则读端口访问请求模块输出的读请求的数据个数为x;当读端口同步模块中的剩余空间能够存放y个数据时,且y<x,则读端口访问请求模块输出的读请求的数据个数为y。其中存储器接口时序控制模块在相应读操作时,将存储器中的数据读出,并写入读端口同步模块中。其中存储器接口时序控制模块在相应写操作时,将写端口同步模块中的数据读出,并写入到存储器中。与现有技术相比,本专利技术的有益效果是:该FIFO控制器与标准的异步FIFO接口相同,其接口通用、简单,使用方便;本专利技术采用突发传输和流水线设计技术,即采用存储器接口时序控制模块和端口调度轮询模块实现对多个异步FIFO控制模块进行轮询读写操作,提高了数据的传输效率,保证了存储器的读写访问高带宽;本专利技术的FIFO控制器配置为1个或多个异步FIFO控制模块,配置灵活,适用于不同带宽的使用场景。附图说明图1为本专利技术的结构示意图。图中:1为写端口同步模块;2为读写指针管理模块;3为写端口访问请求模块;4为读端口访问请求模块;5为读端口同步模块;6为端口调度轮询模块;7为存储器接口时序控制模块。具体实施方式下面结合附图和具体实施例对本专利技术的技术方案进一步说明。本专利技术提供了一种基于DDRx存储器的大容量FIFO控制器,包括一个或多个异步FIFO控制模块,异步FIFO控制模块通过端口调度轮询模块6和存储器接口时序控制模块7与存储器连接。如图1所示,该实施例中的FIFO控制器有两个异步FIFO控制模块。如图1所示,异步FIFO控制模块包括端口同步模块1、读端口同步模块5、写端口访问请求模块3、读端口访问请求模块4和读写指针管理模块2。其中,写端口同步模块1用于将该FIFO控制器写入的数据同步到存储器接口时序控制模块7下,并且写入到存储器中;该模块由一个异步FIFO控制模块实现,当写端口同步模块1需要写入的数据满足写入DDRx的条件时,端口调度轮询模块6将写端口同步模块1中的数据,读出并通过存储器接口时序控制模块7写入到存储器中。读端口同步模块5用于将该FIFO控制器需要读取的数据(即读指针指向的数据)从存储器中读出并进行缓存;该模块由一个异步FIFO控制模块实现,当用户需要从该FIFO控制器中读出数据时,用户通过操作读端口同步模块5将数据读出。写端口访问请求模块3通过判断写端口同步模块1中的数据个数和存储器中的数据个数以及写端口同步模块中的数据超时情况,计算出写端口同步模块1需要写入到存储器中的数据个数,并向端口调度轮询模块6发起DDRx写访问请求。其中写端口访问请求模块3中获取写端口同步模块1需要写入到存储器中的数据的个数的过程是:获取需要传输的数据的个数n,当存储器的剩余空间能够存放n个数据时,则写端口请求模块3输出的写请求的数据个数为n;当存储器的剩余空间能够存放m个数据,且m<n,则写端口请求模块3输出的写请求的数据个数为m。读端口访问请求模块4通过判断读端口同步模块5中的数据个数和存储器中的数据个数以及存储器中的数据超时情况,计算出存储器中可以写入到读端口同步模块中5的数据个数,并向端口调度轮询模块6发起DDRx读访问请求。读端口访问请求模块4获取存储器中能够写入到读端口同步模块5中的数据的个数的具体过程是:获取需要传输的数据的个数x,当读端口同步模块5中的剩余空间能够存放x个数据时,则读端口访问请求模块4输出的读请求的数据个数为x;当读端口同步模块5中的剩余空间能够存放y个数据时,且y<x,则读端口访问请求模块4输出的读请求的数据个数为y。端口调度轮询模块6为核心控制模块,通过状态机来轮询各个异步FIFO控制模块对存储器的读或写访问请求,当某个异步FIFO控制模块有读写访问请求时,则跳转至相应的处理状态对请求进行响应,并控制存储器接口时序控制模块7将请求的数据从写端口同步模块1写入至存储器中该FIFO控制器写指针指向的地址,或将该FIFO控制器读指针指向的地址数据读出并缓存至读端口同本文档来自技高网...

【技术保护点】
1.一种基于DDRx存储器的大容量FIFO控制器,其特征在于,将存储器封装一个或多个异步FIFO控制模块,且异步FIFO控制模块通过端口调度轮询模块(6)和存储器接口时序控制模块(7)与存储器连接;所述异步FIFO控制模块包括:写端口同步模块(1)、读端口同步模块(5)、写端口访问请求模块(3)、读端口访问请求模块(4)和读写指针管理模块(2);写端口同步模块(1),将写入该FIFO控制器的数据通过端口调度轮询模块(6)同步到存储器接口时序控制模块(7)上;读端口同步模块(5),将该FIFO控制器的数据从存储器接口时序控制模块(7)中通过端口调度轮询模块(6)读出并进行缓存;写端口访问请求模块(3),获取写端口同步模块(1)需要写入到存储器中的数据的个数,并且向端口调度轮询模块(6)发起写访问请求;读端口访问请求模块(4),获取读端口同步模块(5)能够读取存储器中的数据的个数,并且向端口调度轮询模块(6)发起读访问请求;端口调度轮询模块(6),轮询各个异步FIFO控制模块对存储器的读或写访问请求;存储器接口时序控制模块(7),响应异步FIFO控制模块的读或写操作请求,并且对DDRx存储区进行相应的访问。...

【技术特征摘要】
1.一种基于DDRx存储器的大容量FIFO控制器,其特征在于,将存储器封装一个或多个异步FIFO控制模块,且异步FIFO控制模块通过端口调度轮询模块(6)和存储器接口时序控制模块(7)与存储器连接;所述异步FIFO控制模块包括:写端口同步模块(1)、读端口同步模块(5)、写端口访问请求模块(3)、读端口访问请求模块(4)和读写指针管理模块(2);写端口同步模块(1),将写入该FIFO控制器的数据通过端口调度轮询模块(6)同步到存储器接口时序控制模块(7)上;读端口同步模块(5),将该FIFO控制器的数据从存储器接口时序控制模块(7)中通过端口调度轮询模块(6)读出并进行缓存;写端口访问请求模块(3),获取写端口同步模块(1)需要写入到存储器中的数据的个数,并且向端口调度轮询模块(6)发起写访问请求;读端口访问请求模块(4),获取读端口同步模块(5)能够读取存储器中的数据的个数,并且向端口调度轮询模块(6)发起读访问请求;端口调度轮询模块(6),轮询各个异步FIFO控制模块对存储器的读或写访问请求;存储器接口时序控制模块(7),响应异步FIFO控制模块的读或写操作请求,并且对DDRx存储区进行相应的访问。2.根据权利要求1所述的基于DDRx存储器的大容量FIFO控制器,其特征在于,所述异步FIFO控制模块还包括读写指针管理模块(2),读写指针管理模块(2)完成该FIFO控制器的读或写的指针操作,并计算该FIFO控制器中的数据的个数;在进行数据的读或写操作后,读写指针管理模块(2)进行该FIFO控制器中的数据个数的更新以及对存储器的读写地址的更...

【专利技术属性】
技术研发人员:唐金锋秦臻唐雷雷刘露
申请(专利权)人:西安微电子技术研究所
类型:发明
国别省市:陕西,61

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

1