PDK information (一)

文摘   2023-02-05 10:37   韩国  

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。保存完成。


IC模拟版图设计
IC 设计后端知识分享 EDA使用心得 Linux 环境 脚本分享 Perc开发 Custom compiler