计算机组成原理课程设计—硬布线控制器的设计与实现_第1页
计算机组成原理课程设计—硬布线控制器的设计与实现_第2页
计算机组成原理课程设计—硬布线控制器的设计与实现_第3页
计算机组成原理课程设计—硬布线控制器的设计与实现_第4页
计算机组成原理课程设计—硬布线控制器的设计与实现_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、硬布线控制器的设计与调试一、教学目的、任务与实验设备-教学目的1. 融会贯通计算机组成原理课程和计算机系统结构课程的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对硬布线控制器的认识。2. 学习运用ISP (在系统编程)技术进行设计和调试的基本步骤和方法, 熟悉集成开发软件中设计调试工具的使用, 体会ISP技术相对丁传统开发技术的 优点3. 培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。-教学任务1. 按给定的数据格式和指令系统,在所提供的器件范围内,设计一台硬布 线控制器控制的模型计算机。2. 根据设计图纸,在通用实验台上进行组装,并调试成

2、功。3. 在组装调试成功的基础上,整理出设计图纸和其他文件。-实验设备微操作控制信号B1Bn硬布线控制器结构方框图1. TEO 4计算机组成原理实验系统一台2. 直流万用表一只3.集成电路建议使用ISP芯片(一片ispLSI1032 )。采用ISP器件,WJ需 要一台PC机运行设计自动化软件(例如ispEXPERT)乍设计、编程和下载使用。二、总体设计思路(描述指令系统,给数据通路)采用与模型计算机相同的指令系统,即 12条机器指令。实验设计中采用该 指令系统的子集:去掉中断指令后的 3条机器指令,只保留9条指令。采用的数据通路和微程序控制器方案相同。-数据通路图和数据通路控制信号DBUST4

3、 ALUBUSS2S1S0口 ALUDR1DR2MUX1MUX2M22hLDDR2(T3)INSCEL#指令瑞口1效慵缅IRAMCERLRW(T3LDAR1(T4)AR1INAR14卜IIAR2LDDR1(T3)M1RSBUSIAR_BUS#x瞬口Aw 口WR、1 WR0RFWRD(T2)LDER(T4)RD1 RD0ERSWSW0 SW7控制器LDAR2(T2)MUX3M3DBUSLDPC(T4)PCLDIARALU2DBUSLDIR(T4)IRG INTQI 1IAR11 1R4LDR4(T2)MUX4M4PCADDPCINCWR、1 WR0RD1 RD0RS1 RS0图4数据通路总体图控

4、制器的设计思路硬布线控制器能够实现控制功能,关键在丁它的组合逻辑译码电路。译码 电路的任务就是将一系列有关指令、时序等的输入信号,转化为一个个控制信 号,输出到各执行部件中。根据硬布线控制器的基本原理,针对每个控制信号S,可以列出它的译码函数S = f( Im, Mi, Tk, Bj ) 其中Im是机器指令操作码译码器的输出信号, Mi是节拍信号发生器的节拍信号,Tk是时序信号发生器的时序信号,Bj是状态 条件判断信号。在TEA4计算机组成原理实验系统中,因为时序信号 Tk (T1-T4)已经直 接输送给数据通路,所以译码电路不需 Tk作为输入。乂因为机器指令系统比较 简单,操作码只有4位,不

5、需要专门的操作码译码器,因此Im直接就是操作码, 即指令寄存器的IR4-IR7信号。Mi的来源就是时序模块的节拍信号,例如 W4 W1 Bj的信号包括:1. 来自数据通路中运算器 ALU的进位信号C;2. 来自控制台的开关信号 SWC SWB SWA3. 其他信号。其中c、swcsw/W swBW号在微程序控制器中同样存在,不用加以解释。 由丁硬布线控制器设计和微程序控制器设计的不同需求和特点以及控制器的设 计方案的不同,可能需要其他信号,也可能不需要其他信号,根据设计方案而定。每个控制信号的函数式都是上述输入信号的逻辑表达式,因此可以用各种 组合逻辑构造电路网络,实现这些表达式的逻辑功能。理

