8位CPU的设计实现分析_第1页
8位CPU的设计实现分析_第2页
8位CPU的设计实现分析_第3页
8位CPU的设计实现分析_第4页
8位CPU的设计实现分析_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-. z. 计算机组成原理 实验题目 8位CPU的系统设计 学 号 1115106046 姓 名 忠淋 班 级 11电子B 班 指导教师 凌朝东 华侨大学电子工程系8位CPU的系统设计实验要求与任务完成从指令系统到CPU的设计,编写测试程序,通过运行测试程序对CPU设计进展正确性评定。具体容包括:典型指令系统包括运算类、转移类、访存类设计;CPU构造设计;规则文件与调试程序设计;CPU调试及测试程序运行。 1.1设计指标能实现加减法、左右移位、逻辑运算、数据存取、有无条件跳转、存访问等指令; 1.2设计要求 画出电路原理图、仿真波形图;二、CPU的组成构造元器件的选择 1.运算部件(ALU)

2、ALU181的程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU181 IS PORT ( S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 ); A : IN STD_LOGIC_VECTOR(7 DOWNTO 0); B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); M

3、 : IN STD_LOGIC; : IN STD_LOGIC; CO,FZ: OUT STD_LOGIC );END ALU181;ARCHITECTURE behav OF ALU181 ISSIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN A9 = 0 & A ; B9 IF M=0 THEN F9=A9 + ; ELSE F9 IF M=0 THEN F9=(A9 or B9) +

