




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机学院计算机科学与技术专业 计算机组成课程设计报告 (2008/2009学年 第一学期)学生姓名: 学生班级: 学生学号: 指导教师: 年 月 日计算机组成原理课程设计目录1 课程设计需求分析31.1 课程设计目的与要求31.2 课程设计内容31.3 实验器材描述41.4 存储器划分41.5 指令译码电路分析51.6 寄存器译码电路分析61.7 时序分析81.8 微指令格式分析82 总体设计102.1 数据格式102.2 机器指令描述102.3 机器指令设计113 详细设计143.1 控制台设计143.2 控制台指令153.3 单条指令的详细设计183.4 微程序流程图设计264 编码实现275 设计测试286 实验心得体会30附录一:31附录二:32参考文献:33I1 课程设计需求分析1.1 课程设计目的与要求本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完计算机组成原理课程后进行的一次全面的综合设计。目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。要求学生综合运用计算机组成原理、数字逻辑和汇编语言等相关课程的知识,理解和熟悉计算机系统的组成原理,掌握计算机主要功能部件的工作原理和设计方法,掌握指令系统结构设计的一般方法,掌握并运用微程序设计(Microprogramming)思想,在设计过程中能够发现、分析和解决各种问题,自行设计自己的指令系统结构(ISA)。1.2 课程设计内容基于TDN-CM+计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。设计过程中要求考虑到以下各方面的问题:1、指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器);2、数据类型(无符号数,有符号数,整型,浮点型);3、存储器划分(指令,数据);4、寻址方式(立即数寻址,寄存器寻址,直接寻址等);5、指令格式(单字节,双字节,多字节);6、指令功能类别(算术逻辑运算,存储器访问,寄存器操作,程序流控制,输入输出);1.3 实验器材描述硬件:TDNCN+计算机组成原理实验教学系统, 具备支持开放式实验教学方法的结构特点。表1-1 TDNCN+教学系统明细表电路名称主要电路内容运算器单元(ALU UNIT)运算器、进位控制器、移位寄存器、寄存器堆、内部总线计数器与地址寄存器单元(ADDRESS UNIT)地址寄存器、程序地址计数器微控器单元(MICRO CONTROLLER UNIT)指令寄存器、指令译码器、微指令控制寄存器及其编程器、逻辑译码单元、时序电路主存单元(MAIN MEM)SRAM6116输入设备、输出设备(INPUT DEVICE& OUTPUT DEVICE)开关、显示灯、控制台(读写、启动、停机)CPLD单元1片ISP LSI1032 CPLD芯片接口实验板(系统附件)Intel 8253、8255、8259接口芯片各一片逻辑信号测量单元两路逻辑信号PC 示波器单片机控制单元控制单片机、RS-232C串口等电源采用高效开关单元、输出为5V/2A、12V/0.2A1.4 存储器划分存储区大小为256个存储单元,分配给代码区27=128个存储单元,数据区为27=128个存储单元图1.1存储器划分表1.5 指令译码电路分析图1.2 指令译码电路根据指令译码电路以及寄存器译码电路,得出以下结论:P(1) P(4)为低电平有效,当选用时该信号为零;I7 I2表示机器指令前六位;SE5 SE1表示能够强置改变入口地址的后五位。由于在设计过程中选择P(1)有效,因此对此表达式进行深入分析之后可以得知:虽然从图中可以看出输入为I2-I7,可是I2与I3并没有对结果SE1SE5造成影响,则影响指令跳转的只有I4I7,即指令后四位。1.6 寄存器译码电路分析图1.3 寄存器译码电路从以上的寄存器译码电路中可以直观地看出:寄存器的输入输出不仅仅由几个片选端决定,而且还受到I0I3(指令低四位)的影响。以下分寄存器输入与寄存器输出两方面阐述:(1)寄存器输入分析寄存器的输入端为LDR0、LDR1与LDR2,分别对应寄存器R0、R1与R2,它们由三个输入端LDRi、I0与I1控制,并且这三个输入端通过一个2-4进制译码器对寄存器的输入进行选择,具体输入选择可见于下表:表1-2 寄存器输入选端表LDRiI1I0选端有效(0)00LDR0有效(0)01LDR1有效(0)10LDR2有效(0)11无效选端(2)寄存器输出分析寄存器的输出端为R0-B、R1-B与R2-B,分别对应于寄存器R0、R1与R2,从图中可以看出RD-B、RS-B、RI-B、I0I3控制着寄存器的输出操作的选择,输出操作也是通过2-4进制译码器来实现的,其中RD-B、RS-B与RI-B是片选端,通过I0I3的不同取值来控制寄存器的不同输出,来实现寄存器在输出方面的多样性与灵活性。具体对应关系可以参见下表:表1-3 寄存器输出选端表片选端选择I1I0选端I3I2选端RD-B00R0-B00无效01R1-B01无效10R2-B10无效11无效11无效RS-B00无效00R0-B01无效01R1-B10无效10R2-B11无效11无效RI-BXXR2-BXXR2-B1.7 时序分析图1.4 时序图T1、T2、T3、T4为节拍控制端,本设计用了T4节拍控制端,当指令通过译码器P(1)时,P(1)对操作码进行测试,通过节拍脉冲T4的控制,以便识别所要求的操作。TS1时进行微程序控制器控制,TS2时进行微指令寄存器控制,TS时控制LDIR、LDAR,TS4时对P(1)、P(2)、P(3)、P(4)、AR、LOPC、LDRi、LDDR1、LDDR2进行控制。1.8 微指令格式分析微指令格式如下:表1-4 微指令格式表242322212019181716151413121110987654321S3S2S1S0MCnWEA9A8ABCUA5UA4UA3UA2UA1UA0每个字段的详细分析如下:(1) 字段2419控制运算器的控制端,通过改变S3CN来决定对数据进行何种算术或逻辑运算。本设计中全部为正逻辑运算。表1-5 算术/逻辑运算选端选端算术运算逻辑运算无进位有进位M001CN10X(2)字段18为控制对主存W/R的开关WE称之为写线,当WE=0时,对主存进行读操作;当WE=1时,对主存进行写操作。另外:其写时间与T3脉冲宽度一致。(3)A9、A8字段是通过一个2-4进制译码器控制着输出,通过对A9与A8的不同选择来实现对Y0、Y1与Y2的不同选择,具体对应关系如下图所示:表1-6 A9、A8字段选择表A9A8选端操作选端说明00Y0选中SW-BINPUT UNIT的开关01Y1选中CEMAIN MEN 的控制片选开关10Y2选中LED-BOUTPUT UNIT 的开关11无效选端无操作(4)字段157为A、B、C三个开关控制端。A字段表1-7 A字段选择表151413控制开关功能说明001LDDRi控制寄存器Ri的写入010LDDR1暂存器DR1的控制开关011LDDR2暂存器DR2的控制开关100LDIR指令寄存器IR的控制开关101LOAD非自动输入的数据装载入PC计数器的控制开关110LDAR地址寄存器AR的控制开关000NULL空操作B字段表1-8 B字段选择表121110控制开关功能说明000NULL空操作001RS-B寄存器R0、R1、R2的输出开关010RD-B寄存器R0、R1、R2的输出开关011RI-B寄存器R0、R1、R2的输出开关100ALU-B运算器ALU的输出开关101PC-BPC计数器的输出开关110299-B74299片的控制端C字段表1-9 C字段选择表987控制开关功能说明001P(1)指令译码器中的P(1)为低电平有效010P(2)指令译码器中的P(2)为低电平有效011P(3)指令译码器中的P(3)为低电平有效100P(4)指令译码器中的P(4)为低电平有效101LDPC将自动输入的数据加1后输入到PC计数器中的控制开关110AR本设计不涉及000NULL空操作(5)字段61为该条微程序的八位二进制后继地址,其决定顺序执行哪条微程序。2 总体设计2.1 数据格式本设计中所有需要处理的数据全部采用定点无符号整数表示,8个bit位,格式如下:表2-1 数据格式表示76543210数值数据的范围是028,即0255。2.2 机器指令描述表2-2 机器指令描述表指令名称寻址方式指令格式(字节)指令功能类别类别名称直接寻址寄存器寻址立即数寻址单字节双字节多字节算术运算逻辑运算存储器访问寄存器访问程序流程控制输入输出INMOVEADDSUBANDORCLEARSTAOUTJMP表2-3 指令助记符表指令助记符指令功能说明指令风格IN,R0从INPUT DEVICE中输入数据至R0MOVE R1,R0R0-R1ADD R1,R0R0+R1-R1寄存器-寄存器SUB R1,addr1,addr2addr1-addr2-R1存储器-存储器AND R1,addrR1*addr-R1寄存器-存储器OR R1,R0R1 or R0-R1寄存器-寄存器CLEAR R1,addr对寄存器R1的清零操作寄存器-存储器STA addrR0-addrOUT addraddr-LEDJMP addrAddr-PC2.3 机器指令设计对于指令的设计可以分作两部分完成,第一部分是指令的高四位,另外的则是指令的低四位部分。(1)通过前面对于指令译码电路的分析可以得知:指令的高四位(I7I4)控制指令的跳转,通过输入一组I7I4的值,通过指令译码电路的处理可以得出一组SE1SE5的具体值,这五位是低电平有效,因此当SEi为低电平时,就会对指令跳转的下一跳的地址进行重新置位,从而实现对于指令跳转流程的控制,具体跳转对应关系如下表所示:表2-4 指令跳转表指令名称跳转起始I7 I6 I5 I4SE4 SE3 SE2 SE1跳转位置IN40(100 000)0 0 0 0111140(100 00)MOVE40(100 000)0 0 0 1111041(100 001)ADD40(100 000)0 0 1 0110142(100 010)SUB40(100 000)0 0 1 1110043(100 011)AND40(100 000)0 1 0 0101144(100 100)OR40(100 000)0 1 0 1101045(100 101)CLEAR40(100 000)0 1 1 0100146(100 110)STA40(100 000)0 1 1 1100047(100 111)OUT40(100 000)1 0 0 0011150(101 000)JMP40(100 000)1 0 0 1011051(101 001)(2)第二步进入到对于指令低四位的设计阶段,通过前面对于寄存器译码电路的分析可以得知:指令的低四位决定寄存器的操作(包括输入与输出),通过对于三个片选端的设置与指令低四位(I3-I0)的选择,可是实现多种的寄存器的操作,具体实现见于如下表:表2-5 寄存器操作对照表指令名称涉及的寄存器操作I3 I2 I1 I0INSW-R0X X 0 0MOVER0-R10 0 0 1ADDR0-DR1;R1-R2;DR1+DR2-R10 0 0 1SUBDR1-DR2-R1X X 0 1ANDR1-DR1;DR1*DR2-R10 1 0 1ORR0-DR1;R1-DR2;DR1 or DR2-R10 0 0 1CLEARR1-DR2;0-R10 1 0 1STAR1-BUS0 1 X XOUT无寄存器操作X X X XJMP无寄存器操作X X X X综上所述,可以得出每条指令完整的机器指令,如下表所示:表2-6 机器指令对照表助记符机器指令码功能说明IN-R00000 XX00从INPUT DEVICE中输入数据至R0MOVE R1,R00001 0001R0-R1ADD R1,R00010 0001R0+R1-R1SUB R1,addr1,addr20011 XX01XXXX XXXXXXXX XXXXaddr1-addr2-R1AND R1,addr0100 0101XXXX XXXXR1*addr-R1OR R1,R00101 0001R1 or R0-R1CLEAR R1,addr0110 0101XXXX XXXX对寄存器R1的清零操作STA addr0111 01XXXXXX XXXXR0-addrOUT addr1000 XXXXaddr-LEDJMP addr1001 XXXXAddr-PC3 详细设计3.1 控制台设计(1)公操作表3-1 公操作设计表000000011000000100ALU作加1操作无读写无效选端无效选端P(4)有效备注:对机器进行总清零CLR 1-0-1。选中P(4),通过译码形成入口地址(2)强制写表3-2 强制写设计表备注:在形成入口微地址之后,执行写操作,本强制写流程通过每次从INPUT DEVICE中接受输入,并且写入到主存中对应的地址下面。000000011110110110ALU作加1操作无读写LDAR有效PC-B有效LDPC有效000000000010000000ALU作加1操作SE-B有效LDDR1有效无效选端无效选端000001101000101000ALU作加1操作CE有效无效选端ALU-B有效无效选端(3)强制读表3-3 强制读设计表备注:在形成入口微地址之后,执行读操作。本流程完成的操作是依次从主存的对应微地址下读入对应的数据,并且在LED灯上显示。000000011110110110ALU作加1操作无读写LDAR有效PC-B有效LDPC有效000000001010000000ALU作加1操作CE有效LDDR1有效无效选端无效选端000001110000101000F=ALED-B有效无效选端ALU-B有效无效选端(4)执行程序表3-4 执行程序设计表备注:形成入口地址后,开始执行程序。该流程中所有都为空操作,只是要通过后继地址转入到运行微程序的流 程中。000000011000000000ALU作加1操作无读写无效选端无效选端无效选端3.2 控制台指令PC计数器在用清零开关CLR清零后,通过控制台开始进行机器指令的读写和执行,此处将00Q的后继地址设为10Q(即001000)。此时只有P(4)有效,即P(4)=0,P(1)=P(2)=P(3)=1。图3.1 控制台设计强置改变有一个特点,当SEi为1时无效,不能改变;只有SEi为0时,才能对该位上的数进行改变;但只能由0变成1,而不能逆转。1. 强置写指令当进行机器指令写入时,将SWB,SWA置成01状态,通过指令译码器的逻辑表达式即可算出入口地址。SE5=1SE4=1SE3=1SE2=1SE1=0SE5SE2均无效,只有SE1有效,即可得出001000改变为001001,即强置写的入口地址为11Q。2. 强制读指令当进行机器指令写入时,将SWB,SWA置成00状态,通过指令译码器的逻辑表达式即可算出入口地址。SE5=1SE4=1SE3=1SE2=1SE1=1SE5SE1均无效,不能对 010000进行改变,即强置写的入口地址为10Q。3. 程序执行指令当进行机器指令写入时,将SWB,SWA置成11状态,通过指令译码器的逻辑表达式即可算出入口地址。SE5=1SE4=1SE3=1SE2=0SE1=0SE5SE3均无效,SE2和SE1有效,即可得出001000改变为001011,即强置写的入口地址为13Q。综上所述,可以得到控制台程序的执行流程图如下:图3.2 控制台设计图3.3 单条指令的详细设计(1)公操作表3-5 公操作设计表000000011110110110 ALU作加1操作不读写LDAR有效,PC-ARPC-BUSLDPC有效000000001100000001ALU作加1操作读主存LDIR有效,将指令写入指令寄存器P(1)有效备注:此流程为公操作,每条指令执行公操作可以将指令的操作码取出,实现跳转等等操作,在取操作码过程中,首先将操作码的地址从PC(程序计数器)中取出,从主存对应位置找到操作码放到IR(指令寄存器)中,从而实现取指操作,并且令选择字段为P(1)有效,实现之后的跳转。(2)IN指令表3-6 IN指令设计表备注:此流程为IN操作,主要实现从INPUT DEICE中输入一个数据,使得该数据进入寄存器R0中,在实现这个操作的过程中需要用到寄存器译码电路,由前面的电路分析可知,LDRi控制所有寄存器的输入,因此必须使得A字段为LDRi。000000000001000000ALU作加1运算CE有效LDRi有效无效选端无效选端(3)MOVE指令表3-7 MOVE指令设计表备注:此流程为MOVE指令,主要实现两个寄存器之间的数据传送,在此条指令中实现的是从R0到R1的数据传送,由寄存器译码电路可知需要打开R0的输出门R0-B与R1的输入门LDR1,由前面的寄存器译码电路对照表可得如下字段值。000000011001001000ALU作加1操作不读写LDRi有效RS-B有效无效选端(4)ADD指令表3-8 ADD指令设计表备注:此流程为ADD指令执行过程,目的是为了实现两个操作数的相加,此条指令是寄存器-寄存器风格,因此两个操作数都来自寄存器,由前面的寄存器译码电路的分析可得到相应字段的值,另外从指令流程长短上可以看出寄存器-寄存器风格的指令比较精简,执行速度很快。000000011010001000ALU作加1操作不读写LDDR1有效PC-B有效无效选端000000011011010000ALU作加1操作不读写LDDR2有效RD-B有效无效选端100101011001101000ALU作加法运算不读写LDRi有效ALU-B有效无效选端(5)SUB指令表3-9 SUB指令设计表备注:此流程为SUB指令执行过程。主要实现两个操作数的相减运算,此条指令是存储器-存储器风格,因此两个操作数都来自存储器,因此和前面的加法运算相比需要加入两个取址过程,通过直接寻址找到两个操作数。000000011110110110ALU作加1操作不读写LDAR有效PC-B有效LDPC有效000000001110000000ALU作加1操作读取主存LDAR有效无效选端无效选端000000001010000000ALU作加1操作读取主存LDDR1有效无效选端无效选端000000011110110110ALU作加1操作不读写LDAR有效PC-B有效LDPC有效000000001110000000ALU作加1操作读取主存LDAR有效无效选端无效选端000000001011000000ALU作加1操作读取主存LDDR2有效无效选端无效选端011000011001101000ALU进行减法运算不读写LDRi有效ALU-B有效无效选端(6)AND指令表3-10 AND指令设计表备注:此流程为AND运算的指令过程,这条指令实现了两个操作数的与运算,此条指令时寄存器-存储器风格,则两个操作数一个来自主存,另外一个来自寄存器,取自主存的那个操作数需要给出一个地址,通过直接寻址来找到操作码。000000011110110110ALU作加1操作不读写LDAR有效PC-B有效LDPC有效000000001110000000ALU作加1操作读取主存LDAR有效无效选端无效选端000000001010000000ALU作加1操作读取主存LDDR1有效无效选端无效选端000000011011001000ALU作加1操作不读写LDDR2有效RS-B有效无效选端101110011001101000ALU进行与运算不读写LDRi有效ALU-B有效无效选端(7)OR指令表3-11 OR指令设计表备注:此流程是OR指令的执行过程。主要实现两个操作数的或运算,和前面的ADD指令一样,OR指令也是属于寄存器-寄存器风格,因此也具有执行速度快的特点。000000011010001000ALU作加1操作不读写LDDR1有效RS-B有效无效选端000000011011010000ALU作加1操作不读写LDDR2有效RD-B有效无效选端11101X011001101000ALU进行或运算不读写LDRi有效ALU-B有效无效选端(8)STA指令表3-12 STA指令设计表备注:此流程为STA指令的执行过程。主要实现将寄存器R1中的数保存在主存中的某个地址下,因此在使用中需要在指令之后加一个地址作为地址码。000000011110110110ALU作加1操作不读写LDAR有效PC-B有效LDPC有效000000001110000000ALU作加1操作读取主存LDAR有效无效选端无效选端000000101000001000ALU作加1操作写入主存无效选端RS-B有效无效选端(9)CLEAR指令表3-13 CLEAR指令设计表备注:此流程是CLEAR指令的执行过程。主要完成对R1寄存器的清零操作(即将0送入R0),在此并没有直接采取送数到R0的方法实现,而是通过一个算术运算来实现这个操作,将固定的计算结果送入R0000000011110110110ALU作加1操作不读写LDAR有效PC-B有效LDPC有效000000001110000000ALU作加1操作读取主存LDAR有效无效选端无效选端000000001010000000ALU作加1操作读取主存LDDR1有效无效选端无效选端000000011011001000ALU作加1操作不读写LDDR2有效RS-B有效无效选端001100011001101000ALU执行对R1的清零操作不读写LDRi有效ALU-B有效无效选端(10)JMP指令表3-14 JMP指令设计表备注:此流程为JMP指令的执行过程。主要实现程序的流程控制,原理是在PC中送入一个想要跳转的地址,在取得PC中的地址之后就可以跳转到该处实现跳转。000000011110110110ALU作加1操作不读写LDAR有效PC-B有效LDPC有效000000001101000110ALU作加1操作读取主存LOAD有效无效选端LDPC有效(11)OUT指令表3-15 OUT指令设计表备注:此流程为OUT指令的执行过程。主要实现将某个地址下的数据显示在LED灯上,和STA指令的使用方法一样,OUT是一个双字节指令,需要给一个主存地址作为地址码。000000011110110110ALU作加1操作不读写LDAR有效PC-B有效LDPC有效000000001110000000ALU作加1操作读取主存LDAR有效无效选端无效选端000000001010000000ALU作加1操作读取主存LDDR1有效无效选端无效选端000001110000101000输出到DR1LED无效选端ALU-B有效无效选端3.4 微程序流程图设计图3.3 程序流程图4 编码实现表4-1 微指令代码表微地址S3S0 M CNWE A9 A8ABCUA5UA00000000001100000010010000001000000011110110110000010020000000011000000011000000300000001101101000000010004100101011001101000000001050000000010100000000010100600000110100010100000100107000000000010000000000110100000000111101101100001011100000001111011011000011112000001110000101000001000130000000110000000000000011400000000111000000000110115000000001010000000001110160000000111101101100011111700000000111000000001000020000000001011000000010001210110000110011010000000012200000000111000000001001123000000001010000000010100240000000110110010000101012510111001100110100000000126000000011011010000010111271110100110011010000000013000000000111000000001100131000000001010000000011010320000000110110010000110113300110001100110100000000134000000001110000000011101350000001010000010000000013600000000111000000001111137000000001010000000101010400000000000010000000000014100000001100100100000000142000000011010001000000011430000000111101101100011004400000001111011011001001045000000011010001000010110460000000111101101100110004700000001111011011001110050000000011110110110011110510000000111101101
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 育婴师考试中常见问题与解决方案试题及答案
- 药物相互作用的临床案例研讨试题及答案
- 成功通过计算机二级考试的技巧试题及答案
- 药剂学实践中的道德挑战考试试题及答案
- 母猪护理细节评估试题及答案
- 考试内容与光电工程师职业的实际影响试题及答案
- 药剂学考试的复习难点与试题及答案
- 行业前景与母猪护理试题
- 网络规划设计师考试专业知识强化试题及答案
- 网络教育高数试题及答案
- 2025年内科主治医师考试消化内科
- 房地产经纪人职业规划
- 安徽省《地下水监测井建设技术规范》DB34-T 4822-2024
- 煤矿管理人员事故隐患排查治理专项培训课件
- 碧桂园集团《安全文明措施标准化手册》
- 专科机电一体化大专课程毕业论文范文
- 水族馆节能减排策略-洞察分析
- 施工单位进场流程
- 《演讲要素》课件
- 度假酒店的规划与开发
- 新高考数学二轮复习讲练专题06 函数与导数常见经典压轴小题归类(26大核心考点)(讲义)(解析版)
评论
0/150
提交评论