VHDLCPU实验报告.docx

上传人:b****0 文档编号:443372 上传时间:2022-10-10 格式:DOCX 页数:19 大小:745.45KB
下载 相关 举报
VHDLCPU实验报告.docx_第1页
第1页 / 共19页
VHDLCPU实验报告.docx_第2页
第2页 / 共19页
VHDLCPU实验报告.docx_第3页
第3页 / 共19页
VHDLCPU实验报告.docx_第4页
第4页 / 共19页
VHDLCPU实验报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

VHDLCPU实验报告.docx

《VHDLCPU实验报告.docx》由会员分享,可在线阅读,更多相关《VHDLCPU实验报告.docx(19页珍藏版)》请在冰豆网上搜索。

VHDLCPU实验报告.docx

VHDLCPU实验报告

计算机硬件课程设计

设计报告

 

学号:

姓名:

成绩:

学号:

姓名:

成绩:

 

东南大学计算机科学与工程系

二010年12月

目录

1.实验名称………………………………………………………………………2

2.实验目的………………………………………………………………………2

3.实验任务………………………………………………………………………2.

4.主要特色……………………………………………………………………2

5.设计方案…………………………………………………………………3

5.1数据格式和指令系统…………………………………………………3

5.2本设计的体系结构…………………………………………………………5

5.测试结果与性能分析………………………………………………………20

6.课程设计总结………………………………………………………………….22

1.实验名称

微程序控制的模型计算机的设计与调试

2.实验目的

1.综合运用“计算机组成原理”和“数字电路”等课程的知识,通过对模型机的设计和调试,加深对计算机各部件工作原理的认识。

2.进一步掌握运用EDA技术进行设计和调试的工作方法。

3.掌握计算机硬件设计的思想,方法及工作过程,进一步培养工程设计的能力。

3.实验任务

1.自行规定数据格式和指令格式,在所提供的条件范围内设计一台由微程序控制(也可以用其他方式如组合逻辑等)的模型计算机。

2.根据设计方案,将模型机调试成功。

3.整理出相关文件。

(1)数据格式和指令系统。

(2)总框图。

(3)详细电路图或有关电路的VHDL语言源程序。

(4)微指令格式和微程序。

(5)调试过程和测试结果(包括测试程序)。

4.主要特色

1.增加了ROM的宽度,改为24位,使得可以在一个时钟内读出24位的微指令。

2.对电路进行了合理的修改,具体增加了SRC.DEST结合IR0,IR2,IR1,IR3到RA,RB的译码电路。

3.SRC.DEST结合IR0,IR2,IR1,IR3到WA,WB的译码电路,实现了对于源操作数的写入。

4.由微指令到8CPU中对应的端口译码。

5.重新构造了ROM,RAM,修改了时序电路,调整了M1,M2,M3,M4的时序。

6.除了书上要求的指令微程序以外,还对微程序进行了扩充,加了逻辑左移指令:

SAL(每次执行左移一位),以及乘法指令:

MUL(8位与8位数据相乘,得到16位数据高8位写回源操作数,低8位写回目的操作数)

7.修改了M1,M2,M3,M4的连接电路。

8.通过用软件模拟的方法,成功的构造了一个简单的CPU,更加熟练的学会使用EDA技术。

试验中结合了数字实验和组成原理部分内容。

9.用简单易读的方式排列24位控制信号,使得操作更加简便,如图所示

5.设计方案

5.1数据格式和指令系统(参考教材)

采用8位数据通路,数据采用8位二进制定点表示。

76543210

.

设置7条机器指令和两条面板操作指令

(1)面板操作指令(因为没有一BIOS及操作系统,所以用面板指令进行初始化,启动机器)

a.输入地址

为PC置初始值,即输入程序的起始地址,当K1开关置“1”,K2开关置“0”时执行此操作。

b.输入程序

将程序输入到内存的指定区域,当K1,K2开关均置“1”时,由面板输入开关输入程序

c.本模型机设置K3开关,K3置1表示执行单步操作。

d.START表示启动开关。

(2)指令系统

a.指令格式

操作码

寻址方式

76543210

有二种寻址方式

寄存器寻址

操作码

R目

R源

76543210

直接地址寻址

由于地址要占用一个字节,所以此类指令为双字节指令。

操作码

R目

R源

内存地址

b.9条机器指令

INR;从开关输入数据送入到指定的寄存器R。

格式:

0001

R目

00

OUTR;从指定的寄存器R中取出数据送入到输出缓冲器,显示灯亮。

格式:

0010

00

R源

LDR,address;从内存指定单元取出数据,送入指定的寄存器R。

格式:

0011

R目

00

内存地址

STaddress,R;从指定的寄存器R中取出数据,存入内存指定单元。

格式:

0100

00

R源

内存地址

ADDR1,R2;将两个寄存器中的数据相加,结果送到R1。

格式:

0101

R目

R源

JMPaddress;无条件转移,即address→PC。

格式:

0110

00

00

内存地址

HALT;停机指令。

MULR1,R2;将两个寄存器中的数据相乘,结果高8位送到R1,低8位送到R2。

格式:

1010

R目

R源

SALR;将R中的数据左移一位,结果送到R1。

格式:

1001

R目

5.2本设计的体系结构

为了简单方便起见,我们采用单总线结构,总体机构和CPU内部结构设计如图所示

总体结构图

CPU内部结构

1.数据通路设计

(1)采用Quartus—II软件工具,先设计出运算器部分,如图所示.ALU.bdf,经时序仿真正确后,进行符号封装。

(2)采用Quartus—II软件工具,先设计出运算器部分,如图所示MUL.bdf,经时序仿真正确后,进行符号封装。

