latex + ps + pdf
This commit is contained in:
parent
b1502cea0a
commit
f44588f2b6
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,24 @@
|
|||
# Generic Makefile for TeTeX projet
|
||||
# (C) 1999, Czo
|
||||
# $Id: Makefile,v 1.1 2000/01/20 16:09:58 czo Exp $
|
||||
|
||||
MYFILE=addaccu
|
||||
|
||||
%.eps : %.fig
|
||||
fig2dev -L ps -c -p dummy $*.fig $*.eps
|
||||
|
||||
view : ps
|
||||
gv $(MYFILE).ps
|
||||
|
||||
ps : $(MYFILE).tex
|
||||
latex $(MYFILE).tex
|
||||
dvips $(MYFILE).dvi -o $(MYFILE).ps
|
||||
|
||||
distrib : clean ps
|
||||
ps2pdf $(MYFILE).ps
|
||||
cp -f $(MYFILE).ps ..
|
||||
cp -f $(MYFILE).pdf ..
|
||||
$(MAKE) clean
|
||||
|
||||
clean :
|
||||
rm -f $(MYFILE).ps $(MYFILE).pdf *.log *.dvi *.aux
|
|
@ -0,0 +1,197 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: addaccu.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Wed Oct 18 14:09:38 1995
|
||||
%%For: fred@fado (Frederic PETROT)
|
||||
%%Orientation: Landscape
|
||||
%%BoundingBox: 0 0 186 291
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize A4
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-26.0 -14.0 translate
|
||||
90 rotate
|
||||
1 -1 scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/DrawEllipse {
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y tr xrad yrad sc 0 0 1 startangle endangle arc
|
||||
closepath
|
||||
savematrix setmatrix
|
||||
} def
|
||||
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06299 0.06299 sc
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 2252 1553 m 2252 2273 l 2927 1553 l 2927 1103 l 2252 428 l 2252 1103 l
|
||||
2522 1328 l 2252 1553 l gs 0.00 setgray ef gr gs col-1 s gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
2657 1426 m
|
||||
gs 1 -1 sc (+) col-1 show gr
|
||||
% Polyline
|
||||
n 1622 1532 m 1892 1532 l 1892 2252 l 1622 2252 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 1622 1532 m 1892 1892 l 1622 2252 l gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Ellipse
|
||||
n 1578 1308 37 37 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr
|
||||
|
||||
% Polyline
|
||||
n 1534 1309 m 1263 1173 l 1263 1443 l 1534 1309 l gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2253 2388 m 2523 2388 l 2523 3108 l 2253 3108 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Ellipse
|
||||
n 1532 1352 37 37 0 360 DrawEllipse gs 1.00 setgray ef gr gs col-1 s gr
|
||||
|
||||
% Polyline
|
||||
n 1488 1353 m 1217 1217 l 1217 1487 l 1488 1353 l gs 1.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 1576 1576 m 1846 1576 l 1846 2296 l 1576 2296 l clp gs 1.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2206 1597 m 2206 2317 l 2881 1597 l 2881 1147 l 2206 472 l 2206 1147 l
|
||||
2476 1372 l 2206 1597 l gs 1.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2207 2432 m 2477 2432 l 2477 3152 l 2207 3152 l clp gs 1.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2252 2522 m 2342 2522 l 2342 2927 l 2432 2927 l gs 1.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2207 3152 m 2342 2972 l 2477 3152 l gs col-1 s gr
|
||||
30.000 slw
|
||||
% Polyline
|
||||
n 1846 1935 m 2115 1935 l gs col7 1.00 shd ef gr gs col7 s gr
|
||||
% Polyline
|
||||
n 2565 855 m 2565 586 l gs col7 1.00 shd ef gr gs col7 s gr
|
||||
% Polyline
|
||||
n 2476 2790 m 2745 2790 l gs col7 1.00 shd ef gr gs col7 s gr
|
||||
% Polyline
|
||||
n 1576 1350 m 1845 1350 l gs col7 1.00 shd ef gr gs col7 s gr
|
||||
% Polyline
|
||||
n 2881 1350 m 3150 1350 l gs col7 1.00 shd ef gr gs col7 s gr
|
||||
/Courier-Bold findfont 270.00 scalefont setfont
|
||||
2565 1440 m
|
||||
gs 1 -1 sc (+) col-1 show gr
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 1576 1576 m 1846 1936 l 1576 2296 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 2881 1351 m 2881 1351 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 1846 1936 m 2206 1936 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 2340 2565 m 2340 2790 l gs col-1 s gr
|
||||
n 2370.00 2670.00 m 2340.00 2790.00 l 2310.00 2670.00 l 2340.50 2670.50 l 2370.00 2670.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 1216 1351 m 901 1351 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 1711 1576 m 1711 1351 l 1576 1351 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 2566 856 m 2566 541 l 4141 541 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 901 3286 m 2341 3286 l 2341 3151 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 2476 2790 m 3556 2790 l 3556 1350 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 2476 2791 m 3556 2791 l 3556 1351 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 1126 2116 m 1126 2791 l 2206 2791 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 901 1756 m 1576 1756 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 1126 2116 m 1576 2116 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 901 811 m 2206 811 l gs col-1 s gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
225 855 m
|
||||
gs 1 -1 sc (b[3:0]) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
225 3330 m
|
||||
gs 1 -1 sc (ck) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
4185 1395 m
|
||||
gs 1 -1 sc (s[3:0]) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
4230 585 m
|
||||
gs 1 -1 sc (cout) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
225 1800 m
|
||||
gs 1 -1 sc (a[3:0]) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
225 1395 m
|
||||
gs 1 -1 sc (sel) col-1 show gr
|
||||
% Polyline
|
||||
n 2881 1351 m 4141 1351 l gs col-1 s gr
|
||||
$F2psEnd
|
||||
restore
|
|
@ -0,0 +1,88 @@
|
|||
#FIG 3.1
|
||||
Portrait
|
||||
Center
|
||||
Metric
|
||||
1200 2
|
||||
6 1214 1214 1574 1529
|
||||
1 3 0 1 -1 -1 5 0 0 0.0000000 1 0.000 1532 1352 37 37 1532 1352 1558 1379
|
||||
2 1 0 1 -1 -1 5 0 0 0.000 0 0 7 0 0 4
|
||||
1488 1353 1217 1217 1217 1487 1488 1353
|
||||
-6
|
||||
6 1619 1529 1934 2294
|
||||
2 2 0 1 -1 -1 10 0 20 0.000 0 0 7 0 0 5
|
||||
1622 1532 1892 1532 1892 2252 1622 2252 1622 1532
|
||||
2 1 0 1 -1 -1 10 0 20 0.000 0 0 7 0 0 3
|
||||
1622 1532 1892 1892 1622 2252
|
||||
-6
|
||||
6 2249 404 2969 2294
|
||||
2 1 0 1 -1 -1 10 0 20 0.000 0 0 7 0 0 8
|
||||
2252 1553 2252 2273 2927 1553 2927 1103 2252 428 2252 1103
|
||||
2522 1328 2252 1553
|
||||
4 0 -1 10 0 14 12 0.0000000 4 75 105 2657 1426 +\001
|
||||
-6
|
||||
6 1259 1169 1619 1484
|
||||
1 3 0 1 -1 -1 10 0 20 0.0000000 1 0.000 1578 1308 37 37 1578 1308 1604 1335
|
||||
2 1 0 1 -1 -1 10 0 20 0.000 0 0 7 0 0 4
|
||||
1534 1309 1263 1173 1263 1443 1534 1309
|
||||
-6
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
1846 1936 2206 1936
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 1
|
||||
2881 1351
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
2881 1351 4141 1351
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
901 811 2206 811
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
1126 2116 1576 2116
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
901 1756 1576 1756
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 3
|
||||
1126 2116 1126 2791 2206 2791
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 3
|
||||
2476 2791 3556 2791 3556 1351
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 3
|
||||
901 3286 2341 3286 2341 3151
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 3
|
||||
2566 856 2566 541 4141 541
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 3
|
||||
1711 1576 1711 1351 1576 1351
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
1216 1351 901 1351
|
||||
2 2 0 1 -1 -1 5 0 0 0.000 0 0 7 0 0 5
|
||||
1576 1576 1846 1576 1846 2296 1576 2296 1576 1576
|
||||
2 2 0 1 -1 -1 10 0 20 0.000 0 0 7 0 0 5
|
||||
2253 2388 2523 2388 2523 3108 2253 3108 2253 2388
|
||||
2 1 0 1 -1 -1 0 0 -1 0.000 0 0 7 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
2340 2565 2340 2790
|
||||
2 1 0 1 -1 -1 1 0 -1 0.000 0 0 7 0 0 3
|
||||
1576 1576 1846 1936 1576 2296
|
||||
2 1 0 1 -1 -1 3 0 0 0.000 0 0 7 0 0 4
|
||||
2252 2522 2342 2522 2342 2927 2432 2927
|
||||
2 2 0 1 -1 -1 4 0 0 0.000 0 0 7 0 0 5
|
||||
2207 2432 2477 2432 2477 3152 2207 3152 2207 2432
|
||||
2 1 0 1 -1 -1 3 0 -1 0.000 0 0 7 0 0 3
|
||||
2207 3152 2342 2972 2477 3152
|
||||
2 1 0 1 -1 -1 5 0 0 0.000 0 0 7 0 0 8
|
||||
2206 1597 2206 2317 2881 1597 2881 1147 2206 472 2206 1147
|
||||
2476 1372 2206 1597
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 3
|
||||
2476 2790 3556 2790 3556 1350
|
||||
2 1 0 3 7 7 2 0 20 0.000 0 0 -1 0 0 2
|
||||
2476 2790 2745 2790
|
||||
2 1 0 3 7 7 2 0 20 0.000 0 0 -1 0 0 2
|
||||
2881 1350 3150 1350
|
||||
2 1 0 3 7 7 2 0 20 0.000 0 0 -1 0 0 2
|
||||
1846 1935 2115 1935
|
||||
2 1 0 3 7 7 2 0 20 0.000 0 0 -1 0 0 2
|
||||
2565 855 2565 586
|
||||
2 1 0 3 7 7 2 0 20 0.000 0 0 -1 0 0 2
|
||||
1576 1350 1845 1350
|
||||
4 0 -1 0 0 14 12 0.0000000 4 165 630 225 855 b[3:0]\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 135 210 225 3330 ck\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 165 630 4185 1395 s[3:0]\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 120 420 4230 585 cout\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 165 630 225 1800 a[3:0]\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 135 315 225 1395 sel\001
|
||||
4 0 -1 1 0 14 18 0.0000000 4 150 165 2565 1440 +\001
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,246 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: hierarchy.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Thu Oct 12 13:34:26 1995
|
||||
%%For: fred@fado (Frederic PETROT)
|
||||
%%Orientation: Portrait
|
||||
%%BoundingBox: 0 0 617 309
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize A4
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-60.0 380.0 translate
|
||||
1 -1 scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/DrawEllipse {
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y tr xrad yrad sc 0 0 1 startangle endangle arc
|
||||
closepath
|
||||
savematrix setmatrix
|
||||
} def
|
||||
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06299 0.06299 sc
|
||||
7.500 slw
|
||||
% Ellipse
|
||||
n 4636 5446 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 1531 5446 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
1321 5468 m
|
||||
gs 1 -1 sc (ms_y) col0 show gr
|
||||
% Ellipse
|
||||
n 2836 3466 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
2626 3511 m
|
||||
gs 1 -1 sc (core) col0 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
5131 3468 m
|
||||
gs 1 -1 sc (pi_sp ) col0 show gr
|
||||
% Ellipse
|
||||
n 5446 3443 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 7112 3444 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
6744 3489 m
|
||||
gs 1 -1 sc (piot_sp) col0 show gr
|
||||
% Ellipse
|
||||
n 8708 3443 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
8393 3488 m
|
||||
gs 1 -1 sc (pck_sp) col0 show gr
|
||||
% Ellipse
|
||||
n 10261 3466 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
10103 3481 m
|
||||
gs 1 -1 sc (...) col0 show gr
|
||||
% Ellipse
|
||||
n 6211 5446 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
6053 5461 m
|
||||
gs 1 -1 sc (...) col0 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
3773 1688 m
|
||||
gs 1 -1 sc (addaccu) col0 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
4426 5491 m
|
||||
gs 1 -1 sc (n1_y) col0 show gr
|
||||
% Ellipse
|
||||
n 3061 5423 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
2798 5468 m
|
||||
gs 1 -1 sc (na2_y) col0 show gr
|
||||
% Ellipse
|
||||
n 4141 1621 478 478 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 4544 5534 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 5354 3531 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 1439 5534 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 2969 5511 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 2744 3554 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 6119 5534 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 4049 1709 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 7020 3532 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 8616 3531 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr
|
||||
|
||||
% Ellipse
|
||||
n 10169 3554 478 478 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr
|
||||
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
5039 3556 m
|
||||
gs 1 -1 sc (pi_sp ) col-1 show gr
|
||||
% Polyline
|
||||
n 4320 2205 m 5040 3060 l gs col-1 s gr
|
||||
n 4985.65 2948.89 m 5040.00 3060.00 l 4939.76 2987.53 l 4963.20 2968.71 l 4985.65 2948.89 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 4365 2160 m 6795 3015 l gs col-1 s gr
|
||||
n 6691.76 2946.87 m 6795.00 3015.00 l 6671.85 3003.47 l 6682.30 2975.67 l 6691.76 2946.87 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 4410 2115 m 8325 3105 l gs col-1 s gr
|
||||
n 8216.02 3046.50 m 8325.00 3105.00 l 8201.31 3104.67 l 8209.16 3076.08 l 8216.02 3046.50 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 4455 2070 m 9810 3105 l gs col-1 s gr
|
||||
n 9697.87 3052.77 m 9810.00 3105.00 l 9686.49 3111.68 l 9692.68 3082.73 l 9697.87 3052.77 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2565 4050 m 1530 4995 l gs col-1 s gr
|
||||
n 1638.85 4936.24 m 1530.00 4995.00 l 1598.39 4891.93 l 1619.12 4914.59 l 1638.85 4936.24 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2745 4095 m 2970 4995 l gs col-1 s gr
|
||||
n 2970.00 4871.31 m 2970.00 4995.00 l 2911.79 4885.86 l 2941.40 4879.08 l 2970.00 4871.31 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 2970 4095 m 4275 5040 l gs col-1 s gr
|
||||
n 4195.40 4945.32 m 4275.00 5040.00 l 4160.21 4993.92 l 4178.31 4970.12 l 4195.40 4945.32 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3105 4050 m 5805 5040 l gs col-1 s gr
|
||||
n 5702.66 4970.52 m 5805.00 5040.00 l 5682.01 5026.86 l 5692.83 4999.19 l 5702.66 4970.52 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
% Polyline
|
||||
n 3735 2160 m 3015 3060 l gs col-1 s gr
|
||||
n 3113.39 2985.04 m 3015.00 3060.00 l 3066.54 2947.55 l 3090.46 2966.80 l 3113.39 2985.04 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
1229 5556 m
|
||||
gs 1 -1 sc (ms_y) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
2706 5556 m
|
||||
gs 1 -1 sc (na2_y) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
4334 5579 m
|
||||
gs 1 -1 sc (n1_y) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
3681 1776 m
|
||||
gs 1 -1 sc (addaccu) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
6652 3577 m
|
||||
gs 1 -1 sc (piot_sp) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
8301 3576 m
|
||||
gs 1 -1 sc (pck_sp) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
5961 5549 m
|
||||
gs 1 -1 sc (...) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
10011 3569 m
|
||||
gs 1 -1 sc (...) col-1 show gr
|
||||
/Courier-Bold findfont 180.00 scalefont setfont
|
||||
2534 3599 m
|
||||
gs 1 -1 sc (core) col-1 show gr
|
||||
$F2psEnd
|
||||
restore
|
|
@ -0,0 +1,98 @@
|
|||
#FIG 3.1
|
||||
Portrait
|
||||
Center
|
||||
Metric
|
||||
1200 2
|
||||
6 5039 3419 5669 3644
|
||||
4 0 -1 0 0 14 12 0.0000000 4 180 630 5039 3556 pi_sp \001
|
||||
-6
|
||||
6 1034 1124 10754 5939
|
||||
6 1034 4949 2024 5939
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 1531 5446 478 478 1531 5446 1891 5761
|
||||
4 0 0 6 0 14 12 0.0000000 4 135 420 1321 5468 ms_y\001
|
||||
-6
|
||||
6 2339 2969 3329 3959
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 2836 3466 478 478 2836 3466 3196 3781
|
||||
4 0 0 6 0 14 12 0.0000000 4 90 420 2626 3511 core\001
|
||||
-6
|
||||
6 4949 2924 5939 3959
|
||||
6 5129 3329 5804 3554
|
||||
4 0 0 6 0 14 12 0.0000000 4 180 630 5131 3468 pi_sp \001
|
||||
-6
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 5446 3443 478 478 5446 3443 5806 3758
|
||||
-6
|
||||
6 6614 2924 7604 3959
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 7112 3444 478 478 7112 3444 7472 3759
|
||||
4 0 0 6 0 14 12 0.0000000 4 180 735 6744 3489 piot_sp\001
|
||||
-6
|
||||
6 8189 2924 9224 3959
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 8708 3443 478 478 8708 3443 9068 3758
|
||||
4 0 0 6 0 14 12 0.0000000 4 180 630 8393 3488 pck_sp\001
|
||||
-6
|
||||
6 9764 2969 10754 3959
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 10261 3466 478 478 10261 3466 10621 3781
|
||||
4 0 0 6 0 14 12 0.0000000 4 30 315 10103 3481 ...\001
|
||||
-6
|
||||
6 5714 4949 6704 5939
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 6211 5446 478 478 6211 5446 6571 5761
|
||||
4 0 0 6 0 14 12 0.0000000 4 30 315 6053 5461 ...\001
|
||||
-6
|
||||
6 4139 4949 5129 5939
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 4636 5446 478 478 4636 5446 4996 5761
|
||||
4 0 0 6 0 14 12 0.0000000 4 180 420 4426 5491 n1_y\001
|
||||
-6
|
||||
6 2564 4904 3554 5939
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 3061 5423 478 478 3061 5423 3421 5738
|
||||
4 0 0 6 0 14 12 0.0000000 4 180 525 2798 5468 na2_y\001
|
||||
-6
|
||||
6 3644 1124 4634 2114
|
||||
1 3 0 1 0 7 6 0 0 0.0000000 1 0.000 4141 1621 478 478 4141 1621 4501 1936
|
||||
4 0 0 6 0 14 12 0.0000000 4 135 735 3773 1688 addaccu\001
|
||||
-6
|
||||
-6
|
||||
1 3 0 1 0 7 5 0 20 0.0000000 1 0.000 5354 3531 478 478 5354 3531 5714 3846
|
||||
1 3 0 1 0 7 5 0 20 0.0000000 1 0.000 1439 5534 478 478 1439 5534 1799 5849
|
||||
1 3 0 1 0 7 5 0 20 0.0000000 1 0.000 2969 5511 478 478 2969 5511 3329 5826
|
||||
1 3 0 1 0 7 5 0 20 0.0000000 1 0.000 4544 5534 478 478 4544 5534 4904 5849
|
||||
1 3 0 1 0 7 5 0 20 0.0000000 1 0.000 6119 5534 478 478 6119 5534 6479 5849
|
||||
1 3 0 1 0 7 5 0 20 0.0000000 1 0.000 4049 1709 478 478 4049 1709 4409 2024
|
||||
1 3 0 1 0 7 5 0 20 0.0000000 1 0.000 7020 3532 478 478 7020 3532 7380 3847
|
||||
1 3 0 1 0 7 5 0 20 0.0000000 1 0.000 8616 3531 478 478 8616 3531 8976 3846
|
||||
1 3 0 1 -1 7 5 0 20 0.0000000 1 0.000 10169 3554 478 478 10169 3554 10529 3869
|
||||
1 3 0 1 -1 7 5 0 20 0.0000000 1 0.000 2744 3554 478 478 2744 3554 3104 3869
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
4320 2205 5040 3060
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
4365 2160 6795 3015
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
4410 2115 8325 3105
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
4455 2070 9810 3105
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
2565 4050 1530 4995
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
2745 4095 2970 4995
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
2970 4095 4275 5040
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
3105 4050 5805 5040
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
|
||||
1 1 1.00 60.00 120.00
|
||||
3735 2160 3015 3060
|
||||
4 0 -1 0 0 14 12 0.0000000 4 135 420 1229 5556 ms_y\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 180 525 2706 5556 na2_y\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 180 420 4334 5579 n1_y\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 135 735 3681 1776 addaccu\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 180 735 6652 3577 piot_sp\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 180 630 8301 3576 pck_sp\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 30 315 5961 5549 ...\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 30 315 10011 3569 ...\001
|
||||
4 0 -1 0 0 14 12 0.0000000 4 90 420 2534 3599 core\001
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,21 @@
|
|||
# Generic Makefile for TeTeX projet
|
||||
# (C) 1999, Czo
|
||||
# $Id: Makefile,v 1.1 2000/01/20 16:10:03 czo Exp $
|
||||
|
||||
MYFILE=amd2901
|
||||
|
||||
view : ps
|
||||
gv $(MYFILE).ps
|
||||
|
||||
ps : $(MYFILE).tex
|
||||
latex $(MYFILE).tex
|
||||
dvips $(MYFILE).dvi -o $(MYFILE).ps
|
||||
|
||||
distrib : clean ps
|
||||
ps2pdf $(MYFILE).ps
|
||||
cp -f $(MYFILE).ps ..
|
||||
cp -f $(MYFILE).pdf ..
|
||||
$(MAKE) clean
|
||||
|
||||
clean :
|
||||
rm -f $(MYFILE).ps $(MYFILE).pdf *.log *.dvi *.aux
|
|
@ -0,0 +1,647 @@
|
|||
%%%%%%%%%%%%%%%%%%%%
|
||||
%
|
||||
% The amd2901 tutorial.
|
||||
% Modified by czo for Alliance release 4.0 (01/2000)
|
||||
% TODO : no fully working, needs some adjustements
|
||||
% $Id: amd2901.tex,v 1.1 2000/01/20 16:10:03 czo Exp $
|
||||
%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\documentclass[11pt,a4]{article}
|
||||
|
||||
\textwidth 21.0cm
|
||||
|
||||
\oddsidemargin -5.0cm
|
||||
\evensidemargin -2.5in
|
||||
|
||||
\usepackage{picinpar}
|
||||
\usepackage{a4}
|
||||
\def\S#1{\protect\makebox[\mylength][l]{\noindent#1}}
|
||||
|
||||
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{center}
|
||||
\Huge\bf TUTORIAL : AMD 2901
|
||||
\end{center}
|
||||
|
||||
Welcome to the {\bf ALLIANCE} CAD system.\\
|
||||
The goal of this tutorial is to present a typical design-flow of a
|
||||
simple 4 bits processor (AMD2901), using the {\bf ALLIANCE} tools.
|
||||
|
||||
The tools used here are :
|
||||
|
||||
\begin{itemize}
|
||||
\item {\bf asimut} : {\bf VHDL} compiler and simulator.
|
||||
\item {\bf genlib} : Net-List capture.
|
||||
\item {\bf scr} : Standard Cell placer and router.
|
||||
\item {\bf ring} : Core to pads router.
|
||||
\item {\bf lynx} : Symbolic layout extractor.
|
||||
\item {\bf lvx} : Net-List comparator.
|
||||
\item {\bf druc} : Design rule checker.
|
||||
\item {\bf graal} : Graphic layout editor.
|
||||
\item {\bf yagle} : Functional abstractor.
|
||||
\item {\bf proof} : Formal proof between two behavioral descriptions.
|
||||
\item {\bf s2r} : Symbolic to real layout converter.
|
||||
\item {\bf tas} : Timing Analysis static.
|
||||
\end{itemize}
|
||||
At any time you can get information on any {\bf ALLIANCE} tool using
|
||||
the command :\\
|
||||
\\
|
||||
\fbox{
|
||||
{\bf $>$ man $<$tool name$>$}
|
||||
}\\
|
||||
\\
|
||||
All the available documentation is described in the {\bf README} file.
|
||||
This tutorial doesn't contain a description of the {\bf AMD2901}, but
|
||||
the methodology used in {\bf ALLIANCE} to produce it.
|
||||
Nevertheless, you will find in the file {\bf AMD2901\_doc.ps.tar},
|
||||
the original data-sheet of the circuit.
|
||||
To uncompress the sheets, use the {\bf UNIX} command :\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$tar xvf AMD2901\_doc.ps.tar} \\
|
||||
{\bf $>$uncompress AMD2901*.Z}
|
||||
}}\\
|
||||
A GIF format of the data-sheet is also available in the file {\bf AMD2901\_doc.gif.tar}.
|
||||
\\
|
||||
The design-flow used in this tutorial is composed of five steps :
|
||||
\begin{itemize}
|
||||
\item {\bf Step 1} : Behavioural description ({\bf VHDL} model) and simulation.
|
||||
\item {\bf Step 2} : Generation and validation of the structural description
|
||||
(gate net-list).
|
||||
\item {\bf Step 3} : Physical design layout (Place and route).
|
||||
\item {\bf Step 4} : Extraction and verification.
|
||||
\item {\bf Step 5} : Timing analysis.
|
||||
\item {\bf Step 6} : Chip finishing.
|
||||
\end{itemize}
|
||||
|
||||
In order to build the chip in about two hours, all the source files
|
||||
are provided with this tutorial :
|
||||
\begin{itemize}
|
||||
\item {\bf amd.vbe} : {\bf VHDL} behavioural model.
|
||||
\item {\bf pattern.pat} : Simulation Patterns.
|
||||
\item {\bf chip.c} : Chip structural description.
|
||||
\item {\bf chip.rin} : Pads placement (for {\bf ring}).
|
||||
\item {\bf heart.scr} : Connectors placement (for {\bf scr}).
|
||||
\item {\bf chip.inf} : Registers renaming (for {\bf desb}).
|
||||
\end{itemize}
|
||||
|
||||
You will use the {\bf ALLIANCE} tools to validate these input files
|
||||
and to build the physical layout.
|
||||
The output is a {\bf CIF} layout file ready for the foundry.
|
||||
|
||||
To build the chip you can :
|
||||
\begin{itemize}
|
||||
\item - run the {\bf UNIX} commands in the order indicated by this tutorial.
|
||||
\item - build automatically the entire {\bf AMD2901 CHIP} using the command : \\
|
||||
\\
|
||||
\fbox{
|
||||
{\bf $>$ make}
|
||||
}\\
|
||||
\\
|
||||
If you want to start again this example from the begining,
|
||||
you just have to type :\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ make clean} \ \\
|
||||
{\bf $>$ make}
|
||||
}}
|
||||
\end{itemize}
|
||||
|
||||
All {\bf ALLIANCE} tools use a set of {\bf UNIX} environment variables.
|
||||
These variables are set by the {\bf UNIX} command ``export''.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ MBK\_WORK\_LIB=.} \\
|
||||
{\bf $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb} \\
|
||||
{\bf $>$ export MBK\_WORK\_LIB MBK\_CATA\_LIB}
|
||||
}}
|
||||
|
||||
\begin{itemize}
|
||||
\item{\bf MBK\_CATA\_LIB :} This variable defines all paths to the directories
|
||||
containing the {\bf ALLIANCE} predefined cell libraries.
|
||||
\item{\bf MBK\_WORK\_LIB :} This variable defines the working directory :
|
||||
all user files will be written in this directory.
|
||||
\end{itemize}
|
||||
Some of the path names have to be modified in order to correspond to your particular installation of Alliance, in this tutorial we will assume that the directory structure of the sources files has not been altered
|
||||
In this tutorial, the commands which are inside [ ] are preset.
|
||||
If you stay in the same shell during the making of the {\bf AMD2901},
|
||||
you don't have to set again these environment variables.
|
||||
|
||||
\section{Behavioural specification}
|
||||
|
||||
\subsection{Behavioural model}
|
||||
|
||||
The circuit behaviour is described in the amd.vbe file using the
|
||||
{\bf ALLIANCE VHDL} subset (see {\it man vhdl} and {\it man vbe}).
|
||||
You must run the {\bf VHDL} compiler to validate the {\bf VHDL}
|
||||
file syntax.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [$>$ MBK\_WORK\_LIB=.]}\\
|
||||
{\bf [$>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [$>$ export MBK\_CATA\_LIB MBK\_WORK\_LIB]}\\
|
||||
{\bf $>$ asimut -b -c amd}
|
||||
}
|
||||
}
|
||||
\begin{itemize}
|
||||
\item {\bf amd} is the filename of the behavioural description ({\bf amd.vbe}).
|
||||
\item {\bf -b} means that the file is a pure behavioural description.
|
||||
\item {\bf -c} stands for compilation only (compilability is checked,
|
||||
no simulation is performed).
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Simulation patterns}
|
||||
As you have specified a formal specification,
|
||||
you have to define a set of simulation patterns.
|
||||
The same patterns will be used to validate each design step
|
||||
from specification to physical layout.
|
||||
\\
|
||||
The file {\bf pattern.pat} is given as an example.
|
||||
|
||||
\subsection{Simulation}
|
||||
You have now a logical description of your circuit, and a list of patterns.
|
||||
You can run the zero-delay VHDL simulator {\bf asimut}.
|
||||
You have to set up some new environment variables specific to {\bf asimut}.\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ VH\_MAXERR=10}\\
|
||||
{\bf $>$ export VH\_MAXERR}
|
||||
}
|
||||
}
|
||||
|
||||
\begin{itemize}
|
||||
\item
|
||||
{\bf VH\_MAXERR} : The maximum number of errors accepted before {\bf asimut} stops simulation.
|
||||
\end{itemize}
|
||||
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ VH\_PATSFX=pat] }\\
|
||||
{\bf $>$ export VH\_PATSFX]}
|
||||
}}
|
||||
|
||||
\begin{itemize}
|
||||
\item {\bf VH\_PATSFX} the extension of simulation patterns file.
|
||||
\end{itemize}
|
||||
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [$>$ VH\_MAXERR=10]}\\
|
||||
{\bf [$>$ VH\_PATSFX=pat]}\\
|
||||
{\bf [$>$ MBK\_WORK\_LIB=.]}\\
|
||||
{\bf [$>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [$>$ export MBK\_CATA\_LIB VH\_MAXERR VH\_PATSFX MBK\_WORK\_LIB]}\\
|
||||
{\bf $>$ asimut -b amd pattern result\_beh}
|
||||
}
|
||||
}
|
||||
\begin{itemize}
|
||||
\item {\bf amd} : is the filename of the description ({\bf amd.vbe}).
|
||||
\item {\bf pattern} : is the filename for the input patterns ({\bf pattern.pat}).
|
||||
\item {\bf result\_beh} : is the filename for the resulting patterns ({\bf result\_beh.pat}).
|
||||
\item {\bf -b} : means that the {\bf amd} file is a pure behavioural description.
|
||||
\end{itemize}
|
||||
|
||||
The input pattern file can provide the expected outputs.
|
||||
Any difference between predicted outputs in {\bf pattern.pat} and simulation
|
||||
results will be reported as commentary
|
||||
on the screen and in {\bf result\_beh.pat}. This output file may be used again
|
||||
for an another simulation, since it has the same format as the input file.
|
||||
|
||||
\section{Structural Description}
|
||||
|
||||
\subsection{Structural Design}
|
||||
|
||||
The aim of this step is to build the gate level schematic
|
||||
corresponding to the behavioural specification.
|
||||
|
||||
We must instantiate and connect logical gates and pads,
|
||||
supplied in the standard cell library {\bf scr} and the pad
|
||||
library {\bf ring}.
|
||||
To do this, {\bf ALLIANCE} doesn't use a schematic editor
|
||||
but the procedural language {\bf genlib}
|
||||
which is a set of C functions (see {\it man genlib}).
|
||||
|
||||
The structural description of the {\bf AMD2901} follows a hierarchical
|
||||
approach.
|
||||
|
||||
\begin{itemize}
|
||||
\item First, each functionnal block is described as a separate gate net-list.
|
||||
There are five blocks : {\bf accu, alu, ram, muxe, muxout}.
|
||||
\item The next hierarchical level is the {\bf heart}
|
||||
that interconnects these five blocks among each others.
|
||||
\item The final hierarchical level is the {\bf chip}
|
||||
that connects the {\bf heart} to the {\bf pads}.
|
||||
\end {itemize}
|
||||
|
||||
The {\bf chip.c} file uses the {\bf genlib} language to describe
|
||||
these 7 hierarchical blocs.
|
||||
|
||||
The {\bf ALLIANCE} system accepts several external file formats for net-list
|
||||
(EDIF, VHDL, SPICE, ALLIANCE, VLSI).
|
||||
Environment variables allow to set the formats.
|
||||
The {\bf .vst} extension corresponds to the structural {\bf VHDL}.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ MBK\_IN\_LO=vst}\\
|
||||
{\bf $>$ MBK\_OUT\_LO=vst} \\
|
||||
{\bf $>$ export MBK\_OUT\_LO MBK\_IN\_LO}
|
||||
}}
|
||||
|
||||
All net-list files created and used by {\bf genlib} will now
|
||||
be structural {\bf VHDL}.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_LO=vst ]}\\
|
||||
{\bf [ $>$ MBK\_OUT\_LO=vst ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_IN\_LO MBK\_OUT\_LO MBK\_WORK\_LIB]}\\
|
||||
{\bf $>$ genlib -v chip}
|
||||
}}
|
||||
|
||||
The 7 files {\bf alu.vst accu.vst ram.vst muxe.vst muxout.vst
|
||||
heart.vst chip.vst} have been created.
|
||||
|
||||
\subsection{Structural Model Simulation}
|
||||
|
||||
The various net-list files we have created represent the structural
|
||||
description that should be validated by simulation, using the same patterns as in step 1.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_LO=vst ]}\\
|
||||
{\bf [ $>$ VH\_PATSFX=pat ]}\\
|
||||
{\bf [ $>$ VH\_MAXERR=10 ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_IN\_LO VH\_PATSFX}\\
|
||||
\hspace*{0.3 in}\bf VH\_MAXERR MBK\_WORK\_LIB ]\\
|
||||
{\bf $>$ asimut chip pattern result\_str}
|
||||
}
|
||||
}
|
||||
|
||||
\begin{itemize}
|
||||
\item {\bf chip} is the structural input file ({\bf chip.vst}).
|
||||
\item {\bf pattern} : is the filename for the input patterns ({\bf pattern.pat}).
|
||||
\item {\bf result\_str} : is filename for the resulting patterns
|
||||
({\bf result\_str.pat}).
|
||||
\end{itemize}
|
||||
|
||||
Note the {\bf -b} option does not appear any more, since we now have a
|
||||
structural model.
|
||||
|
||||
Any new error appearing will be reported in the {\bf result\_str.pat} file.
|
||||
You can try to introduce a schematic error by modifying the {\bf chip.c} file,
|
||||
running {\bf genlib} and {\bf asimut} to see the errors.
|
||||
\section{Physical Design}
|
||||
|
||||
Building the heart, and routing the heart to the pads are quite different jobs.
|
||||
So we use different tools.
|
||||
|
||||
\subsection{Routing the heart}
|
||||
|
||||
{\bf Scr} is a standard cell placing and routing tool.
|
||||
|
||||
Here again {\bf ALLIANCE} accepts several external file formats
|
||||
for the symbolic layout.
|
||||
Environment variables allow to set the formats.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ MBK\_IN\_PH=ap}\\
|
||||
{\bf $>$ MBK\_OUT\_PH=ap}\\
|
||||
{\bf [ $>$ export MBK\_IN\_PH MBK\_OUT\_PH }
|
||||
}
|
||||
}
|
||||
\\
|
||||
The hierarchical net-list will be flattenned before routing.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_OUT\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_IN\_LO=vst ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_IN\_PH MBK\_OUT\_PH}\\
|
||||
\hspace*{0.3 in}\bf MBK\_IN\_LO MBK\_WORK\_LIB]\\
|
||||
{\bf $>$ scr -p -r heart}
|
||||
}}
|
||||
\begin{itemize}
|
||||
\item {\bf heart} is the input net-list (heart.vst ) and the connector placement (heart.scr). The output layout will be heart.ap.
|
||||
\item {\bf -p} automatic placement.
|
||||
\item {\bf -r} routing required.
|
||||
|
||||
\end{itemize}
|
||||
The symbolic layout file {\bf heart.ap} has been created.
|
||||
|
||||
\subsection{Heart verification}
|
||||
|
||||
\begin{itemize}
|
||||
\item {DRC} : Druc checks the symbolic layout rules
|
||||
(see {\it man druc})\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf $>$ RDS\_TECHNO\_NAME=\$ALLIANCE\_TOP/etc/cmos\_7.rds }\\
|
||||
{\bf $>$ RDS\_IN=cif }\\
|
||||
{\bf $>$ RDS\_OUT=cif }\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_IN\_PH MBK\_WORK\_LIB}\\
|
||||
\hspace*{0.3 in}\bf RDS\_TECHNO\_NAME RDS\_IN RDS\_OUT]\\
|
||||
{\bf $>$ druc heart}
|
||||
}}\\
|
||||
\\
|
||||
If necessary, {\bf druc} generates an error file ({\bf core.err}).
|
||||
|
||||
\item {Net-list extraction}.
|
||||
|
||||
{\bf Lynx} is a hierarchical extractor that provides a gate net-list.\\
|
||||
In order to avoid name collision, we use another file format
|
||||
for extracted net-list ({\bf .al} format). This new format is used
|
||||
to support additional data : extracted parasitic capacitances.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ MBK\_OUT\_LO=al}\\
|
||||
{\bf $>$ export MBK\_OUT\_LO}
|
||||
}}\\
|
||||
\
|
||||
Then we run the {\bf lynx extractor} :\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_OUT\_LO=al ]}\\
|
||||
{\bf [ $>$ MBK\_IN\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_OUT\_LO MBK\_IN\_PH MBK\_WORK\_LIB]}\\
|
||||
{\bf $>$ lynx heart}
|
||||
}}\\
|
||||
\\
|
||||
The extracted net-list file {\bf heart.al} is created at this level.
|
||||
\item {Net-compare}.
|
||||
|
||||
The next tool is the net-compare {\bf lvx} that performs a netlist comparison
|
||||
between the input net-list {\bf heart.vst} and the extracted net-list
|
||||
{\bf heart.al}, after flattening to the gate level.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_WORK\_LIB]}\\
|
||||
{\bf $>$ lvx vst al heart heart -f}
|
||||
}}
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Routing the chip}
|
||||
|
||||
The pad placement depends on external constraints.
|
||||
The file {\bf chip.rin} defines the pads placement constraints
|
||||
(see {\it man ring}).\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_LO=vst ]}\\
|
||||
{\bf [ $>$ MBK\_IN\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_OUT\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_IN\_LO}\\
|
||||
\hspace*{0.3 in}\bf MBK\_IN\_PH MBK\_OUT\_PH MBK\_WORK\_LIB]\\
|
||||
{\bf $>$ ring chip chip}
|
||||
}}
|
||||
\begin{itemize}
|
||||
\item {\bf chip} The input files chip.vst and chip.rin (the same name
|
||||
{\bf chip} must be used for the two files).
|
||||
\item {\bf chip} The output physical file chip.ap.
|
||||
\end{itemize}
|
||||
|
||||
The symbolic layout file {\bf chip.ap} has been created.
|
||||
At this point, you can display the chip with the layout editor {\bf graal}.\\
|
||||
You can see the chip and the instantiated heart, using the {\bf graal} commands to
|
||||
go through the hierarchy levels.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_WORK\_LIB]}\\
|
||||
{\bf $>$ graal}
|
||||
}}
|
||||
|
||||
\section{Physical Validation}
|
||||
|
||||
The {\bf ALLIANCE} verification tools allow both flat and hierarchical
|
||||
verification. We will use a hierarchical approach.
|
||||
|
||||
\subsection{Chip verification}
|
||||
|
||||
The same procedure used for the heart applies for the entire chip.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ RDS\_TECHNO\_NAME=\$ALLIANCE\_TOP/etc/cmos\_7.rds]}\\
|
||||
{\bf [ $>$ RDS\_IN=cif]}\\
|
||||
{\bf [ $>$ RDS\_OUT=cif] }\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_IN\_PH MBK\_WORK\_LIB}\\
|
||||
\hspace*{0.3 in}\bf RDS\_TECHNO\_NAME RDS\_IN RDS\_OUT]\\
|
||||
{\bf $>$ druc chip}
|
||||
}}\\
|
||||
\\
|
||||
Eventually, {\bf druc} generates an error file ({\bf chip.err}).\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_OUT\_LO=al ]}\\
|
||||
{\bf [ $>$ MBK\_IN\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_OUT\_LO MBK\_IN\_PH]}\\
|
||||
{\bf $>$ lynx chip}
|
||||
}}\\
|
||||
\\
|
||||
The extracted net-list file {\bf chip.al} is created by this step
|
||||
(This net-list instantiates the heart).\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_WORK\_LIB]}\\
|
||||
{\bf $>$ lvx vst al chip chip}
|
||||
}}\\
|
||||
\\
|
||||
Both net-lists {\bf chip.vst} and {\bf chip.al} are flattened to the gate level
|
||||
by {\bf lvx} before comparison (see {\it man catal}).
|
||||
|
||||
\subsection{Chip simulation}
|
||||
|
||||
Finally you can check globally the extracted net-list
|
||||
by applying the original patterns to the extracted net-list.
|
||||
Thanks to the multiformat approach the simulator {\bf asimut}
|
||||
accepts {\bf .al} format as structural input description.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ MBK\_IN\_LO=al}\\
|
||||
{\bf $>$ export MBK\_IN\_LO}
|
||||
}}\\
|
||||
\\
|
||||
Then you have to run {\bf asimut}.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_LO=al]}\\
|
||||
{\bf [ $>$ VH\_PATSFX=pat]}\\
|
||||
{\bf [ $>$ VH\_MAXERR=10]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_IN\_LO}\\
|
||||
\hspace*{0.3 in}\bf VH\_PATSFX VH\_MAXERR MBK\_WORK\_LIB]\\
|
||||
{\bf $>$ asimut chip pattern res\_pattern}
|
||||
}}\\
|
||||
\\
|
||||
To complete the validation of our chip, the functional abstraction followed
|
||||
by the proof must be done.
|
||||
|
||||
\subsection{Functionnal abstraction and formal proof}
|
||||
|
||||
The functional abstraction of the transitor net-list is realized by the tool
|
||||
{\bf yagle} (see {\it man yagle}). {\bf yagle} flattens the chip ({\bf chip.al})
|
||||
to obtain a transistor level description, and abstract then a behavioral description ({\bf chip.vbe}).
|
||||
To keep the coherence of register names between the behavioral description
|
||||
given by {\bf yagle} ({\bf chip.vbe}) and the initial behavioral description
|
||||
({\bf amd.vbe}), a file describing the name's transformation is required.
|
||||
This file is {\bf chip.inf}.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_LO=al ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_CATA\_LIB MBK\_IN\_LO MBK\_WORK\_LIB]}\\
|
||||
{\bf $>$ yagle chip -i -v}
|
||||
}}
|
||||
\begin{itemize}
|
||||
\item {\bf chip} is the input layout ({\bf chip.al}).
|
||||
\item {\bf -i} read the {\bf chip.inf} file.
|
||||
\item {\bf -v} to vectorize the interface of behavioral description.
|
||||
\end{itemize}
|
||||
|
||||
The VHDL DATA FLOW description as been generated : {\bf chip.vbe}\\
|
||||
|
||||
Now you have the abstracted behavioral description ({\bf chip.vbe})
|
||||
and the initial behavioral description ({\bf amd.vbe}).
|
||||
With {\bf proof} (see {\it man proof}), you can check the formal equivalence
|
||||
between the two descriptions.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ export MBK\_WORK\_LIB]}\\
|
||||
{\bf $>$ proof -d amd chip}
|
||||
}}
|
||||
\begin{itemize}
|
||||
\item {\bf chip} is the abstracted file ({\bf chip.vbe}).
|
||||
\item {\bf amd} is the initial behavioral description ({\bf amd.vbe}).
|
||||
\item {\bf -d} displays errors.
|
||||
\end{itemize}
|
||||
|
||||
If you want to see an error you can change one line in the file {\bf amd.vbe}.
|
||||
For example, change the line 301 :\\
|
||||
scout $<=$ NOT accu(3) AND test\_mode ;\\
|
||||
and try {\bf proof} again.
|
||||
|
||||
\section{Timing analysis}
|
||||
With the extracted net list chip.al TAs analyses each path of the circuit taking account of the various capacitances. These results are summarize in a file .ttv In this file we can see the critical path and the correspnding time. So it is possible to know the period of the chip
|
||||
|
||||
You will enter :\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_IN\_LO=al ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ export MBK\_IN\_PH MBK\_WORK\_LIB MBK\_CATA\_LIB ]}\\
|
||||
{\bf $>$ tas chip }
|
||||
}}\\
|
||||
|
||||
\section{Chip finishing}
|
||||
|
||||
Until now we used symbolic layout (all coordinates in {\bf lambda}-units).
|
||||
We should now convert them to real dimensions, creating the physical layout
|
||||
(two output formats are supported : CIF and GDSII).
|
||||
This last step is done by {\bf s2r}.
|
||||
{\bf s2r} performs symbolic to real expansion, gap filling, denotching
|
||||
and instantiates preexisting physical cells
|
||||
(this is necessary for the pads).
|
||||
|
||||
You must define 3 new environment variables :\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ RDS\_TECHNO\_NAME=/\$ALLIANCE\_TOP/etc/prol10.rds} \\
|
||||
{\bf $>$ export RDS\_TECHNO\_NAME}
|
||||
}}\\
|
||||
\\
|
||||
The {\bf prol10.rds} is the technology file that contains the parameters
|
||||
corresponding to the target process.
|
||||
(In this case the target process is 1 micron.)\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ RDS\_OUT= cif} \\
|
||||
{\bf $>$ export RDS\_OUT}
|
||||
}}\\
|
||||
\\
|
||||
Defines the output format.\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf $>$ RDS\_IN=cif}\\
|
||||
{\bf $>$ export RDS\_IN}
|
||||
}}\\
|
||||
\\
|
||||
Defines the input format for the preexisting layout cells (pads).
|
||||
|
||||
You will enter :\\
|
||||
\\
|
||||
\fbox{
|
||||
\shortstack[l]{
|
||||
{\bf [ $>$ MBK\_IN\_PH=ap ]}\\
|
||||
{\bf [ $>$ MBK\_WORK\_LIB=. ]}\\
|
||||
{\bf [ $>$ MBK\_CATA\_LIB=.:/\$ALLIANCE\_TOP/cells/sclib/prol10:/\$ALLIANCE\_TOP/cells/ring/padsymb]}\\
|
||||
{\bf [ $>$ RDS\_TECHNO\_NAME=/\$ALLIANCE\_TOP/etc/prol10.rds ]}\\
|
||||
{\bf [ $>$ RDS\_IN=cif ]}\\
|
||||
{\bf [ $>$ RDS\_OUT=cif]}\\
|
||||
{\bf [ $>$ export RDS\_OUT MBK\_IN\_PH MBK\_WORK\_LIB}\\
|
||||
\hspace*{0.3 in}\bf MBK\_CATA\_LIB RDS\_TECHNO\_NAME RDS\_IN]\\
|
||||
{\bf $>$ s2r -c chip amd2901}
|
||||
}}
|
||||
\begin{itemize}
|
||||
\item {\bf -c} deletes connectors at the highest level of hierarchy.
|
||||
\end{itemize}
|
||||
|
||||
You did it...\\
|
||||
The file produced is {\bf amd2901.cif}.
|
||||
It is ready for the foundry.
|
||||
|
||||
\end{document}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue