一、写在前面
一个数字芯片工程师的核心竞争力是什么?不同的工程师可能给出不同的答复,有些人可能提到硬件描述语言,有些人可能会提到对于特定算法和协议的理解,有些人或许会提到对于软硬件的结合划分,作者想说,这些说法,其实对也不对,硬件描述语言,翻来覆去无非是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,但数据永远不会沿着这条路径进行传递,我们也需要设置虚假路径
三、总结
虚假路径作为时序分析的一种特殊情况,经常的出现在实际电路的设计中,然而,对于另一些时序分析的特殊情况而言,我们可能需要定时路径,并且使用多个时钟周期来传递信息,在第九节中,我们会讨论多周期路径的有关内容,使用相应的命令,提供超过单周期的更大范围。