芯片ECO(一)
1、ECO flowECO通常包含timing ECO,function ECO,我们本节看看timing ECO。timing ECO通常先将PD设计加载到tempus进行timing signoff分析,通过eco_opt_design等命令fix remaining timing violations,并产生ECO脚本,在innovus中执行ECO脚本后,QRC提取寄生参数, 再次进行tempus时序分析。
2、ECO目标
- Hold timing
- Setup timing
- Design Rule (max_cap/max_tran)
- SI violations (SI Slew, SI Xtalk and SI Glitch)
- Reduces Power and Area:
- Area reduction
- Leakage power reduction
- Dynamic power reduction
- Leakage and dynamic power reduction concurrently
3、ECO方法
- cell swapping
- cell resizing
- buffer/inverter insertion and deletion
4、ECO脚本
batch mode下,tempus的ECO Timing DB文件可以通过eco_opt_design命令自动生成,脚本如下:-
<pre class="code-snippet__js" data-lang="properties">```
<span class="code-snippet_outer"><span class="code-snippet__attr">read_lib</span> <span class="code-snippet__string">$liberty</span></span>
read_lib -lef $lef
<span class="code-snippet_outer"><span class="code-snippet__attr">read_verilog</span> <span class="code-snippet__string">$netlist</span></span>
set_top_module my_top
<span class="code-snippet_outer"><span class="code-snippet__attr">source</span> <span class="code-snippet__string">viewDefinition.tcl</span></span>
read_def $def_file
<span class="code-snippet_outer"><span class="code-snippet__attr">source</span> <span class="code-snippet__string">spef.tcl</span></span>
set_distribute_host -local
<span class="code-snippet_outer"><span class="code-snippet__attr">set_multi_cpu_usage</span> <span class="code-snippet__string">-localCpu 8 -remoteHost 2 -cpuPerRemoteHost 4</span></span>
eco_opt_design -hold
在芯片规模较小时,analysis view少于8个时,我们可以自己生成ECO Timing DB,然后在single Tempus session下逐个完成timing ECO。
<pre class="code-snippet__js" data-lang="properties">```
<span class="code-snippet_outer"><span class="code-snippet__attr">read_lib</span> <span class="code-snippet__string">$liberty</span></span>
read_lib -lef $lef
<span class="code-snippet_outer"><span class="code-snippet__attr">read_verilog</span> <span class="code-snippet__string">$netlist</span></span>
set_top_module my_top
<span class="code-snippet_outer"><span class="code-snippet__attr">source</span> <span class="code-snippet__string">viewDefinition.tcl</span></span>
read_def $def_file
<span class="code-snippet_outer"><span class="code-snippet__attr">source</span> <span class="code-snippet__string">spef.tcl</span></span>
set_distribute_host -local
<span class="code-snippet_outer"><span class="code-snippet__attr">set_multi_cpu_usage</span> <span class="code-snippet__string">-localCpu 8</span></span>
#注意,下面先保存的ECO Timing DB: myEcoTimingDB
<span class="code-snippet_outer"><span class="code-snippet__attr">set_eco_opt_mode</span> <span class="code-snippet__string">-save_eco_opt_db myEcoTimingDB</span></span>
write_eco_opt_db
<span class="code-snippet_outer"><span class="code-snippet__attr">set_eco_opt_mode</span> <span class="code-snippet__string">-load_eco_opt_db myEcoTimingDB</span></span>
eco_opt_design -hold
完成timing ECO后,在tempus工作目录下会生成eco_innouvs.tcl脚本用于innovus完成增量ECO布局布线。
若innovus eco route后有较多DCR violation,可以通过ecoRoute -fixDrc来修复,不一定能100%修好,部分可能需要手动修复。
感谢阅读,别走!点赞、关注、转发后再走吧
转载:全栈芯片工程师
- 分享
- 举报
-
浏览量:4848次2022-02-01 09:00:11
-
浏览量:5033次2022-03-27 09:00:12
-
浏览量:3430次2022-03-18 09:00:10
-
浏览量:8054次2022-01-01 09:00:13
-
浏览量:2164次2022-03-08 09:00:11
-
浏览量:4588次2020-08-18 15:23:17
-
浏览量:16663次2021-12-21 09:00:13
-
2022-03-16 09:00:12
-
浏览量:1484次2020-06-10 13:46:26
-
浏览量:3071次2019-07-11 09:56:53
-
浏览量:1429次2023-01-05 13:59:16
-
浏览量:14071次2022-09-15 15:54:04
-
浏览量:2952次2023-07-11 11:25:40
-
浏览量:4548次2020-11-26 10:07:21
-
浏览量:1564次2018-04-28 19:30:48
-
浏览量:1557次2022-01-20 09:00:17
-
浏览量:4007次2021-02-24 14:20:44
-
浏览量:4497次2022-08-17 09:01:18
-
浏览量:1138次2024-01-06 10:33:06
-
浏览量:1833次2017-12-20 21:51:38
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
david
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明