PicoBlaze處理器IP Core的原理與應(yīng)用_第1頁
PicoBlaze處理器IP Core的原理與應(yīng)用_第2頁
PicoBlaze處理器IP Core的原理與應(yīng)用_第3頁
PicoBlaze處理器IP Core的原理與應(yīng)用_第4頁
PicoBlaze處理器IP Core的原理與應(yīng)用_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

PicoBlaze處理器IPCore的原理與應(yīng)用摘要:詳細(xì)分析8位微處理器IPcorePicoBlaze的結(jié)構(gòu)、原理與設(shè)計(jì)方案;介紹PicoBlaze的指令集和調(diào)試工具pblazeIDE,討論P(yáng)icoBlaze的編程方案和應(yīng)用設(shè)計(jì)實(shí)例;列舉幾種PicoBlaze的應(yīng)用方案。

關(guān)鍵詞:PicoBlaze微處理器知識產(chǎn)權(quán)內(nèi)核1概述PicoBlaze8位微處理器是Xilinx公司為Virtex系列FPGA、Spartan-Iitxi系列FPGA和CoolRunner-II系列CPLD器件設(shè)計(jì)嵌入式專用IPCore。它解決了常量編碼可編程狀態(tài)機(jī)(KCPSM)的問題。這一模塊只占用SpartanIIE的76個(gè)小區(qū)(slice),占最小的XC2S50E器件9%的資源,占XC2S300E器件不到2%的資源。在這一模塊中還包括一個(gè)用于存儲指令的由BlockRAM組成的ROM,最多可存儲256條指令。PicoBlaze只用了如此少的資源,但其速度卻可達(dá)到40MIPS以上。PicoBlaze提供49個(gè)不同的指令,16個(gè)寄存器(CPLD為8個(gè)),256個(gè)直接或間接的可設(shè)定地址的端口,1個(gè)可屏蔽的、速率為35MIPS的中斷。它的性能超過了傳統(tǒng)獨(dú)立元器件組成的微處理器,而且成本低,使得PicoBlaze在數(shù)據(jù)處理和控制算法領(lǐng)域有著廣泛的應(yīng)用前景。由于可編程部分也完成嵌入,PicoBlaze可與子程序和外圍設(shè)備結(jié)合起來完成特殊的設(shè)計(jì)。其基本應(yīng)用框架如圖1所示。PicoBlaze模塊由VHDL語言設(shè)計(jì),不需要預(yù)編譯,可直接由布局布線工具嵌入到容量大一點(diǎn)的器件中;可以認(rèn)為PicoBlaze幾乎不占資源,而且一個(gè)設(shè)計(jì)中可以包括多個(gè)PicoBlaze。PicoBlaze適用于復(fù)雜的但對時(shí)間要求不太高的系統(tǒng)中,并可以簡華設(shè)計(jì)。

圖1PicoBlaze處理器的IPCore應(yīng)用框架

2PicoBlaze原理與結(jié)構(gòu)分析PicoBlaze8位微處理器內(nèi)部結(jié)構(gòu)如圖2所示。PicoBlaze處理器IPCore由全局寄存器、計(jì)算邏輯單元(ALU)、程序流控制標(biāo)志和復(fù)位邏輯、輸入/輸出(I/O)、中斷控制器等幾大部分構(gòu)成。全局寄存器:16個(gè)8位全局寄存器,s0~sf。寄存器的操作是非常靈活的;沒有為特殊任務(wù)保留寄存器,任何寄存器的優(yōu)先權(quán)都是一樣的。算術(shù)邏輯單元(ALU):提供了8位處理器需要的所有簡單操作。執(zhí)行所有的操作都是用任意一個(gè)寄存器提供的操作數(shù)完成。若操作需兩個(gè)操作數(shù),則有另一寄存器指定或在指令中嵌入一8位常量值。在不增加程序大小的前提下,指不定期任意常量值,增強(qiáng)了簡單的指令特性。更明白地說,ADD1與INCREMENT指令是等價(jià)的。若操作超過8位,則有一選項(xiàng)(增加或減少)可供選擇。二進(jìn)制操作碼(LOAD、AND、OR、XOR)可操作和測試二進(jìn)制數(shù),還包括SHIFT和ROTATE指令集合。程序流控制標(biāo)志:ALU操作后的結(jié)果影響ZERO和CARRY兩個(gè)標(biāo)記。用有條件的或無條件的程序流控制指令決定程序執(zhí)行的順序。JUMP指令指定在程序空間內(nèi)的絕對地址。CALL指令將程序定位到用一段代碼寫的子程序的絕對地址,同時(shí)將返回地址壓棧。嵌套CALL指令使用的棧為15層,對于程序大小足夠了。復(fù)位邏輯:復(fù)位信號強(qiáng)迫程序回到初始狀態(tài),即程序從地址00開始執(zhí)行,中斷被屏蔽,狀態(tài)標(biāo)記和堆棧也同時(shí)復(fù)位,但寄存器中內(nèi)容不受影響。

圖2PicoBlaze處理器內(nèi)部結(jié)構(gòu)

