SDRSDRAM控制器白皮书《三》 sdram 控制器咋用ip核

构架

SDRAM控制器由4个模块组成:SDRAM控制器,控制接口,命令通道和数据通道。SDRAM控制器模块是顶级模块,其instantiates3个低等级模块,将其连成一个整体。控制接口模块从主机接收命令和相关的存储地址,同时对命令解码后传送给命令模块,命令模块从控制接口模块接收命令和地址,生成合适的命令给SDRAM器件,数据通道处理读写命令时的数据通路操作,SDRAM控制器也演示了一个PLL,用于CLOCK_LOCK模式以改进I/O定时。PLL对于SDRAM操作不是必须的,图7给出了SDRSDRAM控制器的方框图。

ControlInterfaceModule

Thecontrolinterfacemoduledecodesandregisterscommandsfromthehost,an————dpassesthedecodedNOP,WRITEA,READA,REFRESH,PRECHARGE,andLOAD_MODEcommands,andADDRtothecommandmodule.TheLOAD_REG1andLOAD_REG2commandsaredecodedandusedinternallytoloadtheREG1andREG2registerswithvaluesfromADDR.Figure8showsthecontrolinterfacemoduleblockdiagram.

控制接口模块

控制接口模块对主机发出的命令解码并寄存,传送已经解码的NOP,WRITEA,READA,REFRESH,PRECHARGE和LOAD_MODE命令和ADDR给命令模块,LOAD_REG1和LOAD_REG2命令解码后,同ADDR一起装入内部的REG1和REG2寄存器。图8给出了控制接口模块的框图。

Thecontrolinterfacemodulealsocontainsa16-bitdowncounterandcontrolcircuitthatisusedtogenerateperiodicrefreshcommandstothecommandmodule.The16-bitdowncounterisloadedwiththevaluefromREG2andcountsdowntozero.TheREFRESH_REQoutputisassertedwhenthecounterreacheszeroandremainsasserteduntilthecommandmoduleacknowledgestherequest.TheacknowledgefromthecommandmodulecausesthedowncountertobereloadedwithREG2andtheprocessrepeats.REG2isa16-bitvaluethatrepresentstheperiodbetweenREFRESHcommandsthat

Forexample,ifanSDRAMdevicethatisconnectedtotheSDRSDRAMControllerhasa64-ms,4096-cyclerefreshrequirement,thedevicemusthaveaREFRESHcommandissuedtoitatleastevery

64ms/4096=15.625ìs.

IftheSDRAMandSDRSDRAMControllerareclockedbya100-MHzclock,themaximumvalueofREG2is15.625ìs/0.01ìs=1562d.

theSDRSDRAMControllerissues.Thevalueissetbytheequationint(refresh_period/clock_period).

控制接口模块也含有一个16位的减法计数器,和用于给命令模块产生周期刷新命令的电路,16位的减法计数器装入REG2中的数值,并递减到0,但计数器为0时,执行REFRESH_REQ输出给命令模块,该命令一致输出直到命令模块响应该刷新请求。收到命令模块的刷新请求后,减法计数器重新装入REG2中的数值,重复以上过程。REG2是一个表示SDRSDRAM控制其发出的REFRESH(刷新)命令之间的时间间隔周期,数值等于refresh_period/clock_period的整数。

例如,如果使用的SDRAM器件具有64ms,4096周期刷新要求,器件必须必须至少每15.62509us,

因为:64ms/4096=15.62509μs.

如果SDRAM和控制器工作在100Mhz的时钟周期,REG2的最大数值是15.625μs/0.01μs=1562d.,该数值在发出LOAD_REG2命令是同步出现在ADDR上。

CommandModule

