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

vivado时序方法检查1

TIMING-1 时钟修改块上的时钟波形无效
<cell_type> 输出 <pin_name> 上指定的时钟 <clock_name> 的时钟波形无效 与时钟修改块 (CMB) 设置不匹配。该时钟波形为 <VALUE> 。期望的波形为 <VALUE>
描述
Vivado Design Suite 会根据 CMB 设置和传入主时钟的特性 CMB 输出上自动衍生时钟。如果用户在 CMB 输出上定义生成时钟, 那么 Vivado 不会在同一定义点 信号线或管脚 上自动衍生生成时钟。 DRC 警告报告称用户定义的生成时钟与 Vivado 将自动创建的自动衍生时钟不匹配。这可能导致硬件故障 因为设计的时序约束与器件上所发生的约束不匹配。
解决方案
如果无需用户定义的生成时钟 请移除约束并改为使用自动衍生时钟。如果需要约束 请验证生成时钟约束与自动衍生时钟波形是否匹配, 或者修改 CMB 属性以与期望的时钟波形相匹配。如果要强制设置自动衍生时钟的名称 建议使用仅定义 -name 选项的 create_generated_clock 约束以及定义该时钟的对象 通常为 CMB 的输出管脚 的名称。
示例
在下图中 MMCM 实例管脚 CLKOUT0 上定义了 create_generated_clock 约束 但此约束与 Vivado 从MMCM 属性设置生成的自动衍生波形不匹配。如需仅对自动衍生时钟进行重命名, 请在约束文件中的主时钟定义后使用以下约束
create_generated_clock -name clkName [get_pins clk_gen_i0/clk_core_i0/inst/
mmcme3_adv_inst/CLKOUT0]
TIMING-2 基准时钟源管脚无效
在错误的管脚 <pin_name> 上创建了基准时钟 <clock_name> 。建议仅在适当的时钟根 不含时序弧的输入端口或原语输出管脚) 上创建基准时钟。
描述
基准时钟必须在时钟树的源时钟上定义。例如 源时钟可能是设计的输入端口。如果在逻辑路径中间定义基准时钟 时序分析准确性可能降低, 因为它会忽略位于基准时钟源点之前的插入延迟 从而导致无法正确执行偏差计算。因此 最好不要在内部驱动程序管脚上创建基准时钟。否则可能导致硬件故障。
解决方案
修改 create_clock 约束以使用实际时钟树源。
示例
在下图中 基准时钟定义 create_clock 约束布局在 IBUFCTRL 实例的输出管脚上。如果使用 clk_pin_p 时钟对输入或输出端口路径进行定时, 则裕量将不准确 因为将缺失时钟树插入延迟部分。差分输入缓冲器的基准时钟定义应布局在顶层端口 clk_pin_p 上。
TIMING-3 时钟修改块上的基准时钟无效
在时钟修改块的输出管脚或信号线 <pin/net_name> 上会创建基准时钟 <clock_name>
描述
Vivado 会根据 CMB 设置和传入主时钟的特性 CMB 输出上自动衍生时钟。如果用户在 CMB 输出上定义基准时钟, 那么 Vivado 不会在相同输出上自动衍生时钟。此 DRC 报告显示在 CMB 的输出上已创建基准时钟 导致与传入时钟之间的联系中断, 并阻碍时钟插入延迟的正常计算。不建议如此行为 因为它可能导致时序分析不准确和硬件行为错误。
解决方案
修改约束以移除 CMB 输出上的 create_clock 约束。如需强制设置自动生成时钟的名称 AMD 建议使用create_generated_clock 约束 其中仅含 -name 选项和 CMB 输出管脚。
示例
在下图中 MMCM 实例管脚 CLKOUT0 上已定义 create_clock 约束。这将覆盖由 Vivado 创建的自动衍生时钟, 导致与传入时钟之间的所有关系丢失。如需仅对自动衍生时钟进行重命名, 请在约束文件中的主时钟定义后使用以下约束
create_generated_clock -name clkName [get_pins clk_gen_i0/clk_core_i0/inst/
mmcme3_adv_inst/CLKOUT0]

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

相关文章:

  • 【Effective C++】条款2:尽量以const,enum,inline替换#define
  • leetCode 90.子集 II + 回溯算法 + 图解 + 笔记
  • FFmpeg的C++封装:FFmpegWrapper
  • vue form表单的封装--使用的是elementUI
  • 如何设计自动化测试脚本
  • VAE模型及pytorch实现
  • centos7.5插件xtrabackup下载
  • 【数据结构】链表OJ题(顺序表)(C语言实现)
  • 硬件开发笔记(十四):RK3568底板电路LVDS模块、MIPI模块电路分析、LVDS硬件接口、MIPI硬件接口详解
  • C/C++ 实现枚举网上邻居信息
  • nginx对多个服务器的高可用,容易出现鉴权失败
  • 二百一十二、Flume——Flume实时采集Linux中的目录文件写入到HDFS中(亲测、附截图)
  • Socket.IO 实现原理(一篇文章让你彻底弄懂即时聊天技术)
  • 算法通关村第一关—白银挑战—链表高频面试算法题—查找两个链表的第一个公共子节点
  • docker: Error response from daemon: failed to create shim task: OCI runtime
  • 5.清除SVN用户账号两种方式
  • 什么是网络可视化?网络可视化工具有用吗
  • java学习part37定制排序和自然排序
  • OpenCV实现手势音量控制
  • 【Qt开发流程】之对象模型1:信号和槽