- 3
- 0
- 约1.02万字
- 约 52页
- 2019-12-23 发布于湖北
- 举报
精简8位CPU电路设计 SAP-1 CPU及计算机的组成架构简介 SAP-1 CPU指令.寻址法.程序设计 16*8的ROM设计与仿真 SAP-1 CPU设计与仿真 几个问题回顾 程序存储型计算机体系结构是谁提出的? 冯.诺依曼 计算机的体系结构分类? 冯.诺依曼结构 哈佛结构 我们熟悉的x86、ARM、51处理器各是属于哪种结构? 冯.诺依曼 冯.诺依曼 改进型哈佛 一.SAP-1 CPU及计算机的组成架构简介 1.程序计数器 它是一个4Bits的计数器,计数范围由0~15。主要功用是记录下每个执行的指令地址,并把这个地址传送至MAR寄存器存放。 2.输入与MAR(Memory Access Register) 这个方块应分成两个部分,一个是接受由“输入”部分输入到RAM内存的外部程序和数据,另一部分“MAR”是用来在CPU执行上述所加载的程序时,暂存下一个要执行的指令地址。 3.16×8 RAM 这个RAM和其它的部分构成SAP-1计算机,而且它的内存大小共有16地址×8位。所以这个RAM的地址总线是4bit,地址编码是由0000,0001,0010…1111,这个地址内容是由上述MAR传送过来,然后通过译码将地址存放的8位数据或指令输出至Wbus。 4.指令寄存器 属于CPU内的控制单元,主要是将在RAM的8位数据,通过Wbus后读入指令寄存器,然后再把数据一分为二,较高的4位属于指令部分,送至下一级的“控制器”,而较低的4位属于数据部分,将会被送至Wbus。 5.控制器/序列发生器 这个项目也是属于CPU内控制单元的一部分,这个控制器在程序执行时,负责送出整个计算机的时序信号CLK,而且会把指令寄存器送来的4位指令,解译成12位的控制信号,由这组控制信号指挥其它的功能方块,完成该指令的运作。由于使用VHDL语言设计整个SAR-1,依照语法的使用,这部分会被省略,而且不会影响整个CPU运作。 6.累加器 累加器是个8位的缓冲寄存器,它是存放目前计算机执行的实时数据地方。不同的指令也将使它产生不同的工作方式。 7.加减法器 这个加减法器负责执行数学的加法和减法运算,而且运算的结果会放回“累加器”暂存。 8.B寄存器 这个寄存器用来配合“累加器”、“加减法器”,执行“加法” 或“减法”的工作。 9.输出寄存器 这个输出寄存器的用途是,CPU执行到“输出结果”的指令时,便将“累加器”的结果传至“输出寄存器”,所以它是负责存放输出结果,当然这个存放的结果是二进制形式的。 最后就VHDL语言设计的观点来对图1作设计分类: SAP-1 CPU部分:程序计数器、MAR、指令寄存器、控制器/序列发生器、累加器、加减法器、B寄存器、输出寄存器。 16×8MAR部分:考虑直接改成ROM的形式,这是因为程序执行时,它不接受外界输入。 二.SAP-1 CPU指令.寻址法.程序设计 SAP-1的CPU指令,共有5个且可分成两种类型,如表 范例: 试使用SAP-1指令,执行下列运算结果。 10+20+30-15=4B(十六进制) 解答: 首先将运算数据10,20,30,15依序放在9H-CH地址里 第一个指令写在0H地址,功能是先将10加载累加器,所以指令写成: LDA 9H 这是因为9H存放着数值10的内容 第二个指令写在1H地址,功能是将20加载B寄存器,然后与累加器里的10作相加后,再将结果30存回累加器,所以指令写成(地址AH内存数值20): ADD AH 第三个指令写成在2H地址,功能是将30加载B寄存器,然后与累加器里的30作相加后,再将结果60存回累加器,所以指令写成(地址BH内存放数值30数据): ADD BH 第四个指令写在3H地址,功能是将15加载B寄存器,然后与累加器里的60作相减后,再将结果4B存回累加器,所以指令写成(地址CH内存放数值15数据): SUB CH 第五个指令写在4H地址,是将累加器数值结果4B作输出显示,所以指令写成: OUT 第六个指令写在5H地址,功能在停止CPU运算,所以指令写成: HLT 最后,整个程序和数据写在RAM里,机械码表示如下:
原创力文档

文档评论(0)