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

STA中的multi_cycle 和false_path详细讨论

特殊路径:跨时钟域下的exception_path:分为多种情况优先

1、不同clk_domain ,但频率相同

create_clock -name CLKM -period 10 -waveform {0 5} [get_ports CLKM]
create_clock -name CLKP -period 10 -waveform {0 5} [get_ports CLKP]
set_multicycle_path 2 -from [get_pins UFF0/CK] -to [get_pins UFF3/D]
默认为 -setup 选项。以上约束指定多周期建立时间为 2 且多周期保持时间为 0(默认值),会有hold的违例,若要消除,则设置hold的multi_cycle:
set_multicycle_path 2 -from [get_pins UFF0/CK] -to [get_pins UFF3/D] -setup
set_multicycle_path 1 -from [get_pins UFF0/CK] -to [get_pins UFF3/D] -hold
2.从slow_clk 到fast_clk:

create_clock -name CLKM -period 20 -waveform {0 10} [get_ports CLKM]
create_clock -name CLKP -period 5 -waveform {0 2.5} [get_ports CLKP]
当数据发起触发器和捕获触发器的时钟频率不同时, STA 会首先确定一个公共基本周期( common base period)。
假设该设计的目的不是在 CLKP 的下一个有效沿上就捕获数据,而是在每第4 个捕获沿上捕获数据。该假设给触发器之间的组合逻辑路径提供了 4 个 CLKP 周期的时间,即 20ns 。
我们可以通过设置以下多周期路径约束来做到这一点:

set_multicycle_path 4 -setup -from [get_clocks CLKM] -to [get_clocks CLKP] -end
在大多数设计中,这不是理想的时序检查,应将保持时间检查一直移回到数据发起沿所在位置。因此,我们可以约束多周期保持时间为3 。
set_multicycle_path 3 -hold -from [get_clocks CLKM] -to [get_clocks CLKP] -end
-end 选项意味着我们想将终点(或捕获边沿)移回指定的周期数,即捕获时钟的周期
数。代替 -end 的另一种选项 -start 指定了要移动的发起时钟周期数, -end 选项指定了要移动的捕获时钟周期数。 -end 是多周期建立时间约束的默认值,-start 是多周期保持时间约束的默认值。
所以对于慢速到快速时钟域之间 的路径,多周期路径约束的一个好经验是使用-end 选项。使用此选项,可以根 据快速时钟的时钟周期 来调整建立时间(往前走)和保持时间检检查(往后走)。
2、fast_clk到slow_clk:
create_clock -name CLKM -period 20 -waveform {0 10} [get_ports CLKM]
create_clock -name CLKP -period 5 -waveform {0 2.5} [get_ports CLKP]

setup_4是最严格的检查,通常,设计人员可以将从快时钟域到慢时钟域的数据路径指定为多周期路径。如果想要放宽建立时间检查,比如为数据路径提供两个快时钟周期,则此多周期路径约束如下:
set_multicycle_path 2 -setup -from [get_clocks CLKP] -to [get_clocks CLKM] -start
set_multicycle_path 1 -hold -from [get_clocks CLKP] -to [get_clocks CLKM] -start
约束多周期建立时间为2 会将发起沿移动到默认发起沿之前的一个时钟沿,即在 10ns 而不是
默认的 15ns 处。多周期保持时间约束确保了在 0ns 处发起沿发起的数据,不会被 0ns 处的捕获沿捕获到。
与从慢速时钟域到快速时钟域的路径不同,在从快速时钟域到慢速时钟域的路径中,多周期路径约束的一个好经验是使用 -start选项,然后再根据快速时钟调整建立时间和保持时间检查。
注意:建立时间检查和保持时间检查的示例报告是针对同一工艺角( corner )的。通常,在最坏情况的慢速工艺角下,建立时间检查最难满足(裕量最小),而在最佳情况的快速工艺角下,保持时间检查最难满足(裕量最小)。

                        -start:表示强制移动的为start clock即launch clock;

                        -end: 表示强制移动的为end clock即capture clock。

                        ps:当start clock和end clock同频时,不用指定start/end,因为移动哪一个都一样效果。

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/jinkai0822/article/details/140369233

相关文章:

  • 从Rtos到Linux:学习的策略
  • Dify框架面试内容整理-如何评估基于Dify开发的AI应用的效果?
  • 【Vue】Vue3源码解析与实现原理
  • 基于muduo库实现高并发服务器
  • Linux文件复制命令精要指南:cp与scp详解
  • DotNetBrowser 3.2.0 版本发布啦!
  • RPC是什么
  • 线程局部存储----TLS
  • 使用AI 将文本转成视频 工具 介绍
  • 《MATLAB实战训练营:从入门到工业级应用》高阶挑战篇-《5G通信速成:MATLAB毫米波信道建模仿真指南》
  • zotero pdf中英翻译插件使用
  • 10 种最新的思维链(Chain-of-Thought, CoT)增强方法
  • 星途-(4)
  • docker 外部能访问外网,内部不行(代理问题)
  • SpringCloud GateWay网关
  • 双目视觉的核心目标
  • 串 Part 2
  • CSS知识总结
  • Git 标签管理
  • 实战设计模式之中介者模式
  • 马上评|演出服“穿过就退货”的闹剧不该一再重演
  • 澳大利亚工党可以靠“回避”胜选,但继续执政需要更多勇气
  • 共生与伴生:关于人工智能时代艺术评论的对象与主体的思考
  • 《中国医药指南》就涉宫颈癌等论文出现男性病例致歉:辞退涉事编辑
  • 抗战回望19︱《中国工程师学会四川考察团报告》:“将来重工业所在,以四川为最适宜之地点”
  • 沪幼升小网上报名明起开始,是否参与民办摇号怎么定?