【正文】
,以及小于此平均值的數(shù)的個數(shù)。Y,修改 ZF,SF 1 1 0 Y 9 10 設(shè)計地址轉(zhuǎn)移邏輯電路 地址轉(zhuǎn)移邏輯電路是根據(jù)微程序流程圖中的棱形框部分及多個分支微地址,利用微地址寄存器的異步置“ 1”端,實現(xiàn)微地址的多路轉(zhuǎn)移。 SE3 = NOT(I3 AND P1 AND T4)。 七 、 測試 及 結(jié)果分析 根據(jù)設(shè)計的匯編程序和對應(yīng)的機(jī)器代碼,對設(shè)計的模型機(jī)進(jìn)行仿真測試,并分析結(jié)果: 下圖顯示了 RAM 地址的初值設(shè)置 00H,循環(huán)計數(shù)設(shè)置 04H,第一個循環(huán)讀入40H 至 R2 并存進(jìn) RAM 的過程。 十 、附錄 ( VHDL 源文件) 的設(shè)計(保存匯編源代碼對應(yīng)的機(jī)器碼以及地址) 程序: LIBRARY IEEE。 ARCHITECTURE A OF ROM IS BEGIN DOUT = 17 0001000000000000 WHEN ADDR=00000000 AND CS_I = 39。 ELSE STO R2,(R0) 0100000000000000 WHEN ADDR=00000100 AND CS_I = 39。 ELSE JNS L1 0001000000000000 WHEN ADDR=00001000 AND CS_I = 39。 ELSE TEST R2 0111000000001111 WHEN ADDR=00001100 AND CS_I = 39。 ELSE L3:INC R0 0101000100000000 WHEN ADDR=00010000 AND CS_I = 39。 ELSE OUT R3 0000000000000000。 S2,S1,S0: IN STD_LOGIC。039。039。 AND S1=39。 TEMP=AA+1。139。 ELSIF(S2=39。amp。 ELSIF(S2=39。amp。039。 19 狀態(tài)條件寄存器 只保留了用到的 SF LIBRARY IEEE。) THEN SF=S。 SE6,SE5,SE4,SE3,SE2,SE1: OUT STD_LOGIC )。 SE1 = NOT(I1 AND P1 AND T4)。039。EVENT AND T2=39。 D:OUT STD_LOGIC_VECTOR(5 DOWNTO 0) )。 END A。 END COUNTROM。DEC WHEN 000110 = DATAOUT=10000111000111111100000000。IRPC WHEN 001110 = DATAOUT=10000000001110011100000000。 USE 。 ARCHITECTURE A OF MCOMMAND IS SIGNAL DATAOUT:STD_LOGIC_VECTOR(19 DOWNTO 0)。 LDAR=DATAOUT(17) AND T3。 ALU_B=DATAOUT(9)。 P1=DATAOUT(1)。 UA5,UA4,UA3,UA2,UA1,UA0: OUT STD_LOGIC )。 END A。 UA1=D(1)。 END LS273。 1:2 分配器 LIBRARY IEEE。) THEN OUTBUS=DBUS。 ALU_B,Rs_B,ADDR_B:IN STD_LOGIC。) THEN DBUS = RsOUT。 30 ( 2)四選一數(shù)據(jù)選擇器 LIBRARY IEEE。 AND I10=39。 ELSIF(I11=39。 END A。 AND I8=39。 Y3=39。 Y1=39。 AND I8=39。 Y3=39。 Y3=39。 USE 。)THEN QOUT=00000000。 END IF。 CLK: IN STD_LOGIC。 END PROCESS。 END COUNTER。 T4=39。 T3=X(1) AND(NOT X(0))。 END IF。 X=00。 BEGIN PROCESS(CLK,CLR) BEGIN IF(CLR=39。 時序產(chǎn)生器 程序: LIBRARY IEEE。 END IR。 33 END PROCESS。EVENT AND LDPC=39。 D:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 END IF。 ELSE Y0=39。) THEN Y0=39。 Y2=39。 ELSIF(I9=39。) THEN Y0=39。 USE 。 AND I10=39。) THEN X=R0。 ENTITY MUX4_1 IS PORT( R0,R1,R2,R3:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。039。 END MUX3。 END IF。 ENTITY FEN2 IS PORT( LED_B:IN STD_LOGIC。EVENT AND CLK=39。 END A。 USE 。 27 ARCHITECTURE A OF F2 IS BEGIN UA5=D(5)。 END PROCESS。 LED_B=DATAOUT(7)。 LDRI=DATAOUT(15) AND T4。EVENT AND T2=39。 USE 。 END CASE。JNS WHEN 001000 = DATAOUT=10100000001111111100001100。 BEGIN PROCESS BEGIN CASE ADDR IS WHEN 000000 = DATAOUT=11010010001111110110000000。 USE 。 ARCHITECTURE A OF F1 IS BEGIN D(5)=UA5。) THEN UA = D。039。 ( 2)微地址寄存器 22 微地址寄存器 uar的 內(nèi)部結(jié)構(gòu): 程序: LIBRARY IEEE。 ARCHITECTURE A OF ADDR IS BEGIN SE6 = 39。 END PROCESS。 ENTITY PSW IS PORT( S,LDPSW: IN STD_LOGIC。 ELSE ALUOUT=00000000 。 SF=AA(7)。 AND S1=39。 BB=39。 AND S1=39。039。 SF=TEMP(7)。 AND S0=39。Y。039。 18 SF: OUT STD_LOGIC )。 ALU(運(yùn)算器) LIBRARY IEEE。 ELSE DEC R1 0110000100000000 WHEN ADDR=00010001 AND CS_I = 39。 ELSE JNS L3 1001101000000000 WHEN ADDR=00001101 AND CS_I = 39。 ELSE MOV R0 10H 0001000100000100 WHEN ADDR=00001001 AND CS_I = 39。 ELSE INC R0 0101000100000000 WHEN ADDR=00000101 AND CS_I = 39。 ELSE MOV R0,10H 0001000100000100 WHEN ADDR=00000001 AND CS_I = 39。 USE 。 15 下圖為一次從 RAM 中讀取負(fù)數(shù),并計算平方并加到 R3的過程 下圖為 3 個負(fù)數(shù)從 RAM 中讀取判斷,求得平方并求和的過程。 SE1 = NOT(I1 AND P1 AND T4)。A4~ 181。 ; ,將匯編語言源程序手工轉(zhuǎn)換成機(jī)器語言源程序,并將其設(shè)計 到模型機(jī)中的 ROM中去; EDA軟件進(jìn)行功能仿真,要保證其結(jié)果滿足題目的要求;(其中要利用 EDA軟 件提供的波形編輯器,選擇合適的輸入輸出信號及中間信號進(jìn)行調(diào)試。 (非卓越班) ●輸入包含 5個整數(shù)(有符號數(shù))的數(shù)組 M,輸出最大負(fù)數(shù)的絕對值。 (卓越班) 說明: A類題目的嵌入式模型計算機(jī)內(nèi)必須設(shè)計和使用 RAM存儲器讀寫數(shù)據(jù),相應(yīng)地需要設(shè)計對 RAM存儲器數(shù)據(jù)的讀寫指令,以及對 RAM中數(shù)組 操作必須的寄存器間接尋址方式等。 具體指令格式如下: 對 Rs 和 Rd 的規(guī)定 : 模型機(jī)規(guī)定數(shù)據(jù)的表示采用定點整數(shù)補(bǔ)碼表示,單字長為 8 位,其格式如下 : 微地址 助記符號 指令格式 指令功能 1512 11 10 9 8 7 0 000001 MOV Rd,im 0001 xx Rd im 立即數(shù) im→ Rd 000010 INT R