計算機(jī)組成原理課設(shè)論文《計算機(jī)原理課程設(shè)計》.docx_第1頁
計算機(jī)組成原理課設(shè)論文《計算機(jī)原理課程設(shè)計》.docx_第2頁
計算機(jī)組成原理課設(shè)論文《計算機(jī)原理課程設(shè)計》.docx_第3頁
計算機(jī)組成原理課設(shè)論文《計算機(jī)原理課程設(shè)計》.docx_第4頁
計算機(jī)組成原理課設(shè)論文《計算機(jī)原理課程設(shè)計》.docx_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

計算機(jī)組成原理課程設(shè)計題 目: 計算機(jī)原理課程設(shè)計 學(xué) 院: 計算機(jī)科學(xué)與工程學(xué)院 專 業(yè): 計算機(jī)科學(xué)與技術(shù) 姓 名: 學(xué) 號: 指導(dǎo)教師: 年 月 日目錄一.課程設(shè)計選題和完成內(nèi)容2二、系統(tǒng)的總體設(shè)計22.1 嵌入式CISC模型機(jī)的數(shù)據(jù)通路框圖22.2 系統(tǒng)的操作控制器的邏輯框圖22.3模型機(jī)的指令格式32.4編寫匯編源程序52.5最終機(jī)器碼.5三、時序產(chǎn)生器5四、 微程序控制器的設(shè)計64.1設(shè)計微指令流程圖64.2 設(shè)計微指令格式和微指令代碼表84.3設(shè)計地址轉(zhuǎn)移邏輯電路10五、單元電路設(shè)計105.1模型機(jī)頂層電路設(shè)計.115.2模型機(jī)crom單元電路設(shè)計.12六、設(shè)計過程所遇到的問題及解決記錄136.1JNS無法完成循環(huán)跳轉(zhuǎn).136.2 STO( STO R2 (R0) )存儲位置每次都為00H.13七、測試及結(jié)果分析錯誤!未定義書簽。八、心得體會總結(jié)16九、附錄16 各個單元的電路設(shè)計或VHDL源文件一.課程設(shè)計選題和完成內(nèi)容選題:本設(shè)計選擇題目為A類第一題題目:設(shè)計一臺嵌入式CISC模型計算機(jī) 采用定長CPU周期、聯(lián)合控制方式,并運(yùn)行能完成一定功能的機(jī)器語言源程序進(jìn)行驗證,機(jī)器語言源程序功能如下: A類(最高成績?yōu)椤皟?yōu)”): 輸入包含5個整數(shù)(有符號數(shù))的數(shù)組M,輸出所有負(fù)數(shù)的平方和。(非卓越班) 輸入包含5個整數(shù)(有符號數(shù))的數(shù)組M,輸出最大負(fù)數(shù)的絕對值。(非卓越班) 輸入包含10個整數(shù)(無符號數(shù))的數(shù)組M,輸出眾數(shù)(出現(xiàn)次數(shù)最多的數(shù))及其出現(xiàn)的次數(shù)。(卓越班) 輸入包含10個整數(shù)(無符號數(shù))的數(shù)組M,輸出中位數(shù)。(卓越班) 說明:A類題目的嵌入式模型計算機(jī)內(nèi)必須設(shè)計和使用RAM存儲器讀寫數(shù)據(jù),相應(yīng)地需要設(shè)計對RAM存儲器數(shù)據(jù)的讀寫指令,以及對RAM中數(shù)組操作必須的寄存器間接尋址方式等。 B類(最高成績?yōu)椤傲肌保?輸入5個整數(shù)(有符號數(shù)),輸出所有負(fù)數(shù)的平方和。(非卓越班) 輸入5個整數(shù)(有符號數(shù)),輸出最大負(fù)數(shù)的絕對值。(非卓越班) 輸入5個整數(shù)(有符號數(shù)),輸出它們的平均值,以及小于此平均值的數(shù)的個數(shù)。(卓越班) 要完成的內(nèi)容:1. 完成系統(tǒng)的總體設(shè)計,畫出模型機(jī)數(shù)據(jù)通路框圖;2. 設(shè)計微程序控制器(CISC模型計算機(jī))的邏輯結(jié)構(gòu)框圖; 3. 設(shè)計機(jī)器指令格式和指令系統(tǒng); 4. 設(shè)計時序產(chǎn)生器電路; 5. 設(shè)計所有機(jī)器指令的微程序流程圖; 6. 設(shè)計操作7. 的所有單元電路,并用VHDL語言(也可使用GDF文件-圖形描述文件)8. 對模型機(jī)中控制器單元;設(shè)計模型機(jī)的各個部件進(jìn)行編程,并使之成為一個統(tǒng)一的整體,即形成頂層電路。9. 由給出的題目和設(shè)計的指令系統(tǒng)編寫相應(yīng)的匯編語言源程序;9. 根據(jù)設(shè)計的指令格式,將匯編語言源程序手工轉(zhuǎn)換成機(jī)器語言源程序,并將其設(shè)計 到模型機(jī)中的 ROM中去; 10. 使用EDA軟件進(jìn)行功能仿真,要保證其結(jié)果滿足題目的要求;(其中要利用EDA軟 件提供的波形編輯器,選擇合適的輸入輸出信號及中間信號進(jìn)行調(diào)試。)二、系統(tǒng)的總體設(shè)計2.1 嵌入式CISC模型機(jī)的數(shù)據(jù)通路框圖 圖2-12.2 系統(tǒng)的操作控制器的邏輯框圖2.3模型機(jī)的指令格式這里,計算機(jī)數(shù)據(jù)通路的控制將由微程序控制器來完成,CPU從內(nèi)存中取出一條機(jī)器指令到指令執(zhí)行結(jié)束的一個指令周期全部由微指令組成的序列來完成,即一條機(jī)器指令對應(yīng)一個微程序。 此模型的系統(tǒng)共設(shè)計了共有10 條指令,分別為:IN,MOV,LAD,STO,INC,JNS, ADD,MUL, OUT,TEST。2.3.1具體指令格式如下:微地址助記符號指令格式指令功能15-1211 109 87 -0000001MOV Rd,im0001xxRdim立即數(shù)imRd000010INT Rd0010xxRdxx將輸入數(shù)據(jù)存到Rd寄存器000011STO Rs,(Rd)0011RsRdxx(Rs)-(Rd)將Rs的內(nèi)容存到Rd地址中000100INC Rd0100xxRdxx(Rd)+1Rd鎖存SF和ZF000101DEC Rd0101xxRdxx(Rd)-1Rd鎖存SF和ZF000110TEST Rd0110xxRdxx 測試 (Rd)是否為負(fù),鎖存SF000111JNS addr0111xxxxaddr若不為負(fù)數(shù),則addrPC001000LAD(Rs),Rd1000RsRdxx(Rs)-Rd 將Rs地址的內(nèi)容讀到Rd 001001MUL Rs Rd1001RsRdxx(Rs)*(Rd)-Rd001010ADD Rs,Rd1010RsRdaddr(Rs)+(Rd)-Rd001011OUT Rs1011Rsxxxx(Rs)OUTBUS 2.3.2對Rs和Rd的規(guī)定:Rs或Rd選定的寄存器0 0R00 1R1 1 0R2 1 1 R3 2.3.3模型機(jī)規(guī)定數(shù)據(jù)的表示采用定點整數(shù)補(bǔ)碼表示,單字長為8位,其格式如下: 7 6 5 4 3 2 1 0符號位 尾數(shù) 2.4編寫匯編源程序我們要實現(xiàn)的功能是對連續(xù)輸入的5個數(shù)據(jù)并存儲到RAM的連續(xù)的存儲單元中,然后再從RAM中將這5個數(shù)據(jù)依次讀取出來并作判斷是否為數(shù),將5個數(shù)中所有的負(fù)數(shù)其求平方和,并對其結(jié)果進(jìn)行顯示等功能,從而得到一個簡單的復(fù)雜指令模型機(jī)所實現(xiàn)的功能和結(jié)果/根據(jù)要求編寫如下匯編源程序:MOV R0,00H ;數(shù)據(jù)存放在RAM中的地址MOV R1,4H ;計數(shù) 從4H(4)開始,到-1時結(jié)束 L1: INT R2 ;輸入一個數(shù)到R2STO R2,(R0) ;將輸入的數(shù)存放到RAM的(R0)地址INC R0 ;RAM地址指針+1DEC R1 ;計數(shù)-1TEST R1 ;測試計數(shù)是否到達(dá)5次,(R1)是否為負(fù)數(shù)JNS L1 ;根據(jù)SF符號標(biāo)志的判斷,若不為負(fù)數(shù),則跳轉(zhuǎn) MOV R0 00H ;當(dāng)5個數(shù)輸入存儲完成后,重新初始化RAM指針MOV R1 4H ;重置計數(shù) L2: LAD (R0) R2 ;將(R0)地址的數(shù)取出送到R2中TEST R2 ;測試取出的數(shù)是否為負(fù)數(shù) JNS L3 ;若不為負(fù)數(shù),則跳轉(zhuǎn)到L3MUL R2,R2 ;若為負(fù)數(shù),則求平方 ADD R2,R3 ;再求平方和,把結(jié)果送到R3 L3: INC R0 ;RAM地址+1 DEC R1 ;計數(shù)-1+TST R1 ;測試計數(shù)是否到達(dá)5次,(R1)是否為負(fù)數(shù)JNS L2 ;為正數(shù),計數(shù)還不到5次,則跳轉(zhuǎn)到L2 OUT R3 ;計數(shù)到達(dá)5次,則將最后結(jié)果輸出2.5 最終機(jī)器碼為:地址助記符(匯編)機(jī)器代碼作用00 MOV R0,00H0001000000000000數(shù)據(jù)存放在RAM中的地址00H開始01 MOV R1,4H0001000100000100計數(shù) 從4H(4)開始,到-1時結(jié)束02L1:INT R20010001000000000輸入一個數(shù)到R203 STO R2,(R0)0011100000000000將輸入的數(shù)存放到RAM的(R0)地址04 INC R00100000000000000RAM地址指針+105 DEC R10101000100000000計數(shù)-106 TEST R10110000100000000測試計數(shù)是否到達(dá)5次,(R1)是否為負(fù)數(shù),鎖存SF07 JNS L1 0111000000000010根據(jù)SF符號標(biāo)志的判斷,若不為負(fù)數(shù),則跳轉(zhuǎn)08 MOV R0,00H0001000000000000當(dāng)5個數(shù)輸入存儲完成后,重新初始化RAM指針09 MOV R1,4H0001000100000100重置計數(shù)0AL2:LAD(R0),R21000001000000000將(R0)地址的數(shù)取出送到R2中0B TEST R20110001000000000測試取出的數(shù)是否為負(fù)數(shù),鎖存SF0C JNS L30111000000001111若不為負(fù)數(shù),則跳轉(zhuǎn)到L30D MUL R2,R21001101000000000若為負(fù)數(shù),則求平方0E ADD R2,R31010101100000000再求平方和,把結(jié)果送到R30FL3:INC R00100000000000000RAM地址+110 DEC R10101000100000000計數(shù)-1+11 TEST R10110000100000000測試計數(shù)是否到達(dá)5次,(R1)是否為負(fù)數(shù),鎖存SF12 JNS L20111000000001010為正數(shù),計數(shù)還不到5次,則跳轉(zhuǎn)到L213 OUT R31011110000000000計數(shù)到達(dá)5次,則將最后結(jié)果輸出三時序產(chǎn)生器 T1、T2、T3、T4與CLR、Q之間的關(guān)系圖如下:四微程序控制器的設(shè)計 微程序控制器的設(shè)計過程包括: (1)根據(jù)微處理器結(jié)構(gòu)圖、指令格式和功能設(shè)計所有機(jī)器指令的微程序流程圖,并確定每 條微指令的微地址和后繼微地址; (2)設(shè)計微指令格式和微指令代碼表; (3)設(shè)計地址轉(zhuǎn)移邏輯電路; (4)設(shè)計微程序控制器中的其它邏輯單元電路,包括微地址寄存器、微命令寄存器和控制 存儲器; (5)設(shè)計微程序控制器的頂層電路(由多個模塊組成)。4.1設(shè)計微指令流程圖根據(jù)微處理器結(jié)構(gòu)圖、指令格式和功能設(shè)計所有機(jī)器指令的微程序流程圖,并確定每條微指令的微地址和后繼微地址; 00PC-ABUS( I ) ,RD ROMIBUS-IR ,PC +1 P(1 )MOV INT STO INC DEC TEST JNS LAD MUL ADD OUT 01 02 03 04 05 06 07 08 09 0A 0BRd-YY+1-Rd鎖存SF,ZF測試Rd的最高位,鎖存到SF中Rs-XRd-YX*Y-Rd鎖存SF,ZFRs-XRd-YX+Y -Rd鎖ZF,SFROM-BUSBUS-PCIR(A)-RdSW-RdRd-ARRs-ARRd-YY+1-Rd鎖存SF,ZF 0E 0C RD RAMDBUS-RdP(2)00Rs-DBUSWE RAM 00 00 00 00 00 00 00 00 SF=1 SF=0 00 10IR(A)-Rd 00 004.2 設(shè)計微指令格式和微指令代碼表指令流程圖設(shè)計完成后,開始設(shè)計微指令格式和微指令代碼表,按照要求,CISC模型機(jī)系統(tǒng)使用的微指令采用全水平型微指令,字長為26位,其中微命令字段為18位,P字段為2位,后繼微地址為6位,其格式如下:按照此格式并根據(jù)設(shè)計的指令流程圖,可以得到:由微指令格式和微程序流程圖編寫的微指令代碼表如下所示,在微指令的代碼表中微命令字段從左邊到右代表的微命令信號依次為:LOAD、LDPC、LDAR、LDIR、LDRi、LDPSW、RS_B、S2、S1、S0、ALU_B、SW_B、LED_B、RD_B、CS_B、RAM_B、CS_I、ADDR_B。CLRLOADLDPC功能0XX將PC清010BUS-PC110不裝入,不計數(shù)11PC+1S2S1S0功能000X+Y,修改ZF,SF010Y+1,修改ZF,SF011Y-1,修改ZF,SF111X*Y,修改ZF,SF1000&Y,修改ZF,SF110-Y4.3設(shè)計地址轉(zhuǎn)移邏輯電路地址轉(zhuǎn)移邏輯電路是根據(jù)微程序流程圖中的棱形框部分及多個分支微地址,利用微地址寄存器的異步置“1”端,實現(xiàn)微地址的多路轉(zhuǎn)移。地址轉(zhuǎn)移邏輯電路中異步置“1”信號SE6SE1表達(dá)式的確定與P字段測試時轉(zhuǎn)移微地址的確定密切相關(guān).由于微地址寄存器中的觸發(fā)器異步置“1”端低電平有效,與A4A0對應(yīng)的異步置“1”控制信號SE5SE1的邏輯表達(dá)式為:(A5的異步置“1”端SE6實際未使用)SE6 = 1;SE5 = NOT(NOT(SF) AND P2 AND T4);SE4 = NOT(I4 AND P1 AND T4);SE3 = NOT(I3 AND P1 AND T4);SE2 = NOT(I2 AND P1 AND T4);SE1 PC地址的關(guān)系,開始時隨便設(shè)置了IR-PC的地址問題解決:后來了解到改地址與P(2)測試相關(guān),改為010000后,跳轉(zhuǎn)成功。6.2 STO( STO R2 (R0) )存儲位置每次都為00H 問題所在:STO指令中開啟ADDR_B,關(guān)ALU_B,導(dǎo)致取地址來自于ROM內(nèi)的機(jī)器碼后八位addr,該機(jī)器碼后八位為00H。 問題解決:微指令中關(guān)ADDR_B,開ALU_B,ALU設(shè)置直接輸出Y,此時Y值來源于(R0),即為目的地址。七、測試及結(jié)果分析根據(jù)設(shè)計的匯編程序和對應(yīng)的機(jī)器代碼,對設(shè)計的模型機(jī)進(jìn)行仿真測試,并分析結(jié)果:7.1下圖顯示了RAM地址的初值設(shè)置00H,循環(huán)計數(shù)設(shè)置04H,第一個循環(huán)讀入40H至R2并存進(jìn)RAM的過程。 7.2下圖截取了其中3個循環(huán),分別讀進(jìn)數(shù)40H,FCH,FEH.7.3下圖為5次循環(huán)后讀進(jìn)的5個數(shù),如圖從地址00H開始存放。7.4下圖為一次從RAM中讀取負(fù)數(shù),并計算平方并加到R3的過程7.5下圖為3個負(fù)數(shù)從RAM中讀取判斷,求得平方并求和的過程。FC*FC+FE*FE+FF*FF=15H.九、心得體會通過課程設(shè)計的學(xué)習(xí)設(shè)計過程,我從對CISC模型機(jī)的組成和工作原理毫不了解,到慢慢的獨立設(shè)計完成,并實現(xiàn)了預(yù)期功能。這次課程設(shè)計我學(xué)會Altera MAX+plus EDA軟件的使用,熟悉了VHDL語言,并能使用其進(jìn)行期間的編程,當(dāng)然,也能用圖形描述文件(.Gdf)進(jìn)行頂層電路的設(shè)計。最終能用EDA軟件設(shè)計一個能完成一定功能的模型計算機(jī),并通過功能仿真和在EDA實驗平臺上運(yùn)行一個程序來驗證模型機(jī)設(shè)計的正確性。在設(shè)計的過程中,我了解了每個機(jī)器碼,每個微指令的作用,懂得模型機(jī)的原理。此次的課程設(shè)計讓我收獲的不單單有課程的知識,也學(xué)會了自主學(xué)習(xí)、學(xué)會了細(xì)心解決問題,培養(yǎng)了自己做事的耐心活認(rèn)真的態(tài)度,培養(yǎng)了調(diào)試糾錯的良好素養(yǎng),更有的就是加強(qiáng)了自己的實踐動手能力。 十、附錄(VHDL源文件)8.1ROM的設(shè)計(保存匯編源代碼對應(yīng)的機(jī)器碼以及地址)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM ISPORT(DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CS_I:IN STD_LOGIC);END ROM;ARCHITECTURE A OF ROM ISBEGINDOUT =0001000000000000 WHEN ADDR=00000000 AND CS_I = 0 ELSE-MOV R0,10H 0001000100000100 WHEN ADDR=00000001 AND CS_I = 0 ELSE-MOV R1,4H 0010001000000000 WHEN ADDR=00000010 AND CS_I = 0 ELSE-L1:INT R2 0011100000000000 WHEN ADDR=00000011 AND CS_I = 0 ELSE-STO R2,(R0) 0100000000000000 WHEN ADDR=00000100 AND CS_I = 0 ELSE-INC R0 0101000100000000 WHEN ADDR=00000101 AND CS_I = 0 ELSE-DEC R1 0110000100000000 WHEN ADDR=00000110 AND CS_I = 0 ELSE-TEST R10111000000000010 WHEN ADDR=00000111 AND CS_I = 0 ELSE-JNS L1 0001000000000000 WHEN ADDR=00001000 AND CS_I = 0 ELSE-MOV R0 10H 0001000100000100 WHEN ADDR=00001001 AND CS_I = 0 ELSE-MOV R1 4H 1000001000000000 WHEN ADDR=00001010 AND CS_I = 0 ELSE-L2:LAD(R0) R2 0110001000000000 WHEN ADDR=00001011 AND CS_I = 0 ELSE-TEST R2 0111000000001111 WHEN ADDR=00001100 AND CS_I = 0 ELSE-JNS L3 1001101000000000 WHEN ADDR=00001101 AND CS_I = 0 ELSE-MUL R2,R2 1010101100000000 WHEN ADDR=00001110 AND CS_I = 0 ELSE-ADD R2,R3 0100000000000000 WHEN ADDR=00001111 AND CS_I = 0 ELSE-L3:INC R0 0101000100000000 WHEN ADDR=00010000 AND CS_I = 0 ELSE-DEC R1 0110000100000000 WHEN ADDR=00010001 AND CS_I = 0 ELSE-TEST R1 0111000000001010 WHEN ADDR=00010010 AND CS_I = 0 ELSE-JNS L2 1011110000000000 WHEN ADDR=00010011 AND CS_I = 0 ELSE-OUT R3 0000000000000000;END A;8.2 ALU(運(yùn)算器)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;1USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU ISPORT( X: IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y: IN STD_LOGIC_VECTOR(7 DOWNTO 0); S2,S1,S0: IN STD_LOGIC; ALUOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; SF: OUT STD_LOGIC );END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN PROCESS BEGIN IF(S2=0 AND S1=0 AND S0=0) THEN-ADD AA=0&X; BB=0&Y; TEMP=AA+BB; ALUOUT=TEMP(7 DOWNTO 0); SF=TEMP(7); ELSIF(S2=0 AND S1=1 AND S0=0) THEN -INC AA=0&Y; TEMP=AA+1; ALUOUT=TEMP(7 DOWNTO 0); SF=TEMP(7); ELSIF(S2=0 AND S1=1 AND S0=1) THEN -DEC AA=0&Y; TEMP=AA-1; ALUOUT=TEMP(7 DOWNTO 0); SF=TEMP(7);ELSIF(S2=1 AND S1=1 AND S0=1) THEN-MULAA=0&X;BB=0&Y;TEMP=AA*BB;ALUOUT=TEMP(7 DOWNTO 0);ELSIF(S2=1 AND S1=0 AND S0=0) THEN-TESTAA=0&Y;SFBUS ALUOUT=Y; ELSE ALUOUT=00000000 ; SF=0; END IF; END PROCESS;END A;8.3狀態(tài)條件寄存器只保留了用到的SFLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PSW ISPORT( S,LDPSW: IN STD_LOGIC; SF: OUT STD_LOGIC );END PSW;ARCHITECTURE A OF PSW ISBEGIN PROCESS(LDPSW) BEGIN IF(LDPSWEVENT AND LDPSW=1) THEN SF=S; END IF; END PROCESS;END A;8.4微程序控制器內(nèi)部結(jié)構(gòu):( 1 ) 地址轉(zhuǎn)移邏輯電路程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDR ISPORT(I4,I3,I2,I1: IN STD_LOGIC;SF,P2,P1,T4: IN STD_LOGIC;SE6,SE5,SE4,SE3,SE2,SE1: OUT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR ISBEGINSE6 = 1;SE5 = NOT(NOT(SF) AND P2 AND T4);SE4 = NOT(I4 AND P1 AND T4);SE3 = NOT(I3 AND P1 AND T4);SE2 = NOT(I2 AND P1 AND T4);SE1 = NOT(I1 AND P1 AND T4);END A;(2)微地址寄存器微地址寄存器uar的內(nèi)部結(jié)構(gòu):程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MMM ISPORT(SE,T2,D,CLR: IN STD_LOGIC;UA: OUT STD_LOGIC);END MMM;ARCHITECTURE A OF MMM ISBEGINPROCESS(CLR,SE,T2)BEGINIF(CLR=0) THENUA = 0;ELSIF(SE=0) THENUA = 1;ELSIF(T2EVENT AND T2=1) THENUA = D;END IF;END PROCESS;(3)微地址轉(zhuǎn)換器F1程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_116 ALL; 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 IS BEGIN D(5)=UA5; D(4)=UA4; D(3)=UA3; D(2)=UA2; D(1)=UA1; D(0) DATAOUTIR PC+1WHEN 000001 = DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT=11010011111111110110000000; END CASE; UA(5 DOWNTO 0)=DATAOUT(5 DOWNTO 0); D(19 DOWNTO 0)=DATAOUT(25 DOWNTO 6); END PROCESS;END A;(5)微命令寄存器程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MCOMMAND ISPORT( T2,T3,T4:IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(19 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:OUT STD_LOGIC );END MCOMMAND;ARCHITECTURE A OF MCOMMAND ISSIGNAL DATAOUT:STD_LOGIC_VECTOR(19 DOWNTO 0);BEGIN PROCESS(T2) BEGIN IF(T2EVENT AND T2=1) THEN DATAOUT(19 DOWNTO 0)=D(19 DOWNTO 0); END IF; LOAD=DATAOUT(19); LDPC=DATAOUT(18) AND T4; LDAR=DATAOUT(17) AND T3; LDIR=DATAOUT(16) AND T3; LDRI=DATAOUT(15) AND T4; LDPSW=DATAOUT(14) AND T4; RS_B=DATAOUT(13); S2=DATAOUT(12); S1=DATAOUT(11); S0=DATAOUT(10); ALU_B=DATAOUT(9); SW_B=DATAOUT(8); LED_B=DATAOUT(7); RD_D=NOT(NOT DATAOUT(6) AND (T2 OR T3); CS_D=NOT(NOT DATAOUT(5) AND T3); RAM_B=DATAOUT(4); CS_I=DATAOUT(3); ADDR_B=DATAOUT(2); P1=DATAOUT(1); P2=DATAOUT(0); END PROCESS;END A;(6)微地址轉(zhuǎn)換器F2 程序:LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY F2 IS PORT( D:IN STD_LOGIC_VECTOR(5 DOWNTO 0); UA5,UA4,UA3,UA2,UA1,UA0: OUT STD_LOGIC );END F2;ARCHITECTURE A OF F2 ISBEGIN 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 IEEE.STD_LOGIC_1164.ALL;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 ISBEGIN UA3=D(3); UA2=D(2); UA1=D(1); UA0=D(0);END A;8.5寄存器單元程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS273 ISPORT(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 ISBEGINPROCESS(CLK)BEGINIF(CLKEVENT AND CLK=1)THEN O=D;END IF;END PROCESS;END A;8.6 1:2分配器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FEN2 ISPORT(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 ISBEGIN PROCESS BEGIN IF(LED_B=0) THEN OUTBUS=DBUS; ELSE FENOUT=DBUS; END IF; END PROCESS;END A;8.6 選擇器(1) 3選1數(shù)據(jù)選擇器LI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論