SDRAM和DDR SDRAM时序图与信号完整性仿真结合运用(1)

    研究信号完整性有一段时间了,也看过各种各样信号完整性的书籍,先前关注之处在于为没有具体对象的信号完整性方面,在本人实际工作中与信号完整性相关就是ARM芯片和SDRAM(包括DDR)之间的信号。现在以具体的SDRAMDDR SDRAM来对信号完整性进行总结,以达到活学活用的效果。

l  ARMSDRAM芯片接口和时序

    数字系统时序分为两种:普通时序(共同时钟系统)和源同步系统时序。SDRAM属于源同步时序系统,即从PLL分频从内时钟供ARM中控制接口和SDRAM接口共同使用,可以用下面简图来表示其关系:

1.DDR接口电路

    因为DDR为了double吞吐量故使用差分时钟对。

驱动芯片为ARM处理器,接收芯片为DDR SDRAM。左边简图中数据触发器一般构成输出数据线DQ[0…31]中的一根,上方选通触发器一般构成数据strobeDQS[0…3])中的一根。注意两芯片使用的总线时钟均为CK  /CK差分输出时钟。

       当总线时钟上升沿到来时,数据触发器先锁存数据并将之输出到DDR以确保输出数据信号有setup时间;该总线经过延时单元延时后再锁存数字选通信号再输出给DDR以供其锁存到达的输入数字信号,然后当总线时钟从CPU到达后将其数据锁存后保存到DDR的存储介质中。

细心的人估计看出问题了,如果总线时钟在数据触发器或选通触发器之前到达DDR那么此时锁存的数字信号是不准确的。我们现在假设4个触发器的反应时间均为Tout,延时单元延时时间为Tdelay,数据触发器从ARMDDR延时时间为Tdata,选通触发器延时时间为Tstrobe,总线时钟延时时间为Tclock.为了使DDR中数据被总线正常锁存必须满足如下条件:

        Tdelay +Tout + Tstrobe + Tout + TdataH Tclock +TCKTdataHDDR数据信号保持时间,保留信号裕量故用大于符号)

    Tout + Tdata + Tsetup + Tout + TdataH Tclock +TCKTsetupDDR数据信号建立时间,保留信号裕量故用大于符号)

 

 2.SDRAM接口电路

    由于SDRAM采用single时钟,所以ARM控制引脚接口中没有数据选通触发器,相对应的SDRAM的数据输入口不像DDR那样为两级而是单机触发器。

    依照以上计算方式有只有如下公式

        Tout + Tdata + Tsetup + Tout + TdataH Tclock +TCK 

3.SDRAMDDR工作时序图

        SDRAMDDR区别在于前者是在总线时钟上升沿触发发送和接收数据,后者是在时钟上升和下降沿进行触发发送和接收数据的。我以下简图来详细说明两者的共同点或异同点,如下图:

 

 

上图为未指定具体型号的DDR时序简图用以描述DDR工作流程,在具体写操作系统驱动和设计PCB时不可借鉴,因为此图为理想状态时序图。

以下为S3C2410SDRAM读写时序图:

 

 

 

SDRAMRAS低电位在时钟上升沿开始预充电tRP时段后,两个时钟上升沿正好将两个行地址位采样。经过tRCD延时后CAS有效,此时可直接进行读操作而写操作需要使能WEn,待读或写操作完成后开始刷新操作但是其周期是CAS低电位间差值。在编写bootload程序对SDRAM进行控制时,主要修改的就是tRPtRCDtcl以及刷新周期,但是一般取值为2-2-2-64ms

 

以下为S3C6410 DDR时序图

 

DDR的读写数据过程在前面已经讲解过了,其地址锁存流程也与SDRAM相同。

 

l  电路参数计算

    本电路所仿真的ARM最小系统分别如下:

       S3C24102SDRAM芯片H57V2562GFRBGA封装)

       S3C64102DDR芯片H5DU2562GFRBGA封装)

 

两者内存总线时钟均设定为133M

1.2410方案

       ADDRCLKCSRASCAS时序关系   

       2410参数为tSAD∈【27tSCSD∈【26tSRD∈【15tSCD∈【15

       H57V2562GFR中参数为tASmin = 1.5  tAHmin = 0.8,单位为ns

       为满足SDRAM时序要求取tRCD=2Trp=2Trc=7CL = 2,单位为CLK.

