第3节 ColdFire中DDR2的实现
这部分回顾了MCF5445x上对DDR2支持的实现。
3.1 ColdFire内部架构和 DDR2
ColdFire架构支持多种内部总线。MCF5445x中使用的V4m内核具有16位的高速缓存线,给内部总线上的四个 32 位事务(数据节拍)传输数据。DDR/DDR2/移动DDR控制器可将这32位事务转换到外部总线上的16位双倍数据速率事务,允许外部总线以内部总线相同的时钟运行。通过减少 I/O 口,MCF5445x 拥有较少的引脚数,仍保持完全的内部总线的性能。
存储控制器中的DDR2 模式为 DDR2 存储器提供了 4n 预取功能的支持。这样ColdFire内核在缓存控制器检测到错误时,执行对 DDR2存储器的临界字优先的读取。并同时允许内核读取所需的指令和DDR2存储器及控制器在4位边界上翻转来终止对高速缓存线的读取,从而最终将指令读取延迟最小化。请参考图1未对齐(临界字优先)读取的例子,以及与 DDR 读取的区别。如果利用 16 位外部总线,MCF5445x的突发长度要被设置成8,因为外部总线的每个数据节拍只产生两个字节的数据。

图1 DDR2上的16字节读取:使用4n预取
MCF5445x超越了ColdFire系列先前的DDR控制器,增加了新的寄存器域(在使用DDR2的方案中必须使用这些域)。DDR2控制器还集成了ColdFire存储控制器中没有使用的技术,比如ODT(片内终结器)以及支持8个内部存储块。请参考表1关于所支持和未支持的功能细节。


图4 地址总线T型接口
3.1 ColdFire内部架构和 DDR2
ColdFire架构支持多种内部总线。MCF5445x中使用的V4m内核具有16位的高速缓存线,给内部总线上的四个 32 位事务(数据节拍)传输数据。DDR/DDR2/移动DDR控制器可将这32位事务转换到外部总线上的16位双倍数据速率事务,允许外部总线以内部总线相同的时钟运行。通过减少 I/O 口,MCF5445x 拥有较少的引脚数,仍保持完全的内部总线的性能。
存储控制器中的DDR2 模式为 DDR2 存储器提供了 4n 预取功能的支持。这样ColdFire内核在缓存控制器检测到错误时,执行对 DDR2存储器的临界字优先的读取。并同时允许内核读取所需的指令和DDR2存储器及控制器在4位边界上翻转来终止对高速缓存线的读取,从而最终将指令读取延迟最小化。请参考图1未对齐(临界字优先)读取的例子,以及与 DDR 读取的区别。如果利用 16 位外部总线,MCF5445x的突发长度要被设置成8,因为外部总线的每个数据节拍只产生两个字节的数据。

