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

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

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

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

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

计算机组成原理课程设计说明书

计算机组成原理课程设计说明书

 

计算机组成原理课程设计说明书

 

题目:

设计求负数平方和的CISC模型计算机

院(系):

计算机科学与工程学院

专业:

计算机科学与技术

学生姓名:

学号:

指导教师:

陈智勇

 

1课程设计的题目与内容

1.1题目

设计一台嵌入式CISC模型计算机(采用定长CPU周期、联合控制方式),并运行能完成一定功能的机器语言程序进行验证,机器语言源程序功能如下:

连续输入5个有符号整数(用8位二进制补码表示,十六进制数输入),求所有负数的平方和并输出显示。

说明:

15个有符号数从外部输入;

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

3采用三数据总线结构的运算器,采用RAM,先将输入数据依次存放在RAM的某一连续的存储区域内,再依次读出判断是否为负数,若为负数再求其平方和。

1.2内容

(1)完成系统的总体设计,画出模型机数据通路框图;

(2)设计微程序控制器(CISC模型计算机)的逻辑结构框图;

(3)设计机器指令格式和指令系统;

(4)设计时序产生器电路;

(5)设计所有机器指令的微程序流程图;

(6)设计操作控制器单元;

在CISC模型计算机中,设计的内容包括微指令格式(建议采用全水平型微指令)、微指令代码表(根据微程序流程图和微指令格式来设计)和微程序控制器硬件电路(包括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器等。

具体电路根据微程序控制器的逻辑结构框图、微指令格式和微指令代码来设计)。

(7)设计模型机的所有单元电路,并用VHDL语言(也可使用GDF文件----图形描述文件)对模型机中的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路或顶层文件;

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

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

(10)使用EDA软件进行功能仿真,要保证其结果满足题目的要求;(其中要利用EDA软件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。

(11)器件编程,并在EDA实验平台上进行操作演示。

2系统总体设计

2.1CISC模型机数据通路框图的设计

2.2操作控制器的逻辑框图的设计

2.3模型机的指令系统和所有指令的指令格式的设计

1)I/O指令

输入指令(IN1)格式:

15141312

1110

98

76543210

操作码

××

Rd

××××××

输出指令(OUT1)格式:

15141312

1110

98

76543210

操作码

Rs

××

××××××

2)转移指令

非零条件转移指令(JNZ)格式:

15141312

1110

98

76543210

操作码

××

××

地址addr

非负条件转移指令(JNS)格式:

15141312

1110

98

76543210

操作码

××

××

地址addr

无条件转移指令(JMP)格式:

15141312

1110

98

76543210

操作码

××

××

地址addr

3)MOV指令

MOV指令格式:

15141312

1110

98

76543210

操作码

××

Rd

立即数im

4)相加指令

相加指令(ADD)格式:

15141312

1110

98

76543210

操作码

Rs

Rd

××××××

5)有符号乘法指令

乘法指令(IMUL)格式:

15141312

1110

98

76543210

操作码

××

Rd

××××××

6)加1指令

加1指令(INC)格式:

15141312

1110

98

76543210

操作码

××

Rd

××××××

7)减1指令

减1指令(DEC)格式:

15141312

1110

98

76543210

操作码

××

Rd

××××××

8)相与指令

相与指令(AND)格式:

15141312

1110

98

76543210

操作码

××

Rd

××××××

9)字符串存储指令

乘法指令(STO)格式:

15141312

1110

98

76543210

操作码

Rs

××

地址addr

10)字符串存储指令

乘法指令(STOI)格式:

15141312

1110

98

76543210

操作码

Rs

Rd

××××××

11)取数指令

取数指令(LAD)格式:

15141312

1110

98

76543210

操作码

Rs

Rd

××××××

指令系统表:

指令助记符

指令格式

功能

15--12

1110

98

7-----------0

IN1Rd

0001

××

Rd

××××××××

输入设备→Rd

MOVRd,im

0010

××

Rd

im

立即数→Rd

LAD(Rs),Rd

0011

Rs

