计算机组成原理课程设计研制一台多累加器结构的实验计算机_第1页
计算机组成原理课程设计研制一台多累加器结构的实验计算机_第2页
计算机组成原理课程设计研制一台多累加器结构的实验计算机_第3页
计算机组成原理课程设计研制一台多累加器结构的实验计算机_第4页
计算机组成原理课程设计研制一台多累加器结构的实验计算机_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 沈阳理工大学课程设计专用纸 no18 课程设计任务书学 院信息科学与工程学院专 业计算机科学与技术学 生 姓 名学 号题 目研制一台多累加器结构的实验计算机内容及要求:利用fd-ces实验仪提供的硬件资源,通过设计(包括整机结构设计、指令设计、微指令设计、微程序设计、调试程序设计等)、组装、调试三个步骤研制一台微程序控制的实验计算机。设计总要求:1 实验计算机整机应由如下几个模块组成:运算器、指令部件、内存、微程序控制器、总线缓冲电路、启停和时序控制电路。2 运算器采用单累加器多寄存器结构。3 操作数寻址方式采用以下几种:直接地址寻址 (addr)-a,或(a)-addr寄存器直接寻址 (r

2、i)-a,或 (a)-ri寄存器间接寻址 (ri)-a,或 (a)-(ri)立即数寻址 data-a,或data-ri4 指令系统按16条指令规模设计,主要设计如下几条指令:mov a,#datalda addrsta addrjc addrrlc ahalt5 用所设计的指令编写调试程序:将内存某个单元(addr1)中内容乘以2,若出现进位,则将进位和结果分别存放到单元(addr3、addr2)中;否则将结果存放到单元(addr2)中,然后用停机指令停机,从控制台检查addr2存放的结果。任务交付:1.程序源代码;2课程设计论文及电子文档。进度安排:第17周:布置课程设计任务,查阅资料,分组

3、设计。第18周:实验室组装和调试。第19周:验收、答辩,编写课程设计报告。指导教师(签字):年 月 日学院院长(签字):年 月 日目录一实验计算机设计31.整机逻辑框图设计,并画出整机的逻辑框图。32.指令系统的设计。43微操作控制部件的设计。64设计组装实验计算机接线表145编写调试程序:16二实验计算机的组装16三实验计算机的调试161.调试前准备162.程序调试过程18四心得体会18五参考文献18题目 研制一台多累加器的计算机一 实验计算机设计1.整机逻辑框图设计,及整机的逻辑框图此模型机是由运算器,控制器,存储器,输入设备,输出设备五大部分组成。1.运算器又是有299,74ls181完

4、成控制信号功能的算逻部件,暂存器ldr1,ldr2,及三个通用寄存器r0,r1,r2等组成。2.控制器由程序计数器pc、指令寄存器、地址寄存器、时序电路、控制存储器及相应的译码电路组成。3.存储器ram是通过ce和w/r两个微命令来完成数据和程序的的存放功能的。4输入设备是由置数开关sw控制完成的。5.输出设备有两位led数码管和w/r控制完成的lr0 lr1 lr2寄存器ax bx cxr0-g r1-g r2-g数据总线(d_bus)alu-galum cns3s2s1s0暂存器lt1暂存器lt2ldr1ldr2移位寄存器m s1 s0g-299输入设备dij-g微控器脉冲源及时序指令寄存

5、器ldir图中所有控制信号lpcpc-g程序计数器loadlar地址寄存器存储器 6116cewe输出设备d-gw/rcpu 图 1 整机的逻辑框图图1-1中运算器alu由u7-u10四片74ls181构成,暂存器1由u3、u4两片74ls273构成,暂存器2由u5、u6两片74ls273构成。微控器部分控存由u13-u15三片2816构成。除此之外,cpu的其他部分都由ep1k10集成。存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00h-ffh。输出设备由底板上的四个led数码管及其译码、驱动构成,当d-g和w/r均为低电平时将数据总线的数据送入数码管显