图1 DDR2上的16字节读取:使用4n预取
MCF5445x存储器控制器支持最大512MB的DDR/DDR2/移动DDR存储器,使用25个地址位(包括行和列),两个存储块选择位,两个片选和一个16位宽的总线。
表1 DDR2功能应用向导
3.2 DDR2功能性的编程模式
3.2.1 SDRAM模式/扩展模式寄存器(SDMR)
该寄存器和以前控制器中使用的相比已有所改变,其低地址位具有LMR/LEMR(装载模式寄存器/装载扩展模式寄存器)功能。工作方式和以前的版本相同,但现在的还包括使用该寄存器低 14 位传递 DDR2 指定的 LMR/LEMR值的选项。详见MCF54455参考手册“SDRAM模式/扩展模式寄存器(SDMR)”部分。SDRAM控制寄存器(SDCR)包括DDR2_MODE位,但必须将其置位以使能SDMR寄存器中的LMR/LEMR功能。
3.2.2 SDRAM控制寄存器(SDCR)
和以前的控制器中使用的相比,该寄存器只有较小的变化,仅增加了DDR2模式的使能。SDCR 控制多路地址技术,刷新次数,存储控制器的操作模式。详见MCF54455 参考手册“SDRAM 控制寄存器(SDCR)”部分。下面列出了该寄存器功能用途的摘要。
SDRAM配置寄存器存储了特定存储命令之间需要的延迟值。各家DDR存储器生产商对每个该类的延迟提供了数值。这些值需要转化成合适值(一般为时钟周期数),再加载到SDCFG1/2寄存器中。
3.3 DDR2初始化样例
下面的伪代码描述了M54455EVB中DDR2的初始化。M54455EVB具有256MB的DDR2,使用4个8位宽的Micron公司的MT47H64M8(512Mb)设备,配置成每个存储控制器片选信号控制两个16M×8×4存储块。
3.2.1 SDRAM模式/扩展模式寄存器(SDMR)
该寄存器和以前控制器中使用的相比已有所改变,其低地址位具有LMR/LEMR(装载模式寄存器/装载扩展模式寄存器)功能。工作方式和以前的版本相同,但现在的还包括使用该寄存器低 14 位传递 DDR2 指定的 LMR/LEMR值的选项。详见MCF54455参考手册“SDRAM模式/扩展模式寄存器(SDMR)”部分。SDRAM控制寄存器(SDCR)包括DDR2_MODE位,但必须将其置位以使能SDMR寄存器中的LMR/LEMR功能。
3.2.2 SDRAM控制寄存器(SDCR)
和以前的控制器中使用的相比,该寄存器只有较小的变化,仅增加了DDR2模式的使能。SDCR 控制多路地址技术,刷新次数,存储控制器的操作模式。详见MCF54455 参考手册“SDRAM 控制寄存器(SDCR)”部分。下面列出了该寄存器功能用途的摘要。
- ● 锁定 SDMR 寄存器功能以及禁止写周期。只有在配置和初始化过程或者需要存取DDR存储器中模式或扩展模式寄存器时使用该位。
- ● CKE 使能位允许存储器被置为自刷新和低功耗模式。典型应用在芯片初始化和DDR存储器电源管理。该使能位直接控制MCF5445x的CKE信号。
- ● DDR2 模式位允许选择DDR或DDR2存储器。在使用DDR2功能时,该位必须置位。
- ● DDR 模式位必须置位。复位时置为0。 · 刷新使能位激发存储控制器的自动刷新功能。
- ● 多元地址功能将ColdFire设备中的线性地址转变成行,列和存储块的多元的地址。详见MCF54455参考手册中SDRAM控制器“存储器支持配置”部分。
- —— 第一张表提供了如何基于多元地址的设置将内部地址转变成外部行或列的简要描述。
- —— 第二张表显示基于存储器密度和配置(行,列,块)如何设置多元地址。
- ● 驱动规则选项比较有用,但不普遍适用。该功能强制DQ(数据信号)和DQS信号在任何时候都处于工作状态 ,除了读周期中,DDR 存储器驱动总线。如果该位置位,DQ 线保持总线周期结束时的最后一个状态。DQS 信号拉低。当读周期开始时,存储控制器将DQ和DQS置为三态,从而使存储器能驱动这些信号。
- 该功能典型应用在最小化系统上,用来最小化不固定的信号以及移除终止信号,还可以用来调试DDR总线,因为提供了确定的没有变动的状态,因此在查找由于短路或其他状态可能导致的总线冲突的原因时比较有用。
- ● 刷新计数器配置当控制器自动刷新使能时的刷新间隔时间。
- ● 必须为MCF5445x系列设置存储器端口宽度。
- ● DQS 输出使能域禁用/使能单独的DQS信号。如果选择的存储器设备只要一路DQS即可驱动,该域就比较重要了, 但这不是典型的选择方案。典型的是每条字节传输线只用一路DQS。如果只用一路,则须将CF5445x的所有DQS线短接,因为在读周期中,MCF5445x 中的时钟恢复电路需要查看每个字节线路的DQS沿。
- ● 开始刷新命令产生一个立即的刷新。这在初始化和电源管理程序中比较常用,在上述过程中存储器需要执行特定的事件,因此必须执行刷新命令。该功能只有在模式/扩展模式寄存器使能时才可用。
- ● 开始预充电时,所有命令强制软件初始化预充电。在发出软件预充电命令之前时钟使能(CKE)必须有效。
- ● 深度低功耗模式位为可移动DDR设备产生深度低功耗命令。在DDR2设备中不支持,因此清除该位。
SDRAM配置寄存器存储了特定存储命令之间需要的延迟值。各家DDR存储器生产商对每个该类的延迟提供了数值。这些值需要转化成合适值(一般为时钟周期数),再加载到SDCFG1/2寄存器中。
3.3 DDR2初始化样例
下面的伪代码描述了M54455EVB中DDR2的初始化。M54455EVB具有256MB的DDR2,使用4个8位宽的Micron公司的MT47H64M8(512Mb)设备,配置成每个存储控制器片选信号控制两个16M×8×4存储块。
例1 DDR2初始化的伪代码
1、设置MSCR寄存器,所有存储控制器上的DDR2引脚使用SSTL1.8V I/O:
writemem.b 0xFC0A4074 0xAA ; MSCR_SDRAM
2、设置存储控制器片选为每个128MB。
writemem.l 0xFC0B8110 0x4000001A ; SDCD0
writemem.l 0xFC0B8114 0x4000001A ; SDCD1
3、为每个DDR命令设置所需存储器需求操作的延迟
writemem.l 0xFC0B8008 0x65311810 ; SDCFG1
— SRD2RWP = 0x6 = Burst Length/2 + 2
— SWT2RWP = 0x5 = Additive Latency + t - 1 = 3 + 1 + (15ns/7.5)-1
— RD_LAT = 0x3 = CAS Latency in clock cycles
— ACT3RW = 0x1 = (tRCD/tCLK)-1=(15ns/7.5ns)-1=1 clock cycle
— PRE2ACT=0x8=(tRFC/(tCLK×2))+(1 for math rounding)=(105ns/15ns)+1 =8
— WT_LAT = 0x1 = Additive Latency = (tRCD(min)/tCLK)-1=15ns/7.5ns-1=1
writemem.1 0xFC0B800C 0x59670000 ;SDCFG2
— BRD2RP = 0x5 = Burst Length/2+Additive Latency = 8/2+1=5
— BWT2RWP = 0x9 = CAS Latency+Additive Latency + Burst
Length/2+tWR+Tclk-1 = 3+1+4+2-1 = 9
— BRD2W = 0x6 = Burst Length/2+2 = 6
— BL = 0x7 = Burst Length -1 = 7
4、延迟(DDR2存储器有延迟要求,一般为 200ns)。在进入到下一步之前,延迟要在初始化过程中包含,以使CKE有效。
writemem.l 0xFC0B8004 0xEA0F2002 ;SDCR
— 设置模式使能(1)
— 使能CKE(1)
— DDR模式使能(1)
— 禁用自动刷新(0)
— DDR2模式使能(1)
— 多元地址配置(10) = 512Mb 配置成14×10×4和8位宽
— 在读和写操作之间驱动规则设置为三态。硬件板使用并行终止。
— 刷新次数设成0Xf,也即(8K/(7.5ns×64))-1=15。
这个值通常下舍入,因为目标值与要求值一般有细微的差别。
— 存储器位宽设成16位。
— DQS输出禁用。
— 发出预充电命令。
— 在初始化过程中不使用深度低功耗模式。
writemem.l 0xFC0B8000 0x40010408 ;SDMR
— 为非移动DDR写扩展模式寄存器命令
— 设置CMD位来发出加载扩展模式命令
— 设置扩展模式:DLL使能,完全功率输出驱动,内部并行终止禁用,快速响应CAS(加法
反应时间)为1,不支持OCD,差分DQS禁用,RDQS禁用,输出使能。
writemem.l 0xFC0B8000 0x00010333 ;SDMR
— 写模式寄存器命令
— 设置CMD位来发出加载模式寄存器命令
— 设置模式寄存器内容:突发长度为8,顺序突发模式,CAS响应时间为3,普通模式,复位
时DLL保持,写恢复设置为2,低功耗模式设置为快速退出模式。
5、在下一步发出所有预充电命令前,延迟200时钟周期
writemem.l 0xFC0B8004 0xEA0F2002 ;SDCR, issue PALL
— 和上一个SDCR写相同,有效地发出另一个预充电命令。
writemem.l 0xFC0B8004 0xEA0F2004 ;SDCR
— 和上一个SDCR写相同,但现在此处发出刷新命令。
writemem.l 0xFC0B8004 0xEA0f2004 ;SDCR
— 发出另一个刷新命令 writemem.l 0xFC0B8000 0x00010233 ;SDMR
— 和上一个模式寄存器写相同,除了取消DLL复位和DLL可锁定。
writemem.l 0xFC0B8004 0xEA0F2004 ;SDCR
— 清除模式使能位来拒绝后续SDMR寄存写周期,使能自刷新功能,
使能DQS信号,其他保持原先值。
— DLL复位取消后延迟200总线时钟
3.4 DDR2硬件设计考虑因素
这部分给硬件工程师提供了在ColdFire MCF5445x 系列以简单和高效方式使用DDR2存储器的所有必要的信息。MCF5445x存储控制器和SSTL I/O的配置比较灵活,给硬件设计者提供了很多设计的自由。对于所有嵌入式设计者而言,一个重要的观念就是认识到DDR2规范是为桌面型电脑/笔记本/服务器市场而写,而关于嵌入式硬件设计的指导信息较少。网络上很多DDR2硬件指导方针对嵌入式设计而言,而可产生额外的成本。
本节回顾了M54455EVB中的DDR2应用,描述了一个理想的方案和一些可改进耗费成本或精简系统的场合。通过使用下面章节描述的内容,嵌入式硬件设计者将会感觉到轻松,因为DDR2可比较容易,有效地运用到ColdFire嵌入式平台,并且带来较高的性能/较低的功耗。
3.4.1 DDR2封装和设计考虑因素
DDR2和其他DDR方案之间一个最大的区别是封装。DDR存储器一般用TSOP和BGA封装,DDR2只可用FBGA封装。这种封装的优点是它的信号质量好,体积小且高效,但手动调试比较困难,可通过过孔连接到线板底部的信号。
M54455EVB使用4个x8Micron公司的MT47H64M8存储器。较小的体积以及地址,控制和数据信号的合理布置使得板的设计比较简单。M54455EVB利用在板顶部和底部安装组件的优势。这不是使用DDR2方案的要求,但确实是比较简洁和高效的配置。见图2使用FBGA封装布置的x8存储器。

