91 - Hewlett

advertisement
!"$ $ $! !%
"!%$! ! ("!" $ " #
Coding guidelines for behavioral modeling and a process for generating
wire load models that satisfy most timing constraints early in the design
cycle are some of the techniques used in the design process for standard
cell ASICs.
' ' !% !% . /$( 6/*6(-& / +- ..0- . *)/$)0 /* $)- . /# ) !*- .#*-/ - .$") 4' /$( . $. (*- 0-" )/ /#) 1 - / /#
.( /$( /# () !*- #$"# + -!*-() $) ./)- ''
. $. '.* $)- .$)" # . /- ). - 3+ / /* *)6
/$)0 . 0./*( -. '**& /* " / /# (*./ - /0-) *) $)1 ./( )/
!-*( /# '/ ./ +-* .. / #)*'*"$ . )4 *! /# .$")
*).$ -/$*). ) /* #$ 1 /# . #$"#6+ -!*-()
"*'. *(+ / $- /'4 "$)./ #$ 1$)" ,0$& /$( /*
(-& /
/4+$' ./)- '' .$") +-* .. $)'0 . . 1 -' $/ -6
/$*). $) 2#$# $)$1$0' ./ +. (0./ - + / /* %0./
!*- / / -($) / '/ - ./ +. *((*) 3(+' *!
/#$. $. /# ) /* - .$") +*-/$*). *! /# $-0$/ 2# )
+#4.$' - .0'/. .0# . 3/-/ +-.$/$. - ! & $)/*
.$(0'/*- ) + -!*-() "*'. #1 )*/ ) ( /
#$. ++ - +- . )/. ( /#*. /#/ # '+ - 0 *- 1 ) '$($6
)/ /# ) !*- .$") $/ -/$*). 4 $)- .$)" /# #)
*! 5!$-./ /$( + -! / / # .$") ./ + $-./ 2 $.0..
/# ( /#*. 1 '*+ !*- # *! /# ./ +. $) *0- .$") +-* .. . $" /* " / .#*-/ ) /#-*0"#+0/
/$( ) - 0 .$") $/ -/$*). 2#$' ./$'' +-*0$)"
#$"#6+ -!*-() *(+*) )/. 3/ 2 +- . )/ /# - .0'/.
*! ++'4$)" /# . ( /#*. /* /# .$") *! /#/ $. 0. $) . 6/ -($)' +-*0/.
&!" ! $) #$"#6' 1 ' #1$*-' (* '$)" $. *) 1 -4 -'4 $)
/# .$") !'*2 /# 24 $) 2#$# /# * $. 2-$// ) )
#1 -(/$ !! / *) /# *2)./- ( +-* .. . #1 1 '*+ . / *! #-2- .-$+/$*) ')"0"
"0$ '$) . /#/ $! !*''*2 2$'' - 0 /#-*0"#+0/
/$( !*- /# )/$- .$") !'*2 # . "0$ '$) . 2 - *'6
' / !-*( . 1 -' .$") -. 2$/#$) ) #1 ) 0+6
/ ) (*$!$ . - . !*- $(+-*1 ( )/ #1 )
$ )/$!$ $) # *! /# *2)./- ( +-* .. .
# *$)" "0$ '$) . $)'0 . /$*). *) '*&$)"
./-/ "$ . '*& #$ --#4 ) ./-0/0- !'$+6!'*+. )
'/# . .// (#$) . .$") !*- / ./ / #)$,0 . !*- )6
.0-$)" *).$./ )/ #1$*-' ) ./-0/0-' .$(0'/$*) )
4)*+.4.6.+ $!$ $..0 . 4)*+.4. $. ) 0/*(/$ .$")
.4)/# .$. /**' !-*( 4)*+.4. )
 Hewlett-Packard Company 1995
*''*2$)" /# . "0$ '$) . ''*2. 0. /* 1*$ ()4 /$( 6
$)/ ).$1 ./ +. '/ - $) /# .$") +-* .. .0# . )(
- (++$)" - )'4.$. ) $/ -/$1 ./-0/0-' )
#1$*-' .$(0'/$*)
' $##
0- "*' 0-$)" .4)/# .$. $. /* ' /* +-*0 .$")
/#/ 2# ) -*0/ 2$'' ( / + -!*-() "*'. 2$/# /#
.('' ./ +*..$' - '.* 2)/ /* * /#$. 2$/# . ! 2
$/ -/$*). $) /# #1$*-' (* ' ) /# .4)/# .$. .-$+/.
. +*..$' Behavioral
Model (HDL)
Custom Wire
Models
Logic
Synthesis
(Synopsys)
Netlist and Timing
Constraints
Placement and
Routing
(Cell3)
Capacitance
Static Timing
Verification
(Synopsys)
Artwork
Verification
and Output
.$ .$") !'*2
-0-4 2' //6&- *0-)'
Coding Guidelines. The HDL coding guidelines mentioned
above enable the creation of behavioral models that synĆ
thesize predictably in a shorter amount of time with better
performance than those created without guidelines.
Generic Synthesis Script. To streamline synthesis we create
generic synthesis scripts for our design that contain all of the
designĆspecific constraints such as flipĆflop types, clock
speed, behavioral model locations, and so on. These scripts
also include input and output timing constraints, external
loading, and drive capability. The scripts are used to syntheĆ
size all submodules in the design from the bottom up. Only
those modules that do not meet timing requirements when
incorporated into their parent module are resynthesized with
scripts written specifically for them. This allows the majority
of the blocks to be synthesized very quickly. Fig. 2 shows a
portion of a generic synthesis script.
Custom Wire Load Models. One of our primary goals is to perĆ
form a single route without any iteration. To accomplish this,
the wire loading (capacitance on the line) estimates that are
used during synthesis have to be conservative. However, if
they are too conservative then it is not possible to meet perĆ
formance goals. To determine a wire loading model with the
appropriate amount of conservative estimation for our library
and tool methodology, we performed several wire loading
experiments. These experiments consisted of synthesizing
modules of various sizes and design types, routing them,
and then verifying that their performance with actual wire
loads satisfies the timing constraints defined for the module.
Several passes were done for each module using a wire load
model with varying levels of conservatism. Fig. 3 summarizes
the process we used to generate the wire
/* These are fragments from the generic Synopsys dc_script */
/* the full script can be easily modified for a given model */
/* ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
/* Read in Verilog HDL:
*/
/* ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
read -f verilog mymodule.v
check_design
/* –––––––––––––––––––––––––––––––––––––––
/* Set the wire load model:
/* –––––––––––––––––––––––––––––––––––––––
set_wire_load block –library wire_loads
*/
*/
*/
*/
*/
/* –––––––––––––––––––––––––––––––––––––––
*/
/* Define the clocks:
*/
/* –––––––––––––––––––––––––––––––––––––––
*/
create_clock CLK –period 20 –waveform {0 10}
set_clock_skew –plus_uncertainty 0.5 –minus_uncertainty 0.5 –propagated CLK
/* ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
/* Set block operating environment:
/* ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
loader_pin = hp_cmos26g_table_slow/INVFF/A
driver_pin = hp_cmos26g_table_slow/NINVFF/Q
set_load 3 * load_of(loader_pin) all_outputs()
set_load load_of(loader_pin) all_inputs()
set_drive drive_of(loader_pin) all_inputs()
set_input_delay 10 –clock CLK all_inputs()
set_output_delay 10 –clock CLK all_outputs() –max
*/
*/
*/
/* ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
/* Compile the design
/* ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
compile
*/
/* ––––––––––––––––––––––––––––––––––––––––––––––
*/
/* Write out results
*/
/* ––––––––––––––––––––––––––––––––––––––––––––––
*/
write –hierarchy –f verilog –output mymodule.vopt
write_constraints –format sdf –output mymodle. sdf –max_paths 1000
report_design >> mymodule.sn_rpt
report_hierarchy –full >> mymodule.sn_rpt
report_timing >> mymodule.sn_rpt
A portion of a generic synthesis script.
February 1995 HewlettĆPackard Journal
*/
Original Wire
Load Models
Capacitance*
Logic
Synthesis
Place and
Route
Actual
Capacitance
Check
Timing
Timing
Constraints
Met?
No
Create more pessimistic
capacitance models based
on data from route.
Yes
Wire Load Model
Is Sufficiently
Pessimistic
*Estimated Capacitance Based on Fanout
The process for generating wire load models.
load model. This process was necessary because initial wire
load estimates might be too optimistic. For example, the
initial capacitance estimate for one connection between two
inverters might be 0.04 pF, but after placement and routing
the actual capacitance could be 0.1 pF, which might cause
the chip's timing constraints not to be met.
During these experiments, each module was first synthesized
using average wire load estimates. After routing, if the modĆ
ules failed timing, additional experiments were performed
using a progressively more pessimistic wire load model. The
wire load model that was used was generated by selecting a
point in the distribution of actual capacitances for each fanĆ
out that is greater than a given percentage of nets. Fig. 4
shows a sample distribution of interconnect capacitance for
nets with a fanout of two in a typical module. In this examĆ
ple, we wanted to use a model that would predict a capaciĆ
tance such that 90% of the wires would typically have actual
capacitance less than the predicted value. To do this we simĆ
ply used the capacitance value from the distribution that was
greater than 90% of the other wire capacitances. This was
done for each fanout to create a synthesis wire load model
called a 90% model."
We used this method to test models that fell within the
50ĆtoĆ95Ćpercent range. We found that unless we used at
least a 90% wire loading model we had some timing violaĆ
tions after backĆannotation* that were not present during
synthesis with estimated loads.
We also discovered that the magnitude and distribution of
the routed capacitance were fairly consistent across a wide
* Back-annotation in this context refers to the process of taking the actual capacitance values
extracted from routing and using them during static timing analysis.
 Hewlett-Packard Company 1995
