目录1模型机设计方案及步骤 (2)1.1设计方案 (2)2指令格式 (4)2.1指令格式 (4)2.2指令集 (5)3数据通路 (6)4指令操作流程 (6)5微操作控制信号的逻辑表达式 (14)6微信号简化 (18)7微信号电路图 (18)8模型机微控制信号连线图 (19)9总结与体会 (20)10附录 (21)模型计算机的设计1模型机设计方案及步骤1.1设计方案本次课程设计主要任务是设计一模型计算机并利用组合逻辑控制器或微程序进行设计,且至少实现4条CPU指令(从ADD,SUB,XOR,AND,OR中选择)。
在此我选择使用组合逻辑控制器(硬连线)方式设计,并实现ADD,SUB,AND,OR四条指令。
四条指令意义如下:ADD数学计算两个数的和SUB数学计算两个数的差AND逻辑运算两个数的并OR逻辑运算两个数的或对于以上设计的理由如下:1.对于方式的选取我们选取硬连线实现,因为此次我们设计的模型机较为简单,而且采用元件较少,我们采用硬连线可以使用最少的元件从而取得较高的操作速度。
2.对于字长的选取,多方面考虑后,基于资源和设计的需要可以采用八位字长。
由于共有四条指令,为了满足选取所以选取其中2位作为OP操作,由于在对数的操作中不仅涉及到对数据的存储还会牵连到指令的操作,在此指令的操作有四条指令所以必须有四个储存单元,加上存储数据的一个单元,一共需要五个单元,再由于计算机存储字长值的限制,选不出5个存储单元的字长。
所以至少为3位,其中给出的是8个存储单元,对于寄存器,只有一个数据需要存储,所以1位就行了,但是考虑到计算机存储的限制,所以我们可以把后3位扩展给它。
所以共有8位。
其中3位表示内存单元地址,用3位表示寄存器编号。
加上两个必须的寄存器,其中寄存器有R0、R1、PC、IR。
3.对于内存的选取我们在实际过程中买不到这么小的内存,所以实际操作中可以将前几位置零(接地),用后几位表示即可。
最终根据以上理由我们规定它有8位的数据线D[7:0],执行4条指令,每条指令的长度为1byte,因而它有6位的地址线A[5:0] 。
它可以存取的存储器为64byte(1byte=8bits)我们为该CPU定义以下寄存器:➢地址寄存器 AR[5:0],保存6位地址。
➢程序计数器 PC[5:0],保存下一条指令的地址。
➢数据寄存器 DR[7:0],接受指令和存储器来的数据。
➢指令寄存器 IR[1:0],存储指令操作码。
1.2设计步骤1)定义指令集以及指令格式;2) 构造数据通路(含控制门和微操作);3) 根据CPU的结构,画出指令操作流程图;4) 编排指令操作时间表,即把指令操作流程图中的微操作落实到不同的CPU周期和节拍中;5) 根据全部指令的指令操作流程,写出每个微操作控制信号的逻辑表达式;6) 综合、化简微操作逻辑式;7) 用与、或、非等门电路画出产生微控制信号的逻辑控制电路。
【2】2指令格式2.1指令格式由以上分析可知由于指令总数为4 ,所以用2位可以表示所有指令,采用二地址指令,指令格式为:7 6 5 3 2 0OP(2位)A1(3位)A2(3位)2.2指令集具体详解如下:7 6 5 3 2 0OP(2位)A1(3位)A2(3位)00----ADD01----SUBIR7-IR610----AND11----OR用指令中的3位表示内存单元地址,用3位表示寄存器编号,000表示R0,001表示R1。
其中A S为储存器地址,A R为寄存器地址。
其中ADD的指令格式为:00 A S(3位)A R(3位)SUB的指令格式为:01 A S(3位)A R(3位)AND的指令格式为:10 A S(3位)A R(3位)OR的指令格式为:11 A S(3位)A R(3位)由上可知其助记,功能如下:ADD A S A R A S+A R——>A SSUB A S A R A S-A R——>A SAND A S A R A S&A R——>A SOR A S A R A S | A R——>A S3数据通路4指令操作流程时序控制:采用同步控制方式,用定长指令周期方案。
采用3个CPU周期分别是IF、DOF、EXE,每CPU周期有4个等宽度的节拍电位,每个节拍电位有1个节拍脉冲指令执行流程:(A).指令ADD R0,(R1)指令(RS型指令)的执行流程•指令功能:(R0)+((R1))→((R1))•即把R0 的内容为地址的数据和R1的内容为地址的地址的单元的数据相加,结果放在(R1)所指向的内存单元中1) 取指周期IF的执行流程STARTIFT0:PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add T1:READ, ALU→BUS, BUS→PCT2:DR→BUS, BUS→IRT3:1→DOF2) 取目的操作数周期DOF 的执行流程DOFT0:RI->BUS,BUS->LAT1:IR_Addr->BUS,BUS->ART2:READT3:DR->BUS,BUS->LB,1->EXE3) 执行周期EXE 的执行流程EXET0:AddT1:ALU->BUS,BUS->RiT2:NOP(空操作)T3:1->IFCPU周期节拍电位微操作IF T0PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add T1READ, ALU→BUS, BUS→PCT2DR→BUS, BUS→IRT31→DOFDOF T0RI->BUS,BUS->LAT1IR_Addr->BUS,BUS->ART2READT3DR->BUS,BUS->LB,1->EXEEXE T0AddT1ALU->BUS,BUS->Ri T2NOP(空操作)T31->IF(B).指令SUB R0,(R1)的执行流程•该指令的功能:(R0)-((R1))→((R1))•即把R0 的内容为地址的数据和R1的内容为地址的地址的单元的数据相减,结果放在(R1)所指向的内存单元中该指令流程为:1) 取指周期IF的执行流程STARTIFT0:PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add T1:READ, ALU→BUS, BUS→PCT2:DR→BUS, BUS→IRT3:1→DOF2) 取目的操作数周期DOF 的执行流程DOFT0:RI->BUS,BUS->LAT1:IR_Addr->BUS,BUS->ART2:READT3:DR->BUS,BUS->LB,1->EXE3) 执行周期EXE 的执行流程EXET0:SubT1:ALU->BUS,BUS->RiT2:NOP(空操作)T3:1->IFCP周期节拍电位微操作IF T0PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add T1READ, ALU→BUS, BUS→PCT2DR→BUS, BUS→IRT31→DOFDOF T0RI->BUS,BUS->LAT1IR_Addr->BUS,BUS->ART2READT3DR->BUS,BUS->LB,1->EXEEXE T0SubT1ALU->BUS,BUS->Ri T2NOP(空操作)T31->IF(C). 指令AND R0,(R1)的执行流程•该指令的功能:(R0)&((R1))→((R1))•即把R0 的内容为地址的数据和R1的内容为地址的地址的单元的数据相与,结果放在(R1)所指向的内存单元中该指令的执行流程为:1) 取指周期IF的执行流程STARTIFT0:PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add T1:READ, ALU→BUS, BUS→PCT2:DR→BUS, BUS→IRT3:1→DOF2) 取目的操作数周期DOF 的执行流程DOFT0:RI->BUS,BUS->LAT1:IR_Addr->BUS,BUS->ART2:READT3:DR->BUS,BUS->LB,1->EXE3) 执行周期EXE 的执行流程EXET0:AndT1:ALU->BUS,BUS->RiT2:NOP(空操作)T3:1->IFCPU周期节拍电位微操作IF T0PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add T1READ, ALU→BUS, BUS→PCT2DR→BUS, BUS→IRT31→DOFDOF T0RI->BUS,BUS->LAT1IR_Addr->BUS,BUS->ART2READT3DR->BUS,BUS->LB,1->EXEEXE T0AndT1ALU->BUS,BUS->Ri T2NOP(空操作)T31->IF(D). 指令OR R0,(R1)的执行流程•该指令的功能:(R0)|((R1))→((R1))•即把R0 的内容为地址的数据和R1的内容为地址的地址的单元的数据求或,结果放在(R1)所指向的内存单元中该指令的执行流程为:1) 取指周期IF的执行流程STARTIFT0:PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,AddT1:READ, ALU→BUS, BUS→PCT2:DR→BUS, BUS→IRT3:1→DOF2) 取目的操作数周期DOF 的执行流程DOFT0:RI->BUS,BUS->LAT1:IR_Addr->BUS,BUS->ART2:READT3:DR->BUS,BUS->LB,1->EXE3) 执行周期EXE 的执行流程EXET0:OrT1:ALU->BUS,BUS->RiT2:NOP(空操作)T3:1->IFCPU周期节拍电位微操作IF T0PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add T1READ, ALU→BUS, BUS→PCT2DR→BUS, BUS→IRT31→DOFDOF T0RI->BUS,BUS->LAT1IR_Addr->BUS,BUS->ART2READT3DR->BUS,BUS->LB,1->EXEEXE T0OrT1ALU->BUS,BUS->Ri T2NOP(空操作)T31->IF5 微操作控制信号的逻辑表达式 ● PC → BUSOR AND SUB ADD ••+••+••+••=→0000T IF T IF T IF T IF BUS PC● BUS →AR11110000T DOF OR T DOF AND T DOF SUB T DOF ADD OR T IF AND T IF SUB T IF ADD T IF AR BUS ••+••+••+••+••+••+••+••=>-● BUS → LA0000000T DOF OR T DOF AND T DOF SUB T DOF ADD T IF OR T IF AND T IF SUB T IF ADD LA BUS ••+••+••+••+••+••+••+••=→● Clear0000T IF OR T IF AND T IF SUB T IF ADD clear ••+••+••+••=● 1 → C0000001T IF OR T IF AND T IF SUB T IF ADD C ••+••+••+••=→● Add0000T EXE ADD T IF OR T IF AND T IF SUB T IF ADD Add ••+••+••+••+••=● READ22221111T DOF OR T DOF AND T DOF SUB T DOF ADD T IF OR T IF AND T IF SUB T IF ADD READ ••+••+••+••+••+••+••+••=● ALU → BUS11111111T EXE OR T EXE AND T EXE SUB T EXE ADD T IF OR T IF AND T IF SUB T IF ADD BUS ALU ••+••+••+••+••+••+••+••=→● BUS → PC1111T IF OR T IF AND T IF SUB T IF ADD PC BUS ••+••+••+••=→ ● DR → BUS33332222T DOF OR T DOF AND T DOF SUB T DOF ADD T IF OR T IF AND T IF SUB T IF ADD BUS DR ••+••+••+••+••+••+••+••=→● BUS → IR2222T IF OR T IF AND T IF SUB T IF ADD IR BUS ••+••+••+••=→● IR_Addr → BUS1111_T DOF OR T DOF AND T DOF SUB T DOF ADD BUS Addr IR ••+••+••+••=→● BUS → LB3333T DOF OR T DOF AND T DOF SUB T DOF ADD LB IBUS ••+••+••+••=→● BUS → Ri1111T EXE OR T EXE AND T EXE SUB T EXE ADD Ri BUS ••+••+••+••=→ ● Ri → BUS0000T DOF OR T DOF AND T DOF SUB T DOF ADD BUS Ri ••+••+••+••=→ ● 1 → DOF33331T IF OR T IF AND T IF SUB T IF ADD DOF ••+••+••+••=→ ● 1 → EXE33331T DOF OR T DOF AND T DOF SUB T DOF ADD EXE ••+••+••+••=→1 → IF33331T EXE OR T EXE AND T EXE SUB T EXE ADD IF ••+••+••+••=→6 微信号简化T3EXE = IF → 1T3DOF = EXE → 1T3IF = DOF → 1BUS) → R1 BUS, → R0再译译码得( T0 DOF = BUS → Ri R1) →BUS R0, → BUS 再译译码得( T1 EXE = Ri → BUS T3DOF = LB → BUS T1 DOF = BUS →IR_Addr T2 IF = IR → BUS T3 DOF +T2 IF = BUS → DR T1IF = PC → BUS T1 EXE +T1IF = BUS → ALU T2 DOF +T1IF = READ T0 EXE ADD +T0 IF = Add T0IF = C0 → 1T0;IF =Clear + T0 IF = AR → BUS T0;IF = BUS → PC 1•••••••••••••••••••••••T DOF7 微信号电路图8模型机微控制信号连线图9总结与体会这次课程设计中,基于前几次实验中,对计算机的大致组成以及运行原理有了初步的了解,并且对实验板也比较熟悉了,所以按照实验连接图连线也比较上手了,经过那么多次实验,觉得连线最重要的就是认真,如果一开小差就会出错,每连完一条线之后,都要检查一遍,看是否连错,这告诉我们,做每一件事都要认认真真的完成,容不得一丝马虎,否则只会落得个事倍功半的效果。