图2 DDR2存储器配置x8样例(可直接检查封装)
在图2中可见,我们可以很轻松地避免BGA中的信号线的复杂性。数据线分布在封装的顶部,控制线在中间,地址线在底部。封装中圆圈的布置允许在封装的中间走线,这给设计者提供了连接各个部分的简洁线路,同时也比较容易地将地址和控制信号分割出来。
飞思卡尔利用这种封装的优势以及在板的顶层和底层放置芯片的可行性。通过直接在板的顶/底层放置两片DDR2存储器芯片,来取得理想的信号完整性和清晰的走线。
图3显示了实际的M54455EVB的DDR2总线的平面布置图。从左到右:

图3 DDR2存储器中U1(MCF54455)顶层
地址总线从ColdFire设备连到位于两个存储芯片单元中间的过孔。这给分布在存储芯片末端的地址总线提供了清晰的路线。图4 显示了地址总线如何连接到这些过孔,在两组DDR2存储器间形成T型接口,同时也显示了从两个DDR2存储器的顶部和底部引出的数据线的样例。同样,中间的地址布线提供了到每个DDR2存储器相同长度线路的 T 型接口。左边的数据总线连接到 DDR 存储器的末端。数据总线的每个部分(每个字节线路)都连接到过孔上,这些过孔在这条字节线路上提供到两个存储器的T型接口。过孔在图4中可见,位于BGA的左右两部分之间的较宽的通道上。
writemem.b 0xFC0A4074 0xAA ; MSCR_SDRAM
2、设置存储控制器片选为每个128MB。
writemem.l 0xFC0B8110 0x4000001A ; SDCD0
writemem.l 0xFC0B8114 0x4000001A ; SDCD1
3、为每个DDR命令设置所需存储器需求操作的延迟
writemem.l 0xFC0B8008 0x65311810 ; SDCFG1
— SRD2RWP = 0x6 = Burst Length/2 + 2
— SWT2RWP = 0x5 = Additive Latency + t - 1 = 3 + 1 + (15ns/7.5)-1
— RD_LAT = 0x3 = CAS Latency in clock cycles
— ACT3RW = 0x1 = (tRCD/tCLK)-1=(15ns/7.5ns)-1=1 clock cycle
— PRE2ACT=0x8=(tRFC/(tCLK×2))+(1 for math rounding)=(105ns/15ns)+1 =8
— WT_LAT = 0x1 = Additive Latency = (tRCD(min)/tCLK)-1=15ns/7.5ns-1=1
writemem.1 0xFC0B800C 0x59670000 ;SDCFG2
— BRD2RP = 0x5 = Burst Length/2+Additive Latency = 8/2+1=5
— BWT2RWP = 0x9 = CAS Latency+Additive Latency + Burst
Length/2+tWR+Tclk-1 = 3+1+4+2-1 = 9
— BRD2W = 0x6 = Burst Length/2+2 = 6
— BL = 0x7 = Burst Length -1 = 7
4、延迟(DDR2存储器有延迟要求,一般为 200ns)。在进入到下一步之前,延迟要在初始化过程中包含,以使CKE有效。
writemem.l 0xFC0B8004 0xEA0F2002 ;SDCR
— 设置模式使能(1)
— 使能CKE(1)
— DDR模式使能(1)
— 禁用自动刷新(0)
— DDR2模式使能(1)
— 多元地址配置(10) = 512Mb 配置成14×10×4和8位宽
— 在读和写操作之间驱动规则设置为三态。硬件板使用并行终止。
— 刷新次数设成0Xf,也即(8K/(7.5ns×64))-1=15。
这个值通常下舍入,因为目标值与要求值一般有细微的差别。
— 存储器位宽设成16位。
— DQS输出禁用。
— 发出预充电命令。
— 在初始化过程中不使用深度低功耗模式。
writemem.l 0xFC0B8000 0x40010408 ;SDMR
— 为非移动DDR写扩展模式寄存器命令
— 设置CMD位来发出加载扩展模式命令
— 设置扩展模式:DLL使能,完全功率输出驱动,内部并行终止禁用,快速响应CAS(加法
反应时间)为1,不支持OCD,差分DQS禁用,RDQS禁用,输出使能。
writemem.l 0xFC0B8000 0x00010333 ;SDMR
— 写模式寄存器命令
— 设置CMD位来发出加载模式寄存器命令
— 设置模式寄存器内容:突发长度为8,顺序突发模式,CAS响应时间为3,普通模式,复位
时DLL保持,写恢复设置为2,低功耗模式设置为快速退出模式。
5、在下一步发出所有预充电命令前,延迟200时钟周期
writemem.l 0xFC0B8004 0xEA0F2002 ;SDCR, issue PALL
— 和上一个SDCR写相同,有效地发出另一个预充电命令。
writemem.l 0xFC0B8004 0xEA0F2004 ;SDCR
— 和上一个SDCR写相同,但现在此处发出刷新命令。
writemem.l 0xFC0B8004 0xEA0f2004 ;SDCR
— 发出另一个刷新命令 writemem.l 0xFC0B8000 0x00010233 ;SDMR
— 和上一个模式寄存器写相同,除了取消DLL复位和DLL可锁定。
writemem.l 0xFC0B8004 0xEA0F2004 ;SDCR
— 清除模式使能位来拒绝后续SDMR寄存写周期,使能自刷新功能,
使能DQS信号,其他保持原先值。
— DLL复位取消后延迟200总线时钟
3.4 DDR2硬件设计考虑因素
这部分给硬件工程师提供了在ColdFire MCF5445x 系列以简单和高效方式使用DDR2存储器的所有必要的信息。MCF5445x存储控制器和SSTL I/O的配置比较灵活,给硬件设计者提供了很多设计的自由。对于所有嵌入式设计者而言,一个重要的观念就是认识到DDR2规范是为桌面型电脑/笔记本/服务器市场而写,而关于嵌入式硬件设计的指导信息较少。网络上很多DDR2硬件指导方针对嵌入式设计而言,而可产生额外的成本。
本节回顾了M54455EVB中的DDR2应用,描述了一个理想的方案和一些可改进耗费成本或精简系统的场合。通过使用下面章节描述的内容,嵌入式硬件设计者将会感觉到轻松,因为DDR2可比较容易,有效地运用到ColdFire嵌入式平台,并且带来较高的性能/较低的功耗。
3.4.1 DDR2封装和设计考虑因素
DDR2和其他DDR方案之间一个最大的区别是封装。DDR存储器一般用TSOP和BGA封装,DDR2只可用FBGA封装。这种封装的优点是它的信号质量好,体积小且高效,但手动调试比较困难,可通过过孔连接到线板底部的信号。
M54455EVB使用4个x8Micron公司的MT47H64M8存储器。较小的体积以及地址,控制和数据信号的合理布置使得板的设计比较简单。M54455EVB利用在板顶部和底部安装组件的优势。这不是使用DDR2方案的要求,但确实是比较简洁和高效的配置。见图2使用FBGA封装布置的x8存储器。

