当前位置:文档之家› 专题4 精简8位CPU电路设计

专题4 精简8位CPU电路设计

将EH的内存内容值和累加器内容 值相减,再存放运算结果回累加器
ADD
SUB
0001
0010
ADD BH
SUB EH
零位寻址法(Zero Addressing)
指令 OUT HLT
运算码 1110 1111
范例 OUT HLT
说明
将累加器内容输出至“输出寄存 器” 结果CPU执行
范例:
• 试使用SAP-1指令,执行下列运算结果。
CP
CLK CLR
Wbus
LA
EP
Program counter
4
8 8 8
Accumulator A 8
CLK
EA
LM
CLK
Input and MAR 4 4 16*8 RAM
4
8
Adder/ subtractor 8
SU EU
CE
8
8
B register
LB
CLK
L1
CLK CLR
E1
Instruction register 4
E1
Instruction register 4
8 8 4
CLK
Output register 8
LO
CLK
Controller/ sequencer 12
CLK CLR CLR
Binary display
CP EP LM CE LI EI LA EA SU EU LB LO
图1:
SAP-1结构
1.程序计数器 它是一个4Bits的计数器,计数范围由0~15。主要功用是记录下 每个执行的指令地址,并把这个地址传送至MAR寄存器存放。
• 解答: • 首先将运算数据10,20,30,15依序放在9H-CH地址里 • 第一个指令写在0H地址,功能是先将10加载累加器,所
以指令写成: 10+20+30-15=4B(十六进制)
LDA 9H
这是因为9H存放着数值10的内容
• 第二个指令写在1H地址,功能是将20加载B寄存
器,然后与累加器里的10作相加后,再将结果 30存回累加器,所以指令写成(地址AH内存数 值20): ADD AH 第三个指令写成在2H地址,功能是将30加载B寄 存器,然后与累加器里的30作相加后,再将结 果60存回累加器,所以指令写成(地址BH内存 放数值30数据): ADD BH
8 8 4
CLK
Output register 8
LO
CLK
Controller/ sequencer 12
CLK CLR CLR
Binary display
CP EP LM CE LI EI LA EA SU EU LB LO
图1:
SAP-1结构
2.输入与MAR(Memory Access Register) 这个方块应分成两个部分,一个是接受由“输入”部分输入到RAM内存的外部 程序和数据,另一部分“MAR”是用来在CPU执行上述所加载的程序时,暂存下一 个要执行的指令地址。
8 8 4
CLK
Output register 8
LO
CLK
Controller/ sequencer 12
CLK CLR CLR
Binary display
CP EP LM CE LI EI LA EA SU EU LB LO
图1:
SAP-1结构
• 5.控制器/序列发生器
这个项目也是属于CPU内控制单元的一部分,这个控制器在程序执行时,负责送出 整个计算机的时序信号CLK,而且会把指令寄存器送来的4位指令,解译成12位的控 制信号,由这组控制信号指挥其它的功能方块,完成该指令的运作。由于使用VHDL语 言设计整个SAR-1,依照语法的使用,这部分会被省略,而且不会影响整个CPU运作。
CP
CLK CLR
Wbus
LA
EP
Program counter
4
8 8 8
Accumulator A 8
CLK
EA
LM
CLK
Input and MAR 4 4 16*8 RAM
4
8
Adder/ subtractor 8
SU EU
CE
8
8
B register
LB
CLK
L1
CLK CLR
E1
Instruction register 4
CP
CLK CLR
Wbus
LA
EP
Program counter
4
8 8 8
Accumulator A 8
CLK
EA
LM
CLK
Input and MAR 4 4 16*8 RAM
4
8
Adder/ subtractor 8
SU EU
CE
8
8
B register
LB
CLK
L1
CLK CLR
E1
Instruction register 4
8 8 4
CLK
Output register 8
LO
CLK
Controller/ sequencer 12
CLK CLR CLR
Binary display
CP EP LM CE LI EI LA EA SU EU LB LO
图1:
SAP-1结构
3.16×8 RAM 这个RAM和其它的部分构成SAP-1计算机,而且它的内存大小共有16地址×8 位。所以这个RAM的地址总线是4bit,地址编码是由0000,0001,0010…1111,这 个地址内容是由上述MAR传送过来,然后通过译码将地址存放的8位数据或指令 输出至Wbus。
CP
CLK CLR
Wbus
LA
EP
Program counter
4
8 8 8
Accumulator A 8
CLK
EA
LM
CLK
Input and MAR 4 4 16*8 RAM
4
8
Adder/ subtractor 8
SU EU
CE
8
8
B register
LB
CLK
L1
CLK CLR
E1
Instruction register 4
CP
CLK CLR
Wbus
LA
EP
Program counter
4
8 8 8
Accumulator A 8
CLK
EA
LM
CLK
Input and MAR 4 4 16*8 RAM
4
8
Adder/ subtractor 8
SU EU
CE
8
8
B register
LB
CLK
L1
CLK CLR
E1
Instruction register 4
CP
CLK CLR
Wbus
LA
EP
Program counter
4
8 8 8
Accumulator A 8
CLK
EA
LM
CLK
Input and MAR 4 4 16*8 RAM
4
8
Adder/ subtractor 8
SU EU
CE
8
8
B register
LB
CLK
L1
CLK CLR
E1
Instruction register 4
8 8 4
CLK
Output register 8
LO
CLK
Controller/ sequencer 12
CLK CLR CLR
Binary display
CP EP LM CE LI EI LA EA SU EU LB LO
图1:
SAP-1结构
7.加减法器 这个加减法器负责执行数学的加法和减法运算,而且运算的结果 会放回“累加器”暂存。
8 8 4
CLK
Output register 8
LO
CLK
Controller/ sequencer 12
CLK CLR CLR
Binary display
CP EP LM CE LI EI LA EA SU EU LB LO
图1:
SAP-1结构
8.B寄存器 这个寄存器用来配合“累加器”、“加减法器”,执行“加法” 或“减法”
8 8 4
CLK
Output register 8
LO
CLK
Controller/ sequencer 12
CLK CLR CLR
Binary display
CP EP LM CE LI EI LA EA SU EU LB LO
图1:
SAP-1结构
• 4.指令寄存器
属于CPU内的控制单元,主要是将在RAM的8位数据,通过Wbus后读入指令寄存器,然 后再把数据一分为二,较高的4位属于指令部分,送至下一级的“控制器”,而较低的4位 属于数据部分,将会被送至Wbus。
CP
CLK CLR
Wbus
LA
EP
Program counter
4
8 8 8
Accumulator A 8
CLK
EA
LM
CLK
Input and MAR 4 4 16*8 RAM
4
8
Adder/ subtractor 8
SU EU
CE
8
8
B register
相关主题