数字IC设计随笔之八(初识数字后端库)
概述
在使用ICC做后端流程中,需要的文件有:
- Verilog门级网表和时序约束文件
门级网表和时序约束文件可以由DC或Genus产生,其与工艺不相关。
- 技术文件(.tf)
- 寄生参数库(tlupus/itf)
- 逻辑库(.db)
- Milkyway参考库
上述库文件与所采用的工艺制程密切相关,fab厂直接提供,觉得理解其意义还是很关键的,在后端流程中,知其然,知其所以然。
技术文件(Technology File)
技术文件中的内容不够主要包含下面几个方面,具体细节的定义与fab厂相关,理解其内容,有助于理解后端的布线。
- 单位和值定义
Technology
{
name = “STD1V8”
unitTimeName = “ns”
timePrecision = 1000
unitLengthName =“micron”
lengthPrecision = 1000
gridResolution = 1
}
- 颜色定义,定义多种颜色
Color color_value
{
name =“color_value”
rgbDefined = 1
redIntensity = 255
rgreenIntensity = 255
blueIntensity = 100
}
- 最小单元尺寸
Tile “unit”
{
width = x
height = y
}
该参数定义在布局的时候,一般cell的高度为y,特殊的cell高度为2y,而cell的宽度为x的整数倍。
- 层定义
Layer “layer_name”
{
layerNumber = 10
maskName = “METAL2”
/颜色等显示属性/
/规则等物理属性/
}
LayerDateType “name”
{
属性定义
}
- 定义通孔
ContactCode ”CONT“
{
通孔属性,比如该孔连接的上层,下层,及几何尺寸等参数
}
对于VIA的定义与CONT类似,由金属层确定.
- 设计规则
DesignRule
{
层属性定义,规则属性定义
}
工艺厂提供了技术文件,但是ICC也可以通过Milkyway参考库创建技术文件,通过下面命令产生。
write_mw_lib_files -technology -output techfile.tf
寄生参数文件(itf/tluplus)
itf表示Interconnect Technology File , 其描述金属和介电层的厚度和物理属性
CONDUCTOR name { THICKNESS=value WMIN=value SMIN=value RPSQ = value}
WMIN:金属的最小宽度
SMIN:两金属间最小间隔
RPSQ:方块电阻
DIELECTRIC name { THICKNESS=value ER=value MEASURED_FROM = value SW_T=value
TW_T=value }
ER:介电常数
VIA name { FROM=value TO=value RHO=value | RPV=value AREA=value }
上述内容为itf中的主要内容,其还可以包含其它一些内容,这里不做详述,在ICC中是使用tluplus格式,可以由StarRC将itf文件转换成tluplus文件.
grdgenxo -itf2TLUPlus -i <itf_file> -o <tluplus_file>
逻辑库(db)
db格式文件为Synopsys系列工具使用的库文件,其是lib库对应的二进制格式,lib格式库为ASCII文本,可以由普通文本编辑器阅读,通过library compiler可将lib文件转换为db格式。
read_lib lib_name.lib
write_lib -f db worst -output db_name.db
lib库俗称K库,诸如Stand Cell,Memory,IO,IP等,将其timing,noise,power等信息的提取,作为后端布局布线,验证,signoff的基础,感兴趣的朋友们可以拿自己设计IP尝试提取特征库,业界C家的Liberate,以及S家的SiliconSmart。
Milkyway参考库
Milkyway库为ICC在后端流程中使用的库格式,可以由LEF或GDS文件产生,对于Stand Cell,IP等产生Milkyway的方法网上已有很多描述,这里不再累赘。
然而Milkyway库中的几种示图还是需要有所了解,当打开库文件夹时,一般显示如下:
下面说明来自S官方:
简单来讲:CEL View:包含完整的版图信息,FRAME View:为布局布线的抽象化示图,仅包含单元尺寸、端口位置名称,金属走线等信息,其它示图在标准单元库和IP中不常见。