图2 DDR2存储器配置x8样例(可直接检查封装)
在图2中可见,我们可以很轻松地避免BGA中的信号线的复杂性。数据线分布在封装的顶部,控制线在中间,地址线在底部。封装中圆圈的布置允许在封装的中间走线,这给设计者提供了连接各个部分的简洁线路,同时也比较容易地将地址和控制信号分割出来。
飞思卡尔利用这种封装的优势以及在板的顶层和底层放置芯片的可行性。通过直接在板的顶/底层放置两片DDR2存储器芯片,来取得理想的信号完整性和清晰的走线。
图3显示了实际的M54455EVB的DDR2总线的平面布置图。从左到右:
- ● 板子中间的MCF54455处理器
- ● 一些串行终结器
- ● 三个逻辑分析器接口
- ● DDR2存储器
- ● VTT电阻封装

图3 DDR2存储器中U1(MCF54455)顶层
地址总线从ColdFire设备连到位于两个存储芯片单元中间的过孔。这给分布在存储芯片末端的地址总线提供了清晰的路线。图4 显示了地址总线如何连接到这些过孔,在两组DDR2存储器间形成T型接口,同时也显示了从两个DDR2存储器的顶部和底部引出的数据线的样例。同样,中间的地址布线提供了到每个DDR2存储器相同长度线路的 T 型接口。左边的数据总线连接到 DDR 存储器的末端。数据总线的每个部分(每个字节线路)都连接到过孔上,这些过孔在这条字节线路上提供到两个存储器的T型接口。过孔在图4中可见,位于BGA的左右两部分之间的较宽的通道上。

