让-XDC-时序约束为您效力

合集下载

vivado仿真文件编写格式

vivado仿真文件编写格式

Vivado仿真文件编写格式1、引言Vivado是一款由Xilinx公司推出的综合性FPGA设计工具,其仿真功能是设计与验证FPGA电路的重要环节之一。

在进行FPGA设计的过程中,编写Vivado仿真文件是必不可少的一部分,它能够帮助工程师验证电路设计的正确性,快速定位问题并进行调试。

了解Vivado仿真文件的编写格式对于提高FPGA设计效率具有重要意义。

2、仿真文件的作用Vivado仿真文件主要用于描述设计好的FPGA电路的功能和性能,通过在仿真器中加载仿真文件,可以模拟出电路的工作情况,快速验证设计的正确性,并且在后期调试中可以使用仿真文件帮助确定问题所在。

3、Vivado仿真文件的编写格式Vivado仿真文件包括testbench文件、constraints文件和设计文件。

其中testbench文件用于测试设计文件的正确性,constraints文件用于定义时序约束,设计文件则包括了电路的功能描述和逻辑结构。

3.1 testbench文件testbench文件一般以.v或者.sv作为后缀,它是描述测试环境的文件,用于对设计文件进行仿真测试。

在编写testbench文件时,需要包括以下内容:- 时钟信号的产生:仿真中需要模拟时钟信号的产生,因此在testbench文件中需要编写时钟信号的产生模块。

- 输入数据的生成:根据设计文件的输入信号,需要在testbench文件中生成相应的输入数据,并将其输入到设计文件中进行仿真。

- 仿真的控制:testbench文件需要对仿真的过程进行控制,包括开始仿真、停止仿真、保存仿真结果等操作。

3.2 constraints文件constraints文件一般以.xdc作为后缀,它用于定义时序约束和引脚约束。

在编写constraints文件时,需要包括以下内容:- 时钟约束:定义时钟频率、时钟占空比等时序约束,以保证设计文件中的时序要求能够满足。

- 引脚约束:定义FPGA芯片引脚的输入输出等约束,以保证设计文件与FPGA芯片的连接能够满足要求。

时序约束的概念和基本策略

时序约束的概念和基本策略

时序约束的概念和基本策略时序约束的概念和基本策略引言在现代电子设计中,时序约束是一项至关重要的任务。

它是指在电路中确定各个信号之间的时间关系,以确保电路能够按照预期的方式运行。

时序约束涉及到许多方面,包括时钟分配、逻辑延迟、信号传输等等。

在本文中,我们将详细介绍时序约束的概念和基本策略。

一、时序约束的概念1.1 什么是时序?在电路设计中,时序指的是各个信号之间发生的时间顺序关系。

例如,在一个简单的计数器电路中,一个时钟脉冲会触发计数器加1操作。

如果这个操作完成后立即出现下一个脉冲,则会导致计数器计数错误。

因此,在这种情况下,需要对脉冲之间的时间进行限制。

1.2 什么是时序约束?时序约束是一种用于限制各个信号之间时间顺序关系的技术。

它可以确保电路按照预期方式运行,并且可以帮助设计人员避免一些常见问题,例如信号噪声、稳定性问题等。

1.3 为什么需要时序约束?在现代电子设计中,时序约束非常重要。

这是因为现代电路的速度非常快,信号传输时间非常短。

如果不对信号进行时序约束,则可能会导致一些问题,例如:- 信号噪声:由于信号传输时间非常短,因此可能会受到噪声的干扰。

通过时序约束可以确保信号在正确的时间到达目标设备。

- 稳定性问题:如果两个信号在错误的时间交错到达,则可能会导致电路不稳定。

通过时序约束可以确保各个信号之间的时间顺序关系正确。

1.4 时序约束的应用领域时序约束广泛应用于各种电子设计中,包括:- 高速数字电路设计- FPGA设计- ASIC设计- PCB布局和布线二、时序约束的基本策略2.1 了解器件特性在进行时序约束之前,必须了解所使用器件的特性。

这包括器件的逻辑延迟、输入输出延迟等参数。

这些参数对于确定各个信号之间的时间关系至关重要。

2.2 确定主频率和时钟分配主频率和时钟分配是确定各个信号之间时间关系的重要因素。

通过确定主频率和时钟分配,可以确保各个信号在正确的时间到达目标设备。