介绍数据通路时打开8CPU.bdf

(2)根据指令系统,数据通路中应包括寄存器组,存储器等,采用单总线结构,

截图一分为二

(1)

(2)

其中为了做乘法,我们对8cpu加了6个控制信号,如图所示

2.控制器设计

(1)控制器总框图

.

控制信号

(2)微指令格式和微命令

首先对数据通路进行分析,需要22个控制信号。

此外还要2个信号:

UPC(表示一段微程序结束),HALT(停机),共需要24个控制信号。

采用水平型格式表示。

控制数据通路的16个信号说明如下:

G1,G2,G3,G4

ramormul,cmul分别控制6个多路开关

A,B,C,D,E

O,P,Q分别控制对应的寄存器输入

F控制计数器PC的输入和计数

I控制指令寄存器的输入

DEST目的寄存器的读出控制信号

SRC源寄存器的读出控制信号

WE对RAM的写入信号

GWN通用寄存器组的写入信号

LDNPC置初值的控制信号

SRCWE源或目的寄存器的写入信号

(3)控存的安排和时序信号

本方案采用的时序控制信号是由74393b产生的。

对于时序,本来是有六个时钟周期的,我们将其缩短在了四个,有效的提高了运行效率。

修改后的时序电路图

时序脉冲

(4)微地址入口电路的设计

为简单起见,微地址采用8位,其高4位由指令操作码控制,低4位由一个4位的计数器控制。

将ROM的高段地址区用于存放面板指令的微程序,低段地址存储区存放一般指令的微程序,控制电路可参考图6。

图3-6微地址入口电路

(5)微命令译码电路

a.本方案中寄存器组采用的是74670芯片,每次写入可以为源寄存器,也可以为目的寄存器,所以Wa,Wb要经过译码与IR2,IR3连接,读出时目的和源寄存器均可读出,所以依然要用译码电路。

电路设计如下:

写寄存器译码电路

读寄存器译码电路

b.停机电路

以下几种情况需停机:

(a)总清.(b)执行单指令操作,且一条指令执行完。

(c)执行停机指令。

根据这三种情况可以设计出停机电路。

c.UPC微命令表示一段微程序结束,因此该命令要做的工作是:

(a)置“0”微程序计数器(74161)。

(b)置“0”指令寄存器。

3.微程序和总电路图

微程序定义如下:

8cpu中的端口译码电路如下:

Rom修改为24位,修改电路如下:

24位重新排列微指令顺序

8CPU重新封装效果图

CPU总的电路图:

(截成四部分)

时序及upc产生部分

8cpu及寄存器读写译码部分

控制信号译码部分

Rom及取微指令部分

6.测试结果与性能分析(测试程序、时序图、编译报告中资源使用情况)

仿真:

微程序和电路设计完成后,进行编译,并通过仿真来检验cup的各项功能。

仿真时,先用面板指令输入程序的起始地址和一段小程序。

我们输入的程序为:

初始地址为00H,即

Ram中程序如下:

进行仿真,首先开关K1置1,K2置0,kdata为00H,为PC置初始值00即程序口地址,接着将K1置0,执行程序。

此时,我们置kdata始终为02H,通过IN指令输入到R0和R1中,然后继续执行程序!

建立vwf文件如下:

仿真结果如下:

7.课程设计总结

本实验是设计一个小型CPU,主要工作是在给定的CUP主体结构上完善电路,修正已有电路错误以及设计微程序。

本实验有相当的综合性:

在实践过程中,我们充分使用了组成原理、微机接口、数字电路等相关知识。

通过本次实验,我们对CPU的结构和工作原理有了切实的认识。

尤其在总线,时序,微指令等方面,投入的时间不少,体会很深。

我们深刻理解了总线作为指令和数据传输的道路和桥梁,在CUP的工作过程中扮演的重要角色;弄懂了通过时序的调节解决总线的冲突的方法;在全面细致地分析了CUP结构和工作原理的基础上,我们掌握了编写微指令的方法与技巧。

通过组内讨论和求教于老师、同学,我们顺利的完成了基本的实验目标,并做了进一步研究。

利用加法指令,我们增加了SAL(左移一位)指令。

采用控制RA、RB读信号的控制思路,我们使得源、目的寄存器均可写入。

在此基础上,我们引入了8位乘法器,将结果——16位二进制数,成功写入源、目的寄存器。

对现有的24位控制信号,我们充分利用了每一位。

同时,我们注意到实验中还有很多可以改进的地方。

由于时间和给定CPU规格的限定,很多想法未能实施。

比如,编写微指令时,我们注意到:

一条指令中的某条指令在M3时已经完成,空等一个M4,才取下一条。

这样的情况并不少见。

如果将执行微指令、取微指令等改为下降沿也能触发,就可以把下一条提到M4做,这就省了一个整个指令周期。

宏观的时间节省量自然也十分可观。

再如,实验提供的ROM为24位,这使得控制信号剩余不多,一旦想多加其它组件,就会为之苦恼。

我们想到自取名为“多面手控制信号”的解决方案:

对于互斥的两条指令A和B(如ADD和MUL(肯定不会同时做)),可以根据需要,让A的控制型号同时控制B,所需做的额外工作是修改ROM中的微指令即可。

比起想法设法地扩展ROM,这种方法既快速,又充分利用资源。

实验提供的CPU中有不少这样的控制信号,值得好好利用。

当然,缺点也显而易见,由于控制信号一对多,修改、删除时得慎之再慎,增加了CUP维护的难度。

总之,通过本次实验,我们体会了学以致用的快乐,为进一步的深入的学习增添了几分信心。

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1