| 1 |
2 |
droggen |
%!PS-Adobe-3.0 EPSF-3.0
|
| 2 |
|
|
%%Title: cpu-arch
|
| 3 |
|
|
%%Creator: Xcircuit v3.3
|
| 4 |
|
|
%%CreationDate: Sun Nov 8 11:48:16 2015
|
| 5 |
|
|
%%Pages: 1
|
| 6 |
|
|
%%BoundingBox: 68 68 676 484
|
| 7 |
|
|
%%DocumentNeededResources: font Helvetica font Times-Roman
|
| 8 |
|
|
%%EndComments
|
| 9 |
|
|
%%BeginProlog
|
| 10 |
|
|
%
|
| 11 |
|
|
% PostScript prolog for output from xcircuit
|
| 12 |
|
|
% Version: 3.3
|
| 13 |
|
|
%
|
| 14 |
|
|
% Electrical circuit (and otherwise general) drawing program
|
| 15 |
|
|
%
|
| 16 |
|
|
% Written by Tim Edwards 8/5/93--7/13/05 (tim.edwards@multigig.com)
|
| 17 |
|
|
% The Johns Hopkins University (1993-2004)
|
| 18 |
|
|
% MultiGiG, Inc. (2004-present)
|
| 19 |
|
|
%
|
| 20 |
|
|
%%BeginResource: procset XCIRCproc 3.3 0
|
| 21 |
|
|
%
|
| 22 |
|
|
% supporting definitions --- these are the primary xcircuit types.
|
| 23 |
|
|
|
| 24 |
|
|
/XCIRCsave save def
|
| 25 |
|
|
/topmat matrix currentmatrix def
|
| 26 |
|
|
|
| 27 |
|
|
/fontslant { /slant exch def [1 0 slant 1 0 0]
|
| 28 |
|
|
exch findfont exch makefont dup length dict /ndict exch def
|
| 29 |
|
|
{ 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall
|
| 30 |
|
|
ndict definefont pop} def
|
| 31 |
|
|
/ul { dup type /stringtype eq showflag 1 eq and { gsave
|
| 32 |
|
|
currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_)
|
| 33 |
|
|
false charpath flattenpath pathbbox grestore exch pop 1 index
|
| 34 |
|
|
sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0
|
| 35 |
|
|
rlineto stroke moveto } if } def
|
| 36 |
|
|
/ol { dup type /stringtype eq showflag 1 eq and { gsave gsave
|
| 37 |
|
|
currentpoint topmat setmatrix 2 index stringwidth pop 3 index
|
| 38 |
|
|
true charpath flattenpath pathbbox grestore exch pop
|
| 39 |
|
|
exch pop topmat setmatrix (_) true charpath pathbbox grestore
|
| 40 |
|
|
exch pop 1 index sub setlinewidth exch pop currentpoint
|
| 41 |
|
|
exch 4 1 roll exch sub add moveto pop 0 rlineto stroke
|
| 42 |
|
|
moveto } if } def
|
| 43 |
|
|
/stW { gsave currentpoint newpath moveto true charpath flattenpath
|
| 44 |
|
|
pathbbox pop exch pop sub grestore } def
|
| 45 |
|
|
/Ts {mark Tabs aload pop counttomark 1 add array astore /Tabs exch def Tabs
|
| 46 |
|
|
|
| 47 |
|
|
/Tbn {mark Tabs aload pop counttomark dup 2 add 1 roll cleartomark 1 sub} def
|
| 48 |
|
|
/Tb { 0 1 Tbn {Tabs exch get dup currentpoint pop lt
|
| 49 |
|
|
{currentpoint exch pop moveto exit} {pop} ifelse } for } def
|
| 50 |
|
|
/Tf { Tbn -1 0 {Tabs exch get dup currentpoint pop gt
|
| 51 |
|
|
{currentpoint exch pop moveto exit} {pop} ifelse } for } def
|
| 52 |
|
|
/qS { (aa) stW (a a) stW sub 4 div 0 Kn } def
|
| 53 |
|
|
/hS { qS qS } def
|
| 54 |
|
|
/pspc 0 def
|
| 55 |
|
|
/cf0 { scalefont setfont } bind def
|
| 56 |
|
|
/Kn { dup kY add /kY exch def rmoveto } bind def
|
| 57 |
|
|
/ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
|
| 58 |
|
|
0.33 mul neg Kn} def
|
| 59 |
|
|
/Ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
|
| 60 |
|
|
0.67 mul Kn } def
|
| 61 |
|
|
/ns { 0 kY neg Kn /kY 0 def /fscale 1.0 def xfont0 1.0 cf0 } def
|
| 62 |
|
|
/CR { ns 0 /Bline Bline fscale0 neg add def Bline moveto } def
|
| 63 |
|
|
/cf { dup type /realtype ne {1.0} if exch findfont exch kY 0 eq
|
| 64 |
|
|
{ 40 mul dup /fscale0 exch def cf0 /xfont0 currentfont def}
|
| 65 |
|
|
{fscale0 mul fscale mul cf0} ifelse } def
|
| 66 |
|
|
/ctmk { counttomark dup 2 add -1 roll pop } bind def
|
| 67 |
|
|
/label { gsave translate 0 0 moveto dup scale neg /rotval exch def
|
| 68 |
|
|
/just exch def just 384 and 0 gt {/mshow {pop} def} {/mshow {show}
|
| 69 |
|
|
def} ifelse just 16 and 0 gt {gsave rotval rotate 0 1 dtransform
|
| 70 |
|
|
gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform
|
| 71 |
|
|
gsave pagemat setmatrix idtransform exch grestore dup abs 1e-9 lt
|
| 72 |
|
|
{pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse grestore {-1 /rotval
|
| 73 |
|
|
rotval neg def /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse
|
| 74 |
|
|
exch -1e-9 lt {-1 /rotval rotval neg def /just just dup 12 and
|
| 75 |
|
|
4 ne {12 xor} if def} {1} ifelse scale } if /showflag 0 def
|
| 76 |
|
|
/fspc pspc def /Bline 0 def /Tabs 0 array def /fscale 1.0 def
|
| 77 |
|
|
/kY 0 def gsave dup 1 add copy 0 exch 1 0 dtransform exch atan rotate
|
| 78 |
|
|
{exch dup type /stringtype eq {true charpath flattenpath} {dup type
|
| 79 |
|
|
/arraytype eq {exec} {12 string cvs true charpath flattenpath} ifelse}
|
| 80 |
|
|
ifelse} repeat pop pathbbox grestore 3 -1 roll pop 3 1 roll just
|
| 81 |
|
|
1 and 0 gt {just 2 and 0 gt {exch pop neg fspc sub} {exch sub 0.5
|
| 82 |
|
|
mul neg} ifelse} {pop neg fspc add} ifelse exch Bline exch just 4
|
| 83 |
|
|
and 0 gt {just 8 and 0 gt {exch pop neg fspc sub} {add 0.5 mul neg}
|
| 84 |
|
|
ifelse} {pop neg fspc add} ifelse rotval rotate Kn currentpoint
|
| 85 |
|
|
translate /showflag 1 def /Bline 0 def /Tabs 0 array def /fscale
|
| 86 |
|
|
1.0 def /kY 0 def {dup type /stringtype eq {mshow} {dup type
|
| 87 |
|
|
/arraytype eq {exec} {12 string cvs mshow} ifelse} ifelse} repeat
|
| 88 |
|
|
grestore } def
|
| 89 |
|
|
/pinlabel { 4 index 32 and 0 ne hlevel 0 eq or { /pspc 10 def label
|
| 90 |
|
|
/pspc 0 def } { pop pop pop pop pop {pop} repeat } ifelse } def
|
| 91 |
|
|
/pinglobal { pinlabel } def
|
| 92 |
|
|
/infolabel { pinlabel } def
|
| 93 |
|
|
/graphic { gsave 4 index cvx exec /DataSource get resetfile translate
|
| 94 |
|
|
|
| 95 |
|
|
|
| 96 |
|
|
/scb { setrgbcolor } bind def /sce { defColor aload pop scb } bind def
|
| 97 |
|
|
/cRedef {/defColor currentcolor 3 array astore def} def
|
| 98 |
|
|
/begingate {dup type /dicttype ne {1 dict} if begin % default params
|
| 99 |
|
|
dup type /dicttype ne {1 dict} if begin % instanced params
|
| 100 |
|
|
/hlevel hlevel 1 add def /defColor currentcolor sce 3 array
|
| 101 |
|
|
astore def gsave sce translate 0 0 moveto neg rotate dup abs scale
|
| 102 |
|
|
} bind def
|
| 103 |
|
|
/endgate { /hlevel hlevel 1 sub def grestore defColor aload pop cRedef
|
| 104 |
|
|
scb end end} bind def
|
| 105 |
|
|
|
| 106 |
|
|
/hlevel 0 def
|
| 107 |
|
|
/tmpa [1 0 0 1 0 0] def
|
| 108 |
|
|
/gar {8 8 true tmpa {<c0 c0 00 00 0c 0c 00 00>} imagemask} bind
|
| 109 |
|
|
{8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind
|
| 110 |
|
|
{8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind
|
| 111 |
|
|
{8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind
|
| 112 |
|
|
{8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind
|
| 113 |
|
|
{8 8 true tmpa {<df cf 8f 9f fd fc f8 f9>} imagemask} bind
|
| 114 |
|
|
{8 8 true tmpa {<ff 3f 3f ff ff f3 f3 ff>} imagemask} bind 7 array astore def
|
| 115 |
|
|
/ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll
|
| 116 |
|
|
neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy
|
| 117 |
|
|
gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll
|
| 118 |
|
|
{ 3 index exch 5 exch put dup -8 3 index { 3 index
|
| 119 |
|
|
exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def
|
| 120 |
|
|
/setstyles {
|
| 121 |
|
|
currentlinewidth mul setlinewidth /style exch def
|
| 122 |
|
|
style 1 and 0 gt not {closepath} if
|
| 123 |
|
|
style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if
|
| 124 |
|
|
style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if
|
| 125 |
|
|
gsave style 16 and 0 gt { style 224 and -5 bitshift style 256 and 0 gt {
|
| 126 |
|
|
7 exch sub 8 div dup 1 exch sub currentrgbcolor 3 array astore
|
| 127 |
|
|
{3 copy mul add 4 1 roll pop} forall pop pop setrgbcolor eofill}
|
| 128 |
|
|
{dup 7 lt {gar exch get ppaint} {pop eofill} ifelse} ifelse}
|
| 129 |
|
|
{style 256 and 0 gt {1 setgray eofill} if} ifelse grestore style 8 and 0 gt
|
| 130 |
|
|
style 512 eq or {newpath} {stroke} ifelse grestore} def
|
| 131 |
|
|
|
| 132 |
|
|
/polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def
|
| 133 |
|
|
/xcarc { gsave newpath arc setstyles } def
|
| 134 |
|
|
/elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll
|
| 135 |
|
|
3 index div 1 scale } def
|
| 136 |
|
|
/ele { 0 4 1 roll 0 4 1 roll } bind def
|
| 137 |
|
|
/ellipse { gsave elb newpath ele arc setmatrix setstyles } def
|
| 138 |
|
|
/pellip { elb ele arc setmatrix } def
|
| 139 |
|
|
/nellip { elb ele arcn setmatrix } def
|
| 140 |
|
|
/spline { gsave moveto curveto setstyles } def
|
| 141 |
|
|
/polyc { {lineto} repeat } bind def
|
| 142 |
|
|
/beginpath { gsave moveto } bind def
|
| 143 |
|
|
/endpath { setstyles } bind def
|
| 144 |
|
|
/bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 0 0 scb cRedef } def
|
| 145 |
|
|
/psinsertion {/PSobj save def /showpage {} def /setpagedevice {pop} def bop
|
| 146 |
|
|
rotate translate dup scale} def
|
| 147 |
|
|
/end_insert {PSobj restore} def
|
| 148 |
|
|
/setpagemat {/pagemat matrix currentmatrix def} def
|
| 149 |
|
|
/inchscale {setpagemat 0.375 mul dup scale} def
|
| 150 |
|
|
/cmscale {setpagemat 0.35433071 mul dup scale} def
|
| 151 |
|
|
|
| 152 |
|
|
%%EndResource
|
| 153 |
|
|
%%EndProlog
|
| 154 |
|
|
|
| 155 |
|
|
% XCircuit output starts here.
|
| 156 |
|
|
|
| 157 |
|
|
%%BeginSetup
|
| 158 |
|
|
|
| 159 |
|
|
/::alu {
|
| 160 |
|
|
begingate
|
| 161 |
|
|
1 1.00 -64 80 -64 80 0 16 64 80 4 polygon
|
| 162 |
|
|
1 1.00 -64 80 -224 80 2 polygon
|
| 163 |
|
|
1 1.00 224 80 64 80 2 polygon
|
| 164 |
|
|
1 1.00 -224 80 -64 -80 2 polygon
|
| 165 |
|
|
1 1.00 224 80 64 -80 2 polygon
|
| 166 |
|
|
1 1.00 -64 -80 64 -80 2 polygon
|
| 167 |
|
|
1 1.00 -144 112 -144 112 2 polygon
|
| 168 |
|
|
1 1.00 144 112 144 112 2 polygon
|
| 169 |
|
|
endgate
|
| 170 |
|
|
} def
|
| 171 |
|
|
|
| 172 |
|
|
/generic::arrowhead {
|
| 173 |
|
|
begingate
|
| 174 |
|
|
8 -28 beginpath
|
| 175 |
|
|
3 -18 3 -15 0 0 curveto
|
| 176 |
|
|
-3 -15 -3 -18 -8 -28 curveto
|
| 177 |
|
|
-2 -26 2 -26 8 -28 curveto
|
| 178 |
|
|
249 1.00 endpath
|
| 179 |
|
|
endgate
|
| 180 |
|
|
} def
|
| 181 |
|
|
|
| 182 |
|
|
/generic::jumper {
|
| 183 |
|
|
% trivial
|
| 184 |
|
|
begingate
|
| 185 |
|
|
1 1.00 0 0 10 -90.00 90.00 xcarc
|
| 186 |
|
|
1 1.00 0 10 0 16 2 polygon
|
| 187 |
|
|
1 1.00 0 -10 0 -16 2 polygon
|
| 188 |
|
|
1.000 0.000 0.000 scb
|
| 189 |
|
|
(a) {/Times-Roman cf} 2 1 0 1.00 0 16 pinlabel
|
| 190 |
|
|
(a) {/Times-Roman cf} 2 13 0 1.00 0 -16 pinlabel
|
| 191 |
|
|
endgate
|
| 192 |
|
|
} def
|
| 193 |
|
|
|
| 194 |
|
|
|
| 195 |
|
|
%%EndSetup
|
| 196 |
|
|
|
| 197 |
|
|
%%Page: cpu.ps 1
|
| 198 |
|
|
%%PageOrientation: Portrait
|
| 199 |
|
|
/pgsave save def bop
|
| 200 |
|
|
1.0000 inchscale
|
| 201 |
|
|
2.6000 setlinewidth 320 1280 translate
|
| 202 |
|
|
|
| 203 |
|
|
1.00 0 352 -960 ::alu
|
| 204 |
|
|
|
| 205 |
|
|
(Register bank) {/Helvetica cf} 2 16 0 1.00 208 -432 label
|
| 206 |
|
|
|
| 207 |
|
|
(RA) {/Helvetica cf} 2 21 360 1.00 144 -544 label
|
| 208 |
|
|
(RB) {/Helvetica cf} 2 21 0 1.00 272 -544 label
|
| 209 |
|
|
|
| 210 |
|
|
(RC) {/Helvetica cf} 2 21 0 1.00 400 -544 label
|
| 211 |
|
|
|
| 212 |
|
|
(RD) {/Helvetica cf} 2 21 0 1.00 528 -544 label
|
| 213 |
|
|
|
| 214 |
|
|
|
| 215 |
|
|
1 1.00 1456 -64 1056 -64 2 polygon
|
| 216 |
|
|
1.00 90 1472 -64 generic::arrowhead
|
| 217 |
|
|
1.00 270 1056 -192 generic::arrowhead
|
| 218 |
|
|
|
| 219 |
|
|
(External ) {/Helvetica cf} 2 16 0 1.00 848 -592 label
|
| 220 |
|
|
(interface) {/Helvetica cf} 2 16 0 1.00 848 -656 label
|
| 221 |
|
|
1.00 270 1056 -640 generic::arrowhead
|
| 222 |
|
|
1.00 90 1184 -576 generic::arrowhead
|
| 223 |
|
|
1 1.00 1168 -576 1056 -576 2 polygon
|
| 224 |
|
|
1 1.00 1168 -640 1056 -640 2 polygon
|
| 225 |
|
|
|
| 226 |
|
|
(Memory) {/Helvetica cf} 2 16 0 1.00 848 -112 label
|
| 227 |
|
|
(interface) {/Helvetica cf} 2 16 0 1.00 848 -176 label
|
| 228 |
|
|
|
| 229 |
|
|
(Control unit) {/Helvetica cf} 2 16 0 1.00 208 -96 label
|
| 230 |
|
|
1.00 90 800 -80 generic::arrowhead
|
| 231 |
|
|
1.00 270 608 -80 generic::arrowhead
|
| 232 |
|
|
3 1.00 784 -80 624 -80 2 polygon
|
| 233 |
|
|
3 1.00 704 -80 704 -608 784 -608 3 polygon
|
| 234 |
|
|
3 1.00 704 -608 704 -976 480 -976 3 polygon
|
| 235 |
|
|
(ext_in) {/Helvetica cf} 2 16 0 1.00 1184 -640 label
|
| 236 |
|
|
(ext_out) {/Helvetica cf} 2 16 0 1.00 1184 -576 label
|
| 237 |
|
|
(ram_address) {/Helvetica cf} 2 16 0 1.00 1120 -48 label
|
| 238 |
|
|
1 1.00 1456 -128 1056 -128 2 polygon
|
| 239 |
|
|
1.00 90 1472 -128 generic::arrowhead
|
| 240 |
|
|
(ram_datawr) {/Helvetica cf} 2 16 0 1.00 1120 -112 label
|
| 241 |
|
|
1 1.00 1472 -192 1072 -192 2 polygon
|
| 242 |
|
|
1.00 90 1472 -256 generic::arrowhead
|
| 243 |
|
|
(ram_datard) {/Helvetica cf} 2 16 0 1.00 1120 -176 label
|
| 244 |
|
|
(ram_we) {/Helvetica cf} 2 16 0 1.00 1120 -240 label
|
| 245 |
|
|
1 1.00 1456 -256 1056 -256 2 polygon
|
| 246 |
|
|
1 1.00 0 -960 16 -944 0 -928 3 polygon
|
| 247 |
|
|
1 1.00 0 -944 -64 -944 2 polygon
|
| 248 |
|
|
(clk) {/Helvetica cf} 2 16 0 1.00 -128 -944 label
|
| 249 |
|
|
(rst) {/Helvetica cf} 2 16 0 1.00 -128 -896 label
|
| 250 |
|
|
1 1.00 0 -896 -64 -896 2 polygon
|
| 251 |
|
|
3 1.00 704 -800 608 -800 2 polygon
|
| 252 |
|
|
|
| 253 |
|
|
1 1.00 192 -640 192 -768 2 polygon
|
| 254 |
|
|
1 1.00 352 -640 352 -768 2 polygon
|
| 255 |
|
|
1 1.00 800 -160 192 -160 192 -256 3 polygon
|
| 256 |
|
|
1.00 180 192 -768 generic::arrowhead
|
| 257 |
|
|
1.00 180 352 -768 generic::arrowhead
|
| 258 |
|
|
1.00 180 192 -288 generic::arrowhead
|
| 259 |
|
|
1.00 180 224 -880 generic::arrowhead
|
| 260 |
|
|
1 1.00 224 -832 224 -880 2 polygon
|
| 261 |
|
|
1.00 180 480 -880 generic::arrowhead
|
| 262 |
|
|
1 1.00 480 -832 480 -880 2 polygon
|
| 263 |
|
|
1 1.00 352 -1040 352 -1072 752 -1072 3 polygon
|
| 264 |
|
|
1 1.00 752 -1072 752 -672 2 polygon
|
| 265 |
|
|
1 1.00 752 -672 800 -672 2 polygon
|
| 266 |
|
|
1 1.00 752 -672 752 -192 752 -192 3 polygon
|
| 267 |
|
|
1.00 270 752 -544 generic::jumper
|
| 268 |
|
|
1 1.00 752 -192 320 -192 2 polygon
|
| 269 |
|
|
1 1.00 336 -352 336 -400 2 polygon
|
| 270 |
|
|
1.00 180 336 -400 generic::arrowhead
|
| 271 |
|
|
1.00 90 800 -672 generic::arrowhead
|
| 272 |
|
|
1.00 90 800 -608 generic::arrowhead
|
| 273 |
|
|
1.00 270 608 -800 generic::arrowhead
|
| 274 |
|
|
1.00 270 480 -976 generic::arrowhead
|
| 275 |
|
|
|
| 276 |
|
|
1 1.00 320 -192 320 -272 2 polygon
|
| 277 |
|
|
1.00 180 320 -288 generic::arrowhead
|
| 278 |
|
|
1 1.00 800 -544 768 -544 2 polygon
|
| 279 |
|
|
1 1.00 736 -544 672 -544 672 -256 448 -256 448 -288 5 polygon
|
| 280 |
|
|
1.00 180 448 -288 generic::arrowhead
|
| 281 |
|
|
3 1.00 704 -512 624 -512 2 polygon
|
| 282 |
|
|
1.00 270 608 -512 generic::arrowhead
|
| 283 |
|
|
1.00 270 608 -320 generic::arrowhead
|
| 284 |
|
|
3 1.00 640 -320 704 -320 2 polygon
|
| 285 |
|
|
1 1.00 352 -704 720 -704 720 -560 3 polygon
|
| 286 |
|
|
1.00 0 720 -544 generic::jumper
|
| 287 |
|
|
1 1.00 720 -528 720 -224 2 polygon
|
| 288 |
|
|
1.00 270 752 -224 generic::jumper
|
| 289 |
|
|
1 1.00 720 -224 736 -224 2 polygon
|
| 290 |
|
|
1 1.00 768 -224 784 -224 2 polygon
|
| 291 |
|
|
1.00 90 800 -224 generic::arrowhead
|
| 292 |
|
|
1 1.00 720 -224 384 -224 384 -272 3 polygon
|
| 293 |
|
|
1.00 180 384 -288 generic::arrowhead
|
| 294 |
|
|
pgsave restore showpage
|
| 295 |
|
|
|
| 296 |
|
|
%%Trailer
|
| 297 |
|
|
XCIRCsave restore
|
| 298 |
|
|
%%EOF
|