2.3 确定时序限制一旦了解了器件特性并确定了主频率和时钟分配,就可以开始制定时序限制。

Vivado集成开发环境时序约束介绍

Vivado集成开发环境时序约束介绍

Vivado时序约束本文主要介绍如何在Vivado设计套件中进行时序约束,原文出自Xilinx中文社区。

1Timing Constraints in Vivado -UCF to XDCVivado软件相比于ISE的一大转变就是约束文件,ISE软件支持的是UCF(User Constraints File),而Vivado软件转换到了XDC(Xilinx Design Constraints)。

XDC主要基于SDC(Synopsys Design Constraints)标准,另外集成了Xilinx的一些约束标准,可以说这一转变是Xilinx向业界标准的靠拢。

Altera从TimeQuest开始就一直使用SDC标准,这一改变,相信对于很多工程师来说是好事,两个平台之间的转换会更加容易些。

首先看一下业界标准SDC的原文介绍:Synopsys' widely-used design constraints format, known as SDC, describes the "design intent" and surrounding constraints for synthesis, clocking, timing, power, test and environmental and operating conditions. SDC has been in use and evolving for more than 20 years, making it the most popular and proven format for describing design constraints. Essentially all synthesized designs use SDC and numerous EDA companies have translators that can read and process SDC.Xilinx原先的自成一派(UCF)其实其实也算做的不错,相信使用过UCF的工程师也有同感,并没有什么不便。

vivado 分频器 时序约束

vivado 分频器 时序约束

vivado 分频器时序约束以Vivado分频器时序约束为标题的文章一、引言Vivado是由Xilinx公司开发的一款集成化设计环境软件,用于FPGA设计和开发。

在FPGA设计中,分频器是一个常用的模块,用于降低时钟频率或者将时钟信号分频为其他频率。

然而,在设计中,时序约束是非常重要的,它能够确保设计在时序上满足要求,避免时序违规的问题。

本文将详细介绍在Vivado中如何进行分频器时序约束。

二、时序约束的重要性时序约束是FPGA设计中的关键步骤,它能够确保设计在时序上满足要求,避免时序违规的问题。

时序违规可能导致时钟偏移、数据错误以及系统不稳定等问题,严重影响设计的可靠性和性能。

而分频器作为一个常用的模块,在时序约束中也有着重要的作用。

三、时序约束的基本原理时序约束通常包括时钟频率、时钟延迟、数据路径延迟等信息。

在Vivado中,我们可以通过约束文件(Constraints File)来设置时序约束。

时序约束文件是一种特殊的文本文件,其中包含了关于时钟频率、时钟延迟、数据路径延迟等信息。

通过约束文件,我们可以告诉Vivado如何对设计进行时序分析和优化。

四、分频器的时序约束在Vivado中,我们可以使用时序约束来确保分频器的工作稳定和准确。

下面,我们将以一个简单的例子来介绍如何设置分频器的时序约束。

假设我们需要将一个100MHz的时钟信号分频为10MHz的时钟信号,我们可以使用一个分频因子为10的分频器来完成。

以下是一个简单的分频器的Verilog代码:```verilogmodule divider (input wire clk,input wire rst,output wire clk_out);reg [3:0] counter;always @(posedge clk or posedge rst)beginif (rst)counter <= 0;else if (counter == 9)counter <= 0;elsecounter <= counter + 1;endassign clk_out = counter[3];endmodule```在这个例子中,我们使用一个4位的计数器来实现分频功能。

XDC约束技巧之时钟篇

XDC约束技巧之时钟篇

XDC约束技巧之时钟篇Xilinx©的新一代设计套件Vivado中引入了全新的约束文件XDC,在很多规则和技巧上都跟上一代产品ISE中支持的UCF大不相同,给使用者带来许多额外挑战。

Xilinx工具专家告诉你,其实用好XDC很容易,只需掌握几点核心技巧,并且时刻牢记:XDC的语法其实就是Tcl语言。

XDC的优势XDC是Xilinx Design Constraints的简写,但其基础语法来源于业界统一的约束规范SDC(最早由Synopsys公司提出,故名Synopsys Design Constraints)。

所以SDC、XDC跟Vivado Tcl的关系如下图所示。

