当前位置:首页 > Xilinx XDC约束学习笔记
(timing constraints)与物理约束(physical constraint)分开保存为独立的文件。
1、 工程流程(Project Flow)
在创建新工程的过程中,可以将约束文件XDC添加文件到约束集(Constraints Set),建好工程后添加也可。
Figure 2-1,显示一个工程中添加两个文件:
1) 第一个约束集包含2个XDC文件;
2) 第二个约束集包含了一个带有所有约束的文件;
Figure 2-1 Single or Multi XDC
2、 Non-Project Flows
在no-project流程中,执行编译命令之前读取每个约束文件也可以取得Project Flow的相同效果。 Example Script
read_verilog [glob src/*.v]
read_xdc wave_gen_timing.xdc read_xdc wave_gen_pins.xdc synth_design –top wave_gen opt_design place_design route_design
3、 约束文件的综合与实现属性
默认情况下,添加到工程的约束文件带有综合和实现两种属性。
通过如下方法改变约束文件的属性:
1) 在Source window中选择约束文件; 2) 勾选实现属性,不勾选综合属性; 3) 点击应用;
Figure 2-2: Source File Properties Window
等效的Tcl命令是:
set_property used_in_synthesis false [get_files wave_gen_pins.xdc]
set_property used_in_implementation true [get_files wave_gen_pins.xdc]
二、约束命令排序(Ordering Your Constraints)
因为XDC约束是按顺寻应用的,且根据之前的顺序规则进行
优化,所以要仔细检查约束的顺序。推荐的约束顺序如下,无论使用一个还是多个约束文件,都应该按照下面的顺序安排约束。
1、 推荐的约束命令顺序
## Timing Assertions Section # Primary clocks # Virtual clocks # Generated clocks # Clock Groups
# Input and output delay constraints ## Timing Exceptions Section # False Paths
# Max Delay / Min Delay # Multicycle Paths # Case Analysis # Disable Timing
## Physical Constraints Section
# located anywhere in the file, preferably before or after the timing constraints
# or stored in a separate XDC file
当使用多个约束文件时,彼此的约束定义最好不要相关,如果
相关的话,就要合理安排XDC文件的顺序。约束文件是按文件的顺序读入的。
2、 新编辑的约束命令的顺序
Vivado IDE约束管理器(manager)将被重新编辑的约束命令保存到它位于XDC文件的原始位置。任何新添加的约束文件将被保存到带有target属性的约束文件结尾处。在大多数情况下,当约束集带有多个约束文件时,带有target属性的约束文件通常不是最后(last)一个文件,即当打开工程时该约束文件不是最后导入的。因此,保存在硬盘中的约束可能与之前内存中的约束不通(Vivado软件打开工程时,会将约束导入内存。此时添加新约束时,该新约束被写入内存中,且是位于最后顺序的。而将约束保存到文件后,会将该约束保存到带有target属性的文件中,当下次打开工程时,约束的顺序就与之前不同了)。
3、 约束文件的顺序
在没有任何IP的工程中,所有的约束文件都位于一个约束集
(Constraints Set)之中。默认情况下,Vivado IDE所显示的XDC文件的顺序,就定义了工具将综合设计导入内存时读取约束文件的顺序。约束集中约束列表的最顶端约束被最先读到内存,最下边的约束被最后读入内存。该约束的顺序可以通过设置改变。
例如,下图中约束文件顺序的改变。
Changing XDC File Order in the Vivado IDE Example
等效的Tcl命令是:
reorder_files -fileset constrs_1 -before [get_files \\(“\\”不是Tcl命令的符号,仅表示衔接的意思,实际使用时不需要添加在Tcl命令中。) wave_gen_timing.xdc] [get_files wave_gen_pins.xdc]
许多IP核也带有一个或多个XDC文件。当工程中例化了带有
XDC文件的IP核时,这些XDC文件也将在编译的过程被用到。
XDC files in the IP Sources
默认情况下,设计者的XDC文件会先于IP的约束文件被读入
到内存。对于一些定义了Primary Clock的IP来说,有些特别(Execption)之处,例如Clocking Wizard。这种情况下,IP XDC文
共分享92篇相关文档