计算机组成原理课程设计.docx

上传人:b****1 文档编号:2323759 上传时间:2023-05-03 格式:DOCX 页数:17 大小:889.17KB
下载 相关 举报
计算机组成原理课程设计.docx_第1页
第1页 / 共17页
计算机组成原理课程设计.docx_第2页
第2页 / 共17页
计算机组成原理课程设计.docx_第3页
第3页 / 共17页
计算机组成原理课程设计.docx_第4页
第4页 / 共17页
计算机组成原理课程设计.docx_第5页
第5页 / 共17页
计算机组成原理课程设计.docx_第6页
第6页 / 共17页
计算机组成原理课程设计.docx_第7页
第7页 / 共17页
计算机组成原理课程设计.docx_第8页
第8页 / 共17页
计算机组成原理课程设计.docx_第9页
第9页 / 共17页
计算机组成原理课程设计.docx_第10页
第10页 / 共17页
计算机组成原理课程设计.docx_第11页
第11页 / 共17页
计算机组成原理课程设计.docx_第12页
第12页 / 共17页
计算机组成原理课程设计.docx_第13页
第13页 / 共17页
计算机组成原理课程设计.docx_第14页
第14页 / 共17页
计算机组成原理课程设计.docx_第15页
第15页 / 共17页
计算机组成原理课程设计.docx_第16页
第16页 / 共17页
计算机组成原理课程设计.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机组成原理课程设计.docx

《计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计.docx(17页珍藏版)》请在冰点文库上搜索。

计算机组成原理课程设计.docx

计算机组成原理课程设计

 

东北大学秦皇岛分校

计算机与通信工程学院

计算机组成原理课程设计

 

专业名称

班级学号

学生姓名

指导教师

设计时间

 

课程设计任务书

专业:

学号:

学生姓名:

设计题目:

指令系统及七段译码器设计

一、设计实验条件

综合楼

硬件:

PC机

软件:

XilinxISEModelSim

汇编语言:

VHDL

二、设计任务及要求

1.指令:

19、25、42号指令;

2.七段译码器

3.4位BCD码加法器

4.要求:

总线结构:

单总线,数据总线位数8位、地址总线8位;

存储器:

内存容量64K*8bit

控制器:

用硬连线控制器实现26位微操作控制信号

运算器:

单累加器,实现加、减等8种操作

外设:

——输入:

用开关输入二进制量

——输出:

7段数码管和LED显示

指令系统规模:

64条指令,7种类型,5种寻址方式

三、设计报告的内容

1、指令系统设计:

本次课程设计要设计的指令是第19、25、42号指令,要清楚各条指令的功能、指令类型、寻址方式等内容,本次设计用到的指令的相关内容如表1所示

 

表1本次要设计的指令

 

指令编号

助记符

指令类型

功能

19

SUBCA,MM

算术运算指令

从累加器A中减去寄存器MM地址的值,减进位

25

ORA,R?

逻辑运算指令

累加器A“或”寄存器R?

的值

42

JZMM

逻辑运算指令

当零标志R_Z=1时,跳转到MM地址

2、模型机硬件设计:

七段译码器

因为计算机输出的是BCD码,要想在数码管上显示十进制数,就必须先把BCD码转换成7段字型数码管所要求的代码。

我们把能够将计算机输出的BCD码换成7段字型代码,并使数码管显示出十进制数的电路称为“七段字型译码器”。

3、逻辑电路设计:

4位BCD码加法器

加法器定义实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能。

【系统设计】

1、模型机逻辑框图(整机逻辑框图、芯片引脚及CPU逻辑框图如下图1、图2、图3所示)

图1整机逻辑框图

图2芯片引脚

图3CPU逻辑框图

2、指令系统设计

指令类型及寻址方式见表1

3、微操作控制信号

1、XRD:

外部设备读信号,当给出了外设的地址后,输出此信号,从指外设读数据。

2、EMWR:

程序存储器EM写信号。

3、EMRD:

程序存储器EM读信号。

4、PCOE:

将程序计数器PC的值送到地址总线ABUS上(MAR)。

5、EMEN:

将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。

6、IREN:

将程序存储器EM读出的数据打入指令寄存器IR。

7、EINT:

中断返回时清除中断响应和中断请求标志,便于下次中断。

8、ELP:

PC打入允许,与指令寄存器IR3、IR2位结合,控制程序跳转。

9、FSTC:

进位置1,CY=1

10、FCLC:

进位置0,CY=0

11、MAREN:

将地址总线ABUS上的地址打入地址寄存器MAR。

12、MAROE:

将地址寄存器MAR的值送到地址总线ABUS上。

