[go: up one dir, main page]

CN111522753B - 一种基于状态机的sdram控制方法及系统 - Google Patents

一种基于状态机的sdram控制方法及系统 Download PDF

Info

Publication number
CN111522753B
CN111522753B CN201911263392.XA CN201911263392A CN111522753B CN 111522753 B CN111522753 B CN 111522753B CN 201911263392 A CN201911263392 A CN 201911263392A CN 111522753 B CN111522753 B CN 111522753B
Authority
CN
China
Prior art keywords
data table
sdram
data
state machine
control
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
Application number
CN201911263392.XA
Other languages
English (en)
Other versions
CN111522753A (zh
Inventor
肖骁
吕林洪
陈新展
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
709th Research Institute of CSIC
Original Assignee
709th Research Institute of CSIC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 709th Research Institute of CSIC filed Critical 709th Research Institute of CSIC
Priority to CN201911263392.XA priority Critical patent/CN111522753B/zh
Publication of CN111522753A publication Critical patent/CN111522753A/zh
Application granted granted Critical
Publication of CN111522753B publication Critical patent/CN111522753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Dram (AREA)

Abstract

本发明涉及存储器控制技术领域,尤其涉及一种基于状态机的SDRAM控制方法及系统。所述方法包括:制作状态机数据表;将所述状态机数据表加入内部存储区;将所述状态机数据表和相关控制信号一起组合成SDRAM的控制逻辑;对所述SDRAM控制逻辑调试后,联合目标数据进行所需的读写存取操作;所述系统包括状态机数据表定制模块、SDRAM控制器;SDRAM控制器包括BUFF存储单元、逻辑控制单元和接口控制单元;本发明实施例所述系统执行上述方法,利用FPGA内部存储资源根据SDRAM芯片时序图,制作相应状态机数据表,利用硬件描述语言加以调用和控制,实现对SDRAM控制操作,提高信号控制效率。

Description

一种基于状态机的SDRAM控制方法及系统
技术领域
本发明涉及存储器控制技术领域,尤其涉及一种基于状态机的SDRAM控制方法及系统。
背景技术
SDRAM(Synchronous Dynamic Random Access Memory,即同步动态随机存储器,以下简称SDRAM),其优点是容量大、访问速度快、功能强大和价格低廉,在图像采集、实时图像处理、数据分析等很多设计领域作为数据缓存的首选存储介质,进行大数据量的缓存和处理。因此,对SDRAM的访问控制在某种意义上决定系统的性能。
随着SDRAM工作频率的不断提高给电路设计带来较大的挑战,对管理控制SDRAM的读写操作也提出了越来越高的要求。目前,利用FPGA和SDRAM构成硬件解决方案有两种方式。第一种即利用硬件程序语言设计SDRAM控制器,在高速电路信号的硬件设计中,相关信号是否能同时输出、或者是否能按照时钟频率严格依次序输出,往往决定了整个硬件电路设计的成败,很多程序BUG故障出现也就是因为信号提前或是延迟造成的。因此,设计人员会耗费很多的精力和时间,编写复杂的控制约束代码以保证信号完整、整齐有序的输出。另一种方式是调用FPGA厂商付费的SDRAM控制器IP(Intellectual Property,知识产权)接口。
现有技术的不足之处在于:
1、第一种方式会导致主程序复杂繁琐,控制效率降低;同时使得主程序优化和移植难度增大,影响系统性能。
2、第二种方式调用FPGA厂商付费的SDRAM控制器IP接口会提高产品的设计经济成本;而且虽然SDRAM接口有统一的标准,但不同的FPGA厂商对SDRAM控制器IP接口却各不相同,甚至于同一厂商的不同类型等级的FPGA芯片对SDRAM控制器IP接口也有差别,不但会导致重复付费,而且具体使用时兼容性和可移植性能差。
发明内容
针对现有技术的不足,本发明实施例提供了一种基于状态机的SDRAM控制方法及系统,实现对SDRAM控制操作,提高信号控制效率。
一方面,本发明实施例提供了一种基于状态机的SDRAM控制方法,包括以下步骤:
S1,制作状态机数据表;所述状态机数据表包括生成的数据表数据、数据表行地址、数据表列地址;
S2,将所述状态机数据表加入内部存储区;所述内部存储区由FPGA内置的存储空间划分;所述内部存储区地址位对应数据表行地址和数据表列地址;所述内部存储区数据位对应数据表数据;
S3,将所述存储区内的状态机数据表和FPGA内部相关控制信号一起组合成SDRAM控制逻辑;
S4,对所述SDRAM控制逻辑调试后,针对目标数据执行所需的读写存取操作;所述目标数据为进行存取操作的具体数据。
另一方面,本发明实施例提供了一种基于状态机的SDRAM控制系统,包括:
状态机数据表定制模块,制作状态机数据表;所述状态机数据表包括生成的数据表数据、数据表行地址、数据表列地址;
SDRAM控制器具体包括:BUFF存储单元,加入所述状态机数据表;所述BUFF存储单元由FPGA内置的存储空间划分;所述BUFF存储单元的地址位对应数据表行地址和数据表列地址;所述BUFF存储单元的数据位对应数据表数据;逻辑控制单元,将所述存储区内的状态机数据表和FPGA内部相关控制信号一起组合成SDRAM控制逻辑;接口控制单元,对所述SDRAM控制逻辑调试后,针对目标数据执行读写存取操作;所述目标数据为进行存取操作的具体数据。
本发明实施例提供了一种基于状态机的SDRAM控制方法及系统;利用FPGA内部存储资源根据SDRAM芯片时序图,制作相应状态机数据表,利用硬件描述语言加以调用和控制,实现对SDRAM控制操作,提高信号控制效率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种基于状态机的SDRAM控制方法流程示意图;
图2为本发明实施例状态机数据表定制方法流程示意图;
图3为本发明实施例SDRAM迸发读操作对应的重制时序图;
图4为本发明实施例SDRAM各工作模式对应的重制时序数据图;
图5为本发明实施例SDRAM工作流程示意图;
图6为本发明实施例一种基于状态机的SDRAM控制系统结构示意图;
附图标记:
SDRAM控制器-1 BUFF存储单元-101 逻辑控制单元-102
接口控制单元-103 状态机数据表定制模块-2。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一种基于状态机的SDRAM控制方法流程示意图;如图1所示,包括以下步骤:
S1,制作状态机数据表;所述状态机数据表包括生成的数据表数据、数据表行地址、数据表列地址;
S2,将所述状态机数据表加入内部存储区;所述内部存储区由FPGA内置的存储空间划分;所述内部存储区地址位对应数据表行地址和数据表列地址;所述内部存储区数据位对应数据表数据;
S3,将所述存储区内的状态机数据表和FPGA内部相关控制信号一起组合成SDRAM控制逻辑;
S4,对所述SDRAM控制逻辑调试后,针对目标数据进行所需的读写存取操作;所述目标数据为进行存取操作的具体数据。
具体地,本发明实施例SDRAM芯片采用HY57V641620ET-H,(HY:海力士公司、57:SDRAM芯片、V:工作电压3.3V、641620:芯片存储容量64M、ET:封装、H:速度等级)。HY57V641620ET-H的接口电平标准为LVTTL,采用54Pin TSOPII封装,内部有四个相同的BANK,每个BANK有行地址12bit,列地址8bit,数据位宽位16bit,总存储容量64M。
在控制器的编写过程中,将SDRAM主要的状态转换流程以状态机数据表的形式固化在FPGA内部的存储区中,存储器外围接口电路和高位地址产生电路用硬件描述语言实现。如此,可以利用状态机数据表输出齐整的数据,同时保证了SDRAM控制信号的输出完整性,并且满足相互的时延特性。进一步的,通过合并或裁减状态机数据表,可以实现SDRAM的各种操作组合。
数据表的行地址和列地址以二进制数表示,列地址由数据表中数据流的低位二进制数的转换顺序确定,各工作模式的流程周期数由列地址的二进制位数决定。每一个行地址表示SDRAM的一种工作模式。数据表的数据按照重制的时序图编成二进制数列:根据列地址转换顺序需求编制数据位的低位二进制数,其余数据位高位二进制数按照时序图,一一对应SDRAM的控制信号。如此,将SDRAM各个控制信号,按照不同的工作模式时序图,编成多组二进制数据流。
利用FPGA自带的存储空间,划分一个M位地址位、N位数据位的存储区BUFF,其M位地址位对应数据表的行地址和列地址;其N位数据对应数据表的数据输出,将数据表的数据填入BUFF存储区。设计BUFF存储区相关联的控制程序:M位地址高位(行地址)由主程序中相应关联信号经卡诺图简化后表示;M位地址低位(列地址)由BUFF数据低位表示;BUFF数据高位连接SDRAM芯片的各个控制信号。按照FPGA工作时钟的频率,SDRAM芯片的控制位会严格按照设定好的功能时序图工作,输出相应电平,从而完成了SDRAM的所需功能操作。
例如,本发明实施例由FPGA内置的存储空间划分出BUFF存储区大小为256(寻址空间8bit)×32(数据深度),即数据表的数据由32位二进制数组成;设计与BUFF存储区相关联的逻辑控制程序,以下是数据表32位数据映射HY57V641620ET-H控制信号定义:
Data[3:0]——BRAM地址的低4位
Data[4]——1’b0
Data[5]——SD_WR_
Data[6]——SD_CAS_
Data[7]——SD_RAS_
Data[8]——SD_CS_
Data[9]——SD_DQMA
Data[10]——BANK0
Data[11]——BANK1
Data[12]——MUX_A[0]
Data[13]——MUX_A[1]
Data[14]——MUX_A[2]
Data[15]——SD__A10
Data[16]——SD_DAT_OEN
Data[17]——FIFO_WOE
Data[18]——FIFOE_ROE
Data[19]——JPEN
Data[20]——REDY(对Sdram写准备好)
Data[21]——A10MUX
Data[31:22]——10’b1111111100;(FF0)
低四位data[3:0]决定各操作周期的跳转顺序,设置data[4]=0为填充位;高十七位data[21:5]映射芯片各个控制位管脚(注:数据位数由芯片的控制位管脚数确定),HY57V641620ET-H需要用到的控制管脚数为17位,最后设置data[31:22]=FF0为填充位,综上所述,BUFF存储区内的数据格式为ROM_data=data[31:22]+data[21:5]+data[4]+data[3:0]=FF0+data[21:5]+0+data[3:0],如此,SDRAM芯片的控制信号变成了一组二进制数据流。
需要说明的是,HY57V641620ET-H的管脚接口分为:控制信号,包括片选、时钟、时钟使能、行列地址选择、读写有效及数据有效,这些信号组成了芯片的控制指令,控制指令通过译码,由此产生一系列控制动作;地址信号,其中包括块地址线、行地址线、列地址线,其行线和列线分时复用,可以操作到芯片的全部存储单元,块地址线用于操作四个BANK,数据信号:双向引脚,受数据有效控制。
本发明实施例提供了一种基于状态机的SDRAM控制方法;利用FPGA内部存储资源根据SDRAM芯片时序图,制作相应状态机数据表,利用硬件描述语言加以调用和控制,实现对SDRAM控制操作,提高信号控制效率。
进一步地,图2为本发明实施例状态机数据表定制方法流程示意图;如图2所示,所述S1步骤具体包括:
S11,对所述SDRAM各工作模式的时序图进行分解重制;具体包括将状态恒定的控制信号、状态随机的控制信号剔除,以所述FPGA的系统时钟为基准重新制图;
S12,根据所述工作模式对应的重制时序图,生成所述数据表列地址;所述数据表列地址决定每完成一个操作的周期长短和一个周期内各个节点的跳转顺序;由数据表数据输出低四位表示;
S13,根据所述工作模式对应的重制时序图,生成所述数据表行地址;所述数据表行地址由所述FPGA与SDRAM相关控制信号组成;所述相关控制信号的组合决定对所述SDRAM进行相应操作;
S14,生成所述重制时序图对应的数据表数据;具体包括将各所述工作模式下每个周期内的各个控制信号的电平值组合成若干组二进制数据流;
S15,将若干组所述二进制数据流,按照所述数据表行地址功能划分组成状态机的数据表矩阵。
具体地,图5为本发明实施例SDRAM工作流程示意图;如图5所示,按照SDRAM芯片手册,分解重制各个所需工作模式操作的时序图;HY57V641620ET-H的工作模式最基本的有五种工作模式:预充电操作(PRECHARGE)、初始化及存储指令加载操作(INIT_LOAD)、刷新操作(REFRESH)、迸发读操作(BURST_READ)、迸发写操作(BURST_WRITE);
迸发读操作(BURST_READ)和迸发写操作(BURST_WRITE):
迸发读命令允许某个BANK中的一行被激活后,连续读出若干个数据。第一个数据在经过指定的CAS延时节拍后呈现在数据线上,以后每个时钟节拍都会读出一个新的数据。迸发读操作可以被同BANK或不同BANK的新的迸发读/写命令或同一BANK的预充电命令及迸发停止命令中止。迸发写操作和迸发读操作基本类似。
初始化及指令加载操作(INIT_LOAD):
初始化及指令加载操作即为设置模式寄存器,Mode Register一般被用于定义HY57V641620ET-H运行的模式,寄存器里一般设置了读取延迟、burst长度和类型、CAS、操作模式,还有设置芯片是工作在单个读写操作还是burst操作下。Mode Register通过LOADMODE REGISTER命令进行编程,这组信息将会一直保存在Mode Register中直到内存掉电之后才会消失。
预充电操作(PRECHARGE):
HY57V641620ET-H的寻址具有独占性,所以在进行完读写操作后,如果要对同一BANK的另一行进行寻址,就要将原来有效(工作)的行关闭,重新发送行/列地址。BANK关闭现有工作行,准备打开新行的操作就是预充电(PRECHARGE)。在发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新的工作行,具体值视时钟频率而定,芯片执行一条预充电命令后,要执行一条空操作命令,这两个操作会使所有的存储单元进行一次预充电,从而使所有阵列中的器件处于待机状态。
刷新操作(REFRESH):
由于动态存储器存储单元存在放电现象,为了保持每个存储单元数据的正确性,HY57V641620ET-H必须保证在64ms内对所有的存储单元刷新一遍。一个自动刷新周期只能刷新存储单元的一个行,每次刷新操作后内部刷新地址计数器自动加1。只有在所有BANK都空闲(因为4个BANK的对应行同时刷新)并且未处于低功耗模式时才能启动自动刷新操作,刷新操作执行期间只能输入空操作,刷新操作执行完毕后所有BANK都进入空闲状态。该器件可以每间隔7.8us执行一次自动刷新命令,也可以在64ms内的某个时间段对所有单元集中刷新一遍。
对以上各工作模式对应的时序图进行分解重制;将状态恒定的控制信号、状态随机的控制信号剔除,例如本发明实施例中状态恒定的常高控制信号用1表示,状态恒定的常低控制信号用0表示;把这些与相应操作不相关的控制信号剔除,会使得填入状态机数据表里的二进制数据流的位数减少;简化后的时序图以FPGA的系统时钟为基准,重新制图;重制的各时序图将作为状态机数据表生成相应数据的依据。图3为本发明实施例SDRAM迸发读操作对应的重制时序图,如图3所示,其它工作模式的对应的重制时序图在此省略。
根据全部重制时序图,生成数据表列地址;数据表列地址的作用是决定每完成一个工作模式操作的周期长短和一个周期内各个节点的跳转顺序,依据不同操作的复杂程度,周期长短和跳转顺序可以根据需要调整,例如,对应SDRAM芯片时序图,各个工作模式操作周期均为十六周期,每个周期按照0~F的顺序流转,由数据表数据输出低四位[3:0]表示。
根据全部重制时序图,生成数据表行地址;例如HY57V641620ET-H行地址由四位二进制数组成,最多可以表示16种工作模式,行地址的四位二进制数由FPGA内部与HY57V641620ET-H芯片相关的控制信号组成,相关的控制信号组合决定HY57V641620ET-H进行何种操作;另外,若相关信号的位数大于数据表行地址的位数时,则先利用卡诺图(Karnaugh map)进行简化后,映射到所述数据表行地址;本发明实施例数据表行地址位数为4。例如FPGA内部,对HY57V641620ET-H的工作模式做出如下划分:
Figure BDA0002312184560000091
图4为本发明实施例SDRAM各工作模式对应的重制时序数据图;如图4所示,根据全部重制时序图,将每个周期内的各个控制信号的电平值组合起来,可以得到若干组不同操作模式对应重制时序图数据流;将得到的数据流按照行地址功能划分组成数列矩阵,填入数据表,即完成了针对HY57V641620ET-H控制的状态机数据表。
将所述的数据表加入主程序:利用FPGA内部存储空间,开辟一个256×32的BRAM存储区,其地址位为ADDR[7:0]、数据位为DOUT[31:0],将数据表中数据流加入BRAM存储区,程序中的ADDR[3:0]映射DOUT[3:0];ADDR[7:4]映射前文所述的SD_A[7:4];DOUT[21:5]映射前文所述的Data[21:5],即按照所需功能要求,完成了对SDRAM芯片HY57V641620ET-H的控制。
进一步地,所述S2步骤还包括将FPGA内部其他的状态信号加入所述内部存储区;只要在FPGA中开辟的BUFF存储区地址位数和数据位深度足够大,状态机数据表中还可以加入FPGA内部其它的状态信号,而不局限于对SDRAM的控制信号。这样做的好处是能够将尽可能多的状态信号纳入FPGA的SDRAM控制器管理范畴,输出完整而又满足严格时序要求的控制信号。
本发明实施例提供了一种基于状态机的SDRAM控制方法;利用FPGA内部存储资源根据SDRAM芯片时序图,制作相应状态机数据表,利用硬件描述语言加以调用和控制,不必耗费过多的精力和时间来编写控制和约束的代码,实现对SDRAM控制操作,提高信号控制效率;有利于将专用的逻辑程序封装成为通用的IP核,且涉及成本低,大大提高了硬件程序的集成度和通用性,有利于其市场化推广。
基于上述实施例,图6为本发明实施例一种基于状态机的SDRAM控制系统结构示意图;包括:
状态机数据表定制模块2,制作状态机数据表;所述状态机数据表包括生成的数据表数据、数据表行地址、数据表列地址;
SDRAM控制器1具体包括:BUFF存储单元101,加入所述状态机数据表;所述BUFF存储单元101由FPGA内置的存储空间划分;所述BUFF存储单元101的地址位对应数据表行地址和数据表列地址;所述BUFF存储单元101的数据位对应数据表数据;逻辑控制单元102,将BUFF存储单元101内的状态机数据表和FPGA内部相关控制信号一起组合成SDRAM控制逻辑;接口控制单元103,对所述SDRAM控制逻辑调试后,针对目标数据执行所需的读写存取操作。
本发明实施例提供了一种基于状态机的SDRAM控制系统执行上述方法;利用FPGA内部存储资源根据SDRAM芯片时序图,制作相应状态机数据表,利用硬件描述语言加以调用和控制,不必耗费过多的精力和时间来编写控制和约束的代码,实现对SDRAM控制操作,提高信号控制效率;有利于将专用的逻辑程序封装成为通用的IP核,且涉及成本低,大大提高了硬件程序的集成度和通用性,有利于其市场化推广。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (6)

1.一种基于状态机的SDRAM控制方法,其特征在于,包括以下步骤:
S1,制作状态机数据表;所述状态机数据表包括生成的数据表数据、数据表行地址、数据表列地址;
S2,将所述状态机数据表加入内部存储区;所述内部存储区由FPGA内置的存储空间划分;所述内部存储区地址位对应数据表行地址和数据表列地址;所述内部存储区数据位对应数据表数据;
S3,将所述内部存储区内的状态机数据表和相关控制信号一起组合成SDRAM控制逻辑;
S4,对所述SDRAM控制逻辑进行调试,针对目标数据执行所需的读写存取操作;所述目标数据为进行存取操作的具体数据;
所述S1步骤具体包括:
S11,所述SDRAM的各工作模式的时序图进行分解重制;具体包括将状态恒定的控制信号、状态随机的控制信号剔除,以所述FPGA的系统时钟为基准重制时序图;
S12,根据所述重制时序图,生成所述数据表列地址;所述数据表列地址决定每完成一个操作的周期长短和一个周期内各个节点的跳转顺序;
S13,根据所述重制时序图,生成所述数据表行地址;所述数据表行地址由所述FPGA与SDRAM相关控制信号组成;所述相关控制信号的组合决定对所述SDRAM进行相应操作;
S14,生成所述重制时序图对应的数据表数据;具体包括将各所述工作模式下每个周期内的各个控制信号的电平值组合成若干组二进制数据流;
S15,将若干组所述二进制数据流,按照所述数据表行地址功能划分组成数据流矩阵。
2.根据权利要求1所述的一种基于状态机的SDRAM控制方法,其特征在于,所述S2步骤还包括将FPGA内部其他的状态信号加入所述存储区内状态机数据表。
3.根据权利要求1所述的一种基于状态机的SDRAM控制方法,其特征在于,所述S13步骤还包括所述相关控制信号的位数大于所述数据表行地址位数时,则利用卡诺图进行简化后映射到所述数据表行地址。
4.一种基于状态机的SDRAM控制系统,其特征在于,包括:
状态机数据表定制模块(2),制作状态机数据表;所述状态机数据表包括生成的数据表数据、数据表行地址、数据表列地址;
SDRAM控制器(1)具体包括:BUFF存储单元(101),加入所述状态机数据表;所述BUFF存储单元(101)由FPGA内置的存储空间划分;所述BUFF存储单元(101)的地址位对应数据表行地址和数据表列地址;所述BUFF存储单元(101)的数据位对应数据表数据;逻辑控制单元(102),将所述BUFF存储单元(101)内的状态机数据表和FPGA内部相关控制信号一起组合成SDRAM控制逻辑;接口控制单元(103),对所述SDRAM控制逻辑进行调试后,针对目标数据执行读写存取操作;所述目标数据为进行存取操作的具体数据;
所述状态机数据表定制模块(2)具体包括:
对所述SDRAM各工作模式的时序图进行分解重制;具体包括将状态恒定的控制信号、状态随机的控制信号剔除,以所述FPGA的系统时钟为基准重制时序图;
根据所述重制时序图,生成所述数据表列地址;所述数据表列地址决定每完成一个操作的周期长短和一个周期内各个节点的跳转顺序;
根据所述重制时序图,生成所述数据表行地址;所述数据表行地址由所述FPGA与SDRAM相关控制信号组成;所述相关控制信号的组合决定对所述SDRAM进行相应操作;
生成所述重制时序图对应的数据表数据;具体包括将各所述工作模式下每个周期内的各个控制信号的电平值组合成若干组二进制数据流;
将若干组所述二进制数据流,按照所述数据表行地址功能划分组成数据流矩阵。
5.根据权利要求4所述的一种基于状态机的SDRAM控制系统,其特征在于,所述BUFF存储单元(101)内状态机数据表加入所述FPGA内部其他的状态信号。
6.根据权利要求4所述的一种基于状态机的SDRAM控制系统,其特征在于,所述状态机数据表定制模块(2)还包括所述相关控制信号位数大于所述数据表行地址位数时,则利用卡诺图进行简化后映射到所述数据表行地址。
CN201911263392.XA 2019-12-11 2019-12-11 一种基于状态机的sdram控制方法及系统 Active CN111522753B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911263392.XA CN111522753B (zh) 2019-12-11 2019-12-11 一种基于状态机的sdram控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911263392.XA CN111522753B (zh) 2019-12-11 2019-12-11 一种基于状态机的sdram控制方法及系统

Publications (2)

Publication Number Publication Date
CN111522753A CN111522753A (zh) 2020-08-11
CN111522753B true CN111522753B (zh) 2022-12-09

Family

ID=71900413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911263392.XA Active CN111522753B (zh) 2019-12-11 2019-12-11 一种基于状态机的sdram控制方法及系统

Country Status (1)

Country Link
CN (1) CN111522753B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028939A (en) * 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097988A (en) * 1998-02-10 2000-08-01 Advanced Micro Devices, Inc. Logic system and method employing multiple configurable logic blocks and capable of implementing a state machine using a minimum amount of configurable logic
US7093082B2 (en) * 2003-06-11 2006-08-15 Matsushita Electric Industrial Co., Ltd Microprogrammable SDRAM memory interface controller
US7103707B2 (en) * 2003-12-04 2006-09-05 Rdc Semiconductor Co., Ltd. Access control unit and method for use with synchronous dynamic random access memory device
CN100508064C (zh) * 2005-01-31 2009-07-01 上海奇码数字信息有限公司 存储器存取控制器与存储器存取方法
CN101221532B (zh) * 2008-01-21 2010-06-09 戴葵 实现具有数据处理能力的动态随机存储器的接口方法
US7865795B2 (en) * 2008-02-28 2011-01-04 Qimonda Ag Methods and apparatuses for generating a random sequence of commands for a semiconductor device
CN101441556A (zh) * 2008-11-24 2009-05-27 上海广电(集团)有限公司中央研究院 一种dram控制器及其实现方法
CN101625892B (zh) * 2009-08-07 2011-12-21 杭州华三通信技术有限公司 动态随机访问存储器的控制器及用户指令处理方法
CN201936294U (zh) * 2010-12-14 2011-08-17 深圳市视鑫数码有限公司 一种高速图像采集系统的缓存系统
CN102291073B (zh) * 2011-08-04 2013-04-17 广西民族师范学院 多轴步进电机插补控制器及多轴步进电机运动控制卡
CN105528305B (zh) * 2015-12-04 2018-04-13 北京理工大学 一种基于ddr2 sdram的短周期存储方法
US9990160B2 (en) * 2016-06-27 2018-06-05 Altera Corporation Methods and apparatus for smart memory interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028939A (en) * 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method

Also Published As

Publication number Publication date
CN111522753A (zh) 2020-08-11

Similar Documents

Publication Publication Date Title
EP0931380B1 (en) Reconfigurable computing system
US12106107B2 (en) Memory device for processing operation, data processing system including the same, and method of operating the memory device
CN109063323B (zh) 一种验证sdram的随机测试用例的生成方法
EP1474747B1 (en) Address space, bus system, memory controller and device system
US8225064B2 (en) Storage region allocation system, storage region allocation method, and control apparatus
Cooper-Balis et al. Fine-grained activation for power reduction in DRAM
US8045416B2 (en) Method and memory device providing reduced quantity of interconnections
KR20200108773A (ko) 연산 처리를 수행하는 메모리 장치, 이를 포함하는 데이터 처리 시스템 및 메모리 장치의 동작방법
TWI743627B (zh) 存取張量資料的方法和裝置
CN105378846A (zh) Dram子阵列级刷新
JP7376750B2 (ja) セットリセットラッチを使用してワード線を駆動するためのシステムおよび方法
TW202123235A (zh) 行多工技術
US20040088472A1 (en) Multi-mode memory controller
TWI622992B (zh) 記憶體裝置中之記憶體存取控制
CN111522753B (zh) 一种基于状态机的sdram控制方法及系统
JP2009527858A (ja) 可変入力プリミティブを有するハードウェアエミュレータ
KR100618858B1 (ko) 리프레쉬 수행 시 리프레쉬 할 뱅크의 개수를 가변할 수있는 반도체 메모리 장치 및 그 리프레쉬 방법
KR20080090665A (ko) 독립적으로 뱅크의 모드를 선택하는 반도체 메모리 장치,메모리 컨트롤러 및 그 제어 방법
CN210573757U (zh) 一种用于实现基于fpga的sdram控制系统的硬件装置
CN115015741A (zh) 芯片测试方法、装置、设备及介质
EP3979248A1 (en) A memory macro
CN118132507B (zh) 一种支持多种工作负载的新型存内计算架构
JP3644381B2 (ja) Sdramのランダムアクセス方法
CN214253209U (zh) 一种sdram控制器用户接口模块ip核
Bause et al. A Configurable and Efficient Memory Hierarchy for Neural Network Hardware Accelerator

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
GR01 Patent grant
GR01 Patent grant