← 时钟域与时钟树

推荐答案 测试一下

4.1 使用全局时钟树资源

题目配图 题目配图
编程题 中等 笔试真题

参考答案

FPGA 全局时钟树资源分配的核心在于确保时钟信号走全局布线网络,以最小化时钟偏移和抖动。通过 HDL 代码实现时,常用方法包括实例化全局时钟缓冲原语(如 Xilinx 的 BUFG、Altera 的 CLKCTRL)或通过综合属性(synplify 的 equivalent_register_removal、ISE/Vivado 的 (* clock_buffer_type = "BUFG" *))指示工具自动插入。 具体步骤: 1. 对于外部输入但未接专用时钟管脚的时钟,应先通过 IBUFG 或 IBUF 实例化输入缓冲,再连接 BUFG 后驱动逻辑。 2. 对于 PLL/MMCM 等内部产生的时钟,通常其输出已包含通用缓冲,但可显式例化 BUFG 以确保上全局时钟树。 3. 使用时钟使能或复位信号时,应将其与时钟同源,并在 BUFG 之前或之后处理,避免额外延迟。 4. 避免在组合逻辑中产生时钟,否则无法使用全局树;必须使用时,通过寄存器分频或锁相环再上树。 易错点: - 误用普通 I/O 口输入时钟(导致走局部资源,增加 skew); - 未显式实例化 BUFG,依赖工具推断不可靠; - 时钟使能信号未做同步处理,导致跨时钟域问题; - 多路选择时钟时,使用 MUX 而非 BUFGMUX 原语。 考点:FPGA 时钟结构、原语使用、综合控制、时序优化。

涉及知识点

  • 全局时钟树结构
  • BUFG 原语实例化
  • 时钟综合属性控制
  • 专用时钟管脚与区
  • 时钟使能同步处理
← 上一题
登录后反馈错题
下一题 →