【正文】
狀態(tài) S3: 這個狀態(tài)下 “控制器 /序列發(fā)生器”將停止送出脈沖信號 CLK,這時 SAP1 CPU會停止執(zhí)行工作 . 狀態(tài) S4: 這個狀態(tài) HLT指令沒有作用 狀態(tài) S5: 這個狀態(tài) HLT指令沒有作用 SAP1 CPU 設(shè)計 Process與 Case When命令架構(gòu)出 6個脈沖的指令周期 ? ARCHITECTURE a OF SAP1 IS ? …… ? TYPE STATE IS (SO,S1,S2,S3,S4,S5)。 pogram counter=0H ? ACC=“00000000”。 cpu next state ? WHEN S1= (increment state fetch cycle2) ? NState=S2。 cpu next state WHEN S5= STATE S5 (Execution cycle3) ? NState=S0。 ? END IF。 ? begin ? if rst =?1? then ? ……. ? Pstate=s0。 when s1= nstate =s2。 ? When s2= ? Nastate =s3。 ? …… ”指令執(zhí)行周期( fetch cycle)”,即狀態(tài) S3~S5的命令 ? 首先在 Case When語句的狀態(tài) S3處,加入下面粗體字命令,將“指令寄存器” ? (IR)截取高 4位指令至 TMP里 ? …… ? Elsif cp?event and cp=?0? then ? …… ? when s2= ? …… ? When s3= ? nstate=s4。 ? …… ? end case。 ? elsif tmp =“1110”then ? outreg=acc。 ? elsif tmp=“0010”then ? breg=databus。 ? F1:=false。 ? End if。 連接 演講完畢,謝謝觀看! 。 ? End if。 ? Acc=std_logic_vector(num)。 ? Elsif pstate=s5 then ? if tmp =“0001”and f1=ture then ? Num =unsigned(acc)+unsigend(breg)。 ? End if ? Elsif pstate=s4 then ? if tmp=“0000”then ? acc=databus。 ? End if。 ? changestatemode : process(cp,rst) ? variable flag, F1:boolean。 ? Ir=databus。 flag:=false。 Enable elsif cp?event and cp=?0?then if run=?1? then case pstate is case pstate is when so = nstate=s1。 ? END a。 ? PState=NState。 cpu next state WHEN S3= STATE S3 (Execution cycle 1) ? NState=S4。 CPU run program enable ? PState=S0。 present state ? SIGNAL NState :STATE。 ARCHITECTURE a OF ROM 16_8 IS BEGIN DATA=“00001001”WHEN ADDR=“0000”AND CE=?0? LDA 9H “00011010”WHEN ADDR=“0001”AND CE=?0?ELSE ADD AH “00011011”WHEN ADDR=“0010”AND CE=?0?ELSE A