Rd

××××××××

((Rs))→Rd

ADDRs,Rd

0100

Rs

Rd

××××××××

(Rs)+(Rd)→Rd

INCRd

0101

××

Rd

××××××××

(Rd)+1→Rd

DECRd

0110

××

Rd

××××××××

(Rd)-1→Rd

JNZaddr

0111

××

××

addr

若不等,则addr→PC

STORs,addr

1000

Rs

××

addr

(Rs)→addr

JMPaddr

1001

××

××

addr

addr→PC

OUT1Rs

1010

Rs

××

××××××××

(Rs)→输出设备

STOIRs,(Rd)

1011

Rs

Rd

××××××××

(Rs)→(Rd)

IMULRd,Rd

1100

××

Rd

××××××××

(Rd)×(Rd)→Rd

ANDRd,Rd

1101

××

Rd

××××××××

(Rd)∧(Rd)→Rd

JNSaddr

1110

××

××

addr

若不为正,则addr→PC

其中,对源寄存器Rs与目的寄存器Rd的规定如下:

Rs或Rd

选定的寄存器

00

R0

01

R1

10

R2

11

R3

 

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

7

6543210

符号位

尾数

2.4时序产生电路的设计

T1、T2、T3、T4与CLR、Q之间的关系图如图1所示。

 

图1

2.5机器指令的微程序流程图以及微指令的设计

要设计微程序控制器,首先要设计微程序流程图以及微指令,其次再设计地址转移逻辑电路以及其它逻辑单元电路,设计步骤如下:

1.根据指令格式和指令系统设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;

2.设计微指令格式和微指令代码表;

3.设计地址转移逻辑电路;

4.设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制存储器。

其中,微程序流程图设计如下图所示:

微指令流程图设计完成后,开始设计微指令格式和微指令代码表,按照要求,CISC模型机系统使用的微指令采用全水平型微指令,字长为28位,其中微命令字段为19位,P字段为3位,后继微地址为6位,其格式如下:

LOADLDPCLDARLDIRLDRiLDPSWRS_BS2S1S0ALU_BSW_BLED_BRD_DCS_DRAM_BCS_IADDR_BCS_IP1P2P3u5-uO

按照以上格式,依据自身设计的微指令流程图,可以得到以下的微指令代码表:

2.6地址转移逻辑电路的设计

地址转移逻辑电路是根据微程序流程图中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。

由于微地址寄存器中的触发器异步置“1”端低电平有效,与µA5~µA0对应的异步置“1”控制信号SE6~SE1的逻辑表达式为:

SE6=ZF·P(3)·T4

SE5=ZF·P

(2)·T4

SE4=I15·P

(1)·T4

SE3=I14·P

(1)·T4

SE2=I13·P

(1)·T4

SE1=I12·P

(1)·T4

2.7软件清单

●ALU设计:

其中S2,S1,S0表示的是算术逻辑运算单元ALU,其功能表为:

S2

S1

S0

功能

0

0

0

X+Y

0

0

1

X-Y

0

1

0

X+1

0

1

1

X-1

1

0

0

Y∧Y

1

0

1

X∨Y

1

1

0

Y

1

1

1

Y×Y

VHDL源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_SIGNED.all;

ENTITYALUIS

PORT(

X:

INSTD_LOGIC_VECTOR(7DOWNTO0);

Y:

INSTD_LOGIC_VECTOR(7DOWNTO0);

S2,S1,S0:

INSTD_LOGIC;

ALUOUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

SF,ZF:

OUTSTD_LOGIC

);

ENDALU;

ARCHITECTUREAOFALUIS

SIGNALAA,BB,TEMP:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

PROCESS

BEGIN

IF(S2='0'ANDS1='0'ANDS0='0')THEN--ADD

AA<=X;

BB<=Y;

TEMP<=AA+BB;

ALUOUT<=TEMP(7DOWNTO0);

SF<=TEMP(7);

IF(TEMP="10000000"ORTEMP="00000000")THEN

ZF<='1';

ELSE

ZF<='0';

