常规型硬联线控制器_第1页
常规型硬联线控制器_第2页
常规型硬联线控制器_第3页
常规型硬联线控制器_第4页
常规型硬联线控制器_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、常规型硬联线控制器的设计与调试C1微操作控制信号结果反馈信息CnSKIPTJ····· 硬布线控制器 (组合逻辑网络)ispLSI1032E-70LJ84指令译码模块节拍电位/节拍脉冲发生器指令寄存器W1W4T1T1启动停止时钟复位B1Bn硬布线控制器结构方框图科 目:计算机组成原理指导教师:白中英 张杰实 验 人:葛立峰 李晶· 实验背景硬布线控制器是早期设计计算机的一种方法。这种方法是把控制部件看作为产生专门固定时序控制信号的逻辑电路,二次逻辑电路以示用最少元件和取得最高操作速度为设计目标。一旦控制部件构成后,除非重新设计和物理上

2、对它重新布线,否则要想增加新的控制功能是不可能的。硬布线控制器是计算机中最复杂的逻辑部件之一,由于其结构上的缺陷使得对它进行设计和调试非常复杂且代价很大。正因为如此,硬布线控制器被微程序控制器所取代。但是随着新一代机器及VLSI技术的发展,硬布线逻辑设计思想又得到了重视。· 设计要求针对TEC-4实验台利用ispLSI1032芯片设计一个硬布线控制器,本控制器可以执行五条控制台指令:PR,KRD,KWE,KLD,KRR以及九条机器指令:ADD,SUB,MUL,AND,STA,LDA,JMP,JC,STP。 实验目的 融会贯通计算机组成原理课程和计算机系统结构课程的内容,通过知识的综合

3、运用,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对硬联线控制器的认识。 学习运用ISP技术进行设计和调试的基本步骤和方法,熟悉集成开发软件中设计,模拟调试工具的使用,体会ISP技术相对于传统开发技术的优点。 培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。 实验设备· TEC-4计算机组成原理实验系统一台· 双踪示波器一台· 逻辑测试笔一只· ispLSI1032芯片一个· Lattice公司的IspExpert软件· 实验准备· 时序信号发生器:由晶体振荡器产生MF信号(频率1MHz),同时产生

4、T1,T2,T3,T4,W1,W2,W3,W4时序信号,关系如下图。其中W1,W2,W3,W4用于硬布线控制器的节拍信号· 实验台上自选器件实验区提供有IspLSI1032芯片及下载插座,可以从PC机上编程下载· DB,DP,DZ:DP1时,计算机处于单拍工作方式,按一次QD发送一组时序信号T1,T2,T3,T4;DB1时,计算机处于单步方式,按一次QD发送一组W1,W2,W3,W4时序脉冲,同时如果执行过程当中遇到TJ指令,将停在当前节拍脉冲的T4时刻。· SKIP信号:当SKIP1时,信号由当前节拍直接跳到W4节拍· 微操作控制信号总结如下:控制信号

5、信号作用信号有效条件C在加法运算和减法运算时产生的进位信号T4上升沿ALU_BUS允许运算结果送往数据总线1LDDR1M1=0时DR1接收寄存器堆A端口数据T3下降沿M1=1时DR1接收数据总线DBUS数据LDDR2M2=0时DR2接收寄存器堆B端口数据T3下降沿M2=1时DR2接收数据总线DBUS数据WRD控制双端口寄存器堆RF的写操作1且T2上升沿RS_BUS#控制RF的B端口数据是否能送DBUS上0LDER将DBUS上的数据打入暂存寄存器ER1且T4上升沿SW_BUS#将SW7-SW0数据送往DBUS0CEL#选中双端口存储器RAM左端口0LRW允许RAM左端口读操作1且T3上升沿允许R

6、AM左端口写操作0且T3上升沿CERRAM右端口读出数据并放到指令总线INS上1禁止右端口操作0LDAR1将DBUS数据打入地址寄存器AR11且T4上升沿AR1_INCAR1的值加11且T4上升沿LDAR2M3=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,

7、S0选择运算器ALU的运算类型1数据通路图:DR2MUX2LDIR(T4)WR1 WR0RD1 RD0RS1 RS0M4LDR4(T2)LDPC(T4)M3LDAR2(T2)LDAR1(T4)INSDBUSDBUSAR1-INCCERLRW(T3)CEL#IAR-BUS#AR2MUX3C INTQ控制信号SW-BUS#LDER(T4)RD1 RD0WR1 WR0WRD(T2)···BAB端口 A端口 RFER控制台硬布线控制器 IR PC AR1 数据端口 指令端口 RAMDR1MUX1R4MUX4IAR ALUALU2CS0T4ALU-BUSS1S2LDDR2(

8、T3)M2LDDR1(T3)M1RS-BUS#RS1 RS0LDIAR设计说明书 设计步骤· 分别画出控制台指令及机器指令流程图。 · 根据流程图作出微操作控制信号的译码与时序分布表,然后用逻辑表达式表示出每个信号。· 由逻辑表达式写出ABEL语言源代码。 · 对程序进行编译,下载到芯片。· 连线,调试。· 测试。 · 具体设计思路· 根据要求,列出所需的控制台指令和机器指令控制台指令名称指令功能指令格式SWCSWBSWAKRR读寄存器堆方式100KRD读双端口存储器方式001KWE写双端口存储器方式010KLD加