Thecommandmoduleacceptsdecodedcommandsfromthecontrolinterfacemodule,refreshrequestsfromtherefreshcontrollogic,andgeneratestheappropriatecommandstotheSDRAM.Themodulecontainsasimplearbiterthatarbitratesbetweenthecommandsfromthehostinterfaceandtherefreshrequestsfromtherefreshcontrollogic.Therefreshrequestsfromtherefreshcontrollogichavepriorityoverthecommandsfromthehostinterface.Ifacommandfromthehostarrivesatthesametimeorduringahiddenrefreshoperation,thearbiterholdsoffthehostbynotassertingCMDACKuntilthehiddenrefreshoperationiscomplete.Ifahiddenrefreshcommandisreceivedwhileahostoperationisinprogress,thehiddenrefreshisheldoffuntilthehostoperationiscomplete.Figure9showsthecommandmoduleblockdiagram.

命令模块

“命令模块”接收“控制接口模块”输出的已经解码的命令,和周期性输出的刷新请求,并产生合适的命令给SDRAM器件,模块含有一个简易的仲裁电路用于仲裁主机的命令和刷新控制逻辑所产生的刷新请求。从刷新控制逻辑电路发出的刷新请求比主机接口的命令的优先级别高。如果主机命令和隐含的刷新操作同时出现,仲裁电路在刷新操作完成之前就不发出CMDACK应答。如果主机操作在进行中,收到了刷新命令,刷新操作将延时到主机操作完成后执行,图9给出了命令模块的框图。

Afterthearbiterhasacceptedacommandfromthehost,thecommandispassedontothecommandgeneratorportionofthecommandmodule.ThecommandmoduleusesthreeshiftregisterstogeneratetheappropriatetimingbetweenthecommandsthatareissuedtotheSDRAM.OneshiftregisterisusedtocontrolthetimingtheACTIVATEcommand;asecondisusedtocontrolthepositioningoftheREADAorWRITEAcommands;athirdisusedtotimecommanddurations,whichallowsthearbitertodetermineifthelastrequestedoperationhasbeencompleted.

ThecommandmodulealsoperformsthemultiplexingoftheaddresstotheSDRAM.TherowportionoftheaddressismultiplexedouttotheSDRAMoutputsA[11:0]duringtheACTIVATE(RAS)command.ThecolumnportionisthenmultiplexedouttotheSDRAMaddressoutputsduringaREADA(CAS)orWRITEAcommand.

TheoutputsignalOEisgeneratedbythecommandmoduletocontroltristatebuffersinthelaststageoftheDATAINpathinthedatapathmodule.

在仲裁电路已经接受主机命令后,命令被送到模块的命令发生器部分,命令模块使用3个移位寄存器来产生命令之间的时序,一个移位寄存器用于控制ACTIVATE命令;第二个用于控制READAorWRITEA命令发出的时间;第三个用于对命令的持续时间定时,这样仲裁其就可以判断最近请求的操作是否已经完成。

命令模块也实现SDRAM的地址复用,地址的行部分在ACTIVATE(RAS)命令时复用到SDRAM输出的A[11:0],地址的列部分在READA(CAS)或WRITEA命令时复用到SDRAM地址线上,

控制模块所产生的输出信号OE用于控制数据通路模块的DATAIN通路的三态缓冲。

DataPathModule

SDRSDRAM控制器白皮书《三》 sdram 控制器咋用ip核

ThedatapathmoduleprovidestheSDRAMdatainterfacetothehost.HostdataisacceptedonDATAINforWRITEAcommandsanddataisprovidedtothehostonDATAOUTduringREADAcommands.Figure10showsthedatapathmoduleblockdiagram.TheDATAINpathconsistsofa2-stagepipelinetoaligndataproperlyrelativetotheCMDACKandthecommandsthatareissuedtotheSDRAM.DATAOUTconsistsofa2-stagepipelinethatregistersdatafromtheSDRAMduringaREADAcommand.DATAOUTpipelinedelaycanbereducedtooneorevenzeroregisters,withtheonlyaffectthattherelationshipofDATAOUTtoCMDACKchanges.

数据通路模块

数据通路模块提供了SDRAM和主机之间的数据接口,主机在WRITEA时从DATAIN上输入数据,在READA命令时从DATAOUT上取出数据。图10给出了数据通路模块的方块图,DATAIN通路由2段通路组成,以和对应的CMDACK和送往SDRAM的命令的时序对齐,DATAOUT也由2段通路构成,用于在READA命令期间寄存SDRAM的输出数据,DATAOUT的通路延时能够减少到1次或者不寄存,唯一的影响的是DATAIUT和CMKACK的关系会改变。

