




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、計算機組成原理課程設(shè)計報告題 目:求負數(shù)平方和CISC模型院 系:計算機科學(xué)與工程學(xué)院專 業(yè):計算機科學(xué)與技術(shù)指導(dǎo)教師:陳智勇 2014年3月30號目 錄1課程設(shè)計的題目與內(nèi)容12課程設(shè)計完成的內(nèi)容13系統(tǒng)開發(fā)環(huán)境及VHDL語言介紹14系統(tǒng)總體設(shè)計25MAX PLUS II軟件編譯仿真測試和結(jié)果分析96遇到的問題及解決辦法117 心得體會118 參考文獻129 附錄12一:課程設(shè)計的題目及內(nèi)容題目輸入包含5個整數(shù)(有符號數(shù))的數(shù)組M,輸出所有負數(shù)的平方和。 要求采用定長CPU周期、聯(lián)合控制方式,并運行能完成一定功能的機器語言源程序進行驗證,機器語言源程序功能如下:五個有符號數(shù)從外部輸入,一定要
2、使用符號位(比如說SF),并且要使用負的時候轉(zhuǎn)移(比如說JS)或不為負的時候轉(zhuǎn)移(比如說JNS)指令;采用三數(shù)據(jù)總線結(jié)構(gòu)的運算器,采用RAM,先將輸入數(shù)據(jù)依次存放在RAM的某一連續(xù)的存儲區(qū)域內(nèi),再依次讀出判斷是否為負數(shù),若為負數(shù)再求其平方和。二:課程設(shè)計的要求1.完成系統(tǒng)的總體設(shè)計,畫出模型機數(shù)據(jù)通路框圖;2.設(shè)計微程序控制器(CISC模型計算機)的邏輯結(jié)構(gòu)框圖; 3.設(shè)計機器指令格式和指令系統(tǒng); 4.設(shè)計時序產(chǎn)生器電路; 5.設(shè)計所有機器指令的微程序流程圖; 6.設(shè)計操作控制器單元; 在CISC模型計算機中,設(shè)計的內(nèi)容包括微指令格式(建議采用全水平型微指令)、微指令代碼表(根據(jù)微程序流程圖和
3、微指令格式來設(shè)計)和微程序控制器硬件電路(包括地址轉(zhuǎn)移邏輯電路、微地址寄存器、微命令寄存器和控制存儲器等。具體電路根據(jù)微程序控制器的邏輯結(jié)構(gòu)框圖、微指令格式和微指令代碼來設(shè)計)。7.設(shè)計模型機的所有單元電路,并用VHDL語言(也可使用GDF文件-圖形描述文件)對模型機中的各個部件進行編程,并使之成為一個統(tǒng)一的整體,即形成頂層電路或頂層文件; 8.由給出的題目和設(shè)計的指令系統(tǒng)編寫相應(yīng)的匯編語言源程序;9.根據(jù)設(shè)計的指令格式,將匯編語言源程序手工轉(zhuǎn)換成機器語言源程序,并將其設(shè)計到模型機中的ROM中去;10.使用EDA軟件進行功能仿真,要保證其結(jié)果滿足題目的要求;(其中要利用EDA軟件提供的波形編輯
4、器,選擇合適的輸入輸出信號及中間信號進行調(diào)試。)11.器件編程,并在EDA實驗平臺上進行操作演示三:系統(tǒng)開發(fā)環(huán)境及語言介紹 Max plus IIMax+plus是Altera公司上一代的PLD開發(fā)軟件,Max+plus界面友好,使用便捷,主要用于設(shè)計新器件和大規(guī)模CPLD/FPGA).使用MAX+PLUSII的設(shè)計者不需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu)。設(shè)計者可以用自己熟悉的設(shè)計工具(如原理圖輸入或硬件描述語言)建立設(shè)計,MAX+PLUSII把這些設(shè)計轉(zhuǎn)自動換成最終所需的格式。其設(shè)計速度非??臁τ谝话銕浊чT的電路設(shè)計,使用MAX+PLUSII,從設(shè)計輸入到器件編程完畢,用戶拿到設(shè)計好的邏輯
5、電路,大約只需幾小時。在Max+plus上可以完成設(shè)計輸入、元件適配、時序仿真和功能仿真、編程下載整個流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進行設(shè)計輸入、快速處理和器件編程。 設(shè)計處理一般在數(shù)分鐘內(nèi)內(nèi)完成。特別是在原理圖輸入等方面,Maxplus2被公認為是最易使用,人機界面最友善的PLD開發(fā)軟件,特別適合初學(xué)者使用使用Maxplus2基本上也是以上幾個步驟,可簡化為:(1設(shè)計輸入(2)設(shè)計編譯(3)設(shè)計仿真(4)優(yōu)化(5)布局布線(6)后仿真(7)生產(chǎn) VHDL 全稱超高速集成電路硬件描述語言(英語:VHSIC hardware description langu
6、age),在基于復(fù)雜可編程邏輯器件、現(xiàn)場可編程邏輯門陣列和專用集成電路的數(shù)字系統(tǒng)設(shè)計中有著廣泛的應(yīng)用。VHDL語言誕生于1983年,1987年被美國國防部和IEEE確定為標準的硬件描述語言。自從IEEE發(fā)布了VHDL的第一個標準版本IEEE 1076-1987后,各大EDA公司都先后推出了自己支援VHDL的EDA工具。VHDL在電子設(shè)計行業(yè)得到了廣泛的認同VHDL和Verilog作為IEEE的工業(yè)標準硬件描述語言,得到眾多EDA公司支持,在電子工程領(lǐng)域,已成為事實上的通用硬件描述語言。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描
7、述風(fēng)格以及語法是十分類似于一般的計算機高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點 四:系統(tǒng)總體設(shè)計嵌入式CISI模型機系統(tǒng)總體設(shè)計 嵌入式CISC系統(tǒng)控制器的邏輯結(jié)構(gòu)框圖 模型機的指令系統(tǒng)和所有指令的指令格式設(shè)計輸入指令(IN1)格式:15 14 13 1211 109 8
8、7 6 5 4 3 2 1 0操作碼× ×Rd××××××MOV指令格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼× ×Rd立即數(shù)im取數(shù)指令(LAD)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼RsRd××××××相加指令(ADD)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼RsRd××××
9、××加1指令(INC)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼××Rd××××××減1指令(DEC)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼××Rd××××××非零條件轉(zhuǎn)移指令(JNZ)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼× ×× ×地址addr傳送指令(
10、STO)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼Rs××地址addr無條件轉(zhuǎn)移指令(JMP)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼× ×× ×地址addr輸出指令(OUT1)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼Rs××××××××存數(shù)指令(STOI)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼Rs
11、Rd××××××乘法指令(IMUL)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼××Rd××××××判斷箱號位轉(zhuǎn)移(TEST)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼× ×地址addr非負條件轉(zhuǎn)移指令(JNS)格式:15 14 13 1211 109 87 6 5 4 3 2 1 0操作碼× ×× ×地址addr模型機規(guī)定
12、數(shù)據(jù)的表示采用定點整數(shù)補碼表示,單字長為8位,其格式如下: 76 5 4 3 2 1 0符號位尾數(shù)對于Rs或Rd的格式我們規(guī)定如下:Rs或Rd選定的寄存器00R001R110R211R3其中S2,S1,S0表示的是算術(shù)邏輯運算單元ALU,其功能表為:S2S1S0功能000X+Y001X-Y010X+1011X-1100SF101XY110SF=TEMP(7)111Y×Y指令系統(tǒng)表如下指令助記符指令格式功能15-1211 109 87-0IN1 Rd0001××Rd××××××××輸入設(shè)
13、備RdMOV Rd,im0010××Rdim立即數(shù)RdLAD (Rs),Rd0011RsRd××××××××(Rs)RdADD Rs,Rd0100RsRd××××××××(Rs)+(Rd)Rd,鎖存標志位INC Rd0101××Rd××××××××(Rd)+1Rd,鎖存標志位DEC Rd0110××
14、Rd××××××××(Rd)-1Rd,鎖存標志位JNZ addr0111××××addr若不等,則addrPCSTO Rs,addr1000Rs××addr(Rs)addrJMP addr1001××××addraddrPCOUT1 Rs1010Rs××××××××××(Rs)輸出設(shè)備STOI Rs,(Rd)1011R
15、sRd××××××××(Rs)(Rd)IMUL Rd,Rd1100××Rd××××××××(Rd) ×(Rd)RdTESTRd1101××Rd××××××××(RD)TEMP SF標志位JNS addr1110××××addr若不為正,則addrPC時序產(chǎn)生器
16、; 時序信號產(chǎn)生器用于產(chǎn)生多級食醋系統(tǒng)中需要的時序信號,本實驗采用的是微程序控制器的時序產(chǎn)生器,如下圖微程序控制器的設(shè)計全過程 微程序控制器的設(shè)計包括以下幾個階段:(1)機器指令的微程序流程圖 (2)設(shè)計微指令格式和微指令代碼表 (3)設(shè)計地址轉(zhuǎn)移邏輯電路 (4)設(shè)計微程序控制器中的其它邏輯單元電路,包括微地址寄存器、微命令寄存器和控制存儲器 (5)設(shè)計微程序控制器的頂層電路(由多個模塊組成)。 地址轉(zhuǎn)移邏輯電路的設(shè)計地址轉(zhuǎn)移邏輯電路是根據(jù)微程序流程圖中的棱形框部分
17、及多個分支微地址,利用微地址寄存器的異步置“1”端,實現(xiàn)微地址的多路轉(zhuǎn)移。由于微地址寄存器中的觸發(fā)器異步置“1”端低電平有效,與µA5µA0對應(yīng)的異步置“1”控制信號SE6SE1的邏輯表達式為: SE6= ZF·P(3)·T4SE5=ZF·P(2)·T4SE4=I15·P(1)·T4SE3=I14·P(1)·T4SE2=I13·P(1)·T4SE1=I12·P(1)·T4匯編程序代碼設(shè)計如下:MOV R1,11H ;寄存器R1用于存放RAM的某個連續(xù)區(qū)域的
18、首地址MOV R2,5H ;寄存器R2用于存放循環(huán)次數(shù)L0: IN1 R0;寄存器R0用于接收外部輸入的數(shù)據(jù)STOI R0,(R1);將R0中的數(shù)存放入R1中RAM的地址處INC R1 ;將地址加1,跳到下一個地址DEC R2 ;將循環(huán)次數(shù)減1JNZ L0 ;循環(huán)不結(jié)束再重新跳回接收外部數(shù)據(jù),循環(huán)結(jié)束則繼續(xù)下面操作MOV R0,0 ;寄存器R0用于存放結(jié)果MOV R1,11H ;寄存器R1用于存放數(shù)據(jù)已存入RAM的某個連續(xù)區(qū)域的首地址MOV R2,5H ;寄存器R2用于存放循環(huán)次數(shù)L1:LAD (R1),R3;寄存器R3用于存放剛才存入RAM的數(shù)據(jù)INC R1 ;將地址加1,跳到下一個地址TE
19、ST R3 ;測試符號標志位SF,判斷其是否為負數(shù)JNS L2 ;若不為負則跳轉(zhuǎn),取出下一個數(shù)IMUL R3,R3 ;若為負則將該數(shù)求平方和ADD R3,R0 ;將平方和加入R0L2:DEC R2 ;將循環(huán)次數(shù)減1JNZ L1 ;循環(huán)次數(shù)沒有完成,則跳回去再取數(shù)STO R0,10H ;將R0存放的結(jié)果放回到RAM中10H的地址處END:OUT1 R0;輸出R0的結(jié)果內(nèi)容JMP END ;不斷循環(huán)對應(yīng)的地址秒機器代碼表:地址(十六進制)匯編語言源程序機器代碼00MOV R1,11H 01MOV R2,5H02L0: IN1 R003STOI R0,(R1)04INC R105DEC R206JN
20、Z L007MOV R0,008MOV R1,11H09MOV R2,5H0AL1: LAD (R1),R30BINC R10CTEST R311010011000000000DJNS L20EIMUL R3,R311001111000000000FADD R3,R010L2:DEC R211JNZ L112STO R0,10H13END:OUT1 R014JMP END10 微程序流程圖如下 :11 微指令格式如下:微地址LOADLDPCLDARLDIRLDRiLDPSWRs_BS2S1S0ALU_BSW_BLED_BRD_DCS_DRAM_BCS_IADDR_BP1P2uA5uA00011
21、0100100011111101100001100010100010111111000002100010100011111110000003101000000011111111000F0410001110000111111100000510001110100111111100000610001110110111111100000710000010001111111101000810100010001111111000110901000010001111111000000A10000000001101111100000B10100011100111111100110C10001111110111
22、001100000D10000111100110011100000E10000001000110011100000F1000101000111100110000100100001000111111100000111000000000111001110000200100001000111111100000五: MAX PLUS ii軟件編譯仿真測試和結(jié)果分析Top圖如下 通過創(chuàng)建二甲雙胍仿真時序圖 top.scf.,可以實現(xiàn)模型機的功能仿真,從圖中可以看出cpu處理數(shù)據(jù)和數(shù)據(jù)的具體流向的每一個過程,如下是仿真的輸出波形,具體結(jié)果和分析如下:六:遇到的問題及解決辦法 由于設(shè)計的比老師給的稍微要復(fù)雜
23、,多加了三條機器碼,和一個P測試,難度提升了不少,在設(shè)計時從簡單原則出發(fā),又積極的尋問老師才確定下來要用的匯編代碼和所要用的機器代碼,以及微程序流程圖,微程序指令等,但問題緊跟著來了,對于從來沒有接觸過VHDL語言的我來說,在進行編碼,調(diào)試,編譯的時候限入了困景,還有就是crom元器件的生成,是怎么由連接圖轉(zhuǎn)化而成的,最后在同學(xué)和老師的幫助下,基本熟悉了這些操作。但這么多的二進制對于任何人來說一次性輸入能保證不會出錯的我相信沒有誰敢打保票,我也不例外,在調(diào)試的時候發(fā)現(xiàn)結(jié)果運行的不是預(yù)期的,在經(jīng)過了各種猜想和排查才發(fā)現(xiàn)有個微指令輸入錯誤.七:心得體會兩周的實驗,一晃而過,本來一開始也感覺沒什么壓
24、力,也是慢慢地做,有時間才去弄一下,但自從有大神們早早就驗收時,一種無形的壓力催使自己要多花點時間,早點把它搞定,最終也在老師給定的期限內(nèi)做出來了。 通過本次課程設(shè)計,對CPU的執(zhí)行和操作過程有個基本的了解,掌握了CISC模型機的用途和工作原理,認識了max plus II軟件的使用和操作,對自我的設(shè)計實踐能力有了顯著的提高。此外這次課程設(shè)計還使我對上學(xué)期所學(xué)的計算機組成原理的知識得到了提高,加深了對微程序,和微指令章節(jié)的知識有了深刻的理解,好些當(dāng)時不懂的問題現(xiàn)在都已經(jīng)搞清楚了,對計算機工作原理有了更新的認識。也體會到了作為一個大學(xué)生,要想學(xué)有所得,就得學(xué)習(xí)主動,不要什么都希望別人親自傳授,面
25、對問題要自己去努力解決,多問問身邊的同學(xué),多動手查查,多上網(wǎng)找找,所以要想成功就得事事做到細心,耐心,恒心。已經(jīng)大三了,在學(xué)校的時間已經(jīng)不多了,要抓緊剩下的時間,別讓自己的大學(xué)一事無成,為了自己的人生目標,只要堅持努力,總有一天會實現(xiàn)的,相信自己。八:參考文獻1計算機原理課程設(shè)計 陳智勇,周向紅,陸二慶編 西安電子科技大學(xué)出版社 20062 計算機組成原理 陳智勇 陳宏 王鑫編 西安電子科技大學(xué)出版社 20093基于VHDL語言與Quartus 軟件的可編程邏輯器件應(yīng)用與開發(fā) 鄭燕, 郝建國黨建華著國防工業(yè)出版社 出版時間 2007九:附錄ADDR源程序LIBRARY IEEE;USE IEE
26、E.STD_LOGIC_1164.ALL;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<=N
27、OT (I14 AND P1 AND T4); SE2<=NOT (I13 AND P1 AND T4); SE1<=NOT (I12 AND P1 AND T4);END A;ALU源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.all;ENTITY ALU ISPORT( X: IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y: IN STD_LOGIC_VECTOR(7 DOWNTO 0); S2,S1,S0
28、: IN STD_LOGIC; ALUOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; SF,ZF: OUT STD_LOGIC );END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESSBEGIN IF(S2='0' AND S1='0' AND S0='0') THEN-ADD AA<=X; BB<=Y; TEMP<=AA+BB;ALUOUT<=TEMP(7 D
29、OWNTO 0); SF<=TEMP(7); IF (TEMP="10000000" OR TEMP="00000000")THEN ZF<='1' ELSE ZF<='0' END IF;ELSIF(S2='0' AND S1='0' AND S0='1') THEN -CMP(SUB) ALUOUT<=X-Y;IF(X<Y) THEN SF<='1' ZF<='0' ELSIF(X=Y) THEN
30、SF<='0' ZF<='1' ELSE SF<='0' ZF<='0' END IF; ELSIF(S2='0' AND S1='1' AND S0='0') THEN -INC AA<=Y; TEMP<=AA+1; ALUOUT<=TEMP(7 DOWNTO 0); SF<=TEMP(7); IF (TEMP="10000000" OR TEMP="00000000") THEN ZF<
31、='1' ELSE ZF<='0' END IF; ELSIF(S2='0' AND S1='1' AND S0='1') THEN -DEC AA<=Y; TEMP<=AA-1; ALUOUT<=TEMP(7 DOWNTO 0); SF<=TEMP(7); IF (TEMP="10000000" OR TEMP="00000000") THEN ZF<='1' ELSE ZF<='0' END IF;
32、 ELSIF(S2='1' AND S1='0' AND S0='0') THEN -AND TEMP<=Y; SF<=TEMP(7); ELSIF(S2='1' AND S1='0' AND S0='1') THEN -OR TEMP<=X OR Y; ALUOUT<=TEMP; SF<=TEMP(7); IF (TEMP="10000000" OR TEMP="00000000") THEN ZF<='1'
33、; ELSE ZF<='0' END IF; ELSIF(S2='1' AND S1='1' AND S0='0') THEN -Rd->BUS ALUOUT<=Y; SF<=Y(7); ELSIF(S2='1' AND S1='1' AND S0='1') THEN -IMUL TEMP<=Y *Y; SF<=TEMP(7); ALUOUT<=TEMP; IF (TEMP="10000000" OR TEMP="
34、;00000000") THEN ZF<='1' ELSE ZF<='0' END IF;ELSE ALUOUT<="00000000" ; ZF<='0' END IF; END PROCESS;END A;CONTROM 源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY CONTROM ISPORT(ADDR: IN ST
35、D_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 END CASE; UA(5 DOWNTO 0)<=DATAOUT(5 DOWNTO 0); O(20 DOWNTO 0)<=DATAOUT(2
36、6 DOWNTO 6); END PROCESS;END A;CONVENT 源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CONVENT IS PORT( IRCODE:IN STD_LOGIC_VECTOR(15 DOWNTO 0); OP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); I11,I10,I9,I8:OUT STD_LOGIC; A:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END CONVENT;ARCHITECTURE A OF CONVENT ISBEGIN OP&
37、lt;=IRCODE(15 DOWNTO 12); I11<=IRCODE(11); I10<=IRCODE(10); I9<=IRCODE(9); I8<=IRCODE(8); A<=IRCODE(7 DOWNTO 0);END A;DECODER 源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECODER IS PORT( I9,I8:IN STD_LOGIC; Y0,Y1,Y2,Y3:OUT STD_LOGIC );END DECODER;ARCHITECTURE A OF DECODER ISBEG
38、IN PROCESS BEGIN IF(I9='0' AND I8='0') THEN Y0<='1' Y1<='0' Y2<='0' Y3<='0' ELSIF(I9='0' AND I8='1') THEN Y0<='0' Y1<='1' Y2<='0' Y3<='0' ELSIF(I9='1' AND I8='0') T
39、HEN Y0<='0' Y1<='0' Y2<='1' Y3<='0' ELSE Y0<='0' Y1<='0' Y2<='0' Y3<='1' END IF; END PROCESS;END A;F1源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY F1 IS PORT( UA5,UA4,UA3,UA2,UA1,UA0: IN STD_LOGIC; D:OUT STD
40、_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;F2 源程序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;
41、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;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)
42、; UA2<=D(2); UA1<=D(1); UA0<=D(0);END A;FEN2 源程序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
43、 OUTBUS<=DBUS; ELSE FENOUT<=DBUS; END IF; END PROCESS;END A;IR 源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY IR ISPORT( 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 ISBEGIN PROCESS(CLK) BEGIN IF(CLK'EVENT
44、AND CLK='1') THEN Q<=D; END IF; END PROCESS;END A;LS273 源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS273 ISPORT( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK: IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END LS273; ARCHITECTURE A OF LS273 ISBEGIN PROCESS(CLK) BEGIN IF(CLK'E
45、VENT AND CLK='1') THEN Q<=D; END IF; END PROCESS;END A;MCOMMAND 源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;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
46、,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(T2'EVENT AND T2='1') THEN DATAOUT(20 DOWNTO 0)<=D(20 DOWNTO 0); END IF; LOAD<
47、;=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<=DAT
48、AOUT(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;MMM源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MMM IS PORT( S
49、E: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='0') THEN UA<='0' ELSIF(SE='0')THEN UA<='1' ELSIF(T2'EVENT AND T2='1') THEN UA<=D; END IF;
50、END PROCESS;END A;全由由六個MMM即可組成一個aaMUX4_1源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX4_1 ISPORT(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 ISBEGIN PROCESS BEGIN IF(I11='0' AND I10='0') THEN X<=R0; ELSIF(I11='0' AND I10='1')THEN X<=R1; ELSI
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書館網(wǎng)絡(luò)安全評估手冊
- 三農(nóng)村電商平臺搭建方案
- 綠化工程文明施工方案1
- 航天行業(yè)航天器設(shè)計與制造方案
- 減水劑項目可行性研究報告
- 項目辦公室設(shè)施使用統(tǒng)計表
- 家服務(wù)員中級練習(xí)卷附答案(一)
- 房地產(chǎn)定向開發(fā)合同協(xié)議
- 婦產(chǎn)科護理練習(xí)試題及答案
- 未來科技發(fā)展趨勢分析報告閱讀題
- 出入境邊防檢查機關(guān)辦理行政案件程序規(guī)定
- 高中英語話劇作品集《美麗英語Beautiful English》
- 工程勘察重點難點分析及解決措施
- 電力機車禁停標及調(diào)諧區(qū)標
- DB44∕T 1315-2014 物業(yè)服務(wù) 檔案管理規(guī)范
- 春運旅客心理狀況的調(diào)查分析與對策研究
- T∕CAWA 002-2021 中國疼痛科專業(yè)團體標準
- 雙重預(yù)防體系建設(shè)分析記錄表格
- 手機保護膜鋼化璃玻膜檢驗標準(版)
- 混凝土面板堆石壩施工技術(shù)第五講
- 論中小學(xué)管弦樂隊的組織與訓(xùn)練
評論
0/150
提交評論