6、示。在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74ls244构成,当dij-g为低电平时将16位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低8位有效。2.指令系统的设计2.1数据格式 数据格式:采用定点补码表示法表示数据,字长为8位,格式如下:76 5 4 3 2 1 符 号 尾 数 表1 数据格式其中第7位符号位,数值表示范围是:-1x12.2指令格式:(1)算术逻

7、辑指令 设计9条单字长算术逻辑指令,寻址方式采用寄存器直接寻址。其格式如下:7 6 5 43 21 0op-codersrd 表2寻址方式其中op-code为操作码,rs为源寄存器,rd为目的寄存器,并规定:rs或rd选定寄存器00r001r110r2 表3寄存器表9条算术逻辑指令的名称、功能和具体格式见表3。(2)存储器访问及转移指令 设计的2条访问指令,即存数(sta),取数(lda),2条转移指令,即无条件转移(jmp),结果为零或有进位转移指令(bzc),指令格式如下: 7 65 43 21 000mop-coderdd 表4 存储器的访问表其中op-code为操作码,rd为寄存器。m

8、为寻址模式,d为位移量,d随m的不同其定义也不相同,寻址定义如下:寻址模式m有效地址e说 明00e=d直接寻址01e=(d)间接寻址10e=(r1)+dr1变址寻址11e=(pc)+d相对寻址 表5寻址模式表 注:本机规定变址寄存器r1指定为寄存器r2。(3)i/o指令 输入(in)和输出(out)指令采用单字节指令,格式如下7 6 5 43 21 0op-codeaddrrd 表6 i/o操作码表其中,当op-code=0100且addr=10时,从“数据输入电路”中的开关组输入数据;当op-code=0100且addr=01时,将数据送到“输出显示电路”中的数码管显示。 2.3指令系统本实

9、验共有7条基本指令,其中算术逻辑指令9条,访问内存指令和程序控制指令2条。输入输出指令2条。下面列出了各条指令的格式、汇编符号和指令功能。 汇编符号指令的格式功 能mov rd,rs add rd,rs sub rd,rs 1000 rs rd 1001 rs rd 1010 rs rd rs rd rs+rd rdrd-rs rdinc rdand rd,rsnot rdror rd 1011 rd rd 1100 rs rd 1101 rd rd 1110 rd rd rd+1 rdrsrd rdrd rd rd rol rd 1111 rd rd rd mov d,rd 00 10 00

10、 rd d rd d mov rd, d 00 10 01 rd d d rd mov rd, d 00 00 01 rd d d rd jmp d 00 00 10 00 din rd, kinout disp,rd 0100 10 rd 0100 01 rd kin rd rd disp 表7 指令格式3微操作控制部件的设计。3.1微指令编码的格式设计设计三个控制操作微程序:存储器读操作(mrd):拨动清零开关clr对地址、指令寄存器清零后,指令译码输入ca1、ca2为“00”时,按“单步”键,可对ram连续读操作。存储器写操作(mwe):拨动清零开关clr对地址、指令寄存器清零后,指令译

11、码输入ca1、ca2为“10”时,按“单步”键,可对ram连续写操作。启动程序(run):拨动清零开关clr对地址、指令寄存器清零后,指令译码输入ca1、ca2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行 24232221201918171615 14 1312 11 109 8 7654321s3s2s1s0mcnwe1a1bf1f2f3ua5ua4ua3ua2ua1ua0 表8 本系统的微程序字长共24位,其控制顺序其中ua5-ua0为6位的后续的微地址,f1、f2、f3为三个译码字段,分别由三个控制位译码出多位。f3字段包含p1-p4四个测试字位。其功能是根