13、OUTEN:

将数据总线DBUS上数据送到输出端口寄存器OUT里。

14、STEN:

将数据总线DBUS上数据存入堆栈寄存器ST中。

15、RRD:

读寄存器组R0-R3,寄存器R?

的选择由指令的最低两位决定。

16、RWR:

写寄存器组R0-R3,寄存器R?

的选择由指令的最低两位决定。

17、CN:

决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。

18、FEN:

将标志位存入ALU内部的标志寄存器。

19、WEN:

将数据总线DBUS的值打入工作寄存器W中。

20、AEN:

将数据总线DBUS的值打入累加器A中。

21-23:

X2~X0:

X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。

24-26:

S2~S0:

S2、S1、S0三位组合决定ALU做何种运算。

4、指令执行流程

指令执行流程如表2所示:

表2指令的执行流程

编号

指令

指令功能

操作码

节拍数

微操作

控制信号

19

SUBCA,MM

从累加器A中减去寄存器MM地址的值,减进位

010010XX

T7

PC->MAR

PCOE,MAREN,

T6

EM→MAR

EMEN,EMRD,MAREN

T5

PC+1->PC

WEN

T4

EM->MAR

EMEN,EMRD,MAREN

T3

EM->W

EMEN,EMRD,WEN

25

ORA,R?

累加器A“或”寄存器R?

的值

011000XX

T4

R->DB

US->W

R,DBUS,W

T3

W,A->ALU

W,A,ALU

42

JZMM

当零标志R_Z=1时,跳转到MM地址

101001XX

T7

若Z=1,则

PCMAREMWDBUS

T6

PC->MAR

PCMAREMWDBUS

T5

EM->W

W->DBUS->PC

T4

否则:

PC+1->PC

PC

以流程图表示如下:

SUBCA,MMORA,R?

JZMM

T5T5T5T4

T4T4T4T3

T3T3T3

图4指令的执行流程图

【系统实现】

1、模型机实现(七段译码器的实现)

(1)逻辑电路的图形符号表示、功能

七段译码器电路图形符号如图5所示:

图5七段译码器电路图形符号表示

(2)指令所涉及的微操作控制信号

PCOE:

将程序计数器PC的值送到主存地址寄存器MAR上。

MAREN:

将数据总线DBUS的值送到主存地址寄存器MAR上。

(3)系统实现

libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

--Uncommentthefollowinglibrarydeclarationifusing

--arithmeticfunctionswithSignedorUnsignedvalues

--useIEEE.NUMERIC_STD.ALL;

--Uncommentthefollowinglibrarydeclarationifinstantiating

--anyXilinxprimitivesinthiscode.

--libraryUNISIM;

--useUNISIM.VComponents.all;

entityGLis

PORT(CLK:

INSTD_LOGIC;

INN:

INSTD_LOGIC_VECTOR(15DOWNTO0);

SEL:

bufferSTD_LOGIC_VECTOR(2DOWNTO0);

LED7:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

endGL;

architectureBehavioralofGLis

SIGNALDATA:

STD_LOGIC_VECTOR(3DOWNTO0);

begin

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFSEL>="011"THENSEL<="000";

ELSESEL<=SEL+1;

ENDIF;

CASESELIS

WHEN"000"=>DATA<=INN(3downto0);

WHEN"001"=>DATA<=INN(7DOWNTO4);

WHEN"010"=>DATA<=INN(11DOWNTO8);

WHEN"011"=>DATA<=INN(15DOWNTO12);

WHENOTHERS=>NULL;

ENDCASE;

ENDIF;

ENDPROCESS;

PROCESS(DATA)

BEGIN

CASEDATAIS

WHEN"0000"=>LED7<="00111111";--0

WHEN"0001"=>LED7<="00000110";--1

WHEN"0010"=>LED7<="01011011";--2

WHEN"0011"=>LED7<="01001111";--3

WHEN"0100"=>LED7<="01100110";--4

WHEN"0101"=>LED7<="01101101";--5

WHEN"0110"=>LED7<="01111101";--6

WHEN"0111"=>LED7<="00000111";--7

WHEN"1000"=>LED7<="01111111";--8

WHEN"1001"=>LED7<="01101111";--9

WHEN"1010"=>LED7<="01110111";--10

WHEN"1011"=>LED7<="01111100";--11

WHEN"1100"=>LED7<="00111001";--12

WHEN"1101"=>LED7<="01011110";--13

WHEN"1110"=>LED7<="01111001";--14

WHEN"1111"=>LED7<="01110001";--15

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESS;

endBehavioral;

2.逻辑电路设计(4位BCD码加法器)

(1)逻辑电路的图形符号表示、功能

图64位BCD码加法器的图形符号表示

(2)系统实现

libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

useieee.numeric_std.all;

--Uncommentthefollowinglibrarydeclarationifusing

--arithmeticfunctionswithSignedorUnsignedvalues

--useIEEE.NUMERIC_STD.ALL;

--Uncommentthefollowinglibrarydeclarationifinstantiating

--anyXilinxprimitivesinthiscode.

--libraryUNISIM;

--useUNISIM.VComponents.all;

entityguolei2is

port

a:

instd_logic_vector(3downto0);

b:

instd_logic_vector(3downto0);

ci:

instd_logic;

s:

outstd_logic_vector(3downto0);

co:

outstd_logic);