31 .$0%-0+ ,"$ ,# #$,1(27 (+.0-4$+$,21 '$ .$0%-0+ ,"$
(1 (+.0-4$# !$" 31$ 2'$ 17,2'$1(1 2--* (1 ,-5 5-0)(,& -, 2'$
"-00$"2 . 2'1 ,# (1 !*$ 2- &$,$0 2$ % 12$0 "(0"3(21 $,1(27
(1 *1- (+.0-4$# %-0 2'$ 1 +$ 0$ 1-, (,"$ (,"-00$"2 . 2'1
0$ ,- *-,&$0 !$(,& -.2(+(8$# (,"-00$"2*7 ,# -4$0"-,120 (,9
(,& (1 ,-2 ,$"$11 07 2'$ -4$0 ** #$1(&, 1(8$ (1 1+ **$0 ,
##(2(-, 2'$ (+.0-4$+$,2 (, 20 ,1(2(-,92(+$ +-#$*(,& ,#
"-,120 (,21 4-(#1 2'$ ,$$# 2- ..*7 &*-! * 20 ,1(2(-,92(+$
"-,120 (,2 2- 2'$ #$1(&, 5'("' " , *$ # 2- -4$01(8(,& + ,7
"$**1
Library Default
(Average)
Number of Nets
90% Point (90% of Nets Are below this Value)
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
1 , ##(2(-, * +$2'-# -% $,130(,& 2' 2 -30 .$0%-0+ ,"$
&- *1 0$ +$2 5(2'-32 ' 4(,& 2- #- +3*2(.*$ 0-32(,& . 11$1
5$ ' 4$ ##$# 2'$ .0-"$11 -% #0(4(,& 2'$ .* "$+$,2 5(2'
"-,120 (,21 #$0(4$# %0-+ 17,2'$1(1
0
50
100
150 200 250 300 350 400
Interconnect Capacitance (fF)
450
500
1 +.*$ #(120(!32(-, -% (,2$0"-,,$"2 " . "(2 ,"$ %-0
% ,-32 -% 25- (, 27.(" * +-#3*$
0 ,&$ -% +-#3*$ 1(8$1 ,# #$1(&, 27.$1 '(1 5 1 130.0(1$
,# (2 **-51 31 2- 31$ 2'$ 1 +$ 5(0$ *- # +-#$*1 %-0 **
#$1(&,1 #-,$ (, 2'$ 1 +$ *(!0 07 5(2'-32 ' 4(,& 2- 0$.$ 2
2'$ $6.$0(+$,2 %-0 $ "' #$1(&,
$ 31$ 2'$ 5(0$ *- # +-#$* #$0(4$# %0-+ 2'$ !-4$
.0-"$11 2- '$*. &3 0 ,2$$ 1(,&*$9. 11 0-32(,& %-0 ** +-#3*$1
31(,& -30 *(!0 07 , ##(2(-, 5$ "0$ 2$ ,-2'$0 +-#$* %-0
5(0$1 2' 2 0$ 31$# %-0 &*-! * +-#3*$ (,2$0"-,,$"2 '(1 (1
#-,$ 31(,& 2'$ 1 +$ +$2'-# #$1"0(!$# !-4$ $6"$.2 2' 2
2'$ 5(0$1 31$# 2- "0$ 2$ 2'$ " . "(2 ,"$ #(120(!32(-,1 0$
*(+(2$# 2- &*-! * 5(0$1 '(1 +-#$* +-0$ ""30 2$*7 .0$#("21
2'$ '(&'$0 " . "(2 ,"$ 11-"( 2$# 5(2' 2-.9*$4$* (,2$0"-,9
,$"2 7,-.171 -30 *-&(" 17,2'$1(1 2--* " , 32-+ 2(" **7
1$*$"2 2'$ ..0-.0( 2$ 5(0$ *- # +-#$* 2- 31$ %-0 $ "' &*-! *
5(0$
Table-Driven Models. ,-2'$0 % "2-0 (, -30 !(*(27 2- "'($4$
'(&' .$0%-0+ ,"$ ,# +(,(+(8$ "7"*$ 2(+$ (1 2'$ ""30 "7 -%
2'$ 7,-.171 *(!0 07 2(+(,& +-#$*1
$" 31$ 7,-.171 2(+(,& (1 4$07 ""30 2$ 5(2' 2 !*$9#0(4$,
+-#$*1 (2 " , !$ 31$# #(0$"2*7 2- "0$ 2$ 2(+(,& "-,120 (,21
(+.-1$# -, 2'$ 0-32$0 '(1 (1 #-,$ 31(,& 2'$ 2 ,# 0# $* 7
-0+ 2 2(+(,& -32.32 (, 7,-.171 0(2(" * . 2' 2(+(,& (1 50(29
2$, (, 2 ,# 0# $* 7 -0+ 2 5'("' " , 2'$, !$ "-,4$02$#
2- $1(&, 6"' ,&$ -0+ 2 ,# (,.32 2- $** 5(2' 2'$
,$2*(12 '$1$ 2(+(,& "-,120 (,21 !$"-+$ . 02 -% 2'$ -4$0 **
"-,120 (,2 $/3 2(-, %-0 2'$ .* "$0
$4$0 * 2'-31 ,# "-,120 (,21 " , !$ /3(")*7 ,# $ 1(*7 &$,9
$0 2$# 31(,& 2'(1 +$2'-# -5$4$0 -,*7 2'-1$ . 2'1 2' 2 0$
5(2'(, %$5 .$0"$,2 -% % (*(,& 5(2' $12(+ 2$# *- #1 1'-3*#
!$ "-,120 (,$# % , ..0-.0( 2$ 5(0$ *- # +-#$* (1 31$#
2'$ 0$12 -% 2'$ . 2'1 1'-3*# +$$2 2'$(0 2(+(,& 5(2'-32 !$(,&
"-,120 (,$# 4(,& 2-- + ,7 . 2'1 "-,120 (,$# 5(** 1*-5 2'$
.* "$+$,2 .0-"$11 ,# + 7 .0-#3"$ (,%$0(-0 0$13*21 -59
$4$0 5$ ' 4$ 13""$11%3**7 "-,120 (,$# 3. 2- 2'-31 ,#
. 2'1
30 &- *1 #30(,& .* "$+$,2 ,# 0-32(,& 0$ 2- (+.*$+$,2
2'$ #$1(&, (, 2'$ 1+ **$12 .-11(!*$ 0$ +$$2 ** 1.$"(%($#
.$0%-0+ ,"$ &- *1 ,# +(,(+(8$ 2'$ ,3+!$0 -% (2$0 2(-,1
2'0-3&' 2'$ .0-"$11
Timing-Driven Placement. (+(,&9#0(4$, .* "$+$,2 (1 2'$ .0-9
'$ !(&&$12 .0-!*$+ "0$ 2$# !7 (, ""30 2$ 17,2'$1(1 2(+(,&
"$11 -% #0(4(,& 2'$ .* "$0 5(2' 2'$ 2(+(,& "-,120 (,21 -32.32
+-#$*1 (1 2'$ 0$/3(0$+$,2 %-0 ,3+$0-31 (2$0 2(-,1 !$25$$,
%0-+ 2(+(,& , *78$0 7,-.171 (, 2'(1 " 1$ '$ %-**-5(,&
17,2'$1(1 ,# 2(+(,& 4$0(%(" 2(-, 2- %(6 2(+(,& 4(-* 2(-,1
% "2-01 0$ (+.-02 ,2 (, 13""$11%3**7 31(,& 2'(1 2$"',(/3$
'$1$ (2$0 2(-,1 (,4-*4$ "' ,&(,& 17,2'$1(1 "-,120 (,21 -4$09
• ""30 2$ 2(+(,& +-#$*1 31$# %-0 12 2(" 2(+(,& , *71(1 1
"-,120 (,(,& ,# 0$.* "(,& "$**1 !7 ' ,# (, 1-+$ " 1$1
+$,2(-,$# !-4$ ""30 2$ 2(+(,& +-#$*1 0$ "0(2(" * 2- $,9
(+(,& (, ""30 "7 *1- *$ #1 2- .--0 -.2(+(8 2(-, #$"(1(-,1
130$ 2' 2 2'$ 17,2'$1(1 .0-&0 + 5-0)1 -, 2'$ 0(&'2 . 2'1
0$13*2(,& (, ,-,-.2(+ * "(0"3(21 (, 2$0+1 -% .$0%-0+ ,"$ ,#
,# 2' 2 2'$ 2(+(,& "-,120 (,21 0$ ""30 2$
0$ • ""30 2$ "$** #$* 7 (,%-0+ 2(-, %$# 2- 2'$ .* "$0 30 .* "$9
+$,2 .0-&0 + $** 31$1 25-9 -0 2'0$$9. 0 +$2$0 #$* 7
'$1$ ,# -2'$0 .0-!*$+1 0$ $11$,2( **7 0$+-4$# !7 2'$
$/3 2(-, '$ 25-9. 0 +$2$0 $/3 2(-, " *"3* 2$1 #$* 7 5(2'
,$5 ,-,*(,$ 0 2 !*$9#0(4$, 2(+(,& +-#$*1 (, 7,-.171 (2'
, (,20(,1(" "-+.-,$,2 ,# *- # #$.$,#$,2 "-+.-,$,2
2'$1$ +-#$*1 2(+(,& " , !$ + #$ 2- + 2"' 2'$ .("$ "' 09
'$ 2'0$$9. 0 +$2$0 $/3 2(-, +-#(%($1 2'$ (,20(,1(" #$* 7 2"2$0(8 2(-, 2 !*$1 %-0 $ "' "$** (, 2'$ *(!0 07 '$ 20 ,1(2(-,
0$%*$"2 (21 #$.$,#$,"7 -, 2'$ (,.32 1*-.$ - #0(4$ 2'$ .* "$0
2(+$ #$%(,(2(-, " , *1- !$ + #$ 2- + 2"' $6 "2*7 1- 2' 2 (2
5(2' ""30 2$ # 2 (2 (1 (+.-02 ,2 2' 2 $**1 #$* 7 " *"3* 9
" , !$ "-,120 (,$# .0-.$0*7
2(-, + 2"' 2' 2 31$# !7 2'$ 2(+(,& , *78$0 1 "*-1$*7 1
'$ *(!0 07 13..-021 2'(1 ,$5 +-#$* ,#
.-11(!*$ !*$ 1'-51 2'$ "-00$* 2(-, -!2 (,$# %0-+ $ "'
**-51 31 2- &$2 ""30 2$ 2(+(,& %0-+ -30 17,2'$1(1 . ") &$
-% 2'$1$ +-#$*1 "-+. 0$# 2- 2'$ # 2 31$# !7 2'$ 2(+(,&
1- 2' 2 2'$0$ 0$ ,- 2(+(,& -0 -.$0 2(,& "-,#(2(-, 4(-* 2(-,1
, *78$0 '$ # 2 (, 2'$ 2 !*$ (1 %-0 0$.0$1$,2 2(4$
(, 2'$ 2(+(,& 4$0(%(" 2(-, 12$. $1(#$1 2'$ -!4(-31 !$,$%(2 -%
. 2'1 4 07(,& (, *$,&2' %0-+ 2- "$**1
0$#3"(,& (2$0 2(-,1 2'(1 ,$5 *(!0 07 ,# 2(+(,& +-#$* &(4$1
* Global wires are the interconnecting wires between submodules on a chip.
 Hewlett-Packard Company 1995
** Cell3 is the placement and routing program we use, which comes from Cadence Design
Systems.
$!03 07 $5*$229 ") 0# -30, *
0); 8:7>-6 67< <7 *- ); :7*=;< ); ?- ?7=4, 413- ?- 0)>.7=6, <0)< )6 -);1-: )6, 5=+0 57:- :7*=;< 5-<07, 1; <7 =;-44; *)4)6+-, /47*)4 :7=<16/ ?01+0 5--<; <0- 6--,; 7.
57;< 01/0C8-:.7:5)6+- ;<)6,):, +-44 %;
Table I
Cell3 to Synopsys Correlation
Timing
Analyzer Data
Cell3 (twoparameter)
Cell3 (threeparameter)
!1615=5
#)<0
6;
6;
6;
!)@15=5
#)<0
6;
6;
6;
•
•
-);< ::7:
>-:;=; %A678;A;
•
:-)<-;< ::7:
>-:;=; %A678;A;
::7: $)6/>-:;=; %A678;A;
<7
<7
; ;07?6 16 &)*4- -44; <0:--C8):)5-<-: 57,-4 8:7C
>1,-; /:-)<4A 158:7>-, ,-4)A 57,-416/ +758):-, <7 <0<?7C8):)5-<-: 57,-4
-+)=;- 7. 1<; 158:7>-, )++=:)+A <0<0:--C8):)5-<-: 57,-4 1; 67? =;-, ); <0- ;<)6,):, ,=:16/
<1516/C,:1>-6 84)+-5-6<
• ++=:)<- -;<15)<-; 7. 16<-:+766-+<
7: ;A6<0-;1; 16<-:+76C
6-+< ,-4)A 1; ;8-+1.1-, *A <0- ?1:- 47), 57,-4;
7:
84)+-5-6< 1< 1; 1587:<)6< <0)< <0- 84)+-: 0); ) /77, 1,-) 7.
?0)< 1< +)6 -@8-+< 16 <-:5; 7. )>-:)/- 8-:C4)A-: ?1:16/ +)C
8)+1<)6+- .7: -)+0 ;1/6)4
&0-;- 6=5*-:; ):- ,-<-:516-, *A
)6)4AB16/ ?1:16/ ,1;<:1*=<176; 76 8:->17=;4A :7=<-, +018;
Clock Tree Synthesis and Verification. &A81+)4 %% ):- ,:1>-6
*A ;16/4- 7: 5=4<184- 01/0C;8--, +47+3;
&0-;- +47+3; ,:1><07=;)6,; 7. .418C.478; )6, 5=;< 0)>- 47? 16;-:<176 ,-4)A
)6, ;3-? <7 5--< 8-:.7:5)6+- :-9=1:-5-6<;
&7 1584-5-6<
<0-;- *)4)6+-, +47+3; ;8-+1)4 84)+-5-6< )6, :7=<16/ .-)C
<=:-; 5=;< *- =;-,
-44; +47+3 <:-- ;A6<0-;1; <774; ):=;-, <7 16;-:< ) *=..-: <:-- .7: -)+0 +47+3 ;-- 1/
&0+47+3; ):- <0-6 8:-:7=<-, =;16/ >):17=; .7:5; 7. -44; *)4C
)6+-, :7=<16/ <-+0619=-;
&01; 5-<07, 0); 5-< ?1<0 51@-,
;=++-;;
@+-44-6< :-;=4<; +)6 *- 7*<)16-, *A =;16/
<0- ,-<)14-, *)4)6+-, :7=<-: ?01+0 1; 16+4=,-, ); 8):< 7.
-44; +47+3 <:-- ;A6<0-;1; 78<176
7?->-: ;16+- <01; <774
To Flip-Flops
Clock Input
<A81+)4 +47+3 *=..-: <:--
6;-:<176 ,-4)A .7: <01; +76.1/=:)C
<176 1; <0- )>-:)/- ,-4)A .:75 <0- +47+3 168=< <7 <0- .418C.478;
%3-?
1; <0- ,1..-:-6+- *-<?--6 <0- ;07:<-;< )6, 476/-;< ,-4)A;
-*:=):A -?4-<<C#)+3):, 7=:6)4
•
•
+<=)4 +47+3 ,-4)A )6, ;3-? ):- >-:1.1-, =;16/ <0- $ -@C
<:)+<176 +)8)*141<A 8:7>1,-, 16 0-+3!)<-
&0- /-6-:)4
;<-8; 16>74>-, 16 =;16/ <01; )88:7)+0 16+4=,-
7584-<- <0- 80A;1+)4 1584-5-6<)<176 7. <0- +47+3;
@<:)+< >1) 0-+3!)<- $ 16.7:5)<176 .7: )44 6-<; 16 <0,-;1/6
:-)<- ) %81+- 6-<41;< +76<)1616/ 764A <0- +-44; )6, 6-<; 16
<0- +47+3 <:--;
&0- ,-;1:-, 6-<; )6, +-44; ):- ;8-+1.1-, <7
0-+3!)<-; %81+- ?:1<-:
,, +=;<75 +1:+=1< +76,1<176; -@<-:6)4 47),; -<+
$=6 <0- %81+- 27*
-44 +)6 )4;7 8:7>1,- +47+3 )6, ;3-? 16.7:5)<176 *=< <0;<-8; 41;<-, )447? =; <7 7*<)16 57:- )++=:)+A )6, <7 *=14,
+76.1,-6+- 16 <0- -44 6=5*-:;
Automatic Scan Insertion. =<75)<1+ ;+)6 16;-:<176 1; ,76,=:16/ <0- :7=<16/ 8:7+-;;
&01; 5)3-; 1< 87;;1*4- <7 16+4=,;+)6 47/1+ ?1<07=< 0)>16/ <7 ,-;1/6 1< 16 ,=:16/ *-0)>17:)4
+7,16/
7?->-: <0-:- ):- :=4-; 16 <0- +7,16/ /=1,-C
416-; <0)< 5=;< *- .7447?-, <7 5)3- )=<75)<1+ 16;-:<176 87;C
;1*4-
';16/ )=<75)<1+ 16;-:<176 :-,=+-; <0- +7584-@1<A 7.
<0- *-0)>17:)4 ,-;1/6 )6, -41516)<-; 1<-:)<176 *-+)=;- 7.
;+)6 +47+3 ;3-? ;+)6 +0)16 7:,-:16/ )6, <1516/ 8-:.7:C
5)6+- 1;;=-;
&0- =;- 7. )=<75)<1+ ;+)6 16;-:<176 1; 5),87;;1*4- *A <0- =;- 7. )6 16<-:6)4 <774 <0)< 8-:.7:5; 16;-:<176
)6, 78<151B)<176
+018 16 ?01+0 <0- 8:7+-;;-; ,-;+:1*-, )*7>- 0)>- *--6
)8841-, 1; ) !"% % <0)< 1; =;-, 16 #; (C<-:516)4;
<;
5)16 .=6+<176; ):- 5-57:A )6, ,)<) 8)<0 +76<:74
&0- +018
+76<)16; <:)6;1;<7:; )6, :=6; )< 5=4<184- +47+3
.:-9=-6+1-; 7. )6, !B
7: <01; +018 <0- <1516/ 8)<0; ?1<0 <0- ;5)44-;< <1516/
5):/16 ?-:- 168=< ); +76;<:)16<; .-, <7 <0- -44 84)+-:
-44 5-< )44 7. <0- +76;<:)16<; 76 <0- .1:;< 8);; )6, ;=*;-C
9=-6< <1516/ )6)4A;1; >-:1.1-, <0)< )44 <0- 8)<0; ?-:- ;)<1;.1-,
!7:- 1587:<)6< 67 7<0-: <1516/ >174)<176; ?-:- +:-)<-,
*-+)=;- 7. <0- +76;<:)16<; 76 <0- <1/0<-;< 8)<0;
. <0)< 0),
7++=::-, ?- ?-:- 8:-8):-, <7 -@-:+1;- <0- %A678;A; 16C
84)+- 78<151B)<176 .47?
&01; .47? ,7-; 16C84)+- =8 )6, ,7?6
;1B16/ 7. +-44 ,:1>-; ); 6-+-;;):A <7 5--< <1516/ +76;<:)16<;
&01; ;<-8 8:7>-, <7 *- =66-+-;;):A .7: 7=: (C<-:516)4 %
&0- ?1:- 47), 57,-4; ?-:- ),-9=)<-
&0- 5=4<184- +47+3 ,75)16; 76 <0- % ):- )44 ,-:1>-, .:75
) C!B 168=< +47+3
&0- +018 0); <0:-- ,75)16; )6,
-)+0 +76<)16; )88:7@15)<-4A .418C.478;
&7 5--< 8-:.7:C
5)6+- /7)4; <0- ;3-? )+:7;; )44 7. <0-;- ,75)16; 0), <7 *4-;; <0)6 6; )6, <0- 16;-:<176 ,-4)A; 0), <7 *- 5)<+0-,
?1<016 6;
.<-: 84)+-5-6< )6, :7=<16/ +47+3 ,-4)A )6,
;3-? >-:1.1+)<176 ?); ,76- =;16/ <0- 0-+3!)<- $ -@<:)+C
<176 <774
1/
;07?; <0- %81+- :-;=4<; 7*<)16-, 76 76:-8:-;-6<)<1>- +47+3 <:--
44 +47+3 <:--; ?-:- .7=6, <7 0)>)++-8<)*4- ;3-?
&01; <1/0< +47+3 ;3-? ?); ) 3-A .)+<7: 16
)+01->16/ <0- %; )//:-;;1>- 8-:.7:5)6+- /7)4;
* CheckMate is an artwork verification and parasitic extraction tool from Mentor Graphics Corp.
 Hewlett-Packard Company 1995