12、据机器指令及相应微代码进行译码,使微程序转入相应的位地址入口,从而实现微程序的顺序、分支、循环运行。3.2微操作控制信号设计微指令中个控制位的含义如下:s3、s2、s1、s0、m、cn是控制运算器的逻辑和算术运算的微命令。we是写内存的微命令,状态“1”有效。1a、1b是输入电路选通、内存ram选通、输出led选通控制微命令,分别对应状态“11”、“10”、“01”。 状态“00”为无效。f1、f2、f3为三个译码字段,分别由三个控制位经指令译码电路74138译码输出8种状态,前7种状态分别对应一组互斥性微命令中的一个,状态“111”为无效。f3字段包含p1- p4四个测试字位。其功能是根据机

13、器指令代码及相应微指令代码进行译码测试,使微程序转入相应的微地址入囗,从而实现微程序的顺序、分支、循环运行。 f1字段f2字段f3字段15 14 13选择12 11 10选择9 8 7选择0 0 0ldri0 0 0rag0 0 0p10 0 1load0 0 1alu-g0 0 1ar0 1 0ldr20 1 0rcg0 1 0p30 1 1自定义0 1 1自定义0 1 1自定义1 0 0ldr11 0 0rbg1 0 0p21 0 1lar1 0 1pc-g1 0 1lpc1 1 0ldir1 1 0299-g1 1 0p 41 1 1无操作1 1 1无操作1 1 1无操作 表9 、三个字

14、段的编码方案控制操作为p4测试,它以ca1、ca2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。机器指令的执行过程如下:首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这就是“取指”过程。之后必须对操作码进行p1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程。然后才顺序执行该段微程序,这是真正的指令执行过程。在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指

15、令执行的操作也是相同的,这些微指令称为公用微指令。3.3微程序顺序控制方式设计3.3.1微程序控制部件组成原理1 运算器单元(alu uint)运算器单元由以下部分构成:两片74ls181构成了并串型8位alu;两个8位寄存器dr1和dr2为暂存工作寄存器,保存参数或中间运算结果。alu的s0s3为运算控制端,cn为最低进位输入,m为状态控制端。alu的输出通过三态门74ls245连到数据总线上,由alu-b控制该三态门。2 寄存器堆单元(reg unit)该部分由3片8位寄存器r0、r1、r2组成,它们用来保存操作数用中间运算结构等。三个寄存器的输入输出均以连入数据总线,由ldri和rs-b

16、根据机器指令进行选通。3 指令寄存器单元(ins unit)指令寄存器单元中指令寄存器(ir)构成模型机时用它作为指令译码电路的输入,实现程序的跳转,由ldir控制其选通。4 时序电路单元(state unit)用于输出连续或单个方波信号,来控制机器的运行。5 微控器电路单元(microcontroller unit)微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释或执行的工作。由输入的w/r信号控制微代码的输出锁存。由程序计数器(pc)和地址寄存器(ar)实现程序的取指功能。6 逻辑译码单元(log unit)用来根据机

17、器指令及相应微代码进行译码使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,及工作寄存器r0、r1、r2的选通译码。7 主存储器单元(main mem)用于存储实验中的机器指令。8 输入输出单元(input/output device)输入单元使用八个拨动开关作为输入设备,sw-b控制选通信号。输出单元将输入数据置入锁存器后由两个数码管显示其值。 图2 微程序控制原理图3.3.2微程序入口地址形成方法由于每条机器指令都需要取指操作,所以将取指操作编制成一段公用微程序,通常安排在控存的0号或特定单元开始的一段控存空间内。每一条机器指令对应着一段微程序,其入口就是初始微地址。首先

18、由“取指令”微程序取出一条机器指令到ir中,然后根据机器指令操作码转换成该指令对应的微程序入口地址。这是一种多分支(或多路转移)的情况,常用三种方式形成微程序入口地址。(1)一级功能转移如果机器指令操作码字段的位数和位置固定,可以直接使操作码与入口地址码的部分位相对应。例如,某计算机有16条机器指令,指令操作码用4位二进制数表示,分别为0000、0001、1111。现以字母q表示操作码,令微程序的入口地址为q11b,例如000011b为mov指令的入口地址,000111b为add指令的入口地址,001011b为sub指令的入口地址。由此可见,相邻两段微程序的入口地址相差4个单元(2)二级功能转