图4 地址总线T型接口
逻辑分析器接口可采用由各个试验和测量公司提供的一些新的风格。M54455EVB板上使用的版本是为和 Tektronix P6860/P6880 探测器一起使用而设计的。传统的Mictor接口并不具有较高的高速信号所需的信号保真度(沿变化率是最主要的因素而不是数据发送频率)。MCF5445x和DDR2存储器上的SSRL焊接点对于标准Mictor接口来讲太快。新的高速逻辑分析器接口非常有用,因为它们在没有逻辑分析器的情况下对信号质量影响最小。
3.5 DDR2/ColdFire布线指导
最普通的DDR布线方法是使用50欧姆的传输线模型的串行/并行终止方案。这种方案应用在 M54455EVB,在图 3 中可见。从左到右看,串联电阻器比较靠近ColdFire处理器,并行终止电阻器安装在DDR2存储器的右侧。下面是串行/并行终止方案的主要概念以及其在DDR/DDR2线板设计上的应用:

图5 地址/数据/命令信号使用的SSTL串行/并行终止方案

图6 SSTL时钟并行终止—备选方法
3.6 接口图样例
图7显示了MCF5445x DDR2控制器连接到DDR2存储器的例子。连接比较直观,因为MCF5445x上的DDR2总线不和其他总线复用。MCF5445xz专用的引脚最大化了性能,同时简化了连通的复杂度。

