CN101441556A - 一种dram控制器及其实现方法 - Google Patents
一种dram控制器及其实现方法 Download PDFInfo
- Publication number
- CN101441556A CN101441556A CNA2008102032622A CN200810203262A CN101441556A CN 101441556 A CN101441556 A CN 101441556A CN A2008102032622 A CNA2008102032622 A CN A2008102032622A CN 200810203262 A CN200810203262 A CN 200810203262A CN 101441556 A CN101441556 A CN 101441556A
- Authority
- CN
- China
- Prior art keywords
- address
- dram
- dram controller
- time sequence
- status table
- 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.)
- Pending
Links
Images
Landscapes
- Dram (AREA)
Abstract
本发明提供了一种优化的DRAM控制器及其实现方法,所述DRAM控制器针对周期性操作进行了优化,将周期性操作的指令固化在ROM存储器内,通过使用片上ROM存储器来模拟通用DRAM控制器的控制信号,从而减少了逻辑资源的使用,减少了芯片功耗和面积;并且相对于通用DRAM控制器,本发明从而减少了***集成难度。
Description
技术领域
本发明涉及动态随机存储器(Dynamic Random-Access Memory,简称DRAM)设计领域,特别涉及一种DRAM控制器及其实现方法。
背景技术
DRAM是一种高密度存储器,目前市场上的DRAM控制器有两种,分别是同步动态存储器(Synchronous Dynamic Random-Access Memory,简称SDRAM)和双倍速动态存储器(Double Data Rate Dynamic Random-Access Memory,简称DDR DRAM)。由于DRAM只能将数据保存很短的时间,所以必须隔一段时间刷新一次。其所有操作方式分为初始化操作、应用所需的读写操作(简称应用操作)以及自刷新操作。上述操作方式都是通过DRAM的地址线和控制线上的电平变化来实现的,这些电平变化的时序关系是确定的,可以通过DRAM厂商提供的资料查询到。当DRAM用于一种周期性操作时,即指每隔一段时间,就需要对DRAM存储器进行一次相同的操作,这个操作可以是一条操作指令,也可以是多条操作指令的组合。两个操作的间隔时间既可以是一样的,也可以是不一样的,但是必须小于DRAM的自刷新周期时间。此时如果使用目前通用的DRAM控制器,即采用有限状态机的方法来实现控制,则需要外部对DRAM控制器输入相应的指令,才能启动DRAM控制器的相应操作,这种实现方法需要使用大量的逻辑资源,从而增加了功耗。
发明内容
本发明的目的是提供一种DRAM控制器及其实现方法,所述控制器及实现方法可适用周期性操作的DRAM控制。通过时序表记录每个时刻通用DRAM控制器输出的各控制信号的状态,并进行保存;然后调用预先存储的初始化操作代码,应用操作代码,自刷新操作代码,模拟通用DRAM控制器的信号输出,每次按顺序读出,实现一次完整的周期性操作。本发明通过这种方法可以减少逻辑资源的使用,并且不再需要外部输入指令。
为了解决上述技术问题,本发明采用了如下技术手段:一种DRAM控制器,用于向一DRAM发送控制信号,所述DRAM控制器包括一个状态发生模块,其中,所述状态发生模块由ROM存储器和地址生成器组成;所述地址生成器接收一外部输入的启动使能信号和ROM存储器发送的状态使能信号,并向ROM存储器输出读使能信号和读地址信号,所述ROM存储器根据所述读使能信号和读地址信号输出相应的DRAM控制信号。
所述的ROM存储器按地址分成两个连续存储区间和两个空闲区间,第一个连续存储区间存放DRAM初始化操作代码时序状态表,入口地址为初始化代码入口地址;第二个连续存储区间存放应用操作代码时序状态表和自刷新操作代码时序状态表,入口地址为应用操作代码入口地址;所述连续存储区间与所述空闲区间交替排列。
所述的地址生成器由一个累加器和一个或运算器组成,地址生成器的输入信号为启动脉冲和状态使能,两者通过或运算器后生成启动使能信号输入至累加器,累加器输出其运算后的结果作为读地址。
所述的地址生成器输出的读使能信号为0时,ROM存储器输出的DRAM控制信号为全1,所述DRAM无相应操作;所述的地址生成器输出的读使能信号为1时,ROM存储器输出读地址指向的操作代码时序状态表对应的操作代码,即输出相应的DRAM控制信号。
当DRAM为双速率时,所述的DRAM控制器还包括一个双/单速率转换器,对DRAM控制器的输入/输出数据进行速率转换。
本发明的另一方案是提供了一种DRAM控制器的实现方法,用以实现对DRAM的周期性操作,所述方法具体通过以下步骤实现:
步骤1、按照时间顺序,分别生成DRAM控制器的应用操作代码时序状态表、初始化操作代码时序状态表和自刷新操作代码时序状态表;
步骤2、将初始化操作代码时序状态表保存在ROM存储器的初始化操作代码区间,起始地址为初始化代码入口地址;应用操作代码时序状态表和自刷新操作代码时序状态表合并在一起,保存在ROM存储器的应用操作区间,起始地址为应用操作代码入口地址;
步骤3、将启动使能和状态使能作用于地址生成器,生成读使能信号输出至ROM存储器,地址生成器内的累加器,其初始值为初始化代码入口地址,当启动使能信号为有效态时,累加器执行累加操作,当启动使能信号为无效态时,累加器复位为应用操作代码入口地址,所述地址生成器以累加器的值作为读地址输出;
步骤4、ROM存储器收到读使能和读地址信号后,当读使能为有效状态时,ROM存储器输出读地址指向的操作代码时序状态表对应的操作代码,即输出相应的DRAM控制信号;当读使能为无效态时,输出全1,DRAM无相应操作。
以上所述方法中当DRAM是双速率存储器时,所述方法还包括对DRAM控制器的输入/输出数据进行双/单速率转换的步骤,将发送/接收的两位单边沿数据输入双/单速率转换模块,形成双边沿数据。
本发明由于采用了上述的技术方案,使之与现有技术相比,具有以下的优点和积极效果:
1.相比通用DRAM控制器,本发明使用ROM存储器,可以大量减少逻辑资源的使用,由于ROM存储器的功耗和面积都要小于逻辑电路的功耗和面积,从而降低了芯片的功耗和面积;
2.通用DRAM控制器需要输入指令,本发明预先保存了所要执行的指令,所以降低了应用难度,便于***集成;
3.对于不同应用方式,只需修改ROM存储器的存储内容,不需要作硬件上的改动,便于维护和升级。
附图说明
本发明的DRAM控制器及其实现方法由以下的实施例及附图给出。
图1为本发明的DRAM控制器结构示意图;
图2为本发明具体实施实例中DRAM控制器的ROM存储空间分配示意图;
图3为本发明具体实施实例中DRAM控制器中地址生成结构示意图;
图4为本发明具体实施实例中DRAM控制器的结构示意图。
具体实施方式
以下将对本发明的DRAM控制器及其实现方法作进一步的详细描述。
本实施例中的DRAM控制器装置结构及各模块的连接方式如图4所示。该装置共有三个部分组成:ROM存储器,地址生成器和双/单速率转换器;其中ROM存储器和地址生成器共同构成状态发生模块。ROM存储器的内部空间按地址分成两个连续存储区间和两个空闲区间,如图2所示,第一个连续存储区间存放DRAM初始化操作代码时序状态表,入口地址为0x0100,第二个连续存储区间存放应用操作代码时序状态表和自刷新操作代码时序状态表,入口地址为0x0000,第一个空闲区间地址为0x00FF,第二个空闲区间地址为0x1FFF。为了达到周期性控制DRAM操作的目的,在ROM存储器中预先存储了初始化操作代码时序状态表、操作代码时序状态表和自刷新操作代码时序状态表,如图2所示,这些时序状态表记录了每个时刻DRAM控制器需要输出的各控制信号的状态,然后根据地址按顺序读出预先存储的初始化操作代码、应用操作代码、自刷新操作代码,模拟DRAM控制器的信号输出,即可实现一次完整的周期性操作。其中,ROM存储器的输出为通用DRAM控制器的输出控制信号线(A0~A12,BA0~BA1,CKE,CK/CK,CS,WE,CAS,RAS)和一个状态使能信号。上述三个模块都集成在Xilinx公司的XC3S100E-4VQG100芯片上,DRAM器件是Micron公司的DDR RAM器件:MT46V16M16P-5B:F。
参见图3,所述的ROM地址生成模块由一个13位累加器,一个二输入或运算器组成,外部输入的启动脉冲和状态使能通过二输入或运算后生成启动使能,累加器的初始值为0x0100,当累加器在启动使能为有效态时,执行一次自加1操作;在启动使能为无效态时,复位为0x0000,累加器的状态值输出为读地址,启动使能输出为读使能信号。
所述的双/单速率转换器中的两个寄存器分别是正沿寄存器和负沿寄存器,两个寄存器在同一时刻采样输入的两位数据,在时钟为0时输出正沿寄存器的值,在时钟为1时输出负沿寄存器的值。
本发明的另一方案是提供了一种DRAM控制器的实现方法,用以实现对DRAM的周期性操作,该方法通过以下步骤实现:
步骤1、按照时间顺序,分别生成DRAM控制器的应用操作代码时序状态表、初始化操作代码时序状态表和自刷新操作代码时序状态表;
步骤2、将初始化操作代码时序状态表保存在初始化操作代码区间,起始地址为初始化代码入口地址0x0100;应用操作代码时序状态表和自刷新操作代码时序状态表合并在一起,保存在应用操作区间,起始地址为应用操作代码入口地址0x0000;
步骤3、将启动使能和状态使能作用于地址生成器,生成读使能,地址生成器内的累加器,其初始值为初始化代码入口地址,在启动使能信号为有效态时,累加器执行累加操作,当启动使能信号为无效态时,累加器复位为应用操作代码入口地址,累加器的状态值作为读地址输出;
步骤4、ROM存储器收到读使能和读地址信号后,当读使能为有效状态时,ROM存储器输出读地址指向的操作代码时序状态表对应的操作代码,即输出相应的DRAM控制信号;当读使能为无效态时,输出全1,DRAM无相应操作。
以上所述方法中当DRAM是双速率存储器时,发送的两位单边沿数据输入双/单速率转换模块,形成双边沿数据;如果DRAM是单速率存储器时,则不需要输入双/单速率转换模块,直接输入输出。
综上所述,采用本发明的优化的DRAM控制器及其实现方法,可以满足周期性操作的需求,同时又降低了芯片面积和功耗,减少了***集成难度。
Claims (7)
1、一种DRAM控制器,用于向一DRAM发送控制信号,所述DRAM控制器包括一个状态发生模块,其特征在于:所述状态发生模块由ROM存储器和地址生成器组成;所述地址生成器接收一外部输入的启动使能信号和ROM存储器发送的状态使能信号,并向ROM存储器输出读使能信号和读地址信号,所述ROM存储器根据所述读使能信号和读地址信号输出相应的DRAM控制信号。
2、如权利要求1所述的DRAM控制器,其特征在于:所述的ROM存储器按地址分成两个连续存储区间和两个空闲区间,第一个连续存储区间存放DRAM初始化操作代码时序状态表,入口地址为初始化代码入口地址;第二个连续存储区间存放应用操作代码时序状态表和自刷新操作代码时序状态表,入口地址为应用操作代码入口地址;所述连续存储区间与所述空闲区间交替排列。
3、如权利要求1所述的DRAM控制器,其特征在于:所述的地址生成器由一个累加器和一个或运算器组成,地址生成器的输入信号为启动脉冲和状态使能,两者通过或运算器后生成启动使能信号输入至累加器,累加器输出其运算后的结果作为读地址。
4、如权利要求3所述的DRAM控制器,其特征在于:所述的地址生成器输出的读使能信号为0时,ROM存储器输出的DRAM控制信号为全1,所述DRAM无相应操作;所述的地址生成器输出的读使能信号为1时,ROM存储器输出读地址指向的操作代码时序状态表对应的操作代码,即输出相应的DRAM控制信号。
5、如权利要求1所述的DRAM控制器,其特征在于:当DRAM为双速率时,所述的DRAM控制器还包括一个双/单速率转换器,对DRAM控制器的输入/输出数据进行速率转换。
6、一种如权利要求1所述的DRAM控制器的实现方法,其特征在于:所述方法具体通过以下步骤实现:
步骤1、按照时间顺序,分别生成DRAM控制器的应用操作代码时序状态表、初始化操作代码时序状态表和自刷新操作代码时序状态表;
步骤2、将初始化操作代码时序状态表保存在ROM存储器的初始化操作代码区间,起始地址为初始化代码入口地址;应用操作代码时序状态表和自刷新操作代码时序状态表合并在一起,保存在ROM存储器的应用操作区间,起始地址为应用操作代码入口地址;
步骤3、将启动使能和状态使能作用于地址生成器,生成读使能信号输出至ROM存储器,地址生成器内的累加器,其初始值为初始化代码入口地址,当启动使能信号为有效态时,累加器执行累加操作,当启动使能信号为无效态时,累加器复位为应用操作代码入口地址,所述地址生成器以累加器的值作为读地址输出;
步骤4、ROM存储器收到读使能和读地址信号后,当读使能为有效状态时,ROM存储器输出读地址指向的操作代码时序状态表对应的操作代码,即输出相应的DRAM控制信号;当读使能为无效态时,输出全1,DRAM无相应操作。
7、如权利要求6所述的DRAM控制器的实现方法,其特征在于:当DRAM是双速率存储器时,所述方法还包括对DRAM控制器的输入/输出数据进行双/单速率转换的步骤,将发送/接收的两位单边沿数据输入双/单速率转换模块,形成双边沿数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102032622A CN101441556A (zh) | 2008-11-24 | 2008-11-24 | 一种dram控制器及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102032622A CN101441556A (zh) | 2008-11-24 | 2008-11-24 | 一种dram控制器及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101441556A true CN101441556A (zh) | 2009-05-27 |
Family
ID=40726006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008102032622A Pending CN101441556A (zh) | 2008-11-24 | 2008-11-24 | 一种dram控制器及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101441556A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103811047A (zh) * | 2014-02-17 | 2014-05-21 | 上海新储集成电路有限公司 | 一种基于分块dram的低功耗刷新方法 |
CN111522753A (zh) * | 2019-12-11 | 2020-08-11 | 中国船舶重工集团公司第七0九研究所 | 一种基于状态机的sdram控制方法及*** |
-
2008
- 2008-11-24 CN CNA2008102032622A patent/CN101441556A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103811047A (zh) * | 2014-02-17 | 2014-05-21 | 上海新储集成电路有限公司 | 一种基于分块dram的低功耗刷新方法 |
CN103811047B (zh) * | 2014-02-17 | 2017-01-18 | 上海新储集成电路有限公司 | 一种基于分块dram的低功耗刷新方法 |
CN111522753A (zh) * | 2019-12-11 | 2020-08-11 | 中国船舶重工集团公司第七0九研究所 | 一种基于状态机的sdram控制方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102981776B (zh) | 双倍数据率虚拟静态随机存取存储器及其控制器、存取与操作方法、写入与读取方法 | |
US6438055B1 (en) | Dynamic memory circuit with automatic refresh function | |
CN100524515C (zh) | 半导体存储器器件和信息处理*** | |
CN1941196B (zh) | 半导体存储装置 | |
JP5098391B2 (ja) | 半導体メモリ、システムおよび半導体メモリの動作方法 | |
KR100286404B1 (ko) | 클록 동기형 메모리 장치 및 그 스케줄러 회로 | |
US20120079180A1 (en) | DRAM Controller and a method for command controlling | |
CN1945737B (zh) | 具有等待时间计数器的半导体器件 | |
KR100895656B1 (ko) | 반도체 메모리, 반도체 메모리의 동작 방법, 메모리컨트롤러 및 시스템 | |
JP2011227948A (ja) | 半導体記憶装置、及びその制御方法 | |
US20100103762A1 (en) | Memory device and method | |
US20040004883A1 (en) | Semiconductor memory | |
CN102945213A (zh) | 一种基于fpga的乱序内存控制器及其实现方法 | |
CN102339261B (zh) | 一种ddr2sdram控制器 | |
CN100511470C (zh) | 双倍速动态随机存取存储器的读写方法 | |
CN102403996B (zh) | 半导体器件的移位电路 | |
JP5314640B2 (ja) | 半導体装置 | |
CN101441556A (zh) | 一种dram控制器及其实现方法 | |
CN105321548A (zh) | 存储体控制电路和包括存储体控制电路的半导体存储器件 | |
CN110827891B (zh) | 信号转换单元、存储器以及应用于存储器的驱动方法 | |
CN102243526A (zh) | 双倍数据速率内存的内存控制器及其控制方法 | |
CN102522113B (zh) | 一种sdram桥接电路 | |
CN204331714U (zh) | 一种新型sdram控制器 | |
KR20050061467A (ko) | 정보 처리 장치, 정보 기억 장치, 정보 처리 방법 및 정보 처리 프로그램 | |
CN105528305A (zh) | 一种基于ddr2 sdram的短周期存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090527 |