CN113220616B - 一种基于fpga的从sdram到mram的接口转换***及方法 - Google Patents
一种基于fpga的从sdram到mram的接口转换***及方法 Download PDFInfo
- Publication number
- CN113220616B CN113220616B CN202110604283.0A CN202110604283A CN113220616B CN 113220616 B CN113220616 B CN 113220616B CN 202110604283 A CN202110604283 A CN 202110604283A CN 113220616 B CN113220616 B CN 113220616B
- Authority
- CN
- China
- Prior art keywords
- mram
- read
- write
- sdram
- command
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
Abstract
本发明涉及一种基于FPGA的从SDRAM到MRAM的接口转换***及方法,采用FPGA来完成数据传输和各种时序逻辑同步的控制。该发明包括SDRAM命令解码模块、MRAM命令模块以及MRAM数据读写模块;SDRAM命令解码模块实现控制/地址信号解码并控制MRAM工作状态的功能,把SDRAM控制器发出的各种命令解码成对应的MRAM工作状态并将其传递给MRAM命令控制模块;MRAM命令模块通过MRAM的工作状态发送控制MRAM的命令,并把读/写的信号传递给MRAM数据读写模块;MRAM数据读写模块则是进行数据读写。本发明利用不需要改变处理器内部的内存控制器,也可以用MRAM代替SDRAM作主存并能适配现行的嵌入式***处理器,最终实现低功耗的数据存储。
Description
技术领域
本发明涉及一种基于FPGA的从SDRAM到MRAM的接口转换***及方法,属于磁存储器应用技术领域。
背景技术
随着器件特征尺寸的不断减小,当其微缩到深亚微米甚至纳米级工艺尺寸(如40纳米)时,因为量子隧穿效应(Quantum Tunneling Effect)导致的漏电流(或静态功耗)成为了制约传统存储器发展的重要因素。由漏电流导致的静态功耗将占芯片全部功耗的50%以上。这部分静态功耗不仅造成低能量利用率,同时还会带来严重的可靠性问题。因此,传统存储器技术的发展遇到了严重的瓶颈与挑战。
为了解决这些问题以延续摩尔定律,新型非易失性(Nonvolatile)存储器,如相变随机存储器(PCRAM)、电阻式随机存储器(RRAM)、以及基于自旋电子学(Spintronics)的磁性随机存储器(MRAM)等应运而生。其中,基于自旋电子学的MRAM,因其具有高速度、高密度、低功耗、无限读取次数以及可扩展性等诸多优良特性,近年来受到学术界与工业界的广泛关注。
同目前流行的存储器相比,MRAM集结了快闪内存(FLASH)的非挥发性,静态随机存储内存(SRAM)的快速度去速度和低耗电量,动态随机存储内存(DRAM)的无限次写入,同时更具有永久记忆、密度高以及高耐久力等特点。目前许多研究致力于将MRAM运用于计算机存储***,探索其应用领域。
磁随机存储器(MRAM)作为一种新型的非易失性存储技术吸引了很多研究者的目光,许多研究人员提出利用MRAM替代SRAM作为片上缓存以及替代DRAM作为主存。由于MRAM与DRAM相同的读写特性,它也被看作是DRAM最有前景的代替者之一。之前已经有相关研究基于仿真对MRAM代替DRAM作主存在性能、功耗以及可行性等方面进行了测试,但是在实用性方面有一定的局限性。如何将MRAM作为主存嵌入到***中应用也是一个问题。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种基于FPGA的从SDRAM到MRAM的接口转换***及方法,基于可编程逻辑门阵列(FPGA)实现能适配SDRAM控制器的MRAM应用,它利用FPGA实现从同步动态随机存储器(SDRAM)到磁性随机存储器(MRAM)的接口协议转换,不需要改变处理器内部的内存控制器,也可以用MRAM代替SDRAM作主存并能适配现行的嵌入式***处理器,最终实现超低功耗的数据存储。具体实现方式是设计一个以MRAM为主存并能兼容SDRAM控制器的图像采集***,实现超低功耗的图像数据存储。
本发明的技术解决方案:一种基于FPGA的从SDRAM到MRAM的接口转换***,所述***包括:SDRAM控制器、控制转换模块和磁随机存储器MRAM;所述控制转换模块采用FPGA实现,包括SDRAM命令解码模块、MRAM控制模块、MRAM数据读写模块;控制转换模块实现将SDRAM控制转换为对MRAM控制的功能;
SDRAM控制器,发出SDRAM命令信号和地址信号送至SDRAM命令解码模块;同时SDRAM控制器接收到MRAM数据读写模块的读写请求后,对MRAM数据读写模块进行数据读写;
SDRAM命令解码模块,把SDRAM控制器发出的命令信号解码成MRAM工作状态,传递给MRAM控制模块;同时把SDRAM控制器发出的地址信号解码给MRAM控制模块;所述MRAM工作状态对应的命令包括等待地址、读命令、写命令、突发中断和NOP;根据SDRAM与MRAM命令映射表,所述SDRAM命令解码模块在接收到行有效(Row Active)命令时,记录下逻辑存储阵列(L-Bank)地址和存储阵列中的行地址,并等待下一个读/写信号;在接收到读/写命令时,记录列地址并合成完整的地址信号,并将MRAM的工作状态相应的转变为读/写;
MRAM控制模块,根据SDRAM命令解码模块传来的地址信号和工作状态,对MRAM进行控制;根据对应的MRAM的工作状态发送相应的MRAM控制命令及地址信号至MRAM;MRAM控制模块可发送读或写信号到MRAM数据读写模块。
MRAM数据读写模块:控制四组MRAM(每组两片MRAM,且每组存储16bit数据,四组MRAM共存储64bit数据)的数据读写;SDRAM控制器可对MRAM数据读写模块进行数据读写。
本发明采用MRAM访存协议与DDR访存协议的转换机制,对其中的关键问题如访存协议时序匹配、访存命令转换等进行了深入研究;提出了MRAM阵列流水读写架构,完成MRAM访存时序与DDR访存时序适配;提出了MRAM访存命令与DDR访存命令的映射技术,实现DDR命令与MRAM访存命令的无缝转换。
所述SDRAM控制器包括SDRAM初始化模块、两个FIFO(W_FIFO和R_FIFO),即写缓存和读缓存及FIFO控制模块、存储阵列(bank)切换模块以及SDRAM读写控制模块;SDRAM初始化模块实现SDRAM的初始化的功能,上电后等待SDRAM初始化完成之后传递初始化完成信号(Init_Done)给SDRAM控制器进行后续操作;SDRAM读写控制模块实现SDRAM突发读写操作,分别在接收到来自两个FIFO的读/写请求时开始向SDRAM发送读/写命令,同时还实现预充电、周期性刷新操作以保证SDRAM中存储数据的完整性与正确性;bank切换模块发送bank切换命令至SDRAM读写控制模块实现2个bank之间的乒乓读写操作,使得输入与输出的图像数据流对无冲突;此外SDRAM控制器还存在一个FIFO控制模块,控制在SDRAM与摄像头的输出及VGA的输入接口之间添加的读/写缓存模块来对数据进行缓存,完成异步数据跨时钟处理。
所述SDRAM命令解码模块具体实现如下:
在收到SDRAM控制器发出的行有效(Active)命令时,同时记录逻辑存储阵列(L-Bank)地址+行地址(Row)+列地址(Column),并等待下一个信号;
在接收到读/写(Read/Write)命令时,记录列地址并合成完整的地址信号:逻辑存储阵列地址+行地址+列地址,将MRAM的工作状态相应的转变为读/写;
MRAM不需要预充电,刷新操作,在收到其他命令,包括初始化、刷新、预充电命令时,则不采取任何操作,MRAM的状态为IDLE,即闲置状态。
所述MRAM控制模块具体实现如下:
根据工作状态向每片MRAM发送相应的控制命令信号以及地址信号,其中System_Address信号的后两位是片选信号,突发读(Burst Read)操作,开始时读取System_Address信号,之后每个时钟周期***地址System_Address信号加1,每隔四个时钟周期(40ns)同时向四组MRAM发送读命令,向四组MRAM地址信号则是System_Address信号的前21位;突发写(Burst Write)操作开始时记录System_Address信号,之后每个时钟周期System_Address信号加1,每隔一个时钟周期(10ns)向由System_Address信号后两位决定的一组MRAM发送写命令,向这一组MRAM发送的地址信号是System_Address信号的前21位,其他三组MRAM都是闲置状态。
所述MRAM数据读写模块,根据SDRAM控制器发出的读写命令控制四组MRAM的数据读写,读写操作采用MRAM阵列流水读写架构,完成MRAM访存时序与DDR访存时序适配,对于突发读操作,在发送第一次读取命令四个时钟周期,即40ns后,从由System_Address后两位决定的哪一组MRAM数据总线取出数据放入***数据总线,之后每隔一个时钟周期,即10ns依次从下一组MRAM的数据总线里取出数据,由于SDRAM工作时钟为100MHZ,一个时钟周期为10ns,MRAM两次操作的延时为35ns,40ns的时间能保证对于任何一组MRAM的连续两次操作之间的间隔大于最小延时;对于突发写操作,每次向某组MRAM发送写命令的同时将***数据总线里的数据取出放入改组MRAM的数据总线,进行写入操作。
所述SDRAM与MRAM命令映射表实现为:
当接收到预充电、刷新SDRAM指令时,对应的MRAM的工作状态为IDLE,即闲置状态,不采取任何操作;当接收到行有效指令时,会记录下行地址和bank地址,并等待读/写命令;当收到读/写命令时,记录下列地址,并与前一个时钟周期收到的bank地址和行地址合成完整的地址信号,同时将MRAM的工作状态相应的变成READ/WRITE,即读/写状态;在收到其他命令时,包括初始化、刷新和预充电命令,则不会采取任何操作,MRAM的状态不会变化。
本发明的一种基于MRAM存储的图像采集***,所述***包括基于FPGA的从SDRAM到MRAM的接口转换***和摄像头;控制转换模块对摄像头采集的图像数据进行处理并传递给SDRAM控制器,进而通过控制转换模块实现在MRAM中存储。
本发明的一种基于上述接口转换***的实现方法,其特征在于步骤如下:
(1)根据SDRAM控制器送出的信号命令与地址信号,SDRAM命令解码模块将SDRAM控制器发出的命令信号转化成相应的MRAM工作状态,该SDRAM命令解码模块在接收到行有效(ACTIVE)命令时,则会记录下L-Bank地址和行地址,并等待下一个读/写信号;在接收到读/写(READ/WRITE)命令时,记录列地址并合成完整的地址信号,并将MRAM的工作状态相应的转变为读/写;
(2)MRAM控制模块根据SDRAM命令解码模传来的地址信号和工作状态,对四组MRAM的进行控制,即发送相应的控制命令信号以及地址信号;对于突发读操作,从检测到工作状态变为读时,每隔四个时钟周期同时向四组MRAM发送读命令,向四组MRAM地址信号则是***地址(sys_addr)信号的前21位;对于突发写操作,每隔一个时钟周期向一组MRAM发送写操作命令,同时向这一组MRAM发送地址信号,其他三组都处于闲置状态,在进行地址信号解析时,根据地址信号的后两位选择具体操作哪组MRAM,以保证对于任何一组MRAM的连续两次操作之间的间隔为四个时钟周期,大于最小延时;
(3)对于突发读操作,从开始发送读命令,之后每隔四个时钟周期从四组MRAM总线中取出数据,并在之后的时间内依次放入将一组数据放入***数据总线,即在第一个时钟上升沿到来时刻向MRAM发送读命令,则在四个时钟周期结束时分别取出四组数据寄存在一个64位的寄存器中,MRAM的四组数据总线的宽度为64位,包含:第一组MRAM中的16位数据,第二组MRAM中的16位数据,第三组MRAM中的16位数据,第四组MRAM中的16位数据,从低到高共64位数据,然后在第五个时钟周期到来时将寄存器中的前16位数据放到***输出总线上,第六个时钟周期到来时将寄存器中的第31到第16位放到***输出总线上,第七个时钟周期到来时将第47到第32位放到***输出总线上,第八个时钟周期到来时将第63到第48位放到***输出总线上,SDRAM控制器采取突发读写模式,突发长度为256,即每收到一次读/写命令,MRAM应进行256次读/写,即每组MRAM进行64次读写,重复操作64次;
对于突发写操作,则是在每次向某组MRAM发送写命令的同时将***输入数据总线里的数据取出放入该组MRAM的数据总线,进行写入操作,即在第一个时钟周期内向第一组MRAM发送写命令,将***输入总线的数据放到寄存器的第15到第0位上,第二个时钟周期内向第二组MRAM发送写命令,将***输入总线的数据放到寄存器的第31到第16位上,第三个时钟周期向第三组MRAM发送写命令,将***输入总线的数据放到寄存器的第47到第32位上,第四个时钟周期内向第四组MRAM发送写命令,将***输入总线的数据放到寄存器的第63到第48位上。
本发明与现有技术相比的优点在于:
(1)本发明基于MRAM与SDRAM在读写操作上的访存协议时序匹配、SDRAM与MRAM控制命令转换;包含MRAM在片选信号,输出使能,写使能信号控制下的数据线DQ的状态,及读写操作时序。还分析了SDRAM随机进行指定地址的数据读写操作。提出了MRAM访存命令与DDR访存命令的映射表,可以实现DDR命令与MRAM访存命令的无缝转换。
(2)本发明提出了存储颗粒阵列设计;FPGA核心板的SDRAM存储器的位宽为16bit,而MRAM的位宽为8bit,因此需要用2片MRAM芯片来进行替代;SDRAM的工作时钟频率为100MHz且由于采用突发读写的方式使得其读写延时为1个时钟周期即10ns(除对于第一个位置的读写延时),而MRAM读写的最小相应时间为35ns,因此***设计采用4组MRAM芯片进行流水式读写的方式来进行替代。图像采集***中的存储模块采用4组,每组2片MRAM芯片的方式进行流水式读写来代替原来的SDRAM。
(3)本发明提出了MRAM阵列流水读写架构,完成MRAM访存时序与DDR访存时序适配;对于突发读操作,从开始发送读命令,之后每隔40ns从四组MRAM总线中取出数据,并在之后的时间内依次放入将一组数据放入***数据总线。重复这个操作64次。对于突发写操作,则是在每次向某组MRAM发送写命令的同时将***输入数据总线里的数据取出放入该组MRAM的数据总线,进行写入操作。
附图说明
图1为SDRAM与MRAM的命令映射表示意图;
图2为本发明基于FPGA的从SDRAM到MRAM的接口转换***实现示意图,其中SDRAM命令解码模块、MRAM控制模块和MRAM数据读写模块合称为控制转换模块;
图3为full-page突发模式读/写的时序图;
图4为图像采集***控制设计RTL图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
本发明利用FPGA实现从DDR协议(SDRAM的读写协议)向MRAM读写协议转换,用MRAM作为嵌入式***的内存并兼容SDRAM控制器。接口的一边是SDRAM的时序约束,另一边是MRAM的时序约束。最终完成一个完整的图像采集***。
首先需要考虑SDRAM与MRAM的读写时序、容量、位宽以及地址映射等。有三个参数对SDRAM的性能影响至关重要:tRCD、CL和tRP。tRCD决定了行寻址(有效)至列寻址(读/写命令)之间的间隔,CL决定了列寻址到数据进行真正被读取所花费的时间,tRP则决定了相同L-Bank中不同工作行转换的速度。写操作不用考虑CL。
读写时序:虽然MRAM与SDRAM具有相似的读写特性,但是MRAM的读写速度仍然比SDRAM稍慢。在突发读写模式时,SDRAM处理第一个数据的延时为tRP+tRCD+CL,而处理其他数据的延时则仅仅为CL(一般为10ns)。而MRAM的读写延时有35ns;
位宽:MRAM的位宽为8bits,SDRAM的位宽为16bits;
容量:MRAM的容量为2Mbits,SDRAM的容量为16Mbits;
行列地址:SDRAM的行地址线为13位,列地址线为9位,L-Bank地址2位。MRAM的地址线为21位。
如图2所示,本发明的一种基于FPGA的从SDRAM到MRAM的接口转换***,包括:FPGA、SDRAM控制器、SDRAM命令解码模块、MRAM控制模块、MRAM数据读写模块和磁随机存储器MRAM。SDRAM与MRAM的命令映射表参考图1。
在本发明图像采集***中,使用FPGA进行图像处理,用Verilog HDL语言来实现控制核心的设计。通过功能划分,将设计分成CMOS I2C初始化、数据捕获、图像接收解析与解码,SDRAM异步图像存储,控制时序转换,VGA驱动等模块。通过图像采集***的RTL设计图,参考图4所示,由***时钟模块提供其他各模块所需要的时钟频率;摄像头模块实现对摄像头的控制,同时将接收的图像数据进行拼接并传递给SDRAM模块;SDRAM控制模块对来自摄像头的数据进行存储,并处理来自VGA模块的读取数据请求;而控制转换模块是最重要的部分,它实现将SDRAM控制转换为对MRAM控制的功能;VGA显示模块则实现图像数据的显示功能。
本发明是一种基于FPGA的从SDRAM到MRAM的接口转换方法,步骤如下:
(1)根据SDRAM控制器送出的信号命令与地址信号,SDRAM命令解码模块将SDRAM控制器对于SDRAM的控制信号转化成相应的MRAM工作状态,如该模块在接收到行有效(ACTIVE)命令时,则会记录下L-Bank地址和行地址,并等待下一个读/写信号;在接收到读/写(READ/WRITE)命令时,记录列地址并合成完整的地址信号(sys_addr[22:0]={L-Bank,Row[12:0],Column[8:0]}),并将MRAM的工作状态相应的转变为读/写;
(2)MRAM控制模块根据SDRAM命令解码模传来的***地址信号和工作状态,对四组MRAM的进行控制,即发送相应的控制命令信号以及地址信号。对于突发读操作,从检测到工作状态变为读时,每隔四个时钟周期(40ns)同时向四组MRAM发送读命令,向四组MRAM地址信号则是sys_addr信号的前21位(mram_addr=sys_addr[22:2])。对于突发写操作,每隔一个时钟周期(10ns)向一组MRAM发送写操作命令,同时向这一组MRAM发送地址信号,其他三组都处于闲置状态。在进行地址信号解析时,根据sys_addr信号的后两位选择具体操作哪组MRAM。这样能保证对于任何一组MRAM的连续两次操作之间的间隔为40ns,大于最小延时。
(3)MRAM数据读写模块是用来控制四组MRAM的数据读写。
对于突发读操作,如图3所示的读时序图,从开始发送读命令,之后每隔40ns从四组MRAM总线中取出数据,并在之后的时间内依次放入将一组数据放入数据总线。即假如第0ns向MRAM发送读命令,则在第40ns是分别取出四组数据寄存在一个64为的寄存器中,即:mram_dq[63:0]={mram3_data[15:0],mram2_data[15:0],mram1_data[15:0],mram0_data[15:0]},然后在第40ns将mram0_data放到***输出总线上,第50ns将mram1_data放到输出总线上,第60ns将mram2_data放到输出总线上,第70ns将mram3_data放到输出总线上。重复这个操作64次;
对于突发写操作,参考图3写时序图,则是在每次向某组MRAM发送写命令的同时将输入数据总线里的数据取出放入该组MRAM的数据总线,进行写入操作。即在第0ns向MRAM0发送写命令,将输入总线的数据放到mram0_data上,第10ns向MRAM0发送写命令,将***输入总线的数据放到mram1_data上,第20ns向MRAM0发送写命令,将***输入总线的数据放到mram2_data上,第30ns向MRAM0发送写命令,将输入总线的数据放到mram3_data上。
由于MRAM的无破坏读取以及数据存储的特性,与SDRAM复杂的预充电、定期刷新等控制操作相比,采用MRAM的控制较为简单且更低功耗。经过一系列软件仿真和硬件调试等操作后,采用MRAM作为缓存的低功耗图像采集***的功能成功实现。通过与比原以SDRAM为缓存的图像采集***运行情况进行对比,实现了采用MRAM代替DRAM作为嵌入式***主存并且可以兼容SDRAM控制器。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (5)
1.一种基于FPGA的从SDRAM到MRAM的接口转换***,其特征在于:所述***包括:SDRAM控制器、控制转换模块和磁随机存储器MRAM;所述控制转换模块采用FPGA实现,包括SDRAM命令解码模块、MRAM控制模块、MRAM数据读写模块;控制转换模块实现将SDRAM控制转换为对MRAM控制的功能;
SDRAM控制器,发出SDRAM命令信号和地址信号送至SDRAM命令解码模块;同时SDRAM控制器接收到MRAM数据读写模块的读写请求后,对MRAM数据读写模块进行数据读写;
SDRAM命令解码模块,把SDRAM控制器发出的命令信号解码成MRAM工作状态,传递给MRAM控制模块;同时把SDRAM控制器发出的地址信号解码给MRAM控制模块;所述MRAM工作状态对应的命令包括等待地址、读命令、写命令、突发中断和NOP;根据SDRAM与MRAM命令映射表,所述SDRAM命令解码模块在接收到行有效命令时,记录下逻辑存储阵列地址和存储阵列中的行地址,并等待下一个读/写信号;在接收到读/写命令时,记录列地址并合成完整的地址信号,并将MRAM的工作状态相应的转变为读/写;
MRAM控制模块,根据SDRAM命令解码模块传来的地址信号和工作状态,对MRAM进行控制;根据对应的MRAM的工作状态发送相应的MRAM控制命令及地址信号至MRAM;MRAM控制模块可发送读或写信号到MRAM数据读写模块;
MRAM数据读写模块:控制四组MRAM的数据读写;SDRAM控制器对MRAM数据读写模块进行数据读写;
所述SDRAM命令解码模块具体实现如下:
在收到SDRAM控制器发出的行有效(Active)命令时,同时记录逻辑存储阵列(L-Bank)地址+行地址(Row)+列地址(Column),并等待下一个信号;
在接收到读/写(Read/Write)命令时,记录列地址并合成完整的地址信号:逻辑存储阵列地址+行地址+列地址,将MRAM的工作状态相应的转变为读/写;
MRAM不需要预充电,刷新操作,在收到其他命令,其他命令包括初始化、刷新、预充电命令时,则不采取任何操作,MRAM的状态为IDLE,即闲置状态;
所述MRAM数据读写模块,根据SDRAM控制器发出的读写命令控制四组MRAM的数据读写,读写操作采用MRAM阵列流水读写架构,完成MRAM访存时序与SDRAM访存时序适配,对于突发读操作,在发送第一次读取命令四个时钟周期,即40ns后,从由System_Address后两位决定的哪一组MRAM数据总线取出数据放入***数据总线,之后每隔一个时钟周期,即10ns依次从下一组MRAM的数据总线里取出数据,由于SDRAM工作时钟为100MHZ,一个时钟周期为10ns,MRAM两次操作的延时为35ns,40ns的时间能保证对于任何一组MRAM的连续两次操作之间的间隔大于最小延时;对于突发写操作,每次向某组MRAM发送写命令的同时将***数据总线里的数据取出放入改组MRAM的数据总线,进行写入操作;
所述SDRAM与MRAM命令映射表实现为:
当接收到预充电、刷新SDRAM指令时,对应的MRAM的工作状态为IDLE,即闲置状态,不采取任何操作;当接收到行有效指令时,会记录下行地址和bank地址,并等待读/写命令;当收到读/写命令时,记录下列地址,并与前一个时钟周期收到的bank地址和行地址合成完整的地址信号,同时将MRAM的工作状态相应的变成READ/WRITE,即读/写状态;在收到其他命令时,包括初始化、刷新和预充电命令,则不会采取任何操作,MRAM的状态不会变化。
2.根据权利要求1所述的基于FPGA的从SDRAM到MRAM的接口转换***,其特征在于:所述SDRAM控制器包括SDRAM初始化模块、两个FIFO、存储阵列bank切换模块以及SDRAM读写控制模块,两个FIFO,即写缓存和读缓存及FIFO控制模块;SDRAM初始化模块实现SDRAM的初始化的功能,上电后等待SDRAM初始化完成之后传递初始化完成信号给SDRAM控制器进行后续操作;SDRAM读写控制模块实现SDRAM突发读写操作,分别在接收到来自两个FIFO的读/写请求时开始向SDRAM发送读/写命令,同时还实现预充电、周期性刷新操作以保证SDRAM中存储数据的完整性与正确性;存储阵列bank切换模块发送存储阵列bank切换命令至SDRAM读写控制模块实现2个存储阵列bank之间的乒乓读写操作,使得输入与输出的图像数据流对无冲突。
3.根据权利要求1所述的基于FPGA的从SDRAM到MRAM的接口转换***,其特征在于:所述MRAM控制模块具体实现如下:
根据工作状态向每片MRAM发送相应的控制命令信号以及地址信号,其中System_Address信号的后两位是片选信号,突发读(Burst Read)操作,开始时读取System_Address信号,之后每个时钟周期System_Address信号加1,每隔四个时钟周期同时向四组MRAM发送读命令,向四组MRAM地址信号则是System_Address信号的前21位;突发写(Burst Write)操作开始时记录System_Address信号,之后每个时钟周期System_Address信号加1,每隔一个时钟周期向由System_Address信号后两位决定的一组MRAM发送写命令,向这一组MRAM发送的地址信号是System_Address信号的前21位,其他三组MRAM都是闲置状态。
4.一种基于MRAM存储的图像采集***,其特征在于:所述***包括权利要求1-3所述任意之一的基于FPGA的从SDRAM到MRAM的接口转换***和摄像头;控制转换模块对摄像头采集的图像数据进行处理并传递给SDRAM控制器,进而通过控制转换模块实现在MRAM中存储。
5.一种实现基于权利要求1-3任意之一所述的接口转换***的实现方法,其特征在于,步骤如下:
(1)根据SDRAM控制器送出的信号命令与地址信号,SDRAM命令解码模块将SDRAM控制器发出的命令信号转化成相应的MRAM工作状态,该SDRAM命令解码模块在接收到行有效(ACTIVE)命令时,则会记录下逻辑存储阵列(L-Bank)地址和行地址,并等待下一个读/写信号;在接收到读/写(READ/WRITE)命令时,记录列地址并合成完整的地址信号,并将MRAM的工作状态相应的转变为读/写;
(2)MRAM控制模块根据SDRAM命令解码模传来的地址信号和工作状态,对四组MRAM的进行控制,即发送相应的控制命令信号以及地址信号;对于突发读操作,从检测到工作状态变为读时,每隔四个时钟周期同时向四组MRAM发送读命令,向四组MRAM地址信号则是***地址(sys_addr)信号的前21位;对于突发写操作,每隔一个时钟周期向一组MRAM发送写操作命令,同时向这一组MRAM发送地址信号,其他三组都处于闲置状态,在进行地址信号解析时,根据地址信号的后两位选择具体操作哪组MRAM,以保证对于任何一组MRAM的连续两次操作之间的间隔为四个时钟周期,大于最小延时;
(3)对于突发读操作,从开始发送读命令,之后每隔四个时钟周期从四组MRAM总线中取出数据,并在之后的时间内依次放入将一组数据放入***数据总线,即在第一个时钟上升沿到来时刻向MRAM发送读命令,则在四个时钟周期结束时分别取出四组数据寄存在一个64位的寄存器中,MRAM的四组数据总线的宽度为64位,包含:第一组MRAM中的16位数据,第二组MRAM中的16位数据,第三组MRAM中的16位数据,第四组MRAM中的16位数据,从低到高共64位数据,然后在第五个时钟周期到来时将寄存器中的前16位数据放到***输出总线上,第六个时钟周期到来时将寄存器中的第31到第16位放到***输出总线上,第七个时钟周期到来时将第47到第32位放到***输出总线上,第八个时钟周期到来时将第63到第48位放到***输出总线上,SDRAM控制器采取突发读写模式,突发长度为256,即每收到一次读/写命令,MRAM应进行256次读/写,即每组MRAM进行64次读写,重复操作64次;
对于突发写操作,则是在每次向某组MRAM发送写命令的同时将***输入数据总线里的数据取出放入该组MRAM的数据总线,进行写入操作,即在第一个时钟周期内向第一组MRAM发送写命令,将***输入总线的数据放到寄存器的第15到第0位上,第二个时钟周期内向第二组MRAM发送写命令,将***输入总线的数据放到寄存器的第31到第16位上,第三个时钟周期向第三组MRAM发送写命令,将***输入总线的数据放到寄存器的第47到第32位上,第四个时钟周期内向第四组MRAM发送写命令,将***输入总线的数据放到寄存器的第63到第48位上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110604283.0A CN113220616B (zh) | 2021-05-31 | 2021-05-31 | 一种基于fpga的从sdram到mram的接口转换***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110604283.0A CN113220616B (zh) | 2021-05-31 | 2021-05-31 | 一种基于fpga的从sdram到mram的接口转换***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220616A CN113220616A (zh) | 2021-08-06 |
CN113220616B true CN113220616B (zh) | 2022-11-15 |
Family
ID=77081750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110604283.0A Active CN113220616B (zh) | 2021-05-31 | 2021-05-31 | 一种基于fpga的从sdram到mram的接口转换***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220616B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905100B (zh) * | 2022-12-27 | 2023-08-18 | 南方电网调峰调频发电有限公司检修试验分公司 | 一种龙芯2k1000处理器实现励磁***与fpga数据交互的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1341942A (zh) * | 2001-06-30 | 2002-03-27 | 深圳市朗科科技有限公司 | 一种多功能半导体存储装置 |
CN1367438A (zh) * | 2002-02-09 | 2002-09-04 | 深圳市朗科科技有限公司 | 支持多种接口的半导体存储方法及装置 |
JP2013196476A (ja) * | 2012-03-21 | 2013-09-30 | Fuji Xerox Co Ltd | データ処理装置およびメモリ制御装置 |
CN103544984A (zh) * | 2012-07-11 | 2014-01-29 | 三星电子株式会社 | 磁性随机存取存储器 |
CN105224241A (zh) * | 2014-06-23 | 2016-01-06 | 联想(北京)有限公司 | Mram存储器、数据存储***及数据读取方法 |
CN110727470A (zh) * | 2018-06-29 | 2020-01-24 | 上海磁宇信息科技有限公司 | 一种混合式非失性存储装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11048654B2 (en) * | 2018-10-24 | 2021-06-29 | Innogrit Technologies Co., Ltd. | Systems and methods for providing multiple memory channels with one set of shared address pins on the physical interface |
-
2021
- 2021-05-31 CN CN202110604283.0A patent/CN113220616B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1341942A (zh) * | 2001-06-30 | 2002-03-27 | 深圳市朗科科技有限公司 | 一种多功能半导体存储装置 |
CN1367438A (zh) * | 2002-02-09 | 2002-09-04 | 深圳市朗科科技有限公司 | 支持多种接口的半导体存储方法及装置 |
JP2013196476A (ja) * | 2012-03-21 | 2013-09-30 | Fuji Xerox Co Ltd | データ処理装置およびメモリ制御装置 |
CN103544984A (zh) * | 2012-07-11 | 2014-01-29 | 三星电子株式会社 | 磁性随机存取存储器 |
CN105224241A (zh) * | 2014-06-23 | 2016-01-06 | 联想(北京)有限公司 | Mram存储器、数据存储***及数据读取方法 |
CN110727470A (zh) * | 2018-06-29 | 2020-01-24 | 上海磁宇信息科技有限公司 | 一种混合式非失性存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113220616A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5927263B2 (ja) | ホストコンピュータシステムとメモリとの間の通信方法およびメモリ | |
US8705313B2 (en) | DDR PSRAM and data writing and reading methods thereof | |
US6647478B2 (en) | Semiconductor memory device | |
JP4742116B2 (ja) | アウトオブオーダdramシーケンサ | |
US7142477B1 (en) | Memory interface system and method for reducing cycle time of sequential read and write accesses using separate address and data buses | |
US10290334B2 (en) | Read latency reduction in a memory device | |
CN101310339A (zh) | 具有多个内部数据总线和存储器库交错的存储器装置和方法 | |
JP2000506301A (ja) | 高速コマンド入力を有する簡単化されたクロックドdram | |
CN104978150B (zh) | 存储器装置的控制方法、存储器装置和存储器*** | |
US8593902B2 (en) | Controller and access method for DDR PSRAM and operating method thereof | |
CN1860460A (zh) | 在具有等待信息的存储***上的回声时钟 | |
WO2023065717A1 (zh) | Ddr存储器数据读写调度方法和装置 | |
CN113220616B (zh) | 一种基于fpga的从sdram到mram的接口转换***及方法 | |
CN1702768A (zh) | 半导体存储装置 | |
TWI533135B (zh) | 記憶體存取方法、記憶體存取控制方法、記憶體裝置與記憶體控制器 | |
TW425508B (en) | Narrow data width dram with low latency page-hit operations | |
KR100438736B1 (ko) | 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치 | |
CN201936294U (zh) | 一种高速图像采集***的缓存*** | |
US7330991B2 (en) | Method and/or apparatus for paging to a dynamic memory array | |
Zheng et al. | Design and implementation of DDR4 SDRAM controller based on FPGA | |
US20230176608A1 (en) | Read clock start and stop for synchronous memories | |
US7178000B1 (en) | Trace buffer for DDR memories | |
KR20240112914A (ko) | 동기식 메모리들에 대한 판독 클록 시작 및 중지 | |
KR20240112970A (ko) | 동기식 메모리들에 대한 판독 클록 시작 및 중지 | |
CN104347107A (zh) | 存储器件和包括其的存储*** |
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 |