550
90
500
80
450
70
400
60
350
Capacitance (fF)
Number of Flip-Flops
100
50
40
300
250
30
200
20
150
10
100
0
6.40
HP C26101SH
Library
HP C26102SH
Library
50
6.45
6.50
6.55
6.60
6.65
6.70
0
Delay (ns)
0
2
4
6
8
10
Fanout
Spice clock delay and skew results.
It is our goal to characterize Cell3's delay calculation to the
point at which we can use its delay numbers for clock skew
verification without the additional complexity of using Spice.
Table II shows the correlation obtained between Cell3 and
Spice for the clocks on the XĆterminal ASIC.
Table II
Cell3 to Spice Correlation
Cell3
Spice
Delta
Best Case
2.84 ns
2.56 ns
-9.9%
Worst Case
2.96 ns
2.57 ns
-13.2%
The results of this correlation are very encouraging. The offset
is relatively constant, and the Cell3 numbers are always
more conservative than the Spice numbers. This is because
Cell3's perĆlayer capacitance constants are intentionally
skewed toward the conservative end of the range.
Wire capacitance versus fanout in two cell libraries. The HP
C26101SH library is the older CMOS26 library.
router model generation provides fully gridded routing and
optimum pin locations, which improves both density and
run time. These factors result in a reduction in average wire
length for a given fanout. The improvement in wire capaciĆ
tance as compared to the previous cell library is shown in
Fig. 7.
Another area of improvement is in the drive sizes of the
cells. The stairstep design"3 approach was used to deterĆ
mine appropriate drive increments. The stairstep design apĆ
proach is a method of sizing gates to provide optimum area
versus performance characteristics for each cell in the liĆ
brary. As a result of using this approach, the HP C26102SH
library provides more drive increments for Synopsys to map
to, avoiding the excessive area penalty imposed when a
higher drive cell must be swapped into a path that is just
missing timing.
The following factors played a part in producing the
results mentioned above and providing a chip that met the
specifications.
Finally, this is the first library to use the more accurate tableĆ
driven Synopsys models. As discussed previously, this allows
more accurate delay calculations and eliminates correlation
issues with other timing verification tools.
Library Design. One of the major contributing factors for
meeting our density and performance goals is the use of
highĆquality libraries such as the new HP C26102SH (0.8 m)
standard cell library. This library is a scaledĆup version of the
HP C14104SH library developed for our CMOS14 (0.5 m)
process.2
Since the HP C26102SH library is a scaledĆup version of the
HP C14104SH library, all these advantages will continue into
the next process generation.
One major improvement introduced with the HP C26102SH
library is that it is tuned for Cell3 while maintaining comĆ
patibility with other routers. For a roughly square core, the
library allows a very even distribution of horizontal and verĆ
tical routing resources. This gives the placer more freedom
to find an optimal solution. The use of advanced layout
techniques, along with the exploitation of new process deĆ
sign rules, allows smaller cells that provide the same funcĆ
tionality as previous library versions. Finally, advanced
 Hewlett-Packard Company 1995
