当前位置:文档之家› 组成原理课程设计跑马灯

组成原理课程设计跑马灯

信息与电气工程学院《计算机组成原理》课程设计报告一、课程设计的目的《计算机组成原理》课程设计是与课程配套开设的实践环节。

通过本课程设计,使学生进一步的理解计算机组成原理课程讲授的相关内容,包括计算机的各大部件及工作原理,计算机对机器语言的支持和理解方法,计算机整机工作原理和控制方法,以及CU设计的基本方法等等,进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;锻炼计算机硬件的设计能力、调试能力;培养严谨的科学实验作风、良好的工程素质及团队协作精神,为今后的工作打下基础。

二、课程设计的内容基于DAIS-CMH+实验台,设计并实现一个能够支持5至10条机器指令的微程序结构CU,并利用该指令系统的指令编写机器指令程序,通过调试观察模型机执行机器指令程序的过程和结构,验证CU设计的正确性。

三、课程设计的要求(1)认真阅读模型机设计说明,了解设计内容,做好设计准备。

(2)完成模型机的硬件电路连接,绘制硬件结构框图。

(3)完成指令的微操作序列分析,画出微程序流程图,根据微指令格式,填写码点,编写微程序,完成微程序结构的CU设计。

(4)设计并编写机器指令测试程序。

(5)能够熟练的运用调试方法,修正微程序设计中存在的问题,验证机器指令执行的正确性。

(6)根据设计的实施过程,认真完成课程设计报告。

四、模型机设计总结4.1 硬件结构框图与主要硬件模块说明图1 实验台硬件布局图①缓冲输入模块: 控制信号 SW-B,控制输入信号从开关部件输入到总线。

注意:总线没有锁存能力,如果该信号关闭,则数据立刻丢失,总线上数据变为FFH。

②地址总线模块:控制信号LDAR,控制数据(地址信号)从总线打入地址寄存器(AR)。

③内存模块:控制信号 WR,内存的读/写控制信号,配合控制信号CE,内存的片选信号,对内存进行读/写操作。

CE = 1,WR = 1,进行内存写操作;CE = 1, WR = 0, 进行内存读操作。

④锁存输出模块:控制信号 LDED,控制数据从总线打入输出模块的锁存器,通过LED灯进行显示。

⑤寄存器组:两组控制信号,控制数据从总线输入Ri的控制信号- LDR0,LDR1和LDR2;控制数据从寄存器Ri送到总线上的控制信号R0-B,R1-B,R2-B。

⑥数据总线模块,这个模块没有控制信号,就是个显示模块,显示当前总线上的数据情况。

⑦ 指令寄存器模块:控制信号LDIR ,控制总线上的数据(指令)从总线打入指令寄存器IR 。

⑧ 运算器单元模块:这个模块的的控制信号主要包括三类,第一类控制信号是ALU 的两个输入寄存器的打入控制信号LDDR1和LDDR2;第二类控制信号是ALU 的运算方式控制信号S0、S1、S2、S3、M,CN ;第三类控制信号ALU 和移位寄存器299数据送总线的信号,ALU-B 和299-B 。

另外还有一个特殊的AR 控制信号,这个信号的作用是将当前的ALU 运算得到的标记位ZF 和CF 锁存,以供转移类指令JC 和JZ 进行参考。

⑨ 程序计数器模块: 控制信号LOAD 和LDPC 配合,LOAD=1且LDPC=1,将数据(指令地址)从总线打入程序计数器PC ;LOAD=0且LDPC=1,控制PC 自增。

4.2 微指令格式说明实验台设计的微指令32位,包括26位的操作控制字段和6位的下地址字段。

操作控制字段中含有两个3位的直接编码字码,以及20位的直接控制位。

具体格式分析如下。

微指令格式:整个32位的微指令,分成了4个区域,0区-最高的第3字节;1区-第2字节;2区-第1字节,3区- 最低的第0字节。

各位代表的含义如下:M25M24M23M22M21M20M19M17M16M15M14M13M12M11M18M10M9M8M7M6M5M4M3M2操作控制(26b)下地址字段(6b)控制信号说明:表1 CBA 译码表表2 条件测试字段译码表3S0、S1、S2、S3、M ,ALU 运算方式控制信号表4移位运算器控制信号从取指周期微程序如何到达对应指令的执行周期。

