CN101847434B - Ddr接口中的fpga设备的读、写操作方法及设备 - Google Patents
Ddr接口中的fpga设备的读、写操作方法及设备 Download PDFInfo
- Publication number
- CN101847434B CN101847434B CN 200910119666 CN200910119666A CN101847434B CN 101847434 B CN101847434 B CN 101847434B CN 200910119666 CN200910119666 CN 200910119666 CN 200910119666 A CN200910119666 A CN 200910119666A CN 101847434 B CN101847434 B CN 101847434B
- Authority
- CN
- China
- Prior art keywords
- clock signal
- ddr controller
- data
- ddr
- fpga
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Logic Circuits (AREA)
Abstract
本发明公开了DDR接口中的FPGA设备的写操作方法,包括:FPGA设备接收DDR控制器的信息发送端口的时钟信号;接收到来自DDR控制器的写操作命令后,根据DDR控制器的信息发送端口的时钟信号将来自DDR控制器的外部输入地址转换为FPGA设备内部存储地址;将承载DDR控制器发送的外部输入数据的DQ和DQS的相位进行调整,调整后的DQS信号相位与DQ信号相位相差1/4周期;根据DDR控制器的信息发送端口的时钟信号,从DQ信号和DQS信号中进行数据采样,得到所述外部输入数据,并按照所述内部存储地址进行存储。通过本发明,提出了一种新的DDR系统。本发明还公开了FPGA设备的读操作方法和FPGA设备。
Description
技术领域
本发明涉及通信领域,尤其涉及一种应用在DDR接口中的现场可编程门阵列的读、写操作方法及现场可编程门阵列设备。
背景技术
双倍数据速率(Double Data Rate,DDR)系统通常包括一个DDR控制器(DDR controller)和一个DDR存储器(DDR memory),DDR控制器根据DDR规范中定义的时序,向DDR存储器发出初始化、读、写操作等命令,DDR存储器根据DDR规范的定义正确地响应接收到的命令,接收或者发送DDR控制器命令的数据。
现有的由DDR控制器与DDR memory组成的DDR系统结构单一,无法满足系统多样性的要求。
发明内容
本发明实施例提供一种DDR接口中的FPGA的读、写操作方法及FPGA设备,提出了一种由DDR控制器和FPGA组成的新的DDR系统。
一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统的写操作方法,所述写操作方法包括以下步骤:
FPGA设备接收来自DDR接口中的DDR控制器的信息发送端口的时钟信号;
FPGA设备接收到来自DDR控制器的写操作命令后,根据DDR控制器的信息发送端口的时钟信号将来自DDR控制器的外部输入地址转换为FPGA设备内部存储地址;
FPGA设备将承载DDR控制器发送的外部输入数据的DDR的数据信号DQ和DDR的数据闸门信号DQS的相位进行调整,调整后的DQS信号相位与DQ信号相位相差1/4周期;
FPGA设备根据DDR控制器的信息发送端口的时钟信号,从相位关系调整后的DQ信号和DQS信号中进行数据采样,得到所述外部输入数据,并按照所述内部存储地址进行存储。
一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统的读操作方法,所述读操作方法包括以下步骤:
FPGA设备接收DDR控制器的信息发送端口的时钟信号;
FPGA设备将DDR控制器的信息发送端口的时钟信号调整为DDR控制器信息接收端口的时钟信号;
FPGA设备接收到来自DDR控制器的读操作命令后,根据DDR控制器的信息发送端口的时钟信号将来自DDR控制器的外部输出地址转换为FPGA设备内部存储地址;
FPGA设备根据DDR控制器的信息接收端口的时钟信号将所述内部存储地址对应的数据输出给DDR控制器。
一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统中的FPGA设备,所述FPGA设备包括锁相环模块、地址转换模块、数据接收模块和数据存储模块,其中:
锁相环模块,用于接收DDR控制器的信息发送端口的时钟信号,并将接收到的所述时钟信号作为地址转换模块、数据接收模块和数据存储模块的时钟信号;
地址转换模块,用于在接收到来自DDR控制器的写操作命令后,根据DDR控制器的信息发送端口的时钟信号,将来自DDR控制器的外部输入地址转换为FPGA设备内部存储地址;
数据接收模块,用于将承载DDR控制器发送的外部输入数据的DDR的数据信号DQ和DDR的数据闸门信号DQS的相位进行调整,调整后的DQS信号相位与DQ信号相位相差1/4周期,根据DDR控制器的信息发送端口的时钟信号,从相位关系调整后的DQ信号和DQS信号中进行数据采样,得到外部输入数据;
数据存储模块,用于按照所述内部存储地址和DDR控制器的信息发送端口的时钟信号,将得到的外部输入数据进行存储。
一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统中的FPGA设备,所述FPGA设备包括第一锁相环模块、第二锁相环模块、地址转换模块和数据输出模块,其中:
第一锁相环模块,用于接收DDR控制器的信息发送端口的时钟信号,并将接收到的所述时钟信号作为地址转换模块的时钟信号;
第二锁相环模块,用于将接收到的DDR控制器的信息发送端口的时钟信号调整为DDR控制器信息接收端口的时钟信号,并将调整后的时钟信号作为数据输出模块的时钟信号;
地址转换模块,用于在接收到来自DDR控制器的读操作命令后,根据DDR控制器的信息发送端口的时钟信号,将来自DDR控制器的外部输出地址转换为FPGA设备内部存储地址;
数据输出模块,用于根据DDR控制器信息接收端口的时钟信号,将FPGA设备中的数据存储模块中存储的所述内部存储地址对应的数据输出给DDR控制器。
一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统中的FPGA设备,所述FPGA设备包括第一锁相环模块、第二锁相环模块、命令译码模块、地址转换模块、数据接收模块、数据输出模块和数据存储模块,其中:
第一锁相环模块,用于接收DDR控制器的信息发送端口的时钟信号,并将所述DDR控制器的信息发送端口的时钟信号作为命令译码模块、地址转换模块和数据接收模块的时钟信号;
第二锁相环模块,用于将接收到的DDR控制器的信息发送端口的时钟信号调整为DDR控制器信息接收端口的时钟信号,并将得到的DDR控制器信息接收端口的时钟信号作为数据输出模块的时钟信号;
命令译码模块,用于根据DDR控制器的信息发送端口的时钟信号,对来自DDR控制器的操作命令进行译码,若操作命令是写操作命令,则触发数据接收模块;若操作命令是读操作命令,则触发数据输出模块;
地址转换模块,用于根据DDR控制器的信息发送端口的时钟信号,将来自DDR控制器的外部地址转换为FPGA设备内部存储地址;
数据接收模块,用于根据DDR控制器的信息发送端口的时钟信号,接收来自DDR控制器的外部输入数据,并按照所述内部存储地址,将所述外部输入数据存储到数据存储模块;
数据输出模块,用于根据DDR控制器信息接收端口的时钟信号,将FPGA设备中的数据存储模块中的所述内部存储地址对应的数据输出给DDR控制器;
数据存储模块,用于存储数据。
本发明实施例通过将FPGA设备作为DDR系统中的DDR memory一侧,FPGA根据DDR控制器的读写操作命令,对数据进行相应操作的方案,提出了一种由DDR控制器与FPGA组成的新的DDR系统,同时使DDR系统可以充分利用FPGA的数据处理能力来提高自身的数据处理能力。
附图说明
图1为本发明实施例一中DDR接口中的FPGA设备的写操作的执行步骤示意图;
图2为本发明实施例二中DDR接口中的FPGA设备的读操作的执行步骤示意图;
图3为本发明实施例三中能够在DDR接口中实现写操作的FPGA设备结构示意图;
图4(a)为本发明实施例四中能够在DDR接口中实现读操作的FPGA设备结构示意图;
图4(b)为本发明实施例四中第二锁相环模块的结构示意图;
图4(c)为本发明实施例四中第二锁相环模块的结构示意图;
图5为本发明实施例四中第二锁相环模块的结构示意图;
图6为本发明实施例五中可同时在DDR接口中实现读、写操作的FPGA设备结构示意图。
具体实施方式
为了满足DDR系统多样性的要求,本发明提出了扩展现场可编程门阵列(Field Programmable Gate Array,FPGA)设备的功能,使其与DDR存储器配合组成DDR系统,进一步地,根据FPGA对数据的强大处理能力,提高DDR系统的综合能力。
下面结合说明书附图对本发明实施例进行详细描述。
在由DDR控制器和FPGA设备组成的DDR系统中,DDR控制器与FPGA设备间可以通过DDR规范定义的信号线进行通信,FPGA设备对数据的操作包括对数据的写入操作和读出操作,下面分别对FPGA设备的读、写操作方法进行描述。
如图1所示,为本发明实施例一DDR接口中的FPGA设备的写操作的执行步骤示意图,所述FPGA设备的写操作包括以下步骤:
步骤101:FPGA设备接收来自DDR控制器的时钟信号,接收到的时钟信号是DDR控制器的信息发送端口的时钟信号。
步骤102:FPGA设备将自身的时钟信号调整为接收到的DDR控制器的信息发送端口的时钟信号。
在本实施例一中,FPGA设备内部有一个锁相环模块,该锁相环模块FPGA设备自身的时钟信号调整为所述DDR控制器的信息发送端口的时钟信号,使后续的写操作过程使用DDR控制器的信息发送端口的时钟信号。
时钟信号的调整过程包括相位调整和频率调整,使得调整后FPGA设备自身的时钟信号与DDR控制器的信息发送端口的时钟信号的相位和频率都相同。
通过步骤101和步骤102,使得FPGA设备内部执行写操作的各个部件的时钟信号与DDR控制器中的时钟信号同步,因此,FPGA设备后续能够正确地采样来自DDR控制器的地址信息和数据信息。
在本实施例一中,步骤102的目的是为了说明FPGA设备后续进行写操作时采用的时钟信号的出处。在本实施例一中可以不限于步骤102的方式,而是在后续写操作中直接根据步骤101中接收到的DDR控制器的信息发送端口的时钟信号进行相应的步骤。
步骤103:FPGA设备接收到来自DDR控制器的操作命令后,根据DDR控制器的信息发送端口的时钟信号对接收到的操作命令进行译码,确定接收到的是写操作命令。
步骤104:FPGA设备接收来自DDR控制器的外部输入地址。
接收到的外部输入地址的格式是DDR规范定义的格式,表示DDR控制器希望将发出的数据存储在所述外部输入地址对应的空间内。
由于通过步骤101和步骤102使FPGA设备的写操作与DDR控制器的信息发送端口的时钟信号同步,因此,在本步骤中,FPGA设备能够从地址线(Addr)、行地址信号线(RAS)和列地址信号线(CAS)中正确采样,得到DDR控制器发出的外部输入地址。
步骤105:FPGA设备按照DDR控制器的信息发送端口的时钟信号将所述外部输入地址转换为内部存储地址。
FPGA设备内部有存储设备:随机存储器(random access memory,RAM),RAM中地址格式与接收到外部输入地址的格式不同,需要将外部输入地址指示的信息转换为RAM中的地址格式形式。
在步骤104中,FPGA设备同时接收到的还有DDR控制器发出的片选信号,则在步骤105中,FPGA设备首先根据接收到的片选信号确定RAM中存储数据的区域,然后再进行地址转换,转换后的内部存储地址是确定的区域中存储单元的地址。
步骤106:FPGA设备按照DDR控制器的信息发送端口的时钟信号接收来自DDR控制器的外部输入数据。
在本实施例一中,DDR控制器可以通过三态信号:DDR的数据信号(DQ)和数据闸门信号(DQ strobe,DQS)承载外部输入数据。根据规范定义,在写操作时,DQS信号的相位与DQ信号的相位相差1/4周期,也就是说DQS信号的上升沿或下降沿中的一个在时序上与DQ信号的低电平或高电平中的一个的中心处对齐。
在信号从DDR控制器传输到FPGA设备的过程中,由于传输条件和传输距离的影响,可能会使得DQS和DQ的相位关系发生改变,因此,在步骤106中,FPGA设备首先要对DQS和DQ的相位进行调整,使得调整后的DQS信号相位与DQ信号相位相差1/4周期,也就是保证FPGA设备能够根据自身的时钟信号,正确地对DQS和DQ进行数据采样,得到DDR控制器发出的外部输入数据。
步骤107:FPGA设备根据DDR控制器的信息发送端口的时钟信号,将所述外部输入数据存储到所述内部存储地址对应的存储空间中。
FPGA设备内部RAM的空间大小可以根据DDR控制器的信息发送端口的位宽和需要存储的数据大小确定。
在步骤103至步骤107中,采用的DDR控制器的信息发送端口的时钟信号可以是步骤102中FPGA设备对时钟信号调整后自身的时钟信号,也可以是根据步骤101中接收到的未处理过的时钟信号。
步骤108:FPGA设备接收来自DDR控制器的数据处理命令。
由于使用FPGA设备模拟DDR系统中的DDR memory,则DDR控制器可以进一步要求FPGA设备对RAM中的数据进行操作。
FPGA设备接收到的数据处理命令可以在步骤103的操作命令中携带,也可以是DDR控制器在需要时单独向FPGA设备发出的命令。
步骤109:FPGA设备将外部输入数据按照所述数据处理命令进行相应的处理。
FPGA可以对写入的数据进行多种操作,例如:当FPGA接收到的数据处理命令为FFT操作,则FPGA可以对写入的数据进行FFT操作后,再让DDR控制器进行回读;当FPGA接收到的数据处理命令为数据的加权,移位,旋转等,FPGA可以对写入的数据进行命令要求的操作后,再由DDR控制器进行回读。
处理后的外部输入数据可以重新存入RAM中,也可以回读给DDR控制器。本实施例一中,步骤108和步骤109不是实现本发明目的的必要步骤。
图2为本发明实施例二DDR接口中的FPGA设备的读操作的执行步骤示意图,FPGA设备的读操作包括以下步骤:
步骤201:FPGA设备接收来自DDR控制器的时钟信号,接收到的时钟信号是DDR控制器的信息发送端口的时钟信号。
步骤202:FPGA设备调整DDR控制器的信息发送端口的时钟信号,调整后的时钟信号与DDR控制器信息接收端口的时钟信号相同。
在本步骤中,调整DDR控制器的信息发送端口的时钟信号包括调整其相位和频率,调整后的时钟信号无论是相位还是频率都与DDR控制器信息接收端口的时钟信号相同。
在本实施例二中,FPGA对接收到的来自DDR控制器的时钟信号可以进行两次调整,一次调整是利用自身的第一锁相环模块,将接收到的DDR控制器的信息发送端口的时钟信号作为第一锁相环模块输出的时钟信号,提供给执行命令译码、执行地址转换的步骤;另一次调整是利用第二锁相环模块将信息发送端口的时钟信号的相位和频率调整为信息接收端口的时钟信号的相位和频率,并将调整后的时钟信号作为第二锁相环模块输出的时钟信号,提供给执行数据输出的步骤。
这两次信号调整的先后顺序不限定,也可以同时进行。
步骤203:FPGA设备接收到来自DDR控制器的操作命令后,根据DDR控制器的信息发送端口的时钟信号,对接收到的操作命令进行译码,确定接收到的是读操作命令。
步骤204:FPGA设备根据DDR控制器的信息发送端口的时钟信号接收来自DDR控制器的外部输出地址。
步骤205:FPGA设备根据DDR控制器的信息发送端口的时钟信号将所述外部输入地址转换为内部存储地址。
本步骤中接收到的外部输出地址的格式与实施例一中的外部输入格式相同,外部输出地址表示DDR控制器希望FPGA设备读出的数据所在的地址。
由于在步骤203至步骤205中,FPGA设备仍然是对DDR控制器的信息发送端口发出的信息进行操作,为了保证FPGA设备能够正确获得DDR控制器发出的信息,这三步骤中FPGA设备使用的时钟信号都是第一锁相环模块输出的与DDR控制器的信息发送端口的时钟信号相同的时钟信号。
步骤206:FPGA设备按照DDR控制器信息接收端口的时钟信号,读出所述内部存储地址对应的数据。
步骤207:FPGA设备按照DDR控制器信息接收端口的时钟信号,将读出的数据输出给DDR控制器。
所述数据可以通过DQ信号和DQS信号输出给DDR控制器。在读数据的过程中,不用专门调整DQ和DQS的相位,因为DQ和DQS都是由时钟信号控制的,而本步骤使用的是第二锁相环模块输出的时钟信号,因此相应的DQ和DQS输出能够满足DDR controller的规范。
由于步骤206和步骤207中的数据是由FPGA设备通过DDR控制器信息的接收端口传输给DDR控制器的,为保证DDR控制器能够正确接收,FPGA设备传输时采用的时钟信号是第二锁相环模块输出的与DDR控制器信息的接收端口的时钟信号相同的时钟信号。
在实施例二中,FPGA设备将内部存储地址对应的数据输出给DDR控制器之前,FPGA还可以对存储在FPGA内部的数据进行处理;或者对接收到的来自FPGA以外的其他设备的数据进行处理。
通过FPGA设备读入数据或写出数据的方法,提出了一种新的DDR系统的工作模式,即由DDR控制器与FPGA组成的DDR系统的工作模式,进一步地,在传统DDR系统的基础上增强了DDR memory一侧对数据的处理能力,整体上提升了DDR系统的处理能力,使得本发明中的DDR系统能够应用于更多复杂的情况。
本发明实施例三是与实施例一属于同一发明构思下的一种应用在DDR接口中具有的写操作能力的FPGA设备,如图3所示,实施例三中的FPGA设备包括锁相环模块11、地址转换模块12、数据接收模块13和数据存储模块14,其中:锁相环模块11用于接收DDR控制器的信息发送端口的时钟信号,并将接收到的所述时钟信号作为地址转换模块12、数据接收模块13和数据存储模块14的时钟信号;地址转换模块12用于在接收到来自DDR控制器的写操作命令后,根据DDR控制器的信息发送端口的时钟信号,将来自DDR控制器的外部输入地址转换为FPGA设备内部存储地址;数据接收模块13用于根据DDR控制器的信息发送端口的时钟信号,接收来自DDR控制器的外部输入数据;数据存储模块14用于按照所述内部存储地址和DDR控制器的信息发送端口的时钟信号,将接收到外部输入数据进行存储。
本实施例三中的数据存储模块14可以是RAM。
本实施例三中的FPGA设备在执行写操作时,还可以对存储的数据进行相应的处理,可以进一步包括数据处理模块15,用于将所述外部输入数据进行存储后,根据接收到的来自DDR控制器的数据处理命令对存储的数据进行处理。
本实施例三中的数据接收模块13进一步可以划分为信号调整子模块21和采样子模块22,其中:信号调整子模块21用于将承载所述外部输入数据的DQ信号和DQS信号的相位进行调整,调整后的DQS信号相位与DQ信号相位相差1/4周期;采样子模块22用于根据DDR控制器的信息发送端口的时钟信号,从相位关系调整后的DQ信号和DQS信号中进行数据采样,得到所述外部输入数据。
信号调整子模块21的功能是保证DQS信号的相位与DQ信号的相位满足标准要求,因此在具体调整时,可以只调整DQ信号的相位,或者是只调整DQS信号的相位。以调整DQ信号的相位为例,信号调整子模块21将DQ信号的相位延迟一个设定时间段,使得DQ信号延迟后的相位与DQS信号的相位满足标准要求。
本发明实施例四是与本发明实施例二属于同一发明构思下的一种在DDR接口中实现读操作的FPGA设备,如图4(a)所示,所述FPGA设备包括第一锁相环模块31、第二锁相环模块32、地址转换模块33和数据输出模块34,其中:第一锁相环模块32用于接收DDR控制器的信息发送端口的时钟信号,并将接收到的所述时钟信号作为地址转换模块33的时钟信号;第二锁相环模块32用于将DDR控制器的信息发送端口的时钟信号调整为DDR控制器信息接收端口的时钟信号,并将调整后的时钟信号作为数据输出模块34的时钟信号;地址转换模块33用于在接收到来自DDR控制器的读操作命令后,根据DDR控制器的信息发送端口的时钟信号,将来自DDR控制器的外部输出地址转换为FPGA设备内部存储地址;数据输出模块34用于根据DDR控制器信息接收端口的时钟信号,将FPGA设备中的数据存储模块35中存储的所述内部存储地址对应的数据输出给DDR控制器。
第二锁相环模块32调整了时钟信号的相位和频率,使得调整后的时钟信号的相位和频率与DDR控制器信息接收端口的时钟信号的香味和频率相同。
本实施例中的第一锁相环模块和第二锁相环模块之间可以没有连线,这两个模块的输入都是通过管脚输入的时钟信号。
本实施例四中的数据存储模块35可以是RAM。
在实施例四中的FPGA设备中,地址转换模块33是根据来自DDR控制器的信息进行的操作,因此,使用的时钟信号是DDR控制器的信息发送端口的时钟信号;数据输出模块34是将数据输出给DDR控制器,因此,使用的时钟信号是DDR控制器的信息接收端口的时钟信号。
实施例四中的FPGA设备中还可以进一步包括数据处理模块36,用于存储在FPGA内的数据进行处理;或者,对接收到的来自FPGA以外的其他设备的数据进行处理。数据输出模块34输出的数据可能是数据处理模块36从其他非DDR控制器的设备中获取并处理的数据,因此,实施例四中的FPGA设备可以单向地向DDR控制器传输数据。也可以把DDR控制器发出的数据写入FPGA的RAM中,FPGA内部的数据处理模块对写入的数据进行处理后,再由DDR控制器读出,实现DDR控制器与FPGA设备间的双向数据传输。
下面以第二锁相环模块32调整时钟信号的相位为例,如图4(b)所示,第二锁相环模块32可以包括输入端口41、调整部件42和输出端口43,其中:输入端口41用于接收所述DDR控制器的信息发送端口的时钟信号;调整部件42用于将所述DDR控制器的信息发送端口的时钟信号的相位调整为DDR控制器信息接收端口的时钟信号的相位,并将得到的DDR控制器信息接收端口的时钟信号输出给数据输出模块34,以及,对相位调整后的时钟信号的相位再次调整为DDR控制器的信息发送端口的时钟信号的相位,并将得到的DDR控制器的信息发送端口的时钟信号通过输出端口43输出;输出端口43用于通过导线将调整部件输出的DDR控制器的信息发送端口的时钟信号传输给输入端口41。
进一步地,如图4(c)所示,输入端口41包括第一接口51、第二接口52和锁定部件53,调整部件42包括全局缓冲(BUFG)部件54、双重数据输出速率(output dual data rate,ODDR)部件55和时钟信号输出接口56,其中:第一接口51用于将接收DDR控制器的信息发送端口的时钟信号作为自身的时钟信号;锁定部件53用于将第一接口51的时钟信号与第二接口52的时钟信号锁定,第二接口52锁定后的时钟信号与第一接口51的时钟信号相同;第二接口52通过导线与输出端口43相连,所述输出端口43的时钟信号与第二接口52的时钟信号相同;BUFG部件54用于将接收到的第二接口52的时钟信号的相位进行调整为DDR控制器信息接收端口的时钟信号的相位;时钟信号输出接口56用于将BUFG部件调整后的时钟信号输出给数据输出模块34;ODDR部件55用于将BUFG部件54调整后的时钟信号的相位再次进行调整,再次调整后的时钟信号与DDR控制器的信息发送端口的时钟信号相同,并且将再次调整后的时钟信号传输给输出端口43。
如图5所示,为第二锁相环模块32的一种可能的实现结构,虚线内部是FPGA的内部,虚线以外是可见部分。其中:第一接口51为第一输入全局缓冲(IBUFG),第二接口52为第二IBUFG、输出端口43为I/O接口,时钟信号输出接口56为图5中的输出接口,锁定部件53为DCM_ADV(Digital ClockManagers_Advanced)部件,BUFG部件54和ODDR部件55分别为图5中的BUFG部件和ODDR部件。其工作原理是:DDR控制器的信息发送端口的时钟信号通过第一IBUFG输入至DCM_ADV部件的CLKIN端口,DCM_ADV部件将CLKIN端口和CLKFB端口锁定,使得第二IBUFG处的时钟信号也为DDR控制器的信息发送端口的时钟信号,并且,由于I/O端口与第二IBUFG通过外部反馈线相连(假设外部反馈线尽可能的短,没有信号损失),因此,I/O端口处B点的时钟信号也为DDR控制器的信息发送端口的时钟信号。当信号到达图中A点时,时钟信号仍为DDR控制器的信息发送端口的时钟信号,也就是说A点和B点的时钟信号相位相同。根据DDR控制器的信息发送端口的时钟信号和DDR控制器的信息接收端口的时钟信号的相位关系,确定将信息发送端口的时钟信号的相位调整为信息接收端口的时钟信号的相位时,相位调整的方向和大小,假设调整的相位是向左平移1/3周期,可以假设ODDR部件的延时为1/3周期,则经过ODDR部件的信号的相位将会被向右平移1/3周期(方向相反,大小不变),由于A点和B点的时钟信号相位相同,因此,经过BUFG部件的信号将会被向左平移1/3周期,调整为信息接收端口的时钟信号的相位。
综合以上各实施例,本发明实施例五还提供一种可同时用于读、写操作的FPGA设备,如图6所示,所述FPGA设备包括第一锁相环模块61、第二锁相环模块62、命令译码模块63、地址转换模块64、数据接收模块65、数据输出模块66和数据存储模块67,其中:第一锁相环模块61用于接收DDR控制器的信息发送端口的时钟信号,并将所述DDR控制器的信息发送端口的时钟信号作为命令译码模块63、地址转换模块64和数据接收模块65的时钟信号;第二锁相环模块62用于将DDR控制器的信息发送端口的时钟信号调整为DDR控制器信息接收端口的时钟信号,并将得到的DDR控制器信息接收端口的时钟信号作为数据输出模块66的时钟信号;命令译码模块63用于根据DDR控制器的信息发送端口的时钟信号,对来自DDR控制器的操作命令进行译码,若操作命令是写操作命令,则触发数据接收模块65;若操作命令是读操作命令,则触发数据输出模块66;地址转换模块64用于根据DDR控制器的信息发送端口的时钟信号,将来自DDR控制器的外部地址转换为FPGA设备内部存储地址;数据接收模块65用于根据DDR控制器的信息发送端口的时钟信号,接收来自DDR控制器的外部输入数据,并按照所述内部存储地址,将所述外部输入数据存储到数据存储模块67;数据输出模块66用于根据DDR控制器信息接收端口的时钟信号,将FPGA设备中的数据存储模块67中的所述内部存储地址对应的数据输出给DDR控制器;数据存储模块67用于存储数据。
第二锁相环模块62调整时钟信号包括调整时钟信号的香味和频率。
所述FPGA设备还包括数据处理模块68,用于将所述数据存储模块67中存储的数据进行处理;或者,将来自FPGA以外的其他设备的数据进行处理。
本实施例中的地址转换模块与实施例三和实施例四中的地址转换模块相同;本实施例中的数据接收模块与实施例三中的数据接收模块相同;本实施例中的数据输出模块与实施例四中的数据输出模块相同;本实施例中的第一锁相环模块与实施例三中的锁相环模块和实施例四中的第一锁相环模块相同;本实施例中的第二锁相环模块与实施例四中的第二锁相环模块相同。
本发明各实施例涉及的数据存储模块可以相同,各实施例中的数据处理模块也可以相同。
通过本发明实施例提高的方法和设备,扩展了FPGA的功能,将FPGA作为DDR系统中的DDR memory一端,实现了DDR系统结构的多样化;同时利用FPGA自身强大的数据处理能力提高了DDR系统的数据处理能力;并且,通过本发明记载的FPGA对时钟信号的调整方案,保证了FPGA与DDR控制器之间的正确通信。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统的写操作方法,其特征在于,所述写操作方法包括以下步骤:
FPGA设备接收来自DDR接口中的DDR控制器的信息发送端口的时钟信号;
FPGA设备接收到来自DDR控制器的写操作命令后,根据DDR控制器的信息发送端口的时钟信号将来自DDR控制器的外部输入地址转换为FPGA设备内部存储地址;
FPGA设备将承载DDR控制器发送的外部输入数据的DDR的数据信号DQ和DDR的数据闸门信号DQS的相位进行调整,调整后的DQS信号相位与DQ信号相位相差1/4周期;
FPGA设备根据DDR控制器的信息发送端口的时钟信号,从相位关系调整后的DQ信号和DQS信号中进行数据采样,得到所述外部输入数据,并按照所述内部存储地址进行存储。
2.如权利要求1所述的方法,其特征在于,所述写操作方法还包括:
FPGA设备接收来自DDR控制器的数据处理命令;
FPGA设备将所述外部输入数据进行存储后,根据所述数据处理命令对存储的数据进行处理。
3.一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统的读操作方法,其特征在于,所述读操作方法包括以下步骤:
FPGA设备接收DDR控制器的信息发送端口的时钟信号;
FPGA设备将DDR控制器的信息发送端口的时钟信号调整为DDR控制器信息接收端口的时钟信号;
FPGA设备接收到来自DDR控制器的读操作命令后,根据DDR控制器的信息发送端口的时钟信号将来自DDR控制器的外部输出地址转换为FPGA设备内部存储地址;
FPGA设备根据DDR控制器的信息接收端口的时钟信号将所述内部存储地址对应的数据输出给DDR控制器。
4.如权利要求3所述的方法,其特征在于,FPGA设备将DDR控制器的信息发送端口的时钟信号调整为DDR控制器信息接收端口的时钟信号,包括:
FPGA设备将DDR控制器的信息发送端口的时钟信号的相位调整为DDR控制器信息接收端口的时钟信号的相位,得到DDR控制器信息接收端口的时钟信号;以及,
FPGA设备对相位调整后的时钟信号的相位再次调整后,得到DDR控制器的信息发送端口的时钟信号的相位;
FPGA设备将再次调整后得到的DDR控制器的信息发送端口的时钟信号通过导线反馈给FPGA设备。
5.如权利要求3或4所述的方法,其特征在于,FPGA设备将内部存储地址对应的数据输出给DDR控制器之前,所述方法还包括:
FPGA对存储在FPGA内部的数据进行处理;或者
FPGA对接收到的来自FPGA以外的其他设备的数据进行处理。
6.一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统中的FPGA设备,其特征在于,所述FPGA设备包括锁相环模块、地址转换模块、数据接收模块和数据存储模块,其中:
锁相环模块,用于接收DDR控制器的信息发送端口的时钟信号,并将接收到的所述时钟信号作为地址转换模块、数据接收模块和数据存储模块的时钟信号;
地址转换模块,用于在接收到来自DDR控制器的写操作命令后,根据DDR控制器的信息发送端口的时钟信号,将来自DDR控制器的外部输入地址转换为FPGA设备内部存储地址;
数据接收模块,用于将承载DDR控制器发送的外部输入数据的DDR的数据信号DQ和DDR的数据闸门信号DQS的相位进行调整,调整后的DQS信号相位与DQ信号相位相差1/4周期,根据DDR控制器的信息发送端口的时钟信号,从相位关系调整后的DQ信号和DQS信号中进行数据采样,得到外部输入数据;
数据存储模块,用于按照所述内部存储地址和DDR控制器的信息发送端口的时钟信号,将得到的外部输入数据进行存储。
7.如权利要求6所述的FPGA设备,其特征在于,所述FPGA设备还包括:
数据处理模块,用于将所述外部输入数据进行存储后,根据接收到的来自DDR控制器的数据处理命令对存储的数据进行处理。
8.一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统中的FPGA设备,其特征在于,所述FPGA设备包括第一锁相环模块、第二锁相环模块、地址转换模块和数据输出模块,其中:
第一锁相环模块,用于接收DDR控制器的信息发送端口的时钟信号,并将接收到的所述时钟信号作为地址转换模块的时钟信号;
第二锁相环模块,用于将接收到的DDR控制器的信息发送端口的时钟信号调整为DDR控制器信息接收端口的时钟信号,并将所述的DDR控制器信息接收端口的时钟信号作为数据输出模块的时钟信号;
地址转换模块,用于在接收到来自DDR控制器的读操作命令后,根据DDR控制器的信息发送端口的时钟信号,将来自DDR控制器的外部输出地址转换为FPGA设备内部存储地址;
数据输出模块,用于根据DDR控制器信息接收端口的时钟信号,将FPGA设备中的数据存储模块中存储的所述内部存储地址对应的数据输出给DDR控制器。
9.如权利要求8所述的FPGA设备,其特征在于,所述第二锁相环模块包括:
输入端口,用于接收所述DDR控制器的信息发送端口的时钟信号;
调整部件,用于将所述DDR控制器的信息发送端口的时钟信号的相位调整为DDR控制器信息接收端口的时钟信号的相位,并将得到的DDR控制器信息接收端口的时钟信号输出给数据输出模块,以及,对相位调整后的时钟信号的相位再次调整为DDR控制器的信息发送端口的时钟信号的相位,并将得到的DDR控制器的信息发送端口的时钟信号通过输出端口输出;
输出端口,用于通过导线将调整部件输出的DDR控制器的信息发送端口的时钟信号传输给输入端口。
10.如权利要求9所述的FPGA设备,其特征在于,
所述输入端口包括第一接口、第二接口和锁定部件,调整部件包括全局缓冲BUFG部件、双重数据输出速率ODDR部件和时钟信号输出接口,其中:
第一接口,用于将接收DDR控制器的信息发送端口的时钟信号作为自身的时钟信号;
锁定部件,用于将第一接口的时钟信号与第二接口的时钟信号锁定,第二接口锁定后的时钟信号与第一接口的时钟信号相同;
第二接口通过导线与输出端口相连,所述输出端口的时钟信号与第二接口的时钟信号相同;
BUFG部件,用于将接收到的第二接口的时钟信号的相位进行调整为DDR控制器信息接收端口的时钟信号的相位;
时钟信号输出接口,用于将BUFG部件调整后的时钟信号输出给数据输出模块;
ODDR部件,用于将BUFG部件调整后的时钟信号的相位再次进行调整,再次调整后的时钟信号与DDR控制器的信息发送端口的时钟信号相同,并且将再次调整后的时钟信号传输给输出端口。
11.如权利要求8所述的FPGA设备,其特征在于,所述设备还包括:
数据处理模块,用于对存储在FPGA内的数据进行处理;或者,对接收到的来自FPGA以外的其他设备的数据进行处理。
12.一种由双倍数据速率DDR控制器与现场可编程门阵列FPGA设备组成的DDR系统中的FPGA设备,其特征在于,所述FPGA设备包括第一锁相环模块、第二锁相环模块、命令译码模块、地址转换模块、数据接收模块、数据输出模块和数据存储模块,其中:
第一锁相环模块,用于接收DDR控制器的信息发送端口的时钟信号,并将所述DDR控制器的信息发送端口的时钟信号作为命令译码模块、地址转换模块和数据接收模块的时钟信号;
第二锁相环模块,用于将接收到的DDR控制器的信息发送端口的时钟信号调整为DDR控制器信息接收端口的时钟信号,并将得到的DDR控制器信息接收端口的时钟信号作为数据输出模块的时钟信号;
命令译码模块,用于根据DDR控制器的信息发送端口的时钟信号,对来自DDR控制器的操作命令进行译码,若操作命令是写操作命令,则触发数据接收模块;若操作命令是读操作命令,则触发数据输出模块;
地址转换模块,用于根据DDR控制器的信息发送端口的时钟信号,将来自DDR控制器的外部地址转换为FPGA设备内部存储地址;
数据接收模块,用于根据DDR控制器的信息发送端口的时钟信号,接收来自DDR控制器的外部输入数据,并按照所述内部存储地址,将所述外部输入数据存储到数据存储模块;
数据输出模块,用于根据DDR控制器信息接收端口的时钟信号,将FPGA设备中的数据存储模块中的所述内部存储地址对应的数据输出给DDR控制器;
数据存储模块,用于存储数据;
数据处理模块,用于将所述数据存储模块中存储的数据进行处理;或者,将来自FPGA以外的其他设备的数据进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910119666 CN101847434B (zh) | 2009-03-25 | 2009-03-25 | Ddr接口中的fpga设备的读、写操作方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910119666 CN101847434B (zh) | 2009-03-25 | 2009-03-25 | Ddr接口中的fpga设备的读、写操作方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101847434A CN101847434A (zh) | 2010-09-29 |
CN101847434B true CN101847434B (zh) | 2013-06-05 |
Family
ID=42772022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910119666 Active CN101847434B (zh) | 2009-03-25 | 2009-03-25 | Ddr接口中的fpga设备的读、写操作方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101847434B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064809B (zh) * | 2012-12-20 | 2016-06-08 | 华为技术有限公司 | 源同步双倍数据速率接口的采样装置及其采样方法 |
CN105677594B (zh) * | 2016-01-20 | 2018-08-10 | 中国人民解放军国防科学技术大学 | Ddr3接口中的fpga设备的复位、读写校准方法及设备 |
CN106847319B (zh) * | 2016-12-23 | 2021-06-29 | 深圳市紫光同创电子有限公司 | 一种fpga电路及窗口信号调整方法 |
CN108874686B (zh) * | 2017-05-08 | 2021-08-03 | 龙芯中科技术股份有限公司 | 内存参数调节方法、装置及设备 |
CN108038068B (zh) * | 2017-11-16 | 2020-12-18 | 灿芯创智微电子技术(北京)有限公司 | 一种基于ddr读数据同步方法及系统 |
US10522204B1 (en) * | 2018-11-07 | 2019-12-31 | Realtek Semiconductor Corporation | Memory signal phase difference calibration circuit and method |
CN110399319B (zh) * | 2019-07-25 | 2021-03-23 | 尧云科技(西安)有限公司 | 一种NAND Flash PHY |
CN116052742B (zh) * | 2022-07-13 | 2024-07-02 | 成都海光集成电路设计有限公司 | 数据处理方法、装置、存储控制器、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1832035A (zh) * | 2005-12-27 | 2006-09-13 | 中国科学院计算技术研究所 | 适合矩阵转置的ddr存储控制器及矩阵行列访问方法 |
CN101089990A (zh) * | 2006-04-21 | 2007-12-19 | 奥特拉股份有限公司 | 用于数据接口的写入侧校准 |
CN101340365A (zh) * | 2008-08-11 | 2009-01-07 | 杭州瑞纳科技有限公司 | 一种高带宽利用率的ddr2 sdram控制器设计方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535043B2 (en) * | 2000-05-26 | 2003-03-18 | Lattice Semiconductor Corp | Clock signal selection system, method of generating a clock signal and programmable clock manager including same |
US7739539B2 (en) * | 2006-10-13 | 2010-06-15 | Atmel Corporation | Read-data stage circuitry for DDR-SDRAM memory controller |
-
2009
- 2009-03-25 CN CN 200910119666 patent/CN101847434B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1832035A (zh) * | 2005-12-27 | 2006-09-13 | 中国科学院计算技术研究所 | 适合矩阵转置的ddr存储控制器及矩阵行列访问方法 |
CN101089990A (zh) * | 2006-04-21 | 2007-12-19 | 奥特拉股份有限公司 | 用于数据接口的写入侧校准 |
CN101340365A (zh) * | 2008-08-11 | 2009-01-07 | 杭州瑞纳科技有限公司 | 一种高带宽利用率的ddr2 sdram控制器设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101847434A (zh) | 2010-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101847434B (zh) | Ddr接口中的fpga设备的读、写操作方法及设备 | |
US6459651B1 (en) | Semiconductor memory device having data masking pin and memory system including the same | |
KR100888597B1 (ko) | 메모리 인터페이스 제어 장치 및 제어 방법 | |
CN113553277A (zh) | 一种ddr5 sdram的高吞吐率、低延迟phy接口电路装置 | |
CN100585727C (zh) | 半导体存储装置和用于高频操作的模块 | |
US7499370B2 (en) | Synchronous semiconductor memory device | |
US11004531B2 (en) | Test control circuit, semiconductor memory apparatus and semiconductor system using the test control circuit | |
US11372591B2 (en) | Memory apparatus, a semiconductor system including the same and an operating method thereof | |
US10014040B2 (en) | Semiconductor apparatus, semiconductor system, and system relating to dual clock transmission | |
CN117908790B (zh) | 一种基于单Channel多Die的ONFI PHY快速切换训练装置 | |
CN105677594A (zh) | Ddr3接口中的fpga设备的复位、读写校准方法及设备 | |
US9443570B1 (en) | Memory apparatus with training function and memory system using the same | |
US10593374B2 (en) | Memory module | |
US20020134994A1 (en) | Memory configuration | |
CN103970708A (zh) | 一种fpga与通用处理器之间的通信方法及系统 | |
US8531896B2 (en) | Semiconductor system, semiconductor memory apparatus, and method for input/output of data using the same | |
US7248663B2 (en) | Apparatus and method for transforming data transmission speed | |
US20070208980A1 (en) | Method of transmitting data between different clock domains | |
US8593885B2 (en) | Staggered mode transitions in a segmented interface | |
CN102522113B (zh) | 一种sdram桥接电路 | |
US7215597B2 (en) | Memory device having components for transmitting and receiving signals synchronously | |
KR100976413B1 (ko) | 도메인 크로싱 회로 및 이를 포함하는 반도체 장치 | |
CN118197385B (zh) | 一种快速切换频点和Die的ONFI PHY训练装置及方法 | |
KR100801709B1 (ko) | 메모리 모듈 및 이를 구비한 메모리 시스템 | |
CN106294224A (zh) | 存储器系统及其存储器实体接口电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |