vivado时序方法检查2

TIMING-4 时钟树上的基准时钟重新定义无效
时钟树上的时钟重新定义无效。基准时钟 <clock_name> 是在时钟 <clock_name> 下游定义的 并覆盖其插入延迟和/ 或波形定义。
描述
基准时钟必须在时钟树的源时钟上定义。例如 源时钟可能是设计的输入端口。如果在覆盖传入时钟定义的下游定义基准时钟, 时序分析准确性可能降低 因为它会忽略位于重新定义的基准时钟源点之前的插入延迟 从而导致无法正确执行偏差计算。之所以不建议这样做, 是因为这可能导致时序分析错误 从而导致硬件故障。
解决方案
移除下游对象上的 create_clock 约束 允许传输上游时钟或者创建生成时钟以引用上游基准时钟。
示例
在下图中 在顶层端口 clk_pin_p 上已正确定义基准时钟。但 create_clock 约束用于在 IBUFCTRL 输出上重新定义基准时钟。此新时钟将忽略 IBUFCTRL 前的所有延迟。
TIMING-5 时钟树上的波形重定义无效
时钟树上的反向波形无效。生成时钟 <clock_name> 定义为位于时钟 <clock_name> 的下游 并具有波形反向定义(相比于传入时钟
描述
应定义与传入时钟相关的生成时钟。 DRC 警告报告称生成时钟包含无效定义 例如 相比于传入时钟存在不同的周期、相移或反转。
解决方案
修改 create_generated_clock 约束以定义与传入时钟定义相匹配的正确波形定义。
示例
在下图中 LUT1 反相器的输出上创建了 create_generated_clock 但未应用 -invert 开关。
TIMING-6 相关时钟间无公共基准时钟
时钟 <clock_name> <clock_name> 之间相互关联 一起定时 ), 但两者间无公共基准时钟。即使满足时序要求, 设计仍可能失败。要查找这些时钟之间的时序路径 请运行以下命令
report_timing -from [get_clocks <CLOCK_NAME1>] -to [get_clocks
<CLOCK_NAME2>]
描述
默认情况下 2 个报告的时钟被视为相关联时钟 并以同步方式进行定时 即使这 2 个时钟并非衍生自公共的基准时钟, 且不含有已知相位关系 也同样如此。 DRC 警告报告称时序引擎无法保证这些时钟处于同步状态。
解决方案
解决办法取决于 2 个时钟域处于异步还是同步状态。对于异步时钟 时序例外 例如 set_max_delay - datapath_only、 set_clock_groups set_false_path 应覆盖 2 个域之间的路径。当这 2 个域之间的所有路径都实现例外完全覆盖时, 即可解决 DRC
示例
对于同步时钟 如果原先 2 个时钟具有相同波形 那么可在 2 个时钟源对象上定义同一个时序时钟 请参阅以下示例)
示例 1 create_clock -period 10 -name clk1 [get_ports <clock-1-source> <clock-2-
source>] 如果 2 个时钟波形不同 那么可将第 1 个时钟定义为基准时钟 (primary clock) 将第 2 个时钟定义为生成时钟 (generated clock), 并将第 1 个时钟指定为主时钟 (master clock) 请参阅以下示例 2
示例 2 create_clock -period 10 -name clk1 [get_ports <clock-1-source>]
如果时钟相关联 但时钟周期比率为 2 那么解决方案是在 1 个时钟源上创建基准时钟 而在第 2 个时钟源上创建生成时钟:
create_generated_clock -source [get_ports <clock-1-source>] -name clk2 -divide_by 2
[get_ports <clock-2-source>]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cckkppll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值