9、载寄存器堆方式011PR启动程序方式000机器指令名称助记符指令功能指令格式R7R6R5R4R3R2R1R0加 法ADD Rd,Rs Rd+Rs->Rd0000RS1RS0RD1RD0减 法SUB Rd,Rs Rd-Rs->Rd0001RS1RS0RD1RD0乘 法MUL Rd,RsRd*Rs->Rd0010RS1RS0RD1RD0逻辑与AND Rd,RsRd&Rs->Rd0011RS1RS0RD1RD0存 数STA Rd,RsRd-> Rs0100RS1RS0RD1RD0取 数LDA Rd,Rs Rs-> Rd0101RS1RS0RD1RD0无条件

10、转移JMP RsRs->PC1000RS1RS0RD1RD0条件转移JC DC=1PC+D->PC1001D3D2D1D0停机STP暂停运行0110XXXX· 设计指令流程图硬布线控制器的指令流程图与微程序控制器的指令流程图基本一致。实验台对每步程序的执行提供的节拍只有四个W1-W4,而控制台指令所需要的节拍要大于四个,这就需要我们在设计时将指令拆分一下,即一个指令占用两步,八个节拍,并能够在后四个节拍实现指令的循环执行。于是,我们加了个ST内部信号作为标志位,当ST=0时,标志执行指令的前四个节拍,当ST=1时,标志执行指令的后四个节拍。注意到只有CLR#到来后的第四拍

11、时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时,SS

12、TO=0,直到W4时,才使SSTO=1,由于ST:=CLR#*SSTO#CLR*ST,在W4过后的下一个T1的上升沿,才使ST置1,从而将控制台操作的两种状态区分开来。设计的控制台指令流程图,机器指令流程图如下: 根据流程图,进行微操作信号的译码并列出时序表 1000PR20001KRD10100KRR1CEL#LRW=1TJSKIPAR1-INC0010KWE10011KLD10000PR11001KRD21010KWE21011KLD21100KRR2控制台指令流程图SKIP STSKIP SW-BUS#LDAR1M3=1LDAR2SSTOTJSKIP SW-BUS#LDAR1SSTOSW

13、-BUS#LDAR1SSTOTJSW-BUS#LDAR1M3=1LDAR2SSTOTJSKIP SKIP SW-BUS#M4=1LDR4LDPCSSTOAR1-INCTJWRDTJSW-BUS#CEL#LRW=0SKIPSW-BUS#CEL#LRW=0SW-BUS#CEL#LRW=0RS-BUS#TJCERLDIRTJSW-BUS#LDERCERLDIRTJW1W2W3W4说明:我们将控制台指令KRR,KRD,KWE,KLD,PR分别拆分为KRR1,KRR2,KRD1,KRD2,KWE1,KWE2,KLD1,KLD2和PR1,PR2。每个小指令分别占用W1-W4四个节拍。1000PR20001

14、SUB0000ADDC=1C=0M3=0LDAR2CERLDIRPC-INCIRM1=0LDDR1M2=0LDDR2M1=0LDDR1M2=0LDDR2RS-BUS#LDAR1M2=0LDDR2RS-BUS#LDAR1SKIPSKIP SKIP SKIP ALU=A+BALU-BUSLDERALU=A-BALU-BUSLDERALU=A*BALU-BUSLDERALU=A&BALU-BUSLDERM1=0LDDR1M2=0LDDR2CEL#LRW=1LDERWRD WRD WRD WRD WRD M1=0LDDR1M2=0LDDR2ALU=AALU-BUSCEL#LRW=0RS-BUS

15、M4=1LDR4LDPCC M4=01LDR4PC-ADDLDPCTJ 0010MUL0011AND0101LDA0100STA1000JMP1001JC0110STPW1W2W4机器指令流程图OUTPUTST=0ST=1KRR1KRD1KWE1KLD1PR1KRR2KRD2KWE2KLD2ALU_BUSAR1_INCW4W4CEL#W1W1W1W1CERW2W2LDAR1W4W4W4W4LDAR2W4W4LDDR1LDDR2LDERW3LDIRW2W2LDPCW4LDR4W4LRWW1W1W1M1M2M3W4W4M4W4PC_INCPC_ADDRS_BUS#W4S0S1S2SW_BUS#W4

16、W4W4W4W4W1W1,W3SKIPW1W1W1W1W1W2W1W1TJW4W4W4W4W1W4W2,W4WRDW4SSTOW4W4W4W4W4ST=1 PR2OUTPUTPR2ADDSUBMULANDLDASTAJMPJCSTPW3W3W3W3W4ALU_BUSAR1_INCW3W4CEL#W1CERW2W2LDAR1W1LDAR2W2W2W2W2LDDR1W2W2W2W2W2LDDR2W3W3W3W3W3LDERW1LDIRW4W4&CLDPCW4W4&CLDR4W3W4LRWW2W2W2W2M1W2W2W2W2W2M2W1M3W4W4&CM4W1PC_INCW4

