基于FPGA的SDRAM控制系统的制作方法

文档序号:11154905阅读:529来源:国知局
基于FPGA的SDRAM控制系统的制造方法与工艺

本发明涉及FPGA(Field Programmable Gate Array,现场可编程门阵列)技术领域,特别是涉及一种基于FPGA的SDRAM控制系统。



背景技术:

SDRAM:Synchronous Dynamic Random Access Memory,即同步动态随机存储器,其将CPU与RAM通过一个相同的时钟锁在一起,使RAM和CPU能够共享一个时钟周期,以相同的速度同步工作,与EDO内存相比速度能提高50%。SDRAM基于双存储体结构,内含两个交错的存储阵列,当CPU从一个存储体或阵列访问数据时,另一个就已为读写数据做好了准备,通过这两个存储阵列的紧密切换,读取效率就能得到成倍的提高。在图像采集、数据分析等领域往往会使用FPGA加SDRAM的方式进行大量数据的缓存和处理。

一般来说,在FPGA内实现对SDRAM的控制有两种方法:一种是利用FPGA资源自己设计,另一种是调用FPGA厂商提供的SDRAM控制器IP(Intellectual Property,知识产权)接口。虽然SDRAM接口有统一的标准,但是每个FPGA厂商的SDRAM控制器IP接口却各不相同。而在FPGA内数据读写控制方式必须和SDRAM控制器IP接口的标准匹配才能完成正确的数据读写。因此,对FPGA和SDRAM的使用者来说,使用不同厂商的FPGA做SDRAM控制设计是一件极其不方便的事情,每换一次FPGA,就要重新设计一次数据读写控制程序,产品的可移植性差,导致浪费大量的时间。



技术实现要素:

基于此,本发明实施例提供了基于FPGA的SDRAM控制系统,能够拓展FPGA对SDRAM进行控制时的通用性。

本发明一方面提供基于FPGA的SDRAM控制系统,包括RAM读写控制模块、接口转换模块以及SDRAM控制器IP模块;

所述接口转换模块包括一RAM读写控制接口、一选择子模块和至少两个转换子模块,所述SDRAM控制器IP模块包括至少两个控制器IP子模块;所述至少两个控制器IP子模块互不相同,所述至少两个转换子模块分别用于实现RAM接口规范与不同类型的SDRAM控制器IP接口规范的转换,所述至少两个转换子模块与所述至少两个控制器IP子模块一一对应;

所述RAM读写控制模块按照RAM接口规范发出控制指令至所述接口转换模块;

所述接口转换模块通过RAM读写控制接口接收所述控制指令,通过选择子模块为接收到的控制指令分配一对应的转换子模块;通过该转换子模块将RAM接口规范的控制指令转换为对应的SDRAM控制器IP接口规范的控制指令,将所述SDRAM控制器IP接口规范的控制指令发送至SDRAM控制器IP模块;

所述SDRAM控制器IP模块中对应的控制器IP子模块根据所述SDRAM控制器IP接口规范的控制指令对SDRAM进行读写操作。

基于上述实施例提供的基于FPGA的SDRAM控制系统,通过一个接口转换模块实现了将不同FPGA厂商的不同SDRAM控制器IP接口转换成一种通用的RAM(Random Access Memory,随机存取存储器)接口,从而实现在不同厂商的FPGA中都可以方便快捷地使用SDRAM存储器,扩展了FPGA的通用性。

附图说明

图1为一实施例的基于FPGA的SDRAM控制系统的示意图;

图2为RAM写控制时序图;

图3为RAM读控制时序图;

图4为一实施例的接口转换模块的示意图;

图5为一实施例的基于FPGA的SDRAM控制系统进行SDRAM写数据的示意流程图;

