基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器的制作方法

文档序号:6373309阅读:286来源:国知局
专利名称:基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器的制作方法
技术领域
本发明涉及基于FPGA的外扩DDR2的读写方法及基于FPGA的外扩DDR2颗粒存储器,属于存储介质领域。
背景技术
DDR2作为现在运用最为广泛的存储介质之一,其稳定性和整体性能都比其他存储介质更具优势,但是在高速数据采集、通信和数字信号处理等应用中,通过FPGA对DDR2颗 粒存取的技术仍存在很多问题。就目前存在的DDR2数据存储技术进行归纳和总结,都存在一些问题,没有形成统一的、标准的设计思路,虽各具特点,但不具备通用性。

发明内容
本发明目的是为了解决现有DDR2数据存储技术不具有通用性的问题,提供了一种基于FPGA的外扩DDR2的读写方法及基于FPGA的外扩DDR2颗粒存储器。本发明所述基于FPGA的外扩DDR2的读写方法,该方法涉及的设备包括FPGA和DDR2,FPGA中设置DDR2控制逻辑模块,DDR2控制逻辑模块控制DDR2的读写操作;DDR2控制逻辑模块包括WFIF0、RFIF0、DDR2控制器驱动模块和DDR2控制器,该方法包括写步骤和读步骤写步骤包括以下步骤当WFIFO空闲时,外部逻辑向WFIFO写入数据的步骤;WFIFO完成写操作后,发送标志位给外部逻辑的步骤;当DDR2控制器空闲时,外部逻辑向DDR2控制器驱动模块发送写DDR2请求信号,同时发送通道信息、数据允许位、地址和地址有效位的步骤;DDR2控制器驱动模块将该写DDR2请求信号传递给DDR2控制器的步骤;当DDR2控制器驱动模块接收到DDR2控制器返回的请求数据信号后,DDR2控制器驱动模块读取WFIFO中写满的数据,并将该数据通过DDR2控制器存储在DDR2中的步骤;读步骤包括以下步骤当DDR2控制器空闲时,外部逻辑向DDR2控制器驱动模块发送读DDR2请求信号,同时发送地址、地址允许位和数据允许位的步骤;DDR2控制器驱动模块将该读DDR2请求信号发送给DDR2控制器的步骤;DDR2控制器从DDR2中将相应地址中数据取出,同时数据有效位标志置为有效的步骤;将数据有效位标志作为RFIFO的写请求信号,将DDR2中取出的数据写入RFIFO中的步骤;
完成请求次数的读操作后,外部逻辑向RFIFO发送读请求,从RFIFO中将数据输出的步骤。 基于FPGA的外扩DDR2颗粒存储器,它包括FPGA和DDR2,FPGA中设置DDR2控制逻辑模块,DDR2控制逻辑模块控制DDR2的读写操作;DDR2控制逻辑模块包括WFIF0、RFIF0、DDR2控制器驱动模块和DDR2控制器,WFIFO :用于空闲状态下,允许外部逻辑写入数据;完成写操作状态下,发送标志位给外部逻辑;写满的数据被DDR2控制器驱动模块读取的装置;RFIFO :用于DDR2控制器驱动模块,用于接受外部逻辑的读请求,将从DDR2中读取的数据输出的装置;
·
DDR2控制器驱动模块用于接收外部逻辑发送的写DDR2请求信号,将WFIFO中写满的数据通过DDR2控制器存储在DDR2中的装置;用于接收外部逻辑发送的读DDR2请求信号,将DDR2中相应地址中的数据写入RFIFO的装置;DDR2控制器用于控制信号的译码、数据位宽和地址信号从单倍数据速率模式到双倍数据速率模式的转换、地址信号的译码、数据掩码的生成和时钟的生成的装置。本发明的优点本发明对于高速数据采集、高速通讯和数字信号处理中产生的大批量的数据,通过FPGA的处理和转换,存储在大容量的DDR2存储单元中,并在提出请求时读出。存储和读取的控制信号由FPGA中的DDR2控制逻辑完成,当外部器件或FPGA中其他逻辑模块(统称外部逻辑)提出读写请求时,DDR2控制逻辑模块将请求信号转换为DDR2的控制信号,并且将读写数据和地址进行相应的转换,与DDR2进行数据交换。基于FPGA的DDR2颗粒存储技术主要应体现以下功能I、高速存储和读取数据;2、大容量的存储介质;3、接口操作简单;4、多通道存储和读取;5、运行稳定。其有益效果为I.实现对多种数据宽度的数据存储和读取;2.每位数据线最高支持200MHz/400Mbps通信速度;3.存储或读取DDR2操作简单,无需对DDR2直接操作;4.支持多通道数据高速存取;5.最高存储容量可达9GB。


