计算机组成原理实验报告实验名称:使用硬连线控制器的CPU设计专业班级:计算机科学与技术01学生姓名:贾晓冬宋丽君杨嘉宁肖迪月实验时间:目录1 教学目的、实验设备与任务教学目的 (3)实验设备........................................................... . (3)设计与调试任务........................................................... . (3)2 总体说明 (4)硬连线控制器的基本原理 (4)指令系统..................................................... (4)控制台指令..................................................... (5)数据通路..................................................... (5)控制器指令周期流程图..................................................... (5)控制台控制信号及作用..................................................... (6)3 设计方案 (7)说明及流程图..................................................... (7)逻辑状态表..................................................... (8)4设计的实现 (10)ABEL源代码..................................................... (10)组装、调试及管脚连线..................................................... (11)数据测试及结果..................................................... (13)5本次设计的体会 (14)一、教学目的、实验设备与任务·教学目的1.融会贯通计算机组成原理课程和计算机系统结构课程的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识。
2.掌握硬连线控制器的设计方法‘3.学习运用大容量可编程器件开发技术,掌握设计和调试的基本步骤和方法,体会ISP技术的优点。
4.培养科学研究能力,取得设计与调试的实践经验。
·实验设备TEC-5计算机组成原理实验系统一台Pentium3以上微型计算机一台逻辑测试笔一支·设计与调试任务1.按给定的数据格式和指令系统,利用大容量ISP可编程器件,设计一台硬布线控制器组成的处理机2.根据设计,在TEC-5实验系统中进行调试。
3.在调试成功的基础上,整理出设计图纸和其他文件二、总体说明1、硬连线控制器的基本原理硬布线控制器的基本原理是,每个微操作控制信号S是一系列输入量的逻辑函数,即用组合逻辑电路来实现,S = f( Im, Mi, Tk, Bj )其中Im是机器指令操作码译码器的输出信号,Mi是节拍信号发生器的节拍信号,Tk是时序信号发生器的时序信号,Bj是状态条件判断信号。
在TEC—5实验系统中,时序信号Tk(T1—T4)已经直接输送给数据通路;因为机器指令系统比较简单,操作码只有4位,省去操作码译码器,用Im直接作为操作码,即指令寄存器的IR4—IR7信号。
Mi的来源就是时序模块的节拍信号,例如W3—W1。
Bj的信号包括:来自数据通路中运算器ALU的进位信号C;来自控制台的开关信号SWC、SWB、SWA;其他信号。
其中C、SWC、SWA和SWB信号在微程序控制器中同样存在。
每个控制信号的函数式都是上述输入信号的逻辑表达式,因此可以用组合逻辑构造电路。
只要对所有控制信号都设计出逻辑函数表达式,这个硬布线控制器的方案也就得到了。
2、指令系统,由老师幻灯片中给出4、数据通路5、控制器的指令周期流程图由老师幻灯片给出三、设计方案1、说明硬布线控制器以节拍为时间单位,1拍是从时序T1的上升沿到T4的下降沿的一段时间。
在硬布线控制流程图中,1个执行框代表1拍。
决定执行一条指令需要的节拍数,要根据所有指令而定。
既不能只考虑某些需要最多节拍的指令,也不能只考虑节拍数最少的指令,一般要根据大多数机器指令所需的节拍数而定,设计才比较合理。
在本实验中,由于选用3拍对大多数指令就够用,所以节拍发生器产生3个节拍信号(W1—W3)。
统一用3拍执行1条机器指令后,对于所需节拍较少的的指令,为减少浪费,在时序电路中加入了一个控制信号SKIP的输入,该信号的作用是使节拍发生器在任意状态下直接跳到最后1拍(W3)。
这样,设计控制流程时,在所需节拍较少的的指令流程的适当位置使SKIP控制信号有效,多余的节拍就可以跳过,从而提高了性能。
机器指令选用3拍以后,将一条机器指令的执行化为占用两条(或者更多)机器指令的节拍,执行一条指令就可以占用W1、W2、W3、W1、W2、W3。
为了区分一条指令的两个不同阶段,我们加了个ST内部信号作为标志位,当ST0=0时,标志执行指令的前3个节拍,当ST0=1时,标志执行指令的后3个节拍。
同时设置了一个SSTO信号作为ST信号的触发信号。
具体流程图如下:2、逻辑状态表四、设计的实现(ABEL-HDL)1、ABEL语言源代码如下:MODULE ControllerDECLARATIONS"输入管脚SWC,SWB,SWA PIN;IR7,IR6,IR5,IR4 PIN;W1,W2,W3,MF,T1,C,CLR PIN;"输出管脚RAM_BUS_,ALU_BUS_,RS_BUS_,SW_BUS_,LDIR,LDAR_,AR_1,LDPC_,PC_1,S3,S2,S1,S0 ,Cn_,M,LDDR2,LDDR1,TJ,SKIP,CEL_,CER_,LRW_, LDRi PIN;"自定义MF1,SSTO NODE ISTYPE 'COM';RUN,STO NODE ISTYPE 'REG';RRF,WRF,RRM,WRM,RP,ADD,SUB,AND,STA,LDA,JC,STP,OUT NODE ISTYPE 'COM'; CLK=.C.;EQUATIONSMF1=!CLR&MF#T1&CLR;RUN:=CLR;=MF1;STO:=CLR&SSTO#CLR&STO;=MF1;SSTO=!STO&W3&RUN;"指令译码RRF=SWC&(!SWB)&(!SWA);WRF=(!SWC)&SWB&SWA;RRM=(!SWC)&SWB&(!SWA);WRM=(!SWC)&(!SWB)&SWA;RP=(!SWC)&(!SWB)&(!SWA);ADD=(!IR7)&(!IR6)&(!IR5)&(!IR4)&RP&STO;SUB=(!IR7)&(!IR6)&(!IR5)&IR4&RP&STO;AND=(!IR7)&(!IR6)&IR5&(!IR4)&RP&STO;STA=(!IR7)&(!IR6)&IR5&IR4&RP&STO;LDA=(!IR7)&IR6&(!IR5)&(!IR4)&RP&STO;JC=(!IR7)&IR6&(!IR5)&IR4&RP&STO;STP=(!IR7)&IR6&IR5&(!IR4)&RP&STO;OUT=(!IR7)&IR6&IR5&IR4&RP&STO;"管脚译码LRW_=!((RRF#WRF#WRM)&STO&W1#STA&W3);CEL_=!((RRF#WRF#RRM#WRM)&W1&STO#(STA#LDA)&W3);CER_=!((RRF#WRF)&W2&STO#W1&RP&STO);RAM_BUS_=!(RRM&W1&STO#W3&LDA);ALU_BUS_=!(W3&(ADD#SUB#AND#STA));RS_BUS_=!(W3&(RRF&STO#OUT#JC&C)#W2&(STA#LDA));SW_BUS_=!(W3&(!STO)&(RRF#WRF#RRM#WRM#RP)#W3&STO&WRF#W1&STO&(RRF#WRF#WRM) );LDRi=W3&(WRF&STO#ADD#SUB#AND#LDA);LDDR2=W2&(ADD#SUB#AND);LDDR1=W2&(ADD#SUB#AND#STA);LDAR_=!(W3&(!STO)&(RRF#WRF#RRM#WRM)#W2&(STA#LDA));AR_1=W3&STO&(RRM#WRM);LDPC_=!(W3&(!STO&(RRF#WRF#RP)#JC&C));PC_1=W3&(ADD#SUB#AND#STA#LDA#STP#OUT)#W2&JC;LDIR=!CER_;TJ=W1&STO&RRM#W2&STO&WRF#W3&((!STO)&(RRF#WRF#WRM)#STO&(RRF#WRF#WRM)#STP# OUT);SKIP=W1&((!STO)&(RRF#WRF#RRM#WRM#RP)#STO&(RRM#WRM));S3=W3&(ADD#AND#STA);S2=W3&(SUB#STA);S1=W3&(SUB#AND#STA);S0=W3&(ADD#AND#STA);M=W3&(AND#STA);Cn_=!(W3&SUB);END2、组装与调试对程序进行编译,无误后下载到芯片连线,调试连线按照ABEL程序里面对管脚的定义连线第一步:检查全部硬布线控制流程,以单拍(DP)方式执行指令。