在布线时一般是将ADDRCSRASCAS做为控制/地址来处理,且CS低电位宽度较地址数值宽的多,如ADDR宽度为1CLKRAS7CLK。只要ADDR时序满足了,则其他控制/地址时序也就满足了.

        地址建立时间容限计算:Tstep margin=(Tck+Tdelay)-(Tsad+Tadd)-Tasmin0

    地址保持时间容限计算:Thold margin= (Tsad+ Tadd)- Tdelay- tahmin0

计算可得6.2ns=Tsad - tahminTdelay-TaddTsad+ Tasmin- Tck=-1.5ns,PCB实际布线时可以通过延长时钟线来达到此效果,取Tdelay-Tadd∈【06.2】,即时钟线最少和地址线等长或更长。

 

CPU读时序计算

       2410读时序图存在问题,应该是从CL个延时后SDRAM才开始输出读数据,CPUCL+1时钟才进行采样。

       读操作过程如下:CPU输出时钟→SDRAM输入时钟→Access Time From ClockSDRAM输出数据→数据

传到MCU数据口→SDRAM的后续时钟源数据保留Toh_sdram→同时MCU侧进行数据采样

    

 2410缺少参数Tac,6410提供该参数为6ns,这样计算Tdelay+Tadd<=0,还需要待研究。

 

CPU写时序计算

        SDRAM写操作过程为:

        MCU_CLK输出→同时MCU输出数据到总线→SDRAM_CLKSDRAM _ DATA输入→SDRAM在时钟的上升沿采样数据。

    数据建立时间容限计算:Tstep margin=(Tck+Tdelay)-(Tsdd+Tadd)-Tdsmin0

    数据保持时间容限计算:Thold margin= (Tsdd+ Tadd)- Tdelay- tdhmin0

        6.2ns=Tsdd - tdhminTdelay-TaddTsdd+ Tdsmin- Tck=-1.5ns

    与地址线一样,在PCB实际布线时可以通过延长时钟线来达到此效果,取Tdelay-Tadd∈【06.2】,即时钟线最少和数据线等长或更长。

 

2.6410方案

       ADDRCLKCSRASCAS时序关系,2410计算公式一样则有:

       Tsad - tahminTdelay-TaddTsad+ Tasmin- Tck

PCB实际布线时可以通过延长时钟线来达到此效果,取Tdelay-Tadd∈【03.091】,即时钟线最少和地址线等长或更长。

 

首先来了解一下DDRARM接口的数字电路:

由左图可知控制器做读时,DQDQS是同时输出的,其SKEW理论上是重合的。当控制器对其读时,需要将DQS进行延时后才对DQ进行采样,而写操作是先将DQS延时后才发送给DDR芯片。

如下图为控制器DQSDQ输入口简图。

 

 

   

 

对于DDR最好依据有效窗口概念来计算:

CPU读时序计算

有如下DDR参数需要总结:

Tco_strobeData-Out edge to Clock edge Skew tac

Tco_dataDQS-Out edge to Clock edge Skew tDQSCK

DQS-Out edge to Data-Out edge SkewtDQSQ

Clock Half PeriodtHP

Data Hold Skew FactortQHS,即数据保持失真。

Valid Data Output Window, tDV,输出数据有效窗口

 

上图是以DDR为驱动端,CPU为接收端,但时钟和DQS是从CPU端发送而数据信号是从DDR发送,需要满足如下关系式

TCK/2 – Tdv –Tdqs -Tdata0  所以Tdqs +Tdata2.375ns

CPU写时序计算 

                                                          

TCK/2 – Tds – Tdh –Tdqs -Tdata0, 所以Tdqs +Tdata2.85ns

综合读和写计算结果,综合可得Tdqs +Tdata2.375ns

又因Tdqs为控制器延时时间,且其延时时间为Tck/4=1.875ns,

Tdata2.375ns-1.875ns=0.5ns,得到以后只要换算成相应微带线或带状线长度即可。

又因为DQSDQ为同时触发同时到达接收口,为了不影响数据采样两者长度必须等长,那么其长度误差怎么控制呢?从6410可知DDS为0.5ns,从DDR芯片资料可知DQS与DQ的时间间隔为0.45ns,可得到DQS与DQ的延时误差最大为0.05ns,若以微带线单位传送延时来计算可得误差线长0.05ns*5.7inch/ns*25.4=7.239mm

 

那么数据线与时钟线又存在哪些关系呢?
依据6410读时序图可得:tSAC=Tclock+Tac_ddr+Tdata        2.7 nsTclock+ Tdata4.8 ns,保持0.5ns裕量则为3.3—4.3综合上面的结果Tclock2.8ns ---3.8 ns

依据6410写时序图可得,因为CPU输出波形满足DDR要求波形且DQSDQ等长所以无需计算。

 

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值