发卡平台网站建设,建站模板招募设计师,网站建设合同要交印花税吗,网站运营与管理论文一、概述 到目前为止#xff0c;我们已经看到了如何约束时钟和端口来指定设计中的时序要求#xff0c;我们可以通过这些基础的约束命令来进行时序约束#xff0c;但是时序分析工具默认的时序检查方式可能和我们实际工程实现的情况不同#xff0c;通常来说是约束过紧#x…一、概述 到目前为止我们已经看到了如何约束时钟和端口来指定设计中的时序要求我们可以通过这些基础的约束命令来进行时序约束但是时序分析工具默认的时序检查方式可能和我们实际工程实现的情况不同通常来说是约束过紧可能导致时序失败。此时设计者就需要额外增加一下啊约束命令用于调整既有的时序检查方式以保证达到我们的设计预期。设计者额外增加的这部分约束我们称之为时序异常也有地方称之为时序例外约束。 时序异常一般可以分成一下三种情况 虚假路径——它们是不需要满足任何时序要求的路径。实现工具在收约束时忽略此种路径中的时序多周期路径——它们是需要多个周期来传递数据的路径。实现工具放宽此种路径上的时序最小延迟和最大延迟——它们是具有特殊要求的最大延迟和最小延迟的路径并且是在设计人员想要覆盖推测的建立和保持要求时指定的。 本文中我们重点关注虚拟路径。
二、什么是虚拟路径 我们刚刚提到过虚拟路径是不需要满足任何时序要求的路径所谓的虚拟路径False路径之所以称为“虚拟”并不是这条路径不存在而是表示这条路径是设计中的非功能路径或没有任何时序要求的路径。显然对于这样的路径我们需要通过时序异常使得实现工具忽视这样路径的存在放弃对于它们进行时序分析和时序约束的努力。 常见的虚拟路径包括以下几种 已经做过同步处理的跨时钟域路径上电后只做一次的初始化写入的寄存器路径复位或测试逻辑的路径某些实际并不存在的时序路径 三、set_false_path 虚拟路径使用set_false_path命令在SDC中建模 该命令的BNF是
set_false_path [-setup][-hold][-rise][-fall][-from from_list][-to to_list][-through through_list][-rise_from rise_from_list][-rise_to rise_to_list][-rise_through rise_through_list][-fall_from fall_from_list][-fall_to fall_to_list][-fall_through fall_through_list][-comment comment_string]在所有开关之间该命令指定了以下内容
虚拟的确切路径作为虚拟路径中的过渡过程是否建立或保持虚拟路径关系为解释虚拟路径的上下文/注释
四、路径规格 使用-from-through-to选项可以指定要声明为虚拟路径的路径。该规格可以包含一个或多个上述选项。-from 和 -to 最多只能为每个命令指定一次。但是-through 可以在同一个命令中多次指定。 我们举一个简单的例子
set_false_path -from S1 -through X1 -to D1 这样的一行约束就表示从S1到D1经过X1的所有路径都被设置为了虚拟路径。 有时一个选项的任何参数都是一个具有多个元器件的列表而不是单个元器件。在这种情况下它相当于具有多个命令每个命令只有一个元器件。如:
set_false_path -from S1 -through{X1,X2};
//等价于
set_false_path -from S1 -through X1;
set_false_path -from S2 -through X2; 上述的例子都表示从S1开始并通过X1或者X2中任何一条的路径。 选项-from和-to只能分别是时序的起始点和终点。另外除了电路元器件外这些选项也可以指定时钟。当指定时钟名称时它表示由时钟触发的所有时序电路元器件以及所有输入输出端口相当于指定时钟的输入/输出延迟是由特定的时钟来指定的。事实上在 -from 和 -to 中指定时钟可以提供一种简单的方式来覆盖更多的时序电路元器件。因此set_false_path -from CLK1表示所有的路径都源自于1所有由CLK1触发的时序电路元件2相对于CLK1约束的所有输入端口。 通常应该对指定为起始点或终点的元器件有一些建议。起始点应该是一个时钟、主要的输入端口或双向端口、一个时序电路单元、一个时序电路单元的时钟引脚、一个指定了输入延迟的引脚。同样终点应该是一个时钟、主要的输出端口或双向端口、一个时序电路单元、一个时序电路单元的数据引脚、一个指定了输出延迟的引脚。一些工具也可能允许某些其他点被指定为起始点或终点但是使用这些点将最小化实现流程中这种虚假路径的重用因为这种例外可能不被所有工具普遍接受。
五、过渡过程规格 有时候设计人员可能想要为特定的过渡过程提供虚假的路径而不是沿着路径提供所有的过渡过程。 这可以通过以下的方式实现
-rise_from 仅影响起始点的上升过渡过程-fall_from 仅影响指定起始点的下降过渡过程-rise_through 仅影响指定通过点的上升过渡过程-fall_through 仅影响指定通过点的下降过渡过程-rise_to 仅影响指定终点的上升过渡过程-fall_to 仅影响指定终点的下降过渡过程-rise 仅影响上升路径-fall 仅影响下降路径
六、建立/保持规格 在某种情况下设计人员可能只想为建立或者保持路径设置这个约束、这是使用 -setup 和 -hold 选项来实现的。
七、虚拟路径的问题 在指定虚拟路径时设计人员需要注意以下事项
很多工具允许用户在虚拟路径的规格中使用通配符。这可能是是非常危险的并且可能导致实际路径不能定时从而可能引起硅片上的时序故障。许多时候虚拟路径是在起始点和终点之间设置的它们之间没有物理连接。虽然它们是无害的但在实现工具中它们会导致更长的和不必要的运行时间。在指定-through的时候设计人员必须确保through不是冗余的。当指定-through时将不会优化该列表上的设计对象即使它是一个很好的候选者这可能导致实现未达到最佳标准。很多时候会在同一路径或者路径线路上设置不同种类的异常虚拟路径和多周期路径。这种重叠导致实现工具可能做出不一致的假设。