当前位置: 首页 > news >正文

静态时序分析:时序弧以及其时序敏感(单调性)

相关阅读

静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm=1001.2014.3001.5482


在静态时序分析中,不管是组合逻辑单元(如与门、或门、与非门等)还是时序逻辑(D触发器等)在时序建模时都拥有多条时序弧(Timing Arc)。时序弧是用来描述信号(翻转)传播路径一种抽象。举例来说,对于组合逻辑单元,每个输入引脚(Pin)到输出引脚都有相应的时序弧;对于时序逻辑单元,有从时钟引脚到输出引脚的时序弧,也有从时钟引脚到数据引脚的建立、保持时间约束时序弧。每个时序弧都有时序敏感(Timing Sense),它描述了信号(翻转)在沿着时序弧传播过程中的翻转特性,即对应不同的输入翻转,输出是如何翻转的。时序敏感分为三类,分别是正单调性(Positive Unate)、负单调性(Negative Unate)和非单调性(Non Unate),下面详细说明这三者。

一个时序弧的正单调性指的是,当不是时序弧起点的其他输入引脚的信号值固定为某一组特定值时,时序弧起点输入引脚的正翻转只可能引起时序弧终点输出引脚的正翻转,时序弧起点输入引脚的负翻转只可能引起时序弧终点输出引脚的负翻转,“可能”指的是时序弧起点输入引脚的翻转可能并不会导致时序弧终点输出引脚翻转,但在进行时序分析时我们不考虑这种情况,因为工具总是尽可能让信号(翻转)传播下去而不是在中间中断,这也意味着时序分析的结果是悲观的、保守的。例如,一个与门的每个输入引脚到输出引脚的时序弧都是正单调性的,如图1所示。

图1 与门的正单调时序弧

在分析图1的与门中时序弧的时序敏感时,我们会固定非时序弧起点输入引脚的值为一组固定值(对于与门是1),因为只有其他输入引脚的值为1,才能使时序弧起点输入引脚的翻转传播到时序弧终点输出引脚,否则(当其他输入引脚的值存在0)输出会直接固定为0。对于与门的每一个引脚都应该这样分析,从这个例子中我们也可以看出,在根据时序弧进行时序分析时,不会考虑多个输入引脚同时翻转的情况(这很显然,因为一条时序弧中不会包含两个输入引脚,而时序路径由时序弧组成,自然也就无法分析多个输入引脚同时翻转了)。如果与门的例子明白了,那么对于或门时序弧的分析也是同理,它也是正单调性的,且会固定非时序弧起点输入引脚的值为0,原因也是为了让翻转传播。

一个时序弧的负单调性指的是,当不是时序弧起点的其他输入引脚的信号值固定为某一组特定值时,时序弧起点输入引脚的正翻转只可能引起时序弧终点输出引脚的负翻转,时序弧起点输入引脚的负翻转只可能引起时序弧终点输出引脚的正翻转。例如,与非门和或非门的每个输入引脚到输出引脚的时序弧都是负单调性的,如图2所示。

图2 或非门的负单调时序弧

就如正单调性一样, 在分析与非门的时序敏感时会固定非时序弧起点输入引脚的值为1,在分析与非门的时序敏感时会固定非时序弧起点输入引脚的值为0(如图2所示),这都是为了翻转的传播。

一个时序弧的非单调性指的是,当不是时序弧起点的其他输入引脚的信号值固定为某一组特定值时,这个时序弧可能是正单调的也可能是负单调的,这取决于特定的不是时序弧起点的其他引脚的信号取值。也许这个解释比较晦涩难懂,下面将举例说明。

一个异或门的每个输入引脚到输出引脚的时序弧都是非单调性的,如图3所示。

图3 异或门的非单调时序弧

对于两输入异或门而言,当不是时序弧起点的另一个引脚值固定为1时,该时序弧是负单调;当不是时序弧起点的另一个引脚值固定为0时,该时序弧是正单调。在对这种元器件进行分析时,常常使用状态相关的时序模型(在逻辑库中使用"When"和"SDF condition"属性,此时可以可以避免出现非单调性的时序弧),这在之后的文章中会进行解释。

我们再举最后一个非单调性的例子,一个二选一数据选择器的选择输入引脚Sel到输出的时序弧是非单调性的。假设Sel为1选择A输入,Sel为0选择B输入。当A输入引脚值固定为0,B输入引脚值固定为1时,Sel输入引脚的正翻转(从选择B输出到选择A输出)会导致输出引脚的负翻转,Sel输入引脚的负翻转(从选择A输出到选择B输出)会导致输出引脚的正翻转,即体现负单调性;当A输入引脚值固定为1,B输入引脚值固定为0时,Sel输入引脚的正翻转(从选择B输出到选择A输出)会导致输出引脚的正翻转,Sel输入引脚的负翻转(从选择A输出到选择B输出)会导致输出引脚的负翻转,即体现正单调性。对于其他A、B的取值情况,Sel输入引脚的翻转不会导致输出翻转,所以不在考虑范围内。

