- 相關(guān)推薦
PicoBlaze處理器IP Core的原理與應(yīng)用
摘要:詳細(xì)分析8位微處理器IP core PicoBlaze的結(jié)構(gòu)、原理與設(shè)計(jì)方案;介紹PicoBlaze的指令集和調(diào)試工具pblazeIDE,討論P(yáng)icoBlaze的編程方案和應(yīng)用設(shè)計(jì)實(shí)例;列舉幾種PicoBlaze的應(yīng)用方案。1 概述
PicoBlaze 8位微處理器是Xilinx公司為Virtex系列FPGA、Spartan-Iitxi系列FPGA和CoolRunner-II系列CPLD器件設(shè)計(jì)嵌入式專用IP Core。它解決了常量編碼可編程狀態(tài)機(jī)(KCPSM)的問(wèn)題。這一模塊只占用SpartanIIE的76個(gè)小區(qū)(slice),占最小的XC2S50E器件9%的資源,占XC2S300E器件不到2%的資源。在這一模塊中還包括一個(gè)用于存儲(chǔ)指令的由Block RAM組成的ROM,最多可存儲(chǔ)256條指令。PicoBlaze只用了如此少的資源,但其速度卻可達(dá)到40MIPS以上。
PicoBlaze提供49個(gè)不同的指令,16個(gè)寄存器(CPLD為8個(gè)),256個(gè)直接或間接的可設(shè)定地址的端口,1個(gè)可屏蔽的、速率為35MIPS的中斷。它的性能超過(guò)了傳統(tǒng)獨(dú)立元器件組成的微處理器,而且成本低,使得PicoBlaze在數(shù)據(jù)處理和控制算法領(lǐng)域有著廣泛的應(yīng)用前景 。由于可編程部分也完成嵌入,PicoBlaze可與子程序和外圍設(shè)備結(jié)合起來(lái)完成特殊的設(shè)計(jì)。其基本應(yīng)用框架如圖1所示。
PicoBlaze模塊由VHDL語(yǔ)言設(shè)計(jì),不需要預(yù)編譯,可直接由布局布線工具嵌入到容量大一點(diǎn)的器件中;可以認(rèn)為PicoBlaze幾乎不占資源,而且一個(gè)設(shè)計(jì)中可以包括多個(gè)PicoBlaze。PicoBlaze適用于復(fù)雜的但對(duì)時(shí)間要求不太高的系統(tǒng)中,并可以簡(jiǎn)華設(shè)計(jì)。
圖1 PicoBlaze處理器的IP Core應(yīng)用框架
2 PicoBlaze原理與結(jié)構(gòu)分析
PicoBlaze 8位微處理器內(nèi)部結(jié)構(gòu)如圖2所示。
PicoBlaze處理器IP Core由全局寄存器、計(jì)算邏輯單元(ALU)、程序流控制標(biāo)志和復(fù)位邏輯、輸入/輸出(I/O)、中斷控制器等幾大部分構(gòu)成。
全局寄存器:16個(gè)8位全局寄存器,s0~sf。寄存器的操作是非常靈活的;沒(méi)有為特殊任務(wù)保留寄存器,任何寄存器的優(yōu)先權(quán)都是一樣的。
算術(shù)邏輯單元(ALU):提供了8位處理器需要的所有簡(jiǎn)單操作。執(zhí)行所有的操作都是用任意一個(gè)寄存器提供的操作數(shù)完成。若操作需兩個(gè)操作數(shù),則有另一寄存器指定或在指令中嵌入一8位常量值。在不增加程序大小的前提下,指不定期任意常量值,增強(qiáng)了簡(jiǎn)單的指令特性。更明白地說(shuō),ADD1與INCREMENT指令是等價(jià)的。若操作超過(guò)8位,則有一選項(xiàng)(增加或減少)可供選擇。二進(jìn)制操作碼(LOAD、AND、OR、XOR)可操作和測(cè)試二進(jìn)制數(shù),還包括SHIFT和ROTATE指令集合。
程序流控制標(biāo)志:ALU操作后的結(jié)果影響ZERO和CARRY兩個(gè)標(biāo)記。用有條件的或無(wú)條件的程序流控制指令決定程序執(zhí)行的順序。JUMP指令指定在程序空間內(nèi)的絕對(duì)地址。CALL指令將程序定位到用一段代碼寫(xiě)的子程序的絕對(duì)地址,同時(shí)將返回地址壓棧。嵌套CALL指令使用的棧為15層,對(duì)于程序大小足夠了。
復(fù)位邏輯:復(fù)位信號(hào)強(qiáng)迫程序回到初始狀態(tài),即程序從地址00開(kāi)始執(zhí)行,中斷被屏蔽,狀態(tài)標(biāo)記和堆棧也同時(shí)復(fù)位,但寄存器中內(nèi)容不受影響。
圖2 PicoBlaze處理器內(nèi)部結(jié)構(gòu)
輸入/輸出(I/O):PicoBlaze提供256個(gè)輸入端口和256個(gè)輸出端口。由端口總線提供一個(gè)8位地址值與一個(gè)READ或WRITE選通脈沖信號(hào),一起指定訪問(wèn)端口。這個(gè)端口地址值或?yàn)橐淮_定值或由任意一寄存器中內(nèi)容指定。當(dāng)訪問(wèn)一由分布式或塊狀RAM組成的內(nèi)存時(shí),最好用直接尋址。當(dāng)進(jìn)行輸入操作時(shí),輸入端口上的值被輸出一個(gè)READ_STROBE輸出脈沖時(shí),即表示進(jìn)行了一次輸入操作。
中斷控制器:PicoBlaze提供一中斷輸入信號(hào)。只要用一些簡(jiǎn)單的組合邏輯,多個(gè)信號(hào)就可進(jìn)行組合并被應(yīng)用于這一中斷。程序中可定義此中斷是否被屏蔽,默認(rèn)值是中斷被屏蔽。一被激活的中斷信號(hào)使程序執(zhí)行“CALL FF”指令(FF即256,程序存儲(chǔ)器的最后一個(gè)位置),然后設(shè)計(jì)者為此定義的放在此處的一段程序被執(zhí)行。一般在此地址放一JUMP指令,跳轉(zhuǎn)到中斷服務(wù)程序。中斷進(jìn)程屏蔽其它中斷,RETURNI指令保證在中斷程序結(jié)束后,標(biāo)記和控制指令回到原先的狀態(tài)。
表1 PicoBlaze處理器指令集
91aa JUMP Z,aa
95aa JUMP NZ,aa
99aa JUMP C,aa
9Daa JUMP NC,aa
83aa CALL aa
93aa CALL Z,aa
97aa CALL NZ,aa
9Baa CALL C,aa
9Faa CALL NC,aa
8080 RETURN
9080 RETURN Z
9480 RETURN NZ
9880 RETURN C
9C80 RETURN NCDx0E SP0sX
Dx0F SR1sX
Dx0A SRXsX
Dx08 SRAsX
Dx0C RR s
Dx06 SL0sX
Dx07 SL1sX
Dx04 SLXsX
Dx00 SLAsX
Dx02 RL sX0xkk LOAD sX,kk
1xkk AND sX,kk
2xkk OR sX,kk
3xkk XOR sX,kk
Cxy0 LOAD sX,sY
Cxy1 AND sX,sY
Cxy2 OR sX,sY
Cxy3 XOR sX,sYAxpp INPUT sX,pp
Bxy0 INPUT sX,(sY)
Expp OUTPUT sX,pp
Fxy0 OUTPUT sX,(sY)
算術(shù)運(yùn)算指令
中斷指令
4xkk ADD sX,kk5xkk ADDCY sX,kk
6xkk SUB sX,kk
7xkk SUBCY sX,kk
Cxy4 ADD sX,sY
Cxy
【PicoBlaze處理器IP Core的原理與應(yīng)用】相關(guān)文章:
MAP-CA寬帶數(shù)字信號(hào)處理器的原理及其應(yīng)用03-18
Motorola微處理器的bootloader分析與應(yīng)用03-19
AAA技術(shù)在移動(dòng)IP中的應(yīng)用研究03-07
公鑰密碼原理及其應(yīng)用12-27
小概率事件原理及其應(yīng)用03-07
高級(jí)RFID閱讀器應(yīng)用對(duì)處理器的要求03-18
淺談小概率事件原理及其應(yīng)用03-07