收藏 分享(赏)

8位CPU的设计与实现.doc

上传人:精品资料 文档编号:10521011 上传时间:2019-11-25 格式:DOC 页数:12 大小:451.50KB
下载 相关 举报
8位CPU的设计与实现.doc_第1页
第1页 / 共12页
8位CPU的设计与实现.doc_第2页
第2页 / 共12页
8位CPU的设计与实现.doc_第3页
第3页 / 共12页
8位CPU的设计与实现.doc_第4页
第4页 / 共12页
8位CPU的设计与实现.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

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

2、件的选择1.运算部件(ALU)ALU181 的程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU181 ISPORT (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 D

3、OWNTO 0);M : IN STD_LOGIC;CN : 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);BEGINA9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9

4、IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 IF M=0 THEN F9 F9= “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)

5、=0 ELSE “0001“;END behav;ALU 的原理图:2.微控制器实现信息传送要靠微命令的控制,因此在 CPU 中设置微命令产生部件,根据控制信息产生微命令序列,对指令功能所要求的数据传送进行控制,同时在数据传送至运算部件时控制完成运算处理。微命令产生部件可由若干组合逻辑电路组成,也可以由专门的存储逻辑组成。产生微命令的方式可分为组合逻辑控制方式和微程序控制方式两种。在本章所介绍的 8 位模型 CPU 设计中,采用微程序控制方式通过微程序控制器和微指令存储器产生微命令,因此此 CPU 属于复杂指令 CISC CPU。微控制器的原理图:3.寄存器组计算机工作时,CPU 需要处理大量

6、的控制信息和数据信息。例如对指令信息进行译码,以便产生相应控制命令对操作数进行算术或逻辑运算加工,并且根据运算结果决定后续操作等。因此,在 CPU 中需要设置若干寄存器,暂时存放这些信息。在模型 CPU 中,寄存器组由 R0、R1、R2 所组成。寄存器组的原理图:3.地址寄存器CPU 访问存储器,首先要找到需要访问的存储单元,因此设置地址寄存器(AR)来存放被访单元的地址。当需要读取指令时,CPU 先将 PC 的内容送入AR,再由 AR 将指令地址送往存储器。当需要读取或存放数据时,也要先将该数据的有效地址送入 AR,再对存储器进行读写操作。地址寄存器的原理图:4.指令寄存器指令寄存器(IR)

7、用来存放当前正在执行的指令,它的输出包括操作码信息、地址信息等,是产生微命令的主要逻辑依据。指令寄存器的原理图:5.程序计数器程序计数器(PC)也称指令指针,用来指示指令在存储器中的存放位置。当程序顺序执行时,每次从主存取出一条指令,PC 内容就增量计数,指向下一条指令的地址。增量值取决于现行指令所占的存储单元数。如果现行指令只占一个存储单元,则 PC 内容加 1;若现行指令占了两个存储单元,那么 PC 内容就要加 2。当程序需要转移时,将转移地址送入 PC,使 PC 指向新的指令地址。因此,当现行指令执行完,PC 中存放的总是后续指令的地址;将该地址送往主存的地址寄存器 AR,便可从存储器读

8、取下一条指令。程序计数器的原理图:4、系统总电路图及原理系统原理:该 CPU 主要由算术逻辑单元 ALU,数据暂存寄存器 DR1、DR2,数据寄存器R0R2,程序计数器 PC,地址寄存器 AR,程序/数据存储器 MEMORAY,指令寄存器 IR,微控制器 uC,输入单元 INPUT 和输出单元 OUTPUT 所组成。图中虚线框内部分包括运算器、控制器、程序存储器、数据存储器和微程序存储器等,实测时,它们都可以在单片 FPGA 中实现。虚线框外部分主要是输入/输出装置,包括键盘、数码管、LCD 显示器等,用于向 CPU 输入数据,或 CPU 向外输出数据,以及观察 CPU 内部工作情况及运算结果

9、。5、波形仿真仿真波形图:分析:(1)M 输出微指令 01800,控制台执行 P(4),进行“读、写、运行”功能判断。检测到 SWA、SWB=11 后,进入程序运行 RP(11)方式。(2)执行微地址为 23 的微指令,M 输出微指令为 018001,后续微地址 uA为 01.然后进入程序运行的流程。(3)执行微地址为 01 的 M 微指令 008001,执行的操作为PCAR=00H,PC+1=01H,AR 指向 RAM 存储器地址 00H,后续地址 uA 为 02.(4)执行微地址为 02 的 M 微指令 01ED82,执行取指令操作,取出第一条指令的操作码,经过分支判断 P(1),这是一条

