计算机组成原理(共22页).docx

上传人:飞****2 文档编号:14500010 上传时间:2022-05-04 格式:DOCX 页数:22 大小:599.42KB
返回 下载 相关 举报
计算机组成原理(共22页).docx_第1页
第1页 / 共22页
计算机组成原理(共22页).docx_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《计算机组成原理(共22页).docx》由会员分享,可在线阅读,更多相关《计算机组成原理(共22页).docx(22页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上计算机组成原理课程设计报告题 目:求五个数中最大正数的相反数院 系:计算机科学与信息安全学院 专 业:计算机科学与技术 指导教师:陈智勇 学生姓名: 潘承锋 学 号: 2017年3月24号目 录一:课程设计的题目及内容题目输入包含5个整数,找出最大的正数的相反数 要求采用定长CPU周期、联合控制方式,并运行能完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下: 这是一个很简单的数据的比较代码,并不需要用到我们得ram,在寄存器里面得到我们的代码,然后取反得到的最大的正数,并且循环输出我们要的结果二:课程设计的要求1.完成系统的总体设计,画出模型机数据通路框图

2、;2.设计微程序控制器(CISC模型计算机)的逻辑结构框图; 3.设计机器指令格式和指令系统; 4.设计时序产生器电路; 5.设计所有机器指令的微程序流程图; 6.设计操作控制器单元; 在CISC模型计算机中,设计的内容包括微指令格式(建议采用全水平型微指令)、微指令代码表(根据微程序流程图和微指令格式来设计)和微程序控制器硬件电路(包括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器等。具体电路根据微程序控制器的逻辑结构框图、微指令格式和微指令代码来设计)。7.设计模型机的所有单元电路,并用VHDL语言(也可使用GDF文件-图形描述文件)对模型机中的各个部件进行编程,并使之成为一个统

3、一的整体,即形成顶层电路或顶层文件; 8.由给出的题目和设计的指令系统编写相应的汇编语言源程序;9.根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去;10.使用EDA软件进行功能仿真,要保证其结果满足题目的要求;(其中要利用EDA软件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。)11.器件编程,并在EDA实验平台上进行操作演示三:系统开发环境及语言介绍Max plus IIMax+plus是Altera公司上一代的PLD开发软件,Max+plus界面友好,使用便捷,主要用于设计新器件和大规模CPLD/FPGA).使用MAX+PLUS

4、II的设计者不需精通器件内部的复杂结构。设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。其设计速度非常快。对于一般几千门的电路设计,使用MAX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。在Max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。设计处理一般在数分钟内内完成。特别是在原理图输入等方面,Maxplus2被公认为是最易使用,人机界面最友善的PLD开发软件,特