19、移 若各类指令的操作码的位数和位置不固定时,需采用分级转移,第一次先按指令类型标志转移,以区分出指令属于哪一类,如单操作数指令、双操作数指令等。在每一类机器指令中的操作码的位数和位置应当是固定的,第二次即可按操作码区分出具体是哪条指令,以便转移到相应微程序入口。 (3)通过pla电路实现功能转移 可编程逻辑阵列pla实质上是一种译码-编码阵列,具有多个输入和多个输出,pla的输入是机器操作码和其他判别条件,pla的输出就是相应微程序的入口地址,这种方法对于变长度、变位置的操作码的处理更为有效而且转移速度较快。3.3.3控存的下地址确定方法在转移到一条机器指令对应的微程序入口地址后,则开始执行微

20、程序,每条微指令执行完毕时,需根据其中的顺序控制字段的要求形成后继微指令地址。 (1)增量方式(顺序-转移型微地址) 这种方式和机器指令的控制方式相类似,它也有顺序执行、转移和转子之分。顺序执行时,后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,微程序控制器中应当有一个微程序计数器(pc)。为了降低成本,一般情况下部是将微地址寄存器ar改为具有计数功能的寄存器以代替pc。在非顺序执行微指令时,用转移微指令实现转移。转移微指令的顺序控制字段分成两部分:转移控制字段(bcf)与转移地址字段(baf) “起始和转移地址发生器”的功能有两

21、个:其一是当一条新的机器指令装入ir时,它就形成机器指令的微程序段的起始地址且装入pc,而且随着节拍电位信号的到来,pc自动地增加一个增量,以便连续地从cm中读出微指令,相应的微操作控制信号按规定顺序发送到cpu的各个部分。第二个功能是当微指令指示其测试状态标志、条件代码或机器指令的某些位时,它就对指定的条件进行测试,若满足转移条件,就把新的转移地址装入pc,实现转移;否则不装入新地址,微程序就顺序执行。所以,每次从cm中取出一条新的微指令时,pc都增加,只有下列情况例外: 遇到end微指令时,就把“取指”微程序的入口地址装入pc,开始取指令周期; 当一条新的指令装入ir时,就把该指令的微程序

22、的入口地址装入pc; 遇到转移微指令且满足转移条件时,就把转移地址装入pc。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在cm的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。 (2)断定方式 断定方式与增量方式不同,它不采用pc,微指令地址由微地址寄存器ar提供。在微指令格式中,设置一个下地址字段,用于指明下一条要执行的微指令地址。当一条微指令被取出时,下一条微指令的地址(即下地址字段)送ar。它相当于每条微指令都具有转移微指令的功能。采用这种方法就不必设置专门的转移微指令,但增加了微指令字的长度。 (

23、3)增量方式与断定方式的结合 这种控制方式中,微地址寄存器ar有计数的功能(断定方式中的微地址寄存器ar无计数功能),但在微指令中仍设置一个顺序控制字段,这是一种增量方式与断定方式相结合的方式。其顺序控制字段一般由两部分组成:顺序地址字段和测试字段。3.3.4微程序在控存中的分布情况3.4微程序设计:3.4.1写出每条指令对应的微程序流程图控制开关 00 p(4)测试 mwe(01) mrd(00) run(11) pc ar,pc+1 11 pc ar,pc+1 10 13 (d_input) d_bus lt1 14 ram d_bus lt1 12 01 lt1 ram 74 lt1 l

24、ed 73 图3 微程序流程图 图4 微程序流程图3.4.2写出每段微程序中各微指令的二进制编码、16进制编码 微地址s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000000000000000111111110001000000001000000000101101101000010000010000000010 110111111111101000110000000010 101111111100101000111000000010 101111 111100101001000000000000 101 101 101001010001001000000000 10

25、1101 101001100001010000000010 100111111111011001011000000000111111111000001001100000000011 100111111111100010000000000000101101 101100101010010000000000 101101101000111010011000000000 101 101 101000110010100000000000111111100010101010101000000101111 010111000001010111000000011 0001111110000010110000

