请选择 进入手机版 | 继续访问电脑版
搜索
专业IC版图外包服务 微信:drclvs
广告位:SY02 广告业务联系QQ:3173974412
无锡芯满微电子有限公司---专业研发电机驱动芯片
IC设计论坛----ictown.com
广告位:SY05 广告业务联系QQ:3173974412
查看: 104|回复: 0

[转帖] 单元库建库流程,你了解几种?

[复制链接]

36

主题

38

帖子

203

E币

技术员

Rank: 2

积分
74
发表于 2020-3-30 09:54:33 | 显示全部楼层 |阅读模式
本文主要介绍单元库建库几个常用的flow。从大类上分,主要有三种常见的flow,分别是re-characterization,new characterization和add-on,其中re-characterization flow还可以细分多种小类。下面我们一起来看一下。

1.Re-characterization Flow

先来看re-characterization flow。Rechar flow是经常用到的flow之一,比如我们手上有之前建好的lib,或者vendor提供了部分PVT的lib,但我们的实际项目需要更多PVT的lib;再比如我们对一套库进行了部分小的优化(优化了layout,优化cell的设计),但没有做功能性的改变。当我们需要保留原来lib的结构,仅仅需要更新lib里的table(如timing,power)数值,我们一般用到的就是rechar flow。

Pure rechar flow

从参考库(seed.lib)里抽取必要的信息,如function,slews,loads,timing arcs等,因此pure rechar flow需要用户给的input最少。

Pure rechar flow需要的文件有:

-  Seed.lib – 含function信息,以及slews/loads/timing arcs等信息

-       Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)

-       Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl

import -fast -liberty seed.lib -netlist_dir netlist_dir -ext ext cells

Function recognition flow

FR flow在seed.lib没有function的时候很有用。它通过读取cell的netlist自动识别cell的function,并且自动产生instance file(.inst)。

FR flow需要的文件有:

-  Seed.lib – 不包含function信息,但有slews/loads/timing arcs等信息

-       Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)

-       Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl

举两个栗子:

-      Function由FR识别,slews/loads/whens从seed.lib抽取

import -recognize -liberty seed.lib -netlist_dir netlist_dir -ext ext

注意,这里的-recognize不能省略,否则FR功能会被-liberty关闭。

-       Function由FR识别,slews/loads/whens由用户自定义

import -recognize -liberty seed.lib -netlist_dir netlist_dir-ext ext -use_default_slews -use_default_loads -use_default_whens

使用FR flow需要注意以下几点:

-       Netlist – 必须是SPICE格式,Spectre网表目前不支持

-       Spice model – 需通过add_opc_process命令定义在configure.tcl里

-     Power rails – 除了在add_opc_supplies定义外,还需在power_meas_supplies/grounds里定义

-       Clock pin – 在import时序逻辑单元时,注意要将clock pin列在-clocks和-inputs里,否则工具可能会认错

import -recognize -netlist_dir netlist_dir -ext ext -clocks {CLK} -inputs {CLK D} -outputs {Q}

-    Model names – 如果netlist里的mos管是subcircuit方式定义的,注意,nmos/pmos_model_names参数要定义上。同样的,diode用dio_model_names定义;电容用cap_model_names定义;电阻用res_model_names定义。

Skeleton liberty-based flow

这个flow适用于需要保留seed.lib的attributes,structure,headers,comments等,不使用seed.lib里的loads/slews/whens/arcs。用户可以自行定义autorange,numsteps_slew/load,smallest_slew/load,state_partitions等。

Skeleton liberty-based flow需要的文件有:

-  Seed.lib – 只需包含你希望保留的attributes,structure,headers,comments等信息

-      Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)

-      Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl

import -fast -skeleton -liberty seed.lib -netlist_dir netlist_dir -ext ext cells


2.Add-on Flow

Add-on flow的用法跟re-characterization flow比较类似,不同的是,add-on flow仅characterize我们需要增加的数据,保留已经存在的数据。常用-match来指定需要跑的仿真。

Add-on flow需要的文件有:

-  Seed.lib – 含function信息,以及slews/loads/timing arcs等信息

-       Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)

-       Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl

常用add-on flow的几个场景:

-    增加LVF tables

-    增加CCS-Timing/CCS-Noise/CCS-Power tables

-    增加EM tables

create chp
set_log_file chp/sis.log
set_location chp
import -fast -liberty seed.lib -netlist_dir ./ -ext .spf
configure -timing -ccs_noise
characterize -match (ccs_noise_*|miller_ccs_*) $cells
model -ccs_noise -output with_ccsn $cells


3.New Characterization Flow

这个flow可以理解成从无到有,如我们手头没有任何参考lib,仅有一套cell的网表(netlist),但是我们仍要建库。

New char flow需要的文件有:

-       Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)

-      Instance文件 – 手工定义cell的function,pin的信息,以及characterization的控制信息等

-      Configure.tcl文件 – 不能自动生成,但可以使用create -legacy从安装目录下copy一个最基本的configure.tcl后,根据具体需求手工设置相关setting

create chp
set_log_file chp/sis.log
exec cp configure.tcl chp/config/configure.tcl
set_location chp
exec cp cell.inst chp/control/
configure -timing -power $cells
characterize $cells
model -timing -power $cells

常用的flow就是这几种,需要提醒的是,这些flow不是互斥的,在实际项目中,我们很少仅使用某一种flow,更多时候是综合使用多种flow来建库。
积分规则
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



版权所有:EDABOSS论坛 投诉受理:13816911948 合作热线:13816911948

备案信息:苏经营性ICP B2-20090218号 皖ICP备09697823号 电子公告服务许可文件号:皖通[2009]556号

Powered by EDABOSS X3.4 Tamplate By EDABOSS论坛  © 2001-2013 Comsenz Inc.

广告投放 微信:drclvs

快速回复 返回顶部 返回列表