17、&CPC_ADDW2W2W2RS_BUS#S0S1S2SW_BUS#W2W2W2W2SKIPW4TJW4W4W4W4W4WRDSSTO说明:图中绿色信号代表此时的微操作信号为低有效。· 根据表格,列写出每个信号的逻辑表达式,并写出ABEL语言的源程序ABEL语言源代码如下:MODULECompute DECLARATIONS"INPUT SWC, SWB, SWA PIN 3.5;IR7, IR6, IR5, IR4 PIN 6.9;MF,T1, W1,W2,W3,W4, C,CLR PIN 10.17;"OUTPUTALU_BUS, AR1_INC, C

18、EL, 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 63.76;"TEMPMF1,SSTO NODE ISTYPE 'COM'RUN,ST NODE ISTYPE 'REG'tKRR,tKRD,tKWE,tKLD,tPR NODE ISTYPE 'COM'KRR1,KRD1,KWE1,KLD1,PR1,KR

19、R2,KRD2,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&!SWA;tKRD=!SWC&!SWB&SWA;tKWE

20、=!SWC&SWB&!SWA;tKLD=!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);

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

22、R4); 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#KRD

23、1#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&am

24、p;(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

25、#tKWE#tKLD)#W4&STP;WRD=W4&(KLD2#ADD#SUB#MUL#AND#LDA);END· 对程序进行编译,无误后下载到芯片· 连线,调试,验收连线表格如下:SWC3InputPULLUPLDDR135OutputPULLUPSWB4LDDR236SWA5LDER37IR76LDIR38IR67LDPC39IR58LDR440IR49LRW41MF10PC_INC63T111PC_ADD64W112RS_BUS65W213SW_BUS66W314WRD67W415SKIP68C16TJ69CLR17M170ALU_BUS29Outpu

26、tPULLUPM271AR1_INC30M372CEL31M473CER32S074LDAR133S175LDAR234S276验收程序:地址指令机器代码00HLDA R0 R258H01HLDA R1 R35DH02HADD R0 R104H03HJC +595H04HAND R1 R031H05HSUB R0 R31CH06HSTA R0 R144H07HMUL R0 R124H08HSTP60H09HJMP R184H初始化:寄存器存入内容R260HR361H内存单元存入内容60H24H61H83H计算结果:内存单元内容60H46H61H83HR012H· 设计中遇到的问题&#

27、183; 关于时钟源工作过程的分析:时钟源产生基本的时序控制信号。在设计的过程中,我们发现在同一个节拍下每个信号的起作用的T时刻是不同的,如KWE2的W1节拍下,CEL#0,LRW=0,在T3的上升沿将DBUS上的数据写入RAM中,可是同时SKIP信号也是有效的,于是我们在想:会不会因为SKIP信号在T1时就有效导致信号直接由当前脉冲的T1跳到W4,这样DBUS上的数据还未来得及写入RAM就已经无效了,与此类似的还有TJ信号。所以在一开始设计的时候我们将SKIP信号和TJ信号统统控制在T4时刻才出现,可是这样做使得控制信号的逻辑显得有些乱。经过查找资料并分析了时序发生器的ABEL语言源文件得知

28、当SKIP信号有效时,发生器仍然发送完当前节拍的所有信号才跳到W4节拍;当TJ信号有效时,发生器仍然发送完当前节拍的所有信号,最后停在当前节拍的T4时刻。· 标志信号RUN的分析及测试由控制台指令流程图可知一条控制台指令被分割成了两部分,一部分可以看作是指令执行的初始化(如选定中转地址,指定初始地址等),另一部分看作是指令的执行阶段(可以循环执行)。每条指令执行时第一部分只执行一遍,第二部分是循环执行的,所以要保证ST信号第一遍执行时为0,之后保持为1。 该部分实现图如下所示:CLRCLR&SSTO#CLR&STST!CLR&MF#T1&CLRRUNM

29、F1=!CLR&MF#T1&CLR;RUN:=CLR;RUN.CLK=MF1;ST:=CLR&SSTO#CLR&ST;ST.CLK=MF1;SSTO=!ST&RUN&W4;代码说明:当按一下CLR时将使得RUN和ST都变为零,且时序停留在W4,T4时刻,由于RUN0,所以虽然在W4时刻,但是SSTO信号仍然为零,是无效的启动程序后,在第一的T1的上升沿RUN变为1,于是当W41时SSTO1,那么触发器ST的输入也变为1,在下一个T1的上升沿,ST将变为0,控制信号就由流程图的左半部跳至右半部。· 实验心得这是我们第一次做课程设计,学校给我们提供了实验环境,一流的实验设施,还配备了尽责热心的老师,我们有十分充足的时间来学习和设计。开放性的实验环境也为我们发挥自己的创造力提供了充分的条件。在这

温馨提示

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

最新文档

评论

0/150

提交评论