26、00000000 000 000111000001011001000000000100 000111101010011010000000000 100 000111101100011011000000000 100 000111110010011100000000000 100 000111110011011101000000000 100 000111110110011110001100000 111 000111110111011111001100000 000 000111111001100000000000110111100111000001100001000000010 000111

27、111000001100010000000010 001 111 101000001100101000000000111 111 100100000101010000000000010010111101011101011100101000000001111000001101100000000000010100111101101101101011000000000 001111000001110010000000000000001111000001110011000000000010010111110101110101101110000000001111000001110110000011000

28、000001111000001110111001000000111110111111000111000000000000000110111000001111001000100000111110111111010111010000000000000110111000001111011000001101111001111001000111100111111110111001111001001111101000000010110111000010000 表10为根据本实验程序流程图设计的二进制微代码表3.4.3写出每段微程序在控存中的存放位置。 微地址(八进制)微地址(二进制)微代码(十六进制)00

29、000000007f8801000001005b4202000010016ffd03000011014fc404000100015f2005000101015fc606000110014fc707000111015f2010001000005b4a11001001005b4c12001010014ffc11400110001cffce160011100025cf170011119453e520010000005b4321010001005b4522010010005b4d23010011005b6624010100018fc125010101

30、02f5c126010110007fd6270101113c03c1300110000001c1310110010041ea320110100021ec330110110041f2340111000041f3350111010041f6360111103001f7370111113001f940100000010fc1411000010379c142100010011f4143100011007ea444100100007fc14510010184492046100110014fe747100111002be850101009459e951101001944920521010100025eb5

31、31010119403fe541011000049ed551011010449ee561011100c49ef571011110049f0601100000c7f31611100019403c1621100100003c1631100110025f56411010004134165110101b803c1661101100c03c167110111287df870111000000dc171111001187dfa72111010000d3c874111100ff73c975111101016e10761111100041c1 表11二进制代码表4设计组装实验计算机接

32、线表 图5 单片机键盘实验连线图5编写调试程序:要写出调试程序、每条指令所对应的机器码(16进制编码)、程序在内存中的存放位置。地址(十六进制) 指令(十六进制) 助记符00 44 in r001 45 in r1 02 86 mov r1,r003 a1 sbc r0,r104 c2 and r0,r2 05 061h sta addr,r106 59 out r107 5a out r208 0800 jmp09 01 0a 0注:其中sta、lda、jmp为双字长(16位),其余为单字长指令。对于双字长指令,第一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数二实验计算机

33、的组装连接硬件系统,如图5连线图三实验计算机的调试1.调试前准备1、按照实验指导说明书连接硬件系统 2、启动实验软件,打开实验课题菜单,选中实验课题打开实验课题参数对话窗口:微指令操作: 图6 读写微指令格式 1)写:在编辑框中输入实验指导书中的微指令程序(格式:两位八进制微地址+空格+六位十六进制微代码),或直接打开随机附带的程序ex8.msm,将实验箱上的k4k3k2k1拨至“0010”写状态,然后按写入按钮,微程序写入控制存储器电路; 2)读:将实验箱上的k4k3k2k1拨至“0100”读状态,在“读出微地址”栏中填入两位八进制地址,按读出按钮,则相应的微代码显示在“读出微代码”栏中; 3)保存:按保存按钮,微程序代码保存在一给定文件(*.msm)中; 4)打开:按打开按钮,打开已有的微程序文件,并显示在编辑框中 机器指令操作: 图7 读写机器指令格式 1)写:在编辑框中输入实验指导书中机器指令程序(格式:两位十六进制地址+空格+2位或 4位十六进制代码),或直接打开随机附带的程序ex8.asm,将实验箱上的k4k3k2k1拨至 “0101”运行状态,拨动“clr”开关对地址和微地址清零,然后按写入按钮,机器指令写 入存储器电路;注:对于8位机,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论