linux cpu占用率如何看
527
2022-11-08
利用Virtex-5器件实现在FPGA内实现QDR SRAM接口设计
在图2 中,QDR II 器件的 C 和 C 引脚均被设定为 High。 如第 4 页图3 所示,Virtex-5 QDR II 参考设计由以下四个主要部分组成: 用户接口 物理接口 读/ 写状态机 延迟校准状态机
写请求在 USER_CLK0 上升沿期间通过低有效的 USER_W_n 信号创建。此 18 位写地址(USER_AD_WR) 必须在此同一时钟边沿传输。此时,要写入存储器的第一个和第二个 36 位数据字也会分别传输给 36 位 USER_DWL 和 USER_DWH 输入总线。4 字突发的第三个字和第四个字会在下一个 USER_CLK0 上升沿分别传输给 USER_DWL 和 USER_DWH。 读请求在 USER_CLK0 上升沿期间通过低有效的 USER_R_n 信号创建。此 18 位读地址(USER_AD_RD) 必须在此同一时钟边沿传输。执行读命令后,4 字突发值存储于读数据 FIFO中。在 USER_CLK0 上升沿,一个低有效的 USER_QEN_n 信号会检索这些值并将其传输至 36位 USER_QRL 和 USER_QRH 输出。第一和第二个字在首个周期中传输,此时的USER_QEN_n 设置为 Low,紧接着是第三和第四个字在随后一个周期中传输,此时的USER_QEN_n 也设置为 Low。 与 QDR II 存储器本身不同,用户接口在同一时钟周期接受读、写请求(如图4 所示的第三个周期)。读/ 写状态机管理向外部存储器器件所发送的读与写请求的交替,使用户接口免于承担这项职责。 用户接口还提供了一批用于指示读/ 写 FIFO 状态的信号,在图4 中未显示。高有效的 USER_WR_FULL 输出表明写 FIFO 已满。此情况表明,写请求队列缩减之前将不再接受任何写请求。USER_WR_FULL 为 High 时创建的任何写请求都将被直接忽略。类似情况适用于读请求的 USER_RD_FULL 信号。 高有效的 USER_QR_EMPTY 输出表明不再有读数据值存储在读数据 FIFO 中。在此情况下从USER_QRL 和 USER_QRH 总线读值的尝试将被忽略。此情况会一直持续,直到执行其他读命令并且有相关数据值存入读数据 FIFO。 读/ 写状态机 第 8 页图5 为 4 字突发读/ 写状态机的状态图。此状态机负责调节用户接口和物理接口之间的数据流。它根据保存在用户接口 FIFO 中的请求向外部存储器器件发送读/ 写命令。 USER_RESET 每次都会将状态机恢复到 INIT 状态,此时存储器暂停运行,直到延迟校准状态机完成所有 QDR_Q 输入的 IDELAY 模块上的延迟调整,使读通路数据与 FPGA 系统时钟(USER_CLK0) 中心对齐。校准操作完成的信号是一个高有效的 DLY_CAL_DONE 输入,该输入将读/ 写状态机转换到空闲状态,以等候来自用户接口的读/ 写请求。 在空闲状态,写命令首先假设向存储器写数据必须始终发生在任何有效读数据出现之前。当没有待处理的读或写请求时,此状态机将在空闲状态下循环运行。 用户接口 FIFO 中的待处理写请求会使状态机转入写状态,在此状态下,写命令通过内部的WR_INIT_n 选通脉冲发送。此选通脉冲从 FIFO 中取出写地址和数据值,并使外部 QDR_W_n写控制选通脉冲进入存储器器件。 如果包含待处理读请求,此状态机会随之转入读状态,此时内部 RD_INIT_n 选通脉冲被激活。RD_INIT_n 选通脉冲从 FIFO 中取出读地址,并向存储器器件发送一个外部 QDR_R_n 选通脉冲。作为此处理过程的结果之一,对读数据 FIFO 中的返回值也将进行采集。 读/ 写状态机持续监控用户接口 FIFO 状态信号,以确定是否存在待处理读/ 写请求。连续不断的并发读/ 写请求流将导致状态机只在读状态和写状态之间转换,以确保正确无误地将请求交替发送到外部存储器。一串只写请求将导致空闲状态和写状态轮流出现,同样,一串读请求也会在空闲状态和读状态间转换。
写通路 QDR II 存储器的写通路包括执行写操作所必需的地址、数据和控制信号。写地址 (QDR_AD_WR)、控制选通脉冲 (QDR_W_n) 和字节写使能 (QDR_BW_n) 信号都使用 SDR 格式。不过,写数据值 (QDR_D) 利用 DDR 信号在规定的时钟周期实现所需的 2 字或 4 字突发。 所有这些写通路信号在传输时都必须与 QDR_K 和 QDR_K_n 时钟边沿中心对齐。因此,这些信号的输出寄存器与 USER_CLK270 时钟同步。信号以同样的频率运行,但对于 USER_CLK0则会出现 270°(时钟周期的 75%)的相差。这能确保对输入 QDR_K 和 QDR_K_n 时钟边沿而言,存储器器件有足够的建立与保持余量。 第 10 页图7 说明了如何使用 USER_CLK270 和 ODDR 寄存器为 QDR_D 写数据通路生成所需的 DDR 信号。ODDR 寄存器配置为同沿 (same-edge) 模式,允许在 USER_CLK270 的同一上升沿从 FPGA 架构中同时采集两个 36 位数据字(FIFO_DWL 和 FIFO_DWH)。FIFO_DWL 值在此上升沿后立即发送到 QDR_D 写数据总线,随后,FIFO_DWH 值在 USER_CLK270 的下一个下降沿从 ODDR 模块发送。对此过程加以重复,以生成一个 4 字写数据突发。 使用 I/O 模块中的单个触发器以类似的方式生成读/ 写地址、字节写使能和读/ 写控制选通脉冲,以创建与 USER_CLK270 同步的 SDR 信号。
读数据通路 基于 CQ 的数据采集机制可以实现以极高的时钟速率从存储器中采集读数据。此数据采集机制使用在每个 I/O 中都提供的 ISERDES 功能。输入时钟 (CQ) 和数据 (Q) 经延迟后与 ISERDES 模块中的系统时钟 (CLK0) 保持同步。 读数据通路包括两个阶段:读数据采集和读数据重新采集。两个阶段均在各个 Virtex-5 I/O 的内置 ISERDES 中实现。途经 BUFIO 的 CQ 信号将采集 ISERDES 模块内首组寄存器中的输入读数据 (Q)。第二组寄存器用来将 CQ 域中的数据传输至系统时钟域。 ISERDES 具有三种时钟输入:CLK、OCLK 和 CLKDIV。读数据 (Q) 在 CLK (CQ) 域经采集完成后,通过 OCLK 和 CLKDIV 传输至系统时钟(图8): CLK:布线通过 BUFIO 的读时钟 (CQ) 提供 CLK 时钟输入。 OCLK 和 CLKDIV:这些时钟负责对输入数据进行串并转换。由于数据以与接口速度相同的频率进行传输,系统时钟 (CLK_0) 提供针对 OCLK 和 CLKDIV 的输入。 在ISERDES 中采集到的数据可以被写入 Virtex-5 FPGA 中的内置 FIFO36 模块。
基于 CQ 的数据采集机制要求将读时钟(CQ 和 CQ)置于 clock-capable I/O (CCIO) 中,时钟从这些位置可以访问各组 (bank) 内可用的 BUFIO。 对于 x36 宽的 QDR II SRAM 接口,CQ_P 和 CQ_N 均用来采集读数据(第 11 页图9)。一个Virtex-5 器件中的每个组都包含 40 个 I/O,因此一个 x36 接口的读数据需要置于两个组中。 CQ_P 用来采集一个组中的首组字节,而 CQ_N 用来采集相邻组中剩余的数据字节。CQ_P 和CQ_N 均需置于相应组中 CCIO 的 P 侧。
延迟校准 延迟校准逻辑负责提供读数据 (Q) 和时钟 (CQ) 所需要的延迟,以便将采集到的数据与 FPGA时钟中心对齐。当来自 IDELAYCTRL 的 IDELAY_READY 信号设定为 High,且存储器初始化所需的时钟周期得到满足时,延迟校准状态机就会启动。校准过程包含单次写,随后向同一位置连续进行读,直到找到 Q 和 CQ 信号正好需要的延迟值。读校准开始后,校准状态机会执行以下步骤: 1. 增加 CQ 和 Q 上的 tap 延迟值。如果在某个 tap 值上初次获取了有效数据,则此 tap 值标志着数据有效窗口的开端。 2. 继续增加 CQ 和 Q 的 tap 延迟值,直到达到有效窗口的终端。 3. 将 CQ 置于此有效窗口的中央。降低 tap 值,直到 CQ 被固定于数据有效窗口的中央。 4. 对于 CQ 和 FPGA 时钟,数据总线 (Q) 将置于中央。重新设置 Q 的 tap 值,即可针对 CQ和系统时钟 (CLK0) 得出 Q 的有效窗口。对于 CQ 和 FPGA 时钟,数据信号 (Q) 将置于中央。 当所有 Q 信号围绕 CQ 固定后,延迟校准过程就结束了,并继之以读使能校准。 读使能逻辑对向存储器发送的读命令进行校准,为已采集到并写入读数据 FIFO 的数据生成写使能。校准逻辑使用 SRL16 构建而成,有助于确定读命令信号所需寄存器级数的数量,以生成正确的写使能信号。 板设计中的考虑因素 尽管 Virtex-5 系列产品提供了许多与 I/O 和时钟控制相关的高级功能,大大简化了存储器接口设计,但为了使接口可靠而高效,仍需注意基本的电路板设计标准。 需特别强调的是,读和写通路接口的源同步特性要求接口时钟、数据及控制信号具有相匹配的电路板布线长度。 例如,QDR II 器件输入信号(QDR_K、QDR_K_n、QDR_W_n、QDR_R_n、QDR_SA、QDR_BW_n 和 QDR_D)的布线长度必须完全匹配,以将控制、地址及数据线接至具备充足建立与保持余量的存储器器件。物理接口的实现可确保这些信号在离开 FPGA 器件输出时与QDR_K 和 QDR_K_n 时钟边沿中心对齐。电路板布线必须确保这种关联状态能持续到存储器器件输入。 同样,QDR II 器件输出信号(QDR_Q、QDR_CQ)必须具备完全匹配的布线长度,以使这些信号在 Virtex-5 器件的输入端实现边沿对齐。要实现直接时钟控制读数据采集方法,这一点非常关键。所有合理的板设计工具都可以在可接受的容错范围内轻松满足这些布线长度。 时序分析 本 Virtex-5 QDR II 参考设计利用该器件的独特 I/O 和时钟控制功能,可最大限度地提高性能与时序余量,同时大大降低对详细布局和管脚分配分析的需求。 本部分针对地址/ 控制通路、写数据通路及读(或采集)数据通路给出一个时序分析示例。 地址/ 控制通路 先前已讨论过,读/ 写地址总线、字节写使能信号和读/ 写控制选通脉冲都与USER_CLK270时钟保持同步。这可以确保,对于来自 USER_CLK0 的输入 QDR_K 和 QDR_K_n 时钟边沿,这些 SDR 信号具备对存储器器件的有充足的建立与保持余量。 表2 根据用一个 Virtex-5 器件实现的 300 MHz 4 字突发 QDR II 存储器器件接口,显示针对这些信号的一个时序分析示例。
写数据通路 写数据 (QDR_D) 也与 USER_CLK270 保持同步。不过,写数据字作为 DDR 进行发送,因此在QDR_K 和 QDR_K_n 上升沿均需具备充足的建立与保持余量。相应地,表3 所示写通路的时序分析包括了存储器时钟的最大占空比失真,并基于 300 MHz 4 字突发 QDR II 存储器器件及速度级别为 -11 的 Virtex-5 器件。
读数据通路(数据采集) 读数据通路 (QDR_Q) 值直接被采集至 SERDES 内的 USER_CLK0 时钟域。表4 显示读数据采集的时序分析。
结论 本应用指南说明了利用 Virtex-5 器件实现 4 字突发 QDR II SRAM 接口及其时序的详细信息。 数据采集机制的应用大大简化了在 FPGA 内采集读数据的任务,且为当前及下一代 QDR IISRAM 存储器器件提供了高效、强大、可扩展的存储器接口解决方案。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~