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

上传人:回**** 文档编号:123821082 上传时间:2022-07-23 格式:DOCX 页数:10 大小:205.33KB
收藏 版权申诉 举报 下载
让-XDC-时序约束为您效力_第1页
第1页 / 共10页
让-XDC-时序约束为您效力_第2页
第2页 / 共10页
让-XDC-时序约束为您效力_第3页
第3页 / 共10页
资源描述:

《让-XDC-时序约束为您效力》由会员分享,可在线阅读,更多相关《让-XDC-时序约束为您效力(10页珍藏版)》请在装配图网上搜索。

1、让 XDC 时序约束为您效力作者:Adam Taylor e2v 公司首席工程师时序和布局约束是实现设计规定的核心因素。本文是简介其使用措施的入门读物。完毕 RTL 设计只是 FPGA 设计量产准备工作中的一部分。接下来的挑战是保证设计满足芯片内的时序和性能规定。为此,您常常需要定义时序和布局约束。我们理解一下在基于赛灵思 FPGA 和 SoC 设计系统时如何创立和使用这两种约束。时序约束最基本的时序约束定义了系统时钟的工作频率。然而,更高档的约束能建立时钟途径之间的关系。工程师运用此类约束拟定与否有必要对途径进行分析,或者在时钟途径之间不存在有效的时序关系时忽视途径。默认状况下,赛灵思的 V

2、ivado 设计套件会分析所有关系。然而,并非设计中的所有时钟之间均有可以精确分析的时序关系。例如当时钟是异步的,就无法精确拟定它们的相位,如图 1 所示。图 1时钟域 CLK1 和 CLK2 互相之间异步。您可通过在约束文献中声明时钟组来管理时钟途径之间的关系。当声明时钟组时,Vivado 工具不会对组内定义的时钟之间的任何方向执行时序分析。为了有助于生成时序约束,Vivado 工具将时钟定义为三种类型:同步、异步或不可扩展。 同步时钟具有可预测的时序/相位关系。一般主时钟及其衍生时钟符合这种特性,由于它们具有公共的根来源和周期。 异步时钟之间不具有可预测的时序/相位关系。一般不同的主时钟(

3、及其衍生时钟)符合这种特性。异步时钟有不同的来源。 如果超过1,000个周期后,仍无法拟定公共周期,那么两个时钟就是不可扩展的。如果是这种状况,将使用 1,000 个周期内的最差建立时间关系。但是,无法保证这就是实际的最差状况。使用 Vivado 生成的时钟报告来拟定您所解决的时钟是哪种类型。该报告可协助您辨认异步和不可扩展时钟。声明多周期途径能实现更合适并且规定放松的时序分析,从而让时序引擎集中解决其他更核心的途径。辨认出这些时钟后,您就可运用“set clock group”约束严禁它们之间的时序分析。Vivado 套件使用的是赛灵思设计约束 (XDC),其基于广泛使用的 Tcl 约束格式

4、的 Synopsys 设计约束 (SDC)。通过 XDC 约束,您可使用如下命令定义时钟组:set_clock_groups -name -logically_exclusive -physically_exclusive -asynchronous -group-name 是为组赋予的名称。-group 选项是定义构成员(即没有时序关系的时钟)的位置。当有多种用来驱动时钟树的时钟源可供选择,涉及 BUFGMUX 和 BUFGCTL,应使用 logically 和 physically exclusive 选项。从而,这些时钟不能同步出目前时钟树上。因此,我们不但愿 Vivado 分析这些时钟

5、之间的关系,由于它们是互斥的。最后,asynchronous 约束可用来定义异步时钟途径。建立时序关系的最后一种方面是考虑时钟的非抱负关系,特别是抖动。您需要考虑两种形式的抖动:输入抖动和系统抖动。输入抖动出目前主时钟输入上,体现了实际跳变浮现时间与抱负条件下跳变浮现时间之间的差别。系统抖动源自设计中存在的噪声。您可以使用 set_input_jitter 约束来定义每个主输入时钟的抖动。同步,使用 set_system_jitter 约束为整个设计(所有时钟)设定系统抖动。时序例外当有时序例外时,您还必须关注已定义的时钟组内发生了什么。然而,什么是时序例外呢?一种常用的时序例外是只有每隔一种

6、时钟周期所采样的成果。另一种状况是将数据从慢时钟传播到更快的时钟(或相反),其中两个时钟都是同步的。事实上,这两种时序例外一般被称为多周期途径,如图 2 所示。图 2多周期途径是一种时序例外的例子。为这些途径声明多周期途径能实现更合适并且规定放松的时序分析,从而让时序引擎集中解决其他更核心的途径。最后的益处是可以提高成果质量。您可以在 XDC 文献中使用如下 XDC 命令声明多周期途径:set_multicycle_path path_ multiplier -setup|-hold-start|-end-from -to-through当您声明多周期途径时,事实上是将建立或保持(或两者皆有)

