一种低功耗、高数据吞吐量的SDRSDRAM控制器及其工作方法与流程

文档序号:11154903阅读:825来源:国知局
一种低功耗、高数据吞吐量的SDR SDRAM控制器及其工作方法与制造工艺

本发明涉及一种低功耗、高数据吞吐量的SDR SDRAM控制器及其工作方法,属于FPGA IP核设计的技术领域。



背景技术:

IP核全称知识产权核(Intellectual Property Core),是指某一方提供的形式为逻辑单元、芯片设计的可重用模块。设计人员能够以IP核为基础进行专用集成电路或现场可编程逻辑门阵列的逻辑设计,以减少设计周期。

SDR SDRAM具有很好的性价比,在很多领域中得到广泛应用,但SDR SDRAM有比较严格的时序要求,逻辑控制比较复杂,需要有一个专门控制器来实现数据读写控制,该控制器可以使用Verilog HDL或VHDL语言来实现。

FPGA具有可重构、逻辑资源丰富、I/O接口灵活等特点,基于FPGA的SDR SDRAM控制器设计能够在很大程度上简化设计方法,缩短产品设计者开发周期。

目前常见SDR SDRAM控制器的内部时钟和端口I/O时钟都工作在一个时钟频率上,而目前SDR SDRAM的工作时钟频率达到了200MHz,越高的内部时钟频率意味着功耗的增加和器件性能要求的提高,随之带来成本的提升,对于消费电子领域应用,确实带来了不小的挑战。



技术实现要素:

针对现有技术的不足,本发明提供一种低功耗、高数据吞吐量的SDR SDRAM控制器。

本发明还提供一种上述控制器的工作方法。

本发明利用FPGA芯片I/O逻辑的速率专换PHY(OSER/IDES)资源,通过增加数据位宽的办法将I/O时钟速率进一步提高,而控制器工作时钟仅为I/O时钟速率的一半,既增加了读写数据吞吐量,又降低了器件功耗和成本。

技术术语解释:

PLL(Phase Locked Loop):为锁相回路或锁相环电路。

本发明的技术方案如下:

一种低功耗、高数据吞吐量的SDR SDRAM控制器,包括PLL、自动刷新模块、用户接口模块、命令控制模块和CLKDIV模块、OSER/IDES接口模块。本发明通过上述模块间的相互协作实现对SDR SDRAM初始化、自动刷新和数据读写功能,所述SDR SDRAM指一种存储类型的IC芯片,SDR SDRAM控制器为控制SDRAM工作的IP核。

所述PLL为FPGA芯片内部自带的锁相环电路,通过PLL产生SDR SDRAM控制器所需的时钟信号,包括CLKDIV时钟和SDR SDRAM时钟;所述CLKDIV时钟为所述CLKDIV模块提供时钟源,与SDR SDRAM时钟的频率值相等;SDR SDRAM时钟为SDR SDRAM提供工作时钟。

所述自动刷新模块为命令控制模块提供自动刷新请求信号,用于SDR SDRAM刷新控制。保证数据存储的有效性。

所述用户接口模块介于用户接口与命令控制模块中间,实现数据处理、地址处理和空闲指示处理;用户接口模块与用户接口间的信号包括读写数据、读写地址、读写使能、读写长度、空闲指示、读写响应、读有效指示和时钟。用户接口模块根据空闲指示和自身需求来决定是否进行数据读写。

所述命令控制模块的作用包括:完成初始化处理、自动刷新处理、控制器时序控制和命令数据收发处理;

所述命令控制模块与用户接口模块间信号包括读写使能、读写地址、读写数据、空闲指示和读有效指示;

所述命令控制模块与自动刷新模块间信号包括自动刷新请求、自动刷新响应;

所述命令控制模块与存储器接口间接口信号包括地址、数据、控制;上电后,命令控制模块首先进行初始化等待,然后对SDR SDRAM进行初始化,完成后进入空闲状态,根据自动刷新请求或读写请求进行工作。

所述初始化处理用于进行初始化等待,并初始化SDR SDRAM控制器;

所述自动刷新处理用于SDR SDRAM的刷新控制,保证数据存储的有效性;

