计算机组成原理课设报告设计一台嵌入式CISC模型机.docx

上传人:b****3 文档编号:10470789 上传时间:2023-05-26 格式:DOCX 页数:37 大小:146.58KB
下载 相关 举报
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第1页
第1页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第2页
第2页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第3页
第3页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第4页
第4页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第5页
第5页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第6页
第6页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第7页
第7页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第8页
第8页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第9页
第9页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第10页
第10页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第11页
第11页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第12页
第12页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第13页
第13页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第14页
第14页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第15页
第15页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第16页
第16页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第17页
第17页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第18页
第18页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第19页
第19页 / 共37页
计算机组成原理课设报告设计一台嵌入式CISC模型机.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机组成原理课设报告设计一台嵌入式CISC模型机.docx

《计算机组成原理课设报告设计一台嵌入式CISC模型机.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课设报告设计一台嵌入式CISC模型机.docx(37页珍藏版)》请在冰点文库上搜索。

计算机组成原理课设报告设计一台嵌入式CISC模型机.docx

计算机组成原理课设报告设计一台嵌入式CISC模型机

计算机组成原理

课程设计(论文)说明书

题目:

设计一台嵌入式CISC模型机

系别:

专业:

学生姓名:

学号:

 

一.CISC模型机数据通路框图总体设计如下

嵌入式CISC模型机

 

FC

IR

ALU

状态条件

寄存器

ROM

FZ

外部时钟

DR

AC

操作控制器和

时序产生器

复位信号

AR

具有时间标志的

操作控制信号

PC

R3

R2

R1

R0

 

输出设备

输入设备

 

二.操作控制器的逻辑框图

微命令信号

 

三.模型机的指令系统

3.1指令系统

7

6

5

4

3

2

1

0

I/O指令

IN1

操作码

×

×

Rd

OUT1

操作码

Rs

×

×

自增指令

INC

操作码

×

×

Rd

跳转指令

JB

操作码

×

×

×

×

ADDR

JS

操作码

×

×

×

×

ADDR

JMP

操作码

×

×

×

×

ADDR

比较

CMP

操作码

Rs

Rd

移动

MOV

操作码

×

×

Rd

DATA

MOV1

操作码

Rs

Rd

测试

TEST

操作码

×

×

Rd

3.2本模型机中的指令系统中共有10条基本指令,下表列出了每条指令的格式、汇编符号和指令功能。

助记符

指令格式

功能

IN1Rd

0000

××

Rd

将数据存到Rd寄存器

OUT1Rs

0011

Rs

××

(Rs)→LED

MOV1Rs,Rd

0010

Rs

Rd

Rs→Rd

CMPRs,Rd

0110

Rs

Rd

(Rs)-(Rd),锁存CY和ZI

INCRd

0100

××

Rd

(Rd)+1→Rd

MOVRd,data

0001

××

Rd

data

data→Rd

JMPaddr

0101

××××

addr

addr→PC

JSaddr

1000

××××

addr

若为负,则addr→PC

JBaddr

1001

××××

addr

若小于,则addr→PC

TestRd

0111

××

Rd

80H-AC,锁存SF

说明:

①对Rs和Rd的规定:

RsRd

选定的寄存器

00

R0

01

R1

10

R2

11

R3

②模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:

7

6543210

符号位

尾数

3.3设计时序产生器电路

T1、T2、T3、T4与CLR、Q之间的关系图

一个CPU周期

 

四.微程序流程图

00

PC→AR

PC+1

02

RDM

BUS→IR

10

P

(1)

IN1

TEST

JB

JS

CMP

MOV

OUT1

JMP

INC

MOV1

107

19

17

14

12

18

16

11

13

15

Rd→BUS

BUS→AC

Rd→BUS

BUS→AC

PC→AR

PC+1

PC→AR

PC+1

PC→AR

PC+1

Rs→BUS

BUS→Rd

Rs→BUS

BUS→AC

SW→BUS

BUS→Rd

PC→AR

PC+1

Rs→LED

07

20

05

04

08

06

03

00

P(3)

AC

锁存FS

00

P

(2)

ROM→BUS

BUS→PC

Rd→BUS

BUS→DR

ROM→BUS