Full-PageModeOperation

TheSDRSRAMControllersupportsfull-pagemodeoperationoftheSDRAMdevicesthatitcontrols.TheSDRSDRAMControllerisconfiguredforfull-pageoperationbysettingbit8ofREG1(seesection“LOAD_REG1Command”onpage9).WhentheSDRSDRAMControllerisinfull-pagemode,theauto-hiddenrefreshfunctionisdisabledandREADAandWRITEAcommandsbecomeREAD/WRITE(withoutauto-precharge).TheuserinterfacemusthandlerefreshingtheSDRAMdevicesviatheREFRESHcommand.TheuserinterfacemustalsohandleissuingappropriatePRECHARGEcommandstotheSDRAMdevices,tocloseabankbeforestartingaREADoperationtoadifferentrow.Figure11showsafull-pageREADburstwithaPRECHARGEtoterminatethebursttimingdiagram.Thefollowinglistdetailsthefull-pageREADoperation:

满页模式操作

SDRAM控制其支持SDRAM器件的满页操作模式,控制器通过设置REG1来配置其工作在满页模式,当SDRSDRAM控制器在满页模式时,控制器的隐含的刷新功能被禁止,READA和WRITEA命令变成READ/WRITE(没有自动预充电),用户接口必须通过REFRESH命令来刷新SDRAM器件。用户接口也必须对SDRAM执行预充电命令,在对不同行启动READ命令时,必须关闭一个存储体。图11显示了的满页突发读时,由PRECHARGE中止突发时序的时序图。下面列出了满页操作的详细过程。

■TheuserassertstheREADCommandonCMDandADDR

■TheSDRSDRAMControllerassertsCMDACKtoacknowledgethecommandandsimultaneouslystartsissuingcommandstotheSDRAMdevices

■OneclockaftertheSDRSDRAMControllerassertsCMDACK,theuserassertsNOPonCMD

■(RCD+CL+2)clocksaftertheSDRSDRAMControllerassertedCMDACK,theSDRSDRAMControllerstartsclockingthereaddataoutonDATAOUT

■(CL–1+7)clocksbeforethelastREADdatavalueistoappearonDATAOUT,theuserassertsPRECHARGEonCMD

■4clockslater,theSDRSDRAMControllerassertsCMDACKtoacknowledgethePRECHARGEcommandandsimultaneouslyissuesaPRECHARGEcommandtotheSDRAMdevices

■(CL–1+2)clockslater,theREADburstterminatesonDATAOUT

n用户发出在CMD和ADDR上发出READ命令

nSDRAM控制器执行CMDACK来响应这个命令,同时启动该命令给SDRAM器件

n在SDRAM控制器执行CMDACK后一个时钟,用户执行NOP。

n在SDRAM控制器执行CMDACK的(RCD+CL+2)个时钟后,SDRAM控制器开始在DATAOUT上读出数据

n在最后一个读出数据出现在DATAOUT前的(CL–1+7)个时钟,用户在CMD上执行PRECHARGE.

n4个时钟后,SDRAM控制器执行CMDACK来作为PRECHARGE命令的应答,同时向SDRAM发出PRECHARGE命令。

n(CL–1+2)个时钟后,在DATAOUT上的读突发操作被中止。

Figure12showsafull-pageWRITEburstwithaPRECHARGEtoterminatethebursttimingdiagram.Thefollowinglistdetailsthefull-pageWRITEoperationisasfollows:

nTheuserassertsWRITEonCMDandADDR

nTheSDRSDRAMControllerassertsCMDACKtoacknowledgethecommandandsimultaneouslystartsissuingcommandstotheSDRAMdevices

nOneclockaftertheSDRSDRAMControllerassertsCMDACK,theuserassertsNOPonCMD

n(RCD–2)clocksaftertheSDRSDRAMControllerassertsCMDACK,theuserstartsclockingdataintotheSDRSDRAMControlleronDATAIN

