利用直接时钟控制技术实现存储器接口数据采集
发布时间:2008/5/28 0:00:00 访问次数:377
提要
本应用指南介绍了在 virtextm-4 器件中实现存储器接口的直接时钟控制数据采集技术。直接时钟控制方案利用了 virtex-4 系列所独有的某些架构特性(例如,每个 i/o 模块 (iob) 中均具备一个 64-tap 的绝对延迟线)。
简介
大多数存储器接口都是源同步接口,从外部存储器器件传出的数据和时钟/ 选通脉冲是边沿对齐的。在 virtex-4 器件采集这一数据,需要延迟时钟/ 选通脉冲或数据。利用直接时钟控制技术,数据经延迟,并与内部 fpga 时钟实现中心对齐。在这个方案中,内部 fpga时钟采集传出的数据。存储器传出的时钟/ 选通脉冲用于决定与数据位相关的延迟值。因此,与选通脉冲相关的数据位的数量不受限制。由于无需将选通脉冲分配给相关数据位,所以不需要其他时钟资源。
时钟/ 选通脉冲和数据位使用的 virtex-4 资源是一条 64-tap 绝对延迟线。该 64-tap 绝对延迟线可利用 idelay 和 idelayctrl primitive 实现。时钟/ 选通脉冲和数据位均通过此 64-tap绝对延迟线来布线。虽然选通脉冲不 用于采集数据,但它用于确定数据与内部 fpga 时钟实现中心对齐所需的 tap 数量。以下部分将详细解释直接时钟控制技术方案的设计及实现。
选通脉冲边沿检测
与时钟/ 选通脉冲相关的数据位的延迟值就是内部 fpga 时钟上升沿与时钟/ 选通脉冲中心之间的相位差。假设时钟/ 选通脉冲和数据实现了边沿对齐。要确定这个相位差,时钟/ 选通脉冲通过 iob 内的 64-tap 绝对延迟线输入,并利用内部 fpga 时钟在增量 tap 输出端对其进行采样。 要确定时钟/ 选通脉冲的中心,至少需要检测到时钟/ 选通脉冲的两个边沿或转换。检测出第二次转换所需的 tap 数(即第二个边沿的 tap)和检测出第一次转换所需的 tap 数(即第一个边沿的 tap)之差,即为时钟/ 选通脉冲宽度。这个差值的二分之一就是脉冲中心(即脉冲中心的 tap)。从内部 fpga 时钟上升沿到时钟/ 选通脉冲中心之间的 tap 数,即为第一个边沿的tap 数与脉冲中心的 tap 数之和。 表1 描述了各类 tap 数量。 图1 说明了通过使数据延迟相应的 tap 数,让数据与内部 fpga 时钟实现中心对齐的两种情况。第 1 种情况所示为,由于时钟/ 选通脉冲的下降沿是被检测到的第一个边沿,因此内部fpga 时钟的上升沿位于延迟数据的中心。第 2 种情况所示为,由于时钟/ 选通脉冲的上升沿是检测到的第一个边沿,因此内部 fpga 时钟下降沿位于延迟数据的中心。 实现选通脉冲边沿检测 由于具有专用的 idelay 和 idelay_ctrl 电路,所以可以轻松地在 virtex-4 器件中实现确定延迟值的电路。实现确定延迟值电路的结构图如图2 所示。 利用一个简单的算法检测存储器时钟/ 选通脉冲的边沿。将初始值为 0 的时钟/ 选通脉冲输入idelay 模块。时钟/ 选通脉冲将不停地增加 1 tap 的延迟,直到检测到第一个边沿。然后记录下检测出第一个边沿所需的 tap 数。在检测到第二个边沿之前,时钟/ 选通脉冲仍然不停地增加 1 tap 的延迟。然后记录下检测出第二个边沿所需的 tap 数。根据两次记录的值,计算出脉冲宽度。在用 tap 数确定时钟/ 选通脉冲宽度后,除以 2 即得到中间值。中间值与检测出第一个边沿所需的 tap 数之和为延迟数据所需的tap 数。 idelay 模块可用的 tap 总数为64。因此,当频率为 200 mhz 或以下时,将无法检测出两个边沿。如果在 64 tap 结束后仅检测出一个边沿,那么延迟数据所需的 tap 数应为,检测出第一个边沿所需的 tap 数减去 16 tap (约 1.25 ns,每个 tap 的延时约为 75 ps)。一个 200 mhz 时钟/ 选通脉冲周期的四分之一约为 16 tap。根据时序分析,该值也适用于更低的频率,最低可达 110 mhz。当频率低于 110 mhz 时,如果在 64 tap 结束后未检测出任何边沿,
提要
本应用指南介绍了在 virtextm-4 器件中实现存储器接口的直接时钟控制数据采集技术。直接时钟控制方案利用了 virtex-4 系列所独有的某些架构特性(例如,每个 i/o 模块 (iob) 中均具备一个 64-tap 的绝对延迟线)。
简介
大多数存储器接口都是源同步接口,从外部存储器器件传出的数据和时钟/ 选通脉冲是边沿对齐的。在 virtex-4 器件采集这一数据,需要延迟时钟/ 选通脉冲或数据。利用直接时钟控制技术,数据经延迟,并与内部 fpga 时钟实现中心对齐。在这个方案中,内部 fpga时钟采集传出的数据。存储器传出的时钟/ 选通脉冲用于决定与数据位相关的延迟值。因此,与选通脉冲相关的数据位的数量不受限制。由于无需将选通脉冲分配给相关数据位,所以不需要其他时钟资源。
时钟/ 选通脉冲和数据位使用的 virtex-4 资源是一条 64-tap 绝对延迟线。该 64-tap 绝对延迟线可利用 idelay 和 idelayctrl primitive 实现。时钟/ 选通脉冲和数据位均通过此 64-tap绝对延迟线来布线。虽然选通脉冲不 用于采集数据,但它用于确定数据与内部 fpga 时钟实现中心对齐所需的 tap 数量。以下部分将详细解释直接时钟控制技术方案的设计及实现。
选通脉冲边沿检测
与时钟/ 选通脉冲相关的数据位的延迟值就是内部 fpga 时钟上升沿与时钟/ 选通脉冲中心之间的相位差。假设时钟/ 选通脉冲和数据实现了边沿对齐。要确定这个相位差,时钟/ 选通脉冲通过 iob 内的 64-tap 绝对延迟线输入,并利用内部 fpga 时钟在增量 tap 输出端对其进行采样。 要确定时钟/ 选通脉冲的中心,至少需要检测到时钟/ 选通脉冲的两个边沿或转换。检测出第二次转换所需的 tap 数(即第二个边沿的 tap)和检测出第一次转换所需的 tap 数(即第一个边沿的 tap)之差,即为时钟/ 选通脉冲宽度。这个差值的二分之一就是脉冲中心(即脉冲中心的 tap)。从内部 fpga 时钟上升沿到时钟/ 选通脉冲中心之间的 tap 数,即为第一个边沿的tap 数与脉冲中心的 tap 数之和。 表1 描述了各类 tap 数量。 图1 说明了通过使数据延迟相应的 tap 数,让数据与内部 fpga 时钟实现中心对齐的两种情况。第 1 种情况所示为,由于时钟/ 选通脉冲的下降沿是被检测到的第一个边沿,因此内部fpga 时钟的上升沿位于延迟数据的中心。第 2 种情况所示为,由于时钟/ 选通脉冲的上升沿是检测到的第一个边沿,因此内部 fpga 时钟下降沿位于延迟数据的中心。 实现选通脉冲边沿检测 由于具有专用的 idelay 和 idelay_ctrl 电路,所以可以轻松地在 virtex-4 器件中实现确定延迟值的电路。实现确定延迟值电路的结构图如图2 所示。 利用一个简单的算法检测存储器时钟/ 选通脉冲的边沿。将初始值为 0 的时钟/ 选通脉冲输入idelay 模块。时钟/ 选通脉冲将不停地增加 1 tap 的延迟,直到检测到第一个边沿。然后记录下检测出第一个边沿所需的 tap 数。在检测到第二个边沿之前,时钟/ 选通脉冲仍然不停地增加 1 tap 的延迟。然后记录下检测出第二个边沿所需的 tap 数。根据两次记录的值,计算出脉冲宽度。在用 tap 数确定时钟/ 选通脉冲宽度后,除以 2 即得到中间值。中间值与检测出第一个边沿所需的 tap 数之和为延迟数据所需的tap 数。 idelay 模块可用的 tap 总数为64。因此,当频率为 200 mhz 或以下时,将无法检测出两个边沿。如果在 64 tap 结束后仅检测出一个边沿,那么延迟数据所需的 tap 数应为,检测出第一个边沿所需的 tap 数减去 16 tap (约 1.25 ns,每个 tap 的延时约为 75 ps)。一个 200 mhz 时钟/ 选通脉冲周期的四分之一约为 16 tap。根据时序分析,该值也适用于更低的频率,最低可达 110 mhz。当频率低于 110 mhz 时,如果在 64 tap 结束后未检测出任何边沿,