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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 12231|回复: 28

[求助] 使用ncx生成标准单元lib的问题

[复制链接]
发表于 2011-4-15 12:14:09 | 显示全部楼层 |阅读模式

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

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

x
最近一直在研究如何做lib,有个问题很困扰,有人用过ncx这个工具吗,
在启动ncx的时候,我设置的主要控制语句如下,
##template options
set input_template_dir config
set template_suffix .opt
set precision 5
set farm_type noFarm
##timing model options
set timing true
set ccs_timing false
set compact_timing false
set nldm true
##power model
set    ccs_power           false (不想让他生成ccs模型)
set    compact_power       false
set    power     true
set    nlpm                true
set    variation_leakage   true
我不想让他生成ccs power的东西,可是我即使这样设置了,工具竟然还是认为我用了ccs power,log文件有以下信息:
Timing model acquisition options:
    ccs_timing          : false (user)
    compact_timing      : false
    nldm                : true (user)
    capacitance         : true
    delay               : true
    constraint          : true
    shpr_constraint     : false
    design_rules        : false
    max_capacitance     : true
    max_transition      : true
    variation           : false
    mismatch            : false

Power model acquisition options:
    ccs_power           : true (user)( 我设置的明明是false,工具竟然认为是我设置了true)
    compact_power       : false (user)
    nlpm                : true (user)
    variation_leakage   : true (user)