10、输入指令 IN。(5)执行微地址为 10 的 M 微指令 00C048,将 RAM 中的指令 00 通过内部总线 BUS,送指令寄存器 IR:RAM(00H)=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,取指令,并经过分支判断 P(

11、1) ,读出地址为 01H 单元的内容 10H,经过 BUS 送到指令寄存器 IR:RAM(01H)=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

12、,RAM_B 为高电平,RAM 的(0AH)单元的内容 34H 送到 BUS,此时 LDDR2 为高电平,BUS 上的数据就送给了 DR2,执行结果:RAM(0AH)=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)+(DR2)R0,56H+34H=8AHR0

13、=8AH。(14)执行微地址为 02 的 M 微指令 01ED82,执行取指令操作:PCAR=03H,PC+1=04H,AR 指向 RAM 存储器地址 03H,执行第三条指令,存储STA。(15)执行微地址 12 的 M 微指令 00C048,取指令,并经过分支判断 P(1) ,读出地址为 03H 单元的内容 20H,经过 BUS 送到指令寄存器 IR:RAM(03H)=20HBUSIR=20H。(16)执行微地址为 07 的 M 微指令 01ED87,通过间接寻址获得另一个操作数,地址寄存器 AR 指向取数的间接地址:PCAR=04H,PC+1=05H,AR 指向RAM 的 04 单元。(1

14、7)执行微地址为 15 的 M 微指令 00E00D,RAM_B 为高电平,RAM 的(04)单元的内容通过 BUS 送 AR,取数地址(AR)=0BH,RAM(04)=0BHBUSAR=0BH。(18)执行 01 微地址为 01 的 M 微指令 038201,RAM_B 为高电平,R0 的内容存入 RAM(0BH)单元,BUS 上的数据就送给了 DR2,执行结果:RAM(0BH)=8AHBUSRAM(0BH)=8AH。(19)执行微地址为 02 的 M 微指令 01ED82,执行取指令操作:PCAR=05H,PC+1=06H,AR 指向 RAM 存储器地址 05H,执行第四条指令,输出OUT

15、。(20)执行微地址 13 的 M 微指令 00C048,取指令,并经过分支判断 P(1) ,读出地址为 05H 单元的内容 30H,经过 BUS 送到指令寄存器 IR:RAM(05H)=30HBUSIR=30H。(21)执行微地址为 16 的 M 微指令 01ED8E,通过间接寻址获得另一个操作数,地址寄存器 AR 指向取数的间接地址:PCAR=06H,PC+1=07H,AR 指向RAM 的 06 单元。(22)执行微地址为 17 的 M 微指令 00E00F,RAM_B 为高电平,RAM 的(06)单元的内容通过 BUS 送 AR,取数地址(AR)=0BH,RAM(06)=0BHBUSAR

16、=0BH。(23)执行微地址为 25 的 M 微指令 00A015,RAM_B 为高电平,RAM 的(0BH)单元的内容 8AH 送到 BUS,此时 LDDR2 为高电平,BUS 上的数据就送给了 DR2,执行结果:RAM(0BH)=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=0

17、8H,AR 指向 RAM 存储器地址 07H。(26)执行微地址 14 的 M 微指令 00C048,取指令,并经过分支判断 P(1) ,读出地址为 07H 单元的内容 40H,经过 BUS 送到指令寄存器 IR:RAM(07H)=40HBUSIR=40H。(27)执行微地址为 26 的 M 微指令 01ED96,进入转移 JMP 运算微程序。通过间接寻址获得另一个操作数,地址寄存器 AR 指向取数的间接地址:PCAR=08H,PC+1=09H,AR 指向 RAM 的 08 单元。(28)执行微地址为 01 的 M 微指令 00D181,RAM_B 为高电平,RAM 的(0AH)单元的内容 34H 送到 BUS,此时 LDDR2 为高电平,BUS 上的数据就送给了 DR2,执行结果:RAM(0AH)=34HBUSDR2=34H。题目:减法器实验结论:本实验系统是我做过最为庞大的,开始时根本不知道如何下手,完全是一头雾水,老师讲解后还是不知道如何着手,还是慢慢查找资料才略微懂得点头绪。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报