輸入/輸出(I/O):PicoBlaze提供256個(gè)輸入端口和256個(gè)輸出端口。由端口總線提供一個(gè)8位地址值與一個(gè)READ或WRITE選通脈沖信號,一起指定訪問端口。這個(gè)端口地址值或?yàn)橐淮_定值或由任意一寄存器中內(nèi)容指定。當(dāng)訪問一由分布式或塊狀RAM組成的內(nèi)存時(shí),最好用直接尋址。當(dāng)進(jìn)行輸入操作時(shí),輸入端口上的值被輸出一個(gè)READ_STROBE輸出脈沖時(shí),即表示進(jìn)行了一次輸入操作。中斷控制器:PicoBlaze提供一中斷輸入信號。只要用一些簡單的組合邏輯,多個(gè)信號就可進(jìn)行組合并被應(yīng)用于這一中斷。程序中可定義此中斷是否被屏蔽,默認(rèn)值是中斷被屏蔽。一被激活的中斷信號使程序執(zhí)行“CALLFF”指令(FF即256,程序存儲器的最后一個(gè)位置),然后設(shè)計(jì)者為此定義的放在此處的一段程序被執(zhí)行。一般在此地址放一JUMP指令,跳轉(zhuǎn)到中斷服務(wù)程序。中斷進(jìn)程屏蔽其它中斷,RETURNI指令保證在中斷程序結(jié)束后,標(biāo)記和控制指令回到原先的狀態(tài)。

表1PicoBlaze處理器指令集控制程序轉(zhuǎn)移指令循環(huán)轉(zhuǎn)移指令邏輯操作指令輸入/輸出指令81aaJUMPaa

91aaJUMPZ,aa

95aaJUMPNZ,aa

99aaJUMPC,aa

9DaaJUMPNC,aa

83aaCALLaa

93aaCALLZ,aa

97aaCALLNZ,aa

9BaaCALLC,aa

9FaaCALLNC,aa

8080RETURN

9080RETURNZ

9480RETURNNZ

9880RETURNC

9C80RETURNNCDx0ESP0sX

Dx0FSR1sX

Dx0ASRXsX

Dx08SRAsX

Dx0CRRs

Dx06SL0sX

Dx07SL1sX

Dx04SLXsX

Dx00SLAsX

Dx02RLsX0xkkLOADsX,kk

1xkkANDsX,kk

2xkkORsX,kk

3xkkXORsX,kk

Cxy0LOADsX,sY

Cxy1ANDsX,sY

Cxy2ORsX,sY

Cxy3XORsX,sYAxppINPUTsX,pp

Bxy0INPUTsX,(sY)

ExppOUTPUTsX,pp

Fxy0OUTPUTsX,(sY)算術(shù)運(yùn)算指令中斷指令4xkkADDsX,kk

5xkkADDCYsX,kk

6xkkSUBsX,kk

7xkkSUBCYsX,kk

Cxy4ADDsX,sY

Cxy5ADDCYsX,sY

Cxy6SUBsX,sY

Cxy7SUBCYsX,sY80F0RETURNIREABLE

80D0RETURNIDISABLE

8030ENABLEINTERRUPT

8010DISABLEINTERRUPT3PicoBlaze的指令集和調(diào)試器表1列舉了所有代表十六進(jìn)制的PicoBlaze操作碼的指令,其中:①“X”和“Y”代表寄存器,“s”,范圍為0~F;②“kk”代表常量,“aa”代表地址,“pp”代表端口地址,范圍均為00~FF。pBlazIDE(IntegratedDevelopmentEnvironment)是PicoBlaze匯編程序的編輯、調(diào)試、匯編集成環(huán)境。利用它可以方便地仿真所寫程序的輸入輸出、寄存器內(nèi)值的變化及程序指令的順序執(zhí)行過程,便于檢查程序的錯(cuò)誤。PicoBlaze處理器IPCore應(yīng)用的VHDL源代碼和調(diào)試器pBlazeIDE可以從Xilinx網(wǎng)站上直接下載。4PicoBlaze的應(yīng)用系統(tǒng)設(shè)計(jì)應(yīng)用于Spartan-II和Virtex-E器件的PicoBlaze處理器IPCore,外掛一個(gè)可存儲256條指令的RAM,共同工作。若是用戶需要更多的程序存儲空間以便執(zhí)行更加復(fù)雜的操作,有以下幾種解決方案。

*Xilinx針對Virtex-E器件特別設(shè)計(jì)了KCPSM2模塊,提供1024個(gè)地址,且操作32個(gè)寄存器。*若用戶的程序超過了256條指令,則可以考慮將設(shè)計(jì)分解為幾個(gè)過程,每一個(gè)過程由一個(gè)單獨(dú)的PicoBlaze模塊(每個(gè)擁有自己的RAM)完成。在一些設(shè)計(jì)中,以一個(gè)PicoBlaze為主(Master),其它一個(gè)或多個(gè)PicoBlaze為輔(Slave)。雙端口分布式存儲器是在處理器間交換數(shù)據(jù)的一個(gè)很好的選擇。*可選擇將超過256個(gè)指令的程序分解到兩個(gè)或多個(gè)塊狀RAM中,用一個(gè)選擇開關(guān)來選擇存儲了要執(zhí)行的指令的RAM。最簡單的是使用一個(gè)被一觸發(fā)器輸出控制的二選一選擇器來選擇RAM,如圖3所示。這種方法的缺點(diǎn)是:二路選擇器占用8個(gè)slice,且加大了程序執(zhí)行的延時(shí),降低了程序最大執(zhí)行速率。一個(gè)更好的方法是將二路選擇器放到RAM中,一條指令被分別存放在兩個(gè)512×8的RAM中,用switch信號和8位地址信號組成9位信號,選擇要執(zhí)行的指令。圖4列舉了一個(gè)利用PicoBlaze實(shí)現(xiàn)控制四個(gè)七段數(shù)據(jù)管顯示的例子,左邊兩個(gè)從0變到99,右邊情形相同,變化的間隔均為1s。但同時(shí)刻只有一個(gè)計(jì)數(shù)器增加,而選擇哪一個(gè)計(jì)數(shù)器增加則由DIPswitch輸入控制。

圖4PicoBla

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論