计算机组成原理课设.docx

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

计算机组成原理课设.docx

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

计算机组成原理课设.docx

计算机组成原理课设

 

计算机组成原理

课程设计报告

题目:

设计一台嵌入式CISC模型机

院系:

计算机科学与工程学院

专业:

网络工程

姓名:

麦健豪

学号:

1100380215

一、课程设计的题目和内容

采用定长CPU周期、联合控制方式,并运行能完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下:

输入5个有符号整数(8位二进制补码表示),求最大负数的绝对值并输出显示.

说明:

①5个有符号数从外部输入;

②一定要使用符号标志位(比如说SF),并且要使用为负的时候转移(比如JS)或不为负的时候转移(比如JNS)指令;

③采用单数据总线结构的运算器。

二、系统设计

2.1系统的总体设计

 

2.2设计控制器的逻辑结构框图

 

说明:

在T4内形成微指令的微地址,并访问控制存储器,在T2的上边沿到来时,将读出的微指令打入微指令寄存器,即图中的微命令寄存器和微地址寄存器.

2.3设计机器指令和指令系统

指令

对象

功能

机器指令

Mov1

XX,RD

DATA

DATA->RD

0011

TEST

XX,RD

AC锁存FS

0100

JNS

XXXX

ADDR

ADDR—〉PC

0101

INC

XX,RD

RD+1—〉RD

0110

IN

XX,RD

SW->RD

0111

CMP

RS,RD

RS—RD锁存FS

1001

MOV2

RS,RD

RS—>RD

1010

JMP

XXXX

ADDR

ADDR—〉PC

1011

NEG

XX,RD

(0—RD)—>RD

1100

OUT

RS,XX

RS—〉LED

1101

以下是对Rs,Rd的规定:

Rs或Rd

选定的寄存器

00

R0

01

R1

10

R2

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

7

6543210

符号位

尾数

2.4设计时序产生器

 

2。

5设计微程序流程图

 

2.6设计操作控制器单元

(1)设计微指令格式与微指令代码表

CISC模型机系统使用的微指令采用全水平型微指令,字长为25位,其中微命令字段为17位,P字段为2位,后继微地址为6位,其格式如下:

设计的具体指令为:

16进制

微地址

LOAD

LDPC

LDAR

LDIR

LDRi

RD_B

RB_B

S1

S0

ALU_B

LDAC

LDDR

WR

CS

SW_B

LED_B

LDFR

P1

P2

后继微地址

00

000000

1110011001001111000

000010

02

000010

1001011001001011010

000000

03

000011

1110011001001111000

001110

04

000100

1000001001101111000

001111

05

000101

1110011001001111001

100000

06

000110

1000001001101111000

010010

07

000111

1000111001001101000

000000

09

001001

1000010001101111000

010101

0A

001010

1000110001001111000

000000

0B

001011

1110011001001111000

011000

0C

001100

1000001001101111000

011001

0D

001101

1000010001000110000

000000

0E

001110

1000111001001011000

000000

0F

001111

1000011011001111100

000000

12

010010

1000111100001111000

000000

15

010101

1000001001011111000

010110

16

010110

1000011001001111100

000000

18

011000

010*********

000000

19

011001

1000111110001111000

000000

30

110000

1000011001001111000

000000

20

100000

010*********

000000

(2)设计地址转移逻辑电路

地址转移逻辑电路是根据微程序流程图的棱形框部分及多个分支微地址,利用微地址寄存器的异步置‘1’端,实现微地址的多路转移的.由于是采用逻辑电路来实现的,故称之为地址转移逻辑电路。

在微地址流程图中,P

(1)(高电平有效)测试时,根据指令的操作I7~I4强制修改后继地址的低四位;在P

(2)(高电平有效)时,根据借位标志FS进行2路分支,并且都在T4内形成后继微指令的微地址.