Design Methodology. Our design methodology was carefully
constructed to produce a chip that met aggressive timing
goals in a reasonable amount of time. The 90% wire load
models improved the chances of first time perfect through
the routing cycle, albeit at some loss of performance and die
size. This was an intentional choice designed to minimize the
design cycle time, while still meeting performance targets.
The HDL coding guidelines enabled the creation of a design
that was easily synthesized. They also enabled the use of
automatic scan insertion and test vector generation.
February 1995 HewlettĆPackard Journal
.3&11> '> .2548.3, & 8*9 4+ &:942&9*) 3&2.3, 7:1*8 ):7.3,
8>39-*8.8 9441 (425&9.'.1.9> .88:*8 <*7* 2.3.2.?*) "-*8*
3&2.3, 7*897.(9.438 *1.2.3&9*) 3&2* 7*2&55.3, &3) (7488A
7*+*7*3(.3, 9-74:,-4:9 9-* )*8.,3 +14<
Point Tools. !*;*7&1 0*> 54.39 94418 &7* 3*(*88&7> 94 8:55479
9-* )*8.,3 +14< ).8(:88*) .3 9-.8 5&5*7 !>3458>8 <.9- 9&'1*A
)7.;*3 )*1&> 24)*18 .8 7*6:.7*) 94 574;.)* &((:7&9* 89&9.(
9.2.3, &3&1>8.8 &3) ;&1.) (43897&.398 94 9-* 51&(*7 *11
8
9.2.3,A)7.;*3 51&(*2*39 .8 7*6:.7*) 94 .251*2*39 9-* (7.9.(&1
5&9- 9.2.3, 4:95:9 +742 !>3458>8 3 &:942&9.( 9*89 ,*3*7&A
9.43 " 9441 .8 7*6:.7*) 94 .38*79 &3) 459.2.?* 9-* 8(&3
(-&.3 &:942&9.(&11> &3) 574):(* &557457.&9* 9*89 ;*(9478
19-4:,- <* -&;* '**3 8:((*88+:1 <.9- 9-* 2*9-4)8 )*A
8(7.'*) .3 9-.8 5&5*7 9-*7* &7* 89.11 842* &7*&8 +47
.2574;*2*39
Timing Verification in Synopsys. 1.2.3&9* $*7.14, +:3(9.43&1
9.2.3, 8.2:1&9.43 '> 7*1>.3, 43 !>3458>8 89&9.( 9.2.3,
&3&1>8.8 +47 ;*7.+.(&9.43
More Automation of Clock Insertion. 8 2*39.43*) +:79-*7 (-&7A
&(9*7.?&9.43 4+ *11
8 )*1&> (&1(:1&9.43 .8 3*(*88&7> 94 *1.2.A
3&9* 9-* 3**) +47 !5.(* (14(0 ;*7.+.(&9.43 349-*7 &7*& 4+
.2574;*2*39 -*7* .8 94 <470 <.9- &)*3(* 94 .2574;* 9-*
'&1&3(*) 74:9.3, (&5&'.1.9> 4+ *11
*'7:&7> *<1*99A&(0&7) 4:73&1
Alternate Ways of Prelayout Capacitance Estimation. 9-*7 2*9-A
4)8 +47 &((:7&9* *&71> (&5&(.9&3(* *89.2&9.43 &7* &;&.1&'1*
9-&9 )439 7*6:.7* & 57*1.2.3&7> 74:9* 742.8.3, .2574;*A
2*39 &7*&8 -*7* .3(1:)* :8.3, &);&3(*) +1447 51&33.3, *&7A
1.*7 .3 9-* )*8.,3 (>(1* &3) 3*91.89A'&8*) (&5&(.9&3(* *89.2&A
9.43 9-&9 .3(1:)*8 349 /:89 +&34:9 ':9 49-*7 +&(9478 8:(- &8
*89.2&9*) (-.5 8.?* &3) 9>5*8 4+ (*118 (433*(9*) 94 *&(<.7*
In-Place Optimization. #8* 1*88 (438*7;&9.;* <.7* 14&)8 +47
57*74:9* *89.2&9.43 <.9- *=5&3)*) :8* 4+ 1.308A94A1&>4:9
):7.3, 9-* 8>39-*8.8 &3) 51&(*2*39 1445 94 *3&'1* -.,-*7
5*7+472&3(* <.9- 2.3.2&1 .25&(9 43 (>(1* 9.2*
:3, &3) (4:,&1 @3 59.2&1 !(&3 -&.3 :94A433*(9.43
*9-4)414,> &3) !(&3 !.,3&1 38*79.43 !(-*2* 94 *):(* -.5
7*& 55
A
! &93*7 &943 &79.3*? &3) %4:3 @*;*1452*39 4+ &
*< *38* &3) 4:9*7 3)*5*3)*39 .! 425&9.'1* !9&3)&7)
*11 .'7&7> 144751&3 +47 .! 55 A
&943 @!9&.789*5 .'7&7> *8.,3 "-* 551.(&9.43 4+ 59.2.?&A
9.43 "*(-3.6:*8 94 9-* *8.,3 4+ 9-* ! !9&3)&7) *11 .'7&7>
55 A
 Hewlett-Packard Company 1995
Download