当前位置: 首页 > article >正文

FPGA 时钟拓扑结构建议

时钟拓扑结构建议
赛灵思建议使用简单的时钟树拓扑结构,因其设计所需的时钟缓存数量最少。使用额外的时钟缓存需要更多的布线轨
道,这可能导致在时钟布线要求高并且接近最大容量的时钟区域中的布局错误或布线冲突。
以下是针对 BUFGCE/BUFGCTRL/BUFGCE_DIV 连接的时钟拓扑结构建议。
并行时钟缓存
使用并行时钟缓存来实现以下目的:
确保跨实现运行的可预测的展示位置
当并行时钟缓存由相同的输入时钟端口 MMCM PLL GT*_CHANNEL 直接驱动时,无论网表变化或逻辑布局变
化如何,缓存始终置于与其驱动器相同的时钟区域中。
匹配时钟树的并行分支之间的插入延迟
赛灵思推荐并行缓存通过级联时钟缓存,特别是在分支之间存在同步路径时。当使用级联缓存时,即使使用
CLOCK_DELAY_GROUP USER_CLOCK_ROOT 约束,时钟插入延迟在时钟树的分支之间将不匹配。这可能导致高
时钟偏移,将导致时序收敛难度增加,甚至无法实现。
下图显示了由 MMCM CLKOUT0 端口驱动的三个并行 BUFGCE 缓存。
级联时钟缓存
一般来说,赛灵思不建议使用级联缓存人为地增加延迟并减少不相关的时钟树分支之间的偏差。与 BUFGCTRL 之间的
连接不同,其他时钟缓存连接在架构中没有专用路径。因此,时钟缓存的相对布局是不可预测的,并且所有布局规则
优先于布局无约束级联缓存。
但是,可以使用级联时钟缓存来实现以下功能:
将时钟布线到位于不同时钟区域中的另一个时钟缓存
当将时钟多路复用器用于由位于不同时钟区域中的 MMCM 生成的时钟时,该方法较为普遍。虽然一个 MMCM
以直接驱动 BUFGCTRL (BUFGMUX) ,但是另一个 MMCM 需要中间时钟缓存来将时钟信号布线到其他区域。下图显
示了一个示例。
在这些分支之间存在同步路径时,平衡时钟树分支上的时钟缓存级别数
例如,一个名为 clk0 MMCM 时钟驱动组 A (通过位于不同时钟区域中的 BUFGCTRL 驱动的顺序单元)和组 B
(顺序单元)。为了更好地匹配分支之间的延迟,为组 B 插入一个 BUFGCE ,并将它布局在与 BUFGCTRL 相同的时
钟区域中。这确保组 A 和组 B 之间的同步路径具有受控的偏差量。下图显示了一个示例。
注释: Vivado 逻辑优化命令 opt_design 不能感知时序时钟和时钟网络分支间的时序关系。因此, opt_design
可以尽可能多地消除级联或冗余的时钟缓存。在本例中,除非您基于其上设置 DONT_TOUCH="TRUE" 属性,否则
opt_design 可移除 BUFGCE_inst_1 。如果在时钟树分支之间仅存在异步路径,则只要在接收时钟域上存在适当
的同步电路,分支就不需要被平衡。
时钟多路复用 所述,构建时钟多路复用器。
当使用级联时钟缓存时,为了减少插入延迟和偏移的变化,赛灵思建议如下:
将级联缓存保持在相同或相邻的时钟区域中。
当时钟树分支平衡时,将相同级别的所有时钟缓存分配给相同的时钟区域。
注释: 如果绝对需要,赛灵思建议使用两个级联 BUFGCTRL 而不是级联 BUFGCE 。使用专用布线,当两个 BUFGCTRL
位于相同的时钟区域内时,可以以最小的延迟级联两个相邻的 BUFGCTRL

http://www.kler.cn/a/531384.html

相关文章:

  • 前端 | JavaScript中的reduce方法
  • 编程AI深度实战:给vim装上AI
  • AI大模型开发原理篇-5:循环神经网络RNN
  • 【llm对话系统】大模型 Llama 源码分析之归一化方法 RMS Norm
  • Python字典详解:从入门到实践
  • 【回溯】目标和 字母大小全排列
  • X Window System 架构概述
  • CommonJS
  • python 中的堆
  • LeetCode-182. 查找重复的电子邮箱
  • 基础篇04-图像的灰度值变换
  • 一份完整系统化提升信息输出密度与逻辑严谨性的训练素材
  • Github 2025-02-03 开源项目周报 Top14
  • 【开发和生产环境配置】
  • 零碎的知识点(十二):“期望” 是什么?
  • 构建一个运维助手Agent:提升运维效率的实践
  • leetcode 2594. 修车的最少时间
  • FreeRTOS学习 --- 队列集
  • 深度解析近期爆火的 DeepSeek
  • Linux03——常见的操作命令
  • 计算机网络的组成,功能
  • 密码学的数学基础1-素数和RSA加密
  • PWN--格式化字符串
  • 100 ,【8】 buuctf web [蓝帽杯 2021]One Pointer PHP(别看)
  • UBX完成首轮代币销毁:1,755,874枚UBX永久退出流通
  • L31.【LeetCode题解】轮转数组