根据取到的指令的操作码字段进行散转,散转方法为取指周期最后一条微指令的下地址字段有一个基地址08H,且测试条件P(1)有效,这时,下地址,即执行周期微程序入口= 基地址08H+指令操作码的前三位。

微地址02对应的是取指周期微程序的最后一条微指令,其微指令定义如下:M02 00 80 10 12 ; 十六进制表示,共4字节根据图2中对微指令格式的分析,4区前6位对应下地址UA0~UA5,注意,这里是从低位到高位存放的,需要倒置,才是下地址的真值。

观察该指令的4区,值12H, 转换为二进制形式:0001 0010。

所以,下地址为00 1000,即08H; 同时次低位的PX1 =1, 满足测试条件P(1),需要根据操作码进行转移。

假设此时取到的机器指令为ADD R0,[addr] , 操作码= 0100 0000 ,取操作码的前三位= 010,加上基地址08H, 就跳到该指令的执行周期的第一条微指令地址0AH。

4.3 机器指令设计4.3.1设计分析本次实验设计的目的是设计一个跑马灯,显示效果为从右往左依次点亮,且点亮后并不熄灭,最后全部亮起后,从左往右依次熄灭,最后全部熄灭,然后再亮起,如此循环。

本次实验设计用到的机器指令包括:IN(输入),LRUN(从右往左循环),RRUN(从左往右循环),CMP(判断是否循环结束),BZC(有条件转移),STA(数据送内存),OUT(输出至LED),JMP(无条件转移)。

4.3.2机器指令分析IN:操作码20,将数据从输入模块送入总线,然后从总线送入R0,跳转微指令地址为M0A。

LRUN:操作码40,实现输出模块的灯从右往左按要求依次点亮,跳转微指令地址为M0C。

RRUN:操作码70,实现输出模块的灯从左往右按要求依次熄灭,跳转微指令地址为M0F。

CMP:操作码30,判断灯是否循环到最后,跳转微指令地址为M0B。

BZC:操作码D0,根据打开的标志位,决定跳转位置,跳转微指令地址为M0D。

STA:操作码60,将要输出的数据从R0中放入内存,跳转微指令地址为M0E。

OUT:操作码80,将内存中的数据输出到输出模块,跳转微指令地址为M08。