6、论上,只要对所有控制 信号都设计出译码函数,这个硬布线控制器的方案也就得到了。根据要求,列出所需的控制台指令和机器指令控制台指 令名称指令功能指令格式SWCSWBSWAKRR读寄存器堆方式100KRD读双端口存储器方式001KWE写双端口存储器方式010KLD加载寄存器堆方式011PR启动程序方式000机器指令 名称助记符指令功能指令格式R7R6R5R4R3R2R1R0加法ADD Rd,RsRd+Rs->Rd0000RS1RS0RD1RD0减法SUB Rd,RsRd-Rs->Rd0001RS1RS0RD1RD0乘法MUL Rd,RsRd*Rs->Rd0010RS1RS0RD1

7、RD0逻辑与AND Rd,RsRd&Rs->Rd0011RS1RS0RD1RD0存数STA Rd,R sRd-> R s0100RS1RS0RD1RD0取数LDA Rd,R sRs-> Rd0101RS1RS0RD1RD0无条件转移JMP R sRs->PC1000RS1RS0RD1RD0条件转移JC DC=1 PC+D->PC1001D3D2D1D0停机STP暂停运行0110XXXX老师提供的控制台指令流程图:W1SW-BUS#CEL#LRW=0SW-BUS#CEL#LRW=08W2W3W4SW-BUS#LDAR1M3=1LDAR2SSTOTJAR1-I

8、NC TJRS-BUS# TJCERCERLDIRLDIRTJTJSW-BUS# LDER控制台指令流程图在这个控制台里,我们将控制台指令KRR,KRD,KWE,KLD,P降别拆分为KRR1,KRR2,KRD1,KRD2,KWE1,KWE2,KLD1,KLDPR1,PR2 每个小指令分别占用W1-W,啊个节拍。分2次执行完成。控制台控制信号作用:控制信号信号作用信号有效条件C在加法运算和减法运算时产生的进位信号T4上升沿ALU_BUS允许运算结果送往数据总线1LDDR1M1=0时DR1接收和器堆 A端口数据T3下降沿M1= 1时DR1接收数据总线 DBUS据LDDR2M2=0时DR2接收和器堆

9、B端口数据T3下降沿M2=1时DR2接收数据总线DBUS据WRD控制双端口寄存器堆 RF的写操作1且T2上升沿RS_BUS#控制RF的B端口数据是否能送 DBUS±0LDER将DBU出的数据打入暂存寄存器ER1且T4上升沿SW_BUS#将SW7-SW傲据送往DBUS0CEL#选中双端口存储器 RAM&端口0LRW允许RAM&端口读操作1且T3上升沿允许RAM&端口写操作0且T3上升沿CERRA凹端口读出数据并放到指令总线INS上1禁止右端口操作0LDAR1将DBU敏据打入地址寄存器 AR11且T4上升沿AR1_INCAR1的值加11且T4上升沿LDAR2M3=

10、0时AR2的数据从程序计数器 PC打入1且T2下降沿M3=1时AR2的数据从 DBUS丁入LDR4M4= 1时R4的数据从DBUS丁入1且T2下降沿M4=0时R4的数据从IR0-IR3 打入PC_ADDALU2完成PC和IR低4位相加即PC+D1PC_INCPC+11LDPC程序计数器PC接收来自DBUS勺地址1且T4上升沿LDIR将来自RAM勺指令打入指令寄存器IR1且T4上升沿S2,S1,S0选择运算器ALU的运算类型1三、设计方案设计硬布线控制器的控制流程,也就是解决Mi、Im、Bj如何起作用的问题c 设计微程序控制器时可以使用流程图,设计硬布线控制器同样可以使用流程图。 微程序控制器的

