【正文】
A OF F2 IS BEGIN UA5=D(5)。 UA4=D(4)。 UA3=D(3)。 UA2=D(2)。 UA1=D(1)。 UA0=D(0)。 END A。 ( 7)指令代碼轉(zhuǎn)換器 F3 程序: LIBRARY IEEE。 USE 。 ENTITY F3 IS PORT( D:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 UA3,UA2,UA1,UA0: OUT STD_LOGIC )。 END F3。 ARCHITECTURE A OF F3 IS BEGIN UA3=D(3)。 UA2=D(2)。 UA1=D(1)。 UA0=D(0)。 END A。 寄存器單元 程序: LIBRARY IEEE。 USE 。 28 ENTITY LS273 IS PORT( D:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 CLK: IN STD_LOGIC )。 END LS273。 ARCHITECTURE A OF LS273 IS BEGIN PROCESS(CLK) BEGIN IF(CLK39。EVENT AND CLK=39。139。)THEN O=D。 END IF。 END PROCESS。 END A。 1:2 分配器 LIBRARY IEEE。 USE 。 ENTITY FEN2 IS PORT( LED_B:IN STD_LOGIC。 DBUS:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 FENOUT,OUTBUS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) )。 END FEN2。 ARCHITECTURE A OF FEN2 IS BEGIN PROCESS BEGIN IF(LED_B=39。039。) THEN OUTBUS=DBUS。 ELSE FENOUT=DBUS。 END IF。 END PROCESS。 29 END A。 選擇器 ( 1) 3 選 1 數(shù)據(jù)選擇器 LIBRARY IEEE。 USE 。 ENTITY MUX3 IS PORT( ALUOUT,RsOUT,IR_AOUT:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 ALU_B,Rs_B,ADDR_B:IN STD_LOGIC。 DBUS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) )。 END MUX3。 ARCHITECTURE A OF MUX3 IS BEGIN PROCESS(ALU_B,Rs_B,ADDR_B) BEGIN IF(ALU_B=39。039。) THEN DBUS = ALUOUT。 ELSIF(Rs_B=39。039。) THEN DBUS = RsOUT。 ELSIF(ADDR_B=39。039。) THEN DBUS =IR_AOUT。 ELSE DBUS = 00000000。 END IF。 END PROCESS。 END A。 30 ( 2)四選一數(shù)據(jù)選擇器 LIBRARY IEEE。 USE 。 ENTITY MUX4_1 IS PORT( R0,R1,R2,R3:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 X:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 I11,I10:IN STD_LOGIC )。 END MUX4_1。 ARCHITECTURE A OF MUX4_1 IS BEGIN PROCESS BEGIN IF(I11=39。039。 AND I10=39。039。) THEN X=R0。 ELSIF(I11=39。039。 AND I10=39。139。)THEN X=R1。 ELSIF(I11=39。139。 AND I10=39。039。)THEN X=R2。 ELSE X=R3。 END IF。 END PROCESS。 END A。 31 ( 3) 24 選擇器 LIBRARY IEEE。 USE 。 ENTITY DECODER IS PORT( I9,I8:IN STD_LOGIC。 Y0,Y1,Y2,Y3:OUT STD_LOGIC )。 END DECODER。 ARCHITECTURE A OF DECODER IS BEGIN PROCESS BEGIN IF(I9=39。039。 AND I8=39。039。) THEN Y0=39。139。 Y1=39。039。 Y2=39。039。 Y3=39。039。 ELSIF(I9=39。039。 AND I8=39。139。) THEN Y0=39。039。 Y1=39。139。 Y2=39。039。 Y3=39。039。 ELSIF(I9=39。139。 AND I8=39。039。) THEN Y0=39。039。 Y1=39。039。 Y2=39。139。 Y3=39。039。 ELSE Y0=39。039。 Y1=39。039。 32 Y2=39。039。 Y3=39。139。 END IF。 END PROCESS。 END A。 程序計(jì)數(shù)器 程序: LIBRARY IEEE。 USE 。 USE 。 USE 。 ENTITY PC IS PORT( LOAD,LDPC,CLR: IN STD_LOGIC。 D:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) )。 END PC。 ARCHITECTURE A OF PC IS SIGNAL QOUT: STD_LOGIC_VECTOR(7 DOWNTO 0)。 BEGIN PROCESS(LDPC,CLR,LOAD) BEGIN IF(CLR=39。039。)THEN QOUT=00000000。 ELSIF(LDPC39。EVENT AND LDPC=39。139。)THEN IF(LOAD=39。039。)THEN QOUT=D。 ELSE QOUT=QOUT+1。 END IF。 END IF。 33 END PROCESS。 O=QOUT。 END A。 指令寄存器 程序: LIBRARY IEEE。 USE 。 ENTITY IR IS PORT( D: IN STD_LOGIC_VECTOR(15 DOWNTO 0)。 CLK: IN STD_LOGIC。 Q: OUT STD_LOGIC_VECTOR(15 DOWNTO 0) )。 END IR。 ARCHITECTURE A OF IR IS BEGIN PROCESS(CLK) BEGIN IF(CLK39。EVENT AND CLK=39。139。) THEN Q=D。 END IF。 END PROCESS。 END A。 時(shí)序產(chǎn)生器 程序: LIBRARY IEEE。 USE 。 USE 。 USE 。 ENTITY COUNTER IS PORT( CLK,CLR: IN STD_LOGIC。 34 T2,T3,T4: OUT STD_LOGIC )。 END COUNTER。 ARCHITECTURE A OF COUNTER IS SIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0):=00。 BEGIN PROCESS(CLK,CLR) BEGIN IF(CLR=39。039。) THEN T2=39。039。 T3=39。039。 T4=39。039。 X=00。 ELSIF(CLK39。EVENT AND CLK=39。139。) THEN X=X+1。 T2=(NOT X(1))AND X(0)。 T3=X(1) AND(NOT X(0))。 T4=X(1) AND X(0)。 END IF。 END PROCESS。 END A。 與門