BUS→Rd

AC+1→BUS

BUS→Rd

00

FC=0或FZ=1

FC=1

且FZ=0

09

00

00

00

00

AC-DR

锁存FS和FZ

30

20

ROM→BUS

BUS→PC

00

00

00

FS=0

FS=1

28

08

ROM→BUS

BUS→PC

 

五.编写汇编语言源程序

由给出的题目(范例)和设计的指令系统编写相应的汇编语言源程序。

算法思想为:

采用R0寄存器存放从开关输入的任意一个整数,R1存放准备参加累加运算的奇数,R2存放累加和,用一个循环程序实现如下:

MOVR3,0

MOVR2,0

MOVR1,5

L2:

IN1R0

TestR0

JSL1

L3:

INCR2

CMPR2,R1

JBL2

L4:

OUT1R3

JMPL4

L1:

CMPR0,R3

JBL3

MOV1R0,R3

JMPL3

 

六.机器语言源程序

根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去。

与3.3.8中汇编语言源程序对应的机器语言源程序如下:

助记符地址(十六进制)机器代码功能

MOVR3,O00000100110→R3

010000000

MOVR2,002000100100→R2

0300000000

MOVR1,504000100015→R1

0500000101

L2:

IN1R00600000000(SW)→R0

TestR0070111000080H-AC

JSL10810000000若SF=1L1→PC

0900010001

L3:

INCR20A01000010(R2)+1→R2

CMPR2,R10B01101001(R2)-(R1)

JBL20C10010000L2→PC

OD00000110

L4:

OUT1R30E00111100(R3)→LED

JMPL40F01010000L4→PC

1000001110

L1:

CMPR0,R31101100011(R0)-(R3)

JBL31210010000L3→PC

1300001010

MOV1R0,R31400100011R0→R3

JMPL31501010000L3→PC

1600001010

七.机器语言源程序的功能仿真波形图及结果分析;

输入数值:

85,05,83,87,89

输出结果:

89

结果分析:

05是正数,判断为负直接跳出,83<85<87<89

所以89最大,与仿真波形图结果相同

 

八.故障现象和故障分析

1.问题:

为微程序流程图分配首地址时出现错误,导致不能正确译码。

解决方法:

进行功能仿真时ADDR进行P

(1)测试译码时出现错误的首地址,经过了解P

(1)测试原理,重新为微程序流程图分配地址

2.问题:

Test指令锁存标志位SF出现错误,无论输入为正为负,SF恒等于0,导致输入负数是不能进行相应的跳转。

解决方法:

在进行功能仿真时通过观察ADDR发现错误,查看ALU代码实现中判断输入数值的正负方法有误,经过老师提醒得以解决,解决后的表达式

 

九.心得体会

本次课程设计我们要设计一台微程序控制的模型机,了解了一个比较简单的模型机的实现,完成对计算机组成原理这门课程的综合应用,达到学习本书的作用.作为一个计算机系学生这是必需掌握的。

使我们对数据选择器、移位器、加法器、运算器、存储器和微程序控制器,有了比较透彻的认识。

由于计算机设计的部件较多、结构原理较复杂,对于我们这样的初设计者来说感到无从下手。

在设计过程中,我们从开始的粗略的一个概念,到中间的疑惑与焦虑,到解决了问题的快乐。

这对于我们以后工作也有着很大的好处,培养了我们遇到问题,分析问题,解决问题各个方面上的能力。

设计结束了,从中我们也学到了不少知识.虽然计算机组成原理的课程设计与学习已经结束,可我们学习之路并没有结束,我们会继续努力学习其相关的知识,以适应社会的发展与需要.这样才能真正成为一名合格的大学生.

在这次课程设计的过程,有些很基本的知识出现记混淆的现象,通过查书及询问同学,最终明白了。

在此次的设计中,感谢老师对我们的帮助和指导。

过程还不够完善,希望老师继续指导。

 

十.软件清单

1.ALU单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.all;

ENTITYALUIS

PORT(

A:

INSTD_LOGIC_VECTOR(7DOWNTO0);

B:

INSTD_LOGIC_VECTOR(7DOWNTO0);

S1,S0:

INSTD_LOGIC;

BCDOUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

CY,ZI,SF:

OUTSTD_LOGIC

);

