专题4 精简8位CPU电路设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
Baidu Nhomakorabea
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结构
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结构
6.累加器 累加器是个8位的缓冲寄存器,它是存放目前计算机执行的实时数据地方。 不同的指令也将使它产生不同的工作方式。
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执行上述所加载的程序时,暂存下一 个要执行的指令地址。
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
一.SAP-1 CPU及计算机的组成架构简介
Wbus
CP
CLK CLR
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
8 4
CLK
8
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结构
最后就VHDL语言设计的观点来对图1作设计分类: SAP-1 CPU部分:程序计数器、MAR、指令寄存器、控制 器/序列发生器、累加器、加减法器、B寄存器、输出寄 存器。 16×8MAR部分:考虑直接改成ROM的形式,这是因为程 序执行时,它不接受外界输入。
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
二.SAP-1 CPU指令.寻址法.程序设计
SAP-1的CPU指令,共有5个且可分 成两种类型,如表
直接寻址法(Direct Addressing) 指令 LDA 运算码 0000 范例 LDA 9H 说明
将9H内存的内容值加载累加器
将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结构
9.输出寄存器 这个输出寄存器的用途是,CPU执行到“输出结果”的指令时,便将“累加器”的结 果传至“输出寄存器”,所以它是负责存放输出结果,当然这个存放的结果是二进制
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寄存器存放。
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
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.加减法器 这个加减法器负责执行数学的加法和减法运算,而且运算的结果 会放回“累加器”暂存。
将EH的内存内容值和累加器内容 值相减,再存放运算结果回累加器
ADD
SUB
0001
0010
ADD BH
SUB EH
零位寻址法(Zero Addressing)
指令 OUT HLT
运算码 1110 1111
范例 OUT HLT
说明
将累加器内容输出至“输出寄存 器” 结果CPU执行
范例:
• 试使用SAP-1指令,执行下列运算结果。
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
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
LB
CLK
L1
CLK CLR
E1
Instruction register 4
图1:
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
精简8位CPU电路设计
• • • •
SAP-1 CPU及计算机的组成架构简介 SAP-1 CPU指令.寻址法.程序设计 16*8的ROM设计与仿真 SAP-1 CPU设计与仿真
几个问题回顾
• 程序存储型计算机体系结构是谁提出的?
冯.诺依曼 • 计算机的体系结构分类? 冯.诺依曼结构 哈佛结构 • 我们熟悉的x86、ARM、51处理器各是属于 哪种结构? 冯.诺依曼 冯.诺依曼 改进型哈佛
• 解答: • 首先将运算数据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
Wbus
CP
CLK CLR
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