让_XDC_时序约束为您效力

让_XDC_时序约束为您效力

ID:47817860

大小:213.01 KB

页数:9页

时间:2020-01-17

让_XDC_时序约束为您效力_第1页
让_XDC_时序约束为您效力_第2页
让_XDC_时序约束为您效力_第3页
让_XDC_时序约束为您效力_第4页
让_XDC_时序约束为您效力_第5页
资源描述:

《让_XDC_时序约束为您效力》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、......让XDC时序约束为您效力作者:AdamTaylore2v公司首席工程师 aptaylor@theiet.org时序和布局约束是实现设计要求的关键因素。本文是介绍其使用方法的入门读物。完成RTL设计只是FPGA设计量产准备工作中的一部分。接下来的挑战是确保设计满足芯片内的时序和性能要求。为此,您经常需要定义时序和布局约束。我们了解一下在基于赛灵思FPGA和SoC设计系统时如何创建和使用这两种约束。时序约束最基本的时序约束定义了系统时钟的工作频率。然而,更高级的约束能建立时钟路径之间的关系。工程师利用这类约束确定是否有必要对

2、路径进行分析,或者在时钟路径之间不存在有效的时序关系时忽视路径。默认情况下,赛灵思的Vivado®设计套件会分析所有关系。然而,并非设计中的所有时钟之间都有可以准确分析的时序关系。例如当时钟是异步的,就无法准确确定它们的相位,如图1所示。.专业word可编辑.......图1–时钟域CLK1和CLK2相互之间异步。您可通过在约束文件中声明时钟组来管理时钟路径之间的关系。当声明时钟组时,Vivado工具不会对组内定义的时钟之间的任何方向执行时序分析。为了有助于生成时序约束,Vivado工具将时钟定义为三种类型:同步、异步或不可扩展。•

3、同步时钟具有可预测的时序/相位关系。通常主时钟及其衍生时钟符合这种特性,因为它们具有公共的根起源和周期。•异步时钟之间不具备可预测的时序/相位关系。通常不同的主时钟(及其衍生时钟)符合这种特性。异步时钟有不同的起源。•如果超过1,000个周期后,仍无法确定公共周期,那么两个时钟就是不可扩展的。如果是这种情况,将使用1,000个周期内的最差建立时间关系。不过,无法保证这就是实际的最差情况。使用Vivado生成的时钟报告来确定您所处理的时钟是哪种类型。该报告可帮助您识别异步和不可扩展时钟。声明多周期路径能实现更合适而且要求放松的时序分析

4、,从而让时序引擎集中处理其它更关键的路径。.专业word可编辑.......识别出这些时钟后,您就可利用“setclockgroup”约束禁止它们之间的时序分析。Vivado套件使用的是赛灵思设计约束(XDC),其基于广泛使用的Tcl约束格式的Synopsys设计约束(SDC)。通过XDC约束,您可使用以下命令定义时钟组:set_clock_groups-name-logically_exclusive-physically_exclusive-asynchronous-group-name是为组赋予的名称。-group选项是定义组

5、成员(即没有时序关系的时钟)的位置。当有多个用来驱动时钟树的时钟源可供选择,包括BUFGMUX和BUFGCTL,应使用logically和physicallyexclusive选项。从而,这些时钟不能同时出现在时钟树上。所以,我们不希望Vivado分析这些时钟之间的关系,因为它们是互斥的。最后,–asynchronous约束可用来定义异步时钟路径。建立时序关系的最后一个方面是考虑时钟的非理想关系,尤其是抖动。您需要考虑两种形式的抖动:输入抖动和系统抖动。输入抖动出现在主时钟输入上,体现了实际跳变出现时间与理想条件下跳变出现时间之间的

6、差异。系统抖动源自设计中存在的噪声。您可以使用set_input_jitter约束来定义每个主输入时钟的抖动。同时,使用set_system_jitter约束为整个设计(所有时钟)设定系统抖动。时序例外当有时序例外时,您还必须关注已定义的时钟组内发生了什么。然而,什么是时序例外呢?一种常见的时序例外是只有每隔一个时钟周期所采样的结果。另一种情况是将数据从慢时钟传输到更快的时钟(或相反),其中两个时钟都是同步的。事实上,这两种时序例外一般被称为多周期路径,如图2所示。.专业word可编辑.......图2–多周期路径是一种时序例外的例

7、子。为这些路径声明多周期路径能实现更合适而且要求放松的时序分析,从而让时序引擎集中处理其它更关键的路径。最后的益处是能够提高结果质量。您可以在XDC文件中使用以下XDC命令声明多周期路径:set_multicycle_pathpath_multiplier[-setup

8、-hold][-start

9、-end][-from ][-to ][-through]当您声明多周期路径时,实际上是将建立或保持(或二者皆有)分析要求与path_mutiplier相乘。例如在上面的第一个实例中,每两个时钟周期有一次输出,因此对于建立时序而言path

10、_multiplier是2。由于多周期路径既可应用到建立时间又可应用到保持时间,那么您可以选择其应用位置。当您声明建立时间乘数时,最佳做法通常是使用下面的公式同时声明一个保持时间乘数。保持周期=建立乘数–1–保持乘数.专业word可编

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。