为什么工具会把false认为是true呢,我很不解啊,这样导致我做出来的lib是下面的样子:
cell ("INVX1_R") {
  cell_footprint : "inv";
  area : 3.394800;
  cell_leakage_power : 6.275513e+01;
  leakage_power () {
   when : "A";
   value : "48.82281";
  }
  leakage_power () {
   when : "!A";
   value : "62.75513";
  }
  pin (A) {
   direction : "input";
   fall_capacitance : 0.002320;
   capacitance : 0.002400;
   rise_capacitance : 0.002490;
   related_power_pin : "VDD";
   related_ground_pin : "VSS";
  }
  pin (Y) {
   direction : "output";
   function : "(!A)";
   related_power_pin : "VDD";
   related_ground_pin : "VSS";
   internal_power () {
    related_pin : "A";
    rise_power ("energy_template_7x7") {
     index_1("0.028, 0.044, 0.076, 0.138, 0.264, 0.516, 1.02");
     index_2("0.00079, 0.002054, 0.00474, 0.010112, 0.020856, 0.042186, 0.08532");
     values("0.00335, 0.00341, 0.00348, 0.00355, 0.00355, 0.00341, 0.00330", \
       "0.00333, 0.00338, 0.00343, 0.00346, 0.00350, 0.00341, 0.00341", \
       "0.00336, 0.00337, 0.00337, 0.00343, 0.00338, 0.00340, 0.00313", \
       "0.00351, 0.00350, 0.00347, 0.00341, 0.00337, 0.00322, 0.00318", \
       "0.00393, 0.00383, 0.00378, 0.00368, 0.00345, 0.00332, 0.00318", \
       "0.00486, 0.00468, 0.00443, 0.00429, 0.00398, 0.00348, 0.00312", \
       "0.00701, 0.00679, 0.00643, 0.00589, 0.00544, 0.00484, 0.00381");
    }
    fall_power ("energy_template_7x7") {
     index_1("0.028, 0.044, 0.076, 0.138, 0.264, 0.516, 1.02");
     index_2("0.00079, 0.002054, 0.00474, 0.010112, 0.020856, 0.042186, 0.08532");
     values("-0.00039, -0.00034, -0.00026, -0.00020, -0.00017, -0.00015, -0.00013", \
       "-0.00045, -0.00037, -0.00031, -0.00023, -0.00018, -0.00016, -0.00014", \
       "-0.00046, -0.00041, -0.00034, -0.00027, -0.00021, -0.00016, -0.00014", \
       "-0.00035, -0.00034, -0.00034, -0.00026, -0.00022, -0.00018, -0.00015", \
       "-1.79630e-05, -4.14918e-05, -8.39442e-05, -0.00015, -0.00017, -0.00015, -0.00012", \
       "0.00094, 0.00081, 0.00060, 0.00038, 0.00018, 8.24213e-05, 3.78136e-06", \
       "0.00304, 0.00277, 0.00236, 0.00192, 0.00135, 0.00090, 0.00057");
    }
   }
   timing () {
    related_pin : "A";
    timing_type : "combinational";
    timing_sense : "negative_unate";
    cell_rise ("delay_template_7x7") {
     index_1("0.028, 0.044, 0.076, 0.138, 0.264, 0.516, 1.02");
     index_2("0.00079, 0.002054, 0.00474, 0.010112, 0.020856, 0.042186, 0.08532");
     values("0.02584, 0.03272, 0.04699, 0.07512, 0.13114, 0.24071, 0.46218", \
       "0.03055, 0.03786, 0.05210, 0.08003, 0.13552, 0.24625, 0.46814", \
       "0.03740, 0.04692, 0.06271, 0.09080, 0.14611, 0.25556, 0.47869", \
       "0.04710, 0.05934, 0.07981, 0.11129, 0.16732, 0.27650, 0.49795", \
       "0.06257, 0.07747, 0.10461, 0.14671, 0.21015, 0.31948, 0.53952", \
       "0.08662, 0.10584, 0.13994, 0.19462, 0.27915, 0.40705, 0.62741", \
       "0.12452, 0.15011, 0.19279, 0.26424, 0.37598, 0.54689, 0.80341");
    }
    rise_transition ("delay_template_7x7") {
     index_1("0.028, 0.044, 0.076, 0.138, 0.264, 0.516, 1.02");
     index_2("0.00079, 0.002054, 0.00474, 0.010112, 0.020856, 0.042186, 0.08532");
     values("0.02265, 0.03409, 0.05974, 0.11070, 0.21495, 0.41772, 0.82348", \
       "0.02702, 0.03575, 0.05954, 0.11078, 0.21235, 0.41863, 0.82585", \
       "0.03492, 0.04500, 0.06319, 0.11043, 0.21281, 0.41443, 0.82946", \
       "0.04622, 0.05927, 0.08083, 0.11752, 0.21217, 0.41543, 0.82398", \
       "0.06279, 0.07869, 0.10851, 0.15240, 0.22625, 0.41342, 0.82523", \
       "0.08633, 0.10748, 0.14505, 0.20607, 0.29696, 0.44302, 0.82255", \
       "0.12497, 0.15137, 0.20014, 0.27750, 0.39976, 0.58539, 0.88072");
    }
    cell_fall ("delay_template_7x7") {
     index_1("0.028, 0.044, 0.076, 0.138, 0.264, 0.516, 1.02");
     index_2("0.00079, 0.002054, 0.00474, 0.010112, 0.020856, 0.042186, 0.08532");
     values("0.01949, 0.02396, 0.03244, 0.04911, 0.08285, 0.14837, 0.28144", \
       "0.02246, 0.02802, 0.03744, 0.05411, 0.08721, 0.15234, 0.28632", \
       "0.02624, 0.03350, 0.04573, 0.06425, 0.09729, 0.16249, 0.29356", \
       "0.03046, 0.03984, 0.05574, 0.08051, 0.11706, 0.18223, 0.31414", \
       "0.03515, 0.04753, 0.06878, 0.10134, 0.15114, 0.22277, 0.35449", \
       "0.03714, 0.05365, 0.08196, 0.12656, 0.19227, 0.29014, 0.43629", \
       "0.03284, 0.05464, 0.09252, 0.15113, 0.24021, 0.37330, 0.57102");
    }
    fall_transition ("delay_template_7x7") {
     index_1("0.028, 0.044, 0.076, 0.138, 0.264, 0.516, 1.02");
     index_2("0.00079, 0.002054, 0.00474, 0.010112, 0.020856, 0.042186, 0.08532");
     values("0.01512, 0.02028, 0.03327, 0.06206, 0.12032, 0.23328, 0.46434", \
       "0.01865, 0.02438, 0.03478, 0.06159, 0.11961, 0.23212, 0.46242", \
       "0.02460, 0.03139, 0.04393, 0.06414, 0.11821, 0.23212, 0.46131", \
       "0.03367, 0.04246, 0.05804, 0.08172, 0.12296, 0.23061, 0.46180", \
       "0.04936, 0.05991, 0.07972, 0.11020, 0.15833, 0.23970, 0.45796", \
       "0.07321, 0.08795, 0.11355, 0.15430, 0.21547, 0.31015, 0.47443", \
       "0.11058, 0.13279, 0.16830, 0.21995, 0.29923, 0.42272, 0.61351");
    }
    output_current_rise () {
     vector ("CCS_DRV_TEMPLATE_0") {
      reference_time : 3.026798;
      index_1("0.02800");
      index_2("0.00079");
      index_3("3.0357854, 3.0374452, 3.0443794, 3.0469711, 3.0484373, 3.0487599, 3.0526144, 3.0565505, 3.0588574, 3.0645048, 3.0696982, 3.0765186, 3.0887193, 3.1183014");
      values("1.68924e-02, 1.68924e-02, 2.99000e-02, 3.17748e-02, 3.50523e-02, 3.76162e-02, 3.61315e-02, 2.98632e-02, 2.50459e-02, 1.35519e-02, 8.50912e-03, 4.74744e-03, 1.62783e-03, 4.86787e-04");
     }
     vector ("CCS_DRV_TEMPLATE_0") {
      reference_time : 3.026798;
      index_1("0.02800");
      index_2("0.00205");
      index_3("3.0368860, 3.0484919, 3.0497922, 3.0519920, 3.0524021, 3.0586573, 3.0626448, 3.0673659, 3.0707563, 3.0777611, 3.0839166, 3.0947489, 3.1080516, 3.1324579");
      values("2.83487e-02, 6.15760e-02, 6.59870e-02, 6.58823e-02, 6.69756e-02, 6.17118e-02, 5.63202e-02, 4.71480e-02, 3.96622e-02, 2.49392e-02, 1.77338e-02, 8.99646e-03, 3.85957e-03, 1.93035e-03");
     }
     vector ("CCS_DRV_TEMPLATE_0") {
      reference_time : 3.026798;
      index_1("0.02800");
      index_2("0.00474");
      index_3("3.0383826, 3.0485049, 3.0505167, 3.0527946, 3.0601954, 3.0677680, 3.0733082, 3.0788485, 3.0929243, 3.1130111, 3.1357985, 3.1657605, 3.2069642");
      values("4.55633e-02, 8.13139e-02, 8.94632e-02, 9.22421e-02, 8.89058e-02, 8.46290e-02, 8.02808e-02, 7.49023e-02, 5.44505e-02, 2.62192e-02, 1.12204e-02, 3.23514e-03, 1.65962e-04");
     }
     vector ("CCS_DRV_TEMPLATE_0") {
      reference_time : 3.026798;
。。。。后面还有很长一大串CCS的东西,前面的算正常的,我怎么设置才能不让他弄出这些CCS的东西呢,东西出来呢?高手帮忙解决下我这个困惑吧
发表于 2011-4-23 10:49:32 | 显示全部楼层
关注!!!!!!
发表于 2011-4-23 11:16:27 | 显示全部楼层
楼主请问,这ncx工具在哪下载的,或者能不能上传一下?
 楼主| 发表于 2011-4-25 14:31:08 | 显示全部楼层
坛子里就有啊
 楼主| 发表于 2011-5-25 17:14:47 | 显示全部楼层
求关注啊!!看来还是去看下signalstrom怎么用,这个搞不好
发表于 2011-5-25 20:05:36 | 显示全部楼层
有个问题请教:
ncx是不是从spice仿真数据中提取lib库数据?
如果是,我缩扣出来的数据跟FAB给的工艺文件差距有多大?抠出来的数据是否能保证我综合&pr的准确性,
期待回复
 楼主| 发表于 2011-5-29 13:32:34 | 显示全部楼层
回复 6# tiger_lein


    ncx是从spice仿真数据中提取lib库数据的,是和hspice配合使用,其实就是抽取hspice的结果,精确不精确,就是hspice的精确度吧,不过我做出来的差了不少(漏功耗的值),用的calibre抽取的带寄生参数的spice网表,也可能是因为提取的不够精确啊,反正fab厂给的数据一一般比较悲观,可能他们考虑的更多吧
发表于 2011-6-3 16:09:36 | 显示全部楼层
请问楼主,config和.opt包含了什么内容,可以注释下吗?最近也在研究.lib的提取,但是一直不成功。谢谢了哈!
发表于 2011-6-8 17:53:38 | 显示全部楼层
原因是,你没有把 compact false掉,加上这个就好了
 楼主| 发表于 2011-6-9 14:33:30 | 显示全部楼层
问题已解决
把variation_leakage   : true 改成 false。就干净了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-7-8 03:55 , Processed in 0.029865 second(s), 9 queries , Gzip On, MemCached On.

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