4、微指令流程设计
① :取指公操作:处于M1内(其中表内L为低,H为高);如表4.27
T节拍 T1 T2 T3 功能或所需数据流向 μAR清零 PC→MM RD; LDIR; PC+1→PC; IRA→μAR
所需控制信号值 μR_395=L S1=L =H; IR_G=H; PC_CP=(↑); S2=L,μAR_(↓) T4 表4.27 取指公操作设计流程
② :LOAD指令(M1同取指公操作,只列出M2的设计):如表4.28
T节拍 T1 T2 功能或所需数据流向 IRB→MM RD; BUS→bus; LDAC; 空 空 表4.28 LOAD指令设计流程
所需控制信号值 S2=S1=H =H; Up_244=L; AC_G=H; 空 空 T3 T4 ③ :STORE指令(M1同取指公操作,只列出M2的设计):如表4.29
T节拍 T1 T2 T3 T4 功能或所需数据流向 IRB→MM 空 传操作数A; LDDR2; DR2out; bus→BUS; WR; 所需控制信号值 S2=S1=H 空 (S3,S2,S1,S0,M,)=(LLLLLH); DR2_G=H,DR2_Ctrl=L; DR2_G=L,DR2_Ctrl=L; Down_244=L; =L;
表4.29 STORE指令设计流程
④ :JMP指令(M1同取指公操作,只列出M2的设计):如表4.30 T节拍 T1 T2 T3 T4 功能或所需数据流向 IRB→PC 空 空 空 表4.30 JMP指令设计流程
所需控制信号值 PC_ =L(PC_CEP/CET=L) 空 空 空
⑤ :ADD指令(M1同取指公操作,只列出M2的设计):如表4.31
注:所有双操作数指令(SUB,AND,Fab,NOT D,⊙等)流程均同ADD,区别只是(S3,S2,S1,S0,M,)序列值不同而已,此处不再赘述,类比即可。 T节拍 T1 T2 功能或所需数据流向 IRB→MM RD; BUS→bus; LDDR1; ADD; LDDR2; DR2out; LDAC; 所需控制信号值 S2=S1=H =H; Up_244=L; DR1_G=H; (S3,S2,S1,S0,M,)=(HLLHLH); DR2_G=H,DR2_Ctrl=L; DR2_G=L,DR2_Ctrl=L; AC_G=H; T3 T4 表4.31 ADD指令设计流
⑥ :NOT(A)指令(M1同取指公操作,只列出M2的设计):如表4.32
注:所有单操作数指令(乘2等)流程均同该指令,区别只是(S3,S2,S1,S0,M,)序列值不同而已,此处不再赘述,类比即可。 T节拍 T1 T2 T3 功能或所需数据流向 空 空 NOT A; 所需控制信号值 空 空 (S3,S2,S1,S0,M,)=(LLLLHL);
LDDR2; T4 DR2out; LDAC; DR2_G=H,DR2_Ctrl=L; DR2_G=L,DR2_Ctrl=L; AC_G=H; 表4.32 NOT(A)指令设计流
⑦ :END指令(M1同取指公操作,只列出M2的设计):如表4.33
T节拍 T1 T2 T3 T4
功能或所需数据流向 STOP 空 空 空 所需控制信号值 C0(STOP)=1 空 空 空 表4.33 END指令设计流
5、逻辑表达式
因为很多符号无法直接打出(如作为非的上划线等),在这里直接用纸质上的截图来作为参考:
4.3.3微程序的设计
① :微指令格式:如表4.34
微指令共设计了16位,并且全部投入使用,共有16位微指令控制信号,微地址为4位,可以存放16位微指令,满足使用需求,具体设计如下: