Xilinx©的新一代设计套件 Vivado 中引入了全新的约束文件 XDC,在很多规则和技巧上都跟上一代产品 ISE 中支持的 UCF 大不相同,给使用者带来许多额外挑战。Xilinx 工具专家告诉你,其实用好 XDC 很容易,只需掌握几点核心技巧,并且时刻牢记:XDC 的语法其实就是 Tcl 语言。
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的基本语法可以分为时钟约束、I/O约束以及时序例外约束三大类。根据Xilinx的UltraFast设计方法学中baseline部分的建议(UG949中有详细介绍),对一个设计进行约束的先后顺序也可以依照这三类约束依次进行。本文对可以在帮助文档中查到的基本XDC语法不做详细解释,会将重点放在使用方法和技巧上。
时钟约束必须最早创建,对7系列FPGA来说,端口进来的主时钟以及GT的输出RXCLK/TXCLK都必须由用户使用create_clock自主创建。而衍生时钟则分为以下两类:
在设计的初级阶段,可以不加I/O约束,让工具专注于满足FPGA内部的时序要求。当时序要求基本满足后,再加上I/O约束跑实现。XDC中的I/O约束有以下几点需要注意:
时序例外约束包括set_max_delay/set_min_delay,set_multicycle_path,set_false_path等,这类约束除了要满足XDC的先后顺序优先级外,还受到自身优先级的限制。一个总的原则就是针对同一条路径,对约束目标描述越具体的优先级越高。不同的时序例外约束以及同一约束中不同条件的优先级如下所示:
举例来说,依次执行如下两条XDC,尽管第二条最后执行,但工具仍然认定第一条约束设定的15为clk1到clk2之间路径的max delay值。
再比如,对图示路径依次进行如下四条时序例外约束,优胜者将是第二条。但如果再加入最后一条约束,false path的优先级最高,会取代之前所有的时序例外约束。
约束最终是为了设计服务,所以要用好XDC就需要深入理解电路结构和设计需求。接下来我们就以常见FPGA设计中的时钟结构来举例,详细阐述XDC的约束技巧。
成为一个正式的工程师。它是一个艰辛的过程,需要开发人员维护和管理系统的每个比特和字节。从规范完善的开发周期到严格执行和系统检查,开发高可靠性嵌入式系统的技术有许多种。今天...
当ADC时钟输入时,都需要考虑哪些因素呢?如何做才能使ADC充分发挥芯片的性能呢?让ADI公司数字视频处理部高级工程师Ian Beavers告诉你吧! 为了充分发挥芯片的性能,应利用一个差分信号驱...
(1)数字钟实现对年、月、日、时、分、秒、星期显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带...
相信各位工程师都能够根据电路图来准确、快速的完成电路板的焊接。但是在很多实际情况中,摆在工程师面前的问题恰恰相反。通常需要根据实物描绘出产品的电路原理图,如果是小型产品...
对于高速的串行总线来说,一般情况下都是通过数据编码把时钟信息嵌入到传输的数据流里,然后在接收端通过时钟恢复把时钟信息提取出来,并用这个恢复出来的时钟对数据进行采样,因此...
本期我将讨论在测量较低时钟频率的相位噪声和相位抖动时出现的一个非常常见的问题。在所有条件相同的情况下,我们通常期望分频的低频时钟产生比高频时钟更低的相位噪声。在数量上,...
数字电路是实现一定逻辑功能的电路,称为逻辑电路,又称为开关电路。这种电路中的晶体管一般都工作在开关状态。数字电路可以由分立元件构成(如反相器、自激多谐振荡器等),但现在绝...
导读:本文针对用单片机制作电子钟或要求根据时钟启控的控制系统时,出现的校准了的电子时钟的时间竟然变快或是变慢了的情况而提出的一种解决方案。 单片机应用中,常常会遇到这种...
时钟 IC 属于 I2C 从器件,需要主控制器来配置内部 PLL 逻辑,其控制逻辑可以写入微控制器内。作为 I2C 主机,微控制器将配置写入时钟 IC 的内部易失性存储器并控制 PLL。因此,可以通过板上...
[导读]电路板尺寸和布线层数需要在设计初期确定。如果设计要求使用高密度球栅数组(BGA)组件,就必须考虑这些器件布线所需要的最少布线层数。布线层的数量以及层叠(stack-up)方式会直接影...
德州仪器(TI)AM574x Sitara处理器通过完全集成的混合处理器解决方案的最大灵活性提供高处理性能。处理器具有可编程视频处...
德州仪器(TI)TPS56339EVM评估模块旨在评估TPS56339的性能和功能。TPS56339降压转换器包括两个集成开关MOSFET,内部环路补偿和...
德州仪器(TI)TPS54A24 SWIFT降压型转换器针对小尺寸解决方案进行了优化,具有高效率并集成了高端和低端MOSFET。峰值电流模...
德州仪器(TI)THVD2450 RS-422 / RS-485收发器是70V故障保护,半双工,收发器,采用3V至5.5V单电源供电。在所有工作模式下,总线...
德州仪器(TI)bq25619单节降压电池充电器是一款高度集成的1.5A开关模式电池充电管理和系统电源路径管理器件,适用于单节...
德州仪器(TI)bq25619EVM充电器评估模块(EVM)用于评估bq25619器件。bq25619是一款3A单节电池充电器,针对低功耗便携式设计中...
德州仪器(TI)INA185电流检测放大器设计用于对成本敏感的空间受限应用。该器件是双向电流检测放大器(也称为电流分流监...