ENDALU;

ARCHITECTUREAOFALUIS

SIGNALAA,BB,TEMP:

STD_LOGIC_VECTOR(8DOWNTO0);

BEGIN

PROCESS(S1,S0)

BEGIN

IF(S1='1'ANDS0='1')THEN--TEST

BCDOUT<=10000000-A;

IF(10000000>=A)THEN

SF<='1';

ELSE

SF<='0';

ENDIF;

ELSIF(S1='0'ANDS0='1')THEN--CMP(SUB)

BCDOUT<=A-B;

IF(A

CY<='1';

ZI<='0';

ELSIF(A=B)THEN

CY<='0';

ZI<='1';

ELSE

CY<='0';

ZI<='0';

ENDIF;

ELSIF(S1='1'ANDS0='0')THEN--INC

AA<='0'&A;

TEMP<=A+1;

BCDOUT<=TEMP(7DOWNTO0);

CY<=TEMP(8);

IF(TEMP="100000000")THEN

ZI<='1';

ELSE

ZI<='0';

ENDIF;

ELSE

BCDOUT<="00000000";

CY<='0';

ZI<='0';

ENDIF;

ENDPROCESS;

ENDA;

2.状态条件寄存器单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYLS74IS

PORT(

LDFR:

INSTD_LOGIC;

SF,CY,ZI:

INSTD_LOGIC;

FS,FC,FZ:

OUTSTD_LOGIC

);

ENDLS74;

ARCHITECTUREAOFLS74IS

BEGIN

PROCESS(LDFR)

BEGIN

IF(LDFR'EVENTANDLDFR='1')THEN

FC<=CY;

FZ<=ZI;

FS<=SF;

ENDIF;

ENDPROCESS;

ENDA;

3.暂存器单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYLS273IS

PORT(

D:

INSTD_LOGIC_VECTOR(7DOWNTO0);

CLK:

INSTD_LOGIC;

O:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDLS273;

ARCHITECTUREAOFLS273IS

BEGIN

PROCESS(CLK)

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

O<=D;

ENDIF;

ENDPROCESS;

ENDA;

4.通用寄存器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYLS273IS

PORT(

D:

INSTD_LOGIC_VECTOR(7DOWNTO0);

CLK:

INSTD_LOGIC;

O:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDLS273;

ARCHITECTUREAOFLS273IS

BEGIN

PROCESS(CLK)

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

O<=D;

ENDIF;

ENDPROCESS;

ENDA;

5.1:

2分配器单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYFEN2IS

PORT(

WR,LED_B:

INSTD_LOGIC;

X:

INSTD_LOGIC_VECTOR(7DOWNTO0);

W1,W2:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDFEN2;

ARCHITECTUREAOFFEN2IS

BEGIN

PROCESS(LED_B,WR)

BEGIN

IF(LED_B='0'ANDWR='0')THEN

W2<=X;

ELSE

W1<=X;

ENDIF;

ENDPROCESS;

ENDA;

6.3选1数据选择器单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYMUX3IS

PORT(

ID:

INSTD_LOGIC_VECTOR(7DOWNTO0);

SW_B,CS:

INSTD_LOGIC;

N1,N2:

INSTD_LOGIC_VECTOR(7DOWNTO0);

EW:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDMUX3;

ARCHITECTUREAOFMUX3IS

BEGIN

PROCESS(SW_B,CS)

BEGIN

IF(SW_B='0')THEN

EW<=ID;

ELSIF(CS='0')THEN

EW<=N2;

ELSE

EW<=N1;

ENDIF;

ENDPROCESS;

ENDA;

7.5选1数据选择器单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYMUX5IS

PORT(

B,C,D,E,F:

INSTD_LOGIC;

X1,X2,X3,X4,X5:

INSTD_LOGIC_VECTOR(7DOWNTO0);

W:

outSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDMUX5;

ARCHITECTUREAOFMUX5IS

SIGNALSEL:

STD_LOGIC_VECTOR(4DOWNTO0);

BEGIN

SEL<=F&E&D&C&B;

PROCESS(SEL)

BEGIN

IF(SEL="11101")THEN--R0_out

W<=X1;

ELSIF(SEL="11110")THEN--R3_out

W<=X5;

ELSIF(SEL="11011")THEN--R1_out

W<=X2;

ELSIF(SEL="10111")THEN--R2-out

W<=X3;

ELSIF(SEL="01111")THEN--ALU_out

W<=X4;

ELSE

null;

ENDIF;

ENDPROCESS;

ENDA;

8.程序计数器单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYPCIS

PORT(

LOAD,LDPC,CLR:

INSTD_LOGIC;

D:

INSTD_LOGIC_VECTOR(7DOWNTO0);

O:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDPC;

ARCHITECTUREAOFPCIS

SIGNALQOUT:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

PROCESS(LDPC,CLR,LOAD)

BEGIN

IF(CLR='0')THEN

QOUT<="00000000";

ELSIF(LDPC'EVENTANDLDPC='1')THEN

IF(LOAD='0')THEN

QOUT<=D;--BUS->PC

ELSE

QOUT<=QOUT+1;--PC=PC+1

ENDIF;

ENDIF;

ENDPROCESS;

O<=QOUT;

ENDA;

9、地址寄存器

10、主存储器单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYROM16IS

PORT(

DOUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

ADDR:

INSTD_LOGIC_VECTOR(7DOWNTO0);

CS:

INSTD_LOGIC

);

ENDROM16;

ARCHITECTUREAOFROM16IS

BEGIN

DOUT<="00010011"WHENADDR="00000000"ANDCS='0'ELSE

"00000000"WHENADDR="00000001"ANDCS='0'ELSE

"00010010"WHENADDR="00000010"ANDCS='0'ELSE

"00000000"WHENADDR="00000011"ANDCS='0'ELSE

"00010001"WHENADDR="00000100"ANDCS='0'ELSE

"00000101"WHENADDR="00000101"ANDCS='0'ELSE

"00000000"WHENADDR="00000110"ANDCS='0'ELSE

"01110000"WHENADDR="00000111"ANDCS='0'ELSE

"10000000"WHENADDR="00001000"ANDCS='0'ELSE

"00010001"WHENADDR="00001001"ANDCS='0'ELSE

"01000010"WHENADDR="00001010"ANDCS='0'ELSE

"01101001"WHENADDR="00001011"ANDCS='0'ELSE

"10010000"WHENADDR="00001100"ANDCS='0'ELSE

"00000110"WHENADDR="00001101"ANDCS='0'ELSE

"00111100"WHENADDR="00001110"ANDCS='0'ELSE

"01010000"WHENADDR="00001111"ANDCS='0'ELSE

"00001110"WHENADDR="00010000"ANDCS='0'ELSE

"01100011"WHENADDR="00010001"ANDCS='0'ELSE

"10010000"WHENADDR="00010010"ANDCS='0'ELSE

"00001010"WHENADDR="00010011"ANDCS='0'ELSE

"00100011"WHENADDR="00010100"ANDCS='0'ELSE

"01010000"WHENADDR="00010101"ANDCS='0'ELSE

"00001010"WHENADDR="00010110"ANDCS='0'ELSE

"00000000";

ENDA;

11、指令寄存器单元

12、时序产生器单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCOUNTERIS

PORT(

Q,CLR:

INSTD_LOGIC;

T2,T3,T4:

OUTSTD_LOGIC

);

ENDCOUNTER;

ARCHITECTUREAOFCOUNTERIS

SIGNALX:

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

PROCESS(Q,CLR)

BEGIN

IF(CLR='0')THEN

T2<='0';

T3<='0';

T4<='0';

X<="00";

ELSIF(Q'EVENTANDQ='1')THEN

X<=X+1;

T2<=(NOTX

(1))ANDX(0);

T3<=X

(1)AND(NOTX(0));

T4<=X

(1)ANDX(0);

ENDIF;

ENDPROCESS;

ENDA;

13、操作控制器单元

操作控制器单元内部结构图

(1)地址转移逻辑电路

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYADDRIS

PORT(

I7,I6,I5,I4:

INSTD_LOGIC;

FS,FZ,FC

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

当前位置:首页 > 小学教育 > 数学

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

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