图6为一实施例的基于FPGA的SDRAM控制系统进行SDRAM读数据的示意流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一实施例的基于FPGA的SDRAM控制系统的示意图;如图1所示,本实施例中的基于FPGA的SDRAM控制系统包括:RAM读写控制模块、接口转换模块以及SDRAM控制器IP模块。其中,所述接口转换模块包括一RAM读写控制接口、一选择子模块和至少两个转换子模块,所述SDRAM控制器IP模块包括至少两个控制器IP子模块;所述至少两个控制器IP子模块互不相同,所述至少两个转换子模块分别用于实现RAM接口规范与不同类型的SDRAM控制器IP接口规范的转换,所述至少两个转换子模块与所述至少两个控制器IP子模块一一对应。

本实施例的基于FPGA的SDRAM控制系统的原理为:所述RAM读写控制模块按照RAM接口规范发出控制指令至所述接口转换模块;所述接口转换模块通过RAM读写控制接口接收所述控制指令,通过选择子模块为接收到的控制指令分配一对应的转换子模块;通过该转换子模块将RAM接口规范的控制指令转换为对应的SDRAM控制器IP接口规范的控制指令,将所述SDRAM控制器IP接口规范的控制指令发送至SDRAM控制器IP模块;所述SDRAM控制器IP模块中对应的控制器IP子模块根据所述SDRAM控制器IP接口规范的控制指令对SDRAM进行读写操作。

在一优选实施例中,基于FPGA的SDRAM控制系统对SDRAM的操作包括写操作和读操作,对应的,所述RAM读写控制模块发出的所述控制指令可以为写操作指令或者读操作指令,读操作指令中的信息包括:地址信息Addr和读指令RD,写操作指令中包括:地址信息Addr、写指令WE以及写数据WrData。

可以理解的,所述RAM读写控制模块发出的所述控制指令中还可包括其他相关的信息,例如读数据有效RdValid信号。

在一优选实施例中,接口转换模块中的各个转换子模块中具体可包括:RAM地址及命令转换单元和SDRAM控制器IP地址及命令接口。

各个转换子模块通过RAM地址及命令转换单元将RAM接口规范的地址信息和读/写命令转换成对应的SDRAM控制器IP规范的地址和读/写命令;并通过SDRAM控制器IP地址及命令接口将所述SDRAM控制器IP规范的地址信息和读/写命令发送至SDRAM控制器IP模块;

各个转换子模块还包括:RAM写数据转换单元和SDRAM控制器IP写数据接口;

各个转换子模块通过RAM写数据转换单元将RAM接口规范的写数据转换为对应的SDRAM控制器IP规范的写数据;并通过SDRAM控制器IP写数据接口将所述SDRAM控制器IP规范的写数据发送至所述SDRAM控制器IP模块;

对于读操作,所述SDRAM控制器IP模块通过对应的控制器IP子模块接收所述SDRAM控制器IP规范的地址信息和读命令,根据接收到的地址信息和读命令对SDRAM进行读操作。或者,对于写操作,所述SDRAM控制器IP模块通过对应的控制器IP子模块接收所述SDRAM控制器IP规范的地址信息、写命令和写数据,根据接收到的地址信息、写命令和写数据对SDRAM进行写操作。

在另一优选实施例中,各个转换子模块还包括:地址及命令缓存和写数据缓存。对应的,各个转换子模块通过所述地址及命令缓存对所述RAM地址及命令转换单元得到的SDRAM控制器IP规范的地址信息和读/写命令进行缓存,通过所述SDRAM控制器IP地址及命令接口从所述地址及命令缓存中读出所述SDRAM控制器IP规范的地址和读/写命令。各个转换子模块通过所述写数据缓存对所述RAM写数据转换单元得到的SDRAM控制器IP规范的写数据进行缓存;通过所述SDRAM控制器IP写数据接口从所述写数据缓存中读出SDRAM控制器IP规范的写数据。其中,所述SDRAM控制器IP写数据接口与所述SDRAM控制器IP地址及命令接口同步从对应缓存中读取数据,将所述SDRAM控制器IP规范的地址、写命令和写数据一并发送至SDRAM控制器IP模块。

在另一优选实施例中,所述地址及命令缓存、所述写数据缓存均为FIFO(First In First Out)缓存。

