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

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

一、写在前面


一个数字芯片工程师的核心竞争力是什么?不同的工程师可能给出不同的答复,有些人可能提到硬件描述语言,有些人可能会提到对于特定算法和协议的理解,有些人或许会提到对于软硬件的结合划分,作者想说,这些说法,其实对也不对,硬件描述语言,翻来覆去无非是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

我们首先介绍以上三个指令,以下是一个网状的设计

image.png


假如我们使用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,但数据永远不会沿着这条路径进行传递,我们也需要设置虚假路径

image.png


三、总结


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

相关文章
|
1月前
|
机器学习/深度学习 网络架构 计算机视觉
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
167 3
|
15天前
|
传感器 存储 编解码
数码相机背后的像素秘密:静态与动态的真相
这篇文章探讨了数码摄影中“动态像素”和“静态像素”的概念。像素是图像质量的关键因素,而CCD或CMOS传感器负责将光信号转化为数字图像。RGB差值补偿算法用于恢复色彩,但牺牲了部分分辨率。所谓“动态像素”更多是营销术语,而非技术标准,它反映了拍照和录像时因硬件限制和处理需求不同而产生的差异。随着技术进步,硬件编码器的引入已显著提升视频处理能力,使得高清摄影和视频录制变得更加普遍。理解这些原理有助于消费者做出更明智的设备选择。
|
1月前
|
存储 Java C#
静态字段科普:从原理到代码实践
静态字段科普:从原理到代码实践
21 0
|
安全 数据安全/隐私保护 C++
【免杀】C++静态免杀学习
【免杀】C++静态免杀学习
363 0
|
Linux
Linux驱动开发 数据的传输和辅助信息的作用
Linux驱动开发 数据的传输和辅助信息的作用
136 0
|
数据采集 XML 搜索推荐
网站符合蜘蛛爬行的标准是什么?底层原理是什么?
网站符合蜘蛛爬行的标准是什么?底层原理是什么?
|
算法 前端开发 芯片
[静态时序分析简明教程(二)] 基础知识:建立时间、保持时间、违例修复及时序分析路径
[静态时序分析简明教程(二)] 基础知识:建立时间、保持时间、违例修复及时序分析路径
[静态时序分析简明教程(二)] 基础知识:建立时间、保持时间、违例修复及时序分析路径
|
算法 前端开发 芯片
静态时序分析简明教程(七)]端口延迟
静态时序分析简明教程(七)]端口延迟
静态时序分析简明教程(七)]端口延迟
|
算法 前端开发 芯片
[静态时序分析简明教程(一)] 绪论
[静态时序分析简明教程(一)] 绪论
[静态时序分析简明教程(一)] 绪论
|
算法 前端开发 芯片
静态时序分析简明教程(五)]生成时钟的sdc约束方法
静态时序分析简明教程(五)]生成时钟的sdc约束方法
静态时序分析简明教程(五)]生成时钟的sdc约束方法