11、控制信号以微指令周期为时间单位,硬布线控制器以节拍为时间单位,两者本质上是一样的,1拍和1个微指令周期都是从时序T1的上升沿到T4的下降沿的一段时间。在微程序控制流程图中,1个执行框代表1个微 指令周期,而在硬布线控制流程图中,1个执行框就代表1拍。执行一条机器指令所需的微指令数目,在硬布线控制器中相当于机器指令 所需的节拍数。决定执行一条指令需要的节拍数, 要根据所有指令而定。既不能 只考虑某些需要最多节拍的指令,也不能只考虑节拍数最少的指令,一般要根据 大多数机器指令所需的节拍数而定,设计才比较合理。在本实验中,由于选用 4 拍对大多数指令就够用,所以节拍发生器产生 4个节拍信号(WP W

12、4。统一用 4拍执行1条机器指令后,对于所需节拍较少的的指令,例如 JMP指令只用2拍 (忽略中断),剩下2拍就无事可做了。这在可行性上当然没有问题,但在性能 上就打了折扣,因为多余的节拍都浪费掉了。为减少浪费,在时序电路中加入了 一个控制信号SKIP的输入,该信号的作用是使节拍发生器在任意状态下直接跳 到最后1拍(W4。这样,设计控制流程时,在所需节拍较少的的指令流程的适 当位置使SKIP控制信号有效,多余的节拍就可以跳过,从而提高了性能。机器指令选用四拍以后,将一条机器指令的执行化为占用两条(或者更多) 机器指令的节拍,执行一条指令就可以占用W1 W2 W3 W4 W1 W2 W3 W4为

13、了区分一条指令的两个不同阶段,我们加了个ST内部信号作为标志位,当ST=0 时,标志执行指令的前四个节拍,当 ST=1时,标志执行指令的后四个节拍。注 意到只有CLR捌来后的第四拍时ST信号才发生翻转,所以乂设了一个 SSTO言 号作为ST信号的触发信号。具体实现ST-SSTO莫块如下:我们增加了一个标志位 RUN由于按CLR敝 钮复位后,实验系统的时序停止在T4,W4,ST的值为0,这样SSTO=!ST&W4值为 1.按QD启动按钮后,由于立即产生T1信号,在T1的上升沿使ST置1,在第一 组W1,W2,W3,W4, ST的值为1,这是我们不希望看到的。增加了标志位 RU用,按CLR

14、骸钮复位,使RUhfe 0。由于SSTO=!ST*W4*RUN, 因此复位后的SSTO=0g QD启动按钮,在T1的上升沿,使RUN=1根据SSTO 的布尔表达式,在W1,W2,W3时,SSTO=0直至U W4时,才使 SSTO=1由于ST:=CLR#*SSTO#CLR*S W4过后的下一个T1的上升沿,才使 ST置1,从而将 控制台操作的两种状态区分开来。根据控制台指令设计出的硬布线控制器:AW1""p000 PR2M3=0LDAR2CERLDIRW20000ADDM1=0LDDR1M2=0LDDR2W3ALU=A+BALU-BUS LDERW4WRD 0001SUBM1

15、=0LDDR1M2=0LDDR2ALU=A-BALU-BUS LDER0010MULM1=0LDDR1M2=0LDDR20011ANDM1=0LDDR1M2=0LDDR20101LDARS-BUS#LDAR1ALU=A*BALU-BUS LDERWRD 0100STAM2=0LDDR2RS-BUS#LDAR1SKIALU=A ALU-BUS CEL# LRW=01000JMPSKIPRS-BUSM4=1LDR4LDPC1001JCSKIP0110STPSKIPPC-INC硬布线设计指令流程图逻辑状态表:根据硬布线指令流程图画出状态表, 然后根据表格,列写出每个信号的逻辑 表达式,并写出ABEL

16、语言的源程序:(状态表在此文档最后可见。去下载横版:本来是有这个版本的,可以在打印出 来的时候添加到中间空白的这一贞,只可以我上传的那张表,白度未审核通过, 说我的文档质量太低了,虽然我设置的是免费。算了,自己用Excel改一下吧。)四、设计的实现(ABEL-HDI)ABEL语言源代码如下:MODULE ComputeDECLARATIONS"输入管脚SWC, SWB, SWA PIN 3.5;IR7, IR6, IR5, IR4 PIN 6.9;MF,T1, W1,W2,W3,W4, C,CLR PIN 10.17;"输出管脚ALU_BUS, AR1_INC, CEL,

17、CER, LDAR1, LDAR2, LDDR1, LDDR2, LDER, LDIR, LDPC, LDR4,LRW PIN 29.41;PC_INC,PC_ADD,RS_BUS,SW_BUS, WRD, SKIP, TJ, M1,M2,M3,M4,S0,S1,S2 PIN 45.58; "自定义MF1,SSTO NODE ISTYPE 'COM'RUN,ST NODE ISTYPE 'REG'tKRR,tKRD,tKWE,tKLD,tPR NODE ISTYPE 'COM'KRR1,KRD1,KWE1,KLD1,PR1,KRR2,K

18、RD2,KWE2,KLD2,PR2 NODE ISTYPE 'COM'ADD,SUB,MUL,AND,LDA,STA,JMP,JC,STP NODE ISTYPE 'COM'CLK=.C.;EQUATIONSMF1=!CLR&MF#T1&CLR;RUN:=CLR;RUN.CLK=MF1;ST:=CLR&SSTO#CLR&ST;ST.CLK=MF1;SSTO=!ST&RUN&W4;"指令译码部分tKRR=SWC&!SWB&!SW A;tKRD=!SWC&!SWB&SW A;t

19、KWE=!SWC&SWB&!SW A;tKLD=!SWC&SWB&SW A;tPR=!SWC&!SWB&!SW A;KRR1=!ST&tKRR;KRR2=ST&tKRR;KRD1=!ST&tKRD;KRD2=ST&tKRD;KWE1=!ST&tKWE;KWE2=ST&tKWE;KLD1 = !ST&tKLD;KLD2=ST&tKLD;PR1=!ST&tPR;PR2=ST&tPR;ADD=PR2&(!IR7)&(!IR6)&(!IR5)&

20、(!IR4);SUB=PR2&(!IR7)&(!IR6)&(!IR5)&(IR4);MUL=PR2&(!IR7)&(!IR6)&(IR5)&(!IR4);AND=PR2&(!IR7)&(!IR6)&(IR5)&(IR4);LDA=PR2&(!IR7)&(IR6)&(!IR5)&(IR4);STA=PR2&(!IR7)&(IR6)&(!IR5)&(!IR4);JMP=PR2&(IR7)&(!IR6)&(!IR5)&

21、amp;(!IR4);JC=PR2&(IR7)&(!IR6)&(!IR5)&(IR4);STP=PR2&(!IR7)&(IR6)&(IR5)&(!IR4);”数据通路管脚译码ALU_BUS=(ADD#SUB#MUL#AND)&W3#(STA&W4);AR1_INC=(KRD2#KWE2)&W4;CEL=!(KRD2#KWE2#KLD2#KRR2)&W1#(W3&LDA)#(W4&STA);CER=(KLD2#KRR2)&W2#(W1&PR2);LDAR1=W4&

22、;(KRR1#KRD1#KWE1#KLD1)#(W2&LDA)#(W2&STA);LDAR2=W4&(KRR1#KLD1)#(PR2&W1);LDDR1=W2&(ADD#SUB#MUL#AND);LDDR2=LDDR1#(W2&STA);LDER=W3&(KLD2#ADD#SUB#MUL#AND#LDA);LDIR=CER;LDPC=W4&(PR1#JMP#(JC&C);LDR4=LDPC;LRW=W1&KRD2#W3&LDA;M1=!LDDR1;M2=!LDDR2;M3=W4&(KRR1#KLD1

23、);M4=W4&(PR1#JMP);PC_INC=W1&PR2;PC_ADD=W4&JC&C;RS_BUS=!(W2&(LDA#STA)#W4&(KRR2#JMP);SW_BUS=!(W1&(KWE2#KLD2#KRR2)#(W3&KLD2)#(W4&!ST);S0=SUB#STA;S1=ADD#SUB;S2=MUL;SKIP=W1&!ST#(W1&(KRD2#KWE2)#(W2&(KRR2#STA)#W2&(JMP#JC#STP);TJ=W1&KRD2#W2&KLD2#W4

24、&(tKRR#tKWE#tKLD)#W4&STP;WRD=W4&(KLD2#ADD#SUB#MUL#AND#LDA);END对程序进行编译,无误后下载到芯片。连线,调试,验收连线按照ABEL程序里面对管脚的定义连线寄存器和内存单元内容:寄存器存入内容内存单元存入内容R260H60H24HR361H61H83H内存单元内容60H24H61H83HR00A7H五、本次设计的体会这是我们计算机专业做的第一个硬件和软件结合的课程设计,个人认为,这 是最好的一个课程设计安排,将学习道德东西用起来,才是最好的结果,锻炼了 我们的动手能力和思考能力。硬布线控制器在课本上没有详细讲解,但却是以前的 CPUS用的布线方式, 想要深入学习硬件知识,了解这些东西是很有必要的。微程序控制器的出现是为 了代替硬布线控制器,如果没有对微程序控制器的工作方式和原理的理解,不可 能设计出硬布线控制器的控制逻辑。所以这次实验,我们对计算机的工作原理有 了更进一步的了解,尤其是指令系统的工作原理,各个部件的工作之间的协调和 配合等。这次课程设计大大锻炼了我们的动手能力,由丁是手工接线,任何一条线出 现问题都会影响到整个系统的执行,幸好我们都很细心的连线,在这方

温馨提示

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

最新文档

评论

0/150

提交评论