【文章內容簡介】
W=ADDR。 ELSIF(SEL=11110)THEN W=ALU。 ELSE NULL。 END IF。 END PROCESS。END A。5選1數據選擇器電路圖如圖 4所示:圖 4l 狀態(tài)字器存器PSWVHDL源程序:LIBRARY IEEE。 USE 。ENTITY PSW ISPORT( LDPSW : IN STD_LOGIC。 ZI,SI: IN STD_LOGIC。 FZ,FS: OUT STD_LOGIC )。END PSW。ARCHITECTURE A OF PSW ISBEGIN PROCESS(LDPSW) BEGIN IF(LDPSW39。EVENT AND LDPSW=39。139。)THEN FZ=ZI。 FS=SI。 END IF。 END PROCESS。END A。狀態(tài)字寄存器PSW電路圖如圖 5所示:圖 5l 微程序控制器CROMCROM的電路圖如圖 6所示:圖 6其內部電路圖如圖 7所示:圖 7其組成的部件有以下:216。 地址轉移邏輯ADDRLIBRARY IEEE。USE 。ENTITY ADDR IS PORT( I15,I14,I13,I12:IN STD_LOGIC。 FZ,FS,T4,P1,P2,P3:IN STD_LOGIC。 SE6,SE5,SE4,SE3,SE2,SE1:OUT STD_LOGIC)。END ADDR。ARCHITECTURE A OF ADDR ISBEGIN SE6=NOT ((NOT FS) AND P3 AND T4)。 SE5=NOT ((NOT FZ) AND P2 AND T4)。 SE4=NOT ( I15 AND P1 AND T4)。 SE3=NOT (I14 AND P1 AND T4)。 SE2=NOT (I13 AND P1 AND T4)。 SE1=NOT (I12 AND P1 AND T4)。END A。216。地址轉移邏輯ADDR電路圖如圖 8所示:圖 8216。 微命令寄存器MCOMMANDVHDL源程序:LIBRARY IEEE。USE 。USE 。USE 。ENTITY MCOMMAND ISPORT( T2,T3,T4:IN STD_LOGIC。 D:IN STD_LOGIC_VECTOR(20 DOWNTO 0)。 LOAD,LDPC,LDAR,LDIR,LDRI,LDPSW,RS_B,S2,S1,S0:OUT STD_LOGIC。 ALU_B,SW_B,LED_B,RD_D,CS_D,RAM_B,CS_I,ADDR_B,P1,P2,P3:OUT STD_LOGIC )。END MCOMMAND。ARCHITECTURE A OF MCOMMAND ISSIGNAL DATAOUT:STD_LOGIC_VECTOR(20 DOWNTO 0)。BEGIN PROCESS(T2) BEGIN IF(T239。EVENT AND T2=39。139。) THEN DATAOUT(20 DOWNTO 0)=D(20 DOWNTO 0)。 END IF。 LOAD=DATAOUT(20)。 LDPC=DATAOUT(19) AND T4。 LDAR=DATAOUT(18) AND T3。 LDIR=DATAOUT(17) AND T3。 LDRI=DATAOUT(16) AND T4。 LDPSW=DATAOUT(15) AND T4。 RS_B=DATAOUT(14)。 S2=DATAOUT(13)。 S1=DATAOUT(12)。 S0=DATAOUT(11)。 ALU_B=DATAOUT(10)。 SW_B=DATAOUT(9)。 LED_B=DATAOUT(8)。 RD_D=NOT(NOT DATAOUT(7) AND (T2 OR T3))。 CS_D=NOT(NOT DATAOUT(6) AND T3)。 RAM_B=DATAOUT(5)。 CS_I=DATAOUT(4)。 ADDR_B=DATAOUT(3)。 P1=DATAOUT(2)。 P2=DATAOUT(1)。 P3=DATAOUT(0)。 END PROCESS。END A。216。 微命令寄存器MCOMMAND電路圖如圖 9所示:圖 9216。 微地址寄存器aaVHDL源程序LIBRARY IEEE。USE 。ENTITY MMM IS PORT( SE:IN STD_LOGIC。 T2:IN STD_LOGIC。 D:IN STD_LOGIC。 CLR:IN STD_LOGIC。 UA:OUT STD_LOGIC )。END MMM。ARCHITECTURE A OF MMM ISBEGIN PROCESS(CLR,SE,T2) BEGIN IF(CLR=39。039。) THEN UA=39。039。 ELSIF(SE=39。039。)THEN UA=39。139。 ELSIF(T239。EVENT AND T2=39。139。) THEN UA=D。 END IF。 END PROCESS。END A。微程序寄存器內部電路圖如圖 10所示:圖 10微地址寄存器aa合成圖如圖 11所示:圖 11216。 微地址轉換器F1VHDL源程序:LIBRARY IEEE。USE 。ENTITY F1 IS PORT( UA5,UA4,UA3,UA2,UA1,UA0: IN STD_LOGIC。 D:OUT STD_LOGIC_VECTOR(5 DOWNTO 0))。END F1。ARCHITECTURE A OF F1 ISBEGIN D(5)=UA5。 D(4)=UA4。 D(3)=UA3。 D(2)=UA2。 D(1)=UA1。 D(0)=UA0。END A。216。 微地址轉換器F1電路圖如圖 12所示:圖 12216。 控制存儲器CONROMVHDL源程序:LIBRARY IEEE。USE 。USE 。USE 。ENTITY CONTROM ISPORT(ADDR: IN STD_LOGIC_VECTOR(5 DOWNTO 0)。 UA:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)。 O:OUT STD_LOGIC_VECTOR(20 DOWNTO 0) )。END CONTROM。ARCHITECTURE A OF CONTROM ISSIGNAL DATAOUT: STD_LOGIC_VECTOR(26 DOWNTO 0)。BEGIN PROCESS BEGIN CASE ADDR IS WHEN 000000 = DATAOUT=110100100011111101100000000。 WHEN 000001 = DATAOUT=100010100010111111000000000。 WHEN 000010 = DATAOUT=100010100011111110000000000。 WHEN 000011 = DATAOUT=101000000011111111000001111。 WHEN 000100 = DATAOUT=100011100001111111000000000。 WHEN 000101 = DATAOUT=100011101001111111000000000。 WHEN 000110 = DATAOUT=100011101101111111000000000。 WHEN 000111 = DATAOUT=100000100011111111010000000。 WHEN 001000 = DATAOUT=101000100011111110000010001。 WHEN 001001 = D