推荐答案
测试一下
题目
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 原语实例化
- 时钟综合属性控制
- 专用时钟管脚与区
- 时钟使能同步处理