vivado时序方法检查1

TIMING-1 时钟修改块上的时钟波形无效
输出 上指定的时钟 的时钟波形无效 与时钟修改块 (CMB) 设置不匹配。该时钟波形为 。期望的波形为
描述
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]
vivado时序方法检查1_第1张图片
TIMING-2 基准时钟源管脚无效
在错误的管脚 上创建了基准时钟 。建议仅在适当的时钟根 不含时序弧的输入端口或原语输出管脚) 上创建基准时钟。
描述
基准时钟必须在时钟树的源时钟上定义。例如 源时钟可能是设计的输入端口。如果在逻辑路径中间定义基准时钟 时序分析准确性可能降低, 因为它会忽略位于基准时钟源点之前的插入延迟 从而导致无法正确执行偏差计算。因此 最好不要在内部驱动程序管脚上创建基准时钟。否则可能导致硬件故障。
解决方案
修改 create_clock 约束以使用实际时钟树源。
示例
在下图中 基准时钟定义 create_clock 约束布局在 IBUFCTRL 实例的输出管脚上。如果使用 clk_pin_p 时钟对输入或输出端口路径进行定时, 则裕量将不准确 因为将缺失时钟树插入延迟部分。差分输入缓冲器的基准时钟定义应布局在顶层端口 clk_pin_p 上。
vivado时序方法检查1_第2张图片
TIMING-3 时钟修改块上的基准时钟无效
在时钟修改块的输出管脚或信号线 上会创建基准时钟
描述
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]
vivado时序方法检查1_第3张图片

你可能感兴趣的:(fpga开发)