XDC的主要优势包括:1.统一了前后端约束格式,便于管理;2.可以像命令一样实时录入并执行;3.允许增量设置约束,加速调试效率;4.覆盖率高,可扩展性好,效率高;5.业界统一,兼容性好,可移植性强;XDC在本质上就是Tcl语言,但其仅支持基本的Tcl语法如变量、列表和运算符等等,对其它复杂的循环以及文件I/O等语法可以通过在Vivado中source一个Tcl文件的方式来补充。

(对Tcl话题感兴趣的读者可以参考作者的另一篇文章《Tcl在Vivado中的应用》)XDC与UCF的最主要区别有两点:1.XDC可以像UCF一样作为一个整体文件被工具读入,也可以在实现过程中被当作一个个单独的命令直接执行。

这就决定了XDC也具有Tcl命令的特点,即后面输入的约束在有冲突的情况下会覆盖之前输入的约束(时序例外的优先级会在下节详述)。

另外,不同于UCF是全部读入再处理的方式,在XDC中,约束是读一条执行一条,所以先后顺序很重要,例如要设置IO约束之前,相对应的clock一定要先创建好。

2.UCF是完全以FPGA的视角看问题,所以缺省认为所有的时钟之间除非预先声明是同步的,否则就视作异步而不做跨时钟域时序分析;XDC则恰恰相反,ASIC世界的血缘背景决定了在其中,所有的时钟缺省视作全同步,在没有时序例外的情况下,工具会主动分析每一条跨时钟域的路径。

xdc管脚约束

xdc管脚约束

xdc管脚约束
XDC(Xilinx Design Constraints)是Xilinx FPGA设计工具使用的约束文件格式,用于描述FPGA设计中的管脚约束。

XDC约束文件提供了一种灵活而强大的方式来规定FPGA设计中输入输出管脚的电气和时序要求。

以下是一些常见的XDC管脚约束:
1. IO标识:定义每个管脚的引脚名称和所在物理位置,例如使用LOC属性指定管脚的物理位号。

2. 约束引用时钟信号:使用create_clock约束指定输入时钟的频率和时钟延迟,以帮助实现时钟域划分。

3. 时序约束:使用set_input_delay和set_output_delay约束指定输入和输出信号的最大和最小延迟,以控制时序关系。

4. 约束时钟域与数据域:使用create_clock和
set_input_delay/receive_clock约束指定时钟域和数据域之间的时序要求。

5. 差分信号约束:对于差分信号,使用set_input_delay和
set_output_delay约束分别指定差分对的最大和最小延迟。

6. 禁用管脚约束:使用set_property约束禁用某些管脚,以保证设计的正确性。

这些约束将在FPGA布局时被综合软件使用,确保设计在时
序和电气上达到所需的目标。

在设计中正确使用XDC约束可以提高设计的性能和可靠性。

vivado管脚约束的各种写法

vivado管脚约束的各种写法

文章标题:探究Vivado管脚约束的多种写法在现代芯片设计中,Vivado成为了一种常用的FPGA设计工具。

在使用Vivado进行设计时,管脚约束是一项至关重要的任务。

它决定了FPGA内部逻辑与外部引脚的连接方式,直接影响着整个设计的性能、功耗和可靠性。

然而,在实际操作中,我们会遇到各种各样的管脚约束写法,如何正确利用这些写法成为了我们需要探讨和了解的问题。

一、简介Vivado工具提供了多种多样的管脚约束写法,包括但不限于UCF文件、XDC文件、TCL脚本等。

每种写法都有其适用的场景和特点,正确地选择和使用这些写法能够极大地提高工程的灵活性和可维护性。

1. UCF文件最早的Vivado版本使用UCF(User Constraints File)文件来进行管脚约束。

UCF文件是一种文本文件,其中包含了FPGA与外部连接器之间的映射关系。

虽然UCF文件已经逐渐不再被推荐使用,但我们仍然可以了解和学习它的写法特点。

2. XDC文件XDC(Xilinx Design Constraints)文件是如今Vivado中推荐使用的管脚约束写法。

与UCF文件相比,XDC文件具有更强大的功能和更灵活的语法,能够更好地满足复杂设计的需求。

在XDC文件中,我们可以指定时序约束、时钟约束、I/O标准约束等内容,使得我们能够更加细致地控制FPGA的行为。

3. TCL脚本除了UCF和XDC文件外,TCL脚本也是一种常用的管脚约束写法。

