A process Design Kit (PDK)
通常由 IC 芯片开发 制造商(代工厂或 IDM),描述process信息 EDA工具使用它来设计所有类型的电路。
PDK 包含内容schematic symbols,SPICE models,rule decks ,parameterized cells(pcell),scripe(callback,updateinst…)
Interoperable Process Design Kit (iPDK),iPDK针对特定的 EDA 工具,而不是针对一组业界常用的 EDA 工具。
iPDK结构:
1 The Technology File,Display Resource File, Mapping File
2 Creating Front-End Components
Create a Library,Create Symbols for schematic
Defining siminfo
Defining iCDF
Defining property bags
Callback scripts
Simulation view
3 creating Back-end Components
Creating Pycells
Creating ivpcel views
4 drc lvs device map…..
5 ipdk verification and packaging
Technology File
TF 是用来添加technology 信息到library里,tf一般都会包含以下信息,
Layer information,design rule definitions, 定义在display resource 文件的display packets
Display Resource File
Display resource header
Colors ,line styles ,display Packets,text packets 等等
部分内容如图示
Mapping File
主要用来map OA layer purpose(LPPS)到GDSII的layer numbers 和data 类型,通常在GDSII的数据导入时非常重要。
给pcell 添加callback function
callback是在更改 iCDF 参数时执行的过程。这callback过程用于验证用户输入,检查参数范围是否符合约束,或根据输入触发一些其他参数的改变。
一个简单diode的callback function实例:
proc diode_cbk {} {
set inst [db::getCurrentRef]
set param [db::getCurrentParam]
set len [iPDK_engToSci [iPDK_getParamValue l $inst]]
set wid [iPDK_engToSci [iPDK_getParamValue w $inst]]
set minWidth 0.1e-6
set maxWidth 100e-6
set minLength 0.1e-6
set maxLength 100e-6
set peri [expr 2*($len + $wid)]
set peri [iPDK_sciToEng $peri]
iPDK_setParamValue pj $peri $inst 0
if {$wid < $minWidth} {
puts "width value $wid is less than the recommended Min Width $minWidth"
set widmin [iPDK_sciToEng $minWidth]
iPDK_setParamValue w $widmin $inst 0
}
if {$wid > $maxWidth} {
puts "width value $wid is greater than the recommended Max Width $maxWidth"
set widmax [iPDK_sciToEng $maxWidth]
iPDK_setParamValue w $widmax $inst 0
}
if {$len < $minLength} {
puts "Length value $len is less than the recommended Min Length $minLength"
set lenmin [iPDK_sciToEng $minLength]
iPDK_setParamValue l $lenmin $inst 0
}
if {$len > $maxLength} {
puts "Length value $len is greater than the recommended Max Length $maxLength"
set lenmax [iPDK_sciToEng $maxLength]
iPDK_setParamValue l $lenmax $inst 0
}
}
如何把上述callback添加到cell 中,CC中打开Parameter Definition Editor tool,选择到对应的cell。
在Parameters中选择相应添加callback的parameter,在对应callback 栏填入callback的procedure name。保存完成。