桂林电子科技大学系统实验报告.docx
- 文档编号:26306887
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:37
- 大小:329.99KB
桂林电子科技大学系统实验报告.docx
《桂林电子科技大学系统实验报告.docx》由会员分享,可在线阅读,更多相关《桂林电子科技大学系统实验报告.docx(37页珍藏版)》请在冰豆网上搜索。
桂林电子科技大学系统实验报告
计算机组成系统实验
课程设计报告
题目嵌入式CISC模型计算机设计(B类)
院(系):
研究生学院
专业:
计算机应用技术
学生姓名:
周洁
学号:
102031129
指导教师:
陈智勇
职称:
副教授
2011年05月22日
1.1实验题目1
1.1.1实验的题目1
1.2实验的具体步骤1
1.2.1CISC模型机数据通路框图1
1.2.2操作控制器的逻辑结构框图1
1.2.3机器指令格式和指令系统1
1.2.4时序产生器电路2
1.2.5微程序流程图2
1.2.6操作控制器单元(即微程序控制器)3
1.2.7嵌入式CISC模型计算机的顶层电路图5
1.2.8汇编语言源程序5
1.2.9机器语言源程序5
1.2.10机器语言源程序的功能仿真波形图及结果分析6
1.2.11故障现象和故障分析6
1.2.12心得体会6
1.2.13软件清单7
1.1实验题目
1.1.1实验的题目
设计一台嵌入式CISC模型计算机(采用定长CPU周期),并运行能完成一定功能的机器语言程序进行验证,程序功能为:
输入包含10个整数(8位二进制补码表示)的数组M(不采用RAM),输出最小负数。
(要求采用p3测试)
1.2实验的具体步骤
1.2.1CISC模型机数据通路框图
说明:
范例中设计时,外部时钟信号上边沿有效。
1.2.2操作控制器的逻辑结构框图
说明:
在T4内形成微指令的微地址,并访问控制存储器,在T2的上边沿到来时,将读出的微指令打入微指令寄存器,即图中的微命令寄存器和微地址寄存器。
1.2.3机器指令格式和指令系统
由此可见,本模型机中的指令系统中共有8条基本指令,下表列出了每条指令的格式、汇编符号和指令功能。
助记符号
指令格式
功能
IN1Rd
1000
××
Rd
将数据存到Rd寄存器
OUT1Rs
1111
Rs
××
(Rs)→LED
CMPRs,Rd
1010
Rs
Rd
(Rs)-(Rd),锁存CY和ZI,SF
INCRd
1101
××
Rd
(Rd)+1→Rd
MOVRd,data
1001
××
Rd
data
data→Rd
JMPaddr
1110
××××
addr
addr→PC
JBaddr
1011
××××
addr
若小于,则addr→PC
Mov1Rs,Rd
1100
Rs
Rd
(Rs)→Rd
说明:
①对Rs和Rd的规定:
Rs或Rd
选定的寄存器
00
R0
01
R1
10
R2
11
R3
②模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:
7
6543210
符号位
尾数
1.2.4时序产生器电路
T1、T2、T3、T4与CLR、Q之间的关系图如下图所示:
Q
CLR
T1
T2
T3
T4
一个CPU周期
图一
1.2.5微程序流程图
微程序控制器的设计过程为:
(1)根据指令格式和指令系统设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;
(2)设计微指令格式和微指令代码表;
(3)设计地址转移逻辑电路;
(4)设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制存储器;
(5)设计微程序控制器的顶层电路(由多个模块组成)。
图二CISC模型机中所有机器指令的微程序流程图
1.2.6操作控制器单元(即微程序控制器)
(1)设计微指令格式和微指令代码表
CISC模型机系统使用的微指令采用全水平型微指令,字长为25位,其中微命令字段为17位,P字段为2位,后继微地址为6位,其格式如下:
2423222120191817161514131211109876543210
LOADLDPCLDARLDIRLDRiRD_BRS_BS1S0ALU_BLDACLDDRWRCSSW_BLED_BLDFRP1P2后继微地址
由微指令格式和微程序流程图编写的微指令代码表如下所示,在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为:
LOAD、LDPC、LDAR、LDIR、LDRi、RD_B、RS_B、S1、S0、ALU_B、LDAC、LDDR、WR、CS、SW_B、LED_B、LDFR。
微地址
微命令字段
P1
P2
P3
后继微地址
000000
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
000010
000010
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
001000
000011
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
000000
000100
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
000101
000101
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
000000
001000
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
000000
001001
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
000011
001010
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
000100
001011
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
001111
001100
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
000000
001101
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
010010
001110
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
010011
001111
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
000000
010010
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
000000
010011
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
000000
001111
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
000000
100011
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
000000
(2)设计地址转移逻辑电路
地址转移逻辑电路是根据微程序流程图3-2中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。
由于微地址寄存器中的触发器异步置“1”端低电平有效,与µA4~µA0对应的异步置“1”控制信号SE5~SE1的逻辑表达式为:
(µA5的异步置“1”端SE6实际未使用)
SE6=FS·P(3)·T4
SE5=(FC+FZ)·P
(2)·T4
SE4=I7·P
(1)·T4
SE3=I6·P
(1)·T4
SE2=I5·P
(1)·T4
SE1=I4·P
(1)·T4
1.2.7嵌入式CISC模型计算机的顶层电路图
图三
1.2.8汇编语言源程序
由给出的题目和设计的指令系统编写相应的汇编语言源程序。
算法思想为:
采用R1寄存器存放从开关输入的任意一个整数,R3存放输入的最小负数,R0和R2用于控制循环,用一个循环程序实现如下:
MOV1R0,OOH将0存入寄存器R0
MOV1R1,OAH将10存入寄存器R0
MOV1R2,FFH将-1存入寄存器R0
L1:
IN1R3将输入的数存入R3
INCR0R0中的数自加1
CMPR0,R1比较R0和R1的大小
JBL2若R0小于R1,跳转到L2
OUTR2输出R2
L2:
CMPR2,R3比较R2和R3的大小
JBL3若R2小于R3,跳转到L3
JMPL1无条件跳转到L1
MOV2R3,R2将R3中的内容移到R2
JMPL1无条件跳转到L1
1.2.9机器语言源程序
根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去。
与1.2.8中汇编语言源程序对应的机器语言源程序如下:
助记符地址(十六进制)机器代码功能
MOV1R0,OOH001001000000H→R0
0100000000
MOV1R1,OAH02100100010AH→R1
0300001010
MOV1R2,FFH0410010010FFH→R2
0511111111
L1:
IN1R30610000011(SW)→R3
INCR00711010000(R0)+1→R0
CMPR0,R10810100001(R0)-(R1)
JBL20910110000若小于,L2→PC
0A00001100
OUTR20B11111000(R2)→LED
L2:
CMPR2,R30C10101011(R2)-(R3)
JBL30D10110000L3→PC
OE00010001
JMPL10F11100000L1→PC
1000000110
L3:
MOV2R3,R21111001110(R3)→(R3)
JMPL11211100000L1→PC
1300000110
1.2.10机器语言源程序的功能仿真波形图及结果分析
图四
结果分析:
输入的整数依次为81H,80H,34H,88H,99H,23H,12H,37H,65H,86H。
结果输出:
80H。
计算结果与事实相符,程序正确执行。
1.2.11故障现象和故障分析
1.在编译仿真过程中,发现指令寄存器IR中的汇编指令执行步骤发生错误。
由于顶层电路的设计并没有错误,所以分析应该是ROM里的指令跳转发生错误,后来发现:
在ROM器件的VHDL编程发生错误,跳转指令JMP的跳转地址错误,导致了程序执行步骤的错误。
2.仿真时,输入几个十六进制整数补码,发现输出的执行结果并不是最小负数。
后来根据观察仿真波形图中寄存器R3中存放的负数,可能是因为输入的整数时,并未经过数据总线传送并存放于寄存器R3中。
最后分析得出故障原因是:
每次输入的整数,需要对应IR中的输入指令81H,这样才能够成功输入整数,从而进行整数之间的比较大小。
1.2.12心得体会
通过这次实验,我基本上了解了CISC模型机各个部件的具体工作原理,也对计算机组成原理有了进一步的理解掌握。
在实验过程中,遇到了一些故障,主要还是对理论的认识不太深刻。
在不断的发现问题和解决问题的过程中,我感觉这次实验不仅让我学到了许多理论知识,同时也让我明白了:
不论做什么事,都要认认真真、踏踏实实的去做,终究会取得成功。
1.2.13软件清单
1ALU单元
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='0'ANDS0='0')THEN
AA<='0'&A;
BB<='0'&B;
TEMP<=AA+BB;
BCDOUT<=TEMP(7DOWNTO0);
CY<=TEMP(8);
IF(TEMP="100000000"ORTEMP="000000000")THEN
ZI<='1';
ELSE
ZI<='0';
ENDIF;
ELSIF(S1='0'ANDS0='1')THEN
BCDOUT<=A-B;
IF((A(7)='0'ANDB(7)='0')OR(A(7)='1'ANDB(7)='1'))THEN
IF(A
CY<='1';
ZI<='0';
SF<='1';
ELSIF(A=B)THEN
CY<='0';
ZI<='1';
SF<='0';
ELSE
CY<='0';
ZI<='0';
SF<='0';
ENDIF;
ELSIF((A(7)='0')AND(B(7)='1'))THEN
CY<='1';
ZI<='0';
SF<='0';
ELSIF((A(7)='1')AND(B(7)='0'))THEN
CY<='0';
ZI<='0';
SF<='1';
ENDIF;
ELSIF(S1='1'ANDS0='0')THEN
AA<='0'&A;
TEMP<=AA+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;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYLS74IS
PORT(
LDFR:
INSTD_LOGIC;
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;
43选1数据选择器
3选1数据选择器MUX3
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.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;
55选1数据选择器
5选1数据选择器MUX5
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYMUX5IS
PORT(
C,D,E,F,G:
INSTD_LOGIC;
X1,X2,X3,X4,X5:
INSTD_LOGIC_VECTOR(7DOWNTO0);
W:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDMUX5;
ARCHITECTUREAOFMUX5IS
SIGNALSEL:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
SEL<=F&E&D&C;
PROCESS(SEL)
BEGIN
IF(SEL="1110")THEN
W<=X1;
ELSIF(SEL="1101")THEN
W<=X2;
ELSIF(SEL="1011")THEN
W<=X3;
ELSIF(SEL="0111")THEN
W<=X4;
ELSIF(SEL="01111")THEN
W<=X5;
ELSE
NULL;
ENDIF;
ENDPROCESS;
ENDA;
6程序计数器单元
程序计数器单元PC
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;
7地址寄存器单元
地址寄存器单元
8主存储器单元
主存储器单元
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYROM16IS
PORT(
ADDR:
INSTD_LOGIC_VECTOR(7DOWNTO0);
CS:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDROM16;
ARCHITECTUREAOFROM16IS
BEGIN
DOUT<="10010000"WHENADDR="00000000"ANDCS='0'ELSE--MOV1R0,00H
"00000000"WHENADDR="00000001"ANDCS='0'ELSE
"10010001"WHENADDR="00000010"ANDCS='0'ELSE--MOV1R1,0AH
"00001010"WHENADDR="00000011"ANDCS='0'ELSE
"10010010"WHENADDR="00000100"ANDCS='0'ELSE--MOV1R2,FFH
"11111111"WHENADDR="00000101"ANDCS='0'ELSE
"10000011"WHENADDR="00000110"ANDCS='0'ELSE--IN1R3
"11010000"WHENADDR="00000111"ANDCS='0'ELSE--INCR0
"10100001"WHENADDR="00001000"ANDCS='0'ELSE--CMPR0,R1
"10110000"WHENADDR="00001001"ANDCS='0'EL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 桂林 电子 科技大学 系统 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)