版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录本报告包括以下内容:1. 数据通路图2. 硬布线控制器逻辑模块图3. 硬布线控制器指令周期流程图4. 控制模块HDL语言源程序/原理图(包含说明和注释)5. 测试波形图(以WRM为例)6. 设计说明书7. 设计与调试小结数据通路图 说明:数据通路是将双端口存储器模块和双端口通用寄存器模块连接在一起形成的。双端口通用寄存器(RF)由一个ispLSI1016实现,功能相当于四个八位通用寄存器,用于保存参与运算的数据,运算后的结果也要送到RF中保存。双端口寄存器堆模块的控制信号中,RS1、RS0用于选择从右端口读出的通用寄存器,RD1、RD0用于选择从左端口读出的通用寄存器。而WR1、WR0用于
2、选择写入的通用寄存器。LDRi是写入控制信号,当LDRi=1时,数据总线DBUS上的数据在T3写入由WR1、WR0指定的通用寄存器。左右端口分别与操作数暂存器DR1和DR2相连,RF的右端口通过三态门连接到数据总线DBUS上,因而RF中的数据可以直接通过右端口送到DBUS上。DR1和DR2各由一片74LS273构成,用于暂存参与运算的数据。ALU由两片74LS181构成,ALU的输出通过一个三态门发送到数据通路DBUS上。双端口寄存器使用一片IDT7132(2048×8位),两个端口的地址输入A8-A10引脚接地,因此实际使用的存储容量为256字节。左端口的数据输出端接在数据总线DB
3、US,右端口的数据输出接指令总线IBUS。CEL#、LR/W#、OEL#控制左端口读写操作;CER#、RR/W#、OER#控制右端口读写操作。CEL#为左端口片选信号,低电平有效;当CEL#=1时,禁止对左端口的读写操作;当LR/W#=0时,左端口进行读写。OEL#的作用等同于三态门,当OEL#=0时,允许左端口读出的数据送到数据总线DBUS上;当OEL#=1时,禁止左端口的数据放到DBUS上。因此将OEL#写作RAM-BUS#。右端口控制信号与左端口完全类似。左端口负责所有数据和指令的写入,右端口作为指令端口,不需要进行数据写入,将右端口处理为只读端口,RR/W#固定接高电平,OER#固定接
4、地。存储器左端口的地址寄存器AR和右端口的地址寄存器PC都是2片74LS163,具有地址递增功能。同时,PC也起到程序计数器的功能。指令由双端口寄存器的右端口送到指令总线IBUS,再送入指令寄存器IR,再通过操作控制器产生各控制信号从而实现程序运行,本次实验编写的控制器是硬布线控制器。硬布线控制器逻辑模块图硬布线控制器逻辑模块图首先根据硬连线指令流程图列出译码表,再设计出译码逻辑电路图。下面给出本组的组合逻辑译码表:说明:水平方向表示一个信号,纵向为某一状态或指令,单元格中的内容表示该控制信号在该指令中有效的条件,根据译码表可以写出每个控制信号的逻辑表达式。接着按照上面的组合逻辑译码表写出各信
5、号的逻辑表达式:LDDR1=ADD*W2+SUB*W2+AND*W2+STA*W2LDDR2= ADD*W2+SUB*W2+AND*W2CEL#=STA*W3+LDA*W3+RRF2*W1+WRF2*W1+RRM2*W1+WRM2*W1CER#=RP2*W1+RRF2*W2+WRF2*W2 LDAR#=STA*W2+LDA*W2+RRF*W3+WRF*W3+RRM*W3+WRM*W3AR+1=RRM2*W3+WRM2*W3LDPC#=JC*W3*C+RRF*W3+WRF*W3+RP*W3PC+1=(ADD+SUB+AND+STA+LDA+STP+OUT)*W3+JC*W2LDRi=ADD*W3
6、+SUB*W3+AND*W3+LDA*W3+ WRF2*W3LR/W#=STA*W3#+LDA*W3+RRF2*W1#+WRF2*W1#+RRM2*W1+WRM2*W1#LDIR=RP2*W1+RRF2*W2+WRF2*W2SW-BUS#=RRF*W3+RRF2*W1+WRF*W3+WRF2*(W1+W3)+RRM*W3+WRM*W3+WRM2*W1+RP*W3RS-BUS#=STA*W2+LDA*W2+JC*W3*C+OUT*W3+RRF2*W3RAM-BUS#=LDA*W3+RRM2*W1ALU-BUS#=ADD*W3+SUB*W3+AND*W3+STA*W3TJ=STP*W3+OUT*W
7、3+RRF*W3+RRF2*W3+WRF*W3+WRF2*(W2+W3)+RRM2*W1+WRM*W3+WRM2*W3SKIP=RRF*W1+WRF*W1+RRM*W1+WRM*W1+RP*W1S3=ADD*W3+SUB*W3#+AND*W3+STA*W3S2=ADD*W3#+SUB*W3+AND*W3+STA*W3S1= ADD*W3#+SUB*W3+AND*W3+STA*W3S0=ADD*W3+SUB*W3#+AND*W3#+STA*W3M=ADD*W3#+SUB*W3#+AND*W3+STA*W3Cn#=ADD*W3+SUB*W3#其中,以上各式右侧所用变量展开成输入信号的对应关系如下:
8、RRF0 (NOT STO) AND SWC AND (NOT SWB) AND (NOT SWA)RRF1 (STO AND SWC AND (NOT SWB) AND (NOT SWA)WRF0 (NOT STO) AND (NOT SWC) AND SWB AND SWA)WRF1 (STO AND (NOT SWC) AND SWB AND SWA)RRM0 (NOT STO) AND (NOT SWC) AND SWB AND (NOT SWA)RRM1 (STO AND (NOT SWC) AND SWB AND (NOT SWA)WRM0 (NOT STO) AND (NOT S
9、WC) AND (NOT SWB) AND SWA)WRM1 (STO AND (NOT SWC) AND (NOT SWB) AND SWA)RP0 (NOT STO) AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)RP1 (STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)ADD (NOT IR7) AND (NOT IR6) AND (NOT IR5) AND (NOT IR4)SUB (NOT IR7) AND (NOT IR6) AND (NOT IR5) AND IR4)AND (NOT IR7) AND
10、(NOT IR6) AND IR5 AND (NOT IR4)STA (NOT IR7) AND (NOT IR6) AND IR5 AND IR4)LDA (NOT IR7) AND IR6 AND (NOT IR5) AND (NOT IR4)JC (NOT IR7) AND IR6 AND (NOT IR5) AND IR4)STP (NOT IR7) AND IR6 AND IR5 AND (NOT IR4)OUT (NOT IR7) AND IR6 AND IR5 AND IR4)硬布线控制器指令周期流程图说明:上图为PPT中给出的参考硬连线控制器的指令周期流程图。在本次试验中,选用
11、3个节拍电位对大多数指令就够用,所以节拍电位发生器产生3个点位信号(W1W3)。对于所需节拍电位时间较多的指令如何处理,这里采用的是将一条机器指令的执行化为占用两条(或者更多)机器指令的节拍,例如执行一条指令可以占用W1、W2、W3、W1、W2、W3六拍时间。为了区分一条指令的两个不同阶段,可用某些特殊的寄存器标志将其区分,例如,FLAG=0时,表示该指令执行第一个W1、W2、W3;FLAG=1时,表示该指令执行第二个W1、W2、W3。由于有些控制台指令只需要4拍,占用2条机器指令周期(6拍)则浪费了时间。为了减少浪费,在时序电路中加入了一个控制信号SKIP的输入,该信号的作用是使节拍发生器在
12、任意状态下直接跳到最后1拍(W3)。这样,设计控制流程时,在所需节拍较少的指令流程适当的位置使SKIP控制信号有效,多余的节拍就可以跳过,从而提高了性能。控制模块HDL语言源程序(含注释)-2009.6.27-硬连线控制器控制模块语言源程序library ieee;use ieee.std_logic_1164.all;entity cpu is port(SWC,SWB,SWA,IR7,IR6,IR5,IR4,W1,W2,W3,C,CLR:in std_logic;-控制台命令SWCSWA 运算器命令IR7IR4 时序W1W3 清零信号CLR SKIP,SW_BUS,LDAR,LDPC,TJ
13、:out std_logic;-跳跃信号 总线控制信号 地址载入信号 指令载入信号 停机信号 CEL,LRW,CER,LDIR,RS_BUS:out std_logic;-左片选信号 读写信号 右片选信号 指令载入信号 寄存器总线信号 LDRi,LDDR1,LDDR2:out std_logic;-寄存器使能信号 寄存器-ALU控制信号 AR,PC,RAM_BUS,ALU_BUS:out std_logic;-地址控制信号 指令控制信号 存储器选择信号 ALU-总线控制信号 S3,S2,S1,S0,M,Cn:out std_logic);-ALU控制信号end cpu;-硬连线控制逻辑信号ar
14、chitecture func of cpu is-硬连线控制器功能定义 signal STO:std_logic;-控制台控制信号 signal SST0:std_logic;-标记位 signal FLAG:std_logic;-判断控制台跳转标记位begin p1:process(W1,W3,STO,CLR,SST0)-敏感信号列表 begin-当CLR信号有效时,标记FLAG置0,SST0和STO也都置0,此时控制台的处于W3,下一节拍到来,控制台进入W1,由FLAG有效表达式,可知-FLAG有效,这时通过用SST0变量来记录FLAG有效的信息,将SST0置1,这样即使FLAG下一节拍
15、变为0(因为进入了W2拍),也可以通过查看-SST0的值来确认FLAG曾经有效,然后使用条件SST0有效和W1节拍的到来来使STO值置1有效,这样在下一个W1节拍,由STO,SWC,SWB,SWA-即确定了此刻控制器进入的控制台,实现自动跳转的功能 FLAG<=(NOT STO) AND SWC AND (NOT SWB) AND (NOT SWA)AND W1) OR(NOT STO) AND (NOT SWC) AND SWB AND SWA)AND W1) OR(NOT STO) AND (NOT SWC) AND SWB AND (NOT SWA)AND W1) OR(NOT S
16、TO) AND (NOT SWC) AND (NOT SWB) AND SWA)AND W1) OR(NOT STO) AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W1);-判断控制台跳转的标记位 IF(FLAG='1')THEN SST0<='1'-跳转信号有效 END IF; IF(CLR='1')THEN-清零信号有效时 STO<='0'-各标记位清零 SST0<='0' FLAG<='0' ELSE IF(W1'e
17、vent AND W1='1'AND SST0='1') THEN STO<='1'-STO变化,控制台变化 END IF; END IF; end process p1; -各信号有效条件,高低均有定义的信号只确定其高有效的表达式 LDDR1<=(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND (NOT IR4)AND W2) OR(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND IR4)AND W2) OR(NOT IR7) AND (NOT IR6) AND I
18、R5 AND (NOT IR4)AND W2) OR(NOT IR7) AND (NOT IR6) AND IR5 AND IR4)AND W2)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA); LDDR2<=(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND (NOT IR4)AND W2) OR(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND IR4)AND W2) OR(NOT IR7) AND (NOT IR6) AND IR5 AND (NOT IR4)AND
19、W2)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA); CEL<=NOT(NOT IR7) AND (NOT IR6) AND IR5 AND IR4)AND W3)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND IR6 AND (NOT IR5) AND (NOT IR4)AND W3)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(STO AND SWC AND (NOT SWB) AND (
20、NOT SWA)AND W1) OR(STO AND (NOT SWC) AND SWB AND SWA)AND W1) OR(STO AND (NOT SWC) AND SWB AND (NOT SWA)AND W1) OR(STO AND (NOT SWC) AND (NOT SWB) AND SWA)AND W1); CER<=NOT(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W1)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(STO AND SWC AND (NOT
21、 SWB) AND (NOT SWA)AND W2) OR(STO AND (NOT SWC) AND SWB AND SWA)AND W2); LDAR<=NOT(NOT IR7) AND (NOT IR6) AND IR5 AND IR4)AND W2)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND IR6 AND (NOT IR5) AND (NOT IR4)AND W2)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT STO) AN
22、D SWC AND (NOT SWB) AND (NOT SWA)AND W3) OR(NOT STO) AND (NOT SWC) AND SWB AND SWA)AND W3) OR(NOT STO) AND (NOT SWC) AND SWB AND (NOT SWA)AND W3) OR(NOT STO) AND (NOT SWC) AND (NOT SWB) AND SWA)AND W3); AR<=(STO AND (NOT SWC) AND SWB AND (NOT SWA)AND W3) OR(STO AND (NOT SWC) AND (NOT SWB) AND SWA
23、)AND W3); LDPC<=NOT(NOT IR7) AND IR6 AND (NOT IR5) AND IR4)AND W3 AND C)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT STO) AND SWC AND (NOT SWB) AND (NOT SWA)AND W3) OR(NOT STO) AND (NOT SWC) AND SWB AND SWA)AND W3) OR(NOT STO) AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W3); PC<=(
24、STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W3 AND(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND (NOT IR4) OR(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W3 AND(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND IR4) OR(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W3 AND(NOT IR7) AND (NOT IR6) AND IR
25、5 AND (NOT IR4) OR(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W3 AND(NOT IR7) AND (NOT IR6) AND IR5 AND IR4) OR(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W3 AND(NOT IR7) AND IR6 AND (NOT IR5) AND (NOT IR4) OR(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W3 AND(NOT IR7) AND IR6 AND I
26、R5 AND (NOT IR4) OR(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W3 AND(NOT IR7) AND IR6 AND IR5 AND IR4) OR(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W2 AND(NOT IR7) AND IR6 AND (NOT IR5) AND IR4); LDRi<=(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND (NOT IR4)AND W3)AND(STO AND (NOT SWC) A
27、ND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND IR4)AND W3)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND (NOT IR6) AND IR5 AND (NOT IR4)AND W3)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND IR6 AND (NOT IR5) AND (NOT IR4)AND W3)AND(STO AN
28、D (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(STO AND (NOT SWC) AND SWB AND SWA)AND W3); LRW<=(STO AND(NOT SWC)AND SWB AND(NOT SWA)AND W1) OR(STO AND(NOT SWC)AND(NOT SWB)AND(NOT SWA)AND(NOT IR7)AND IR6 AND(NOT IR5)AND(NOT IR4)AND W3); LDIR<=(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W1) OR
29、(STO AND SWC AND (NOT SWB) AND (NOT SWA)AND W2) OR(STO AND (NOT SWC) AND SWB AND SWA)AND W2); SW_BUS<=NOT(NOT STO) AND SWC AND (NOT SWB) AND (NOT SWA)AND W3) OR(STO AND SWC AND (NOT SWB) AND (NOT SWA)AND W1) OR(NOT STO) AND (NOT SWC) AND SWB AND SWA)AND W3) OR(STO AND (NOT SWC) AND SWB AND SWA)AN
30、D(W1 OR W3) OR(NOT STO) AND (NOT SWC) AND SWB AND (NOT SWA)AND W3) OR(NOT STO) AND (NOT SWC) AND (NOT SWB) AND SWA)AND W3) OR(STO AND (NOT SWC) AND (NOT SWB) AND SWA)AND W1) OR(NOT STO) AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W3); RS_BUS<=NOT(NOT IR7) AND (NOT IR6) AND IR5 AND IR4)AND W2 AND
31、(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND IR6 AND (NOT IR5) AND (NOT IR4)AND W2 AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND IR6 AND (NOT IR5) AND IR4)AND W3 AND C AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND IR6 AND IR5 AND IR4)AND W3 A
32、ND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(STO AND SWC AND (NOT SWB) AND (NOT SWA)AND W3); RAM_BUS<=NOT(NOT IR7) AND IR6 AND (NOT IR5) AND (NOT IR4)AND W3 AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(STO AND (NOT SWC) AND SWB AND (NOT SWA)AND W1); ALU_BUS<=NOT(NOT IR7) AND (NO
33、T IR6) AND (NOT IR5) AND (NOT IR4)AND W3 AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND IR4)AND W3 AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND (NOT IR6) AND IR5 AND (NOT IR4)AND W3 AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)
34、OR(NOT IR7) AND (NOT IR6) AND IR5 AND IR4)AND W3 AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA); TJ<=(NOT IR7) AND IR6 AND IR5 AND (NOT IR4)AND W3 AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND IR6 AND IR5 AND IR4)AND W3 AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(N
35、OT STO) AND SWC AND (NOT SWB) AND (NOT SWA)AND W3) OR(STO AND SWC AND (NOT SWB) AND (NOT SWA)AND W3) OR(NOT STO) AND (NOT SWC) AND SWB AND SWA)AND W3) OR(STO AND (NOT SWC) AND SWB AND SWA)AND(W2 OR W3) OR(STO AND (NOT SWC) AND SWB AND (NOT SWA)AND W1) OR(NOT STO) AND (NOT SWC) AND (NOT SWB) AND SWA)
36、AND W3) OR(STO AND (NOT SWC) AND (NOT SWB) AND SWA)AND W3); SKIP<=(NOT STO) AND SWC AND (NOT SWB) AND (NOT SWA)AND W1) OR(NOT STO) AND (NOT SWC) AND SWB AND SWA)AND W1) OR(NOT STO) AND (NOT SWC) AND SWB AND (NOT SWA)AND W1) OR(STO AND (NOT SWC) AND SWB AND (NOT SWA)AND W1) OR(NOT STO) AND (NOT SW
37、C) AND (NOT SWB) AND SWA)AND W1) OR(STO AND (NOT SWC) AND (NOT SWB) AND SWA)AND W1) OR(NOT STO) AND (NOT SWC) AND (NOT SWB) AND (NOT SWA)AND W1); S3<=(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND (NOT IR4)AND W3) OR(NOT IR7) AND (NOT IR6) AND IR5 AND (NOT IR4)AND W3); S2<=(NOT IR7) AND (NOT IR6) A
38、ND (NOT IR5) AND IR4)AND W3); S1<=(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND IR4)AND W3) OR(NOT IR7) AND (NOT IR6) AND IR5 AND (NOT IR4)AND W3); S0<=(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND (NOT IR4)AND W3) OR(NOT IR7) AND (NOT IR6) AND IR5 AND (NOT IR4)AND W3); M<=(NOT IR7) AND (NOT IR6) A
39、ND IR5 AND (NOT IR4)AND W3); Cn<=NOT(NOT IR7) AND (NOT IR6) AND (NOT IR5) AND IR4)AND W3)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA); end func;测试波形图进行波形测试,以WRM(写存储器STO,SWC,SWB,SWA起始分别为0001)为例,结果如下:W1:W2:W3:STO:CLR:SKIP:SW_BUS#:LDAR#:TJ:CEL#:LR/W#:AR+1:注意:W2时序由于SKIP的存在并没有真正利用,而是直接跳过,但图示中给出其应
40、出现的电平信号控制模块原理图 硬布线控制器的基本原理:每个微操作控制信号都是一系列输入量的逻辑函数,即用组合逻辑电路来实现,S=f(Im,Mi,Tk,Bj)其中Im是来自机器指令操作码译码器的输出信号,Mi是节拍点位信号,Tk是节拍脉冲信号,Bj是状态条件判断信号。在TEC-5实验系统中,Tk(T1T4)已经直接输送给数据通路,Im即为指令系统的IR7IR4信号,Mi即为节拍点位信号(W1W3),Bj信号包括:来自数据通路中运算器的仅为信号C;来自控制台的开关信号SWC,SWB,SWA; 每个控制信号都是上述输入信号的逻辑表达式,所以可用组合逻辑构造电路,对所有控制信号设计逻辑函数表达式即可。
41、如CEL#=STA*W3+LDA*W3+RRF2*W1+WRF2*W1+RRM2*W1+WRM2*W1写成VHDL语句即为CEL<=NOT(NOT IR7) AND (NOT IR6) AND IR5 AND IR4)AND W3)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(NOT IR7) AND IR6 AND (NOT IR5) AND (NOT IR4)AND W3)AND(STO AND (NOT SWC) AND (NOT SWB) AND (NOT SWA) OR(STO AND SWC AND (NOT SWB
42、) AND (NOT SWA)AND W1) OR(STO AND (NOT SWC) AND SWB AND SWA)AND W1) OR(STO AND (NOT SWC) AND SWB AND (NOT SWA)AND W1) OR(STO AND (NOT SWC) AND (NOT SWB) AND SWA)AND W1);敏感信号表(CLR W1等)CLR信号有效时各状态控制变量标记位(STO、SST0、FLAG等)清零 时序进入W3状态QD启动(W1W3)对应各控制变量状态变化CLR无效时QD启动(W1W3)标记位状态相应调整控制程序总图其中,对应各控制变量即为控制器所涉及到的
43、各输出信号,有关标记位状态调整的控制部分原理图如下:在QD控制下(W1W3顺序变化),按照操作台的STO,SWC,SWB,SWA对应值顺序执行各控制微指令,如果FLAG信号为1,则SST0状态变为1,若SST0状态为1且操作进入W1时序,STO变化为1,起到自动变换操作台的目的。无论控制器处于何种状态,均跳至W3时序,并且标记位FLAG,STO,SST0均清零,此时可以通过改变SWC,SWB,SWA来进行控制台操作的选择,继续按QD,时序仍然从W1W3变化,此时状态转移到CLR无效状态。CLR无效时CLR有效时来自敏感信号表的信号信息QD控制各输出控制信号的状态是否有效下面为控制操作台跳转的源
44、程序代码及相关注释:使用硬连线控制器的CPU设计说明书 一、设计与调试任务:(1)按给定的数据格式和指令系统,利用大容量ISP可编程器件,设计一台硬连线控制器组成的处理机;(2)根据设计,在TEC-5试验系统中进行调试;(3)在调试成功的基础上,整理出设计图纸和其他文件。二、设计步骤:首先,由课程设计中提示的指令系统和数据通路图,联系硬连线控制器的基本原理(即每个微操作控制信号S是一系列输入量的逻辑函数,即用组合逻辑电路来实现,S=f(Im,Mi,Tk,Bj)其中Im是机器指令操作码译码器的输出信号,Mi是节拍电位信号,Tk节拍脉冲信号,Bj是状态条件判断信号),参考PPT中提供的指令周期流程
45、图(其中包括执行一条机器指令的节拍电位数W1,W2,W3),写出组合逻辑译码表(组合逻辑译码表见硬布线控制其逻辑模块图部分)。然后,根据译码表可以写出每个控制信号的逻辑表达式(各逻辑表达式具体见硬布线控制其逻辑模块图部分),这个表达式就是它所在的行各乘积项相加(逻辑或)。使用可编程逻辑器件(ISP、FPGA),只要将表达是直接写成VHDL源程序,编译软件会自动完成电路优化的工作。三、实验过程:在准备好数据通路图和指令周期流程图后,做出组合逻辑译码表,接着在编程软件中根据译码表写出每个控制信号的逻辑表达式,本次试验比较重点的地方在于信号变量SST0的变化控制,当按下CLEAR时,时序跳入W3状态
46、,此时要保证STO为0,而在程序连续运行的过程中,要保证在SST0控制下,STO可以在多于三拍的控制命令的后期变化为1。在解决了上述两个方面问题(即每个控制信号的逻辑表达式的写法和SST0控制部分)后,编译程序,下载程序到TEC-5系统中,按照管脚分配进行连线并开始测试,对出现的时序问题和错误管脚电平信号进行检查和修改,并再次编译下载程序直至调试过程无错误产生,保证全部控制流程图检查完毕并保证数据通路的执行部件功能正确。接着编写一段包括有全部指令系统的测试程序并将程序和有关数据写入TEC-5系统,分别用连续和DB方式运行,对出现的结果进行检查,以验证机器执行指令的正确性。最后编写一段表演程序,
47、令机器执行并接受验收。在整个编写程序、下载调试、检查验收过程中,随时记录出现的问题和存在的疑问并着手解决,最终写入相应文档中。四、实验结论和总结: 根据硬连线控制器的相关理论基础,通过将程序控制器流程图编写为相应的VHDL程序并下载到TEC-5系统中正确运行,实现了硬连线控制器的控制功能,完成了实验任务。证明了硬连线控制器理论的正确性,提高了动手操作能力和解决问题的能力,增加了相关实验经验。设计与调试小结 设计硬布线控制器,先根据设计好的硬布线控制器的指令周期流程图,分别列出每条控制信号的逻辑表达式,这部分设计主要是和时序中的W1-W3有关,T1-T4是在数据通路中由与门已经与各信号连接好的,
48、所以编程时不用考虑。在列写逻辑表达式及编程下载调试过程的出现的问题:1. 关于RS_BUS和RS_DBUS的问题。在设计的指令流程图中有两个从RS将数据打到总线上的控制信号。解决方案:其实质是一样的,编写程序时,只需要编写一个控制信号即可。2. 在指令流程图中ALU=A+B这样的信号应该如何编写控制信号?解决方案:ALU是由一片74LS181构成,通过S0-S3以及M和Cn#可以直接控制ALU做算术运算还是逻辑运算,以及是做何种算术运算或逻辑运算,所以,其实真正控制ALU的信号是S0-S3以及M和Cn#,通过74181ALU算术/逻辑运算功能表编写各需要实现的功能。3. 在JC跳转指令中,需要
49、通过C进位来判断下一条指令是跳转还是顺序执行,这个C应该如何编写?解决方案:C是ALU的运算进位信号,在编码时候要考虑进去,就像时序W一样与在逻辑表达式中,就和IR7-4和SW3-0一样是多路选择的条件。4. 在ALU功能表中没有A-B运算,应该如何处理?解决方案:ALU的逻辑功能表中算术运算部分又分为两行,一行是Cn#=0,另一行是Cn#=1,Cn#是一个强制进位,低电平有效,当Cn#=0时,产生强制进位,则运算出的A-B-1再加上末位的强制进位之后正好输出的就是A-B,而在编写其他功能比如A+B时,则还是让Cn#=1不产生强制进位。即Cn#也是一控制信号,需要编写到程序当中。5. 重要的控
50、制信号为了保证其稳定工作,都需要用低电平有效,对于低电平有效的信号,应该如果编写逻辑表达式?解决方案:对于低电平有效,还是将出现该控制信号的位置和时序相与,之后再整体取非即可。6. 对于像LR/W#之类的信号,高低电平代表不同的意思时怎么编逻辑表达式?解决方案:还是只看为1有效的情况,为0的情况不用写入逻辑表达式的或中,否则会出现只有在全部都为0有效时结果才会为0,而这种情况是不可能出现的,导致LR/W#会一直为1。相同的情况也出现在S0-S3和M的编写上。7. 如何编写STO以使得控制台可以自动转化?解决方案:增添标志位FLAG用于实现自动跳转。当CLR信号有效时,标记FLAG置0,SST0
51、和STO也都置0,此时控制台的处于W3,下一节拍到来,控制台进入W1,由FLAG有效表达式,可知FLAG有效,这时通过用SST0变量来记录FLAG有效的信息,将SST0置1,这样即使FLAG下一节拍变为0(因为进入了W2拍),也可以通过查看SST0的值来确认FLAG曾经有效,然后使用条件SST0有效和W1节拍的到来来使STO值置1有效,这样在下一个W1节拍,由STO,SWC,SWB,SWA即确定了此刻控制器进入的控制台,实现自动跳转的功能。8. 编写的程序出现过and overload的错误,怎么回事?解决方案:发现当std_logic类型变量和bit类型变量共同使用and时,就会报错,即两种不同类型的变量不能用同一个and,将变量类型统一后问题解决。9. 在编程中,process中的敏感信号需要把各个控制变量写出来吗? 解决方案:不需要,只需要将实际产生影响的信号,如CLR写入敏感信号中即可,其他信号可以随意,它们是否变化仍取决于敏感信号表中各敏感信号的变化。10. 程序编译通过后,下载时找不到 .jed 文件,即未生成 .jed 文件,怎么回事?解决方案:编程过程中选错了器件,应该选择器件ispLSI1032E-70LJ84而非默认器件。11. 在编译生成管脚时,出现了芯片上没有对应序号的管脚,原因是什么?解决方案:同上一个问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论