endguolei2;

architectureBehavioralofguolei2is

signalc0,c1,c2:

std_logic;

begin

s(0)<=a(0)xorb(0)xorci;

c0<=(a(0)andb(0))or(a(0)andci)or(b(0)andci);

s

(1)<=a

(1)xorb

(1)xorc0;

c1<=(a

(1)andb

(1))or(a

(1)andc0)or(b

(1)andc0);

s

(2)<=a

(2)xorb

(2)xorc1;

c2<=(a

(2)andb

(2))or(a

(2)andc1)or(b

(2)andc1);

s(3)<=a(3)xorb(3)xorc2;

co<=(a(3)andb(3))or(a(3)andc2)or(b(3)andc2);

endBehavioral;

【系统测试】

(一)、模型机实现(七段译码器的实现)

1、功能仿真

仿真时用到的波形如图7所示:

图7仿真时用到的波形图

2、RTL级逻辑电路

七段译码器的RTL级电路图如图9所示:

图9七段译码器RTL级电路图

(二)硬件测试(4位BCD码加法器)

1、功能仿真

4位BCD码加法器仿真波形图如图10所示:

图104位BCD码加法器仿真用到的波形图

2、RTL级逻辑电路

4位BCD码加法器的RTL级逻辑电路如图11所示:

图114位BCD码加法器的RTL级逻辑电路图

【总结】

本次课设遇到很多问题,首先是软件的使用,由于是第一次接触XILINX软件,软件的好多功能和用法都不清楚,好多选项都不了解。

不过经过查找资料以及问同学终于学会的熟练运用。

接着是那个波形图的形成,好几次运行之后都是红线,显示错误。

后来和同学们群里讨论才知道怎么正确的去做。

最开始在做4位BCD码加法器的时候一点想法都没有,不知道该怎么设计,然后就去图书馆去借书,查看,上网查资料,和相关课题的同学一起讨论,最后学会了相关的设计。

【心得体会】

课设的一开始,首先是学习软件的使用,去了解软件的功能和用法。

由于是新软件,好多功能都不了解,就去自己XX,看老师给的资料,听同学讲解,终于学会了XilinxISEModelSim的基础的使用,能用他们做出RTL图和波形图。

接着就到了最困难的时候,课程题目的设计,到了设计这里,又一个难点出现了,一个全新的语言VHDL。

以前一点都没有了解过,这次是从零开始,去图书馆借阅书籍,去网上XX,了解了它的一些用法,发现一些语句的大概意思和自己学过的语言还有相似之处,有C语言作为基础,再学其他语言就没有那么困难了。

然后就进去到了正题,课程的设计。

老师给的课题都是书本的知识,但是是书本知识的延伸和扩展。

光靠看课本是不好做出来的,然后我就去图书馆找相关的书籍,上网查资料,使自己对题目的理解更具体全面和深入。

这次课设让我对七段译码器有了深入的认识和了解,对它的运行机制和线路有了认识。

本次课设不仅考验了我们的自学能力以及对新知识、新事物的认识和学习,也锻炼了我们查阅资料和战胜困难的能力,对我们所学的课本的知识也有了加深和升华。

通过本次课设,我学会了两个新的软件XilinxISE和ModelSim的使用方法,并且学会了一个新的语言VHDL,还对七段译码器和4位BCD码加法器有了深入的了解和认识。

这次课程设计我收获颇多。

 

【参考文献(资料)】

[1]袁静波等.计算机组成与结构.北京:

机械工业出版社,2011.

[2]胡越明.计算机组成与设计[M].北京:

科学出版社,2006.

[3]王爱英.计算机组成与结构[M].北京:

清华大学出版社,2007.

[4]卢毅VHDL与数字电路设计科学出版社,2001

[5]谭耀麟基于VHDL语言的微机接口电路设计北京:

清华大学出版社,2010

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2