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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
让 XDC 时序约束为您效力 作者:Adam Taylor e2v 公司首席工程师? aptaylor@ 时序和布局约束是实现设计要求的关键因素。本文是介绍其使用方法的入门读物。 完成 RTL 设计只是 FPGA 设计量产准备工作中的一部分。接下来的挑战是确保设计满足芯片内的时序和性能要求。为此,您经常需要定义时序和布局约束。我们了解一下在基于赛灵思 FPGA 和 SoC 设计系统时如何创建和使用这两种约束。 时序约束 最基本的时序约束定义了系统时钟的工作频率。然而,更高级的约束能建立时钟路径之间的关系。工程师利用这类约束确定是否有必要对路径进行分析,或者在时钟路径之间不存在有效的时序关系时忽视路径。 默认情况下,赛灵思的 Vivado? 设计套件会分析所有关系。然而,并非设计中的所有时钟之间都有可以准确分析的时序关系。例如当时钟是异步的,就无法准确确定它们的相位,如图 1 所示。 图 1–时钟域 CLK1 和 CLK2 相互之间异步。 您可通过在约束文件中声明时钟组来管理时钟路径之间的关系。当声明时钟组时,Vivado 工具不会对组内定义的时钟之间的任何方向执行时序分析。 为了有助于生成时序约束,Vivado 工具将时钟定义为三种类型:同步、异步或不可扩展。 ? 同步时钟具有可预测的时序/相位关系。通常主时钟及其衍生时钟符合这种特性,因为它们具有公共的根起源和周期。 ? 异步时钟之间不具备可预测的时序/相位关系。通常不同的主时钟(及其衍生时钟)符合这种特性。异步时钟有不同的起源。 ? 如果超过1,000个周期后,仍无法确定公共周期,那么两个时钟就是不可扩展的。如果是这种情况,将使用 1,000 个周期内的最差建立时间关系。不过,无法保证这就是实际的最差情况。 使用 Vivado 生成的时钟报告来确定您所处理的时钟是哪种类型。该报告可帮助您识别异步和不可扩展时钟。 声明多周期路径能实现更合适而且要求放松的时序分析,从而让时序引擎集中处理其它更关键的路径。 图 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 具有独立的电压源,能支持多种

文档评论(0)

158****9567 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档