1、第 22 章 延迟锁相环(DLL)本章介绍该集成设备上的延迟锁相环(DLL)模块的操作原理。另外,还介绍配置、控制和状态寄存器。注意,本参考手册每一章都介绍了每个部件的特殊的初始化特征。22.1 绪论DLL 单元由一个相位检测电路、可调延迟单元、寄存器组和控制逻辑组成。这些元素的高层结构图如图 22-1 所示。图 22-1 DLL 结构图22.2 概述DLL 宏的目的是变换参考时钟,产生供外部存储器或 I/O 设备使用的输出时钟。通过在延迟链上传播参考时钟产生输出时钟。相位检测电路将参考时钟的相位与反馈时钟的相位进行比较。为输出时钟选择延迟链的一个输出 TAP 点,以使反馈时钟的相位与参考时钟
2、的相位一致。DLL 宏还包括覆盖、调试和错误特性。DLL 用于消除 LCLK(本地总线时钟)的相位偏移。因此,应将DLL_SYNC_OUT/DLL_SYNC_IN 解释为 LSYNC_OUT/LSYNC_IN,将 DLL_CLK0:n解释为 LCLK0:n。22.2.1 特性 锁相搜索完成时报告 LOCK 状态 搜索过程中,当 DLL 扫过任何一个延迟链末端时报告 WRAP 状态。当 LOCK 置位时置位 WRAP,表明搜索过程中寻找锁相失败。 OVERRIDE(覆盖)模式允许选择一个特殊的 tap 点。 连续报告当前 tap 点。22.2.2 操作模式 正常模式:DLL 可以运行在正常模式。
3、在这种模式中,相位检测电路动态调整延迟线的 tap 点。 覆盖模式:DLL 可以运行在覆盖模式。在这种模式下,tap 点由输入向量指定。22.2.3 外部信号表 22-1 列出了 DLL 宏的信号。表 22-1 DLL 宏外部信号信号 I/O 信号描述DLL_SYNC_OUT O DLL 输出时钟。相位与其它输出时钟(DLL_CLK_OUT0:n)一致。DLL_SYNC_IN O DLL 反馈时钟,相位与内部逻辑时钟一致。DLL_CLK_OUT0:n O DLL 输出时钟,供外部板上设备使用。22.3 初始化与应用信息图 22-2 给出了一个使用 DLL 宏的应用的例子。如该例所示,存储器或
4、I/O 控制器根据外部时钟与内部 clk 的比率产生一个参考时钟。将 DLL_CLK_OUT 连到外部存储器或I/O 设备,且必须将 DLL_SYNC_OUT 连回到 DLL_SYNC_IN,同时保持与DLL_CLK_OUT 通路相同的布线长度。DLL 宏利用相位检测和延迟链将内部逻辑时钟与外部设备的输入时钟对齐,以使控制集成设备的翻转与外部设备的翻转的时钟之间的偏差最小。DLL 的锁定状态由存储器控制器使用,以将存储器访问延迟到 DLL 搜索完毕之后。然而,如果使用 DLL 覆盖模式, DLL 锁相没有意义。图 22-2 DLL 应用举例22.4 内存映射 /寄存器定义DLL 可编程寄存器映
5、射占用 20 个字节的内存映射空间。读取未定义的内存映射区域返回全 0,写无效。每个 DLL 寄存器都为 32 位宽,位于 32 位地址边界。本章使用的所有地址都是距DLL 起始地址的偏移,如第 2 章“内存映射”中定义的那样。表 22-2 列出了 DLL 寄存器。表 22-2 DLL 寄存器地址映射偏移量 寄存器 访问 复位值 章节/页0x00 保留。应保持复位值 R/W 0x0500_0280 0x04 保留。应保持复位值 R/W 0x8004_0810 0x08 DLL 覆盖寄存器(DLLOVR) R/W 0x0000_0000 22.4.1/22-40x0C DLL 状态寄存器(DLL
6、SR) R 0x0000_0000 22.4.2/22-40x10 DLL 时钟寄存器(DLLCK) R/W 0xFC00_0000 22.4.3/22-50x100x0FF 保留 22.4.1 DLL 覆盖寄存器(DLLOVR DLL Override Register)DLL 覆盖寄存器(DLLOVR)如 图 22-3 所示,它控制覆盖操作和覆盖值(近似或精确),将 DLL 为覆盖模式。图 22-3 DLL 覆盖寄存器(DLLOVR )DLLOVR 用来强制指定一个固定的延迟值。建议等待 DLL 锁相完成后,从 DLL 状态寄存器读取所测量的近似值和 TAP 延迟值,然后根据这些值设置覆盖
7、延迟值。 表 22-3 说明了 DLLOVR 的字段。表 22-3 DLLOVR 字段说明位 名称 说明0 OVRD DLL 覆盖模式。0 正常模式1 覆盖模式14 保留515 OTAP DLL 覆盖近似和 TAP 选择。OTAP57近似延迟选择OTAP815TAP 延迟选择1631 保留22.4.2 DLL 状态寄存器(DLLSR DLL Status Register)DLLSR 如图 22-4 所示,它指示 DLL 的状态。这是只读寄存器。图 22-4 DLL 状态寄存器表 22-4 说明了 DLLSR 的字段。表 22-4 DLLSR 字段说明位 名称 说明0 LOCK DLL 锁定。
8、当 DLL 完成 TAP 点搜索时,置位 LOCK 位。必须将LOCK 位与 WRAP 位的状态一起考虑。1 WRAP DLL 重叠。当 DLL LOCK 置位时,WRAP 为 DLL 状态提供信息。如果 WARP=1,它指示 DLL 搜索 TAP 点未成功完成。当 DLL 搜索成功时,WRAP 状态保持清除,同时 LOCK 置位。24 保留515 MTAP DLL 测量的近似值和 tap 延迟MTAP57 近似延迟MTAP815 tap 延迟1631 保留22.4.3 DLL 时钟寄存器(DLLCK DLL Clock Register)DLLCK 如图 22-5 所示,它允许或禁止信号时钟输出。图 22-5 DLL 时钟寄存器表 22-5 说明了 DLLCK 的字段。表 22-5 DLLCK 字段说明位 名称 说明0 CE0 允许/禁止 MCK0/LCLK0 信号时钟输出0 禁止 LCLK01 允许 LCLK0 1 CE1 允许/禁止 MCK1/LCLK1 信号时钟输出0 禁止 LCLK11 允许 LCLK1 2 CE2 允许/禁止 MCK2/LCLK2 信号时钟输出0 禁止 LCLK21 允许 LCLK2 331 保留