【www.arisingsemi.com--热门资讯】

i的平方
计算机组成原理课程设计说明书
题    目: 设计求负数平方和的CISC模型计算机                    
院 (系):  计算机科学与工程学院 
专    业:  网络工程     
学生姓名    黄武平           
学    号:  1000380114   
指导教师:    陈智勇             

1、课程设计的题目和内容:设计一台嵌入式CISC模型计算机(采用定长CPU周期、联合控制方式),并运行能完成一定功能的机器语言程序进行验证。
要求连续输入5个有符号整数(用8位二进制补码表示,十六进制数输入)求所有负数的平方和并输出显示。
说明:①5个有符号数从外部输入;
②一定要使用符号标志位(比如说SF),并且要使用负的时候转移(比如            说JS)或不为负的时候转移(比如说JNS)指令。
课程设计完成的内容
1.完成系统的总体设计,画出模型机数据通路框图;
2.设计微程序控制器(CISC模型计算机)的逻辑结构框图;
3.设计机器指令格式和指令系统;
4.设计时序产生器电路;
5.设计所有机器指令的微程序流程图;
6.设计操作控制器单元;
在CISC模型计算机中,设计的内容包括微指令格式(建议采用全水平型微指令)、微指令代码表(根据微程序流程图和微指令格式来设计)和微程序控制器硬件电路(包括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器等。
具体电路根据微程序控制器的逻辑结构框图、微指令格式和微指令代码来设计)。
7.设计模型机的所有单元电路,并用VHDL语言(也可使用GDF文件----图形描述文件)对模型机中的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路或顶层文件;
8.由给出的题目和设计的指令系统编写相应的汇编语言源程序;
9.根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去;
10.使用EDA软件进行功能仿真,要保证其结果满足题目的要求;(其中要利用EDA软件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。)


2、系统的总体设计:
整个系统数据通路如下所示:
本模型机中的指令系统中共有9条基本指令,下表列出了每条指令的格式、汇编符号和指令功能。


1、 模型机的指令系统和所有指令的指令格式
1)I/O指令
输入指令(IN1)格式:
7  6  5  4
3  2
1  0
操作码
X X
Rd
输入指令(OUT1)格式:
7  6  5  4
3  2
1  0
操作码
Rs
X X
2)转移指令
条件转移指令(JB)和无条件跳转指令(JMP)格式:
7  6  5  4
3  2  1  0
操作码
X  X  X  X
地址
3)比较指令和相加指令
比较指令(CMP)和相加指令(ADD)的格式:
7  6  5  4
3  2
1  0
操作码
Rs
Rd
4)MOV指令
MOV指令格式:
7  6  5  4
3  2
1  0
操作码
X X
Rd
立即数
5)乘法指令
乘法指令MUL格式:
7  6  5  4
3  2
1  0
操作码
Rs
Rd
6)自减指令
自减1指令(DEC)格式:
7  6  5  4
3  2
1  0
操作码
X  X
Rd
助记符号
指令格式
功  能
IN1  Rd 
1 0 0 0
××
Rd
将数据存到Rd寄存器
OUT1 Rs
1 1 1 1
Rs
××
(Rs)→LED
ADD Rs,Rd
1 1 1 0
Rs
Rd
(Rs)+(Rd)→Rd
CMP Rs,Rd
1 0 1 1
Rs
Rd
(Rs)-(Rd),锁存CY和ZI
DEC Rd
1 0 0 1
××
Rd
(Rd)-1→Rd
MOV Rd,data
0 1 1 1
××
Rd
data
data→Rd
JMP addr
1 1 0 0
××××
addr
addr→PC
JB  addr
1 0 1 0
××××
addr
若小于,则addr→PC
MUL Rs Rd
1 1 0 1
Rs
Rd
(Rs)*(Rd)→Rd
其中,对Rs和Rd的规定:
Rs或Rd
选定的寄存器
0  0
R0
0  1
R1
1  0
R2
1  1
R3
模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:
7
6    5    4    3    2    1    0
符号位
尾数
T

1、T

2、T

3、T4与CLR、Q之间的关系图
(1)根据指令格式和指令系统设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;


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


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


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


(5)设计微程序控制器的顶层电路。
首先做第一步,根据指令格式和指令系统设计所有机器指令的微程序流程图.对于我设计的模型机,对应的指令流程图如下所示:





MOV      IN1      DEC      JB            CMP  JMP      MUL    ADD    OUT








00



00    00    00


00
00






00    00

由微指令格式和微程序流程图编写的微指令代码表如下所示,在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为:LOAD、LDPC、LDAR、LDIR、LDRi、RD_B、RS_B、S

1、S

0、ALU_B、LDAC、LDDR、WR、CS、SW_B、LED_B、LDFR ,P1,P2。
微地址      微命令字段              后继微地址
000000    01111000    000010
000010    01011010    000000
000111    01111000    010111
001000    01101000    000000
001001    01111000    011001
001010    01111001    100000
001011    01111000    010010
001100    01111000    010011
001101    01111000    010100
001110    01111000    010101
001111    00110000    000000
010010    11111000    100010
010011    01011000    000000
010100    11111000    100100
010101    11111000    100101
010111    01011000    000000
011001    01111000    000000
100000    01011000    000000
100010    01111100    000000
100100    01111000    000000
100101    01111000    000000
110000    01111000    000000
第三步:设计好了微指令代码表之后,我们可以开始设计地址转移逻辑电路
地址转移逻辑电路是根据微程序流程图3-2中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。

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


顶层电路图
各个器件生成后,开始用自己设计的指令编写汇编程序,程序如下所示:
MOV R1,0  寄存器R1用来存放最后的结果
MOV R2,0  寄存器R2放了一个立即数0,用来做是否负数判读以及做输入是                                否达到5次的比较标准
MOV R3,5  记录输入次数,从5开始递减
INPUT:
IN1 R0  寄存器R0用来存放输入的数据
DEC R3  每输入一次则R3递减1,递减到0说明刚好输入5个数据
CMP R0,R2  判断输入的数据是否是负数
JB L1  如果是负数,则转到标号L1执行
CMP R2,R3  如果不是负数,则判断输入是否够5次
JB INPUT  若不够5次则跳转到INPUT
JMP L2    若够5次就跳转到L2执行
L
1:
MUL R0,R0  负数球平方和
ADD R0,R1  求得的平方放入R1中
CMP R2,R3  比较是否够5次输入
JB INPUT  若不够则跳转到INPUT
L
2:
OUT1 R1    若输入够5次,则结束输入,输出最后结果
END
机器语言源程序
根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去:
助记符      地址(十六进制)    机器代码         
MOV R1,0        00                01110001       
01                00000000
MOV R2,0            02                01110010
03                00000000
MOV R3,5            04                01110011
05                00000101
L
1:IN1 R0        06                10000000
DEC R3            07                10010011
CMP R0,R2        08                10110010。

本文来源:http://www.arisingsemi.com/news/55377/