计算机组成原理课程设计硬布线控制器的设计与实现.docx

上传人:b****7 文档编号:25238691 上传时间:2023-06-06 格式:DOCX 页数:24 大小:129.45KB
下载 相关 举报
计算机组成原理课程设计硬布线控制器的设计与实现.docx_第1页
第1页 / 共24页
计算机组成原理课程设计硬布线控制器的设计与实现.docx_第2页
第2页 / 共24页
计算机组成原理课程设计硬布线控制器的设计与实现.docx_第3页
第3页 / 共24页
计算机组成原理课程设计硬布线控制器的设计与实现.docx_第4页
第4页 / 共24页
计算机组成原理课程设计硬布线控制器的设计与实现.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

计算机组成原理课程设计硬布线控制器的设计与实现.docx

《计算机组成原理课程设计硬布线控制器的设计与实现.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计硬布线控制器的设计与实现.docx(24页珍藏版)》请在冰豆网上搜索。

计算机组成原理课程设计硬布线控制器的设计与实现.docx

计算机组成原理课程设计硬布线控制器的设计与实现

硬布线控制器的设计与调试

教学目的、任务与实验设备

教学目的

熟练掌握实验5和硬布线控制器的组成原理与应用。

复习和应用数据通路及逻辑表达式。

学习运用ISP(在系统编程)技术进行设计和调试的基本步骤和方法,熟

悉集成开发软件中设计调试工具的使用,体会ISP技术相对于传统开发技术的

优点。

教学任务

按给定的数据格式和指令系统,在所提供的器件范围内,设计一台硬布线

控制器控制的模型计算机。

根据设计图纸,在通用实验台上进行组装,并调试成功。

在组装调试成功的基础上,整理出设计图纸和其他文件。

实验设备

微操作控制信号·····CnC1结果反馈信息指B1硬布线控制器指令(组合逻辑网络)令Bn译寄码ispLSI1032E-70LJ84存模器块

T1W1T1W4启动

TJ停止节拍脉冲节拍电位/时钟发生器SKIP复位硬布线控制器结构方框图

计算机组成原理实验系统一台-4TEC

直流万用表一只

器件,则需要一台ISP)ispLSI1032。