SE5=((NOTFS)ANDP

(2)ANDT4

SE4=(I7ANDP

(2)ANDT4

SE3=(I6ANDP

(2)ANDT4

SE2=(I5ANDP

(2)ANDT4

SE1=(I4ANDP

(2)ANDT4

2。

7设计单元顶层电路

2。

8编写汇编语言源程序

算法:

R0存入一个整数—4,作为五次输入循环使用;R1用于存储输入的整数;R3用于存入最后的结果,并预存一个最小负数—128.随后如下

Mov1R0,-5

将立即数—4—〉R0

MOV1R2,-128

将立即数-128—>R2

L1

TESTR0

测试R0,锁存SF

JNSL2

非负,即SF=0,跳转L2

INCR0

R0+1

INR1

输入一个整数,并存入R1

TESTR1

测试R1

JNSL1

非负则跳转L1

CMPR2,R1

比较R2,R1的大小,锁存SF

JNSL1

非负则跳转L1

MOV2R1,R2

将R1的内容存入R2

JMPL1

跳转L1

L2

NEGR2

对R2求补

OUTR2

输出结果

2.9机器语言源程序

指令

地址

地址16进制

机器指令

十六进制

备注

Mov1R0,-5

00000000

00

00110000

30

00000001

01

11111011

FB

MOV1R2,—128

00000010

02

00110010

32

00000011

03

10000001

FF

L1

TESTR0

00000100

04

01000000

40

JNSL2

00000101

05

01010000

50

00000110

06

00010010

11

INCR0

00000111

07

01100000

60

INR1

00001000

08

01110001

71

TESTR1

00001001

09

01000001

41

JNSL1

00001010

0A

01010000

50

00001011

0B

00000100

04

CMPR2,R1

00001100

0C

10011001

99

JNSL1

00001101

0D

01010000

50

00001110

0E

00000100

04

MOV2R1,R2

00001111

0F

10100110

A6

JMPL1

00010000

10

10110000

B0

00010001

11

00000100

04

L2

NEGR2

00010010

12

11000010

C2

OUTR2

00010011

13

11011000

D8

CISC模型机的单元电路

3。

1ALU单元

S1

S0

功能

0

0

AC—DR,锁存FS

0

1

AC锁存FS

1

0

自加1

1

1

求补

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);

SF:

OUTSTD_LOGIC

);

ENDALU;

ARCHITECTUREAOFALUIS

SIGNALAA,BB,TEMP:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

PROCESS(S1,S0)

BEGIN

IF(S1=’0’ANDS0=’0’)THEN

TEMP<=A—B;

SF〈=TEMP(7);

BCDOUT<=TEMP(7DOWNTO0);

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

TEMP〈=A-0;

SF〈=TEMP(7);

BCDOUT<=TEMP(7DOWNTO0);

ELSIF(S1=’1’ANDS0='0’)THEN

TEMP<=A+1;

BCDOUT〈=TEMP(7DOWNTO0);

ELSIF(S1='1'ANDS0='1')THEN

TEMP〈=0—A;

BCDOUT<=TEMP(7DOWNTO0);

ENDIF;

ENDPROCESS;

ENDA;

3.2寄存器单元

LDFR上升沿有效。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYLS74IS

PORT(

LDFR:

INSTD_LOGIC;

SF:

INSTD_LOGIC;

FS:

OUTSTD_LOGIC

);

ENDLS74;

ARCHITECTUREAOFLS74IS

BEGIN

PROCESS(LDFR)

BEGIN

IF(LDFR’EVENTANDLDFR=’1')THEN

FS〈=SF;

ENDIF;

ENDPROCESS;

ENDA;

而暂存寄存器与通用寄存器则是使用LS273

通用寄存器功能表

RO_1

R1_B

R2_B

ALU_B

功能

1

1

1

0

输出ALU

0

1

1

1

输出R0

1

0

1

1

输出R1

1

1

0

1

输出R2

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;

3.31:

2分配器单元

输入

输出

WR

LED_B

X[7。

.0]

W1[7.。

0]

W2[7..0]

0

0

X

X[7。

0]

其他值

X

X[7。

.0]

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYFEN2IS

PORT(

X:

INSTD_LOGIC_VECTOR(7DOWNTO0);

WR,LED_B:

INSTD_LOGIC;

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;

3。

43选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;

3。

54选1数据选择器单元

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYMUX4IS

PORT(

C,D,E,F:

INSTD_LOGIC;

X1,X2,X3,X4:

INSTD_LOGIC_VECTOR(7DOWNTO0);

W:

outSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDMUX4;

ARCHITECTUREAOFMUX4IS

SIGNALSEL:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

SEL〈=F&E&D&C;

PROCESS(SEL)

BEGIN

IF(SEL="1110")THEN—-R0_out

W<=X1;

ELSIF(SEL="1101")THEN——R1_out

W<=X2;

ELSIF(SEL=”1011”)THEN——R2-out

W〈=X3;

ELSIF(SEL="0111")THEN—-R3_out

W〈=X4;

ELSE

null;

ENDIF;

ENDPROCESS;

ENDA;

3。

6程序计数器单元

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+1

ENDIF;

ENDIF;

ENDPROCESS;

O<=QOUT;

ENDA;

3。

7地址寄存器单元

同寄存器单元

3。

8主存储器单元

即为ROM。

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<=”00110000”WHENADDR=”00000000”ANDCS='0'ELSE

"11111011"WHENADDR=”00000001”ANDCS='0’ELSE

”00110010"WHENADDR="00000010”ANDCS='0'ELSE

"10000001”WHENADDR=”00000011”ANDCS='0'ELSE

”01000000”WHENADDR=”00000100"ANDCS=’0'ELSE

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

”00010010”WHENADDR="00000110"ANDCS='0’ELSE

”01100000"WHENADDR=”00000111”ANDCS=’0'ELSE

”01110001"WHENADDR="00001000"ANDCS='0’ELSE

"01000001”WHENADDR=”00001001"ANDCS='0'ELSE

”01010000"WHENADDR=”00001010”ANDCS='0’ELSE

”00000100"WHENADDR="00001011"ANDCS=’0’ELSE

”10011001"WHENADDR=”00001100"ANDCS=’0’ELSE

”01010000"WHENADDR=”00001101”ANDCS='0'ELSE

”00000100”WHENADDR="00001110"ANDCS='0’ELSE

”10100110"WHENADDR=”00001111”ANDCS=’0’ELSE

”10110000"WHENADDR="00010000"ANDCS=’0’ELSE

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

"11000010"WHENADDR=”00010010"ANDCS='0’ELSE

"11011000"WHENADDR="00010011”ANDCS=’0’ELSE

”00000000";

ENDA;

3。

9指令寄存器单元

3。

10时序产生器单元

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;

3。

11操作控制器单元

地址转移逻辑电路ADDR

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164。

ALL;

ENTITYADDRIS

PORT(

I7,I6,I5,I4:

INSTD_LOGIC;

FS,T4,P1,P2:

INSTD_LOGIC;

SE6,SE5,SE4,SE3,SE2,SE1:

OUTSTD_LOGIC

);

ENDADDR;

ARCHITECTUREAOFADDRIS

BEGIN

SE6〈='1';

SE5<=NOT(FSANDP2ANDT4);

SE4〈=NOT(I7ANDP1ANDT4);

SE3<=NOT(I6ANDP1ANDT4);

SE2〈=NOT(I5ANDP1ANDT4);

SE1〈=NOT(I4ANDP1ANDT4);

ENDA;

微地址寄存器

LIBRARYIEEE;

USEIEEE。

STD_LOGIC_1164.ALL;

ENTITYMMMIS

PORT(

SE:

INSTD_LOGIC;

T2:

INSTD_LOGIC;

D:

INSTD_LOGIC;

CLR:

INSTD_LOGIC;

UA:

OUTSTD_LOGIC

);

ENDMMM;

ARCHITECTUREAOFMMMIS

BEGIN

PROCESS(CLR,SE,T2)

BEGIN

IF(CLR=’0’)THEN

UA<='0';

ELSIF(SE='0')THEN

UA<='1';

ELSIF(T2'EVENTANDT2=’1')THEN

UA<=

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

当前位置:首页 > 教学研究 > 教学反思汇报

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

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