堆棧電路設(shè)計_第1頁
堆棧電路設(shè)計_第2頁
堆棧電路設(shè)計_第3頁
堆棧電路設(shè)計_第4頁
堆棧電路設(shè)計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1、實踐項目原理堆棧的工作原理是很簡單“先進后出”(FILO)。數(shù)據(jù)進入最早被壓在棧底,接著進入的數(shù)據(jù)被壓在上面,所以當要彈出一個數(shù)據(jù)時先要把它上面的所有數(shù)據(jù)要彈出來。2、實踐項目的設(shè)計使用MaxPlus軟件可以用兩種方法來進行設(shè)計:用硬件描述語言來寫(VHDL)和設(shè)計電路圖。使用VHDL:類似于高級語言,容易修改,設(shè)計能力強且很方便。下面代碼是設(shè)計一個含有16字節(jié)的堆棧。輸入端包括push(壓入數(shù)據(jù)),pop(彈出),elk(脈沖),reset(重新設(shè)置),8位數(shù)據(jù)輸入dinO到din7。輸出端包括empty(堆棧是否空),full(是否滿)和8位數(shù)據(jù)輸出dout0到dout7。代碼中ent

2、表示第幾個單元。libraryieee;useieee.std_logie_1164.all;Entitymstaekisport(reset,push,pop,elk:instd_logie;din:instd_logie_veetor(7downtoO);empty,full:outstd_logie;dout:outstd_logie_veetor(7downtoO);endmstaek;arehiteeturea1ofmstaekistypestaekisarray(15downtoO)ofstd_logie_veetor(7downtoO);beginproeess(elk,rese

3、t)variables:staek;variablex:std_logie;variableent:integerrangeOto15;beginifreset二1thendout二”00000000;x:=0;ent:=0;elseifclkeventandclk=1zthenifpush二1andpop二0andx=0zthenifent/=15thenempty二0;s(cnt):二din;ent:二cnt+1;elses(15):=din;x:=1z;endif;elsifpush二0andpop二1andent/=0thenifx=0zthenent:二entT;dout二s(cnt

4、);elsedout二s(15);x:=0z;endif;elsifcnt=0thenempty二1;endif;endif;endif;fullJ-M3DhCLRN1CLK1IIJPUT-IlfPOT1D1Q2D1QN3D2Q4D2QN3Q3QN斗QCLRN斗QNCLK單元的標記如下:byt&1O1-LuU1OJ.13OB1曰O315O41EO517O若*CLRN(JCLKISOUT分析上面電路的工作方式:當CLRN=O時就把單元的8位清零,當CLRN=1,如果有脈沖CLK到來就把8位輸入1017寫入8個D觸發(fā)器,但是8位輸出O0O7仍然是0,只有當isOUT=l時,這8位輸出才是單元的內(nèi)容

5、。接著設(shè)計堆棧的8位輸出部分:廿UTMiT.ciitti13:mi$ID1QNAvUTFUTIXOUT13Diz-!2QNA:p*斗DOUTPUTIOUT2Jo!1-.-E123QNAE34jUTF(ITXOUT3H-z4QNAiy1QID1QN2D込3D2QN4D3QE123QNE344Q4QN;0UT4OUTPUTOUTPUT;OUTS;OUT6;OUT74端E12,E34,E56,E78的共同端口要接到POP脈沖(輸出脈沖)。如POP=0的話OUT0OUT7仍然保持原來輸出的數(shù)據(jù),當POP=1時OUT0OUT7是新輸出值。圖中stackout是由或門組成一位輸出電路如下:1忖口iNiIh

6、fFriTVCCiiwrVll八位輸出電路如下(圖中每個OR是一位輸出電路):分析輸出電路的工作方式:把4個單元的第0位輸出一次連接到IN00,IN01,IN02,IN03,那么輸出位OUT0就是這4位的或。把4個單元的第1位輸出一次連接到IN10,IN11,IN12,IN13,輸出位0UT1就是這4位的或。其他輸出位也這樣連接。上面已分析過,當哪個單元的isOUT=1它的輸出才是它的內(nèi)容,否則輸出0。所以這里0UT00UT7就是有信號isOUT=1的單元的內(nèi)容(因那時P0P=1)。設(shè)計輸入輸出控制部分:這圖中的RESET信號通過非門連接到4個單元的CLRN端,當RESET=0時4個單元正常工

7、作,當RESET=1時,把4個單元清零。圖中SP的具體電路如下:和科*D分析上面電路的工作方式:LOW接到低電平,HIGH接到高電平,PUSH0PUSH3一次接到4個單元的CLK端,P0P0P0P3一次接到4個單元的isOUT端。當RESET=1時,74194和4D都被清零。當RESET=0時,開始時QA,QB,QC,QD,PUSH0PUSH3和POP0POP3都是0。如果CLK=0,PUSH0PUSH3都是0(沒有單元被選);如果POP=0,POP0POP3都是0(沒有單元被選,輸出端OUTOOUT7保持原來輸出的值)。數(shù)據(jù)寫入(用兩個控制端PUSH和CLK):給脈沖PUSH(上升沿)則74

8、194有脈沖且S1S0=01所以右移QAQBQCQD=1000,如CLK=1,PUSH0PUSH3=1000,第0單元被選,數(shù)據(jù)寫入第0單元。如CLK=0,沒有單元被選。再給脈沖PUSH則QAQBQCQD=1100,如CLK=1,PUSH0PUSH3=0100,第1單元被選,數(shù)據(jù)寫入第一單元。再給脈沖PUSH和CLK數(shù)據(jù)就寫入第2單元。數(shù)據(jù)輸出(用POP控制端):假如數(shù)據(jù)已經(jīng)寫入到第2個單元(QAQBQCQD=1110),給脈沖POP,4D因為有脈沖把輸入端送到輸出端,因POP=ldPOP3POPO=OlOO,第2單元被選,數(shù)據(jù)輸出。74194有脈沖且S1S0=10所以左移dQAQBQCQD=

9、1100。完整的電路:+T4754-+II:I=-:rrii!rii1-RPC*rori:05it-ItKmn*uiiEidEJi-id!+卩rrIF擴展到8為的方法:單元的結(jié)構(gòu)不變,輸出部分的Stackout的每一位輸出是8為輸入的或。關(guān)鍵在于SP的電路中,需要兩個74194和兩個4D。第二個74194的SRSI端要接到第一個74194的QD端,第一個74194的SLSI端要接到第二個74194的QA端。其他東西都跟上面圖類似。SP擴展電路如下:74V&4D*D*D4DD14194匸二沁壬PHICTr、亟二:匚HE亡二mcHiC=FUCH1耳rrU.N3mKKZZ?陽fiC=5p-jf2FO

10、F3*.40AC怙00C換QDCLI-:_MjlT*&kW5I*CX0&C4D:IRI1.1-MHT03、實踐項目調(diào)試過程i)使用VHDL:要注意的事項:o編寫程序:選File/New/TextEditorFile,文件擴展名為VHD,存放在MaxPlus2目錄。o編譯:選File/Project/SetProjecttoCurrentFile,然后選MAX+plusII/Compiler進行編譯。o驗證VHDL程序:打開WaveformEditor,在File/EndTime設(shè)置時間,將輸入輸出端口名選入波形編輯器,然后選MAX+plusIISimulator。這里進棧出棧系列為:81H,4

11、2H進棧;42H出棧;24H進棧;24H出棧;32H,60H進棧;60H,32H,81H出棧。波形如下:Pef|町:Time.曲Irueival.陰呂魚里N罩nw:H*reselstf-pushK#-啊2di聞孑4|曲diiS.D|Dclk-L2?hillemptydrp4|p血叫玄0|VhIijrSOTpn?I.Ousi15usi2呼2.5Uii30u$35u$i口0c11n0ILHQoi0 xoij.r-0打HO0DCZ3CQDQ3C0aLJuLTir0HO042I.:IsHOa24Xoif2y1o下載到芯片:在Assign/Device選芯片系列,在Assign/Pin/Location/Chip選腳位,在Max+PlusII/Programmer選configure進行下載。ii)用電路圖:上面的電路圖已經(jīng)用WaveformEditor進行Simulator,結(jié)果如下:oos962x.1-POPe-HIGHLOW2IN3.O!IN7.可1DUT|7.也TOOU

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論