1、设计检查的生成与豁免
豁免机制提供了对
CDC
、
DRC
和
Methodology
违例进行豁免的途径。豁免后
,
report_cdc
、
report_drc
和 report_methodology 命令将不再报告这些违例。如果将强制性
DRC
作为实现命令
(
如
opt_design
、 place_design、
phys_opt_design
、
route_design
或
write_bitstream
)
的前提条件来运行
,
那么同样会 滤除其中已豁免的 DRC
。
豁免与
XDC
兼容
,
可通过
read_xdc
或
source
命令导入。在工程模式或非工程模式下
,
豁免可包含在任意
XDC
文 件或 Tcl
脚本中。可从顶层创建豁免
,
或者也可将其限定于层级模块。将豁免添加到设计中后
,
会将其自动保存在检查 点内,
并在重新加载检查点时将其复原。可使用
write_xdc
和
write_waivers
命令写出豁免。 豁免可提供跟踪功能。Vivado 工具会记录创建豁免的用户、创建日期和时间以及简短描述。豁免是可供创建、查询、报告和删除的第一类对象。豁免可引用由 Vivado
get_*
命令返回的其他第一类对象
,
例如
, 管脚、单元、信号线、Pblock
和
site
(
站点
)
。在设计中
,
这些对象必须已存在
,
才能创建豁免。创建豁免时不存在 的设计对象将不涵盖在豁免范围内。
豁免机制支持复制和删除网表对象。复制豁免中涉及的对象时
,
会将复制的对象自动添加到豁免中。同样
,
删除对象 时,
还将从豁免移除针对该对象的所有引用。如果删除对象导致豁免引用的对象列表为空
,
此豁免将从内存中设计中删 除,
且不保存在后续检查点内。同样的机制也适用于时序约束和时钟对象。通过逻辑最优化或通过移除时序约束 (reset_timing
)
删除时钟时
,
引用该时钟对象的所有豁免也将被删除
,
且不保存在后续检查点内。
2、创建豁免
可从
GUI
、
DRC
、
Methodology
或
CDC
违例对象创建豁免
,
也可通过手动指定所有必需实参来指定豁免。
3、从
GUI
创建豁免
在“
Report DRC
”
(
DRC
报告
)
、“
Report Methodology
”
(
方法论报告
)
或“
Report CDC
”
(
CDC
报告
)
GUI
结果窗口中均可直接创建豁免。要从结果窗口中豁免违例,
请选中一项或多项违例
,
右键单击上下文菜单并从中选择 “Create Waiver
”
(
创建豁免
)
。
4、
从违例对象创建豁免
创建豁免的第
2
种方法是使用
DRC
、
Methodology
或
CDC
违例对象。
GUI
使用此方法向
Tcl
控制台发送 create_waiver 命令。
create_waiver -of_objects <ViolationObject(s)> -description <string> [-user <name>]
“
description
”
(
描述
)
为必填字段。不指定“
user
”
(
用户
)
时
,
系统使用当前运行
Vivado
工具的用户
ID
。
5、从命令行创建豁免
特定
DRC
和
Methodology
(
方法论
)
违例的豁免是唯一的。违例是字符串和
/
或各种器件和设计对象
(
例如
,
管脚、 单元、信号线、Pblock
、站点
(site)
和拼块
(tile)
)
的聚合。部分
DRC
、
Methodology
和
CDC
违例可能仅包含上述某一 元素,
而某些违例可能包含多项元素。所有字符串和对象的顺序和内容都至关重要
,
必须予以保留。当使用按错误顺序指定的实参创建豁免程序时,
豁免将无法应用于任何违例
,
或者可能应用于错误的违例。
为特定违例
(
例如
,
TIMING-14#1
)
或某类违例
(
例如
,
TIMING-14
)
手动创建豁免前
,
建议首先从
GUI
或者从违例 对象创建示例豁免。使用 write_waiver
或
write_xdc
命令导出豁免。随后
,
可将系统创建的豁免内容与原始违例 关联,
并确认需指定的字符串和对象顺序。此信息可扩展至含相同
CDC
、
DRC
或
Methodology ID
(
例如
, TIMING-14)
的其他豁免。
对于任意
CDC
、
DRC
和
Methodology
豁免
,
都存在
2
个必需实参
:
•
ID
:
要豁免的违例或检查
ID
。
ID
是使用
-id
指定的。例如
,
CDC-1
、
TIMING-14
或
PDRC-1569
。每次仅限指定 1 个
ID
。
• “
Description
”
(
描述
):
支持多行字符串。必须提供充分信息以供团队审查。
Description
是使用
- description 指定的。 可使用命令行选项 -type
来强制设置豁免类型
:
CDC
、
DRC
或
Methodology
。如果创建的豁免所设置的类型错 误,
则无法与任何违例匹配。例如
,
要豁免
CDC
违例
,
豁免类型必须设置为
CDC
。不指定类型时
,
系统会从使用
- id 指定的检查
ID
推断类型。用户名可使用
-user
选项覆盖。默认情况下
,
系统使用当前运行
Vivado Design Suite
的 用户 ID
。
豁免支持
XDC
作用域限定机制
,
创建豁免后可更改当前实例。在此情况下
,
当前实例信息将与豁免保存在一起
,
并在 豁免导出为 XDC
时复原。创建限定作用域的豁免时
,
建议使用命令行选项
-scope
以确保限定通配符作用域。