TCL脚本是一种强大的脚本语言,我们可以在其中使用Vivado的TCL 命令来进行管脚约束的设置。

TCL脚本的灵活性和可编程性使得它成为了一种非常适用于自动化管脚约束设置的方法。

二、深入探讨1. UCF文件的写法在编写UCF文件时,我们需要使用特定的语法规则来描述FPGA引脚和外部信号的对应关系。

这包括了使用`NET`和`LOC`关键字来指定信号和引脚的连接位置,以及其他一些关键字来描述时序等约束。

vivado xdc约束的注释

vivado xdc约束的注释

vivado xdc约束的注释摘要:一、Vivado XDC 约束简介1.Vivado XDC 约束的概念2.Vivado XDC 约束的作用二、Vivado XDC 约束的注释1.注释的必要性2.注释的基本语法3.注释的实例三、Vivado XDC 约束注释的应用1.设计优化2.提高代码可读性3.协同开发四、总结1.Vivado XDC 约束注释的重要性2.展望Vivado XDC 约束注释的未来发展正文:一、Vivado XDC 约束简介Vivado 是一款由Xilinx 公司推出的FPGA 设计工具,它提供了一种名为XDC(Xilinx Design Constraints)的约束语言,用于描述FPGA 设计中时序、面积、功耗等方面的约束。

通过使用XDC 约束,设计人员可以更高效地优化FPGA 设计,提高设计质量。

二、Vivado XDC 约束的注释1.注释的必要性在编写Vivado XDC 约束时,为了更好地表达设计思路,提高代码可读性,需要在约束文件中添加注释。

注释可以帮助设计人员理解约束的意义,便于协同开发和后期维护。

2.注释的基本语法Vivado XDC 约束中的注释采用“/* */”或者“//”的形式。

例如:```/* 这是一个注释*/```或者```// 这也是一个注释```3.注释的实例下面是一个包含注释的Vivado XDC 约束示例:```/* 该约束用于设置时钟的周期*/set_property CLK_CYCLE 1000 [get_clock clk];/* 该约束用于禁止对时钟进行PLL 操作*/set_property PLL_DISABLE 1 [get_clock clk];```三、Vivado XDC 约束注释的应用1.设计优化通过在Vivado XDC 约束中添加注释,设计人员可以更好地理解约束的意义,从而优化设计方案。

例如,在上述示例中,通过注释可以知道时钟周期的设置和PLL 操作的禁止,有助于调整时序和功耗等方面的设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

让-XDC-时序约束为您效力让XDC 时序约束为您效力作者:Adam Taylor e2v 公司首席工程师aptaylor@时序和布局约束是实现设计要求的关键因素。

本文是介绍其使用方法的入门读物。

完成RTL 设计只是FPGA 设计量产准备工作中的一部分。

接下来的挑战是确保设计满足芯片内的时序和性能要求。

为此,您经常需要定义时序和布局约束。

我们了解一下在基于赛灵思图1–时钟域CLK1 和CLK2 相互之间异步。

您可通过在约束文件中声明时钟组来管理时钟路径之间的关系。

当声明时钟组时,Vivado 工具不会对组内定义的时钟之间的任何方向执行时序分析。

为了有助于生成时序约束,Vivado 工具将时钟定义为三种类型:同步、异步或不可扩展。

•同步时钟具有可预测的时序/相位关系。

通常主时钟及其衍生时钟符合这种特性,因为它们具有公共的根起源和周期。

•异步时钟之间不具备可预测的时序/相位关系。

通常不同的主时钟(及其衍生时钟)符合这种特性。

异步时钟有不同的起源。

•如果超过1,000个周期后,仍无法确定公共周期,那么两个时钟就是不可扩展的。

如果是这种情况,将使用1,000 个周期内的最差建立时间关系。

不过,无法保证这就是实际的最差情况。

使用Vivado 生成的时钟报告来确定您所处理的时钟是哪种类型。

该报告可帮助您识别异步和不可扩展时钟。

声明多周期路径能实现更合适而且要求放松的时序分析,从而让时序引擎集中处理其它更关键的路径。

识别出这些时钟后,您就可利用“set clock group”约束禁止它们之间的时序分析。

Vivado 套件使用的是赛灵思设计约束(XDC),其基于广泛使用的Tcl 约束格式的Synopsys 设计约束(SDC)。

