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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: daisyniu

标准单元的lib文件问题请教

[复制链接]
发表于 2011-3-1 10:09:05 | 显示全部楼层
我的感觉 是做hspice仿真, 比如 用各种 input slew 和 load 的 查找表,

然后把得出的结果 用perl 脚本处理 就可以写入 .lib了,
发表于 2011-3-1 11:20:50 | 显示全部楼层
回复 1# daisyniu


    仿真仿真
发表于 2011-3-6 20:06:04 | 显示全部楼层
Thank you for your sharing.
发表于 2011-3-9 11:37:35 | 显示全部楼层
这个不错,看看
发表于 2011-3-10 14:31:31 | 显示全部楼层
大虾们,同样是以下的问题:

9# tianxiong_14
你好!我想请教一下three_state timing arc 提取的问题。最近我在尝试将自己设计的IO加入库中的时候出现了timing arc的错误,错误原因全是出在three state enable/three state disable Arc上。HSIPICE可以执行ncx产生的.sp文件,但是通过查看仿真后产生的.lis文件后发现在提取某些index时t_maxzleak这个参数failed了,以至于之后很多参数也无法提取。我想请教一下three state arc的spice提取原理和定义,例如提取中如何定义当前状态为Z,如何保证OEN由1-0,PAD由Z-1时Z是由0开始的,若有相关资料不知可否给我一些介绍?谢谢!

我已经设置了glitch check ,但是某些RACE 依然是failed !  我用的是cadence ELC .

请高手赐教
发表于 2011-3-29 19:16:12 | 显示全部楼层
学习了。好东西
发表于 2011-3-29 19:44:40 | 显示全部楼层
学习了!
发表于 2011-4-13 16:58:11 | 显示全部楼层
回复 1# daisyniu

给你推荐一个新的好用工具,Altos 的Liberate工具,这个工具仿真速度快,精确度高,轻松的对单元和I/O进行特征化。
发表于 2011-4-15 12:06:05 | 显示全部楼层
回复 7# tianxiong_14


    你好,我最近也在用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
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)
    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的东西
我怎么设置才能不让他弄出这些东西出来呢?
发表于 2011-5-17 14:41:08 | 显示全部楼层
回复 7# tianxiong_14


   感谢14楼的分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-22 03:56 , Processed in 0.020862 second(s), 5 queries , Gzip On, Redis On.

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