JMP:操作码90,跳转到指定地址,跳转微指令地址为M094.3.3机器指令具体设计(1)机器指令;基本模型机的设计与实现P00 20 ;IN R0,SW ;数据开关→R0P01 40 ;LRUN ;左循环P02 60 22 ;STA 22H,R0 ;R0→(22H)P04 80 22 ;OUT 22H,LED ;(22H)→输出单元P06 30 20 ;CMP R0,20H ;比较P08 D0 0C ;BZC 0CH,PC ;OAH->PCP0A 90 01 ;JMP 01H ;无条件转移P0C 70 ;RRUN ;右循环P0D 60 22 ;STA 23H,R0 ;R0→(23H)P0F 80 22 ;OUT 23H,LED ;(23H)→输出单元P11 30 21 ;CMP R0,21H ;比较P13 D0 01 ;BZC 01H,PC ;O1H->PCP15 90 0C ;JMP 0CH ;无条件转移;------------以下为数据空间------------P20 FFP21 00(2)机器指令二进制操作码P00 00100000P01 01000000P02 01100000P04 10000000P06 00110000P08 11010000P0A 10010000P0C 0111 0000P0D 01100000P0F 10000000P11 00110000P13 11010000P15 100100004.4 微程序设计4.4.1微程序流程图4.4.2机器指令微操作具体设计M00 00 00 00 80 ;空操作M01 20 00 60 40 ;PC→AR,PC+1 M02 00 80 10 12 ;RAM→IRM03 00 80 40 20 ;RAM→ARM04 00 80 02 A0 ;RAM→R0M05 00 8C 00 60 ;RAM→299M06 60 08 00 24 ;299左移M07 00 00 00 80 ;空操作M08 20 00 60 98 ;PC→AR,PC+1 M09 20 00 60 A8 ;PC→AR,PC+1 M0A 00 00 02 81 ;SW→R0M0B 20 00 60 58 ;PC→AR,PC+1 M0C 80 0C 00 60 ;R0→299M0D 20 00 60 78 ;PC→AR,PC+1 M0E 20 00 60 C8 ;PC→AR,PC+1 M0F 80 00 04 84 ;R0->DR1M10 20 00 60 89 ;PC→AR,PC+1 M11 20 00 60 48 ;PC→AR,PC+1 M12 00 80 01 89 ;SW→RAMM13 00 80 40 68 ;RAM→ARM14 03 80 00 80 ;RAM→LEDM15 00 C0 20 80 ;RAM→PCM16 80 80 01 80 ;R0→RAMM17 00 C0 20 80 ;RAM->PCM18 40 00 02 80 ;DR1+1->R0M19 00 80 40 28 ;RAM→ARM1A 00 80 40 D8 ;RAM→ARM1B 00 80 04 38 ;RAM->DR1M1C 80 00 08 B8 ;R0->DR2M1D 10 06 00 80 ;DR1-DR2M1E 01 00 80 E2 ;打开px1 px2M1F 00 80 40 28 ;RAM→ARM20 80 00 04 84 ;R0->DR1M21 40 2F 02 64 ;DR1自减->R0M22 40 00 02 64 ;RAM→ARM23 60 04 02 E4 ;299右移->BUSM24 60 00 04 18 ;299->DR1M25 00 80 40 E8 ;RAM→ARM26 80 0C 00 C4 ;R0->299M27 60 04 02 80 ;BUS->R04.4.2机器指令微操作分析(1)INM0A 00 00 02 81 ;SW-B,LDR0有效,下地址01(2)LRUNM0C 80 0C 00 60 ;C有效,S0,S1有效,下地址06M06 60 08 00 24 ;B,A有效,S0有效,下地址24M24 60 00 04 18 ;B,A有效,LDDR1有效,下地址18M18 40 00 02 80 ;B有效,LDR0有效,下地址01(3)RRUNM0F80 00 04 84 ;C有效,LDDR1有效,下地址21M2140 2F 02 64 ;B有效,CN有效,S0,S1,S2,S3有效,下地址26 M2680 0C 00 C4 ;A有效,S0,S1有效,下地址23M2360 04 02 E4;B,A有效,S1有效,LDR0有效,下地址27M2760 04 02 80;B,A有效,S1有效,LDR0有效,下地址80(4)CMPM0B20 00 60 58 ;A有效,LDAR,LDPC有效,下地址1AM1A00 80 40 D8 ;CE有效,LDAR有效,下地址1BM1B00 80 04 38;CE有效,LDDR1有效,下地址1CM1C80 00 08 B8 ;C有效,LDDR2有效,下地址1DM1D10 06 00 80 ;AR有效,S1,S2有效,下地址01(5)BZCM0D20 00 60 78;A有效,LDAR,LDPC有效,下地址1EM1E01 00 80 E2 ;AR有效,PX1,PX2有效,条件转移下地址07或17M0700 00 00 80;空操作,下地址01M1700 C0 20 80 ;CE,LDAD有效,LDPC有效,下地址01(6)STAM0E20 00 60 C8 ;A有效,LDAR,LDPC有效,下地址13M1300 80 40 68 ;CE有效,LDPC有效,下地址16M1680 80 01 80 ;C有效,CE有效,WE有效,下地址01 (7)JMPM0920 00 60 A8 ;A有效,LDAR,LDPC有效,下地址15M1500 C0 20 80 ;CE有效,LDAD有效,LDPC有效,下地址01 (8)OUTM0820 00 60 98 ;A有效,LDAR,LDPC有效,下地址19M1900 80 40 28 ;CE有效,LDAR有效,下地址14M1403 80 00 80 ;A8,A9有效,CE有效,下地址014.5 微指令码点表4.6 机器指令测试程序设计(1)LRUNM0C 80 0C 00 60 ;R0→299M06 60 08 00 24 ;299左移M24 60 00 04 18 ;299->DR1M18 40 00 02 80 ;DR1+1->R0R0=0000 0001,微单步后R0=0000 0011。

相关主题