验证时钟定义和覆盖范围 - 2023.2 简体中文

Versal 自适应 SoC 硬件、IP 和平台开发方法指南 (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 简体中文

在存储器中定义并应用所有设计时钟后,即可使用 report_clocks 命令验证每个时钟的波形以及主时钟和生成时钟之间的关系:

Clock Period Waveform Attributes Sources
sysClk 10.00000 {0.00000 5.00000} P {sysClk}
clkfbout 10.00000 {0.00000 5.00000} P,G {clkgen/mmcm_adv_inst/CLKFBOUT}
cpuClk 20.00000 {0.00000 10.00000} P,G {clkgen/mmcm_adv_inst/CLKOUT0}
…
====================================================
Generated Clocks
====================================================
Generated Clock : cpuClk
Master Source : clkgen/mmcm_adv_inst/CLKIN1
Master Clock : sysClk
Edges : {1 2 3}
Edge Shifts : {0.000 5.000 10.000}
Generated Sources : {clkgen/mmcm_adv_inst/CLKOUT0}

此外,您还可验证所有内部时序路径都被至少 1 个时钟所覆盖。“Check Timing”(检查时序)报告为此提供了两项检查:

no_clock
报告已定义的时钟无法连接到的任何活动时钟管脚。
unconstrained_internal_endpoint
如果某些时序单元具有与时钟相关的时序检查但尚未定义时钟,则报告此类时序单元的所有数据输入管脚。

如果两项检查都返回 0,说明时序分析覆盖范围广。

或者,还可运行 XDC 和“Timing Methodology”(时序方法论)检查来验证在建议的网表对象上是否已定义所有时钟,同时避免造成任何约束冲突或不准确的时序分析情境。

请使用以下命令来运行这些检查:

report_methodology -checks [get_methodology_checks {TIMING-* XDC*}]