图I是本发明所述基于FPGA的外扩DDR2颗粒存储器的逻辑框图;图2是FPGA与DDR2连接关系示意图;图3是DDR2控制器内部逻辑框图。
具体实施例方式具体实施方式
一下面结合图I至图3说明本实施方式,本实施方式所述基于FPGA的外扩DDR2的读写方法,该方法涉及的设备包括FPGA和DDR2,FPGA中设置DDR2控制逻辑模块1,DDR2控制逻辑模块I控制DDR2的读写操作;DDR2控制逻辑模块I包括WFIF01-1、RFIF01_2、DDR2控制器驱动模块1-3和DDR2控制器1-4,该方法包括写步骤和读步骤写步骤包括以下步骤当WFIF01-1空闲时,外部逻辑向WFIF01-1写入数据的步骤; WFIF01-1完成写操作后,发送标志位给外部逻辑的步骤;当DDR2控制器1-4空闲时,外部逻辑向DDR2控制器驱动模块1_3发送写DDR2请求信号,同时发送通道信息、数据允许位、地址和地址有效位的步骤;DDR2控制器驱动模块1_3将该写DDR2请求信号传递给DDR2控制器1_4的步骤;当DDR2控制器驱动模块1_3接收到DDR2控制器1_4返回的请求数据信号后,DDR2控制器驱动模块1-3读取WFIF01-1中写满的数据,并将该数据通过DDR2控制器1_4存储在DDR2中的步骤;读步骤包括以下步骤当DDR2控制器1_4空闲时,外部逻辑向DDR2控制器驱动模块1_3发送读DDR2请求信号,同时发送地址、地址允许位和数据允许位的步骤;DDR2控制器驱动模块1_3将该读DDR2请求信号发送给DDR2控制器1_4的步骤;DDR2控制器1_4从DDR2中将相应地址中数据取出,同时数据有效位标志置为有效的步骤;将数据有效位标志作为RFIF01-2的写请求信号,将DDR2中取出的数据写入RFIF01-2中的步骤;完成请求次数的读操作后,外部逻辑向RFIF01-2发送读请求,从RFIF01-2中将数据输出的步骤。DDR2采用BGA封装的DDR2颗粒实现。FPGA 采用 Altera 公司的 EP2SGX 系列的 FPGA。DDR2 控制器 1-4 采用 Altera 公司的 DDRMDRAM Controller IP 核实现。下面给具体的实现过程I. WFIF01-1为空时,write_ready标志有效,外部逻辑可以请求写入数据到WFIF01-1 ;2.外部逻辑发送写WFIFO请求,完成请求的写WFIFO操作次数后,等待;3.完成写WFIFO操作后,在DDR2控制器1-4空闲情况下,外部逻辑可向DDR2控制器驱动模块1-3发送写DDR2请求,同时发送通道信息、数据允许位(Byte enable)以及地址和地址有效位。4.对于每一个有效的写请求,DDR2控制器1_4都会返回一个数据请求信号,表示可以写入数据,将此请求信号作为WFIF01-1的读请求,读出WFIF01-1中的数据送入DDR2。5.当DDR2控制器1_4空闲时,外部逻辑可提出读DDR2的请求。6. DDR2控制器驱动模块1_3接收到读请求、地址和地址允许位以及数据允许位后,将DDR2相应地址中的数据取出,同时数据有效位标志置为有效。
7.将数据有效位标志作为RFIF01-2的写请求,将从DDR2中取出的数据写入RFIF01-2 中。8.完成相应请求次数的读操作后,read_ready置为有效,外部逻辑可以对RFIF01-2发送读请求,从RFIF01-2中将数据读出。
具体实施方式
二 下面结合图I至图3说明本实施方式,本实施方式所述基于FPGA的外扩DDR2颗粒存储器,它包括FPGA和DDR2,FPGA中设置DDR2控制逻辑模块1,DDR2控制逻辑模块I控制DDR2的读写操作;DDR2控制逻辑模块I包括WFIF01-1、RFIF01_2、DDR2控制器驱动模块1-3和DDR2控制器1-4,WFIF01-1 :用于空闲状态下,允许外部逻辑写入数据;完成写操作状态下,发送标·志位给外部逻辑;写满的数据被DDR2控制器驱动模块1-3读取的装置;RFIF01-2 :用于DDR2控制器驱动模块1_3,用于接受外部逻辑的读请求,将从DDR2中读取的数据输出的装置;DDR2控制器驱动模块1_3 :用于接收外部逻辑发送的写DDR2请求信号,将WFIF01-1中写满的数据通过DDR2控制器1_4存储在DDR2中的装置;用于接收外部逻辑发送的读DDR2请求信号,将DDR2中相应地址中的数据写入RFIF01-2的装置;DDR2控制器1_4 :用于控制信号的译码、数据位宽和地址信号从单倍数据速率模式到双倍数据速率模式的转换、地址信号的译码、数据掩码的生成和时钟的生成的装置。DDR2采用BGA封装的DDR2颗粒实现。FPGA 采用 Altera 公司的 EP2SGX 系列的 FPGA。DDR2 控制器 1-4 采用 Altera 公司的 DDR2SDRAM Controller IP 核实现。硬件设计的核心部分为FPGA内部的逻辑设计,该部分采用Verilog语言实现,主要完成控制信号的生成、地址信号的生成、数据位宽的转换和时钟的生成。FPGA内部DDR2控制逻辑框图如图I所示,以64bit数据为例,具体说明各部件的功能I、WFIF01-1和RFIF01-2均为异步FIFO,主要完成跨时钟域数据缓存和数据位宽转换。WFIF01-1为空时外部逻辑可写入数据,写满后等待驱动逻辑读取。RFIF01-2写完后等待外部逻辑读取。2、DDR2控制器驱动模块1_3的功能主要有接收外部逻辑的读写请求、管理读写状态机并为DDR2控制器提供时序正确的控制信号、地址信号的生成和地址指针操作。具体为I)接收外部逻辑请求与管理读写状态机WFIF01-1完成写操作后,发送标志位给外部逻辑,由外部逻辑发出写DDR2请求,DDR2控制器驱动模块1-3接收所述写DDR2请求后,传递给DDR2控制器1_4,等待DDR2控制器1-4给出请求数据的信号,DDR2控制器驱动模块1-3就产生WFIF01-1的读请求信号,将WFIF01-1中的数据发送给DDR2控制器1_4。DDR2控制器1_4在接收到外部逻辑的读请求和读取数据数量的信号后,DDR2控制器驱动模块1-3向DDR2控制器1-4发送读DDR2请求,DDR2控制器1_4从DDR2中取出相应数据的同时给出数据有效标志,DDR2控制器驱动模块1-3将数据有效标志转换为RFIF01-2的写请求信号,写入RFIF01-2中。2)地址指针的操作初始状态每个通道读写地址指针均置零,某一通道读或写操作时,如果地址有效位有效,则将当前输入的地址信号作为读写DDR2的地址,一系列读写完成之后将当前的读写地址赋给地址指针。如果地址有效位无效,则将地址指针的值赋给DDR2的读写地址。3)地址信号的生成将地址指针或者从外部逻辑输入的地址信号转换成bank地址,行地址,列地址。3、DDR2 控制器 1-4DDR2控制器1-4使用Altera公司的DDR2SDRAM Controller IP核实现,通过对所使用FPGA和DDR2的参数以及工作模式的设置,生成DDR2控制器模块。DDR2控制器的功能·包括完成控制信号的译码、数据位宽和地址信号从单倍数据速率模式到双倍数据速率模式的转换、地址信号的译码、数据掩码的生成和时钟的生成。逻辑组成如图3所示。DDR2控制器1_4将读写请求的信号转换为DDR2的控制信号CAS/RAS/WE/CS,直接控制DDR2。DDR2控制器1_4的输入数据宽度为DDR2数据总线宽度的2或4倍,是因为DDR2的读写为双倍速率,时钟上升和下降沿都进行读写,并且内部交换数据时钟为DDR2时钟的频率(FULL)或其一半(HALF),输入的列地址宽度也因此而不同。DDR2控制器1_4将bank地址、行地址和列地址转换为N位的地址总线,地址总线为行列地址复用,bank地址独立。DDR2控制器1-4还将外部逻辑输入的数据字节允许位(Byte enable)转换为DDR2的数据掩码。DDR2控制器1_4中的PLL产生DDR2的工作时钟,同时生成DDR2控制逻辑内部的时钟,时钟频率与DDR2工作时钟的比例由IP核生成时的HALF/FULL模式选择。
权利要求
1.基于FPGA的外扩DDR2的读写方法,该方法涉及的设备包括FPGA和DDR2, FPGA中设置DDR2控制逻辑模块(I),DDR2控制逻辑模块(I)控制DDR2的读写操作;DDR2控制逻辑模块(I)包括WFIFO(I-I)、RFIFO (1-2)、DDR2控制器驱动模块(1_3)和DDR2 控制器(1-4), 其特征在于,该方法包括写步骤和读步骤 写步骤包括以下步骤 当WFIFO(I-I)空闲时,外部逻辑向WFIFO(I-I)写入数据的步骤; WFIFO(I-I)完成写操作后,发送标志位给外部逻辑的步骤; 当DDR2控制器(1-4)空闲时,外部逻辑向DDR2控制器驱动模块(1_3)发送写DDR2请求信号,同时发送通道信息、数据允许位、地址和地址有效位的步骤; DDR2控制器驱动模块(1-3)将该写DDR2请求信号传递给DDR2控制器(1_4)的步骤;当DDR2控制器驱动模块(1-3)接收到DDR2控制器(1_4)返回的请求数据信号后,DDR2控制器驱动模块(1-3)读取WFIFO(I-I)中写满的数据,并将该数据通过DDR2控制器(1_4)存储在DDR2中的步骤; 读步骤包括以下步骤 当DDR2控制器(1-4)空闲时,外部逻辑向DDR2控制器驱动模块(1_3)发送读DDR2请求信号,同时发送地址、地址允许位和数据允许位的步骤; DDR2控制器驱动模块(1-3)将该读DDR2请求信号发送给DDR2控制器(1_4)的步骤;DDR2控制器(1-4)从DDR2中将相应地址中数据取出,同时数据有效位标志置为有效的步骤; 将数据有效位标志作为RFIF0(l-2)的写请求信号,将DDR2中取出的数据写入RFIFO (1-2)中的步骤; 完成请求次数的读操作后,外部逻辑向RFIFO(1-2)发送读请求,从RFIFO(1-2)中将数据输出的步骤。
2.根据权利要求I所述基于FPGA的外扩DDR2的读写方法,其特征在于,FPGA采用Altera公司的EP2SGX系列的FPGA。
3.根据权利要求I所述基于FPGA的外扩DDR2的读写方法,其特征在于,DDR2控制器(1-4)采用 Altera 公司的 DDR2SDRAM Controller IP 核实现。
4.基于FPGA的外扩DDR2颗粒存储器,其特征在于,它包括FPGA和DDR2, FPGA中设置DDR2控制逻辑模块(I),DDR2控制逻辑模块(I)控制DDR2的读写操作;DDR2控制逻辑模块(I)包括WFIFO(I-I)、RFIF0 (1-2)、DDR2控制器驱动模块(1_3)和DDR2 控制器(1-4), WFIFO(I-I):用于空闲状态下,允许外部逻辑写入数据;完成写操作状态下,发送标志位给外部逻辑;写满的数据被DDR2控制器驱动模块(1-3)读取的装置; RFIFO(1-2):用于DDR2控制器驱动模块(1_3),用于接受外部逻辑的读请求,将从DDR2中读取的数据输出的装置; DDR2控制器驱动模块(1-3):用于接收外部逻辑发送的写DDR2请求信号,将WFIFO(I-I)中写满的数据通过DDR2控制器(1_4)存储在DDR2中的装置;用于接收外部逻辑发送的读DDR2请求信号,将DDR2中相应地址中的数据写入RFIFO (1_2)的装置;DDR2控制器(1-4):用于控制信号的译码、数据位宽和地址信号从单倍数据速率模式到双倍数据速率模式的转换、地址信号的译码、数据掩码的生成和时钟的生成的装置。
5.根据权利要求4所述基于FPGA的外扩DDR2颗粒存储器,其特征在于,FPGA采用Altera公司的EP2SGX系列的FPGA。
6.根据权利要求4所述基于FPGA的外扩DDR2颗粒存储器,其特征在于,DDR2控制器(1-4)采用 Altera 公司的 DDR2SDRAM Controller IP 核实现。
全文摘要
基于FPGA的外扩DDR2的读写方法及基于FPGA的外扩DDR2颗粒存储器,属于存储介质领域,本发明为解决现有DDR2数据存储技术不具有通用性的问题。本发明对于高速数据采集、高速通讯和数字信号处理中产生的大批量的数据,通过FPGA的处理和转换,存储在大容量的DDR2存储单元中,并在提出请求时读出。存储和读取的控制信号由FPGA中的DDR2控制逻辑完成,当外部器件或FPGA中其他逻辑模块提出读写请求时,DDR2控制逻辑将请求信号转换为DDR2颗粒的控制信号,并且将读写数据和地址进行相应的转换,与DDR2进行数据交换。硬件设计的核心部分为FPGA内部的逻辑设计,该部分采用Verilog语言实现。
文档编号G06F12/02GK102789424SQ20121024451
公开日2012年11月21日 申请日期2012年7月16日 优先权日2012年7月16日
发明者刘大同, 刘川, 刘连胜, 庞业勇, 彭宇, 见其拓 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1