哈尔滨网站制作招聘,网站建设费会计,营销网站制作企业,手机优化软件哪个好静态时序分析简明教程-多周期路径 一、写在前面1.1 快速导航链接 二、多周期路径2.1 多周期路径的SDC命令2.2 路径常规约束2.3 建立/保持规格2.4 位移量2.5 多时钟周期案例 三、总结 一、写在前面
一个数字芯片工程师的核心竞争力是什么#xff1f;不同的工程师可能给出不同的… 静态时序分析简明教程-多周期路径 一、写在前面1.1 快速导航链接· 二、多周期路径2.1 多周期路径的SDC命令2.2 路径常规约束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 多周期路径的SDC命令
set_multicycle_path [-setup][-hold][-rise][-fall][-start][-end][-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 rise_to_list][-fall_through fall_through_list]path_multiplier[-comment comment_string]2.2 路径常规约束
与虚假路径相似的多周期路径的约束过程中也出现了以下常规约束
[-rise],[-fall],
[-from],[-to],[-through],
[-rise_from],[-rise_to],[-rise_through],
[-fall_from],[-fall_to],[-fall_through]具体的内容可以参考静态时序分析简明教程(八)虚假路径中的有关内容进行学习
2.3 建立/保持规格
对于多周期路径的约束而言[-setup]和[-hold]的选项理解起来可能会有些复杂。 常规路径中数据假如在A处启动那么应该在B处进行捕获换言之建立时间的分析应该发生在A边沿和B边沿 而在多周期路径中通过[-setup]选项我们可以改变捕获沿需要注意的是这里改变的边沿是捕获沿位置我们可以将捕获沿右移留出更多的时钟周期但是需要注意的是假如移动了捕获沿到D后不仅仅是建立时间的检查移动到了D处保持时间的检查也同样会进行移动我们当然可以在D处同时进行建立时间检查和保持时间检查但是这存在一个问题即对于综合工具而言它会在时序路径上插入buffer类的缓冲器来满足严苛的保持时间检查增大面积和功耗。
为了解决这个问题我们可以使用[-hold]选项将保持时间的检查左移回A处或B处。
举个例子将建立沿移动三个周期至D沿保持分析自动移动至C处此时C对应的保持倍数为0B对应的保持倍数为1A对应的保持倍数为2 通过 [-hold] N 的选项N为保持倍数可以将检查边沿向左挪动 而对于[-setup] N来说该选项指定的N为将建立沿挪动到第N个周期需要注意和挪动了N个周期的区别存在1个周期的差。以上图为例D对应的N为4换言之挪动了3个周期。
2.4 位移量
2.3中我们讨论的内容是捕获沿的移动那么对于建立沿来说是否有办法也可以使其左右移动呢 答案是可以的我们可以使用[-start] [-end]的选项来移动 总结来说 -end意味着捕获沿的移动采样沿可以理解为采样时钟信号的边沿 -start意味着启动沿的移动启动沿可以理解为启动时钟信号的边沿
2.5 多时钟周期案例
让我们来举一个例子搞明白多周期路径的应用 上面的图片是一个什么样的逻辑关系呢 Cs驱动F1寄存器产生data信号同时驱动F2寄存器产生enable信号这个enable信号进入到FSM即小云朵一样的图形中经过N个周期输入给F3F3寄存器再Cd的驱动下接收到en拉高采样data 我们发现data信号不需要立即进入到F3寄存器中它可能需要N个时钟周期才能抵达因此在SDC中我们可以对其进行如下的约束 set_multicycle_path -from Cs -through F1/Q -setup N -end set_multicycle_path -from Cs -through F1/Q -to Cd -hold N-1 -end 三、总结
在DMUX或者异步复位同步释放的情境中data或复位信号并不是单拍被下一级获取而是需要经过几个时钟周期后才进行采样因此我们可以通过set_multicycle_path的SDC命令进行约束该命令不仅可以约束建立时间检查或保持时间检查也可以约束捕获沿或采样沿