5、别适合初学者使用使用Maxplus2基本上也是以上几个步骤,可简化为:(1设计输入(2)设计编译(3)设计仿真(4)优化(5)布局布线(6)后仿真(7)生产 VHDL 全称超高速集成电路硬件描述语言(英语:VHSIC hardware description language),在基于复杂可编程逻辑器件、现场可编程逻辑门阵列和专用集成电路的数字系统设计中有着广泛的应用。VHDL语言诞生于1983年,1987年被美国国防部和IEEE确定为标准的硬件描述语言。自从IEEE发布了VHDL的第一个标准版本IEEE 1076-1987后,各大EDA公司都先后推出了自己支援VHDL的EDA工具。VHDL在

6、电子设计行业得到了广泛的认同VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种

7、将设计实体分成内外部分的概念是VHDL系统设计的基本点 四:系统总体设计嵌入式CISI模型机系统数据通路图嵌入式CISC系统控制器的逻辑结构框图 模型机的指令系统和所有指令的指令格式设计 输入指令(IN1)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码 RdMOV指令格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码 Rd立即数imMOV0指令格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码RsRdxxxxxxxxxxNOT指令格式:15 14 13 1211 109 87 6 5 4 3 2 1

8、0操作码 Rdxxxxxxxxxxx加1指令(INC)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码Rd减1指令(DEC)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码Rd小于零件转移指令(Js)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码 地址addr无条件转移指令(JMP)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码 地址addr输出指令(OUT1)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作码Rs模型机规定数据的表示

9、采用定点整数补码表示,单字长为8位,其格式如下: 76 5 4 3 2 1 0符号位尾数对于Rs或Rd的格式我们规定如下:Rs或Rd选定的寄存器00R001R110R211R3其中S2,S1,S0表示的是算术逻辑运算单元ALU,其功能表为:S2S1S0功能000X-Y001X+1010X-1011NOT X100不用101不用110不用111不用 指令系统表如下指令助记符 指令格式功能 15-1211 10 9 87-0IN1 Rd 0001 XX RdXXXX输入设备MOV Rd im0010 Rdim立即数RdINC Rd0011Rd(Rd)+1Rd,锁存标志位DEC Rd0100Rd(R

10、d)-1Rd,锁存标志位Js addr0101Addr小于零,则addrPCCMP Rs Rd0110RsRd比较运算Mov0 rs rd0111RsRd寄存器交换数据JMP ADDR1000addr无条件转移指令OUT1 RS1001Rs内容输出到设备NOT 1010RDaddr数据取反时序产生器时序信号产生器用于产生多级时序系统中需要的时序信号,本实验采用的是微程序控制器的时序产生器,如下图微程序控制器的设计全过程微程序控制器的设计包括以下几个阶段:(1)机器指令的微程序流程图(2)设计微指令格式和微指令代码表(3)设计地址转移逻辑电路(4)设计微程序控制器中的其它逻辑单元电路,包括微地址

11、寄存器、微命令寄存器和控制存储器(5)设计微程序控制器的顶层电路(由多个模块组成)。地址转移逻辑电路的设计地址转移逻辑电路是根据微程序流程图中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。由于微地址寄存器中的触发器异步置“1”端低电平有效,与A5A0对应的异步置“1”控制信号SE6SE1的逻辑表达式为:SE= 1; SE5=ZFCFP(2)T4;SE4=I7P(1)T4;SE3=I6P(1)T4;SE2=I5P(1)T4;SE1=I4P(1)T4;8. 汇编程序代码设计如下 MOV R2, 5H ; 寄存器R2用于存放循环次数 IN1 RO ;寄存器R0

12、用于接收外部输入的数据L0: IN1 R1 : 寄存器R1用于接收外部输入的数据 DEC R2 ; 将循环次数减1 JS L1 : R2的数字小于零则,结束循环CMP R0, R1; 比较两个数字的大小,影响 zf, cf,不改变寄存器的内容JS L0; R0R1则继续取下一个数字MOV R1,R0: R0R1则将寄存器r1的内容送到r0JMP L0 ;无条件跳转到L0处,继续取数字L1: NOT R0; 取最大正数的相反数INC R0; End: OUT1 R0; JMP END; 不断循环 9 指令的对应的地址与机器代码地址(十六进制)汇编语言源程序机器代码00MOV R1 ,5H0010

13、 00 10 01IN1 R00001 00 00 02L0:IN1 R10001 00 01 03DEC R20100 00 10 04JS L10101 00 00 05CMP R1, R00110 01 00 06JS L01001 00 00 07MOV0 R1, R00111 01 00 08JMP L01000 00 00 09L1: NOT r01010 00 00 0A INC R00011 00 00 0BEND:OUT1 R01001 00 00 0CJMP END1000 0 000 0D0E10.微程序流程图如下11微指令格式如下 load,ldpc,ldar,ldir

14、ldri,ldpsw,rs_b,s2,s1,s0,alu_b,sw_b,led_b,rd_b,cs_d,ram_b,cs_i,addr_b,p1,p2,uA5uA6 微地址 20位微命令加六位微地址00 0000;-20 bit+6 bit 后续位地址01 0000;-执行输入的操作02 0000;-MOV 03 0000;-INC 04 0000;-DEC 05 0000;-JS 06 0000;-CMP 07 0000;-MOV0 08 0000;-JMP 09 0000;-OUT 0A 0000;-OP 0B 0000;-p2 test zf=0,zf=1 0C 0000;-五:MAX

15、PLUS II 软件编译与仿真测试和结果分析 TOP图如下通过创建二甲双胍仿真时序图 top.scf.,可以实现模型机的功能仿真,从图中可以看出cpu处理数据和数据的具体流向的每一个过程,如下是仿真的输出波形,具体结果和分析如下:从仿真的过程当中我们可以到,我的整体的设计是正确的,找到最大的正数之后将结果取反后再加一就得到题目要求的最大正数的相反数,76取反的89加一的8A,这个结果是完全正确的。我非常的开心看到这个结果六:遇到的问题及解决办法以及体会由于我刚开始的时候不知道老师把课程给提前一周上课,我就把前面的两节课都缺了,后来在两周的学习的过程中对我来说都是非常的困难的,我想要放弃了,因为

16、在最后的这一两周我才知道要干吗,才完整的知道我们的原件的画法以及我们的每个原件的代码的编写的方法,在最后一天的今天我才学会我们max这个软件的仿真。我写的汇编的代码是完全没有问题的在整个的学习过程中,这是我最欣慰的一个事情;我在学习的过程中错的最多的就是汇编代码的转换以及微指令的的编写,特别是微指令的后继微地址写好,我有好多条的微命令写错导致结果的不正确,我花费了非常多的时间在指令这里,一位一位的去校对这些0与1对眼睛来说是一件非常痛苦的事情。还有就是要把alu的逻辑运算的指令要写的正确,不然在addr的微命令逻辑地址的转换是一件非常痛苦的事情,地址老是转换错误,还以为自己的微命令写错了,自己

17、有一位一位的去校对我的微地址七:参考文献1计算机原理课程设计 陈智勇,周向红,陆二庆编 西安电子科技大学出版社 20062 计算机组成原理 陈智勇 陈宏 王鑫编 西安电子科技大学出版社 20093基于VHDL语言与Quartus 软件的可编程逻辑器件应用与开发 郑燕, 郝建国党建华著国防工业出版社 出版时间 2007 4.编译原理 蒋丽媛,康幕宁 西北工业大学出版社 八:附录ADDR源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDR ISPORT(I7,I6,I5,I4:IN STD_LOGIC;CF,ZF,T4,P1,P2:IN S

18、TD_LOGIC;SE5,SE4,SE3,SE2,SE1,SE0:OUT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR ISBEGINSE5=1;SE4=NOT(CF AND NOT ZF)AND P2 AND T4);SE3=NOT(I7 AND P1 AND T4);SE2=NOT(I6 AND P1 AND T4);SE1=NOT(I5 AND P1 AND T4);SE0=NOT(I4 AND P1 AND T4);END A;ALU源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_

19、LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY ALU ISPORT(X:IN STD_LOGIC_VECTOR(7 DOWNTO 0);Y:IN STD_LOGIC_VECTOR(7 DOWNTO 0);S2,S1,S0:IN STD_LOGIC;ALUOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);CF,ZF:OUT STD_LOGIC);END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINP

