资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
模型机硬连线控制器设计一、实验目的(1)融会贯穿计算机组成原理与体系构造课程各章教学内容,通过知识的综 合运用,加深对CPU个模块工作原理及相互联系的认识;(2)掌握硬连线控制器的设计方法;(3)培养科学研究能力,取得设计和调试的实践经历。二、实验设备(1)TEC-8实验系统1台(2)Pentium 3 以上的 PC1台(3)双踪示波器1台(4)直流万用表1块(5)逻辑测试笔在TEC-8实验台上1支三、设计与调试任务1设计一个硬连线控制器,和TEC-8模型计算机的数据通路结合在一起,构 成一个完整的CPU,对该CPU要求: 能顾完成控制台操作,包括启动程序运行、读存储器、写存储器、读存放 器、写存放器。 能够执行表3.1中的指令,完成规定的指令功能。表 3.1中,XX代表任意值,Rs代表源存放器号,Rs代表目的存放器号。在条件转移指令中,代表当前PC的值,offset是一个四位的有符号数, 第三位是符号位,0代表正数,1代表负数。注意:不是当前指令的PC 值,而是当前指令的PC值加1。表错误!文档中没有指定样式的文字。.1新设计CPU的指令系统名称助记符功能指令格式IR7 IR6 IR5 IR4IR3 IR2IR1 IR0加法ADD Rd,RsRd Rd + Rs0001RdRs减法SUB Rd, RsRd Rd - Rs0010RdRs逻辑与AND Rd,RsRd Rd and Rs0011RdRs加1INC RdRd Rd + 10100RdXX取数LD Rd, RsRd Rs0101RdRs存数ST Rs, RdRs Rd0110RdRsC条件转移JC offset假设C=1,那么PC + offset0111offsetZ条件转移JZ offset假设Z=1,那么PC + offset1000offset无条件转移JMP RdPC Rd1001RdXX输出OUT RsDBUS Rs1010XXRs停机STP暂停运行1110XXXX 在Quartus|下对硬连线控制器进展编程的编译。 将编译后的硬连线控制器下载到TEC-8实验台的可编程器件EPM7128S 中去,使得EPM7128S成为一个硬连线控制器。 根据指令系统,编写检测硬连线控制器正确性的测试程序,并用测试程序 对硬连线控制器在单微指令方式下进展调试,直到成功。2在调试成功的根底上,整理出设计文件。1. 硬连线控制器逻辑模块图;2. 硬连线控制器指令周期流程图;3. 硬连线控制器的硬件描述语言源程序;4. 测试程序;5. 设计说明书;6. 调试总结。四、硬连线控制器逻辑模块图本实验要求设计硬连线控制器,而仍然利用实验台的数据通路和其他模块。因此 我们只需对硬连线控制器局部进展编程就行了。TEC-8模型计算机电路框图如以 下图1。DBUSINS7INS0数据总线CZABUSALULDCAA端口LDR0iDR3| RD1I RD0RDHSEL3)RD0(SEL2)-RSKSEL1)-S0(SEL0)LDZJTT3译码M S0- S1 S2 -GO S3 cinMBUSMTEMTWT2A7A04选1.诜择器人B7 B04选1LDR2LDR0LDR1R2R3R1R0I IDBUS号SBUSSWD仝控制信号切换电路T T T WWWZ CIR7IR4SWCSWAS数据开关SD7SD0pDDNDRWF3-LDR1,LD)R2fcR3LLA组控制信号微程序控制器D7LD0LD7RD0R双端口 RAMA7LA0LA7RARAR7AR0PC7PC0时序发生器DQ-CLR#LARARINC3DBUSLARIABUST3B组控制信号硬连线控制器ARPCCLR#PCADDLCPCINCTIR3IR0IRBUSIARItIPC0IRI W3W1IR7IR4SELCTLDDR0rIIR3IR0SEL3SEL。IRBUS图1 TEC-8模型计算机电路框图从电路框图中可知,硬连线控制器与微程序控制器不同,其产生的控制信号除了 受译码器输出信号SWCSWA、IR7-IR4,节拍电位信号T1T3,状态条件信号 Z、C,以及CLR#的控制外,还受时序发生器产生的节拍脉冲信号W3W1的控 制。硬连线控制器的逻辑模块图为:图2硬连线控制器的逻辑模块图五、硬连线控制器指令周期流程图与微程序控制器不同,硬连线控制器以节拍电位W3W1为时间单位。其指令周期流程图为:ST0=SELCTLSELCTLSTOPSBUS MEMW ARINCSTOP SHORTMBUS ARINC STOP SHORT SELCTLSELCTL DRW STOP SELCTL.DRW-S1OPSBUSSEL3 = 1SEL2 = 0SEL1 = 0SEL0 = 1SELCTLSEL30SEL20SEL10SEL01SELCTLSBUS LAR STOP SST0 SHORT SELCTLSBUSLARSTOPSST0SHORT.SELCTLSBUSSEL3 = 0SEL2 = 1SEL1 = 0SEL0 = 0SELCTLSTOP DRW-.SST0-SBUS00010010001101000101-D0110-Sp-MS = 1010ABUSLARLONGMS = 1111ABUSLARLONG01111000100110101110图3硬连线控制器参考流程图一个执行框代表一个节拍电位时间,TEC-8实验系统中采用了可变节拍数来 执行一条机器指令。从上图中可知,大局部指令只需要两个节拍电位W1和W2, 少数指令还需要W3。因此当需要W3时在W2时产生一个信号LONG。时序信 号发生器收到信号LONG后产生W3。有的操作如写存放器需要四个节拍电位, 将该操作化成两条机器指令的节拍,通过信号ST0联系在一起。还可以只产生 W1,通过SHORT信号实现。根据硬连线流程图还可以得到组合逻辑译码表,如下表2:表2组合逻辑译码表IRADSUANINLSTJMOUSTJCJZDBDCDPTPLIRW1W1W1W1WW1W1W1W1W1W1MW2WW2/WW2W2S3W2W2WW2/WW2W2S2W2W2W2S1W2WW2/WW2W2S0W2W2W2W2CINW2LDCW2W2W2LDZW2W2W2W2DRWW2W2W2W2WABUSW2W2W2W2WW2/WW2W2LARWW2PCADC,WZ,WLPCMBUSWMEMWW3LONGWW2STOPW2PCINCW1W1W1W1WW1W1W1W1W1W1根据译码表,对以后的编程和错误查找有很大的帮助。六、程序编写过程利用Verilog语言,在Modelsim环境下进展编程和仿真。刚开场做实验时心里是茫然的,不知道从哪里开场,无从下手,不知道采用 什么方法,加上对Verilog语言的掌握还不够熟练,因此第一次实验课几乎没有 什么进展。后来通过王教员和唐教员的耐心讲解和指导,明白了可以用两种不同 的实现方法进展编程,但因为个人觉得利用状态机的方法进展编程理解起来思路 较为简单,而且逻辑较为清楚,于是决定利用状态机的方法进展编程。本程序是 在唐教员的程序根底上进展修改的唐教员的还没有完成,但在编程过程中还 是遇到了很多的问题,比方时序问题等。在同学和教员的帮助下,完成了一局部 工作,但程序依然存在着一些问题,结果实验还是没有完全做完。把整个控制器分为四个状态:state0表示初始状态,对所有的信号进展初始 化,表示clear以后的状态,只有STOP有效;state1表示W1有效时的状态,具 体又可以按照SWCSWA的不同进展不同的赋值与操作;state2表示W2有效时 的状态,再根据SW的不同进展赋值;state3表示W3有效时的状态。正常情况下一个状态完成以后进入下一状态,但有很多情况下是不行的,比 方写存储器、读存储器、写存放器等操作。于是需要根据对ST0信号、SHORT 信号、LONG信号等进展判别来进展不同状态之间的转化。具体为:从state0开场,假设sw符合要求5,进入state1,否那么回到state。;state1 :假设执行程序且ST0=0或读存储器或写存储器,那么下一状态仍为 statel,否那么下一状态为state2;state2:假设为执行指令的LD或ST,那么下一状态为state3,假设为写存放 器操作且ST0=0或执行指令但不为LD或ST,那么下一状态为W1,假设都不符 合,下一状态为初始状态state0;state3 :直接回到 statel ;源程序压缩包:CPU为源程序,其余程序为测试程序,程序名字表示所测 试的指令或工作台模式。七、Modelsim仿真过程程序编译成功后,开场编写仿真程序,进展仿真。因为对仿真程序的掌握不 是很完善,刚开场我们组就出了很多问题,不是时序的问题就是赋值的问题。感 谢同学和教员的耐心指导和帮助。因为篇幅问题,在此仅贴出操作台操作和局部 有代表性的指令的仿真过程,ADD, AND, LD, JC, JMP, STP其余仿真代 码在程序包里,因为并没有烧到芯片里,也没有真正的实现,所以实际源程序可 能
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号