图7 DDR2接口图样例
3.5 DDR2/ColdFire布线指导
最普通的DDR布线方法是使用50欧姆的传输线模型的串行/并行终止方案。这种方案应用在 M54455EVB,在图 3 中可见。从左到右看,串联电阻器比较靠近ColdFire处理器,并行终止电阻器安装在DDR2存储器的右侧。下面是串行/并行终止方案的主要概念以及其在DDR/DDR2线板设计上的应用:
- ● 串行终结器必须靠近源驱动器。该样例使用在单一的串行终止,也即只用一套串行终结器,安装在和ColdFire相邻的位置。另外可使用双的串行终结器方案,但在嵌入式系统中没有必要。双串行终结器的方案在嵌入式存储器领域应用较少。
- ● 并行终结器应靠近存储器。同样双并行终结器方案也可用,但有些情况可能会影响嵌入式应用。
- ● 确保串行终结器到源输出驱动器的距离远小于到负载(DDR 存储器)的距离。
- ● DDR2 串行/并行终止要求提供一个VTT电压。VTT始终是DDR2存储器电压的一半。在这个样例中,1.8V的DDR2存储器系统,VTT电压是0.9V。
- ● 必须提供VREF,因为SSTL输入缓冲区实际上是差分方式的。
- ● RS应该确定大小以确保驱动器的输出阻抗加上电阻值大约和线阻抗相同。对MCF5445x而言,能获得较好结果的起始点是22欧姆的串联电路器。加上板层的叠加以及材料,所需的RS可在22欧到33欧之间变化。
- ● Rp一般是通过系统中的驱动电流的大小来确定。M54455EVB选择了51欧。,在DDR2模式下,只给SSTL18(SSTL18是1.8V的SSTL)提供一种输出驱动级别。

图5 地址/数据/命令信号使用的SSTL串行/并行终止方案
- ● DDR/DDR2 的时钟是差分信号,MCF5445x提供了一个时钟输出信号以及一个与该时钟相位相反的信号脉冲。两路信号必须视为一个差分对信号放在一起走线,以取得相同的线路阻抗,并在设计规则中将差分阻抗设置为100欧到120欧。
- ● 差分时钟信号可通过时钟的两相位之间的单个电阻来终止。见图6中并行终止方案的例子,提供了较好的时钟交叉且减少了组件的数目。需要考虑的重要的元素之一是所有DDR/DDR2 DIMM包含了这个并行终结器(在时钟两相位)。如果设计包括了板上的DDR2存储器,并且留有DDR2 DIMM模块的插槽,则推荐使用单独的时钟对接到板上的存储器和DDR/DDR2 DIMM。

图6 SSTL时钟并行终止—备选方法
图7显示了MCF5445x DDR2控制器连接到DDR2存储器的例子。连接比较直观,因为MCF5445x上的DDR2总线不和其他总线复用。MCF5445xz专用的引脚最大化了性能,同时简化了连通的复杂度。

图7 DDR2接口图样例