通过XDC 约束,您可使用以下命令定义时钟组:set_clock_groups -name-logically_exclusive -physically_exclusive -asynchronous -group-name 是为组赋予的名称。

-group 选项是定义组成员(即没有时序关系的时钟)的位置。

当有多个用来驱动时钟树的时钟源可供选择,包括BUFGMUX 和BUFGCTL,应使用logically 和physically exclusive 选项。

从而,这些时钟不能同时出现在时钟树上。

所以,我们不希望Vivado 分析这些时钟之间的关系,因为它们是互斥的。

最后,–asynchronous 约束可用来定义异步时钟路径。

建立时序关系的最后一个方面是考虑时钟的非理想关系,尤其是抖动。

您需要考虑两种形式的抖动:输入抖动和系统抖动。

输入抖动出现在主时钟输入上,体现了实际跳变出现时间与理想条件下跳变出现时间之间的差异。

系统抖动源自设计中存在的噪声。

您可以使用set_input_jitter 约束来定义每个主输入时钟的抖动。

同时,使用set_system_jitter 约束为整个设计(所有时钟)设定系统抖动。

时序例外当有时序例外时,您还必须关注已定义的时钟组内发生了什么。

然而,什么是时序例外呢?一种常见的时序例外是只有每隔一个时钟周期所采样的结果。

另一种情况是将数据从慢时钟传输到更快的时钟(或相反),其中两个时钟都是同步的。

事实上,这两种时序例外一般被称为多周期路径,如图2 所示。

图2–多周期路径是一种时序例外的例子。

为这些路径声明多周期路径能实现更合适而且要求放松的时序分析,从而让时序引擎集中处理其它更关键的路径。

最后的益处是能够提高结果质量。

您可以在XDC 文件中使用以下XDC 命令声明多周期路径:set_multicycle_path path_ multiplier [-setup|-hold][-start|-end][-from ] [-to ][-through]当您声明多周期路径时,实际上是将建立或保持(或二者皆有)分析要求与path_mutiplier 相乘。

例如在上面的第一个实例中,每两个时钟周期有一次输出,因此对于建立时序而言path_multiplier 是2。

由于多周期路径既可应用到建立时间又可应用到保持时间,那么您可以选择其应用位置。

当您声明建立时间乘数时,最佳做法通常是使用下面的公式同时声明一个保持时间乘数。

保持周期= 建立乘数–1 –保持乘数这对于我们所介绍的下列简单实例意味着,保持乘数由下面这个公式确定:保持乘数= 建立乘数–1,当使用公共时钟时。

为了演示多周期路径的重要性,我创建了一个简单实例,您可在这里下载。

在XDC 文件中有一个实例包含了建立和保持这两个已被同时声明的多周期路径。

物理约束最常用的物理约束是I/O 引脚布局和与I/O 引脚有关的参数定义,例如标准驱动强度。

不过,还有其它类型的物理约束,包括布局、布线、I/O 和配置约束等。

布局约束能够定义单元的位置,而布线约束可用来定义信号的布线。

I/O 约束可用来定义I/O 位置及其参数。

最后,配置约束可用来定义配置方法。

同样,也有一些约束不属于这几组约束。

Vivado 设计套件包含三种这样的约束,它们主要用于网表中。

•DONT_TOUCH –该约束可用来阻止优化,这样当实现安全关键型或高可靠性系统时该约束会非常有用。

•MARK_DEBUG –该约束可用来保存RTL 信号,以便随后用于调试。

•CLOCK_DEDICATED_ROUTE –该约束可用来识别时钟布线。

最常用的约束与I/O 布局和I/O 的配置有关。

将I/O 放在FPGA 上,需要使用布局约束找到物理引脚,使用I/O 约束配置I/O 标准和斜率等I/O 属性。

现代化的FPGA 支持多种单端和差分I/O 标准。

这些均可通过I/O 约束来进行定义。

不过,您必须确保遵守I/O Banking 规则,这取决于最后的引脚布局。

但什么是I/O Banking 规则?将FPGA 中的用户I/O 分组为若干个Bank,每个Bank 包含多组I/O。

这些Bank 具有独立的电压源,能支持多种I/O 标准。

在Zynq®-7000 All Programmable SoC(以及其它7 系列器件)中,I/O Bank 被进一步分为高性能和大范围这两个大的组别。

