计算机组成员里课设求5个数正数平方和文档格式.docx
- 文档编号:16175034
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:40
- 大小:258.70KB
计算机组成员里课设求5个数正数平方和文档格式.docx
《计算机组成员里课设求5个数正数平方和文档格式.docx》由会员分享,可在线阅读,更多相关《计算机组成员里课设求5个数正数平方和文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
5、心得体会-35-
参考资料-36-
绪论
电子计算机的传统分类方法,是按照体系结构、运算速度、系统规模和适用领域分为大型、中型、小型和微型。
这种计算机分类方法沿袭了约40多年。
近些年来,随着半导体、微电子和计算机等技术的快速发展及广泛应用,现代计算机面向应用出现了两大分支:
实现智能化控制的嵌入式计算机系统,以及进行高速、海量数值计算的通用计算机系统,并据此将计算机分为嵌入式计算机和通用计算机两大类。
二者的技术发展方向不同:
前者注重与对象系统密切相关的嵌入性能、控制能力及可靠性;
而后者注重运算速度的提升和存储容量的扩大。
嵌入式计算机是嵌入到对象体系(即宿主系统)中的专用计算机。
嵌入式计算机在功能和物理结构上都嵌入在系统中,不独立于系统运行,是系统的组成部分。
一个应用系统按需要可嵌入一台或多台计算机。
因此,成功的设计一台嵌入式CISC模型计算机是非常重要的。
1、需求分析
1.1设计要求
设计一台嵌入式CISC模型计算机,采用定长CPU周期、联合控制方式,并运行能完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下:
B类:
输入5个有符号整数(8位二进制补码表示),求所有正数的平方和并输出显示。
说明:
1)5个有符号数从外部输入;
2)一定要使用符号标志位(比如说SF),并且要使用为负的时候转移(比如JS)或不为负的时候转移(比如JNS)指令;
3)采用单数据总线结构的运算器。
1.2课程设计完成的内容
1.完成系统的总体设计,画出模型机数据通路框图;
2.设计微程序控制器(CISC模型计算机)的逻辑结构框图;
3.设计机器指令格式和指令系统;
4.设计时序产生器电路;
5.设计所有机器指令的微程序流程图;
6.设计操作控制器单元;
在CISC模型计算机中,设计的内容包括微指令格式(建议采用全水平型微指令)、微指令代码表(根据微程序流程图和微指令格式来设计)和微程序控制器硬件电路(包括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器等。
具体电路根据微程序控制器的逻辑结构框图、微指令格式和微指令代码来设计)。
7.设计模型机的所有单元电路,并用VHDL语言(也可使用GDF文件----图形描述文件)对模型机中的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路或顶层文件;
8.由给出的题目和设计的指令系统编写相应的汇编语言源程序;
9.根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去;
10.使用EDA软件进行功能仿真,要保证其结果满足题目的要求;
(其中要利用EDA软件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。
)
2、构图思想
2.1完成系统的总体设计
2.1.1CISC模型计算机数据通路框图
图2.2.1
2.1.2操作控制器的逻辑框图
图2.1.2微程序控制器组成框图
2.2模型机的指令系统和所有指令的格式
2.2.1汇编指令
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能,这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本课设采用13条共计9类机器指令:
MOV、IN、CMP、JB、IMUL、ADD、DEC、JMP、OUT
汇编指令如下
指令功能
MOVR1,0--R1置为0,存累加结果;
MOVR2,0--R2置为0,判输入数据正负性,计输入次数;
MOVR3,5--R3置为5,计输入次数;
L1:
INR0--外部输入数据存到R0;
CMPR0,R2—若为负数;
JBL2--跳到L2执行;
IMULR0.R0--若为正数,作平方运算存到R0;
ADDR0,R1—R0+R1结果存到R1;
L2:
DECR3--每输入一次,R3由5自减到0;
CMPR2,R3--判次数;
JBL1--不到5次,返回L1继续输入数据;
L3:
OUTR1--满5次,输出结果;
JMPL3--结束。
2.2.2指令系统
1)MOV指令
7654
3210
操作码
XXRd
数据
2)IN指令
7654
32
10
操作码
XX
Rd
3)CMP指令
Rs
4)JB指令
XXXX
地址
5)IMUL指令
6)ADD指令
7)DEC指令
8)JMP指令
9)OUT指令
32
10
10)
助记符号
指令格式
功能
1
MOVRd,data
1001XXRd
data→Rd
2
INRd
1000XXRd
将数据存到Rd寄存器里
3
DECRd
1101RsXX
(Rd)-1→Rd
4
CMPRs,Rd
1010RsRd
(Rs)-(Rd),锁存SF和ZI
5
JBaddr
1011XXXX
若小于,则addr→PC
addr
6
JMPaddr
1110XXXX
addr→PC
7
OUTRs
1111RsXX
(Rs)→LED
8
IMULRs,Rd
0001RsRd
(Rs)*(Rd)→Rd
9
ADDRs,Rd
1100RsRd
(Rs)+(Rd)→Rd
表2.2.2
11)其中对Rs和Rd的规定
Rs或Rd
选定寄存器
00
R0
01
R1
R2
11
R3
12)模型计算机规定数据的表示采用定点整数补码表示,单字长8位,其格式如下:
6543210
符号位
尾数
2.2.3汇编指令转换机器代码
根据设计要求,编出如下机器代码
机器语言源程序:
助记符
地址(十六进制)
机器代码
MOVR1,0
00
10010001
01
00000000
MOVR2,0
02
10010010
03
MOVR3,5
04
10010011
05
00000101
L1:
INR0
06
10000000
CMPR0,R2
07
10100010
JBL2
08
10110000
09
00001100
IMULR0,R0
0A
00010000
ADDR0,R1
0B
11000001
L2:
DECR3
0C
11010011
CMPR2,R3
0D
10101011
JBL1
0E
0F
00000110
L3:
OUTR1
10
11110100
JMPL3
11
11100000
12
表2.2.3
2.3指令
2.3.1微程序流程图
所设计的CISC模型机的所有机器指令的微程序流程图如图3所示。
图中每个方框为一个CPU周期(包含T1~T4共4个节拍脉冲周期),对应于一条微指令。
框中上面的十六进制数表示的是当前微指令在控制存储器中微地址,框中下面的十六进制数表示的是当前微指令的后继微地址(或称直接地址)。
在编写微指令时,图中的菱形框从属于它上面的方框。
图2.3.1微程序流程图
注:
以结尾的后继微地址都是00
(1)根据指令格式和指令系统的设计完成所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;
(2)设计微指令格式和代码表
(3)设计地址转移逻辑电路
(4)设计微程序控制的其他逻辑电路,包括微地址寄存器、为命令寄存器、控制存取器
2.3.2微指令设置
指令流程图设计完成后,开始设计微指令的格式和微指令的代码表按照要求,CISC模型计算机的系统使用采用双水平型微指令,字长为25位,其中微命令字段为17位,p字段为2位,后继微地址6位,由微指令格式和微程序流程图编写的微指令代码表如下所示,在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为:
LOAD、LDPC、LDAR、LDIR、LDRi、RD_B、RS_B、S1、S0、ALU_B、LDAC、LDDR、WR、CS、SW_B、LED_B、LDFR,P1、P2
30~25
23
22
21
20
19
18
17
16
15
14
13
5~0
微地址
LOAD
LDPC
LDAR
LDIR
LDRI
RD_B
RS_B
S1
S0
ALU_B
LDAC
LDDR
WR
CS
SW_B
LED_B
LDFR
P1
P2
后继微地址
000000
1110011001001111000
000010
000001
1000010001101111000
010101
1001011001001011010
000011
1000111001001011000
000100
1000001001011111000
000101
1000011011001111100
000110
000111
1000111000001111000
001000
1000111001001101000
001001
001010
001011
1110011001001111001
100000
001100
001101
1000001001101111000
010010
001110
010011
001111
1000010001000110000
1000111100001111000
010*********
010110
1000111110001111000
110000
1000011001001111000
表3.2.2
2.3.3设计地址转移逻辑电路
设计好了微指令代码表之后,我们可以开始设计地址转移逻辑电路
地址转移逻辑电路是根据微程序流程图中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。
由于微地址寄存器中的触发器异步置“1”端低电平有效,与µ
A4~µ
A0对应的异步置“1”控制信号SE5~SE1的逻辑表达式为:
(µ
A5的异步置“1”端SE6实际未使用)
SE5=(FC+FZ)·
P
(2)·
T4
SE4=I7·
P
(1)·
SE3=I6·
SE2=I5·
SE1=I4·
需要注意的是:
地址转移逻辑电路中异步置“1”信号SE5~SE1表达式的确定与P字段测试时转移微地址的确定密切相关.
2.3.4设计时序产生器电路
T1、T2、T3、T4与CLR、Q之间的关系图
图3.2.4
3、器件的生成
3.1ADDR地址寄存器
图3.1-1
地址转移逻辑电路的实现代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYADDRIS
PORT(
I7,I6,I5,I4:
INSTD_LOGIC;
FZ,FC,T4,P1,P2:
SE6,SE5,SE4,SE3,SE2,SE1:
OUTSTD_LOGIC
);
ENDADDR;
ARCHITECTUREAOFADDRIS
BEGIN
SE6<
='
1'
;
SE5<
=NOT((NOTFCORFZ)ANDP2ANDT4);
SE4<
=NOT(I7ANDP1ANDT4);
SE3<
=NOT(I6ANDP1ANDT4);
SE2<
=NOT(I5ANDP1ANDT4);
SE1<
=NOT(I4ANDP1ANDT4);
ENDA;
编译通过之后生成图形符号,地址转移逻辑电路就完成了。
接下来继续生成微控制器里面的其他器件和电路:
我们先看看微地址寄存器aa的设计,它的内部电路图如下所示:
图3.1-2AA电路图生成
3.2MMM
图3.2
可以看得出,AA中带有异步清“0”和异步置“1”功能的触发器MMM,它的实现代码如下:
ENTITYMMMIS
SE:
T2:
D:
CLR:
UA:
OUTSTD_LOGIC
ENDMMM;
ARCHITECTUREAOFMMMIS
PROCESS(CLR,SE,T2)
BEGIN
IF(CLR='
0'
)THEN
UA<
ELSIF(SE='
)THEN
ELSIF(T2'
EVENTANDT2='
=D;
ENDIF;
ENDPROCESS;
编译成功后生成MMM元器件。
3.3CONTROM控制寄存器
图3.3
接下来该做的是控制存储器CONTROM,实现它的VHDL源程序如下所示:
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCONTROMIS
PORT(ADDR:
INSTD_LOGIC_VECTOR(5DOWNTO0);
OUTSTD_LOGIC_VECTOR(5DOWNTO0);
OUTSTD_LOGIC_VECTOR(18DOWNTO0)
);
ENDCONTROM;
ARCHITECTUREAOFCONTROMIS
SIGNALDATAOUT:
STD_LOGIC_VECTOR(24DOWNTO0);
BEGIN
PROCESS(ADDR)
CASEADDRIS
WHEN"
000000"
=>
DATAOUT<
="
1110011001001111000000010"
000001"
1000010001101111000010101"
000010"
1001011001001011010000000"
000011"
1000111001001011000000000"
000100"
1000001001011111000000101"
000101"
1000011011001111100000000"
000110"
1000001001011111000000111"
000111"
1000111000001111000000000"
001000"
1000111001001101000000000"
001001"
1110011001001111000000011"
001010"
1000010001101111000000100"
001011"
1110011001001111001100000"
001100"
1000010001101111000000110"
001101"
1000001001101111000010010"
001110"
1110011001001111000010011"
001111"
1000010001000110000000000"
010010"
1000111100001111000000000"
010011"
0100011001001011000000000"
WHEN"
010101"
1000001001011111000010110"
010110"
1000111110001111000000000"
100000"
110000"
1000011001001111000000000"
WHENOTHERS=>
ENDCASE;
UA(5DOWNTO0)<
=DATAOUT(5DOWNTO0);
D(18DOWNTO0)<
=DATAOUT(24DOWNTO6);
3.4MCOMMAND微命令寄存器
图3.4
程序中的25位控制信号就是按照上面确定的微指令代码表确定的。
编译通过后生成了控制存储器,接下来该生成微命令寄存器MCOMMAND,同样也是通过VHDL来描述即可,它的实现代码如下所示:
ENTITYMCOMMANDIS
T2,T3,T4,I3,I2,I1,I0:
O:
INSTD_LOGIC_VECTOR(18DOWNTO0);
P1,P2,LOAD,LDPC,LDAR,LDIR,LDR0,LDR1,LDR2,LDR3,R0_B,R1_B,R2_B,R3_B,S1,S0,ALU_B,LDAC,LDDR,WR,CS,SW_B,LED_B,LDFR:
ENDMCOMMAND;
ARCHITECTUREAOFMCOMMANDIS
STD_LOGIC_VECTOR(18DOWNTO0);
PROCESS(T2)
IF(T2'
)THEN
DATAOUT(18DOWNTO0)<
=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 机组 成员 里课设求 个数 正数 平方和
![提示](https://static.bdocx.com/images/bang_tan.gif)