所述控制器时序控制用于产生SDR SDRAM控制器的初始化、刷新、读写操作的工作时序;

所述命令数据收发处理用于产生发送到SDR SDRAM的各种控制和读写命令。

所述CLKDIV模块为FPGA芯片内部资源,为OSER/IDES接口模块提供数据时钟:由CLKDIV模块产生2分频得到控制器工作时钟,为自动刷新模块、用户接口模块和命令控制模块提供时钟信号。

所述OSER/IDES接口模块包括OSER接口模块和IDES接口模块;所述OSER/IDES接口模块的链路时钟来自CLKDIV时钟,数据时钟来自CLKDIV模块的分频时钟。

优选的,所述OSER/IDES接口模块的速率比为1:4。

一种低功耗、高数据吞吐量的SDR SDRAM控制器的工作方法,包括初始化、自动刷新、数据地址处理、数据读写操作和预充电处理。

根据本发明优选的,一种低功耗、高数据吞吐量的SDR SDRAM控制器的工作方法,具体步骤包括:

(1)命令控制模块首先进行初始化等待,待达到预设等待时间后,进入步骤(2);

(2)然后命令控制模块对SDR SDRAM进行初始化;

(3)判断初始化SDR SDRAM控制器是否完成,如果完成,进入步骤(4),否则,返回步骤(2);

(4)SDR SDRAM控制器置于空闲状态;

(5)命令控制模块判断所述自动刷新模块是否发出自动刷新请求,如果是,所述命令控制模块开始对SDR SDRAM执行自动刷新操作,刷新完成后返回步骤(4);否则,进入步骤(6);

(6)用户接口模块判断用户接口是否有读写请求,如果有,用户接口模块对收到的数据、地址分别进行缓存处理、地址映射,然后向命令控制模块发送读写请求,进入步骤(7);如果没有,返回步骤(4);

(7)命令控制模块根据用户接口模块的读写请求向SDR SDRAM发送激活、读写指令,并通过OSER/IDES接口模块完成并串转换后发给SDR SDRAM,进入步骤(8);

(8)命令控制模块根据用户接口模块发送来的数据长度进行读写,同时读写数据通过OSER/IDES接口模块完成并串/串并转换;

(9)命令控制模块判断读写是否结束,如果是,进入步骤(10);否则,返回步骤(9);

(10)命令控制模块对SDR SDRAM进行预充电,完成后进入步骤(4)。

本发明的优点在于:

本发明所述一种低功耗、高数据吞吐量的SDR SDRAM控制器及其工作方法,具有电路实现灵活、可移植性好等特点;本发明利用了FPGA芯片I/O逻辑的速率专换PHY(OSER/IDES),通过增加数据位宽的办法将I/O速率进一步提高,而控制器工作时钟仅为I/O时钟速率的一半,既增加了读写数据吞吐量,又降低了器件功耗和成本,提升了消费电子等领域产品的竞争力。

基于目前SDR SDRAM控制器的吞吐量、功耗和成本问题,通过FPGA芯片内部丰富的逻辑、PLL和OSER/IDES资源实现一种低功耗、高数据吞吐量的SDRSDRAM控制器电路,实现了既提高读写数据吞吐量,又降低器件功耗和成本的目的。

本发明充分利用FPGA芯片资源丰富、电路实现灵活和代码好移植等特点,通过FPGA芯片内部丰富的逻辑、PLL和OSER/IDES资源实现低功耗高数据吞吐量SDR SDRAM控制器。

附图说明

图1是本发明所述控制器的电路模块连接示意图;

图2是本发明所述方法的流程图。

具体实施方式

下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。

如图1、2所示。

实施例1、

一种低功耗、高数据吞吐量的SDR SDRAM控制器,包括PLL、自动刷新模块、用户接口模块、命令控制模块和CLKDIV模块、OSER/IDES接口模块。

所述PLL为FPGA芯片内部自带的锁相环电路,通过PLL产生SDR SDRAM控制器所需的时钟信号,包括CLKDIV时钟和SDR SDRAM时钟;所述CLKDIV时钟为所述CLKDIV模块提供时钟源,与SDR SDRAM时钟的频率值相等;SDR SDRAM时钟为SDR SDRAM提供工作时钟。