n3clocksbeforethelastWRITEdatavalueistoappearonDATAOUT(应为?DATAIN),theuserassertsPRECHARGEonCMD.Thisdelayis(5clockcommanddelay–tWR),whichis2inthisexample

n4clockslater,theSDRSDRAMControllerassertsCMDACKtoacknowledgethePRECHARGEcommandandsimultaneouslyissuesaPRECHARGEcommandtotheSDRAMdevices

nThefull-pageWRITEburstisterminated

图12给出了满页突发写(WRITE)模式操作被预充电(PRECHARGE)中止的时序,满页写操作的详细过程如下:

n用户在CMD和ADDR上执行WRITE

nSDRAM控制器发出该命令的响应CMDACK,同时向SDRAM器件发出该命令

n在控制器发出CMDACK的1个时钟周期后,用户执行在CMD上发出NOP。

n在控制器发出CMDACK的”RCD-2”个时钟周期后,用户在DATAIN上开始启动输入数据

n在DATAIN上出现最后一个数据的3个时钟周期前,用户在CMD上发出PRECHARGE,该延时(指用户发出PRECHARGE的时间)应该等于“3-tWR”,在本例中该数值为2。

n4个时钟后,SDRAM控制器发出对PRECHARGE的应答CMDACK,同时发出PRECHARGE给SDRAM器件

n此时,满页写突发操作被停止

Simulation,Synthesis,Place-&-Route,&Results

TheSDRSDRAMControllerincludessourcefiles,atestbench,synthesisscripts,andsupportfilesforplace-androuteusingtheQuartus®IIsoftwareversion2.1targetinganEP20K200EFC672-1Xdevice.Table5showstheSDRSDRAMControllerdirectorystructure.

仿真,综合,(印制板)布局和布线,结果

SDRAM控制器包含源文件,测试平台,综合脚本和使用Quartus®II软件V2.1版本的环境支持文件,目标器件为EP20K200EFC672-1X。

表5:SDRAM控制器的目录结构

Simulation

TheSDRSDRAMControllercanbesimulatedbyusingthebehavioralsourcefilesdr_sdram_tb(/simulationdirectory).Thetestbenchperformsthefollowingactions:

nInstantiatestheSDRSDRAMControllerandtwoSDRAMmemorymodels

nConfigurestheSDRAMdevicesandSDRSDRAMController

nRunsaramppatterntestusingallcombinationsofCASlatency,burstlength,andRAStoCASdelaysforagivenclockfrequency

Higherclockfrequencies(e.g.,133MHzvs.100MHz)limittheRAStoCASdelaysandCASlatencychoices.ThetestassumesaninterfacetoaMicronMT481C8M16A2SDRAMdevice(notsupplied).FormoreinformationontheMicronmodels,seehttp://www.micron.com.

仿真

SDRAM控制器可以使用源文件来仿真(/simulation目录),测试平台完成以下工作。

n演示一个SDRAM控制器和2个SDRAM存储模块

n配置存储器和SDRAM控制器

n使用所有给定时钟频率下的CAS延时,突发长度,RAStoCAS延时的各种组合,执行一个”ramp”测试模式

时钟频率越高,对CAStoCAS延时和CAS延时的限制越大(例如133Mhz相对于100Mhz),测试假定使用MicronMT481C8M16A2SDRAM器件。关于Micron存储模块的更详细信息,请参见:http://www.micron.com.

Place&Route

ThetCOandtSUvaluesareimportantparameterstoconsider,ifyouwanttoruntheSDRSDRAMControllerathigherspeeds.InadditionAlterarecommendsplacingdatapinsinonebankandcontrolpinsinanotherbank.

PC133SDRAMdevicestypicallyhaveatCOof5.4nsandatSUof1.5ns.

PCBdelayisgivenbythefollowingequation:

PCBdelay=(clock(ns))–(FPGAsetuptime(ns))–(SDRAMtCO(ns))showstypicalPCBdelays.

Forawriteoperationat133MHz,thePCBdelay=(7.5–1.5–3.5)=0.9ns.

