Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 6451|回復: 3
打印 上一主題 下一主題

[問題求助] library compiler建DFF cell的疑問

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2009-9-17 02:02:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位好,小弟打算跑HSPICE改變一下cell library的資料# Q7 A* C% w" f/ b( P
但有部分還是不太理解,以下是D-Flip Flop(DFF)接腳D及CLK部分: x; f4 d& \. s
3 v- A7 B- I2 R( P. x- _

8 a- ~% }3 ]9 h* u  pin(D) {
' u: W. S' y* S8 o1 d( t. J    nextstate_type : data;
8 ?  O( c5 w" m. D/ T    direction : input ;
" Z. y7 U3 U, L5 w    capacitance : 0.001165;( {' \9 q& A: \/ [& s* v: _
    internal_power() {" ^# Y- ]" f+ {( u8 d& M
      when : "!CK";
' J! J7 i8 V5 V' J      power(POWER_7x1) {& m0 b1 q1 {- Z3 ]
        index_1("0.009652,0.016106,0.025992,0.046675,0.088958,0.216628,0.447814");: Q7 q3 J+ I2 I
        values("0.003651,0.003635,0.003626,0.003611,0.003614,0.003725,0.004117");. P6 I! s, L7 |2 e9 D& V
      }. A  D7 y# ]6 H- c3 l
    }
4 c6 o2 t) o! u; d5 d7 ~
3 F( Z4 K: D" W+ evalues值是指不同的D端電容(index_1)在CLK=0時的POWER值嗎?& o( K7 Q8 u& N/ `, [1 f
6 [; V. ]- E4 N4 [6 b
    internal_power() {
  Z5 N  a' R1 z$ ]& u! Y/ Z      when : "CK";
+ C  c- X0 d) T% e# b3 f" W      power(POWER_7x1) {
8 L$ q; d, ^& t$ h) T& w/ n* {: [6 b        index_1("0.009645,0.016106,0.025991,0.046674,0.088957,0.216628,0.447814");
! d- u3 W) m+ z: T* k( G        values("0.000127,0.000122,0.000120,0.000119,0.000117,0.000116,0.000114");
9 w* Z8 u3 Z2 q- ~      }' g9 A2 @, k0 V; F0 M8 L5 u! F$ D
    }
4 G. B6 F1 f% D' K. d    timing() {3 K& t& D' b' z; a; N
      related_pin : "CK";8 |9 O# V" G/ V
      sdf_edges   : both_edges;
4 m2 _2 `; q7 N* c- I      timing_type : setup_rising;
5 X1 J& ?, r( U* q. N      rise_constraint(CONST_3x3) {/ o. P2 s3 G) z2 m. U  z
        index_1("0.006000,0.217000,0.434000");
2 G. l1 k# t- @# _        index_2("0.006000,0.108000,0.217000");
) O* |3 K$ f( k; ?) d: s        values("0.029659,0.026470,0.036963",\
# E- n2 X$ c, v9 j3 G' Z7 Y* {               "0.032032,0.023912,0.031939",\  g% c1 x7 _7 q
               "0.004917,0.000010,0.004825");0 d* g& Q0 r' _# u  {+ R5 G
      }
% T4 \' \* d) ]+ v0 a
& n5 ]3 W- M& P3 P, X: {values是指DATA輸入transition time(index_1)跟CLK輸入transition time(index_2)不同時所得到的setup timing嗎?
9 s; b/ d0 m) e8 Z& D# D
1 U# Q+ v$ r* @6 X" s# P  e( c
/ a7 Y8 m7 |/ o      fall_constraint(CONST_3x3) {1 ~4 U7 l. j8 j
        index_1("0.006000,0.217000,0.434000");, e! r$ [0 V0 Z9 e
        index_2("0.006000,0.108000,0.217000");
: x+ C  o9 _5 V. \        values("0.074043,0.058526,0.059156",\- x) ]) V5 q- G0 h
               "0.152860,0.139810,0.137970",\  Q$ J/ r3 ]: h1 j8 ?
               "0.231770,0.216260,0.216890");4 o; l! L/ u* u4 n0 K
      }4 N: x3 b* K( `# a7 z" o
    }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂3 踩 分享分享
推薦
發表於 2009-9-28 21:40:26 | 只看該作者
internal_power() {6 x; Z( f+ F5 y0 @
      power(POWER_7x1) {
( @9 y2 f0 U' f. s$ T7 ~        index_1("0.009651,0.016105,0.025992,0.046675,0.088957,0.216628,0.447814");9 Q5 @, d9 t& R0 T
        values("0.004066,0.004029,0.004007,0.004000,0.004050,0.004346,0.005062");% {1 I3 q4 z* w  V% w! t4 s
values值是指不同的CLK端電容(index_1)在CLK=0時的POWER值嗎?
) `2 t" o# s$ }+ ?8 c  [===> Wrong !# K  Q' W, Q- K5 J$ w/ ?
===> they mean while different input slew (transition) of CK, results different internal power
* T. i& O+ s0 k$ I
! G6 B) `% g. T' p1 umin_pulse_width_high : 0.061268;
3 V: h: n  S8 i# w( C6 T6 G% Dmin_pulse_width_low  : 0.125320;
( {5 p8 T4 u0 m/ fCLK Hi/Low的長度?' N# T7 n' C0 D! T
====> No, these mean minimum possible of clock waveform to prevent functional fail, for high (1) and low (0)$ s' Z) F2 U+ [5 E! c/ C; B7 Q

( R2 Y! l( C% u0 d      index_1("0.009652,0.016106,0.025992,0.046675,0.088958,0.216628,0.447814");: L" I  \- K8 O# v6 o
        values("0.003651,0.003635,0.003626,0.003611,0.003614,0.003725,0.004117");6 A  P; X0 M1 X4 S+ l
      }
8 n8 l6 c7 Z- K4 o  p) |    }$ J9 r3 E$ K$ m
3 U0 R7 m& O1 t( ?
values值是指不同的D端電容(index_1)在CLK=0時的POWER值嗎?* C6 E! L+ Q) L$ u
==> No, index1 is often input transition. here represents input slew of D pin! d, C7 }1 [: e! R- u9 }

' N* ^; n+ l4 _$ s0 E        index_1("0.006000,0.217000,0.434000");% T8 J0 s* |; ?6 O" ?6 T; t7 _8 z* v% X
        index_2("0.006000,0.108000,0.217000");# P# n" V3 h% b7 k' ?
        values("0.029659,0.026470,0.036963",\8 o# E; I/ h; r& e# \
               "0.032032,0.023912,0.031939",\
$ [. h8 m, m) @6 X6 S               "0.004917,0.000010,0.004825");! _1 Y/ c# F$ s) U) o1 E
      }* H7 B/ {  y" o/ o

) W' S2 L! u1 C" E5 a* c# {values是指DATA輸入transition time(index_1)跟CLK輸入transition time(index_2)不同時所得到的setup timing嗎?0 P0 c- S: p. o

  s9 J9 S) Y- T4 ^) b===> yes, but you have to refer index_2 definition in the front of liberty file to make sure.

評分

參與人數 1 +10 收起 理由
霜淇淋 + 10 謝謝您啦^^

查看全部評分

回復 支持 1 反對 0

使用道具 舉報

2#
 樓主| 發表於 2009-9-17 02:02:27 | 只看該作者
timing() {
$ C- V/ j- }6 K      related_pin : "CK";
- ^6 L2 w) _( n* U4 l" G      sdf_edges   : both_edges;& H- A- D4 U$ A$ n
      timing_type : hold_rising;
* t8 E- K& B. j. Y+ ?( s      rise_constraint(CONST_3x3) {
/ A3 `% j! I  }; ?        index_1("0.006000,0.217000,0.434000");
' b5 |) z. l; d, S        index_2("0.006000,0.108000,0.217000");! E3 e& [8 i2 I8 E/ V. P2 z3 R
        values("-0.005932,-0.005209,-0.015703",\
0 F4 R- n( S' P/ u* \               "0.013887,0.014610,0.004117",\
, x' x  |, w; U8 ^+ Z9 d" h               "0.060728,0.056519,0.043560");
8 |9 `) c  d& X: ]% R1 c      }
9 }8 w% w* Z( f! H# u      fall_constraint(CONST_3x3) {/ C" J4 a4 C, |$ L
        index_1("0.006000,0.217000,0.434000");5 y1 S2 c; y  v, t2 t  Z& }
        index_2("0.006000,0.108000,0.217000");* `6 V! h/ J( {! G# |
        values("-0.018261,-0.002744,-0.005839",\# p" R1 R# ]+ Z0 G+ l) {
               "-0.028829,-0.021521,-0.028745",\+ Z# ~! d% V/ n! C: }) E- K
               "-0.004426,0.053203,-0.004342");
+ Z" X* e+ D! V! D/ h9 l      }3 t* s0 w* {1 S
    }
8 `7 H. @/ m0 q5 K  }# ]) y0 A  x. n/ V5 @. g
  pin(CK) {6 D% h) V6 z: q
    direction : input ;
  n9 z$ z1 p& g' y5 Z# _0 u    capacitance : 0.001915;8 R- P: M$ D9 _8 i7 t
    max_transition : 0.217000;
( o2 W* U" _' K" C' v# ^    clock : true;
6 l  U2 J' _; n    internal_power() {' U  _0 U8 `6 R1 U4 l) q# X  `: V
      power(POWER_7x1) {
  {2 I7 c) D9 B& O/ \: b        index_1("0.009651,0.016105,0.025992,0.046675,0.088957,0.216628,0.447814");
8 f+ D' @4 [# \0 f        values("0.004066,0.004029,0.004007,0.004000,0.004050,0.004346,0.005062");
$ j( c' @. [/ K& x      }# r  u6 c, e' M2 _' u. Y7 e
    }0 e% J& i0 ~  M5 `2 i) C
" ]' P! S2 I/ _% _
$ g7 D; X  |( ~9 N" s3 R
values值是指不同的CLK端電容(index_1)在CLK=0時的POWER值嗎?" p4 E8 W  b4 f/ I' \9 I. R% Q

  Q  d, O2 H* [/ k4 B/ w    min_pulse_width_high : 0.061268;
7 \( O, I. o  V# Z- f6 v. t' P    min_pulse_width_low  : 0.125320;. Z3 Y: o; E2 a8 b

  j; A7 {* M6 y$ ]* O7 A8 PCLK Hi/Low的長度?: ^+ `- V, \* Y, c
  }- H2 t7 l% M( x# s: N( t
}$ f6 z) O# {3 M9 |% |
7 d7 G  f6 [3 K" N# d* {; l
" A; v4 D6 ~8 s) f8 Q+ H& H
: C# L9 }1 p8 ?- c3 s8 m/ Q+ E& e
有觀念誤解的話希望幫忙修正..謝謝, ~9 K& w/ R; m
! U/ R$ p+ A: p7 a
[ 本帖最後由 霜淇淋 於 2009-9-17 02:03 AM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-5-14 09:25 PM , Processed in 0.113014 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表