CN109902041A - 一种基于fpga的sdram驱动器设计方法 - Google Patents
一种基于fpga的sdram驱动器设计方法 Download PDFInfo
- Publication number
- CN109902041A CN109902041A CN201910180283.5A CN201910180283A CN109902041A CN 109902041 A CN109902041 A CN 109902041A CN 201910180283 A CN201910180283 A CN 201910180283A CN 109902041 A CN109902041 A CN 109902041A
- Authority
- CN
- China
- Prior art keywords
- address
- sdram
- state
- access
- self
- 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
Landscapes
- Dram (AREA)
Abstract
本发明公开了一种用于核电厂多样化系统的基于FPGA的SDRAM驱动器设计方法,本发明基于FPGA进行SDRAM驱动器设计,充分利用FPGA的高速、并行、片上块状RAM多等特点,使用了横向地址生成方法,使得对SDRAM的数据访问速度提升明显。另外,本发明提供完善的控制机制和接口缓冲功能。本发明使得核电厂多样化系统中使用SDRAM的数据存取性能显著提升,有效减小了上层应用功能的时间开销、降低了设计复杂度,提高了系统的整体性能。
Description
技术领域
本发明涉及SDRAM驱动器,具体涉及一种核电厂多样化系统中使用的基于FPGA技术的SDARM驱动器设计方法。
背景技术
多样化系统是核电厂仪控平台的重要组成部分,用于解决共因故障,实现纵深防御。在全FPGA架构下的多样化系统中,主控单元FPGA会汇聚大量的控制指令和状态数据。目前,较为普遍的数据暂存是采用FPGA驱动SDRAM的形式来实现。现有SDRAM地址空间大都采用bank地址连续的方式,使得其突发访问能力不强。同时,现有的SDRAM驱动器仅提供时序驱动能力,而不具备数据管理能力,增加了上层应用功能的复杂度,难以满足核电厂多样化系统的要求。
发明内容
为了解决上述现有技术存在的技术问题,本发明提供了一种基于FPGA的SDRAM驱动器设计方法,本发明利用FPGA芯片技术,构建一个专用的SDRAM驱动器。该驱动器具备完善的SDRAM时序接口、接口缓冲和高效的数据突发访问能力。该驱动器作为一个通用的模块能够方便且灵活的被核电厂多样化系统使用。
本发明通过下述技术方案实现:
一种基于FPGA的SDRAM驱动器设计方法,用于核电厂多样化系统,该方法采用横向地址生成方法生成SDRAM的逻辑地址,对SDRAM进行访问时能够同时激活SDARM内部所有存储块的相同行或者不同行。
进一步,所述横向地址生成方法是逻辑地址按照行地址进行生成,具体是:将SDARM内部所有存储块的每一个行地址组合成一个扩充后的行地址,其中,行地址作为逻辑地址的高位,进行基于行地址的寻址。
进一步,该方法还提供对SDARM访问的数据缓冲接口,包括两个512×16的双端口RAM,分别用于写访问请求数据/地址缓存和读访问数据缓存。
进一步,该方法对SDARM进行访问控制包括:上电初始化控制、自刷新控制、激活控制、读/写访问及访问控制和自刷新冲突处理。
进一步,该方法对SDARM进行访问控制的控制状态包括:
“Initial”状态:上电初始化SDARM;
“WORK_IDLE”状态:如果没有访问请求输入时,停留在此状态,执行定时自刷新,防止SDRAM内部的电容丢失电荷导致数据丢失;如果有访问请求但处于自刷新过程中,则不会立即响应访问请求直到自刷新结束;
“Active bank&row”状态:此状态输出激活存储块指令,如果自刷新请求到来时将强制终止该状态并关闭存储块后执行自刷新操作;
“RD_Active col”状态:该状态发出行地址和需要访问的列地址,其中列地址为连续突发读访问的首地址;禁止被自刷新请求打断;
“WR_Active col”状态:该状态发出行地址和需要访问的列地址,其中列地址为连续突发写访问的首地址;允许被自刷新请求打断;
“L_BANK_precharge”状态:访问结束,关闭已经打开的BANK,并对所有BANK执行一次预充电操作。
本发明具有如下的优点和有益效果:
本发明的SDRAM驱动器设计方法,使用了横向地址生成方法,使得对SDRAM的数据访问速度提升明显。另外,本发明基于FPGA提供完善的控制机制和接口缓冲功能。基于以上两个优点,该驱动器使得核电厂多样化系统中使用SDRAM的数据存取性能显著提升,有效减小了上层应用功能的时间开销、降低了设计复杂度,提高了系统的整体性能。
本发明基于FPGA的SDRAM驱动器设计,充分利用FPGA的高速、并行、片上块状RAM多等特点,能够高效率的对SDRAM实现多BANK连续突发访问、预激活等操作。应用该设计,可以使得核电厂多样化系统中使用SDRAM的存取数据管理设计变得简洁、高效。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为现有技术中SDRAM的纵向地址生成方法。
图2为基于SDRAM的纵向地址生成方法的逻辑地址。
图3为本发明中SDRAM的横向地址生成方法。
图4为基于SDRAM的横向地址生成方法的逻辑地址。
图5为本发明控制状态机状态跳转图。
图6为本发明接口数据缓冲设计图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
本实施例提供了一种核电厂多样化系统中使用的基于FPGA的SDRAM驱动器设计方法,包括采用横向地址生成方法生成SDRAM的逻辑地址,对SDRAM进行访问时能够同时激活SDARM内部所有存储块的相同行或者不同行;基于FPGA实现的控制状态机和接口数据缓冲功能。具体设计过程如下所述:
1)横向地址生成方法
SDRAM是同步动态随机存取存储器的简称。工业上应用较多的SDRAM大多具有相似的内部结构和外部接口。通常,SDRAM内部会划分为4个存储块,每个存储块称为1个BANK。由于SDRAM提供的接口地址线较少,其使用了行-列地址的概念。即行、列地址分时送入SDRAM的地址线上,SDRAM根据当前的指令决定该地址的类型。4个BANK对应2bit的地址线。现有使用较多的纵向地址生成方法。
图1所示的纵向地址生成方法即寻址完一个BANK后继续从相邻的下一个BANK的0地开始寻址。如图2所示的基于SDRAM的纵向地址生成方法的逻辑地址,BANK地址作为逻辑地址的高位,进行基于BANK的寻址。
由于SDRAM自身的特性,同一个BANK至多只能够激活一行的存储空间,其突发访问的空间至多只有一行。该方法也无法实现预激活下一行的功能。以上两点劣势使得纵向地址生成方法无法实现对SDRAM的高效数据访问。
本实施例提出了横向地址生成方法如图3所示。
图3所示的横向地址生成方法即数据的存、取并不是基于BANK,而是将4个BANK的每一行扩充为1个大容量的行。横向地址生成方法使得在每个BANK中同时激活1行,连续突发访问数据长度为纵向地址生成方法的4倍。同时能够灵活实现预激活下一行的功能。
图4为基于SDRAM的横向地址生成方法的逻辑地址,其中row地址作为地址的高位,进行基于行地址的寻址。
2)控制状态机:
如图5所示为控制状态机状态跳转图,该图详细展现了对SDRAM访问控制的所有操作。每个椭圆图符表示一个控制状态,填充矩形指示了当前状态执行的SDRAM操作。左侧“自刷新定时器”用于自刷新定时监视。
“Initial”状态:上电初始化SDRAM,包括上电延时、上电连续8次自刷新、预充电、载入模式寄存器;
“WORK_IDLE”状态:没有访问请求输入时,停留在此状态,执行定时自刷新,防止SDRAM内部的电容丢失电荷导致数据丢失;如果有访问请求但处于自刷新过程中,则不会立即响应访问请求直到自刷新结束;
“Acitve bank&row”状态:此状态输出激活BANK指令,如果自刷新请求到来时将强制终止该状态并关闭BANK后执行自刷新操作;
“RD_Active col”状态:该状态发出row地址和需要访问的col读地址,其中col地址为连续突发读访问的首地址;禁止被自刷新请求打断;
“WR_Active col”状态:该状态发出row地址和需要访问的col写地址,其中col地址为连续突发写访问的首地址;允许被自刷新请求打断;
“L_BANK_precharge”状态:访问结束,关闭已经打开的BANK,并对所有BANK执行一次预充电操作。
3)接口数据缓冲
本实施例设计了如图6所示的接口数据缓冲功能。
本实施例提供两个深度为512,宽度为16位的双端口RAM,分别用于写访问请求数据/地址缓存和读访问数据缓存:
(1)读写操作分开,可以独立操作;
(2)执行写操作时,可以连续写入不超过1KB的数据和地址;
(3)执行读操作时,发起读操作请求后,本发明将读取到的数据连续存储到双端口RAM。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于FPGA的SDRAM驱动器设计方法,用于核电厂多样化系统,其特征在于,该方法采用横向地址生成方法生成SDRAM的逻辑地址,对SDRAM进行访问时能够同时激活SDARM内部所有存储块的相同行或者不同行。
2.根据权利要求1所述的一种基于FPGA的SDRAM驱动器设计方法,其特征在于,所述横向地址生成方法是逻辑地址按照行地址进行生成,具体是:将SDARM内部所有存储块的每一个行地址组合成一个扩充后的行地址,其中,行地址作为逻辑地址的高位,进行基于行地址的寻址。
3.根据权利要求1-2任一项所述的一种基于FPGA的SDRAM驱动器设计方法,其特征在于,该方法还提供对SDARM访问的数据缓冲接口,包括两个512×16的双端口RAM,分别用于写访问请求数据/地址缓存和读访问数据缓存。
4.根据权利要求1-2任一项所述的一种基于FPGA的SDRAM驱动器设计方法,其特征在于,该方法对SDARM进行访问控制包括:上电初始化控制、自刷新控制、激活控制、读/写访问及访问控制和自刷新冲突处理。
5.根据权利要求1-2任一项所述的一种基于FPGA的SDRAM驱动器设计方法,其特征在于,该方法对SDARM进行访问控制的控制状态包括:
“Initial”状态:上电初始化SDARM;
“WORK_IDLE”状态:如果没有访问请求输入时,停留在此状态,执行定时自刷新,防止SDRAM内部的电容丢失电荷导致数据丢失;如果有访问请求但处于自刷新过程中,则不会立即响应访问请求直到自刷新结束;
“Active bank&row”状态:此状态输出激活存储块指令,如果自刷新请求到来时将强制终止该状态并关闭存储块后执行自刷新操作;
“RD_Active col”状态:该状态发出行地址和需要访问的列地址,其中列地址为连续突发读访问的首地址;禁止被自刷新请求打断;
“WR_Active col”状态:该状态发出行地址和需要访问的列地址,其中列地址为连续突发写访问的首地址;允许被自刷新请求打断;
“L_BANK_precharge”状态:访问结束,关闭已经打开的BANK,并对所有BANK执行一次预充电操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910180283.5A CN109902041A (zh) | 2019-03-11 | 2019-03-11 | 一种基于fpga的sdram驱动器设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910180283.5A CN109902041A (zh) | 2019-03-11 | 2019-03-11 | 一种基于fpga的sdram驱动器设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109902041A true CN109902041A (zh) | 2019-06-18 |
Family
ID=66947026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910180283.5A Pending CN109902041A (zh) | 2019-03-11 | 2019-03-11 | 一种基于fpga的sdram驱动器设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109902041A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020114209A1 (en) * | 1999-04-09 | 2002-08-22 | Kabushiki Kaisha Toshiba | Dynamic random access memory device and semiconductor integrated circuit device |
CN1503272A (zh) * | 2002-11-19 | 2004-06-09 | 三星电子株式会社 | 用于改变在半导体存储器器件中的页长的电路和方法 |
CN102541749A (zh) * | 2011-12-31 | 2012-07-04 | 中国科学院自动化研究所 | 多粒度并行存储系统 |
CN102591814A (zh) * | 2011-12-16 | 2012-07-18 | 中国科学院自动化研究所 | 支持多bank访问模式的dram访问控制装置和控制方法 |
CN105446935A (zh) * | 2014-09-30 | 2016-03-30 | 深圳市中兴微电子技术有限公司 | 共享存储并发访问处理方法及装置 |
-
2019
- 2019-03-11 CN CN201910180283.5A patent/CN109902041A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020114209A1 (en) * | 1999-04-09 | 2002-08-22 | Kabushiki Kaisha Toshiba | Dynamic random access memory device and semiconductor integrated circuit device |
CN1503272A (zh) * | 2002-11-19 | 2004-06-09 | 三星电子株式会社 | 用于改变在半导体存储器器件中的页长的电路和方法 |
CN102591814A (zh) * | 2011-12-16 | 2012-07-18 | 中国科学院自动化研究所 | 支持多bank访问模式的dram访问控制装置和控制方法 |
CN102541749A (zh) * | 2011-12-31 | 2012-07-04 | 中国科学院自动化研究所 | 多粒度并行存储系统 |
CN105446935A (zh) * | 2014-09-30 | 2016-03-30 | 深圳市中兴微电子技术有限公司 | 共享存储并发访问处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5819125B2 (ja) | 揮発性メモリのために独立したバンクリフレッシュを提供する方法及びシステム | |
TW473733B (en) | Refresh-type memory with zero write recovery time and no maximum cycle time | |
KR100871080B1 (ko) | 휘발성 메모리들을 위해 지시된 뱅크 리프레시를 제공하는방법 및 시스템 | |
EP1751769B1 (en) | Method and system for providing seamless self-refresh for directed bank refresh in volatile memories | |
US7603512B2 (en) | Dynamic memory refresh controller, memory system including the same and method of controlling refresh of dynamic memory | |
CN106856098B (zh) | 一种用于DRAM或eDRAM刷新的装置及其方法 | |
JP2008524774A (ja) | アクティブリフレッシュマネージメントに関する方法、装置及びシステム | |
JP2005517242A (ja) | アドレス空間、バスシステム、メモリコントローラ及びデバイスシステム | |
CN109814811B (zh) | 一种减小NVMe SSD响应延迟影响高速数据存储设备写入速度的方法 | |
US6392958B1 (en) | Asynchronous SRAM compatible memory device using DRAM cell and method for driving the same | |
CN106128499A (zh) | 一种用于DRAM或eDRAM刷新的装置及刷新方法 | |
CN109902041A (zh) | 一种基于fpga的sdram驱动器设计方法 | |
JP2001035158A (ja) | メモリアクセス方法及びメモリアクセス方式 | |
TW200539180A (en) | Semiconductor memory device without decreasing performance thereof even if refresh operation or word line changing operation occur during burst operation | |
CN103703448B (zh) | 一种内存调度方法及内存控制器 | |
JP4707351B2 (ja) | マルチバンクメモリのスケジューリング方法 | |
CN210155649U (zh) | 一种固态硬盘 | |
JP2018049672A (ja) | メモリシステムおよびプロセッサシステム | |
KR20070093750A (ko) | 반도체 메모리 장치 및 그에 따른 시스템 | |
US20050024924A1 (en) | 1t1c sram | |
CN110299164B (zh) | 一种自适应dram刷新控制方法和dram刷新控制器 | |
CN210691292U (zh) | 固态存储器及电子设备 | |
EP1513072A2 (en) | Method for multibank memory scheduling | |
KR20060122357A (ko) | Dram히든 리프레쉬 동작 시 발생되는 동작 시간 지연을감소시킬 수 있는 장치와 방법 | |
JPH05173879A (ja) | キャッシュメモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201222 Address after: No.3, Hongda South Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Applicant after: CHINA NUCLEAR CONTROL SYSTEM ENGINEERING Co.,Ltd. Address before: 610000, No. three, 28 south section of Ring Road, Chengdu, Sichuan Applicant before: NUCLEAR POWER INSTITUTE OF CHINA |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190618 |