Xilinx XDC约束学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
时间:2015-05-17 文档:
目录
第一章介绍 (3)
一、UCF向XDC的迁移 (3)
二、关于XDC约束 (3)
三、添加(Entering)XDC约束 (4)
第二章约束方法论 (4)
一、管理(Organizing)约束文件 (4)
二、约束命令排序(Ordering Your Constraints) (6)
三、添加约束(Entering Constraints) (10)
四、创建综合约束 (12)
第一章介绍
一、UCF向XDC的迁移
XDC(Xilinx Design Constraints)约束不同于UCF(User Constraints File)约束,XDC约束是基于SDC(Synopsys Design Constraints)约束格式的。SDC已经被使用并演进(evolving)20多年了,这使得它是一种流行的、经过验证的、用于描述设计约束
的方法。如果你熟悉UCF,且刚刚开始接触xdc的话,请学习“Differences Between XDC and UCF Constraints”部分(UG911)。
为了正确地约束设计,必须要正确理解XDC与UCF的不同之处。通过UCF到XDC格式转换的方法实现XDC的创建,是不能代替对XDC语法以及创建XDC约束的理解的,所以需要理解XDC的原理。
二、关于XDC约束
XDC约束由以下部分组成:
1、工业标准的Synopsys Design Constraint(SDC),和
2、Xilinx公司所有的物理约束(physical constraint);
XDC约束具有如下特性:
1、XDC约束不是简单的字符(strings),而是遵循Tcl语法规则的
命令;
2、XDC约束可以像任何Tcl命令一样被Vivado Tcl解析器解析;
3、XDC约束像其他Tcl命令一样被顺序的读入和解析;
三、添加(Entering)XDC约束
在设计的不同节点,有三种方法添加XDC约束:
1、将约束保存成可以加入到工程约束集(project constraints set)的
一个或者多个文件(GUI方式);
2、使用read_xdc命令读取约束文件(批处理方式);
3、打开工程的时候(即将设计导入内存),在Tcl控制台中直接调
用约束命令(命令行方式);
第二章约束方法论
这一章将讨论推荐地添加约束的流程(Constraints Entry Flow)。
设计约束定义了编译流程(the Compilation Flow)中必须满足的设计需求,以使设计上板测试时功能能够正确。在编译流程中,
每个步骤使用不同的约束,例如物理约束会在实现(Implementation)步骤中使用,实现步骤包括Placer(布局)和Router(布线)。
因为Vivado IDE(Vivado Integrated Design Environment)综合(Synthesis)与实现(Implementation)算法是时序驱动的(Timing-driven),所以需要创建适宜的(proper)时序约束。过紧约束(Over-constraining)与过松约束(Under-constraining)会使设计的时序逼
近变得困难。所以,设计者必须使用切合设计应用需求的约束。
一、管理(Organizing)约束文件
Vivado IDE允许使用一个或者多个约束文件。对设计项目来说,在整个编译过程中仅使用一个约束文件似乎是方便的,但是随着设
计复杂度的提升,会越来越难以掌控约束。Xilinx建议将时序约束
(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、推荐的约束命令顺序