桂电计算机组成原理课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机组成原理课程设计说明书题目:设计求负数平方和的CISC模型计算机院(系):计算机科学与工程学院专业:信息安全学生姓名:罗丁华学号:1000360121指导教师:陈智勇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、系统的总体设计:整个系统数据通路如下所示:控制器的逻辑结构框图:……指令寄存器IR操作码微地址寄存器地址译码控制存储器地址转移逻辑状态条件微命令寄存器P字段操作控制字段微命令信号本模型机中的指令系统中共有9条基本指令,下表列出了每条指令的格式、汇编符号和指令功能。1、模型机的指令系统和所有指令的指令格式本模型机中的指令系统中共有9条基本指令,下表列出了每条指令的格式、汇编符号和指令功能。助记符号指令格式功能INRd0111××Rd将数据存到Rd寄存器MOVRd,data1000××Rddatadata→RdTESTRd1001××Rd测试最高位,锁存FSJNSaddr1010××××addr若不为负,addr→PCMULRs,Rd1011RsRd(Rs)*(Rd)→RdADDRs,Rd1100RsRd(Rs)+(Rd)→RdDECRd1101××Rd(Rd)-1→Rd,锁存FSJMPaddr1110××××addraddr→PCOUTRs1111Rs××(Rs)→LED说明:对Rs和Rd的规定:Rs或Rd选定的寄存器00R001R110R2模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:76543210符号位尾数指令格式:(1)I/O指令(单字节)IN输入指令:76543210操作码××RdOUT输出指令:76543210操作码Rs××(2)MOV指令(双字节)76543210操作码××Rddata(3)MUL指令(单字节)乘法指令:76543210操作码RsRd“Rs”为源寄存器,存放的是源操作数“Rd”为目的寄存器,存放的是目的操作数所在的地址(4)ADD(单字节)求和指令:76543210操作码RsRd“Rs”为源寄存器,存放的是源操作数“Rd”为目的寄存器,存放的是目的操作数所在的地址(5)DEC(单字节)自减1指令:76543210操作码××Rd(6)TEST指令(单字节)76543210操作码××Rd(7)JNS、JMP条件转移指令(双字节)76543210操作码××××addrT1、T2、T3、T4与CLR、Q之间的关系图QCLRT1T2T3T4一个CPU周期现在,我们开始微程序控制器的设计,它包括以下几部分工作:(1)根据指令格式和指令系统设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;(2)设计微指令格式和微指令代码表;(3)设计地址转移逻辑电路;(4)设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制存储器;(5)设计微程序控制器的顶层电路。首先做第一步,根据指令格式和指令系统设计所有机器指令的微程序流程图.对于我设计的模型机,对应的指令流程图如下所示第二步,指令流程图设计完成后,开始设计微指令格式和微指令代码表,按照要求,CISC模型机系统使用的微指令采用全水平型微指令,字长为25位,其中微命令字段为17位,P字段为2位,后继微地址为6位,其格式如下:2423222120191817161514131211109876543210LOADLDPCLDARLDIRLDRiRD_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。微地址微命令P1P2后继微地址000000111001100100111100000001000001010010110010010110100000000000111000111001001011000000000000100100001110100111110000000000010110000010010111110000001100001101000111010001111000000000000111100011100100110100000000000100011100110010011110000000110010011000001001011111000000100001010111001100100111100110000000101110000100011011110000001010011001000010001101111000010010001101100000100110111100001010000111011100110010011110000101010011111000010001000110000000000010010100000100101111100001001101001110001111000011110000000000101001000111110001111100000000010101010001100100101100000000010000001000110010010110000000001100001000011001001111000000000第三步:设计好了微指令代码表之后,我们可以开始设计地址转移逻辑电路地址转移逻辑电路是根据微程序流程图3-2中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。由于微地址寄存器中的触发器异步置“1”端低电平有效,与µA4~µA0对应的异步置“1”控制信号SE5~SE1的逻辑表达式为:(µA5的异步置“1”端SE6实际未使用SE5=FS·P(2)·T4SE4=I7·P(1)·T4SE3=I6·P(1)·T4SE2=I5·P(1)·T4SE1=I4·P(1)·T4需要注意的是:地址转移逻辑电路中异步置“1”信号SE5~SE1表达式的确定与P字段测试时转移微地址的确定密切相关.地址转移逻辑电路的实现代码如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYADDRISPORT(I7,I6,I5,I4:INSTD_LOGIC;FS,T4,P1,P2:INSTD_LOGIC;SE6,SE5,SE4,SE3,SE2,SE1:OUTSTD_LOGIC);ENDADDR;ARCHITECTUREAOFADDRISBEGINSE6='1';SE5=NOT(FSANDP2ANDT4);SE4=NOT(I7ANDP1ANDT4);SE3=NOT(I6ANDP1ANDT4);SE2=NOT(I5ANDP1ANDT4);SE1=NOT(I4ANDP1ANDT4);ENDA;编译通过之后生成图形符号,我们的地址转移逻辑电路就完成了。接下来继续生成微控制器里面的其他器件和电路:我们先看看微地址寄存器aa的设计,它的内部电路图如下所示:可以看得出,AA中带有异步清“0”和异步置“1”功能的触发器MMM,它的实现代码如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMMMISPORT(SE:INSTD_LOGIC;T2:INSTD_LOGIC;D:INSTD_LOGIC;CLR:INSTD_LOGIC;UA:OUTSTD_LOGIC);ENDMMM;ARCHITECTUREAOFMMMISBEGINPROCESS(CLR,SE,T2)BEGINIF(CLR='0')THENUA='0';ELSIF(SE='0')THENUA='1';ELSIF(T2'EVENTANDT2='1')THENUA=D;ENDIF;ENDPROCESS;ENDA;编译成功后生成MMM元器件,然后连接个个触发器并添加输入输出端,完成后的图形文件如下所示:生成了AA之后,在分别生成CONTROMMCOMMANDF1F2F3等5个器件即可生成一个完整的微程序控制器CROM,其内部电路如下所示:接下来该做的是控制存储器CONTROM,实现它的VHDL源程序如下所示:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCONTROMISPORT(ADDR:INSTD_LOGIC_VECTOR(5DOWNTO0);UA:OUTSTD_LOGIC_VECTOR(5DOWNTO0);D:OUTSTD_LOGIC_VECTOR(18DOWNTO0));ENDCONTROM;ARCHITECTUREAOFCONTROMISSIGNALDATAOUT:STD_LOGIC_VECTOR(24DOWNTO0);BEGINPROCESS(ADDR)BEGINCASEADDRISWHEN000000=DATAOUT=1110011001001111000000010;WHEN000010=DATAOUT=1001011001001011010000000;WHEN000011=DATAOUT=1000111001001011000000000;WHEN000100=DATAOUT=1000011101001111100000000;WHEN000101=DATAOUT=1000001001011111000000110;WHEN000110=DATAOUT=1000111010001111000000000;WHEN000111=DATAOUT=1000111001001101000000000;WHEN001000=DATAOUT=1110011001001111000000011;WHEN001001=DATAOUT=1000001001011111000000100;WHEN001010=DATAOUT=1110011001001111001100000;WHEN001011=DATAOUT=1000010001101111000000101;WHEN00

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功