Forareadoperationat133MHz,thePCBdelay=(7.5–1.3–5.4)=1.5ns.

FormoreinformationonPCBdesignforhigh-speedapplications,seeApplicationNote75:High-SpeedBoardDesigns.

(印制板)布局和布线

时间参数tCO和tSU的数值是需要考虑的重要参数,如果你想以较高的速路运行SDRAM控制器,建议将数据引脚在一个BANK,控制引脚在另一个存储体(?)。

PC133SDRAM器件典型的tCO等于5.4ns,tSU等于1.5ns.

PCB延时由以下等式给出:

PCB延时=(时钟周期–(FPGA建立时间–SDRAMtCO(ns).

对于133Mhz的写操作,PCB延时时间=(7.5–1.5–3.5)=0.9ns.

对于133Mhz的读操作,PCB延时时间=(7.5–1.3–5.4)=1.5ns.

关于高速PCB设计的更多信息,请参见ApplicationNote75:High-SpeedBoardDesigns.

Throughput

Maximumthroughputisachievedwithpagebursts.Forrandomoperationthroughputisgivenby:

Throughput=1/clockperiod(ns)×datapathwidth(bytes)×burstlengthofaccess/numberofclockcyclesperaccess

Forexample,ifdatapathwidth=32bits(4bytes),clockcycles=20,burstlengthofaccess=8,

throughput=1/7.5×4×8/20=212Mbytes/s

Note,awritethroughputishigherthanareadthroughput,becauseaWRITEAoperationrequires15clockcycles

Performance

Table6showstheperformanceresultsfortheSDRSDRAMController.TheresultsweregeneratedwiththeQuartusIIsoftwareversion2.1SP1.

数据吞吐率

在页突发模式下数据吞吐率最大,对于随机操作时的吞吐率,由下式给出。

吞吐率=1/时钟周期(ns)×数据宽度(字节)×突发长度/每次访问的时钟数

例如,如果数据宽度为32位,时钟周期为20ns,突发长度为8,则:

吞吐率==1/7.5×4×8/20=212Mbytes/s

注意,写操作时的吞吐率比读操作时的吞吐率高,因为写操作要求15个时钟周期。

性能

表6给出了SDRAM控制器的性能结果,该结果是在使用QuartusIIsoftwareversion2.1SP1.

下得到的。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/282994.html

更多阅读

《三季人的故事》 三季人是什么意思

《三季人的故事》  有一天,孔子的一个学生在院门外扫地,远处走来了一个身穿绿衣服的人。那个人问道:“你是谁啊?”孔子的学生回答说:“我是孔丘先生的学生。”  “那你一定懂很多东西啦?我请教你一个问题吧,你知道一年中,有几个季节吗

《三体》读后!! 三体读后感500字

三体:天体力学模型,研究三个可视为质点的天体在相互之间万有引力作用下的运动规律问题。本人非理工科出身,对此问题毫无见解,只知道目前学术界对该问题尚没有完美的解答!这里推荐的是一部科幻小说,名为《三体》,一、二两部,第二部副标题为

《三借芭蕉扇》教学反思 三借芭蕉扇 西游记

《三借芭蕉扇》教学反思《西游记》是我国古代一部杰出的长篇神话小说,以唐僧取经的故事为线索,塑造了神猴孙悟空光彩照人的艺术形象。孙悟空“三借芭蕉扇”充分表现了孙悟空嫉恶如仇、敢于斗争、不怕困难的性格特点。教学这课时,我导

评《三生三世枕上书》:其实挺失望

看过唐七公子所有的文,曾经认为《三生三世十里桃花》是无人能超越的仙侠经典,曾经明知《华胥引》是悲剧,但仍心甘情愿被虐,哪怕是口碑一般的《岁月是朵两生花》,我也觉得好过绝大多数的现言作品。千盼万盼来的新作《三生三世枕上书》却

声明:《SDRSDRAM控制器白皮书《三》 sdram 控制器咋用ip核》为网友春风忘了矜持分享!如侵犯到您的合法权益请联系我们删除