1、什么是HCElls?
-
HCELL = Hierarchically Corresponding Cell
-
使用-hcell option可以显著提高Calibre性能,缩短LVS运行时间。
layout 太过于复杂,而电脑配置如果有限,calibre LVS运行时经常因为内存不足而中断,无法继续。此时需要用到hcells,他可以简化schematic和layout的层次,有效的提高calibre的性能,同时也会缩短LVS所需要的时间。hcell英文意思是hierarchically corresponding cell,层次化对应的单元。
通常在layout(版图)和source中相对应的hcell列表应该是比较简单的,且这些cell在层次化的结构中出现了很多次。一个详细的hcell列表是没用必要的,这是因为在Calibre LVS时层次化的单元会被选择性的打散以提高性能,而密集的单元会影响calibre的性能。在hcell列表中的cells则不会被打平,指定某些像通孔(via)或其它一些小的单元也会阻碍calibre LVS的性能。
在calibre LVS hcells中,layout(版图) cell name和相对应的source cell name可能是一样的,也可能不同。可以指定一对多的关系,即一个layout(版图) cell name对应多个不同的source cell name。当然也可以指定多对一的关系,即一个source cell name对应多个layout(版图) cell name。但是多对多的关系是不被允许的。
2、文件格式
下面举个例子说明一下 hcells 文件的格式。
一对多:同一layout cell name 对应不同的source cell name
//layout source
ABC DEF
ABC GHI
ABC JKL
多对一的例子:不同的layout cell name 对应不同的 source cell name
//layout source
UVW XYZ
RST XYZ
OPQ XYZ
多对多不允许:
//layout source
UVW XYZ
RST XYZ
OPQ XYZ
OPQ GHI
这种会提示:
error. OPQ mapped previously to XYZ
which is mapped to three different names.
3、calibre图形界面用法
calibre Interactive –LVS 界面,点左面的 Input,选择 H-cells (netlist的右边)选项卡,在Use H-Cells file前面打钩,如果有已经写好的hcell.txt文件,就点后面的 …选择事先写好的上hcell文件;如果没有的画,在那里输入你想要的hcell文件的名字,如hcell.txt,点后面的view,会提示你文件不存在是否创建,点是,就可以打开一个编辑界面,进行hcells的编写。Calibre LVS其它的设置和使用和平时一样.
4、calibre命令行用法
calibre -lvs -hier 64 -tuobo 16 -nowait -hcell ./design.hcells lvs.tHCELL文件格式**一对多:**同一layout cell name对应不同的source cell name
5、数字EDA Tool cmd
- Innovus cmd:
set file0 [open ../dataout/[dbgDesignName].hcells w]
foreach cell [dbGet top.insts.cell.name -u] {
puts $file0 "$cell $cell"
}
close $file0
- ICC2/FC cmd:
set file0 [open ../dataout/$DesignName.hcells w]
foreach cell [lsort -u [get_attribute [get_flat_cells -all] ref_name]] {
puts $file0 "$cell #cell"
}
close $file0
6、参考文献
Fusion Compiler/ IC Compiler II User Guide
CSDN/微信公众号读芯树