Cadencedenaliddrphy基本原理简介对于SOC来说,数据传输速率是接口问题中最为重要的问题之一。DDRPHY作为SOC中一个重要的接口单元,是SOC和外界存储之间数据地址传输的一个重要通道,它主要基于时钟上下沿分别采集数据来达到提高速率的目的。如下图1是ddr数据采集的基本波形图,可以理解,时钟沿处于数据中间位置,采集到的数据是最稳定的。图1下图2是DenaliDDRPhy的基本层次架构,最底层是delayelement,每一个delayelement代表一个固定时长的单元。由180/128个这样的单元组成一个delayline。由多个delayline组成一个DLL。每个dataslice包含一个DLL,包含8个dq接口,1个dqs和2个dm。所以当我们说要实现一个32位数据总线16位地址总线的ddrphy时,需要由4个dataslice为配制成32位dq数据接口,还需要一个dataslice来配制一个16位总线接口。所谓的16位总线接口,用到了dataslice的8为dq位,2位dm位,在phy上还需要6个寄存器来配制。所以很明显,32为数据位的ddrphy总共需要5个dataslice,如果再配制IO,那么就是一个完整的ddrphy接口了。ddrphy通过memorycontroller模块与soc数据通信,通过IO与外围存储通信,起到SOC到外围存储的纽带作用。图2图3是ddrphy往外围存储写数据的基本原理图,图4是ddrphy从存储读数据的基本原理图。见图3,里面有两个dllmodule内部的delayline,分别起到调制3/4周期相位和1周期相位的作用,当W1+W2+W5达到W6+W7延时时,就能够保证写数据时,DQS这个时钟沿处于DQ数据的中间。同理,见图4,当R1延时等于R2+R3时,通过DLL中的特定delayline调制成1/4周期相位,就能够保证读数据时时钟处于数据中间位置,以达到稳定上下沿采集数据的目的。图3图4以上仅是最基本的ddrphy读写数据的原理解析。为了满足ddr顺利读写数据,还需要有其他一些复杂的specialcheck的要求,这里暂不讨论。