求助,group_path的用法
group_path的用法;
group_path -name reg2reg -from [all_registers -clock_pins] -to [all_registers -data_pins]
group_path -name in2reg-from [all_inputs ] -to [all_registers -data_pins]
group_path -name reg2out -from [all_registers -clock_pins] -to [all_outputs]
group_path -name in2out-from [all_inputs] -to [all_outputs]
上述的脚本可以将时序分析的四个路径列些出来,然后通过report_timing的方式报告出各个group_path的时序情况;
问题:
dc在做时序优化的时候,应该是在compile命令键入时就开始的。如果,group_path在compile之前使用,那么dc可否对不同group_path的时序进行更好的优化,也就是使得时序收敛的更好?
up!
可以多跑几遍dc
多跑几篇怎么解决问题啊?每次都是一样的结果
我想应该是在compile之前group_path下
使用dc_shell -topo 读入后端floorplan信息,进行优化。
应该在compile之前。
问:你的dc结果有很多违例时序吗?
没有任何时序为例,但是希望能够有更好的时序优化结果,当然面积也要考虑进去。
至于你说的dc_shell -topo的方式,我重来没用用过,所以不太了解,
结果呢,能分享一下吗
小编,最后的这个问题怎么解决的?分享啊
给你的group path加上权重就可以了-weight
加Group又加-weight影响的是TNS Cost,适用于违例有时修得干净有时修不干净的情况
只加Group不加-weight影响的是Max Delay Cost,适用于这个Group中的最差路径较明显的情况
您好,请问,一般都什么场合您会考虑用设置group_path来优化timing?我也想用这个方法,可是不知道什么情况下应该用,期待您的回复
小编,分group可以放在sdc里,这样在compile之前肯定要source sdc从而预先设置好group。我不太理解你提的问题,难道你是没有分path_group直接综合?如果这样,若是工具把主要时间和资源都用来优化一条feedthrough,那么真正的reg2reg的critical path就得不到优化了。所以你说的在compile之前分组是必须的啊。
当你有把握给设计中的关键路径分类时,就可以用。
当你有把握给设计中的关键路径分类时,就可以用。
有点没懂,您能稍微解释一下吗?非常感谢
比如,默认下S家是用Endpoint Clock来分Path Group,C家是用reg2reg in2reg reg2out in2out来分Path Group,都是最简单的区分方法.......
好的,懂您的意思,您说的是工具默认的分group,其实我想知道的是当timing violation后,什么样的情况会考虑用单独把某些path拿出来设置group来优化timing,这些path应该具有什么特点吗?
只要是相对独立的路径,都适合作为独立的Path Group。目的可以是优化除WNS以外的“次关键”路径;或是防止非关键路径干扰优化引擎。S家工具Group出来是为了调整三个Cost(WNS Cost、Max Delay Cost、TNS Cost),C家工具Group出来是为了能被WNS Optimizer击中。
只要是相对独立的路径,都适合作为独立的Path Group。目的可以是优化除WNS以外的“次关键”路径;或是防止非关键路径干扰优化引擎。S家工具Group出来是为了调整三个Cost(WNS Cost、Max Delay Cost、TNS Cost),C家工具Group出来是为了能被WNS Optimizer击中。
通俗的讲,其实group是控制优化对象的,来实现TNS的降低的。 工具默认只优化每个组里最差的那条path,只要没有优化成violation为0,就一直只优化那条path,不考虑其他path。 分组是为了多几个组,也为了把有些io 到内部的path从真正的reg2reg path里摘出来,优化的对象依旧是每个组里最差的那条。
如果想要优化一个组里的一个范围内的violation而不只是一条,就加-critical。
实在不知道怎么分组,先跑compile 一次,report timing,看violation是不是集中在哪个path group,然后再把这个group摘出来,再跑一次compile。
您好,很感谢您的耐心回复,我有个疑问:
Max Delay Cost是怎么被影响的,因为之前我只关注了对TNS 和WNS的影响,考虑了好久,想不通。
以下是您之前的回答:
加Group又加-weight影响的是TNS Cost,适用于违例有时修得干净有时修不干净的情况
只加Group不加-weight影响的是Max Delay Cost,适用于这个Group中的最差路径较明显的情况
Max Delay Cost是每个Path Group中最差的那一条负Slack路径的Slack绝对值总和,你可以通过修改compile_log_format把这个Cost打印出来。
谈TNS Cost时,一定要留意到这是Endpoint TNS,也就是每个终点在一个Path Group中只计算一次。
举个例子,如全局只有一个Path Group,RegA到RegC的Slack是-1,RegB到RegC的Slack是-0.8,那么此时三个Cost都是-1。
你可以自己写几个小例子来试一下。
学习了,但是还是不知道-weight选项的具体含义?
前来围观学习~!