从上面的几个例子中可以看出,一个时序弧的单调性就是能否通过对其他输入的取值将输出逻辑函数化简为某个输入的非或某个输入本身,如果只能化简成其中一种,则拥有单调性,如果两种情况都能在某种条件下化简,则没有单调性。

例如对于与门Y=AB,将B固定为1,则可化简为Y=A,因此从A到Y的时序弧是正单调的;对于或门Y=A+B,将B固定为0,则可化简为Y=A,因此从A到Y的时序弧是正单调的;对于与非门Y=(AB)',将B固定为1,则可化简为Y=A',因此从A到Y的时序弧是负单调的;对于或非门Y=(A+B)',将B固定为0,则可化简为Y=A',因此从A到Y的时序弧是负单调的;对于异或门Y=AB'+A'B,将B固定为0,则可化简为Y=A,而将B固定为1,则可化简为Y=A',因此从A到Y的时序弧是非单调的;对于二选一数据选择器Y=ASel+BSel',将A固定为0,B固定为1,则可化简为Y=Sel',而将A固定为1,B固定为0,则可化简为Y=Sel,因此从Sel到Y的时序弧是非单调的;

综上所述,一个时序弧的时序敏感指的是输出翻转和输入翻转的关系:如果时序弧起点输入引脚的正翻转只可能引起时序弧终点输出引脚的正翻转,时序弧起点输入引脚的负翻转只可能引起时序弧终点输出引脚的负翻转,则这段时序弧是正单调的;如果时序弧起点输入引脚的正翻转只可能引起时序弧终点输出引脚的负翻转,时序弧起点输入引脚的负翻转只可能引起时序弧终点输出引脚的正翻转,则这段时序弧是负单调的;如果某些情况下,时序弧起点输入引脚的正翻转可能引起时序弧终点输出引脚的正或负翻转,时序弧起点输入引脚的负翻转可能引起时序弧终点输出引脚的负或正翻转,即可能是正单调的也可能是负单调的,则这段时序弧是非单调的,对这种时序弧时序分析时要进行分类讨论。(注意描述中的”可能”二字)

http://www.cnnetsun.cn/news/3263788.html

相关文章:

  • 独立开发者产品快速验证:用 A/B 测试和特性开关降低发布风险的工程实践
  • (8-3 )
  • (8-2-2 )
  • (6-6-2)
  • (11-4 -1 )
  • 终极解决方案:HugeJsonViewer如何轻松处理1.4GB超大JSON文件
  • 内网离线环境下自研AIGC生成文本痕迹识别方案,全流程可落地
  • 告别激活烦恼:KMS智能激活脚本如何让你的Windows和Office重获新生
  • Vegeta HTTP 负载测试工具
  • Navicat无限试用终极指南:3种强力方案解决Mac版试用期限制
  • C# WinForm俄罗斯方块项目解析:从核心逻辑到界面实现
  • LangChain Memory 架构演进全图谱(2022–2024核心迭代路径与企业级选型决策树)
  • 5分钟掌握ModTheSpire:杀戮尖塔模组加载器终极指南
  • 抖音批量下载工具:轻松保存无水印视频与音乐的终极方案
  • YaeAchievement:原神成就数据导出与UIAF格式转换终极指南
  • 167、动态分配策略中 Anchor Ratio 的重新聚类:用 K-Means 调整 YOLOv11 默认 Anchor
  • 蓝牙5.4音频开发实战:低延迟高保真方案解析
  • Spatial-Agent:大模型驱动的地理分析工作流引擎
  • 机器学习中的觉的距离和相似度
  • eBPF 与 OpenTelemetry 融合:构建分布式追踪的 eBPF 探针
  • d3d8to9:让Direct3D 8游戏在Windows 10/11上完美运行的终极解决方案
  • 汽车行业术语
  • 玄学中的系统论:从周期律到模型训练的收敛震荡
  • 程序员必读书单
  • Windows 11 LTSC 24H2 企业版一键安装微软商店:完整解决方案指南
  • Windows 11任务栏拖放功能缺失?3分钟教你如何优雅修复
  • CAF空间原型与肿瘤微环境观察:七类基质生态位的研究启发
  • Speechless:如何用这款免费Chrome插件永久保存你的微博记忆?
  • 终极指南:如何用MCA Selector轻松管理你的Minecraft世界存档
  • JavaScript 网盘文件直链获取技术方案:重构下载体验的现代实现