所述自动刷新模块为命令控制模块提供自动刷新请求信号,用于SDR SDRAM刷新控制。

所述用户接口模块介于用户接口与命令控制模块中间,实现数据处理、地址处理和空闲指示处理;用户接口模块与用户接口间的信号包括读写数据、读写地址、读写使能、读写长度、空闲指示、读写响应、读有效指示和时钟。

所述命令控制模块的作用包括:完成初始化处理、自动刷新处理、控制器时序控制和命令数据收发处理;

所述命令控制模块与用户接口模块间信号包括读写使能、读写地址、读写数据、空闲指示和读有效指示;

所述命令控制模块与自动刷新模块间信号包括自动刷新请求、自动刷新响应;

所述命令控制模块与存储器接口间接口信号包括地址、数据、控制;上电后,命令控制模块首先进行初始化等待,然后对SDR SDRAM进行初始化,完成后进入空闲状态,根据自动刷新请求或读写请求进行工作。

所述初始化处理用于进行初始化等待,并初始化SDR SDRAM控制器;

所述自动刷新处理用于SDR SDRAM的刷新控制,保证数据存储的有效性;

所述控制器时序控制用于产生SDR SDRAM控制器的初始化、刷新、读写操作的工作时序;

所述命令数据收发处理用于产生发送到SDR SDRAM的各种控制和读写命令。

所述CLKDIV模块为FPGA芯片内部资源,为OSER/IDES接口模块提供数据时钟:由CLKDIV模块产生2分频得到控制器工作时钟,为自动刷新模块、用户接口模块和命令控制模块提供时钟信号。

所述OSER/IDES接口模块包括OSER接口模块和IDES接口模块;所述OSER/IDES接口模块的链路时钟来自CLKDIV时钟,数据时钟来自CLKDIV模块的分频时钟。

所述OSER/IDES接口模块的速率比为1:4。

写SDR SDRAM时,要通过OSER接口模块对地址、控制和写数据做并串转换,把命令控制模块发来的两路并行地址、控制和写数据进行串行处理;一路信号送到OSER接口模块的D0和D1端口,另一路送到OSER接口模块的D2和D3端口。

读SDR SDRAM时,要通过OSER接口模块对地址、控制做并串转换,把命令控制模块发来的两路并行地址、控制进行串行处理;一路信号送到OSER接口模块的D0和D1端口,另一路送到OSER接口模块的D2和D3端口。同时对从SDRSDRAM来的串行读数据通过IDES接口模块进行串并转换,做数据对齐处理后,把从IDES接口模块输出端口Q0和Q2产生两路数据送到命令控制模块。

实施例2、

如实施例1所述的一种低功耗、高数据吞吐量的SDR SDRAM控制器的工作方法,具体步骤包括:

(1)命令控制模块首先进行初始化等待,待达到预设等待时间后,进入步骤(2);

(2)然后命令控制模块对SDR SDRAM进行初始化;

(3)判断初始化SDR SDRAM控制器是否完成,如果完成,进入步骤(4),否则,返回步骤(2);

(4)SDR SDRAM控制器置于空闲状态;

(5)命令控制模块判断所述自动刷新模块是否发出自动刷新请求,如果是,所述命令控制模块开始对SDR SDRAM执行自动刷新操作,刷新完成后返回步骤(4);否则,进入步骤(6);

(6)用户接口模块判断用户接口是否有读写请求,如果有,用户接口模块对收到的数据、地址分别进行缓存处理、地址映射,然后向命令控制模块发送读写请求,进入步骤(7);如果没有,返回步骤(4);

(7)命令控制模块根据用户接口模块的读写请求向SDR SDRAM发送激活、读写指令,并通过OSER/IDES接口模块完成并串转换后发给SDR SDRAM,进入步骤(8);

(8)命令控制模块根据用户接口模块发送来的数据长度进行读写,同时读写数据通过OSER/IDES接口模块完成并串/串并转换;

(9)命令控制模块判断读写是否结束,如果是,进入步骤(10);否则,返回步骤(9);

(10)命令控制模块对SDR SDRAM进行预充电,完成后进入步骤(4)。

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