20、ROCESSBEGIN IF(S2=0 AND S1=0 AND S0=0) THEN -CMP(SUB) ALUOUT=X-Y;IF(XY) THEN CF=1; ZF=0; ELSIF(X=Y) THEN CF=0; ZF=1; ELSE CF=0; ZF=0; END IF; ELSIF(S2=0 AND S1=0 AND S0=1) THEN -INC AA=Y; TEMP=AA+1; ALUOUT=TEMP(7 DOWNTO 0); IF (TEMP= OR TEMP=) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=0 AND S1=1 AND S0

21、=0) THEN -DEC AA=Y; TEMP=AA-1; ALUOUT=TEMP(7 DOWNTO 0); IF (TEMP= OR TEMP=) THEN CF=1 ; -实现地址的多路转移 ZF=0; ELSE ZF=1; END IF; ELSIF(S2=0 AND S1=1 AND S0=1) THEN -将数字取反 AA=Y; TEMP=NOT AA; ALUOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUT=0000;-取指令E

22、ND CASE;UA(5 DOWNTO 0)=DATAOUT(5 DOWNTO 0); -后续微地址D(19 DOWNTO 0)=DATAOUT(25 DOWNTO 6);END PROCESS;END ACONVERT源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CONVERT ISPORT(IRCODE:IN STD_LOGIC_VECTOR(15 DOWNTO 0);OP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);I11,I10,I9,I8:OUT STD_LOGIC;A:OUT STD_LOGIC_VECT

