Xilinx XDC约束学习笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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、推荐的约束命令顺序

相关文档
最新文档