这种类别划分能进一步约束性能,并要求工程师针对接口使用正确的类别。

高性能(HP) 类别针对更高的数据速率进行了精心优化。

它使用更低的工作电压,而且不支持LVCMOS 3v3 和2v5。

另一个是大范围(HR) 类别,其可处理HP 不支持的更多I/O 标准。

因此,HR 支持传统的3v3 和2v5 接口。

图3 给出了这些Bank。

图3 –赛灵思7 系列器件上的高性能(左)和大范围I/O Bank当您决定为信号使用哪种Bank 后,仍然可以更改信号驱动强度和斜率。

这些都是硬件设计团队很感兴趣的指标,因为他们要努力确保单板的信号完整性达到最优。

选择结果还会影响单板设计的时序。

为此,您可以使用信号完整性工具。

SI 工具需要IBIS 模型。

当您打开了Impelmented Design时,您可使用File->Export->Export IBIS 模型选项从Vivado 工具中提取设计的IBIS 模型。

然后,使用该文件关闭解决系统级SI 问题和最终PCB 布局的时序分析。

如果设计团队整体上对SI 性能以及系统的时序感到满意,您就会得到针对设计中I/O 的多个约束,如下所示。

set_property PACKAGE_PIN G17[get_ports {dout}] set_property IOSTAN- DARD LVCMOS33 [get_ports {dout}]set_property SLEW SLOW [get_ports {dout}]set_property DRIVE 4 [get_ ports {dout}] 对于HP I/O Bank,您还可使用数控阻抗正确做IO端接并增加系统的SI,无需使用外部端接方案。

如果没有信号驱动I/O,例如将I/O 连接到外部连接器,这时您还必须考虑I/O 的影响。

这种情况下,您可使用I/O 约束实现上拉或下拉电阻,以防止由于FPGA 输入信号悬置而导致系统问题。

当然,您也可以使用物理约束在I/O block 内放置最终的输出触发器,以改善设计的时序。

这样做能缩短clock to out的时间。

您也可以对输入信号做相同的处理,以使设计满足引脚到引脚的建立和保持时间要求。

物理约束从布局开始您可能出于多种原因想对布局进行约束,例如帮助达到时序要求,或者在设计的不同区域间实现隔离。

就此而言,有三种类型的约束很重要:•BEL –将网表单元放在slice 中的基本的逻辑元素。

•LOC –将网表的单元放在器件内的一个位置。

•PBlock –可使用物理(或“P”)block 将逻辑block 约束到FPGA 的一个区域。

因此,LOC 允许在器件内定义一个slice 或其它位置;BEL 约束可用来定义触发器在slice 中使用的更精细粒度。

当对设计的大面积区域进行分段时,PBlock 可用来将逻辑集合在一起。

PBlock 的另一个用途是在执行部分重配置时定义逻辑区域。

有些情况下,您需要将较小的逻辑功能放在一组,以确保时序达到最佳。

尽管可以用PBlock 来实现,但更常见的方法是使用相对放置的宏命令。

相对放置的宏命令(RPM)允许将DSP、触发器、LUT 和RAM 等设计元素在布局中放在一起。

与PBlock 不同,RPM 不会将这些元素的位置约束在器件的特定区域(除非您想这样做),而是在布局时将这些元素放在一起。

将设计元素放在一起能实现两个目标。

这样能改善资源效率,让您能够精细调节互联长度,以实现更好的时序性能。

要将设计元素放在一起,可使用三种类型的约束,这些约束用HDL 源文件进行定义。

•U_SET 可定义一个与层级无关的单元RPM 集。

•HU_SET 可定义有层级的单元RPM 集•RLOC给定义好的SET分配相对位置。

RLOC 约束被定义为RLOC = XmYm,其中X 和Y 与FPGA 阵列的坐标有关。

当定义RLOC 时,既可以用相对坐标也可以用绝对坐标,取决于您是否添加了RPM_GRID 属性。

添加这个属性后,该定义将成为绝对坐标而非相对的。

由于这些约束在HDL 中定义,如图4 所示,因此在将约束添加到HDL 文件之前,通常需要首先运行布局布线设计反复,以便正确定义布局。

图4 –源代码中的约束总之,理解时序和布局约束并学习如何正确使用它们,对于在赛灵思可编程逻辑设计中获得最佳结果质量至关重要。

相关文档
最新文档