23、OR(7 DOWNTO 0);END CONVERT;ARCHITECTURE A OF CONVERT ISBEGINOP=IRCODE(15 DOWNTO 12);I11=IRCODE(11);I10=IRCODE(10);I9=IRCODE(9);I8=IRCODE(8);A=IRCODE(7 DOWNTO 0);END A;ROM 的源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM ISPORT(DOUT:

24、OUT STD_LOGIC_VECTOR(15 DOWNTO 0);ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CS_I:IN STD_LOGIC);END ROM;ARCHITECTURE A OF ROM ISBEGIN -HEX DOUT= 00100 WHEN ADDR= AND CS_I=0 ELSE - MOV R2,4H; 1 设置循环的次数为5次 00000 WHEN ADDR= AND CS_I=0 ELSE - IN1 RO; 00000 WHEN ADDR= AND CS_I=0 ELSE -L0:IN1 R1; 循环输输入五个数字 0000

25、0 WHEN ADDR= AND CS_I=0 ELSE - DEC R2; 循环次数减少一次 01001 WHEN ADDR= AND CS_I=0 ELSE - Js L1; R2为零的时候结束循环 00000 WHEN ADDR= AND CS_I=0 ELSE - CMP R1 R0; 比较寄存器中数字的大小 00010 WHEN ADDR= AND CS_I=0 ELSE - JS L0; 1大于0则将1 中的数字付给0寄存器 00000 WHEN ADDR= AND CS_I=0 ELSE - MOV0 R1 R0; 00010 WHEN ADDR= AND CS_I=0 ELSE

26、 - JMP L0; 00000 WHEN ADDR= AND CS_I=0 ELSE - L1:NOT R0; 将数字取反 00000 WHEN ADDR= AND CS_I=0 ELSE - INC R0; 取反后加一 00000 WHEN ADDR= AND CS_I=0 ELSE -END:OUT1 R0; 输出最大正数的相反数 01011 WHEN ADDR= AND CS_I=0 ELSE - JMP END; 循环输出那个数字 00000;END A;DECODER的源程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECO

27、DER ISPORT(I9,I8:IN STD_LOGIC;Y0,Y1,Y2,Y3:OUT STD_LOGIC);END DECODER;ARCHITECTURE A OF DECODER ISBEGINPROCESS(I9,I8)BEGINIF(I9=0 AND I8=0)THENY0=1;Y1=0;Y2=0;Y3=0;ELSIF(I9=0 AND I8=1)THENY0=0;Y1=1;Y2=0;Y3=0;ELSIF(I9=1 AND I8=0)THENY0=0;Y1=0;Y2=1;Y3=0;ELSEY0=0;Y1=0;Y2=0;Y3=1;END IF;END PROCESS;END A;P

28、SW的vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PSW ISPORT(C,Z:IN STD_LOGIC;LDPSW:IN STD_LOGIC;CF,ZF:OUT STD_LOGIC);END PSW;ARCHITECTURE A OF PSW ISBEGINPROCESS(LDPSW)BEGINIF(LDPSWEVENT AND LDPSW=1)THENCF=C;ZF=Z;END IF;END PROCESS;END A;MUX4 的源程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTIT

29、Y MUX4_1 ISPORT(R0,R1,R2,R3:IN STD_LOGIC_VECTOR(7 DOWNTO 0);I11,I10:IN STD_LOGIC;W:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END MUX4_1;ARCHITECTURE A OF MUX4_1 ISBEGINPROCESSBEGINIF(I11=0 AND I10=0)THENW=R0;ELSIF(I11=0 AND I10=1)THENW=R1;ELSIF(I11=1 AND I10=0)THENW=R2;ELSEW=R3;END IF;END PROCESS;END A;专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com