[静态时序分析简明教程(八)]虚假路径

news/2025/2/12 23:26:16/

静态时序分析简明教程-虚假路径

    • 一、写在前面
      • 1.1 快速导航链接·
    • 二、虚假路径
      • 2.1 set_false_path
      • 2.2 -from -to -through
      • 2.3 上升/下降沿 约束
      • 2.4 建立/保持 约束
      • 2.5 虚假路径示例
    • 三、总结

一、写在前面

一个数字芯片工程师核心竞争力是什么?不同的工程师可能给出不同的答复,有些人可能提到硬件描述语言,有些人可能会提到对于特定算法和协议的理解,有些人或许会提到对于软硬件的结合划分,作者想说,这些说法,其实对也不对,硬件描述语言,翻来覆去无非是always和assign这几个语句的反复使用,而一些基础的协议算法深究起来其实也并不复杂,于作者而言,在常规的技能以外,有两项额外的技能颇为重要,其中之一便为sdc/STA的分析能力,它的重要之处在于作为桥梁建立了前端和后端的连接,虽然对于DE工程师而言,初版交付的sdc往往不甚准确,也没有办法通过这份sdc生成一份无误的timing report,但sdc的内容体现却是完完整整的将时序约束从行为级的描述映射到了gate level这样一个真实的电路层次上面。
写此专栏,一为学习记录,二为交流分享,以犒粉丝读者。

1.1 快速导航链接·

静态时序分析简明教程(一)绪论
静态时序分析简明教程(二)基础知识:建立保持时间,违例修复,时序分析路径
静态时序分析简明教程(三)备战秋招,如何看懂一个陌生的timing report
静态时序分析简明教程(四)时钟常约束
静态时序分析简明教程(五)生成时钟
静态时序分析简明教程(六)时钟组与其他时钟特性
静态时序分析简明教程(七)端口延迟
静态时序分析简明教程(八)虚假路径
静态时序分析简明教程(九)多周期路径
静态时序分析简明教程(十)组合电路路径
静态时序分析简明教程(十一)模式分析与约束管理
静态时序分析简明教程(十二)浅议tcl语言

二、虚假路径

进入到第八章第九章,我们讨论的内容转向了另一个方面,即针对于常规时序约束外的特殊路径,我们希望时序分析工具宽松的检查或者根本不检查,针对于这些非常规的时序约束,在第八章,我们将讨论虚假路径的概念,这种路径对应工具不检查,而在第九章,我们将讨论多周期路径,这种路径对应工具使用宽松的检查标准

2.1 set_false_path

虚假路径的sdc命令为set_false_path,而它对应的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]				

2.2 -from -to -through

我们首先介绍以上三个指令,以下是一个网状的设计
在这里插入图片描述
假如我们使用set_false_path -from S1的话,意味着从S1开始的所有路径都会被设置成虚假路径,时序分析工具会加以排除
比如:S1->P1->X1->D1,或者是:S1->P1->X2->D2,这些路径合计有八条。

假如我们使用set_false_path -through P1的话,意味着所有通过P1的路径,都会被设置成虚假路径。
比如:S4->P1->X1->D1,或者是S3->P1->X2->D3等。

假如我们使用set_false_path -to D1的话,意味着所有通过D1的路径,都会被设置成虚假路径。
比如:S1->P1->X1->D1。

此外,我们还可以使用 {X1,X2} 的形式来表示通过X1,X2中任意一条的路径。

同时,-from -to只能是时序的起点和终点,但还有一种方式可以覆盖更多的电路元器件,比如:
set_false_path -from CLK1,这个语句表示所有CLK1触发的电路元件,和所有相对于CLK1约束的输入端口都会作为虚假路径被排除。

2.3 上升/下降沿 约束

2.2节中讨论的虚假路径设定不区分上升沿或下降沿,假如设计人员想要为特定的过渡过程(上升沿/下降沿)提供虚假路径的约束话,可以通过如下的形式完成

  • -rise_from :影响起始点的上升过程
  • -fall_from :影响起始点的下降过程
  • -rise_through :影响通过点的上升过程
  • -fall_through : 影响通过点的下降过程
  • -rise_to :影响终点的上升过程
  • -fall_to : 影响终点的下降过程
  • -rise : 仅影响上升过程
  • -fall :仅影响下降过程

2.4 建立/保持 约束

我们同样可以单独的约束虚假路径的建立时间或者保持时间 通过 -setup 或者 -hold 的形式加以约束。

2.5 虚假路径示例

虚假路径的设置,在真实的电路设计中并不少见,通常来说,不同频率的时钟之间,亦或是异步的复位端口,都会设置虚拟路径加以约束。此外,比如总线协议中,也常常出现虚假路径,比如下面的图片中,若协议规定从机与从机之间不能有直接的通信,虽然通过总线,存在路径连接从机12,但数据永远不会沿着这条路径进行传递,我们也需要设置虚假路径
在这里插入图片描述

三、总结

虚假路径作为时序分析的一种特殊情况,经常的出现在实际电路的设计中,然而,对于另一些时序分析的特殊情况而言,我们可能需要定时路径,并且使用多个时钟周期来传递信息,在第九节中,我们会讨论多周期路径的有关内容,使用相应的命令,提供超过单周期的更大范围。


http://www.ppmy.cn/news/1400.html

相关文章

模型效果不好?推荐你8种机器学习调参技巧

大家好,今天给大家一篇关于机器学习调参技巧的文章 超参数调优是机器学习例程中的基本步骤之一。该方法也称为超参数优化,需要搜索超参数的最佳配置以实现最佳性能。 机器学习算法需要用户定义的输入来实现准确性和通用性之间的平衡。这个过程称为超参…

python -- PyQt5(designer)中文详细教程(一)Qt的基本功能

在介绍PyQt5中文详细教程前,如有需要安装PyQt5的同学可以在此 PyQt5安装详细教程_M_Q_T的博客-CSDN博客参考安装,里面有详细的安装内容。 下一章内容python -- PyQt5(designer)中文详细教程(二)菜单和工具栏 ​​​​​​​http:…

自动化运维工具-----Ansible

一、主流自动 1.1 Puppet Puppet 是早期的 Linux 自动化运维工具,是一种 Linux、Unix、Windows 平台的集中配置管理系统,发展至今目前已经非常成熟,可以批量管理远程服务器,模块丰富,配置复杂,基于 Ruby …

Hadoop原理与技术——Linus命令行基本操作

点击链接查看文档 一、实验目的 Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作,为顺利开展后续其他实验奠定基础。 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 J…

我们为什么需要调用InitCommonControls?

很多第一次使用外壳通用控件 (Shell common controls) 的新手碰到的问题之一是:他们经常忘记调用 InitCommonControls 。 但是如果你有机会查看这个函数的反汇编代码,则你会发现:这个函数实际上不做任何事情,就像另外一个函数 Flu…

我的周刊(第068期)

我的信息周刊,记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。🎯 项目osquery[1]像操作 SQL 一样操作你的电脑&#xff0c…

人工智能轨道交通行业周刊-第25期(2022.11.28-12.4)

本期关键词:液体安检仪、智慧车站、大机作业、动车打温、实时人体姿态估计、图像压缩 1 整理涉及公众号名单 1.1 行业类 RT轨道交通中关村轨道交通产业服务平台人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟V…

[附源码]JAVA毕业设计九宫格日志网站(系统+LW)

[附源码]JAVA毕业设计九宫格日志网站(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&a…