在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 15131|回复: 19

[求助] 懂ELC建库的大神们,再次求教!

[复制链接]
发表于 2012-3-6 20:17:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本来打算自己用表征以下标准单元,验证以下里流程,现在出现如下问题,无法进行下去。
elc> source step1.tcl
Database : foo is now opened
set_var EC_SPICE_SIMPLIFY = 1
set_var EC_HALF_WIDTH_HOLD_FLAG = 1
set_var EC_SIM_NAME = spectre
set_var EC_SIM_TYPE = spectre
set_var EC_SPICE_SUPPLY1_NAMES = VDD
set_var EC_SPICE_SUPPLY0_NAMES = VSS

==== Simplify Mode ====

MODEL FILE: model.m ( #size = 233187 )

Reading MODEL: NCH
Reading MODEL: PCH
Reading MODEL: NCHMIS     in SUBCKT: NCH_MIS
Reading MODEL: PCHMIS     in SUBCKT: PCH_MIS

SUBCKT FILE: model.m ( #size = 233187 )

Reading SUBCKT:NCH_MIS
Reading SUBCKTCH_MIS

SUBCKT FILE: NANDX1.scs ( #size = 631 )

Reading SUBCKT:NAND2X1
Expanding SUBCKT:NAND2X1
Writing : foo.ipdb/NAND2X1.design
Writing : foo.ipdb/NAND2X1.design/body/path
Writing : foo.ipdb/NAND2X1.design/body/instance
Writing : foo.ipdb/NAND2X1.design/body/net
Writing : foo.ipdb/NAND2X1.design/boundary/port
Writing : foo.ipdb/NCH.device
Writing : foo.ipdb/NCH.device/boundary/port
Writing : foo.ipdb/PCH.device
Writing : foo.ipdb/PCH.device/boundary/port
Reading : foo.ipdb/NAND2X1.design

==============================
      DESIGN : NAND2X1
==============================
----------------------------------
        A   B  :  Y  
----------------------------------
D0000:  R   1  :  F  : DELAY(A)
D0001:  R   0  :  1  : POWER(A)
D0002:  F   1  :  R  : DELAY(A)
D0003:  F   0  :  1  : POWER(A)
D0004:  1   R  :  F  : DELAY(B)
D0005:  0   R  :  1  : POWER(B)
D0006:  1   F  :  R  : DELAY(B)
D0007:  0   F  :  1  : POWER(B)
----------------------------------
=> 8 vectors generated
Writing : foo.ipdb/NAND2X1.design/simulate/spec
Writing : foo.ipdb/NAND2X1.design/simulate/subckt
Writing : foo.ipdb/NAND2X1.design/boundary/port
Writing : foo.ipdb/NAND2X1.design/body/type

================================
  stimulus generation  summary  
================================
Name                #MOS        #DVEC        #RVEC
----------------------------------------
NAND2X1                4        8        0       
----------------------------------------
                        8        0
Reading setup file : setup.ss
elc> db_gate

==============================
      DESIGN : NAND2X1
==============================
DESIGN ( NAND2X1 );
//        =================
//         PORT DEFINITION
//        =================
        INPUT A ( A );
        INPUT B ( B );
        OUTPUT Y ( Y );
        SUPPLY0 VSS ( VSS );
        SUPPLY1 VDD ( VDD );
//        ===========
//         INSTANCES
//        ===========
        NAND ( Y, A, B );
END_OF_DESIGN;


elc> db_close
Database : foo is closed

elc> source step2.tcl
Database : foo is now opened
set_var EC_SIM_USE_LSF = 1
set_var EC_SIM_LSF_CMD =  
set_var EC_SIM_NAME = spectre
set_var EC_SIM_TYPE = spectre
set_var EC_SPICE_SUPPLY1_NAMES = VDD
set_var EC_SPICE_SUPPLY0_NAMES = VSS
set_var EC_HALF_WIDTH_HOLD_FLAG = 1

   DESIGN        PROCESS       #ID         STATUS     IPDB
-------------+-------------+----------+--------------+-----------
[WARNING(db_spice)]No spice simulation to do, please check the cell/process list for any error
Database : foo is closed

Memory : 3.00M
Time   : 0.54 (user), 0.02 (sys), 0.56 (cpu), 1772.71 (real)
  貌似意思是没有仿真可以可以做,可是确实已经生成了vector,这是foo.ipdb中的spec文件
DESIGN(NAND2X1) + REFERENCE(NCH,PCH);
PORT(A) + DIRECTION(INPUT) + NET_NUMBER(0);
PORT(B) + DIRECTION(INPUT) + NET_NUMBER(1);
PORT(Y) + DIRECTION(OUTPUT) + LOGIC(~(A&B)) + FALL(-NAN,-NAN) + NET_NUMBER(2);
PORT(VDD) + DIRECTION(INPUT) + SUPPLY1 + BULK + NET_NUMBER(3);
PORT(VSS) + DIRECTION(INPUT) + SUPPLY0 + BULK + NET_NUMBER(4);
ARC(A:Y) + NEGATIVE_UNATE + ONE_STAGE
+ TRAN(10:01)
+ TRAN(01:10)
+ USE(D0000,D0002);
ARC(B:Y) + NEGATIVE_UNATE + ONE_STAGE
+ TRAN(10:01)
+ TRAN(01:10)
+ USE(D0004,D0006);
VECTOR(R1D10) + ID(D0000) + MID(MD0000) + DELAY(A) + TARGET(Y);
VECTOR(R0H10) + ID(D0001) + MID(MP0001) + POWER(A);
VECTOR(F1U10) + ID(D0002) + MID(MD0000) + DELAY(A) + TARGET(Y);
VECTOR(F0H10) + ID(D0003) + MID(MP0001) + POWER(A);
VECTOR(1RD10) + ID(D0004) + MID(MD0004) + DELAY(B) + TARGET(Y);
VECTOR(0RH10) + ID(D0005) + MID(MP0005) + POWER(B);
VECTOR(1FU10) + ID(D0006) + MID(MD0004) + DELAY(B) + TARGET(Y);
VECTOR(0FH10) + ID(D0007) + MID(MP0005) + POWER(B);
END_OF_DESIGN;
    是软件破解失败的问题,还是我做错了哪一步?求教了
 楼主| 发表于 2012-3-6 20:39:03 | 显示全部楼层
ETS版本10.1 eetop上下载的。
 楼主| 发表于 2012-3-9 19:03:47 | 显示全部楼层
运行过啦
发表于 2012-4-27 16:18:33 | 显示全部楼层
请问楼问题解决没有,我也是遇到和你相同的问题,可否将你的elc config 发给我看看,可以的话发到我的邮箱msr2573@163.com ,想进一步讨论一下
发表于 2012-4-30 05:10:10 | 显示全部楼层
你的步骤不是很标准,所有的环境向量放到elccfg文件里,命令里面只执行操作,ELC会自动到elccfg里面找那些环境向量。
另外麻烦检查下你的model文件是否齐全。
发表于 2012-8-20 23:43:52 | 显示全部楼层
检查你的LD_LABRARY_PATH指向的路径包含libsh.so,还是libeh.so样的文件
 楼主| 发表于 2012-9-27 21:04:28 | 显示全部楼层
之前问题解决了,忙着后面的事情,没有分享以下。把elccfg里面的PROCESS="typical"去掉就可以了,虽然不知道是为什么,但也不管了,现在除了不能并行仿真,以及不能给以后的库添加新的cell以外,基本什么大碍了。
下面是elccfg文件内容
SETUP="setup.ss";
#PROCESS=”typical”;
SUBCKT="sample.scs";
DESIGNS="DRIVER DFFRXL";
MODEL="model.m";

不过现在验证功耗时发现时序元件的功耗表很不精确,不知道有人分析过没的,一起讨论。
 楼主| 发表于 2012-9-27 21:07:11 | 显示全部楼层
另外,elc建库的流程在《数字VLSI芯片设计- erik brunvand 著》这本书中写的很详细了,我也主要是参考他的脚本。
 楼主| 发表于 2012-9-27 21:09:33 | 显示全部楼层
elc建时序元件功耗表的问题:
最近严重怀疑elc的对非线性功耗表建模的精准程度,主要问题出现在时序元件。由于cdnshelp中没有给出elc详细的功耗计算方式,所以只能查看 synopsys的liraray compiler 和 power compiler的帮助文档。liberty格式中对触发器定义的功耗类型虽然elc能产生对应的表,但其数值表示怀疑。比如说ck端的internal power 在library compiler中定义的是输出Q不变的情况下,由时钟产生的cell内部功耗,在ic5141中跑瞬态仿真时,就是VDD电流在输出Q不变时断内的电流波峰取积分乘电压得到。这个值与表中的值差别甚大。
发表于 2012-12-3 16:17:35 | 显示全部楼层
问一下,跑elc时需要的analog extracted这一项是如何得来的?用calibre可以提吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 04:37 , Processed in 0.039789 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表