硬布线控制器Word格式.docx
- 文档编号:21562062
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:8
- 大小:20.12KB
硬布线控制器Word格式.docx
《硬布线控制器Word格式.docx》由会员分享,可在线阅读,更多相关《硬布线控制器Word格式.docx(8页珍藏版)》请在冰豆网上搜索。
实验设备
TEC-4计算机组成原理实验系统一台
双踪示波器一台
逻辑测试笔一只
isp__芯片一个
Lattice公司的IspExpert软件
实验准备
时序信号发生器:
由晶体振荡器产生MF信号(频率1MHz),同时产生T1,T2,T3,T4,W1,W2,W3,W4时序信号,关系如下图。
其中W1,W2,W3,W4用于硬布线控制器的节拍信号
实验台上自选器件实验区提供有Isp__芯片及下载插座,可以从PC机上编程下载
DB,DP,DZ:
DP=1时,计算机处于单拍工作方式,按一次QD发送一组时序信号T1,T2,T3,T4;
DB=1时,计算机处于单步方式,按一次QD发送一组W1,W2,W3,W4时序脉冲,同时如果执行过程当中遇到TJ指令,将停在当前节拍脉冲的T4时刻。
SKIP信号:
当SKIP=1时,信号由当前节拍直接跳到W4节拍
微操作控制信号总结如下:
数据通路图:
设计说明书
设计步骤
分别画出控制台指令及机器指令流程图。
根据流程图作出微操作控制信号的译码与时序分布表,然后用逻辑表达式表示出每个信号。
由逻辑表达式写出ABEL语言源代码。
对程序进行编译,下载到芯片。
连线,调试。
测试。
具体设计思路
根据要求,列出所需的控制台指令和机器指令
设计指令流程图
硬布线控制器的指令流程图与微程序控制器的指令流程图基本一致。
实验台对每步程序的执行提供的节拍只有四个W1-W4,而控制台指令所需要的节拍要大于四个,这就需要我们在设计时将指令拆分一下,即一个指令占用两步,八个节拍,并能够在后四个节拍实现指令的循环执行。
于是,我们加了个ST内部信号作为标志位,当ST=0时,标志执行指令的前四个节拍,当ST=1时,标志执行指令的后四个节拍。
注意到只有CLR#到来后的第四拍时ST信号才发生翻转,所以又设了一个SSTO信号作为ST信号的触发信号。
具体实现ST-SSTO模块如下:
我们增加了一个标志位RUN,由于按CLR#按钮复位后,实验系统的时序停止在T4,W4,ST的值为0,这样SSTO=!
STW4的值为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,从而将控制台操作的两种状态区分开来。
设计的控制台指令流程图,机器指令流程图如下:
根据流程图,进行微操作信号的译码并列出时序表
说明:
我们将控制台指令KRR,KRD,KWE,KLD,PR分别拆分为KRR1,KRR2,KRD1,KRD2,KWE1,KWE2,KLD1,KLD2和PR1,PR2。
每个小指令分别占用W1-W4四个节拍。
KRR1ALU_BUSAR1_INCCEL#CERLDAR1LDAR2LDDR1LDDR2LDERLDIRLDPCLDR4LRWM1M2M3M4PC_INCPC_ADDRS_BUS#S0S1S2SW_BUS#SKIPTJWRDSSTOW4W4W1W4W4W4W4
KRD1
KWE1
KLD1
PR1
KRR2
KRD2W4
KWE2W4W1
KLD2
W1W2W4W4W4W4
W1
W1W2
W3W2W4W4W1W1W1W2
W4W4
W4
W4W1
W4W1W4
W4W1W4W4
W4W1W2W4W4W1W1
W1W1W4
W1,W3W2,W4W4
图中绿色信号代表此时的微操作信号为低有效。
根据表格,列写出每个信号的逻辑表达式,并写出ABEL语言的源程序ABEL语言源代码如下:
__ompute__TIONS“INPUT
SWC,SWB,SWAPIN3..5;
IR7,IR6,IR5,IR4PIN6..9;
MF,T1,W1,W2,W3,W4,C,CLRPIN10..17;
"
OUTPUT
ALU_BUS,AR1_INC,CEL,CER,LDAR1,LDAR2,LDDR1,LDDR2,LDER,LDIR,LDPC,LDR4,LRWPIN29..41;
PC_INC,PC_ADD,RS_BUS,SW_BUS,WRD,SKIP,TJ,M1,M2,M3,M4,S0,S1,S2PIN63..76;
TEMP
MF1,SSTONODEISTYPE'
COM'
;
RUN,STNODEISTYPE'
REG'
tKRR,tKRD,tKWE,tKLD,tPRNODEISTYPE'
KRR1,KRD1,KWE1,KLD1,PR1,KRR2,KRD2,KWE2,KLD2,PR2NODEISTYPE'
ADD,SUB,MUL,AND,LDA,STA,JMP,JC,STPNODEISTYPE'
CLK=.C.;
__NS
MF1=!
CLRMF#T1CLR;
RUN:
=CLR;
RUN.CLK=MF1;
ST:
=__#CLRST.CLK=MF1;
SSTO=!
STRUN“指令译码部分tKRR=SWC!
SWB!
SWA;
tKRD=!
SWC!
SWBSWA;
tKWE=!
SWCSWB!
tKLD=!
__WA;
tPR=!
KRR1=!
STtKRR;
KRR2=STtKRR;
KRD1=!
STtKRD;
KRD2=STtKRD;
KWE1=!
STtKWE;
KWE2=STtKWE;
KLD1=!
STtKLD;
KLD2=STtKLD;
PR1=!
STtPR;
PR2=STtPR;
ADD=PR2(!
IR7)(!
IR6)(!
IR5)(!
IR4);
SUB=PR2(!
IR5)(IR4);
MUL=PR2(!
IR6)(IR5)(!
AND=PR2(!
IR6)(IR5)(IR4);
LDA=PR2(!
IR7)(IR6)(!
STA=PR2(!
JMP=PR2(IR7)(!
JC=PR2(IR7)(!
STP=PR2(!
IR7)(IR6)(IR5)(!
“输出管脚
ALU_BUS=(ADD#SUB#MUL#AND)W3#(STAW4);
AR1_INC=(KRD2#KWE2)
CEL=!
((KRD2#KWE2#KLD2#KRR2)W1#(W3LDA)#(W4STA));
CER=(KLD2#KRR2)W2#(W1PR2);
LDAR1=W4(KRR1#KRD1#KWE1#KLD1)#(W2LDA)#(W2STA);
LDAR2=W4(KRR1#KLD1)#(PR2W1);
LDDR1=W2(ADD#SUB#MUL#AND);
LDDR2=LDDR1#(W2STA);
LDER=W3(KLD2#ADD#SUB#MUL#AND#LDA);
LDIR=CER;
LDPC=W4(PR1#JMP#(JCC));
LDR4=LDPC;
LRW=W1KRD2#W3LDA;
M1=!
LDDR1;
M2=!
LDDR2;
M3=W4(KRR1#KLD1);
M4=W4(PR1#JMP);
PC_INC=W1PR2;
PC_ADD=W4JC
RS_BUS=!
(W2(LDA#STA)#W4(KRR2#JMP));
SW_BUS=!
(W1(KWE2#KLD2#KRR2)#(W3KLD2)#(W4!
ST));
S0=SUB#STA;
S1=ADD#SUB;
S2=MUL;
SKIP=W1!
ST#(W1(KRD2#KWE2))#(W2(KRR2#STA))#W2(JMP#JC#STP);
TJ=W1KRD2#W2KLD2#W4(tKRR#tKWE#tKLD)#W4STP;
WRD=W4(KLD2#ADD#SUB#MUL#AND#LDA);
END
对程序进行编译,无误后下载到芯片
连线,调试,验收
验收程序:
初始化:
计算结果:
设计中遇到的问题
关于时钟源工作过程的分析:
时钟源产生基本的时序控制信号。
在设计的过程中,我们发现在同一个节拍下每个信号的起作用的T时刻是不同的,如KWE2的W1节拍下,CEL#=0,LRW=0,在T3的上升沿将DBUS上的数据写入RAM中,可是同时SKIP信号也是有效的,于是我们在想:
会
不会因为SKIP信号在T1时就有效导致信号直接由当前脉冲的T1跳到W4,这样DBUS上的数据还未来得及写入RAM就已经无效了,与此类似的还有TJ信号。
所以在一开始设计的时候我们将SKIP信号和TJ信号统统控制在T4时刻才出现,可是这样做使得控制信号的逻辑显得有些乱。
经过查找资料并分析了时序发生器的ABEL语言源文件得知当SKIP信号有效时,发生器仍然发送完当前节拍的所有信号才跳到W4节拍;
当TJ信号有效时,发生器仍然发送完当前节拍的所有信号,最后停在当前节拍的T4时刻。
标志信号RUN的分析及测试
由控制台指令流程图可知一条控制台指令被分割成了两部分,一部分可以看作是指令执行的初始化(如选定中转地址,指定初始地址等),另一部分看作是指令的执行阶段(可以循环执行)。
每条指令执行时第一部分只执行一遍,第二部分是循环执行的,所以要保证ST信号第一遍执行时为0,之后保持为1。
该部分实现图如下所示:
代码
当按一下CLR时将使得RUN和ST都变为零,且时序停留在W4,T4时刻,由于RUN=0,所以虽然在W4时刻,但是SSTO信号仍然为零,是无效的
启动程序后,在第一的T1的上升沿RUN变为1,于是当W4=1时SSTO=1,那么触发器ST的输入也变为1,在下一个T1的上升沿,ST将变为0,控制信号就由流程图的左半部跳至右半部。
实验心得
这是我们第一次做课程设计,学校给我们提供了实验环境,一流的实验设施,还配备了尽责热心的老师,我们有十分充足的时间来学习和设计。
开
放性的实验环境也为我们发挥自己的创造力提供了充分的条件。
在这里我们不仅学到了许多在课堂上学不到的东西,而且锻炼了我们的动手和实践能力。
首先,这次课程设计是对计算机组成原理课程的加深和延续,很多内容虽然课本上没有详细讲解,但是很多东西是融会贯通的。
如果没有对微程序控制器的工作方式和原理的理解,哪能设计出硬布线控制器的控制逻辑。
所以这次实验,我们对计算机的工作原理有了更进一步的了解,尤其是指令系统的工作原理,各个部件的工作之间的协调和配合等。
同时,这次课程设计大大锻炼了我们的动手能力,由于是手工接线,任何一条线出现问
题都会影响到整个系统的执行,所以当问题变得莫名其妙毫无头绪之时,保持清醒的头脑,冷静的分析变得尤为重要。
不仅如此,设计过程中团队的合作精神也得到了锻炼,一个大的项目不是一个人能够独立承担的,需要大家的通力合作。
葛立峰
__-__班10号
表面上看,本次实验仅仅是要我们设计一个具有5条控制台指令9条机器指令的硬布线控制器,实际上却需要我们综合运用以往所学的很多关于计算机
硬件的知识。
就本实验所考察的知识重点,我总结了一下,大致如下:
触发器的原理及应用
ABEL语言的应用及ispEXPERT的使用
指令周期的概念
时序产生器的原理和控制方式
TEC-4实验台的原理和操作
本次实验不仅仅需要我们动脑,更重要的是要求我们动手。
由列出微操作信号到指令流程图再到ABEL语言的源代码的实现,其间过程并不很难,复杂的是连线与调试,需要极大的耐心和细心,当众不仅要对TEC-4实验台的操作相当熟悉,而且要对指令周期与时序的关系以及数据通路理解得很透彻才行。
所以,这次实验让我对组成原理课程有了全新的认识和整体的把握,它是对课堂的一个补充和提高,使以往所学的知识在我们的大脑中产生了理解的飞跃。
(真希望组成原理的期末考试放在本次实验之后:
))
实验中需要将所编程序下载到芯片中,这就使我们对现今硬件设计软件化的主流方向有了实践层次的理解,并让我们掌握了一些简单的设计实现方法。
同时,同学间组成小组共同工作,不仅增加了大家交流互助的机会,更是培养了我们的协作精神,让我们深刻体会到了协作在质量和效率上的优势。
总之,本次实验是一次难得的学习与发挥的机会,
在实验及文档制作阶段我都体会到了
思考与创造的巨大乐趣。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 布线 控制器
![提示](https://static.bdocx.com/images/bang_tan.gif)