ENDIF;

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

ALUOUT<=X-Y;

IF(X

SF<='1';

ZF<='0';

ELSIF(X=Y)THEN

SF<='0';

ZF<='1';

ELSE

SF<='0';

ZF<='0';

ENDIF;

ELSIF(S2='0'ANDS1='1'ANDS0='0')THEN--INC

AA<=Y;

TEMP<=AA+1;

ALUOUT<=TEMP(7DOWNTO0);

SF<=TEMP(7);

IF(TEMP="10000000"ORTEMP="00000000")THEN

ZF<='1';

ELSE

ZF<='0';

ENDIF;

ELSIF(S2='0'ANDS1='1'ANDS0='1')THEN--DEC

AA<=Y;

TEMP<=AA-1;

ALUOUT<=TEMP(7DOWNTO0);

SF<=TEMP(7);

IF(TEMP="10000000"ORTEMP="00000000")THEN

ZF<='1';

ELSE

ZF<='0';

ENDIF;

ELSIF(S2='1'ANDS1='0'ANDS0='0')THEN--AND

TEMP<=YANDY;

ALUOUT<=TEMP;

SF<=TEMP(7);

IF(TEMP="10000000"ORTEMP="00000000")THEN

ZF<='1';

ELSE

ZF<='0';

ENDIF;

ELSIF(S2='1'ANDS1='0'ANDS0='1')THEN--OR

TEMP<=XORY;

ALUOUT<=TEMP;

SF<=TEMP(7);

IF(TEMP="10000000"ORTEMP="00000000")THEN

ZF<='1';

ELSE

ZF<='0';

ENDIF;

ELSIF(S2='1'ANDS1='1'ANDS0='0')THEN--Rd->BUS

ALUOUT<=Y;

SF<=Y(7);

ELSIF(S2='1'ANDS1='1'ANDS0='1')THEN--IMUL

TEMP<=Y*Y;

SF<=TEMP(7);

ALUOUT<=TEMP;

IF(TEMP="10000000"ORTEMP="00000000")THEN

ZF<='1';

ELSE

ZF<='0';

ENDIF;

ELSE

ALUOUT<="00000000";

ZF<='0';

ENDIF;

ENDPROCESS;

ENDA;

算术逻辑单元ALU电路图如图2所示:

图2

●4选1数据选择器MUX4

VHDL源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYMUX4_1IS

PORT(

R0,R1,R2,R3:

INSTD_LOGIC_VECTOR(7DOWNTO0);

X:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

I11,I10:

INSTD_LOGIC

);

ENDMUX4_1;

ARCHITECTUREAOFMUX4_1IS

BEGIN

PROCESS

BEGIN

IF(I11='0'ANDI10='0')THEN

X<=R0;

ELSIF(I11='0'ANDI10='1')THEN

X<=R1;

ELSIF(I11='1'ANDI10='0')THEN

X<=R2;

ELSE

X<=R3;

ENDIF;

ENDPROCESS;

ENDA;

4选1选择器MUX4电路图如图3所示:

图3

●5选1数据选择器MUX5

VHDL源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYMUX5IS

PORT(

SW_B,RS_B,RAM_B,ADDR_B,ALU_B:

INSTD_LOGIC;

SW,RS,RAM,ADDR,ALU:

INSTD_LOGIC_VECTOR(7DOWNTO0);

W:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDMUX5;

ARCHITECTUREAOFMUX5IS

SIGNALSEL:

STD_LOGIC_VECTOR(4DOWNTO0);

BEGIN

SEL<=SW_B&RS_B&RAM_B&ADDR_B&ALU_B;

PROCESS(SEL)

BEGIN

IF(SEL="01111")THEN

W<=SW;

ELSIF(SEL="10111")THEN

W<=RS;

ELSIF(SEL="11011")THEN

W<=RAM;

ELSIF(SEL="11101")THEN

W<=ADDR;

ELSIF(SEL="11110")THEN

W<=ALU;

ELSE

NULL;

ENDIF;

ENDPROCESS;

ENDA;

5选1数据选择器电路图如图4所示:

图4

●状态字器存器PSW

VHDL源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYPSWIS

PORT(

LDPSW:

INSTD_LOGIC;

ZI,SI:

INSTD_LOGIC;

FZ,FS:

OUTSTD_LOGIC

);

ENDPSW;

ARCHITECTUREAOFPSWIS

BEGIN

PROCESS(LDPSW)

BEGIN

IF(LDPSW'EVENTANDLDPSW='1')THEN

FZ<=ZI;

FS<=SI;

ENDIF;

ENDPROCESS;

ENDA;

状态字寄存器PSW电路图如图5所示:

图5

●微程序控制器CROM

CROM的电路图如图6所示:

图6

其内部电路图如图7所示:

图7

其组成的部件有以下:

Ø地址转移逻辑ADDR

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYADDRIS

PORT(

I15,I14,I13,I12:

INSTD_LOGIC;

FZ,FS,T4,P1,P2,P3:

INSTD_LOGIC;

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

OUTSTD_LOGIC

);

ENDADDR;

ARCHITECTUREAOFADDRIS

BEGIN

SE6<=NOT((NOTFS)ANDP3ANDT4);

SE5<=NOT((NOTFZ)ANDP2ANDT4);

SE4<=NOT(I15ANDP1ANDT4);

SE3<=NOT(I14ANDP1ANDT4);

SE2<=NOT(I13ANDP1ANDT4);

SE1<=NOT(I12ANDP1ANDT4);

ENDA;

地址转移逻辑ADDR电路图如图8所示:

图8

Ø微命令寄存器MCOMMAND

VHDL源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_SIGNED.ALL;

ENTITYMCOMMANDIS

PORT(

T2,T3,T4:

INSTD_LOGIC;

D:

INSTD_LOGIC_VECTOR(20DOWNTO0);

LOAD,LDPC,LDAR,LDIR,LDRI,LDPSW,RS_B,S2,S1,S0:

OUTSTD_LOGIC;

ALU_B,SW_B,LED_B,RD_D,CS_D,RAM_B,CS_I,ADDR_B,P1,P2,P3:

OUTSTD_LOGIC

);

ENDMCOMMAND;

ARCHITECTUREAOFMCOMMANDIS

SIGNALDATAOUT:

STD_LOGIC_VECTOR(20DOWNTO0);

BEGIN

PROCESS(T2)

BEGIN

IF(T2'EVENTANDT2='1')THEN

DATAOUT(20DOWNTO0)<=D(20DOWNTO0);

ENDIF;

LOAD<=DATAOUT(20);

LDPC<=DATAOUT(19)ANDT4;

LDAR<=DATAOUT(18)ANDT3;

LDIR<=DATAOUT(17)ANDT3;

LDRI<=DATAOUT(16)ANDT4;

LDPSW<=DATAOUT(15)ANDT4;

RS_B<=DATAOUT(14);

S2<=DATAOUT(13);

S1<=DATAOUT(12);

S0<=DATAOUT(11);

ALU_B<=DATAOUT(10);

SW_B<=DATAOUT(9);

LED_B<=DATAOUT(8);

RD_D<=NOT(NOTDATAOUT(7)AND(T2ORT3));

CS_D<=NOT(NOTDATAOUT(6)ANDT3);

RAM_B<=DATAOUT(5);

CS_I<=DATAOUT(4);

ADDR_B<=DATAOUT(3);

P1<=DATAOUT

(2);

P2<=DATAOUT

(1);

P3<=DATAOUT(0);

ENDPROCESS;

ENDA;

微命令寄存器MCOMMAND电路图如图9所示:

图9

Ø微地址寄存器aa

VHDL源程序

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<=D;

ENDIF;

ENDPROCESS;

ENDA;

微程序寄存器内部电路图如图10所示:

图10

微地址寄存器aa合成图如图11所示:

图11

Ø微地址转换器F1

VHDL源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYF1

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

当前位置:首页 > 工程科技 > 能源化工

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

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