Professional Documents
Culture Documents
.
/ .
,
.
.
,
.
,
.
:
.
,
.
.
, MSc, PhD
.
/ & , MSc
2005
.
.
, MSc, PhD
.
/ & , MSc
opusMAGNUM
/ 19972005
ISBN: 960-538-586-4
: 21/4
Copyright 2005
16 & , 26222 : 2610 367336, 367355 : 2610 361420
. 2121/1993,
, .
19
21
, , ..................................... 23
1.1
(Breadboard)................................................................................. 24
1.2
...................................................................................................... 26
1.3
........................................................................ 28
1.4
................................................................. 30
, , ..................................... 35
2.1
...................................................................................... 36
2.2
................................................................................. 39
Boole
, , ..................................... 47
3.1
...................................................................................... 48
3.1.1
Boole .................................................................................... 48
3.1.2
................................................................. 49
3.1.3
Karnaugh ................................ 50
3.1.4
................................................................. 52
3.1.5
3.2
......................................................... 53
................................................................................ 54
/
, , ..................................... 61
4.1
4.2
...................................................................................... 62
4.1.1
............................................................................................. 62
4.1.2
....................................................................................... 62
4.1.3
............................................................................... 63
4.1.4
.................................................................................... 64
4.1.5
............................................................. 65
4.1.6
.................................................... 65
4.1.7
............................................................................................ 66
4.1.8
...................................................................................... 66
4.1.9
............................................................................... 67
................................................................................ 69
/
, , ..................................... 75
5.1
5.2
...................................................................................... 76
5.1.1
........................................................................................ 76
5.1.2
.......................................................................................... 77
................................................................................ 79
/
, , ..................................... 85
6.1
...................................................................................... 86
6.1.1
6.2
7 ............................................................................. 86
................................................................................. 89
Flip-Flops
, , ..................................... 95
7.1
7.2
...................................................................................... 96
7.1.1
(Latch) ........................................................................... 97
7.1.2
FFs RS ............................................................... 98
7.1.3
FF D........................................................................................... 99
7.1.4
7.1.5
7.1.6
............................................................................ 101
............................................................................... 103
, , ................................... 109
8.1
.................................................................................... 110
8.1.1
................................................................. 110
8.1.2
................................................. 111
8.1.3
............................................ 114
8.1.4
.................................................................... 114
10
8.2
8.1.5
................................................... 114
8.1.6
.............................................. 116
8.1.7
......................................................... 116
.............................................................................. 118
, , ................................... 125
9.1
9.2
.................................................................................... 126
9.1.1
........................................ 127
9.1.2
/ ................... 127
9.1.3
/ ............... 129
9.1.4
/ ........... 129
9.1.5
/ ............... 131
.............................................................................. 134
139
10
, , ................................... 141
10.1 ........................................................................................................ 143
10.2 ISA CPU............................................................................................... 144
10.3 ................................................................................ 145
10.4 .................................................................... 148
10.5 ......................................................................................... 150
10.6 ......................................... 151
/
, , ................................... 161
11.1 .................................................................................... 162
11.1.1 / (ALU).................. 162
11.1.2 ALU (AC) ........... 163
11.1.3 ALU ............................................................................ 165
11.2 ............................................................................... 168
12
, , ................................... 173
12.1 .................................................................................... 174
12.2 ............................................................................... 179
11
12
13
, , ................................... 187
13.1 .................................................................................... 188
13.1.1 ............................................................................. 188
13.1.2 ........................................................................................ 188
13.1.3
microsequencer.................................................................................. 190
13.1.4 ......................................................... 193
13.2 .............................................................................. 200
14
CPU
, , ................................... 207
14.1 .................................................................................... 208
14.1.1 ........................................................................................... 208
14.1.2 ........................................................................... 208
14.2 .............................................................................. 211
(Assembly)
215
15
, , ................................... 217
15.1 .......................................................................... 218
15.2 ................................................................................. 219
, , ................................... 227
16.1 .................................................................................... 229
16.1.1 ................................................................................. 229
16.1.2 8085 ...................................................... 230
16.1.3 8085............................................... 232
16.2 ............................................................................... 234
17
, , ................................... 241
17.1 .................................................................................... 242
17.2 ............................................................................... 245
18
, , ................................... 251
18.1 .................................................................................... 253
18.2 ............................................................................... 255
13
14
19
/
, , ................................... 267
19.1 .................................................................................... 268
19.1.1 ................................................................................ 268
19.1.2 / ..................................................................... 269
19.1.3 ........................ 271
19.1.4 Booth .................................. 271
19.2 .............................................................................. 274
20
, , ................................... 283
20.1 .................................................................................... 284
20.1.1 .............................................................................................. 284
20.1.2 ....................................................................................... 286
20.1.3 ...................................................................... 287
20.1.4 postfix reverse polish................................... 288
20.2 .............................................................................. 291
21
/
, , ................................... 299
21.1 .................................................................................... 300
21.1.1 /.................................................................... 300
21.1.2 (bubblesort)................ 301
21.1.3 (binary search)................. 301
15
311
(data sheets)
313
VHDL
325
.1
.............................................................................................................. 325
.2
.3
VHDL................................................ 328
.4
.4.2
.4.3
.4.4
.5
.6
VHDL........................................................... 335
.5.1
................................................................................... 335
.5.2
......................................................................................... 336
.5.3
................................................................................ 338
16
.6.3
.6.4
PACKAGE.......................................................................... 359
.6.4.1 (package) .......................................... 360
.7
........................................ 362
.7.1
.7.2
.................................. 363
.7.2.1 D flipflop ............................... 363
.7.2.2 D flipflop .................................. 365
.7.2.3 K 8 bits ...................................................... 365
.8
17
.8.1
.8.2
*.mif............................................................................ 369
8085
373
.1
............................................................... 373
.2
................. 377
.2.1
................................................... 377
.2.2
( ) ...................... 377
.2.3
......................................................................... 380
.2.4
................................................................................ 383
.2.5
................................................................ 386
.2.6
.......................................................................... 387
.2.7
............................................................................... 389
.2.8
........................................................................................ 390
.2.9
/ ........................................................... 391
............................................................................................................. 393
, .
(-21) .
,
, .
( ),
.
.
/-, ,
( )
, ,
, , .
, VHDL
, / ,
, . ,
8085,
, , ,
. ( ), , , .
. . , . , . . . ,
. , , E.
20
. , .
.
. ,
20042005 . , . , . , . , . , .
, . , . , . , . - . , ,
, .
2005
.
. *
, MSc, PhD
. *
* . , , MSc, PhD.
,
.
, :
(breadboard)
.
(breadboard)
24
1:
1.1
(Breadboard)
(breadboard), 1.1. - -,
. -
. -
, ( ), 1.2. -
64 5 . -
, ( ). 1.2 -
.
-.
-
. -
.
+5 V . ,
. 1.3 - +5 V .
. , 1.3
+5 V, . 1.3 +5 V
.
1.1
1.1
(breadboard)
1.2
-
1.3
25
26
1:
1.2
() 9 V ( 1.4). ,
. +5 V. , , 9 V 5 V . 1.5.
.
1.4
1.5
9 V
9 V 5 V
1.6
() L7805 ()
1.2
1.7
,
1.8. + .
1.8
27
28
1:
1.3
1 (2.4 V 5 V)
0 (0 V 0.4 V). 1.9. V
1 0.
220
( 1.10) (Light Emitting Diode LED) (D).
1.11 ,
.
(+) () . ,
(D) 1.9.
1.9
1.10
220
1.11
() ()
1.3
V 1,
(0 V) , . , V 0 (0 V),
.
,
, (LED) , ,
. , 5 V V , .
29
30
1:
1.4
(clock) (..
). , ,
, ,
, . 1.12. , 50% (50%
duty cycle). t1
(5 V) t2
(0 V). t1 t2 T (t1=t2=T/2), 1.12.
t1=t2=0.6 sec, =1.2 sec.
0.8 Hz.
1.12
1.4
6 820 nF ,
7 430 k 6, 6 1
5 V 3 .
1.13
() 555 ()
10 nF
820 nF, (10 n
820 n ). 430 k 1
1.12.
1.14. ,
.
.
, , ,
1.14. ( )
()
.
. ,
,
(
). ,
10105 =
1000000 = 1 , 5%. ,
31
32
1:
,
. , 430103 =
430000 = 430 k, 1%.
1.14
,
1.12 1.15. . , 1.15 . , +5 V
, .
1.4
1.15
33
, :
.
(data sheet)
36
2:
2.1
. (Integrated Circuit IC),
chip, .
,
(pins).
,
.
.
:
TTL
MOS
CMOS
Complementary MOS
TTL .
.
2.1
TTL
TTL
(Standard) TTL
74
7486
TTL
74H
74H86
TTL
74L
74L86
Schottky TTL
74S
74S86
Schottky TTL
74LS
74LS86
Schottky TTL
74AS
74AS86
74ALS
74ALS86
Schottky TTL
2.1
( ).
2.1
.
.
37
38
2:
, .
,
2.1. VCC GND ,
.
,
2.2. VCC GND
( 14 7 ).
, .. 2, 3 . , .. 2
2 , 3
3 . (, ) ().
2.2
2.2
2.2
NAND (7400),
NOR (7402),
NOT (7404),
AND (7408),
NAND (7410),
OR (7432),
XOR (7486).
.
1.
.
, ,
.
:
,
Vcc , (GND),
. , ,
.
2.
7404
( 1.2). , ,
+5 V (VCC) 0 V
(GND).
39
40
2:
3.
( 1, 1) . 0 1 (GND Vcc )
(LED), 1.
:
4.
7404
7408
7432
7400
7402
7486
AB
A+B
AB
A+B
7404
.
, .
, 2 , 7404
, 2 1
1 .
/
1
2
3
4
5
6
7
8
9
2.2
5.
41
1-4 :
7408, 7432, 7400, 7402, 7486.
:
(1-4) ,
7404
, , ,
, ( ) , , .
7408
. ;
;
; , ;
,
A
6.
2:
42
2.2
7.
43
. . ;
8.
44
2:
). .
.
NAND
NAND
AND NAND
OR NAND
R NAND
XOR NAND
2.2
9.
45
AND NOR
OR NOR
AND NOR
XNOR NOR
46
2:
Boole
Boole
Karnaugh. ,
.
, :
Boole
Boole
Karnaugh
.
Boole
Karnaugh
3: BOOLE
48
3.1
3.1.1
Boole
Boole
.
3.1
Boole
(OR)
(AND)
A+0=A
A1=A
A+ A =1
A A =0
A+B=B+A
AB = BA
3
( )
4
( )
A (B + C) = AB + BC
A + BC =
(A + B) (A + C)
A+A=A
AA=A
A+1=1
A0=0
A =A
( )
4
( )
5 (De Morgan)
6 ()
A + (B + C) =
(A + B) + C
A (BC) = (AB) C
A+B=AiB
AB=A+B
A + AB = A
A (A + B) = A
Boole . ( Boole)
. .
3.1
49
. ,
Boole, .
3.1.2
.
(AND) (OR), :
Y = A + AB + A B C
Boole
(OR) (AND),
:
Y = (AB + C D) ( A B + C D )
AND , OR
. ,
.
, n 2n
. 0 2n1
. , 1,
0.
.
mj, j , .
Mj.
.
3: BOOLE
50
3.2
A BC
m0
A+B+C
M0
A BC
m1
A+B+ C
M1
ABC
m2
A+ B +C
M2
ABC
m3
A+ B + C
M3
A BC
m4
A +B+C
M4
ABC
m5
A +B+ C
M5
ABC
m6
A + B +C
M6
ABC
m7
A + B +C
M7
Boole . , 1
0 . ,
. , ,
001, 100, 111, :
Karnaugh
Karnaugh .
. ,
3.1
. ,
. ,
,
( 1)
1. Gray,
.
, , .
3.3
Karnaugh
.
. -
51
3: BOOLE
52
1,
0.
,
.
, * .
3.1.4
3.1
. ,
, . , ,
. ,
, .
Boole
,
, 0.
3.1.5
.
:
.
.
.
.
, .
53
3: BOOLE
54
3.2
NOT (7404),
AND (7408),
OR (7432),
XOR (7486).
.
1.
.
De Morgan. .
()
()
3.2
55
2.
0, 1 .
.
3.
;
Boole.
.
3: BOOLE
56
4.
. .
5.
, A B,
, G, E L, 1 , . ,
G, E, L, , , .
:
LEDs G, E, L .
3.2
57
G=
E=
L=
6.
(A, B, C, D).
1 0
/ / / /
1.
(
.)
3: BOOLE
58
, Karnaugh, ( ) .
A
3.2
59
Karnaugh
Y=
, :
.
(half-adder)
(full-adder)
(carry)
62
4: /
4.1
4.1.1
,
. . .
4.1
10
, .
(carry).
,
. (half-adder),
(
) (full-adder).
.
4.1.2
. -
4.1
63
S (Sum: ) C (Carry: ) ,
:
4.2
, :
S=AB+AB
C=AB
4.1.3
. , , ,
Ci, , S Co. :
64
4: /
4.3
Ci
Co
( )
:
, .
. , , (complements).
r, r r1. r
1 r1.
2, r=2, 2 1 .
4.1
1
1 , , 0 1 1 0.
2
1 1.
4.1.5
(borrow). , 1
. , .
(MN)
:
1. 2 .
2. , , ,
, .
3. <,
2 NM. 2 ()
.
4.1.6
, , . , . (+ ), .
,
0 1 .
65
66
4: /
,
bit
.
:
. ,
,
.
,
, .
0
, 1, . 1 2,
.
4.1.7
.
. ,
. , .
,
.
4.1.8
4.1
67
(borrow), . (D) :
4.4
Bo
Boole :
D=AB +AB
B o =AB
D
.
4.1.9
. , , , i, , D
B. :
68
4: /
4.5
Bi
:
D=A B B i +ABB i +A B B i +ABB i
B o =A B B i +ABB i +ABB i +ABB i
4.2
4.2
69
AND (7408),
OR (7432),
(7483),
XOR (7486).
.
1.
A
B S C
. ,
S C, , .
A
C=
S=
70
4: /
2.
. Ci,
.
C. , S C,
, .
A
Ci
C=
S=
4.2
3.
71
. , . .
:
72
4: /
4.
3,
/ 4 .
.
:
5.
7483 4 . i,
i
( 1 1 , LSB). i
( 1 LSB).
(C0) (C4).
/.
:
7486
7483 .
2.
0 1 .
(LED),
.
4.2
73
C0
C4
(4 bits)
(4 bits)
(1 bit)
(1+4 bits)
(
)
4+2
4+5
42
2+3
23
45
6.
(overflow); , ;
74
4: /
, :
.
21, 41 81
12, 14 18
76
5: /
5.1
5.1.1
.
21 :
5.1
21
, D0 D1, , ( A),
D0 0 D1
1. n 2n , (
), 2n1 . .
5.1
21
A
D0
D1
T 41 :
5.1
77
5.2
41
:
5.2
41
A
D0
D1
D2
D3
H
:
, n 2n .
. 14 :
78
5: /
5.3
14
:
5.3
14 ( 0 1)
A
Y0
Y1
Y2
Y3
, :
Y0 =IA B
Y1 =IAB
Y2 =IAB
Y3 =IAB
,
.
5.2
5.2
NAND (7400),
(7404),
NAND (7410),
OR (7432),
3--8 / 18 (74138),
81 (74151).
.
1.
, , D0,
D1, D2, D3 . , , D1, D1.
79
80
5: /
: , -
.
2.
74151 81.
.
G ;
( )
(D0-D7) A, B, C LED .
( .)
: 1)
74151 ,
2) 1
.
3.
. 2 3 74151.
.
5.2
4.
14.
0, 1, 2, 3.
,
, .
LED
, .
.
81
82
5: /
0 =
2 =
1 =
3 =
5.
1; .
6.
74138 38 18. .
G2A, G2B G1
.
5.2
7.
W ;
83
84
5: /
, :
.
86
6: /
6.1
, .
, , , , .
.
.
.
.
2 . , , 4
16 .
16 . , 4 , 9, , 1001 .
10 16,
0 9.
6.1.1
,
7 (7-segment display).
7 (LEDs) ( ) ,
. , , , .. ,
( 6.1).
6.1
6.1
7
7 5 V, .
, 0, 0 V . , 0 V, . ,
1, 5 V .
87
88
6: /
6.2
7 : () ()
,
, 7 .
BCD 7 . , , , 0 ,
1 .
6.2
6.2
(7404),
NAND (7410),
38 / 18 (74138),
7 segment display.
.
1.
24 . A B
Y0, 1, Y2, Y3. S 1 .
; S 0;
, , S;
89
90
6: /
Y0
2.
NAND AND; ;
6.2
3.
91
74138 38 18. .
G2A, G2B
G1 . A, B, C 0-7.
;
4.
, YA
YB, 74138. .
=
=
5.
(DEC to BIN).
92
6: /
;
.
3 =
2 =
1 =
0 =
6.2
6.
7.
3, 4 5;
;
8.
a/b/c/d/e/f/g (
).
.
93
94
6: /
Flip-Flops
flip-flop
. flipflops .
, :
flip-flops
,
.
Flip-flops
(Latch)
96
7: FLIP-FLOPS
7.1
. , ,
. ,
.
: , . (, clock). () () .
.
,
. (feedback) . ,
(unstable).
,
.
flip-flop (FF). FFs.
7.1
7.1.1
(Latch)
7.1() , R S,
RS flip-flop , , RS (RS latch).
flip-flop
(level-sensitive clock). S R
SET RESET . SET
1, RESET . Q, (state) FF,
Q Q.
7.1
RS NOR: () , () , ()
S=1 R=0, Q
0, . , 0
Q=1. FF
FF 1 (SET). S 0 (S=0), FF, 1 [2
7.1()].
1. ,
FF .
R 1, R=1
S=0, 0 (Q=0) , , -
97
98
7: FLIP-FLOPS
1 (Q=1). ,
(RESET) FF. R 0,
S=0 R=0, FF , Q=0 Q=1. ,
FF .
, 1 0, S=1 R=0
S=0 R=1. S R
0. . , S
R 0. ,
FF 0, .
7.1.2
FFs RS
FFs RS () .
.
, FF AND NAND, 7.2.
7.2
RS FF: () NOR, () NAND, (), () , ()
7.1
, (clock, CLK) 1
(CLK=1) S R SET
RESET FF. CLK=0, S R FF,
. , AND NAND
CLK. CLK (gate enable). 7.2 7.2(), (function table) FF.
FF
. Qn. , FF ,
S, R, (Qn+1) . , S
R 0 (S=R=0), ()
, Qn+1=Qn. (SR), S.
S R 1 (S=R=1), . . , 7.2() 7.2().
CLK .
7.1.3
FF D
RS FF
, FF D 7.3. 2 3
7.2(). , D=0, Q=0, ,
D=1, Q=1. CLK=1.
Q D
1 (CLK=1).
0, Q
99
100
7: FLIP-FLOPS
, CLK 1 0.
FF D (D latch),
(data) .
7.3
FF D ( D): () , () , ()
7.1.4
JK flip-flop
RS FF
7.2() 7.4(), . JK flipflop. RS,
1. J S
R, , , J (sets)
FF, K (resets). J=K=1 , ,
1 (CLK=1), FF ,
1 0 0 1.
7.4
Flip-flop JK: () , () , ()
7.1
7.1.5
flip-flops
FFs.
FF FF .
J, K FF JK ,
0 (Qn=0), 1
(Qn+1=1); , ,
J=K=1, FF 0 1. J=1, K=0,
1 (set), . , , J=1 K=0 K=1, FF 0 1.
(=),
101
102
7: FLIP-FLOPS
J 1 FF 0 1.
FFs / . .
7.1
FFs
JK Flip-Flop
Qn
Qn+1 J
RS Flip-Flop
D Flip-Flop
Qn
Qn+1
Qn Qn+1
T Flip-Flop
Qn Qn+1 T
FF JK . , D FF D
Qn+1 , , , 0 1, 0 1 ,
.
,
FFs .
7.2
7.2
103
NAND (7400),
OR (7402),
NOT (7404),
AND (7410),
.
1.
S & R .
104
7: FLIP-FLOPS
2.
RS
NAND. RS, :
i.
ii.
iii.
iv.
RS
; .
3.
S & R .
7.2
4.
105
3 RS
NOR.
1;
;
5.
. Qn+1
. , CLK, CLK 0,
106
7: FLIP-FLOPS
R S CLK 1
0 ( ).
6.
Qn
Qn+1
() . flip
flop D.
().
5.
7.2
107
()
7.
Qn
()
Qn+1
D
Qn+1
()
Qn
0
0
0
0
1
1
1
1
8.
J
0
0
1
1
0
0
1
1
K
0
1
0
1
0
1
0
1
()
Qn+1
J
0
0
1
1
K
0
1
0
1
Qn+1
108
7: FLIP-FLOPS
1CLR 1PRE 0 V (
);
10. 7476 .
JK flip flops D
T . D T. ; flip flop;
, :
( )
.
110
8:
8.1
FFs . , FFs
,
.
2, =2n, ( ), (binary counter). 2, 2n,
. .
8.1
8.1.2
8.1
(mod-8):
() , ()
FFs (, reset).
, FF0
0 1. ,
1 0. CLK.
111
112
8:
8.1
,
(count-down),
8.1. Q2, Q1,
Q0 FFs, Q2, Q1, Q0.
8.2() 8.1(),
FF
. Q2, Q1, Q0 FFs. 8.2().
.
8.2
(mod-8):
() , ()
FFs .
, FF0 (toggle) 0
1. (Q0) 1
0. (FF1), Q1 0 1. , Q1
113
114
8:
1 0 (FF2), ,
, . , ,
, 000 111.
, .
8 (mod-8)
, .
8.1.3
2, =2n.
, , , . , , , 2n.
NAND . NAND
FFs, FFs.
8.1.4
FFs FFs
. .
8.1.5
2, =2n. n FFs
. 8.3()
8.1
8 (mod-8) FFs .
8.3() 8.1().
8.3
(mod-8):
() , ()
: 0=1, FF0 1 0
( ). 1=1
1 0, FF1 .
FF2, 2=1. 2=Q1T1=Q1Q0, FF2 FFs
1. Tn=Qn1...Q1Q0, Tn n- FF
Qn1, ..., Q1, Q0 FFs.
8.3() Q0
115
116
8:
(LSB) Q2 (MSB) .
8.1.6
2, 2n. .
,
, FFs JK mod-N
:
1:
n FFs, 2n1<<2n.
2:
NAND
1. G NAND.
3:
FFs 1 0
1.
G AND FF.
4:
FFs 1 1
1. G OR
FF.
8.1.7
. CLK Q2
8.1() Q2 8-
CLK, Q2 8 CLK.
, Q2 8 -
8.1
. 8.3(). , ,
mod-N .
8.1, Q0 2-
. , Q0 . , FF0
mod-2. Q1,
FF1 mod-2, CLK, Q0. FF2,
Q1. , , ,
mod-2 , mod-8,
8=222. , (
) 1, 2, ..., ,
=12 .
117
118
8:
8.2
(7490),
7 segment display ( ),
.
1.
7476 ,
mod-8. LED
.
2.
.
[S] Vcc ( ) NAND;
8.2
3.
1
( 765432107...);
4.
.
;
119
120
8:
5.
.
Karnaugh ,
Ji, Ki .
.
8.2
121
(
)
Q3
Q2
Q1
Q0
Q3
Q2
Q1
Q0
J3
K3
J2
K2
J1
K1
J0
K0
03
122
8:
6.
7490 . .
8.2
;
2 3 1 6
0; 6 7
1; ( . .)
:
7.
( )
7490 ,
7448 , ,
7 (7 segment display).
123
124
8:
, :
/
/
.
-
-
126
9:
9.1
FFs
. FF 1 bit
. , n FFs n bits .
(, , )
, 1 bit
, , n bits .
(, ) . ,
,
9.1: / , / , /
/ .
.
,
. , ,
m
2m, C2m. ,
, LSB
0. , m 2m,
C2m. MSB 0.
(arithmetic shift).
9.1
9.1
: () / , () /
, () / , () /
9.1.1
FFs
D . D FFs
JK RS flip-flops .
, , FF JK
RS. RS FFs ,
R= S .
9.1.2
/
FFs D, (
) . FFs .
/ bits
9.2. (
), FF
,
127
128
9:
FF, . ,
FFs 9.2() D0 (
) 1,
FFs 4 9.2(). 9.2() 9.2() , FF JK RS .
FF,
. ,
FF . 1. J0=1
K0= J 0 =0 (S0=1 R0= S0 , , RS FF), Q0=1
Q0=0. 0, Q0 0
.
9.2
/ 4 bits : () D, () JK, () RS ()
9.1
9.1.3
/
/
Q FFs . 9.3 9.2()
/ 4 bits.
9.3
/ 4 bits
- 9.3 9.2. ,
CLEAR PRESET,
FFs (
0) (
1).
9.1.4
129
130
9:
9.4
/ 4 bits FFs RS
:
FFs CLK.
CLEAR , FFs.
()
E. E=1, i,
i=0, 1, 2, 3. ,
AND S0, R0 FF0. E=1
G S0 0 ( S0=I0) G 0R
I0 ( R0= I0 ). , 0=1,
FF0 1 ( S0=1 R0=0), , 0=0,
9.1
. n , , , n .
,
. 4 bits
9.5.
9.5
/ 4 bits
131
132
9:
AND-OR. 2 1. ,
=1, AND Di
, Si=Di Ri= Di . , Di FFi. E=0, AND
, Si=Qi1 Ri=Qi1. , Qi1
FFi1 FFi.
, , . , =1 , =0
.
.
. , , / . ,
Qi ( 9.5), .
, ,
, / , / , / , / . .
,
, . , 4 bits , 9.5, 8 bits (. 9.6).
(CLK) .
.
9.1
9.6
8 bits 4 bits
133
134
9:
9.2
4 bits (74194).
.
1.
7474
+5 V (VCC) 0 V (GND).
flip flops (
) . , CLR PRE +5 V.
flip flops
4 bits. , LED.
2.
5 V . 0 V.
9.2
3.
135
, ;
4.
5.
1000.
:
.
1 0.
LED ,
.
:
CLK
010
010
010
010
136
9:
; ;
:
6.
,
/ .
.
7.
/ ( )
: / , / , / .
8.
74194. CLK
. (
74194 .)
9.
S0 S1 +5 V. A, B,
C, D 0 1. ;
;
9.2
10. 1 ;
CLR;
:
11. S0
S1 +5 0 V . SR
1. ; ;
:
12. S1
S0 +5 0 V . SL
1. ; ;
:
137
. *
* . ,
, MSc.
.
CPU,
, , ,
/ .
, :
.
(CPU)
(state diagram)
(register)
(bus)
/ (ALU)
(instruction set)
142
10:
(instruction cycle)
(fetch)
(decode)
(execute)
10.1
10.1
(CPU) .
,
, ,
, . ,
,
, , , ,
.
,
.
,
. ,
, CPU
, ISA (Instruction Set
Architecture).
ISA (state diagram) (hardware)
. CPU , . ,
(registers) ISA, (buses), /
(ALU) .
143
144
10:
10.2
ISA CPU
10.3
10.3
CPU 8 bits , .
:
:
o
o .
:
o AND
o XOR,
.
.
(accumulator).
.
, .
,
(log28=3),
.
.
5 bits (xxxxx) ( )
. , 32 bytes (25) 8 bits.
145
146
10:
, :
10.1
Operation
CLR
000
AC "00000000"
AND
001
AC AC M[AAAAA]
XOR
010
AC AC M[AAAAA]
ADD
011
AC AC + M[AAAAA]
SUB
100
AC AC M[AAAAA]
LDA
101 a
AC M[a]
110
INC
111
AC AC + 1
(3) bits , bits
CLR 000, AND 001
... , 3 bits CPU (23=8)
, (8) . ,
CPU (7)
bits 110,
/ /-. 5 bits
AND C .
10.3
.
,
, .
, . , LDA
a ( 5 bits ), , ,
(AC).
147
148
10:
10.4
ISA CPU, . ,
CPU :
5-bit (Address Register AR)
5-bit (Program Counter PC)
8-bit (Data Register DR)
3-bit (Instruction Register IR)
8-bit (Accumulator AC)
(AR)
.
5 bits, CPU. , 5 bits,
32 bytes (25),
8 bits.
O (PC)
CPU. ,
(AR), 5 bits.
O (DR)
. , ,
CPU ,
, CPU.
(IR)
opcode, 3 bits. To
. ,
(control unit),
microsequencer, CPU.
, (AC) 8-bit , M (ALU).
10.4
.
CPU register file,
.
149
150
10:
10.5
(instruction cycle)
( ): (fetch), (decode)
(execute). , CPU bits . , .
( ). . , (FETCH cycle)
(FETCH 1, FETCH 2 FETCH 3),
. ,
.
10.6
10.6
CPU , . :
(i)
.
(ii) (DR).
(iii) opcode ( 3 bits) (IR)
5 bits
(AR).
, ( FETCH 1)
.
(AR).
(PC)
,
(AR), :
FETCH 1:
AR PC
(READ) ,
(DR). ,
(PC) , , ( ) (
),
. :
FETCH 2:
DR M
PC PC + 1
151
152
10:
(FETCH 3), 8 bits, (DR), . ,
, 8 bits ,
(3) bits
(R), (5) bits (R).
FETCH 3:
IR DR[7..5]
AR DR[4..0]
10.7
10.7
153
(Execute Cycle)
(execution
cycle), . .
10.7.1 CLR
CLR (CLR
1) , , .
:
AC "00000000"
CLR 1:
10.7.2 ND
ND
(DR) (AC), . (AND 1)
(DR), :
AD 1:
DR M
AND (AND
2),
ALU. , (AC) ALU AND
, (AC):
AD 2:
AC AC ^ DR
10.7.3 XOR
ALU
XOR. AND,
154
10:
XOR 1:
,
(DR) ALU
XOR :
XOR 2:
AC AC DR
10.7.4 ADD
ADD
. (ADD 1)
(AC). (DR), :
ADD 1:
DR M
,
(DR) LU (AC),
:
ADD 2:
AC AC + DR
10.7.5 SUB
SUB ,
(ADD, AND XOR),
. , SUB :
10.7
SUB 1:
155
DR M
(SUB 2)
(DR) ALU :
SUB 2:
AC AC - DR
10.7.6 LDA
LDA (LoaD Accumulator)
. , LDA ,
.
, . ,
FETCH 3, (R)
8-bit . , (5) bits
.
, (LDA 1)
(AR)
(DR), :
LDA 1:
DR M
AR DR[4..0]
( LDA 3),
(AR),
(AC).
(DR):
LDA 3:
DR M
156
10:
(DR) (AC), :
LDA 4:
AC DR
10.7.7 NC
INC (AC). ,
:
INC 1:
AC AC + 1
10.8 CPU
10.8
CPU
,
(state diagram) CPU.
10.1, (3) bits (IR). ,
ADD (5) (FETCH 1
FETCH 2 FETCH 3 ADD 1 ADD 2),
.
10.1
CPU
157
158
10:
10.9
(Hardware) CPU
10.2
(block diagram) CPU
CPU.
,
(datapath) CPU, . , / (ALU),
.
(control unit) . ,
CPU,
. , CPU , .
159
A/
VHDL
ALU ( )
ALU.
, :
/ (ALU)
21
41.
/ (ALU)
21/41
162
11: A/
11.1
11.1.1 / (ALU)
/ (ALU) ,
. CPU,
(ACcumulator). ALU,
,
. , ALU ( 8 bits ), 8 bits .
CPU,
8 bits, ALU. ,
(AC), .
11.1 ALU .
11.1
ALU (BUS) (AC)
11.1
163
ADD 2: AC AC + DR
CLR 1: AC "00000000"
SUB 2: AC AC DR
INC 1: AC AC + 1
AND 2: AC AC DR
LDA 4: AC DR
XOR 2: AC AC DR
(7) CPU
. , (4)
AC DR ( ADD, SUB, AND XOR),
(3)
, ( CLR),
( INC) DR
( LDA).
, (DR) ALU (BUS).
164
11: A/
11.1
ADD 2
SUB 2
AND 2
XOR 2
CLR 1
INC 1
LDA 4
AC AC + DR
AC AC DR
AC AC DR
AC AC DR
AC "00000000"
AC AC + 1
AC DR
AC AC + BUS
AC AC BUS AC AC + BUS + 1
AC AC BUS
AC AC BUS
AC "00000000"
AC AC + 1
AC BUS
,
AC BUS 8 bits ALU, BUS,
1 00000000. BUS BUS
*. , 00000000,
(CLR). , 1 (SUB) (NC)
ALU ( ALUS),
, .
ALU (AC)
11.2.
11.2
/ (ALU) (AC)
() x x
x.
11.1
11.1.3 ALU
165
166
11: A/
, ALUS5
AC BUS. ALUS5=0
AND, ALUS5=1 XOR .
11.3
/ (ALU)
11.2
ALU (ALUS5, ALUS4, , ALUS0)
ALU AC. .
, XOR 8-bit
( 11.3) ALUS5, XOR (Logic Unit),
ALUS4, ALU . ,
ALU , , ,
.
11.1
167
11.2
ALU
A
ADD
AC AC + BUS
SUB
AC AC + BUS + 1
AND
AC AC BUS
XOR
AC AC BUS
CLR
AC "00000000"
INC
AC AC + 1
LDA
AC BUS
168
11: A/
11.2
1.
VHDL 1 bit.
.
.
2.
(component)
1 bit, VHDL
8 bits . E
00010010 10010100.
.
11.2
3.
4.
169
170
11: A/
5.
6.
11.2
7.
171
ADD
ALU_out AC + BUS
SUB
ALU_out AC BUS
AND
ALU_out AC BUS
XOR
ALU_out AC BUS
CLR
ALU_out "00000000"
INC
ALU_out AC + 1
LDA
ALU_out BUS
(ALU_out)
172
11: A/
8.
(Logic Unit)
( 8 ) OR
(AC) ALU
(BUS). ALU VHDL
OR
ALU;
.
(datapath) .
,
. , , /
.
, VHDL
CPU.
(datapath)
(register file)
(bus)
(buffers)
174
12:
12.1
:
(datapath unit) (control unit).
CPU.
, . , ,
(hardware) : () (register file), ()
(functional units), /
(ALU), () (bus) (buffers),
CPU. ,
, .
ALU ,
. , .
CPU ( datapath)
() ,
. ,
12.1 .
12.1
FETCH 1
FETCH 2
FETCH 3
AR PC
DR M
PC PC + 1
IR DR[7:5]
AR DR[4:0]
LDA 1
LDA 2
LDA 3
LDA 4
DR M
AR DR[4:0]
DR M
AC DR
12.1
175
AND 1
AND 2
XOR 1
DR M
AC AC ^ DR
DR M
ADD 1
ADD 2
SUB 1
DR M
AC AC + DR
DR M
XOR 2
AC AC DR
SUB 2
AC AC DR
CLR 1
INC 1
AC 0
AC AC + 1
176
12:
( ) ( DR M).
, (4)
CPU, (buffers). ,
. ,
. bit,
1,
, .
, bit 0,
(Hi-z). , ,
CPU.
12.1.
12.1
(buffers)
, PCBUS 1,
(PC) . ,
12.1
(DRBUS,
ACBUS MEMBUS) 0.
,
. ,
. AR PC 5 bits (5) bits ,
IR (3) bits. (AC),
ALU, .
CPU, (datapath), , , 12.1. , (LOAD). , ,
(.. AR)
(LOAD). , , (5)
: ARLOAD, PCLOAD, DRLOAD, ACLOAD IRLOAD. ,
(PCINC), PC PC + 1,
FETCH 2. (6) ALU (ALUS0, ALUS1, , ALUS5),
(4)
(PCBUS, DRBUS, ACBUS MEMBUS), .
( READ). VHDL , , ,
CPU.
CPU,
, 12.2.
177
178
12:
12.2
(datapath) CPU
12.2
12.2
1.
VHDL
(AR) 5 bits.
(reset) 1,
(ARLOAD) . ,
.
(reset) (clock),
CPU. CPU (reset)
1 , (..
)
(clock).
2.
(AR), -
179
180
12:
. 5 bits
(clock), (reset)
(ARLOAD), . .
3.
VHDL
(PC) 5 bits.
, (reset) (PCLOAD), (PCINC). CPU, .
12.2
4.
(PC), 5-bit
(clock), (reset), (PCLOAD) (PCINC) .
.
.
181
182
12:
5.
VHDL
(DR) 8 bits , (reset) (DRLOAD).
6.
(DR), . 8 bits
(clock), (reset) (DRLOAD)
(AR), .
.
12.2
7.
VHDL (AC) 8
bits. , (AC)
(DR), 8 bits, , (reset) (load), CPU VHDL,
(C DR).
183
184
12:
8.
VHDL (IR)
, , 3 bits.
(reset)
(IRLOAD).
9.
(IR), (AR).
, .
12.2
10. 12.2,
CPU (datapath), VHDL ,
(buffers). VHDL
CASE, 4 bits,
bit
(ACBUS, DRBUS, PCBUS MEMBUS). ,
4 bits,
. ,
1000, ACBUS 1 bit ,
(AC).
0100, 0010 0001.
4 bits 00000000, 8 bits.
185
,
,
VHDL:
microsequencer.
Microsequencer
(microprogrammed)
(microprogram)
188
13:
13.1
13.1.1
(control
unit), . ,
.
(microprogrammed) , microsequencer.
13.1.2
CPU.
, (16):
: ARLOAD, PCLOAD, DRLOAD, ACLOAD, IRLOAD
: PCINC
ALU: ALUS0, ALUS1, LUS2, ALUS3, ALUS4, ALUS5
: PCBUS, DRBUS, ACBUS, MEMBUS
16 bits,
mOPs (microoperations) (microinstruction). , (state
diagram) CPU, ,
.
(mOPs), , , (microinstruction), . (microinstruction) ,
13.1. mOPs 16
22 bits . 5 bits
13.1
(ADDR),
.
13.1
(microinstruction)
(ADDR) ,
. , , (..
FETCH 1, FETCH 2, ... .) 22 bits (mOPs).
,
(microcode memory), . ,
. . , CPU (17) (. 10.1), 5 bits (log 2 17 = 4,087... 5 bits)
(address). , 25=32 , -
22 bits . 32 , , 17 , CPU. ,
FETCH 1 00001, FETCH 2 00010 ...
, (microcode) ,
, (microprogram) CPU, .
, (5) bits (
ADDR)
. , , ,
FETCH 1 0000000100000000000010,
-
189
190
13:
00010 . .
, bit (SEL) microsequencer. , ADDR
mapping (mapping logic)
.
microsequencer SEL (mOPs ADDR) .
13.1.3 microsequencer
.
microsequencer ( 13.2),
.
13.2
microsequencer
13.1
microsequencer : 21 5
bits, 5 bits (microcode memory), -
. microsequencer , ,
16 bits
(mOPs) , bit
CPU. , SEL ADDR, bits , microsequencer
.
, , CPU,
. , , (mOPs) ,
.
CPU (17) ,
,
.
5 bits (), 32 . , 3222 bits.
,
microsequencer . ,
. 5 bits
, ,
.
13.2, : ADDR
mapping , 5 bits .
21
, (SEL). FETCH 3, SEL
0, 5 bits
191
192
13:
( ADDR). FETCH 3
(7) . , , (IR). ,
SEL 1,
mapping .
13.3
mapping
mapping , 13.3,
3 bits (R) 00,
5 bits.
FETCH 3 5 bits, ADDR. ,
CPU, (
LDA).
LDA ( IR) 2 bits (00, 01, 10 11). LDA IR=101, 5 bits
. , LDA 1 10100 ,
LDA 2 10101
. , FETCH 3
microsequencer
13.1
. , ,
LDA, IR=101 SEL=1 FETCH 3,
mapping
10100, LDA 1. 10100 , bits
(mOPs)
microsequencer.
13.1.4
microsequencer,
,
. ,
(microprogram)
microsequencer , ,
, CPU.
, ,
, 13.1 .
193
194
13:
13.1
CPU
13.1
13.1,
00011,
FETCH 3. SEL 1,
mapping . , (5)
bits FETCH 3
(), . , 13.1 , (0 1).
(FETCH 1-3) 1 3 ( 00001 00011), 0 2.
mapping FETCH 3. ,
FETCH 3 IR2IR1IR000. ,
(7) CPU, 1
(2) bits 00. , CLR, (CLR 1),
00000, IR=000 CLR. , (3) bits
000,
CLR (00001, 00010 00011). ,
INC (C 1), (11101, 11110 11111) , , (FETCH cycle).
ADDR 00001. ,
CPU
(fetch-decode-execute) FETCH 1, .
195
196
13:
, .
mOPs .
(fetch cycle)
FETCH 1, AR PC,
(PC)
(AR). ,
PCBUS ( PCBUS = 1), (PC) .
, ARLOAD ( ARLOAD = 1), (AR)
(. 13.4).
13.4
FETCH 1
FETCH 2 .
( DR ),
(AR). ,
READ MEMBUS 12.2, , ,
, , . READ
CPU VHDL,
. ,
, mOPs,
13.1
13.1. , DRLOAD,
(DR).
( PC PC + 1),
PCINC (. 13.5).
13.5
FETCH 2
FETCH 3,
(DR)
(IR) (AR), IR
DR[7..5] AR DR[4..0]. ,
DRBUS,
, ARLOAD
IRLOAD, . , SEL 1
mapping (. 13.6).
13.6
FETCH 3
197
198
13:
,
(7) .
, , ADD,
8-bit . , (2) (ADD 1 ADD 2).
ADD 1 DR M,
(DR). , MEMBUS, , DRLOAD, (DR) (. 13.7).
13.7
ADD 1
ADD 2 AC C + DR,
(AC) (DR), .
ALU,
0,
(ALUS5) ,
, 0 ALUS4, (. 13.8).
13.1
13.8
ADD 2
199
200
13:
13.2
1.
VHDL 21 5 bits.
, 5 bits.
2.
VHDL
5 bits,
(reset).
, , .
13.2
3.
depth = 32;
-- 5-bit address ---> 0-31 dec
width = 22;
-- 22-bit data
address_radix = bin;
data_radix = bin;
content
begin
00001 : 0000000100000100000010 ; -- FETCH 1
end;
201
202
13:
4.
VHDL
lpm_rom. A
lpm_file microcode.mif
lpm_widthad
lpm_width. FLEX10K ( Assign Device
MAX+plus II).
5.
, , 13.1,
.
.
13.2
6.
(components)
21 5 bits, 5 bits ,
VHDL
microsequencer (. ). IR_signal, , mOPs,
, (reset) (clock).
(
component) (
signal), .
PROCESS, BEGIN
ARCHITECTURE. SEQ_out ( signal) 22 bits ( ), SEL, mOPs
ADDR. , IRMAP mapping
, . ,
port map .
p1: PROCESS (clock, reset)
BEGIN
IF reset = '1' THEN
SEL_MUX <= '0' ;
ADDR_MUX <= "00000";
ELSE
SEL_MUX <= SEL ;
ADDR_MUX <= ADDR ;
END IF;
END PROCESS ;
203
204
13:
microsequencer
13.2
7.
microsequencer .
( 1) (reset) 100 nsec, 200
nsec .
( ), mOPs - (7) , CPU
( 10.1). , mOPs (hex)
. .
205
CPU
CPU. ,
CPU ( , ) CPU.
,
,
VHDL:
CPU.
208
14: CPU
14.1
14.1.1
CPU,
ALU, , .
VHDL ,
CPU.
VHDL
. ,
, , .
14.1.2
CPU ,
( )
. .
VHDL
.mif .
external_mem.mif 32
, 8 bits . ( 8 bits),
, (hex)
CPU, .
depth = 32;
-- 5-bit address ---> 0-31 dec
width = 8;
-- 8-bit data
address_radix = bin;
data_radix = hex;
content
begin
00000 :
00001 :
00010 :
B1 ;
78 ;
32 ;
14.1
00011
00100
00101
00110
:
:
:
:
F3
53
96
1B
;
;
;
;
10001
10010
10011
10100
10110
11000
end;
:
:
:
:
:
:
54
AF
ED
17
D3
81
;
;
;
;
;
;
14.1, CPU .
,
. , 14.1 (mOPs)
(hex).
CPU mOPs .
, FETCH 1
LDA (PC) (AR) AR PC.
( FETCH 2) 00000
(AR), (1
hex ) (DR). , (PC) ,
PC PC+1, ..., ... , (7) CPU.
209
210
14: CPU
14.1
CPU
State
LDA
ADD
AND
INC
XOR
SUB
CLR
FETCH
FETCH
FETCH
LDA 1
LDA 2
LDA 3
LDA 4
FETCH
FETCH
FETCH
ADD 1
ADD 2
FETCH
FETCH
FETCH
AND 1
AND 2
FETCH
FETCH
FETCH
INC 1
FETCH
FETCH
FETCH
XOR 1
XOR 2
FETCH
FETCH
FETCH
SUB 1
SUB 2
FETCH
FETCH
FETCH
CLR 1
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
AR
PC
DR
AC
IR
mOPs
(bin) (bin) (hex) (hex) (bin) (hex)
00000
00000
10001
10001
10100
10100
10100
00001
00001
11000
11000
11000
00010
00010
10010
10010
10010
00011
00011
10011
10011
00100
00100
10011
10011
10011
00101
00101
10110
10110
10110
00110
00110
11011
11011
00000
00001
00001
00001
00001
00001
00001
00001
00010
00010
00010
00010
00010
00011
00011
00011
00011
00011
00100
00100
00100
00100
00101
00101
00101
00101
00101
00110
00110
00110
00110
00110
00111
00111
00111
00
B1
B1
54
54
17
17
17
78
78
81
81
81
32
32
AF
AF
AF
F3
F3
F3
F3
53
53
ED
ED
ED
96
96
D3
D3
D3
1B
1B
1B
00
00
00
00
00
00
17
17
17
17
17
98
98
98
98
98
88
88
88
88
89
89
89
89
89
64
64
64
64
64
91
91
91
91
00
000
000
101
101
101
101
101
101
101
011
011
011
011
011
001
001
001
001
001
111
111
111
111
010
010
010
010
010
100
100
100
100
100
000
000
0208
00C1
0214
0041
0204
0041
0424
0208
00C1
0214
0041
0024
0208
00C1
0214
0041
4024
0208
00C1
0214
3822
0208
00C1
0214
0041
C024
0208
00C1
0214
0041
2824
0208
00C1
0214
1C20
14.2
14.2
1.
VHDL
lpm_rom, lpm_file external_mem.mif.
2.
CPU VHDL
: () (5) (AR, PC, DR, AC IR),
() LU, () , () microsequencer,
, () .
( component)
( 16 , , , ARLOAD, LUS_0, DRBUS, ... .) ( signal). mOP (
16 bits) bit ( 13.1)
[.. MEMBUS <= mOP(0);]. (
for generate ) R, PC
IR, . ,
211
212
14: CPU
port map
(components),
CPU.
IR_signal
microsequencer,
(IR) , , .
CPU, ( entity) ,
,
clock reset. , CPU
(.. mOPs) mOP,
, 14.1,
.
3.
CPU.
200 nsec ,
100 nsec (reset).
CPU,
14.2
. , , FETCH 2
(mOPs) 00C1 (hex),
PC PC+1 DR . , mOPs
0214 (hex), FETCH 3. CPU , ( 14.1).
213
.
, MSc, PhD
.
/ & , MSc
. .
.
, :
.
218
15:
15.1
,
.
. , ,
.
,
.
,
. ,
, , -
(keywords), , . , .
,
.
:
15.2
15.2
(instruction)
, , , .
(instruction cycle). (instruction set).
: 8085
10000000 ( 8 bits)
(fetch) . . ,
00111110 :
.
.
219
220
15:
15.3
, . , . ,
, .
,
, ,
, , . ,
.
(),
()
.
, . (object program). ,
.
, ,
( bit) (
).
, ,
,
.
, -
15.3
. , (addition) ,
ADD (
addition).
(assembly).
.
221
222
15:
15.4
, . :
. , .
:
,
. ,
.
15.4
,
( )
.
, ,
,
.
:
/
. .
.
.
.
.
, .
.
.
, .
223
224
15:
,
.
, .
, ,
, .
,
.
.
( )
( ). .
, ,
.
, , (executable program). . ,
. (debugging) . (debuggers), .
(step-bystep) . ,
, . ,
.
,
. -
15.4
,
.
(breakpoints). ,
,
, , ,
.
225
226
15:
15.5
:
1.
(fetching) ,
.
2.
(decoding) .
3.
( bytes).
4.
(execution) .
8085,
, , .
,
8085, , , , .
,
:
8085
8085
()
, .
228
16:
8085
(editor)
16.1
16.1
16.1.1
8085
(register array) .
(), 8085, , , .
, 8085
:
(Accumulator A) 8 bits
(Flags F).
229
230
16:
(SP) . . , SP
.
.
(8 bits) 8 bits, B,
C, D, E, H L, 16 bits.
: BC, DE HL.
8085 16 bits.
/ (ALU) 8085 (
) .
8-bit (), , 8-bit (TeMporary Register TMR),
. /
(ALU) ,
.
16.1.2 8085
8085 1 3 bytes. byte
(operation code opcode),
. opcode (CPU)
bytes , ,
.
(instruction fetch), byte
,
.
PC. bytes,
bytes . ,
, , 1 byte, PC 1,
16.1
. 1 byte,
bytes .
, I/O, .
, I/O .
BC, DE HL. .
,
.
. , ,
. (clock cycle)
.
.
, - .
(instruction cycle). ,
(machines cycles) -
(.. ). ,
.
,
/ .
8085 :
231
232
16:
8085 .
16.1.3 8085
(addressing modes) (memory access).
(effective address).
.
8085 :
(Immediate addressing), .
,
(fetch) . :
MVI B,30H
LXI H,4000H
(Direct addressing),
. ,
. :
LDA 1FFFH
(Register addressing), /
16.1
233
. , . :
MOV B,D
ADD C
(Implied addressing).
. , . :
CMA
SIM
234
16:
16.2
1.
8085:
MVI H,20H
LXI H,2010H
LXI H,2010H
MVI L,01H
MOV B,M
LDA 2001H
MOV B,M
LDAX B
STA 2010H
MOV D,B
1:
MVI H,20H
MVI L,01H
MOV B,M
MOV D,B
LXI H,2001H
MOV B,M
LDAX B
LXI H,2001H
LDA 2001H
STA 2002H
16.2
235
2:
;
.
3: 2001 ,
; .
Hex
Hex
Hex
Hex
Hex
Hex
Hex
2.
8085
:
i.
B 20H.
ii.
D 10010.
iii. D H.
iv.
44H C E 3 bytes .
236
16:
1: .
2: ;
3:
;
16.2
237
4: ;
,
.
Hex
Hex
Hex
Hex
Hex
Hex
Hex
5: flags () ; , , .
3.
AC
CY
8085
3000 ,
238
16:
, 3001.
1: . progr_1.85.
2:
.
3:
;
4: 3000 .
.
16.2
239
5: (compile program) ,
,
Compiled successfully.
6: (run program) ,
, Execution
finished .
7: , , PC
3000 3001 .
PC
3000
3001
Hex
Hex
Hex
Hex
Hex
8: ;
9: ;
10: 1000
1007. ;
11:
.
, ,
(loop) (branch),
.
, :
(loops)
(branch).
(labels)
242
17:
17.1
, .
. .
(PC Program Counter). , PC .
. , PC
.
( )
. ,
, .
.
(conditional jumps)
(unconditional jumps).
. :
17.1
NZ
, Z=0
, Z=1
NC
, CY=0
, CY=1
PO
, P=0
17.1
243
PE
, P=1
, S=0
, S=1
()
. , JNZ 200
200 0. , . , JMP 300
300 .
, , , PC (
offset).
assembly,
.
, (label) .
.
offset
. ,
.
, .
. (flags) -
244
17:
,
.
,
. - . :
:
MVI C,9H
loop: 1
2
DCR C
JNZ loop
:
MVI C,9H C 9.
(,
, ). DCR C C . ,
loop JNZ loop. ,
1 2 9 .
17.2
17.2
1.
2000
2020 FF.
1: .
2:
.
2.
20 ,
2000 2013 .
, 0. 3000 (), 3001 ()
3002 ().
245
246
17:
: DVD .
.
1: .
2:
.
3.
. 2001 2000.
17.2
3001 .
:
DVD
.
.
(
).
,
( ). , . ,
, .
1: .
2:
.
.
247
248
17:
2001
2A
3001
2002
1C
3002
2003
78
3003
2004
09
3004
2005
F3
3005
2006
29
3006
2007
D2
3007
2008
C4
3008
2009
4F
3009
200
9B
300
3: ; 1;
4: T-states ;
T-states
. .
17.2
249
T-states
5
10
15
20
:.
8085
8085
.
,
:
8085
8085.
252
18:
18.1
18.1
253
/ (ALU). ,
.
( flags), : S
(Sign) , Z (Zero) , AC (Auxiliary
Carry) , P (Parity) CY (CarrY)
.
. ,
,
( S) 1, , , 0. (P), 1
, , , 0.
(AC) ( BCD
), byte BCD (
4 ).
4 bits ( BCD ) , 5bit.
AC. CY , ,
, , .
18.1
8085
S
AC
CY
,
.
254
18:
18.2
= 1
bit
.
( ).
AC
( ) bit
bit .
CY
,
.
bits .
,
(
JMP).
18.2
18.2
1.
8085
3000 3001 3002.
1:
2:
255
256
18:
3:
3000
3001
3002
Hex
Hex
Hex
01
02
8F
83
23
32
7F
87
4:
Flags
Hex
3002
(flags).
5:
2.
BCD 8 , 3002.
3001.
18.2
3000.
8 3000 0. () 17, 21, 06, 31, 24 () 39, 25, 07, 49.
1:
2:
257
258
18:
3:
4:
;
,
.
Hex
Hex
Hex
Hex
Hex
Hex
Hex
5:
bits ()
,
.
18.2
3.
259
AC
CY
16 , 3004.
24 .
3003.
3000-3002. . , MSB
3002, LSB 3000.
, MSB 3005,
LSB 3004.
260
18:
1:
2:
3:
.
,
.
18.2
4:
4.
261
8085 .
8
3000 3001.
16
3002 (LSB) 3003 (MSB).
, (.. 3x5=3+3+3+3+3).
1:
262
18:
2:
3:
18.2
263
3000
3001
3003
3002
Hex
Hex
Hex
Hex
10
A2
9F
43
73
B2
7F
C7
4:
T-states
5:
4.
5.
8085 .
8 3000 3001.
8 3002
() 3003 (). , .
..: 18:5-> 18-5=13
=1
13-5=8
=2
8-5=3
=3 =3, 3<5,
1:
264
18:
2:
18.2
3:
265
3000
3001
3002
3003
Hex
Hex
Hex
Hex
A2
10
9F
03
73
B2
7F
17
T-states
,
.
,
:
Booth.
19: /
268
19.1
19.1.1
.
,
.
8085 :
ANA r
r.
ANA M
HL.
AN byte
byte.
XRA r
r.
XRA M
HL.
XR byte
byte.
ORA r
r.
ORA M
HL.
OR byte
byte.
CMP r
r.
CMP M
HL.
CMP byte
byte.
19.1
269
RLC
RRC
RAL
RAR
CMA
CMC
STC
1 .
19.1.2 /
.
,
, ,
.
bit 0. , 2, , ,
2.
19: /
270
, , .
1
19.1
271
19.1.3
:
1
1
2
3
+
. . 1, , , 0, . ,
. .
.
n m ,
n+m .
19.1.4 Booth
Booth
. .
. ,
.
19: /
272
,
, :
)
1.
0
( 1).
:
-13 -9 ( +117).
( 5 ) 10011 10111 .
MR: 10011 ()
MD: 10111 ()
MD+1: 01001 ( )
A: 00000 ()
MRL: LSB
MRL-1: . 0.
MR,
. , MRL-1 MR . , bit .
.
:
19.1
MR,
0001110101=11710.
273
19: /
274
19.2
1.
0A 3000H, -
3002H.
1:
.
2:
.
AC
CY
19.2
3: ;
;
2.
L .
3000H
.
3002H.
3.
. 3002 F4.
1:
275
19: /
276
2:
bits ()
,
.
3:
AC
CY
; ;
4.
8
3000 8
3001,
16 3002 (LSB), 3003 (MSB).
16 bits, byte 0.
.
1:
19.2
2:
277
3:
Tstates:
(3000)
(3001)
(3003-3002)
FF
01
67
7C
FF
00
FF
FF
T-states
19: /
278
5.
16 bits 3000-3001 16 bits 30023003, 3004-3005 (), 30063007 ().
1:
2:
19.2
3:
279
(3001-3000)
(3003-3002)
(3005-3004)
(3007-3006)
CDEF
AB01
FE67
0065
0167
027C
340F
0001
12FF
0000
4:
;
,
;
6.
Booth 8 .
3000 3001 . 16
3002 (LSB) 3003 (MSB). .
19: /
280
1:
19.2
2:
281
states.
(3000)
(3001)
(3003-3002)
FF
01
67
7C
FF
00
FF
FF
T-states
. , ,
, .
, :
(stack)
(stack register)
.
(stack)
(stack register)
284
20:
20.1
20.1.1
. LIFO (Last In First Out).
. ,
.
,
. ,
(stack register) , , ,
. ( SP,
stack pointer) .
PUSH, POP.
.
.
PUSH
.
FFEF
FFF0
20.1
PUSH POP
POP
20.1
285
.
, .
PUSH
POP. :
.
.
.
PUSH H
PUSH B
POP B
POP H
.
.
.
BC DE, POP ,
. , , PUSH POP.
, SP=3010H, BC=1234H
DE=5678H (= ).
PUSH
PUSH
POP
POP
78
XX
XX
XX
56
XX
XX
34
34
34
XX
XX
12
12
12
XX
XX
XX
XX
XX SP XX
300C
XX
XX
300D
XX
300E
XX
300F
3010
SP
SP
SP
SP
286
20:
POP . . POP
.
SP. , PUSH .
20.1.2
,
, ,
.
. .
,
.
(call) .
(label) .
,
. , , , PUSH . .
CALL.
RET . POP PC,
, .
. , , , PUSH
POP , ,
,
PUSH
.
20.1
,
.
, , , . PUSH , ,
POP ( )
.
,
.
, . CALL RET. .
C<> , , ,
,
.
.
.
,
.
.
20.1.3
, , .
PUSH . , ,
287
288
20:
; DE
PUSH H
; HL
CALL SUB_A
; SUB_A
SUBA:
POP H
; PC HL
POP B
; HL BC
POP D
; DE
PUSH H
; PC
RET
20.1
289
,
.
postfix reverse polish , .. + , + .
. infix postfix.
= + ( + CD) .
= + ( + CD) =
= + ( + CD) =
= + (CD+) =
= + CD+ =
= CD++ =
= CD++ =
= CD++ ( )
postfix notation.
.
. ( ):
1.
2.
1
- . , PUSH
. , POP ,
.
3.
4.
+1
= bytes , .
. ,
2.
290
20:
, , , + C,
postfix notation A B C +, :
PUSH A
PUSH B
PUSH C
MUL
ADD
20.2
20.2
1.
291
HL,
DE BC 1234, 5678 9ABC SP
3010. .
1:
2:
H, L, D, E, B, C SP .
SP
Hex
Hex
Hex
Hex
Hex
Hex
Hex
292
20:
3:
2.
5 (byte)
3000.
3000 00 5 .
1:
5
(byte) 3000.
20.2
2:
3000
00 5 .
3.
16 ,
8- 3000-3001.
1:
293
294
20:
2:
3:
-1
3003 N 3002. , : 1 2,
2 3, ..., -1 . 2000. :
.
20.2
4.
295
296
20:
2:
postfix . 3001H,
3000H. ,
PUSH , , .
.
3:
. .
3000
08
0B
0E
3001
1F
2F
2D
3002
00
00
00
3003
05
0A
2E
3004
00
00
00
3005
0C
2C
30
3006
00
00
00
3007
20
0B
3008
00
00
3009
02
300A
00
20.2
300B
297
300C
300D
300E
4:
infix .
,
:
8085 .
300
21: /
21.1
21.1.1 /
. , ,
, , , , .
( bytes), .
(consequtive), , ,
. , ,
. .
. :
, .
,
1.
( )
1 .
, , ,
.
.
, , (.. ), ,
.
21.1
. , () .
,
() 1.
, ,
. ,
.
21.1.2 (bubble-sort)
bubble-sort ,
.
bubble-sort . :
. , . ,
, , .
. ,
2, 3 ...,
, .
21.1.3 (binary search)
, .
Xi. :
.
301
302
21: /
(+)/2
Y=X, . .
Y>X, .
. ,
. , ,
.
,
.
21.2
21.2
1.
.
,
. 2001 3001
,
2000 3000 .
1:
2:
2.
.
3003 3004.
303
304
21: /
3000
3001H (LSB) - 3002H (MSB).
1:
2:
21.2
3:
305
.
.
3000
34
11
25
21
3003
0A
0B
0C
0D
3004
08
08
08
08
3005
0C
0C
0C
0C
3006
11
11
11
11
3007
16
16
16
16
3008
20
20
20
20
3009
21
21
21
21
300A
25
25
25
25
300B
28
28
28
28
300C
34
34
34
34
300D
4F
4F
4F
4F
5B
5B
5B
7C
7C
3001
3002
300E
300F
3010
4:
FA
T-states
;
T-states
3.
3000H,
. 3001H.
306
21: /
3002H.
1.
1:
2:
3:
.
.
21.2
307
308
21: /
4.
bubble-sort.
.
1:
2:
3:
21.2
4:
309
bubble-sort
;
FF
01
5:
11
43
22
67
54
AC
5A
23
FF
01
11
43
22
67
54
AC
5A
23
1
2
6:
bubblesort; . ,
.
(data sheets)
7400
NAND
2
Y = (A B)
7402
NOR 2
314
Y = (A + B)
7404
NOT
= A
7408
AND 2
=AB
DATA SHEETS
7410
NAND
3
= (A B C)
7420
NAND
4
=(A B C D)
315
316
7432
OR 2
Y=A+B
DATA SHEETS
7448
BCD 7-segment
display
317
318
DATA SHEETS
319
7474
D Flip-flop
positive edge
triggered.
7476
JK Flip-flop
320
7483
DATA SHEETS
7486
XOR 2
Y=AB
321
322
7490
DATA SHEETS
74138
38
18
74151
81
323
324
74194
4 bits
VHDL
.1
VHDL (hardware) .
VHSIC Hardware Description Language, VHSIC ,
, Very High-Speed Integrated Circuits ( ).
IBM, Texas Instruments Intermetrics
1983. 1987 (
std 1076-1987 ),
1993, ( std 1164-1993 ).
VHDL .
. , ,
,
VHDL. VHDL
(, ,
MAX+plus II) ,
.
, , :
VHDL . , , constructs VHDL .
326
VHDL ,
,
.
, VHDL ,
(object-oriented) .
VHDL
hardware . :
VHDL
VHDL
(behavioral, structural dataflow)
VHDL , .
VHDL . (features), .
,
.
VHDL
.2
VHDL
VHDL
.
.1.
.1
XOR VHDL
XOR
VHDL. , ,
(libraries) .
(entity). , ( ).
(rchitecture) .
,
(behavioral, structural
dataflow), .6.
327
328
.3
VHDL
VHDL
(entity) *.vhd.
VHDL, .2. , XOR, (xor_gate)
, . ,
XOR xor_gate.vhd.
.2
xor_gate.vhd
, xor_arc, ,
.
VHDL
.4
VHDL
.4.1 (comments)
VHDL (--). (compiler) ,
, :
-- this is a VHDL comment
:
CONSTANT high : std_logic := '1' ;
, (variable) ,
, , . ,
.
VARIABLE _ : _ {:=
_} ;
:
VARIABLE count : std_logic_vector (2 downto 0) ;
(signal) VHDL . ,
.
.
329
330
signal _ : _ ;
:
signal y : std_logic ;
, (.. )
(.. ).
bit bits. VHDL bit
(1 0),
bits (.. 10010).
VHDL
. , , (compiler)
VHDL : CONSTANT,
constant Constant.
.4.3 (data types)
VHDL , ,
. STD_LOGIC STD_LOGIC_VECTOR,
SIGNED UNSIGNED, BIT BIT_VECTOR INTEGER.
BOOLEAN, Enumeration
TYPE, ARRAY SUBTYPE, , .
.4.3.1 STD_LOGIC STD_LOGIC_VECTOR
std_logic std_logic_vector,
bit,
bits. IEEE
Std 1164-1993 , ,
,
IEEE.std_logic_1164.
std_logic ,
MAX+plus II Altera (4):
VHDL
331
0 ( ), 1 ( ), Z ( ) X
( ).
std_logic_vector,
bits (.. 01101, , , ...
.). N bits
:
std_logic_vector (N-1 downto 0);
std_logic_vector (1 to N);
:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
SIGNAL A : std_logic ;
SIGNAL B : std_logic_vector(4 downto 0) ;
A <= '0' ;
B <= "10100" ;
-- 1-bit signal
-- 5-bits signal
332
:
LIBRARY ieee;
USE ieee.std_logic_unsigned.all;
SIGNAL A, B
: std_logic_vector(3 downto 0);
signal
SIGNAL result : std_logic_vector(3 downto 0);
signal
result <= A + B ;
-- 4-bits
-- 4-bits
.4.3.3 INTEGER
integer (default) 32 bits!
range, .
GERrange _ to _ ;
127
+127, 8 bits,
cnt 8 bits.
SIGNAL Y : INTEGER RANGE -127 TO 127;
VARIABLE cnt : INTEGER RANGE 0 TO 255;
f <= '1' ;
w1 <= "1100" ;
-- 1-bit signal
-- 4-bits signal
VHDL
333
.4.4 (operators)
VHDL ,
(5) : () (logical), () (arithmetic),
() (relational), () (shift) () (concatenation).
MAX+plus II,
. (
MAX+plus II) .1.
.1
VHDL
+, -, *
&
334
<= , = C/C++, =
==.
&,
. , &
(110) (001) f ( f <= A & B)
110001, .
SIGNAL , B: std_logic_vector(2 DOWNTO 0);
SIGNAL f
: std_logic_vector(5 DOWNTO 0);
SIGNAL S, Y: std_logic_vector(2 DOWNTO 0);
A <= "110" ;
B <= "001" ;
f <= A & B;
-- f = "110001"
S <= A + B;
-- S = "111"
Y <= A AND B; -- Y = "000"
VHDL
.5
335
VHDL
.5.1
VHDL
(libraries) . ,
,
.
Altera MAX+plus II , : ieee, lpm altera.
MAX+plus II,
\maxplus2\vhdlxx , xx 87 93.
(packages),
( ieee) ( lpm altera). , ( LIBRARY)
( USE).
LIBRARY _;
USE _._.all;
, :
USE ieee.std_logic_1164.all;
std_logic_1164 ieee.
, , *.vhd. ieee, , std1164.vhd,
std_logic_1164 , ,
.
lpm (Library of Parameterized Modules), ,
lpm_components (modules),
VHDL. , altera , macrofunctions megafunctions. -
336
, macrofunctions 300
74xx.
.2 ltera
MAX+plus II, .
.2
MAX+plus II
std1164.vhd
std_logic_1164
ieee
std_logic_unsigned
ieee
std_logic_signed
ieee
std_logic_arith
ieee
lpm_pack.vhd
lpm_components
lpm
maxplus2.vhd
maxplus2
altera
megacore.vhd
megacore
altera
std1164b.vhd
unsigned.vhd
unsignedb.vhd
signed.vhd
signedb.vhd
arith.vhd
arithb.vhd
.5.2
, VHDL
(entity). .
ENTITY _ IS
PORT ( _ {,_} : mode_
_;
VHDL
337
_ {,_} : mode_
_);
END _ ;
: ()
, () (mode) () (..
std_logic... .).
(4) .3.
.3
IN
OUT
BUFFER
INOUT
<=
, IN , ,
OUT. , (FA) 1 bit (
.3) (, Cin )
(S Cout OUT),
std_logic.
.3
(FA) 1 bit
338
ENTITY FA IS
PORT ( A, B, Cin
S, Cout
END FA;
: IN std_logic;
: OUT std_logic );
BUFFER,
<=.
<=, , , ,
.
ENTITY test IS
PORT ( A
: IN std_logic;
S
: OUT std_logic;
Rout : BUFFER std_logic_vector(2 DOWNTO 0)
);
END test;
temp <= A ;
S <= temp_2 ;
Rout <= Rout + 1 ;
.5.3
(architecture)
VHDL, . : () (declarative part) ()
(architecture body).
: ()
SIGNAL, () CONSTANT, () TYPE, () COMPONENT, () FUNCTION
() PROCEDURE.
SIGNAL, , COMPONENT, ,
PORT MAP, ,
.
VHDL
BEGIN,
: () PORT MAP ( ), () (concurrent), () PROCESS, () GENERATE, ()
SELECT () (lpm).
ARCHITECTURE _ OF _
IS
SIGNAL
CONSTANT
TYPE
COMPONENT
FUNCTION
PROCEDURE
BEGIN
{PORT MAP ;}
-- COMPONENT
{ ;}
{PROCESS ;}
{GENERATE ;}
{SELECT ;}
{ lpm ;}
END _;
, VHDL
, , .
.
339
340
.6
VHDL
VHDL (levels)
:
(behavioral)
(structural)
(dataflow)
. , (structural) . ,
,
(.. , , .).
. . ,
8 bits
( [load]
[increment]) VHDL
(.. flip-flops, .).
(behavioral) .
(structural) (behavioral)
VHDL. , ,
(dataflow), Boolean .
.
, VHDL
(AND, OR, XOR .).
(dataflow) (structural)
,
, .
(behavioral) , -
VHDL
.
, .
,
, . , .
.6.1 (behavioral model)
(behavioral) . H
VHDL
(.. C/C++), , FOR LOOP,
CASE, IF .
, . ,
, .
bits (4 bits). ( )
bits (Cin), (S, 4 bits) (Cout). VHDL +, ieee
. , , std_logic_unsigned.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
ENTITY adder4_behav IS
PORT ( Cin
: IN std_logic;
341
342
A, B
: IN std_logic_vector(3 downto 0) ;
S
: OUT std_logic_vector(3 downto 0) ;
Cout
: OUT std_logic);
END adder4_behav;
ARCHITECTURE behavioral_arc OF adder4_behav IS
SIGNAL s_temp : std_logic_vector(4 downto 0) ;
BEGIN
s_temp <= A + B + Cin ;
S <= s_temp(3 downto 0);
Cout <= s_temp(4);
END behavioral_arc;
,
(entity). ,
(architecture),
. (s_temp) 5 bits,
bit [s_temp(4)] , 4
bits [bits s_temp(3) s_temp(0)] .
, :
s_temp <= A + B + Cin;
O S Cout.
4-bit . (compiler) +
, .
VHDL
.6.1.1 PROCESS
PROCESS. : IF,
CASE FOR LOOP. O
PROCESS.
,
.
PROCESS , . , PROCESS, ,
.
: PROCESS (_ {,_})
{VARIABLE }
BEGIN
{ }
{ PROCEDURE}
{IF }
{CASE }
{FOR LOOP }
{ ;}
END PROCESS ;
PROCESS, , sensitivitylist.
, , PROCESS
.
. PROCESS
sensitivity-list
PROCESS. sensitivity-list
( IN).
.6.1.1.1 IF
IF , PROCESS. H
343
344
IF . VHDL
, , :
IF _1 THEN
;
{;}
ELSIF _2 THEN
;
{;}
{ELSIF _3 THEN
;
{;}
}
ELSE
;
{;}
END IF;
IF 21 bit, .4. ,
sel 0, ( y<=A), ( sel=1) .
.4
21 bit ( )
LIBRARY ieee;
USE ieee.std_logic_1164.all ;
ENTITY mux2to1 IS
PORT ( A, B
: IN std_logic ;
sel
: IN std_logic ;
VHDL
345
: OUT std_logic
);
END mux2to1 ;
ARCHITECTURE mux2_arc OF mux2to1 IS
BEGIN
PROCESS
BEGIN
IF sel='0' THEN
y<=A;
ELSE
y<=B;
END IF;
END PROCESS;
-- sel='0'
-- sel='1'
END mux2_arc;
IF
NAND .
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY nand_gate IS
PORT ( A, B : IN std_logic;
Y
: OUT std_logic);
END nand_gate;
ARCHITECTURE arc OF nand_gate IS
BEGIN
PROCESS
BEGIN
IF A/=B THEN
Y<='1';
ELSIF A=B THEN
IF A='1' THEN
Y<='0';
ELSE
Y<='1';
END IF;
END IF;
-- A=1 B=1
-- A=0 B=0
346
END PROCESS;
END arc;
.6.1.1.2 CASE
CASE VHDL .
IF, PROCESS, . :
CASE _ IS
WHEN _1 =>
{
WHEN _2 =>
{
;
;}
;
;}
CASE
( bits) WHEN.
CASE WHEN OTHERS,
( WHEN).
CASE 21
bit IF. To CASE.
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY mux2to1_v2 IS
PORT ( A, B
: IN std_logic ;
sel
: IN std_logic ;
y
: OUT std_logic
);
VHDL
347
END mux2to1_v2 ;
ARCHITECTURE mux2_arc OF mux2to1_v2 IS
BEGIN
PROCESS
BEGIN
CASE sel IS
WHEN '0'
=> y <= A;
WHEN OTHERS => y <= B;
END CASE;
END PROCESS ;
-- sel='0'
-- sel='1'
END mux2_arc;
sel : 0 1. , sel
0, y A.
sel 1, WHEN OTHERS.
.
CASE
CPU. (4) bits
(buffers),
. .5, , , B
C, bits. ,
,
S0 1. , C
S1 S2 .
348
.5
() CPU
()
,
(A, B C) , .
, CASE, (3) bits ( control) bit S0, S1 S2. ,
(8). , (001, 010 100), A, B C
, WHEN OTHERS, ( 0000).
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY system_BUS IS
PORT ( A, B, C
S0, S1, S2
data_bus
);
END system_BUS ;
: IN std_logic_vector(3 downto 0) ;
: IN std_logic ;
: OUT std_logic_vector(3 downto 0)
VHDL
SIGNAL sys_Bus
SIGNAL control
349
BEGIN
control <= S2 & S1 & S0 ;
PROCESS
BEGIN
CASE control IS
WHEN "001" =>
WHEN "010" =>
WHEN "100" =>
WHEN others =>
END CASE;
END PROCESS ;
data_bus
data_bus
data_bus
data_bus
<=
<=
<=
<=
A;
B;
C;
"0000";
END BUS_arc ;
8 bits .
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY shift_register IS
PORT ( data_in
: IN std_logic_vector(7 DOWNTO 0);
clk
: IN std_logic;
350
load
Q
: IN std_logic;
: BUFFER std_logic_vector(7 DOWNTO
0) );
END shift_register ;
ARCHITECTURE reg_arc OF shift_register IS
BEGIN
PROCESS (clk)
BEGIN
IF rising_edge(clk) THEN
IF load = '1' then
Q <= data_in;
ELSE
f1: FOR i IN 0 TO 6 LOOP
Q(i) <= Q(i+1);
position
END LOOP;
Q(7) <= '0';
END IF;
END IF;
END PROCESS;
--shift right 1
END reg_arc;
, FOR LOOP .
Q (
) buffer :
Q(i) <= Q(i+1);
Q
<=. 8 bits ,
(7) : Q(1) Q(0), Q(2)
Q(1), ... ... ,
FOR LOOP, . , ,
bit Q(7) [Q(7)<=0].
VHDL
VHDL .
.6.2 (structural model)
VHDL , , (.. , flip-flops).
4-bit
.
VHDL
bit (1-bit FA) (
).
( ) (component).
VHDL .vhd.
(
) COMPONENT,
PORT MAP.
, .
FOR
GENERATE. PORT MAP FOR GENERATE .
M , VHDL 4-bit 1-bit . , . ,
bit
,
.6.
351
352
.6
() bit, ()
()
: IN std_logic;
: OUT std_logic );
VHDL
353
ARCHITECTURE arc OF FA IS
SIGNAL x1, x2, x3
: std_logic ;
BEGIN
x1 <= A xor B ;
x2 <= A nand B ;
x3 <= Cin nand x1 ;
S <= x1 xor Cin ;
Cout <= x2 nand x3 ;
END arc;
_ {,_} : mode_
_);
END COMPONENT ;
,
, PORT .
, *.vhd. bit, , COMPONENT :
354
COMPONENT FA
PORT ( A, B, Cin
S, Cout
END COMPONENT;
: IN std_logic;
: OUT std_logic);
: IN std_logic;
: OUT std_logic );
VHDL
355
FA
FA
FA
FA
PORT
PORT
PORT
PORT
MAP
MAP
MAP
MAP
(A(0),
(A(1),
(A(2),
(A(3),
B(0),
B(1),
B(2),
B(3),
C(0),
C(1),
C(2),
C(3),
Sum(0),
Sum(1),
Sum(2),
Sum(3),
C(1));
C(2));
C(3));
C(4));
.7
4-bit 1-bit
FA
C, bit . , Cin C(0), C(1)
C(3), Cout C(4).
.6.2.3 FOR GENERATE
FOR GENERATE
(concurrent) , , .
, FOR GENERATE PORT MAP:
356
_1: FOR _ IN _ TO
_ GENERATE
_2 : PORT MAP ;
{_3 : PORT MAP ; }
END GENERATE ;
FOR GENERATE
4 bits . ,
FA (4) ,
PORT MAP. FOR
GENERATE, PORT MAP
:
p1: FOR i IN 0 TO 3 GENERATE
FA_4: FA PORT MAP (A(i), B(i), C(i), Sum(i), C(i+1)
);
END GENERATE ;
VHDL
357
decoder_3to8 IS
(sel
(sel
(sel
(sel
(sel
(sel
(sel
(sel
=
=
=
=
=
=
=
=
"000")
"001")
"010")
"011")
"100")
"101")
"110")
"111")
ELSE
ELSE
ELSE
ELSE
ELSE
ELSE
ELSE
ELSE
END dataflow_arc ;
.6.3.3 SELECT
M ( ). -
358
(WHEN OTHERS)
.
WITH __ SELECT
_ <= _1 WHEN _1 {|} ,
_2 WHEN _2 {|} ,
...
_ WHEN OTHERS;
SELECT
41 bit, .8.
sel 2 bits, S1 S0. (sel=11)
WHEN OTHERS.
.8
41 bit
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY mux4to1 IS
PORT ( A, B, C, D
S0, S1
mux_out
: IN std_logic ;
: IN std_logic ;
: OUT std_logic );
VHDL
359
END mux4to1 ;
ARCHITECTURE dataflow_arc OF mux4to1 IS
SIGNAL sel : std_logic_vector(1 DOWNTO 0);
BEGIN
sel <= S1 & S0 ;
WITH sel SELECT
mux_out <= A
B
C
D
END dataflow_arc ;
WHEN
WHEN
WHEN
WHEN
"00",
"01",
"10",
OTHERS;
.6.4 PACKAGE
H (PACKAGE) (components) . ,
component
,
. ()
, .
COMPONENT, , (PACKAGE)
(CONSTANT, VARIABLE SIGNAL), (TYPE,
SUBTYPE), FUNCTION PROCEDURE.
PACKAGE __ IS
CONSTANT
VARIABLE
TYPE
SUBTYPE
SIGNAL
COMPONENT
360
FUNCTION
PROCEDURE
END __;
, PACKAGE, . ,
my_package (component) 1-bit (FA)
std_logic_1164 ieee,
std_logic FA. ( VHDL)
PACKAGE .
PACKAGE
.vhd. , , my_package.vhd :
LIBRARY ieee;
USE ieee.std_logic_1164.all;
PACKAGE my_package IS
COMPONENT FA
PORT ( A, B, Cin
S, Cout
END COMPONENT;
: IN std_logic;
: OUT std_logic );
END my_package;
.6.4.1 (package)
,
,
(compilation), VHDL.
,
.
,
work.
VHDL
LIBRARY work;
USE work.__.all;
VHDL 4-bit . ,
1 bit component. , FA
, ,
my_package.vhd, .
LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY work;
USE work.my_package.all;
ENTITY adder_4bit_v2 IS
PORT ( A, B : IN std_logic_vector(3 DOWNTO 0);
Cin : IN std_logic;
Sum : OUT std_logic_vector(3 DOWNTO 0);
Cout : OUT std_logic );
END adder_4bit_v2 ;
ARCHITECTURE arc OF adder_4bit_v2 IS
SIGNAL C : std_logic_vector(4 DOWNTO 0);
BEGIN
C(0)<=Cin;
p1: FOR i IN 0 TO 3 GENERATE
FA_4: FA PORT MAP (A(i), B(i), C(i), Sum(i), C(i+1)
);
END GENERATE ;
Cout <= C(4);
END arc ;
361
362
.7
(concurrent) (sequential) ,
.
, IF, CASE FOR LOOP, (behavioral).
.7.1 (clock)
, (clock) . , : . VHDL , .
.7.1.1 falling_edge() rising_edge()
falling_edge() rising_edge()
, , . std_logic_1164 ieee,
. (.. clock).
, D flip-flop D Q, :
IF falling_edge(clock) THEN
Q <= D;
END IF;
.7.1.2 EVENT
EVENT.
D flip-flop :
VHDL
363
D flip-flop
clock ( clock=1
clock=0).
.7.1.3 WAIT UNTIL
WAIT UNTIL ,
(clock) 0 1 . , :
WAIT UNTIL clock= '0';
. ,
D flip-flop WAIT UNTIL
:
WAIT UNTIL clock='0';
Q <= D;
.7.2
.7.2.1 D flip-flop
D
flip-flop . flip-flop , .9, (reset)
1.
364
.9
D flip-flop
VHDL
( ),
IF. flip-flop falling_edge(). falling_edge() , , ,
. , . , , . , falling_edge().
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY d_ff IS
PORT ( D
: IN std_logic;
clock, reset : IN std_logic;
Q
: OUT std_logic);
END d_ff ;
ARCHITECTURE dff_arc OF d_ff IS
BEGIN
p1: PROCESS (clock, reset)
BEGIN
IF reset = '1' THEN
Q <= '0' ;
ELSIF falling_edge(clock) THEN
Q <= D;
END IF;
VHDL
END PROCESS ;
END dff_arc ;
.7.2.2 D flip-flop
D flip-flop ,
, ,
.
falling_edge(). To
:
ARCHITECTURE dff_arc OF d_ff_sync IS
BEGIN
p1: PROCESS (clock, reset)
BEGIN
IF falling_edge(clock) THEN
IF reset = '1' THEN
Q <= '0' ;
ELSE
Q <= D;
END IF;
END IF;
END PROCESS ;
END dff_arc ;
.7.2.3 K 8 bits
8 bits ( .10)
VHDL D flip-flop, (Rin Rout, , D Q)
std_logic_vector std_logic. ,
(reset), (load)
(inc).
365
366
.10
8 bits
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
USE ieee.std_logic_unsigned.all ;
ENTITY register_8bit IS
PORT ( reg_in
;
clock, reset
load, inc
reg_out
0)) ;
END register_8bit ;
: IN std_logic_vector(7 DOWNTO 0)
: IN std_logic ;
: IN std_logic ;
: OUT std_logic_vector(7 DOWNTO
VHDL
.8
367
LPM
VHDL
(parameterized modules).
,
VHDL.
LPM (Library of Parameterized
Modules),
lpm_components.
LPM ,
lpm_add_sub),
(lpm_mux,
(lpm_ff,
lpm_decode,
lpm_counter,
lpm_shiftreg), , (lpm_fifo,
lpm_ram_dq, lpm_rom).
.8.1 ROM
LPM ROM (LPM_ROM).
, VHDL.
ARRAY, , . LPM_ROM LPM.
: lpm_rom
GENERIC MAP( LPM_WIDTHAD => ,
LPM_OUTDATA => "REGISTERED",
LPM_ADDRESS_CONTROL => "REGISTERED",
LPM_FILE => "_.mif",
LPM_WIDTH => ,
LPM_TYPE => "LPM_ROM",
LPM_NUMWORDS => ,
LPM_HINT => "UNUSED" )
PORT MAP (address => _1,
inclock => _2,
outclock => _3,
368
H LPM_ROM , , . ( GENERIC P)
VHDL
, address
data, address q lpm , PORT MAP.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
LIBRARY lpm;
USE lpm.lpm_components.all;
ENTITY lpm_ROM_memory IS
PORT( address : IN std_logic_vector(2 DOWNTO 0);
-3-bit address
data
: OUT std_logic_vector(11 DOWNTO 0)); -12-bit data
END lpm_ROM_memory ;
ARCHITECTURE MEM_arc OF lpm_ROM_memory IS
BEGIN
external_mem: lpm_rom
GENERIC MAP( lpm_widthad => 3,
lpm_outdata => "unregistered",
lpm_address_control => "unregistered",
lpm_file => "memory_data.mif",
lpm_width => 12)
PORT MAP (address => address, q => data);
END MEM_arc;
.8.2 *.mif
, ROM VHDL
LPM_ROM .mif . .
.mif
. , DEPTH WIDTH,
369
370
. , ROM
312 DEPTH 8, 3-bit
23=8 , WIDTH 12,
bits . (address_radix data_radix) (radix) . : (bin), (dec), (hex) (oct).
, , , (BIN)
(HEX),
, .
ROM 312 .mif :
depth = 8;
width = 12;
address_radix = bin;
data_radix = hex;
CONTENT
BEGIN
-- address : data ;
000
001
011
100
101
111
:
:
:
:
:
:
729
12d
01a
809
632
45c
;
;
;
;
;
;
END;
lpm .
.mif ,
, . ARRAY,
VHDL
371
8085
Opcode
Opcode
.1
ADC r
8F
8E
87
Add
ADD M
86
Add to Memory
ADI n
C6
Add Immediate
ANA r
A7
AND
Accumulator
ANA M
A6
AND
Accumulator and
Memory
ANI n
E6
CC a
DC Call on Carry
CM a
FC Call on Minus
CMA
2F
Complement
Accumulator
CMC
3F
Complement
Carry
CMP r
BF
Compare
CMP M
BF
Compare with
Memory
CNC a
D4
C4
Call on No Zero
CP a
F4
Call on Plus
CPE a
EC Call on Parity
Even
CPI n
FE
Compare
Immediate
CPO a
E4
CZ a
CC Call on Zero
DAA
27
Decimal Adjust
Accumulator
DAD B
09
DAD D
19
Double Add DE
to HL
ACI n
ADC M
Double Add BC
to HL
CD Call unconditional
Opcode
Opcode
374
DAD H
29
Double Add HL
to HL
DAD SP
39
Double Add SP to
HL
DCR r
3D
Decrement
DCR M
35
Decrement
Memory
DCX B
0B
Decrement BC
DCX D
1B
Decrement DE
DCX H
2B
Decrement HL
DCX SP
3B
Decrement Stack
Pointer
DI
F3
Disable Interrupts EI
FB
Enable Interrupts
HLT
76
Halt
IN p
DB Input
INR r
3C
Increment
INR M
3C
Increment
Memory
INX B
03
Increment BC
INX D
13
Increment DE
INX H
23
Increment HL
INX SP
33
Increment Stack
Pointer
JMP a
C3
Jump
unconditional
JC a
DA Jump on Carry
JM a
FA Jump on Minus
JNC a
D2
Jump on No Carry
JNZ a
C2
F2
Jump on Plus
JPE a
EA Jump on Parity
Even
JPO a
E2
Jump on Parity
Odd
JZ a
CA Jump on Zero
LDA a
3A
Load Accumulator
direct
LDAX B
0A
Load
Accumulator
indirect
LDAX D
1A
Load Accumulator
indirect
LHLD a
2A
Load HL Direct
LXI B,nn
01
Load Immediate
BC
LXI D,nn
11
21
Load Immediate
HL
LXI SP,nn
31
7F
Move register to
register
MOV M,r
77
Move register to
Memory
7E
Move Memory to
register
Jump on No Zero JP a
MOV r,M
375
Opcode
Opcode
8085
MVI r,n
3E
36
Move Immediate
to Memory
NOP
00
No Operation
ORA r
B7
Inclusive OR
Accumulator
ORA M
B6
Inclusive OR
Accumulator
ORI n
F6
Inclusive OR
Immediate
OUT p
D3
Output
PCHL
E9
Jump HL indirect
POP B
C1
Pop BC
POP D
D1
Pop DE
POP H
E1
Pop HL
POP PSW
F1
Pop Processor
Status Word
PUSH B
C5
Push BC
PUSH D
D5
Push DE
PUSH H
E5
Push HL
PUSH PSW
F5
Push Processor
Status Word
RAL
17
Rotate
RAR
Accumulator Left
1F
Rotate
Accumulator Righ
RET
C9
Return
RC
D8
Return on Carry
RIM
20
Read Interrupt
Mask
RM
F8
Return on Minus
RNC
D0
Return on No
Carry
RNZ
C0
Return on No
Zero
RP
F0
Return on Plus
RPE
E8
Return on Parity
Even
RPO
E0
Return on Parity RZ
Odd
C8
Return on Zero
RLC
07
Rotate Left
Circular
RRC
0F
Rotate Right
Circular
RST z
C7
Restart
SBB r
9F
Subtract with
Borrow
SBB M
9E
Subtract with
Borrow
SBI n
DE Subtract with
Borrow
Immediate
SHLD a
22
Store HL Direct
SIM
30
Set Interrupt
Mask
Opcode
Opcode
376
SPHL
F9
Move HL to SP
STA a
32
Store
Accumulator
STAX B
02
Store
Accumulator
indirect
STAX D
12
Store
Accumulator
indirect
STC
37
Set Carry
SUB r
97
Subtract
SUB M
96
D6
Subtract
Immediate
XCHG
EB Exchange HL
with DE
XRA r
AF Exclusive OR
Accumulator
XRA M
AE Exclusive OR
Accumulator
XRI n
EE Exclusive OR
Immediate
XTHL
E3
Exchange stack
Top with HL
8085
377
.2
.2.1
8085
8085:
addr: 16 bits
byte: 8 bits
word: 16 bits
port: 8-bit /
r, r1, r2: A, B, C, D, E, H, L.
rp: : B B, C,
C , D
D, E, D
E , H, L,
H L
.2.2
( )
LDA addr
Bytes:
Load Accumulator
3 addr.
.. LDA 2000H (
2000)
: 13
STA addr
Bytes:
Store Accumulator
3
addr.
.. STA 2000H (
: 13
2000)
MOV r1,r2 Move Register2 to Register1 :
Bytes:
1 r2
378
r1.
: 4 .. MOV B,D ( D
B)
MOV r,
Bytes:
1
HL r.
.. MOV B,M (
: 7
HL B)
MOV M,r
Bytes:
1 r
HL.
.. MOV ,B (
: 7
HL)
MVI r,byte
Bytes:
Move Immediate
2 byte r.
.. MVI B,2F ( 2F B)
: 7
MVI ,byte Move Immediate
Bytes:
2 byte
HL.
.. MVI M,2F ( 2F
: 10
HL)
LXI rp,word
Bytes:
3 16-bit word
rp.
8085
Bytes:
379
HL . L
3 addr
addr+1.
L 201
: 16
)
SHLD addr Store H and L Direct
Bytes:
3 HL . addr
L addr+1
H.
: 16 .. SHLD 200 ( L
200 H 201)
LDAX rp
Bytes:
1
rp.
: BC DE
.
: 7 .. LDAX B (
BC)
STAX rp
Bytes:
1
rp.
: BC DE
.
: 7 .. STAX B (
BC)
XCHG
Bytes:
1 HL
DE.
: 4 H D L .
380
.2.3
ADD r
Bytes:
Add Register
1 r .
: Z, S, P, CY AC.
: 4 .. ADD D (
D)
ADD M
Bytes:
Add Memory
1
HL.
: 7 : Z, S, P, CY AC.
ADC r
Bytes:
1 r
.
: Z, S, P, CY AC.
: 4 .. ADC D ( D
CY)
ADC M
Bytes:
1
HL .
: 7 : Z, S, P, CY AC.
ADI byte
Bytes:
Add Immediate
2 8-bit byte.
: Z, S, P, CY AC.
: 7 .. ADI 2C ( 2C)
ACI byte
Bytes:
2 8-bit byte
.
: Z, S, P, CY AC.
: 7 .. ACI 2C ( 2C
CY)
8085
SUB r
Bytes:
Subtract Register
381
1 r .
: Z, S, P, CY AC.
: 4 .. SUB D (
D)
SBB r
Bytes:
1 r
.
: Z, S, P, CY AC.
: 4 .. SBB D (
D CY)
SUB M
Bytes:
Subtract Memory
1
HL .
: 7 : Z, S, P, CY AC.
SBB M
1
HL
.
: 7
: Z, S, P, CY AC.
Bytes:
SUI byte
Bytes:
Subtract Immediate
2 byte .
: Z, S, P, CY AC.
: 7 .. SUI 3B ( 3B)
SBI byte
Bytes:
2 byte
382
: Z, S, P, CY AC.
: 7
.. SI 3B ( 3B
CY)
INR r
Bytes:
Increment Register
1 r .
: CY.
: 4 .. INR B ( B )
INR
Bytes:
Increment Memory
1
HL .
: 10 : CY.
DCR r
Bytes:
Decrement Register
1 r .
: CY.
: 4 .. DCR B ( B )
DCR
Bytes:
Decrement Memory
1
HL .
: 10 : CY.
INX rp
Bytes:
1 rp .
: .
: 6 .. IN D ( 16-bit DE
)
DCX rp
Bytes:
1 rp .
8085
383
: .
: 6 .. DC D ( 16-bit DE
)
Add Register Pair to H and
L
DAD rp
1 rp HL,
.
Bytes:
: CY.
: 10 .. DAD D ( 16-bit DE
HL).
DA
Bytes:
1
BCD.
4 bits
9, 6h. , ,
bits 9
: 4 , 60h.
.. =10001100 (9Ch), DAA
10010010 (92h)
.2.4
ANA r
Bytes:
AND Register
1
r.
.. A D ( D.
: 4
).
ANA
Bytes:
AND Memory
1
: 7
HL .
.
384
ANI byte
Bytes:
AND Immediate
1
8-bit byte.
: 7 .. AI 8D (
8D).
XRA r
Bytes:
Exclusive OR Register
1
r.
.. XR D (
: 4 D.
).
XRA
Bytes:
Exclusive OR Memory
1
: 7
XRI byte
Bytes:
HL .
.
Exclusive OR Immediate
8-bit byte.
: 7 .. XRI 8D (
8D).
ORA r
Bytes:
OR Register
1
r.
.. OR D ( D.
: 4
).
ORA
OR Memory
8085
Bytes:
: 7
ORI byte
Bytes:
HL .
.
OR Immediate
385
8-bit byte.
: 7 .. ORI 8D (
8D).
CMP r
Bytes:
Compare Register
1
r.
r .
(CY, Z).
.. CMP C ( C.
: 4
0, , CY 1,
C> , C<.
CMP
Compare Memory
HL .
.
(CY, Z).
: 7 0, , CY 1,
> , <.
Bytes:
CP byte
Bytes:
Compare Immediate
2
byte.
byte .
(CY, Z).
.. CMP 2F ( 2F.
: 7
0, , CY 1,
2F> , 2F<.
CM
Bytes:
Complement Accumulator
1
386
Complement Carry
Bytes:
CY.
.. CY=1, CMC CY 0 ( )
: 4
STC
Set Carry
Bytes:
: 4
.2.5
CY 1,
.
JMP label
Bytes:
Jump
label
: 10
.. JMP rout1 (
rout1)
JNZ label
JZ label
JNC label
JC label
JPO label
Condition Jump
JPE label
JP label
JM label
Bytes:
: 7/10
label,
Z, CY, P S. :
8085
387
Not Zero
Z=0
Parity Odd
P=0
Zero
Z=1
Parity Even
P=1
No CarrY
CY=0
Positive
S=0
CarrY
CY=1
Negative
S=1
.. JZ rout1 (
rout1 =0)
.2.6
CALL func
Call
Bytes:
func.
: 18
, PC .
RET
Return
Bytes:
: 10
. ,
PC .
CNZ func
CZ func
CNC func
CC func
Condition Call
CPO func
CPE func
CP func
CM func
Bytes:
func,
388
Z, CY, P
S. :
: 9/18
Not Zero
Z=0
Parity Odd
P=0
Zero
Z=1
Parity Even
P=1
No CarrY
CY=0 Positive
S=0
CarrY
CY=1 Negative
S=1
Condition Return
RPO func
RPE func
RP func
RM func
Bytes:
. ,
PC .
Z,
CY, P S. :
: 6/12
Not Zero
Z=0
Parity Odd
P=0
Zero
Z=1
Parity Even
P=1
No CarrY
CY=0 Positive
S=0
CarrY
CY=1 Negative
S=1
.. RZ (
=0)
RST N
Restart
Bytes:
: 12
PC
*8.
0 7.
8085
PCHL
Bytes:
: 6
HL PC.
.
.. H=9C L=A3, PCHL PC
9CA3
.2.7
PUSH rp
Bytes:
1
: 12
POP rp
Bytes:
1
: 10
XTHL
Push
rp
.
.. PUSH HL ( HL
)
Pop
:
rp
.
.. POP HL ( HL
)
Exchange stack top with H :
and L
HL
.
Bytes:
1
: 16
Move HL to SP
:
SPHL
Bytes:
1 HL
.
: 6
389
390
.2.8
RLC
Rotate Left
1
.
. CY.
: 4
.. =10011100 (9C), RLC 00111001
(39)
Bytes:
RRC
Rotate Right
1
.
. CY.
: 4
.. =10011100 (9C), RRC
01001110 (4E)
Bytes:
RAL
Bytes:
1
.
CY,
: 4
. CY.
RAR
1
.
CY,
: 4
. CY.
Bytes:
8085
.2.9
391
HLT
Bytes:
Halt
1
: 4
NOP
Bytes:
.
.
No Operation
: 4
Bytes:
.
.
.
Enable Interrupts
: 4
D
Bytes:
Disable Interrupts
1
: 4
port
Bytes:
Input
2
: 10
OUT port
Bytes:
8-bit
,
port, .
Output
: 10
RIM
Bytes:
8-bit
port
.
Read Interrupt Mask
: 4
. ,
:
SID 7.5 6.5 5.5
SID= ,
392
.5= RST .5
,
= ,
.5= RST .5.
SIM
Bytes:
: 4
RST 5,
latch RST 7.5 SOD (serial output data).
:
SOD SOE
SOD= ,
= ,
R7.5= RST 7.5,
MSE= ,
.5= RST .5.
[1] Ashenden P. J. (1990), The VHDL Cookbook, 1st Ed., Technical Report,
University of Adelaide, South Australia.
[2] Brown S. D. & Vranesic Z. G. (2000), Fundamentals of Digital Logic with
VHDL Design, McGraw-Hill.
[3] Carpinelli J. D. (2000), Computer Systems Organization and Architecture,
Addison Wesley.
[4] Hwang E. (2005), Digital Logic and Microprocessor Design with VHDL, La
Sierra University, Riverside, CA Brooks/Cole,
[http://cs.lasierra.edu/~ehwang/mybook/toc.html]
[5] Kleitz W. (1996), Digital Electronics: A Practical Approach, 4th Ed.,
Prentice-Hall.
[6] Malvino A. P. & Leach D. P. (1988), Digital Principles and Applications, 4th
Ed., McGraw-Hill.
[7] Mano M. Morris (1992), , &
Prentice Hall.
[8] Tocci R. J. & Widmer N. S. (1998), Digital Systems: Principles And
Applications, 7th Ed., Prentice-Hall.
[9] Tokheim R. L. (1991), , 3 , . .
[10] . (2000), : , .
[11] . (2000), : ,
.
[12] . (2000), : ,
.
[13] . . (1994), , 1,
, .
[14] . (2004), :
, .