7、分析规定与 path_mutiplier 相乘。例如在上面的第一种实例中,每两个时钟周期有一次输出,因此对于建立时序而言 path_multiplier 是 2。由于多周期途径既可应用到建立时间又可应用到保持时间,那么您可以选择其应用位置。当您声明建立时间乘数时,最佳做法一般是使用下面的公式同步声明一种保持时间乘数。保持周期 = 建立乘数 1 保持乘数这对于我们所简介的下列简朴实例意味着,保持乘数由下面这个公式拟定:保持乘数 = 建立乘数 1,当使用公共时钟时。为了演示多周期途径的重要性,我创立了一种简朴实例,您可在这里下载。在 XDC 文献中有一种实例涉及了建立和保持这两个已被同步声明的多周

8、期途径。物理约束最常用的物理约束是 I/O 引脚布局和与 I/O 引脚有关的参数定义,例如原则驱动强度。但是,尚有其他类型的物理约束,涉及布局、布线、I/O 和配备约束等。布局约束可以定义单元的位置,而布线约束可用来定义信号的布线。I/O 约束可用来定义 I/O 位置及其参数。最后,配备约束可用来定义配备措施。同样,也有某些约束不属于这几组约束。Vivado 设计套件涉及三种这样的约束,它们重要用于网表中。 DONT_TOUCH 该约束可用来制止优化,这样当实现安全核心型或高可靠性系统时该约束会非常有用。 MARK_DEBUG 该约束可用来保存 RTL信号,以便随后用于调试。 CLOCK_DE

9、DICATED_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-

10、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 后,仍然可

11、以更改信号驱动强度和斜率。这些都是硬件设计团队很感爱好的指标,由于她们要努力保证单板的信号完整性达到最优。选择成果还会影响单板设计的时序。为此,您可以使用信号完整性工具。SI 工具需要 IBIS 模型。当您打开了Impelmented Design时,您可使用 File-Export-Export IBIS 模型选项从 Vivado 工具中提取设计的 IBIS 模型。然后,使用该文献关闭解决系统级 SI 问题和最后 PCB 布局的时序分析。如果设计团队整体上对 SI 性能以及系统的时序感到满意,您就会得到针对设计中 I/O 的多种约束,如下所示。set_property PACKAGE_PIN

12、 G17 get_ports dout set_property IOSTAN- DARD LVCMOS33 get_portsdoutset_property SLEW SLOW get_ports doutset_property DRIVE 4 get_ ports dout对于 HP I/O Bank,您还可使用数控阻抗对的做IO端接并增长系统的 SI,无需使用外部端接方案。如果没有信号驱动 I/O,例如将 I/O 连接到外部连接器,这时您还必须考虑 I/O 的影响。这种状况下,您可使用 I/O 约束实现上拉或下拉电阻,以避免由于 FPGA 输入信号悬置而导致系统问题。固然,您也可以使

13、用物理约束在 I/O block 内放置最后的输出触发器,以改善设计的时序。这样做能缩短clock to out的时间。您也可以对输入信号做相似的解决,以使设计满足引脚到引脚的建立和保持时间规定。物理约束从布局开始您也许出于多种因素想对布局进行约束,例如协助达届时序规定,或者在设计的不同区域间实现隔离。就此而言,有三种类型的约束很重要: BEL 将网表单元放在 slice 中的基本的逻辑元素。 LOC 将网表的单元放在器件内的一种位置。 PBlock 可使用物理(或“P”)block 将逻辑 block 约束到 FPGA 的一种区域。因此,LOC 容许在器件内定义一种 slice 或其他位置;

14、BEL 约束可用来定义触发器在 slice 中使用的更精细粒度。当对设计的大面积区域进行分段时,PBlock 可用来将逻辑集合在一起。PBlock 的另一种用途是在执行部分重配备时定义逻辑区域。有些状况下,您需要将较小的逻辑功能放在一组,以保证时序达到最佳。尽管可以用 PBlock 来实现,但更常用的措施是使用相对放置的宏命令。相对放置的宏命令(RPM)容许将 DSP、触发器、LUT 和 RAM 等设计元素在布局中放在一起。与 PBlock 不同,RPM 不会将这些元素的位置约束在器件的特定区域(除非您想这样做),而是在布局时将这些元素放在一起。将设计元素放在一起能实现两个目的。这样能改善资源

15、效率,让您可以精细调节互联长度,以实现更好的时序性能。要将设计元素放在一起,可使用三种类型的约束,这些约束用 HDL 源文献进行定义。 U_SET 可定义一种与层级无关的单元 RPM 集。 HU_SET 可定义有层级的单元 RPM 集 RLOC给定义好的SET分派相对位置。RLOC 约束被定义为 RLOC = XmYm,其中 X 和 Y 与 FPGA 阵列的坐标有关。当定义 RLOC 时,既可以用相对坐标也可以用绝对坐标,取决于您与否添加了 RPM_GRID 属性。添加这个属性后,该定义将成为绝对坐标而非相对的。由于这些约束在 HDL 中定义,如图 4 所示,因此在将约束添加到 HDL 文献之前,一般需要一方面运营布局布线设计反复,以便对的定义布局。图 4 源代码中的约束总之,理解时序和布局约束并学习如何对的使用它们,对于在赛灵思可编程逻辑设计中获得最佳成果质量至关重要。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!