Professional Documents
Culture Documents
.
( ) Add &shift
.
1 1
( ... ) clk
( )
.
11 1 )(Bus
.
( ) ( ) .
:
.1 ) :(Dedicated Bus .
. .
n m mn ( . 1 1 ).
.2 ) :(Common Bus .
) (media .
( 1( 1) ).
.
()
()
-1-1 () ()
. 2
: . 1( 2)
. sel 0 1
sel 1 2 .
sel 0 1 .
( 1( 2) ). s 0 1
1 s 1 1 2 . s 0 s 1
1 .
) (Bus conflict .
s 0 s 1 . s 1
s 0 ) (Drive
. .
( )DMA .
.
()
()
-2-1 () ()
112 1
( )... ( )...
.
: .
. R 0 R 3
/
(
) .
:
. /
R 0 /
R 0 R 3 . / B A
R 0 R 3 .
:
i , j0 ,1, 2 , 3
R0 R j
Ri
R 0 R3
R2
1.
R1 R 2
R3
2.
1 . R 0
R 3 .
R 2 .
2 . R 1
.
112 2
.
.
: R 2 R 0 R 3
( sel 11 : 3 R 3 )( f 1
) ( ld2 1 R 2 ).
11 3
4
. 1( 3) .
4 d in start 4 d out
done . clk clk .
1( 3) .
-3-1 4 () ()
1( 3) start (
1 clk ) .
( 4
Y
P
E , P
. P
E
E . 1 5
.
.
Y X d in
-5-1
d in
E
P
.
Y P H
P L P H
E P
P E
out
d. . 4
d out .
.
P 0 . 0 X 1 .
P
0 P
.
3 , 2 , 1 .
( P ) P L
X .
-6-1
0 X 1
x 0
. 1 6 .
. 1 7
.
)) (Primary Inputs (PI
( ) d in PI
( )start -7-1
)) (Primary Outputs (PO d out
PO ( ) done
() ) (status
( ) x 0 .
.
. . 18
4 .
moore . moore
clk clk
.
-8-1
start . start
0 A X Y . 4
x 0 1 x 0 0 .
2 done 1 ( )
select d out .
(
) .
.
( sel )...
( clk
.). (
.)... clk .
. 1 9
.
.
clk .
( ) . moore
. . PO F PS :
clk
1 8 s1 . shX 1 . clk
s2 shX 0 (
.).
clk s1 Edge1
clk s1 s2 . Edge2
clk x . 1 10 clk
shx . Edgel s1
( ) ( ) shX 1
. Edge 2 s1 s2 (
) ( ) shX 0 .
Edge1 shX 0 Edge 2 shx 1 X
( Edge 2 s1 ) ( Edge1 s1
).
: (
clk) clk clk
.
: clk
.
s1
X ( ) shX ( X 0 )X .
1 8 X
-9-1
-11-1
1 2 SMPL-CPU
( )Single Cycle ( )Multi-Cycle
SMPL-CPU .
.
12 1 SMPL-CPU
. -
.
.
: SMPL-CPU SMPL-CPU 16
13 . / /
.
.
: SMPL-CPU SMPL-CPU
16 ) Accumulator (acc . .
- acc .
.
acc .
: SMPL-CPU SMPL-CPU 16
. 11-1
( )Explicit Operand ( )Implicit Operand acc . SMPL-CPU
8 : - ( AND SUB ADD
)NOT ( )STA LDA (.)JZ JMP
-11-1 SMPL-CPU
. 1-1
.
: ADD adr adr acc acc
.
: SUB adr adr acc acc
.
: AND adr adr acc and
acc.
Description
]acc acc + Mem[adr
]acc acc - Mem[adr
]acc acc & Mem[adr
]acc NOT Mem[adr
]acc Mem[adr
Mem[adr] acc
Unconditional jump to adr
Conditional jump to adr
Instruction Class
Arithmetic-Logical
Arithmetic-Logical
Arithmetic-Logical
Arithmetic-Logical
Data-Transfer
Data-Transfer
Control-Flow
Control-Flow
Instruction
ADD
adr
SUB
adr
AND
adr
NOT
adr
LDA
adr
STA
adr
JMP
adr
JZ
adr
Opcode
000
001
010
011
100
101
110
111
: SMPL-CPU SMPL-CPU
. acc
.
122 1
.
. .
.
:1 . ( Instruction Fetch
) )(IF . .
() )Program Counter (pc .
( ) .
pc .
SMPL-CPU 8192 = 213 pc 13 . 12-1
.
-12-1
:2 - . - ( )NOT
. acc . adr
. acc .
) Arithmetic Logical Unit (alu
. - alu alu_op .
13-1 alu not and .
-13-1 -
14-1 - .
adr . .
(-)
.
acc.
:3 .
( adr 12 ) 0 .
- . 15-1 .
-14-1 -
-15-1 -
:4 . SMPL-CPU LDA :
. STA LDA adr 16
acc . STA acc adr
. LDA STA
mem_write mem_read
. write Clk
. acc acc_write (
LDA acc STA) . 16-1
.
-16-1
:5 .
. ( 3 )15-1 alu acc 4
( )16-1 ReadData acc .
acc . acc_src 0
alu acc_src 1 .
17-1 .
-17-1 -
:6 . SMPL-CPU
JMP : JZ . JMP
( 12 )0 pc . JZ acc (-
12 )0 pc . ( 12 )0 pc .
18-1 . acc NOR
acc . JZ .
-18-1
:7 . 6
. ( 6 5 )17-1 16-1
. pc . 1
( pc 1 ) 6 .
acc 5
pc . pc_src 0
pc 1 . 19-1
.
. ADD 100
SMPL-CPU . Clk pc
ADD 100 .
.
.
Clk alu acc
pc+1 pc . pc .
.
122 2
( 15 )13
. .
.
20-1 SMPL-CPU .
pc_src
. JZ JPM jmp_uncond
-19-1 SMPL-CPU
-:
o
o
o
o
o
mem_read=1
acc_write=1 alu acc
- ( )NEG AND SUB ADD alu_op 00
11 10 01.
acc_src=0 alu acc
jmp_uncond=0 jmp_cond=0 pc+1 pc
SMPL-CPU -2-1
Instruction
Class
Arithmetic
Logical
Data
Transfer
Control
Flow
Inst
Opcode
ADD
SUB
AND
NOT
LDA
STA
JMP
JZ
000
001
010
011
100
101
110
111
mem
read
1
1
1
1
1
0
0
0
mem
write
0
0
0
0
0
1
0
0
acc
write
1
1
1
1
1
0
0
0
acc
src
0
0
0
0
1
X
X
X
alu
op
00
01
10
11
XX
XX
XX
XX
jmp
uncond
0
0
0
0
0
0
1
0
Jmp
cond
0
0
0
0
0
0
0
1
-21-1
:
LDA
mem_read=1
acc acc_write=1
. alu alu_op=xx
acc acc_src=1
STA
mem_write=1
acc_write=0 acc
alu_op=xx alu .
acc_src=x acc
.
jmp_uncond=0 jmp_cond=0 pc+1 pc
:
o
JMP
mem_write mem_read 0
.
acc_write=0 acc .
alu_op=xx alu .
acc_src=x acc
.
jmp_uncond=1 jmp_cond=0 pc_src=1
( 12 )0 pc .
JZ
mem_write mem_read 0
.
acc_write=0 acc .
alu_op=xx alu .
acc_src=x acc
.
jmp_uncond=0 jmp_cond=1 acc_zero=1 pc_src=1
( 12 )0 pc
acc_zero=0 pc_src=0 pc+1
pc .
12 3 ( )Multi-Cycle SMPL-CPU
SMPL-CPU ( alu ) -
. . -
SMPL-CPU .
.
123 1
alu .
.
pc
( 12 )0 .
alu alu . alu pc
acc alu 1 . alu 16
3 0 pc alu .
) instruction register (ir . -1
21 .
. .
( :)IF pc .
pc
ir . pc alu 1 alu
pc.
( :)ID ( ir )
.
( :)EX .
o
- : 12 0 ir
. acc alu
alu - ( and not)
alu acc.
: 12 0 ir . LDA
acc .
STA acc .
o
: JMP 12 0 ir pc
. JZ acc 12 0 ir pc
.
123 2
SMPL-CPU .
. -
.
22-1 .
pc_write
.
-21-1 SMPL-CPU
)Machine .
. : Clk
.
0 . pc
( )i_or_d=0 ( )mem_read=1 ir pc
( .)src_a=0, src_b=1, aluop=00, pc_src=1, pc_write_cond=1 ( 1 )
. :
- : 12 0 ir ()i_or_d=1
( )mem_read=1 acc alu
( )src_a=1, src_b=0 - alu ( ] )alu_op=ir[14-13
alu acc ( )acc_src=0 alu acc
( .)acc_write=1 - ( 0 )
.
-22-1
-23-1 SMPL-CPU
:LDA 12 0 ir ( )i_or_d=1
( )mem_read=1 acc ( )acc_src=1
acc ( .)acc_write=1 LDA
( 0 ) .
:STA 12 0 ir ( )i_or_d=1
acc ( .)mem_write=1 STA
( 0 ) .
:JZ acc 12 0 ir pc
( .)pc_src=0, pc_write_cond=1 JZ ( 0 )
.