采用集成电路建议使用ISP芯片(一片

作设计、编程和下载使用。

ispEXPERT)机运行设计自动化软件(例如PC

总体设计思路(描述指令系统,给数据通路)

条机器指令。

实验设计中采用12采用与模型计算机相同的指令系统,即

条指令93条机器指令,只保留该指令系统的子集:

去掉中断指令后的。

采用的数据通路和微程序控制器方案相同。

·数据通路图和数据通路控制信号

DBUS

CINSS2T4CEL#CER端口指令口端数据S1ALUALU_BUSLRW(T3)口端A口端BS0RAMLDAR1(T4)LDDR1(T3)LDDR2(T3)AR1_INCLDAR2(T2)AR1AR2DR2DR1M3MUX3M1M2MUX2MUX1DBUSLDPC(T4)RS_BUS#IAR_BUS#PCPC_ADDLDIARIARALU2PC_INCRD0、RS0RD1、RS1端口B端口ARFWR0、WR1WRD(T2)LDR4(T2)R4LDER(T4)ERM4MUX4DBUSSW_BUS#WR0、WR1RD0RD1、RS0、RS1控SW7—SW0制器控制..LDIR(T4)信IR.INTQ、C号

图4数据通路总体图2.

控制器的设计思路

硬布线控制器能够实现控制功能,关键在于它的组合逻辑译码电路。

译码

电路的任务就是将一系列有关指令、时序等的输入信号,转化为一个个控制信

号,输出到各执行部件中。

根据硬布线控制器的基本原理,针对每个控制信号S,可以列出它的译码

函数S=f(Im,Mi,Tk,Bj)其中Im是机器指令操作码译码器的输出信号,

Mi是节拍信号发生器的节拍信号,Tk是时序信号发生器的时序信号,Bj是状

态条件判断信号。

在TEC—4计算机组成原理实验系统中,因为时序信号Tk(T1—T4)已经直接

输送给数据通路,所以译码电路不需Tk作为输入。

又因为机器指令系统比较简

单,操作码只有4位,不需要专门的操作码译码器,因此Im直接就是操作码,

即指令寄存器的IR4—IR7信号。

Mi的来源就是时序模块的节拍信号,例如

W4—W1。

Bj的信号包括:

1.来自数据通路中运算器ALU的进位信号C;

2.来自控制台的开关信号SWC、SWB、SWA;

3.其他信号。

其中C、SWC、SWA和SWB信号在微程序控制器中同样存在,不用加以解释。

于硬布线控制器设计和微程序控制器设计的不同需求和特点以及控制器的设计

方案的不同,可能需要其他信号,也可能不需要其他信号,根据设计方案而定。

每个控制信号的函数式都是上述输入信号的逻辑表达式,因此可以用各种组合

逻辑构造电路网络,实现这些表达式的逻辑功能。

理论上,只要对所有控制信

号都设计出译码函数,这个硬布线控制器的方案也就得到了。

根据要求,列出所需的控制台指令和机器指令

控制台指令名称

指令功能

指令格式

SWC

SWB

SWA

KRR

读寄存器堆方式

1

0

0

KRD

读双端口存储器方式

0

0

1

KWE

写双端口存储器方式

0

1

0

KLD

加载寄存器堆方式

0

1

1

PR

启动程序方式

0

0

0

机器指令名称

助记符

指令功能

指令格式

3

R7

R6

R5

R4

R3

R2

R1

R0

法加

ADDRd,Rs

Rd+Rs->Rd

0

0

0

0

RS1

RS0

RD1

RD0

法减

SUBRd,Rs

Rd-Rs->Rd

0

0

0

1

RS1

RS0

RD1

RD0

法乘

MULRd,Rs

Rd*Rs->Rd

0

0

1

0

RS1

RS0

RD1

RD0

逻辑与

ANDRd,Rs

Rd&Rs->Rd

0

0

1

1

RS1

RS0

RD1

RD0

数存

Rd,[Rs]STA

Rd->[Rs]

0

1

0

0

RS1

RS0

RD1

RD0

数取

Rd,[Rs]LDA

[Rs]->Rd

0

1

0

1

RS1

RS0

RD1

RD0

无条件转移

[Rs]JMP

[Rs]->PC

1

0

0

0

RS1

RS0

RD1

RD0

条件转移

DJC

C=1PC+D->PC

1

0

0

1

D3

D2

D1

D0

停机

STP

暂停运行

0

1

1

0

X

X

X

X

老师提供的控制台指令流程图

4.

ST

1000101000101100001100000100101100011001W1KRR2KRD2PR2KWE2KRD1KLD1PR1KLD2KWE1KRR1SW-BUS#SKIPSKIPSKIPSW-BUS#CEL#SKIPSKIPSW-BUS#CEL#LRW=1CEL#CEL#LRW=0TJLRW=0LRW=0SKIPSKIP

CERCERLDIRLDIRW2SKIPTJSW-BUS#W3LDER

RS-BUS#AR1-INCAR1-INCWRDSW-BUS#SW-BUS#SW-BUS#SW-BUS#SW-BUS#TJTJLDAR1M4=1LDAR1LDAR1LDAR1TJLDR4SSTOM3=1M3=1SSTOLDPCLDAR2TJLDAR2W4SSTOSSTOSSTOTJTJ

控制台指令流程图

在这个控制台里,我们将控制台指令KRR,KRD,KWE,KLD,PR分别拆分为

KRR1,KRR2,KRD1,KRD2,KWE1,KWE2,KLD1,KLD2和PR1,PR2。

每个小指令分别占用

W1-W4四个节拍。

分2次执行完成。

5.

控制台控制信号作用:

控制信号

信号作用

信号有效条件

C

在加法运算和减法运算时产生的进位信号

T4上升沿

ALU_BUS

允许运算结果送往数据总线

1

LDDR1

A端口数据M1=0时DR1接收寄存器堆

T3下降沿

数据DBUS时DR1接收数据总线M1=1

LDDR2

B端口数据时DR2接收寄存器堆M2=0

T3下降沿

数据DBUS时M2=1DR2接收数据总线

WRD

控制双端口寄存器堆RF的写操作

1且T2上升沿

RS_BUS#

上DBUS端口数据是否能送控制RF的B

0

LDER

上的数据打入暂存寄存器ERDBUS将

1且T4上升沿

SW_BUS#

DBUSSW7-SW0将数据送往

0

CEL#

选中双端口存储器左端口RAM

0

LRW

左端口读操作允许RAM

1且T3上升沿

允许RAM左端口写操作

0且T3上升沿

CER

上INSRAM右端口读出数据并放到指令总线

1

禁止右端口操作

0

LDAR1

AR1DBUS将数据打入地址寄存器

1且T4上升沿

AR1_INC

的值加1AR1

1且T4上升沿

LDAR2

PCAR2M3=0时的数据从程序计数器打入

1且T2下降沿

打入DBUS的数据从AR2M3=1时

LDR4

时M4=1打入DBUS的数据从R4

1且T2下降沿

R4M4=0时打入IR0-IR3的数据从

PC_ADD

PC+D位相加即4低IR和PC完成ALU2

1

PC_INC

PC+1

1

LDPC

的地址DBUS接收来自PC程序计数器

1且T4上升沿

LDIR

的指令打入指令寄存器RAM将来自IR

1且T4上升沿

S2,S1,S0

选择运算器ALU的运算类型

1

设计方案

设计硬布线控制器的控制流程,也就是解决Mi、Im、Bj如何起作用的问题。

计微程序控制器时可以使用流程图,设计硬布线控制器同样可以使用流程图。

微程序控制器的控制信号以微指令周期为时间单位,硬布线控制器以节拍为时

间单位,两者本质上是一样的,1拍和1个微指令周期都是从时序T1的上升沿

T4的下降沿的一段时间。

在微程序控制流程图中,1个执行框代表1个微指令

6.

周期,而在硬布线控制流程图中,1个执行框就代表1拍。

执行一条机器指令所需的微指令数目,在硬布线控制器中相当于机器指令所需

的节拍数。

决定执行一条指令需要的节拍数,要根据所有指令而定。

既不能只

考虑某些需要最多节拍的指令,也不能只考虑节拍数最少的指令,一般要根据

大多数机器指令所需的节拍数而定,设计才比较合理。

在本实验中,由于选用

4拍对大多数指令就够用,所以节拍发生器产生4个节拍信号(W1—W4)。

统一

用4拍执行1条机器指令后,对于所需节拍较少的的指令,例如JMP指令只用

2拍(忽略中断),剩下2拍就无事可做了。

这在可行性上当然没有问题,但在

性能上就打了折扣,因为多余的节拍都浪费掉了。

为减少浪费,在时序电路中

加入了一个控制信号SKIP的输入,该信号的作用是使节拍发生器在任意状态下

直接跳到最后1拍(W4)。

这样,设计控制流程时,在所需节拍较少的的指令流

程的适当位置使SKIP控制信号有效,多余的节拍就可以跳过,从而提高了性能。

机器指令选用四拍以后,将一条机器指令的执行化为占用两条(或者更多)机

器指令的节拍,执行一条指令就可以占用W1、W2、W3、W4、W1、W2、W3、W4。

为了区分一条指令的两个不同阶段,我们加了个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,这是我们不希望看到的。

增加了标志位RUN后,按CLR#按钮复位,使RUN为0。

由于SSTO=!

ST*W4*RUN,

因此复位后的SSTO=0.按QD启动按钮,在T1的上升沿,使RUN=1。

根据SSTO

的布尔表达式,在W1,W2,W3时,SSTO=0,直到W4时,才使SSTO=1,由于

ST:

=CLR#*SSTO#CLR*ST,在W4过后的下一个T1的上升沿,才使ST置1,从而

将控制台操作的两种状态区分开来。

根据控制台指令设计出的硬布线控制器:

7.

1000PR2M3=0W1LDAR2CERLDIRPC-INC

IR

011010000000000100101001001101010100STPJMPMULLDAANDADDSTASUBJCW2SKIPM1=0M1=0M2=0RS-BUS#M1=0SKIPM1=0SKIPLDDR2LDDR1LDDR1LDDR1LDAR1LDDR1RS-BUS#M2=0M2=0M2=0M2=0LDAR1LDDR2LDDR2LDDR2LDDR2SKIP

ALU=A+BALU=A-BW3ALU-BUSALU=A*BALU=A&BLDERCEL#ALU-BUSALU-BUSALU-BUSLRW=1RS-BUSALU=ATJWRDCWRDLDERM4=1ALU-BUSLDERLDERLDER

WRDWRDWRDLDR4CEL#LDPCLRW=0C=0C=1M4=01W4LDR4PC-ADDLDPC

硬布线设计指令流程图

逻辑状态表:

根据硬布线指令流程图画出状态表,然后根据表格,列写出每个信号的逻辑表

达式,并写出ABEL语言的源程序:

OUTPUTST=0ST=18.

KRR1KRD1KWE1KLD1PR1KRR2KRD2KWE2KLD2

ALU_BUS

W4W4AR1_INC

W1W1W1CEL#W1

W2W2CER

W4W4W4LDAR1W4

W4W4LDAR2

LDDR1LDDR2

W3LDER

W2LDIRW2

LDPCW4

W4LDR4W1W1LRWW1M1M2W4M3M4PC_INCPC_ADDW4RS_BUS#S0S1S2W4W4W1SW_BUS#W1,W3

W1W1W1W2W1SKIPW4W1W2,W4TJW4W4WRDW4

SSTOW4W4

PR2ST=1OUTPUTJCSTPJMPANDMULSUBADDPR2LDASTA

ALU_BUSW3W3W3W3W4AR1_INC

CEL#W4W3CERW1

LDAR1W2W2

LDAR2W1

LDDR1W2W2W2W2

W2W2W2W2LDDR2W2

W3W3W3W3LDERW3W1LDIR

W4&CW4LDPCLDR4W4&CW4LRWW2M1W2M2W2W2W1M3W4&CM4W4PC_INCW1PC_ADDW4&CW2RS_BUS#S0S1S2SW_BUS#

W2W2W2SKIP

TJW4WRDW4W4SSTO

W4W3

W2W2W4

W4W1W4W4W2W2W4

W4W4

W4W4W1W1W4W4W4

W2

W2W2W2W4

9.

10.

设计的实现(ABEL-HDL)

语言源代码如下:

ABEL

DECLARATIONSComputeMODULE输入管脚3..5;PINSWC,SWB,SWA6..9;PINIR6,IR5,IR4IR7,

10..17;PINW1,W2,W3,W4,C,CLRMF,T1,输出管脚LDPC,LDER,LDDR2,LDIR,CER,LDAR1,LDAR2,LDDR1,ALU_BUS,AR1_INC,CEL,29..41;LDR4,LRWPIN45..58;M1,M2,M3,M4,S0,S1,S2PINSKIP,PC_INC,PC_ADD,RS_BUS,SW_BUS,WRD,TJ,

自定义'COM';NODEISTYPEMF1,SSTO

'REG';ISTYPERUN,STNODE'COM';ISTYPEtKRR,tKRD,tKWE,tKLD,tPRNODE'COM';ISTYPEKRR1,KRD1,KWE1,KLD1,PR1,KRR2,KRD2,KWE2,KLD2,PR2NODE

'COM';ADD,SUB,MUL,AND,LDA,STA,JMP,JC,STPNODEISTYPECLK=.C.;EQUATIONSMF1=!

CLR&MF#T1&CLR;RUN:

=CLR;RUN.CLK=MF1;ST:

=CLR&SSTO#CLR&ST;ST.CLK=MF1;SSTO=!

ST&RUN&W4;指令译码部分A;tKRR=SWC&!

SWB&!

SWA;tKRD=!

SWC&!

SWB&SWA;tKWE=!

SWC&SWB&!

SWtKLD=!

SWC&SWB&SWA;tPR=!

SWC&!

SWB&!

SWA;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)&(!

IR4);SUB=PR2&(!

IR7)&(!

IR6)&(!

IR5)&(IR4);11.

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)&(!

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&(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);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&(tKRR#tKWE#tKLD)#W4&STP;WRD=W4&(KLD2#ADD#SUB#MUL#AND#LDA);

END

对程序进行编译,无误后下载到芯片。

连线,调试,验收

程序里面对管脚的定义连线ABEL连线按照

寄存器和内存单元内容:

寄存器存入内容内存单元存入内容

12.

24H60H60HR2R3

61H

61H

83H

计算结果:

内容内存单元

60H

24H

61HR0

83H0A7H

个人感想

的连线很多,虽然能够可以轻松5实验开始就很考验我们的细心与操作,实验

的连出数据通路,但是在读寄存器还有读存储器时候很容易忽略一些细节。

其是寄存器的编号设置很容易忘记怎么设,导致实验进入误区,读不出来正确

的数据。

编程我们是通过参考网上的程序来完成的,虽然弄清楚怎么执行的写数据和读

数据的指令,但是跟自己一开始的思路还

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1