在另一优选实施例中,各个转换子模块还包括:RAM读数据转换单元和SDRAM控制器IP读数据接口。对应的,所述SDRAM控制器IP模块将从SDRAM读取到的读数据发送给所述接口转换模块。对应的,接口转换模块中对应的转换子模块通过所述SDRAM控制器IP读数据接口接收所述读数据,通过所述RAM读数据转换单元将接收到的SDRAM控制器IP规范的读数据转换为RAM接口规范的读数据,并将所述RAM接口规范的读数据通过RAM读写控制接口发送至RAM读写控制模块。对应的,RAM读写控制模块接收RAM接口规范的读数据并输出。

在一优选实施例中,所述SDRAM控制器IP模块包括三个控制器IP子模块,分别为:Xilinx SDRAM控制器IP子模块、Altera SDRAM控制器IP子模块以及Lattice SDRAM控制器IP子模块。所述接口转换模块包括三个转换子模块,分别为:用于实现RAM接口规范与Xilinx SDRAM控制器IP接口规范转换的第一转换子模块;用于实现RAM接口规范与Altera SDRAM控制器IP接口规范转换的第二转换子模块;以及,用于实现RAM接口规范与Lattice SDRAM控制器IP接口规范转换的第三转换子模块。

可以理解的,根据实际需要,还可设置其他转换子模块和控制器IP子模块。

结合上述实施例,参考图2~图5,下面结合SDRAM写操作流程和SDRAM读操作流程,对本发明的基于FPGA的SDRAM控制系统做进一步的说明。

RAM读写控制模块负责按照通用的RAM接口规范发送读写命令和数据。RAM读写控制模块发出的信息包括地址Addr、读命令RD、写命令WE、写数据WrData、读数据RdData以及读数据有效RdValid等信号。RAM的读写时序也非常简单,分为写控制时序和读控制时序。图2和图3分别是RAM写时序图和RAM读时序图。要写数据时,把WE拉高,同时送地址Addr和写数据WrData,就把写数据写入了相应地址了。读数据时,把RD拉高,同时送地址Addr,然后延时TCL时间后就可以得到读数据RdData。

进一步的,接口转换模块用来实现从RAM读写控制接口到对应的SDRAM控制器IP控制器接口的转换。在内部可通过FIFO缓存来完成两类型接口时序的转换。如图4所示,在接口转换模块内可进一步分成地址及命令转换、写数据转换、读数据转换三部分来处理。

参考图5所示,当写数据时,RAM地址及命令接口转换单元把RAM地址和写命令转换成SDRAM控制器IP地址及命令格式,然后存入地址及命令FIFO。RAM写数据接口转换单元把RAM写数据格式转换成SDRAM控制器IP写数据格式,然后存入写数据FIFO。之后再一起从两个FIFO中将地址、命令和写数据读出,送到SDRAM控制器IP接口模块,然后由SDRAM控制器IP接口模块将写数据写入SDRAM中。这样完成了写数据的操作。

参考图6所示,当读数据时,RAM地址及命令接口转换单元把RAM地址和读命令格式转换成SDRAM控制器IP地址命令格式,然后存入地址及命令FIFO。之后从该FIFO中将地址命令读出,送到SDRAM控制器IP接口模块上,然后由SDRAM控制器IP模块对SDRAM进行读操作。SDRAM接收到读命令后,将数据输出给SDRAM控制器IP接口模块,最后由RAM读数据接口转换子模块直接从SDRAM控制器IP接口上获取读数据,然后转换成RAM读数据格式送到RAM读写控制接口。这样完成了读数据的操作。

通过上述实施例的基于FPGA的SDRAM控制系统,通过设计一个接口转换模块,可将不同FPGA厂商的不同类型SDRAM控制器IP接口转换成一通用的RAM接口,从而实现在不同厂商的FPGA中都可以方便快捷地使用SDRAM存储器,克服了不同FPGA厂商SDRAM控制器IP接口不同,对SDRAM存储器控制时通用性差的问题。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上所述实施例仅表达了本发明的几种实施方式,不能理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1