4、 ; ELSE F9 IF M=0 THEN F9=(A9 or (NOT B9)+ ; ELSE F9 IF M=0 THEN F9= 000000000 - ; ELSE F9 IF M=0 THEN F9=A9+(A9 AND NOT B9)+ ; ELSE F9 IF M=0 THEN F9=(A9 or B9)+(A9 AND NOT B9)+ ; ELSE F9 IF M=0 THEN F9=(A9 - B9) - ; ELSE F9 IF M=0 THEN F9=(A9 or (NOT B9) - ; ELSE F9 IF M=0 THEN F9=A9 + (A9 AND B9)

5、+ ; ELSE F9 IF M=0 THEN F9=A9 + B9 + ; ELSE F9 IF M=0 THEN F9=(A9 or(NOT B9)+(A9 AND B9)+ ; ELSE F9 IF M=0 THEN F9=(A9 AND B9)- ; ELSE F9 IF M=0 THEN F9=(A9 + A9) + ; ELSE F9 IF M=0 THEN F9=(A9 or B9) + A9 + ; ELSE F9 IF M=0 THEN F9=(A9 or (NOT B9) +A9) + ; ELSE F9 IF M=0 THEN F9=A9 - ; ELSE F9 F9=

6、000000000 ; END CASE; IF(A9=B9) THEN FZ=0;END IF;END PROCESS; F= F9(7 DOWNTO 0) ; CO = F9(8) ; COUT=0000 WHEN F9(8)=0 ELSE 0001;END behav; ALU的原理图: 2.微控制器实现信息传送要靠微命令的控制,因此在CPU 中设置微命令产生部件,根据控制信息产生微命令序列,对指令功能所要求的数据传送进展控制,同时在数据传送至运算部件时控制完成运算处理。微命令产生部件可由假设干组合逻辑电路组成,也可以由专门的存储逻辑组成。产生微命令的方式可分为组合逻辑控制方式和微程序控

7、制方式两种。在本章所介绍的8 位模型CPU 设计中,采用微程序控制方式通过微程序控制器和微指令存储器产生微命令,因此此CPU 属于复杂指令CISC CPU。 微控制器的原理图: 3.存放器组计算机工作时,CPU 需要处理大量的控制信息和数据信息。例如对指令信息进展译码,以便产生相应控制命令对操作数进展算术或逻辑运算加工,并且根据运算结果断定后续操作等。因此,在CPU 中需要设置假设干存放器,暂时存放这些信息。在模型CPU中,存放器组由R0、R1、R2所组成。 存放器组的原理图:3.地址存放器CPU 访问存储器,首先要找到需要访问的存储单元,因此设置地址存放器AR来存放被访单元的地址。当需要读取

8、指令时,CPU 先将PC 的容送入AR,再由AR将指令地址送往存储器。当需要读取或存放数据时,也要先将该数据的有效地址送入AR,再对存储器进展读写操作。 地址存放器的原理图: 4.指令存放器指令存放器IR用来存放当前正在执行的指令,它的输出包括操作码信息、地址信息等,是产生微命令的主要逻辑依据。 指令存放器的原理图: 5.程序计数器程序计数器PC也称指令指针,用来指示指令在存储器中的存放位置。当程序顺序执行时,每次从主存取出一条指令,PC 容就增量计数,指向下一条指令的地址。增量值取决于现行指令所占的存储单元数。如果现行指令只占一个存储单元,则PC 容加1;假设现行指令占了两个存储单元,则PC

9、 容就要加2。当程序需要转移时,将转移地址送入PC,使PC 指向新的指令地址。因此,当现行指令执行完,PC 中存放的总是后续指令的地址;将该地址送往主存的地址存放器AR,便可从存储器读取下一条指令。 程序计数器的原理图:系统总电路图及原理 系统原理:该CPU 主要由算术逻辑单元ALU,数据暂存存放器DR1、DR2,数据存放器R0R2,程序计数器PC,地址存放器AR,程序/数据存储器MEMORAY,指令存放器IR,微控制器uC,输入单元INPUT 和输出单元OUTPUT 所组成。图中虚线框局部包括运算器、控制器、程序存储器、数据存储器和微程序存储器等,实测时,它们都可以在单片FPGA 中实现。虚

10、线框外局部主要是输入/输出装置,包括键盘、数码管、LCD 显示器等,用于向CPU 输入数据,或CPU 向外输出数据,以及观察CPU 部工作情况及运算结果。波形仿真 仿真波形图: 分析:1M输出微指令01800,控制台执行P4,进展读、写、运行功能判断。检测到SWA、SWB=11后,进入程序运行RP11方式。2执行微地址为23的微指令,M输出微指令为018001,后续微地址uA为01.然后进入程序运行的流程。3执行微地址为01的M微指令008001,执行的操作为PCAR=00H,PC+1=01H,AR指向RAM存储器地址00H,后续地址uA为02.4执行微地址为02的M微指令01ED82,执行取

11、指令操作,取出第一条指令的操作码,经过分支判断P(1),这是一条输入指令IN。5执行微地址为10的M微指令00C048,将RAM中的指令00通过部总线BUS,送指令存放器IR:RAM00H=00BUSIR=00H。6执行微地址为01的M微指令001001,SW_B为高电平,允许SW的数据送往数据总线BUS,由此接收数据56H。所以R0=56H。7执行微地址为02的M微指令01ED82,执行取指令操作:PCAR=01H,PC+1=02H,AR指向RAM存储器地址01H,后续微地址uA为02。8执行微地址09的M微指令00C048,取指令,并经过分支判断P1,读出地址为01H单元的容10H,经过B

12、US送到指令存放器IR:RAM01H=10HBUSIR=10H。9执行微地址为03的M微指令01ED83,进入加法运算微程序。通过间接寻址获得另一个操作数,地址存放器AR指向取数的间接地址:PCAR=02H,PC+1=03H,AR指向RAM的02单元。10执行微地址为04的M微指令00E004,RAM_B为高电平,RAM的02单元的容通过BUS送AR,取数地址AR=0AH,RAM(02)=0AHBUSAR=0AH。11执行微地址为05的M微指令00B005,RAM_B为高电平,RAM的0AH单元的容34H送到BUS,此时LDDR2为高电平,BUS上的数据就送给了DR2,执行结果:RAM0AH=

13、34HBUSDR2=34H。12执行微地址为06的M微指令01A206,将R0的数据送DR1.R0_B=1,允许R0的容56H送往BUS,此时LDDR1为高电平,BUS上的数据56H写入ALU的数据缓冲期DR1,执行结果:R0=56HBUSDR1=56H.13执行微地址为01的M微指令919A01,完成加法运算:DR1+DR2R0,56H+34H=8AHR0=8AH。14执行微地址为02的M微指令01ED82,执行取指令操作:PCAR=03H,PC+1=04H,AR指向RAM存储器地址03H,执行第三条指令,存储STA。15执行微地址12的M微指令00C048,取指令,并经过分支判断P1,读出

14、地址为03H单元的容20H,经过BUS送到指令存放器IR:RAM03H=20HBUSIR=20H。16执行微地址为07的M微指令01ED87,通过间接寻址获得另一个操作数,地址存放器AR指向取数的间接地址:PCAR=04H,PC+1=05H,AR指向RAM的04单元。17执行微地址为15的M微指令00E00D,RAM_B为高电平,RAM的04单元的容通过BUS送AR,取数地址AR=0BH,RAM(04)=0BHBUSAR=0BH。18执行01微地址为01的M微指令038201,RAM_B为高电平,R0的容存入RAM0BH单元,BUS上的数据就送给了DR2,执行结果:RAM0BH=8AHBUSR

15、AM0BH=8AH。19执行微地址为02的M微指令01ED82,执行取指令操作:PCAR=05H,PC+1=06H,AR指向RAM存储器地址05H,执行第四条指令,输出OUT。20执行微地址13的M微指令00C048,取指令,并经过分支判断P1,读出地址为05H单元的容30H,经过BUS送到指令存放器IR:RAM05H=30HBUSIR=30H。21执行微地址为16的M微指令01ED8E,通过间接寻址获得另一个操作数,地址存放器AR指向取数的间接地址:PCAR=06H,PC+1=07H,AR指向RAM的06单元。22执行微地址为17的M微指令00E00F,RAM_B为高电平,RAM的06单元的

16、容通过BUS送AR,取数地址AR=0BH,RAM(06)=0BHBUSAR=0BH。23执行微地址为25的M微指令00A015,RAM_B为高电平,RAM的0BH单元的容8AH送到BUS,此时LDDR2为高电平,BUS上的数据就送给了DR2,执行结果:RAM0BH=8AHBUSDR2=8AH。(24) 执行微地址为01的M微指令010A01,将DR1的数据送输出单元OUT,允许DR1的容8AH送往BUS, BUS上的数据8AH送输出单元OUT,执行结果:DR1=8AHBUSOUT=8AH。25执行微地址为02的M微指令01ED82,执行取指令操作:PCAR=07H,PC+1=08H,AR指向RAM存储器地址07H。26执行微地址14的M微指令00C048,取指令,并经过分支判断P1,读出地址为07H单元的容40H,经过BUS送到指令存放器IR:RAM07H=40HBUSIR=40H。27执行微地址为26的M微指令01ED96,进入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论