PicoBlaze處理器IP Core的原理與應用

發(fā)布時(shí)間:2010-4-4 21:23    發(fā)布者:蹦蹦
關(guān)鍵詞: core , PicoBlaze , 處理器 , 應用 , 原理
1 概述

PicoBlaze 8位微處理器是Xilinx公司為Virtex系列FPGA、Spartan-Iitxi系列FPGA和CoolRunner-II系列CPLD器件設計嵌入式專(zhuān)用IP Core。它解決了常量編碼可編程狀態(tài)機(KCPSM)的問(wèn)題。這一模塊只占用SpartanIIE的76個(gè)小區(slice),占最小的XC2S50E 器件9%的資源,占XC2S300E器件不到2%的資源。在這一模塊中還包括一個(gè)用于存儲指令的由Block RAM組成的ROM,最多可存儲256條指令。PicoBlaze只用了如此少的資源,但其速度卻可達到40MIPS以上。

PicoBlaze提供49個(gè)不同的指令,16個(gè)寄存器(CPLD為8個(gè)),256個(gè)直接或間接的可設定地址的端口,1個(gè)可屏蔽的、速率為 35MIPS的中斷。它的性能超過(guò)了傳統獨立元器件組成的微處理器,而且成本低,使得PicoBlaze在數據處理和控制算法領(lǐng)域有著(zhù)廣泛的應用前景 。由于可編程部分也完成嵌入,PicoBlaze可與子程序和外圍設備結合起來(lái)完成特殊的設計。其基本應用框架如圖1所示。



PicoBlaze模塊由VHDL語(yǔ)言設計,不需要預編譯,可直接由布局布線(xiàn)工具嵌入到容量大一點(diǎn)的器件中;可以認為PicoBlaze幾乎不占資源,而且一個(gè)設計中可以包括多個(gè)PicoBlaze。PicoBlaze適用于復雜的但對時(shí)間要求不太高的系統中,并可以簡(jiǎn)華設計。

2 PicoBlaze原理與結構分析

PicoBlaze 8位微處理器內部結構如圖2所示。



PicoBlaze處理器IP Core由全局寄存器、計算邏輯單元(ALU)、程序流控制標志和復位邏輯、輸入/輸出(I/O)、中斷控制器等幾大部分構成。

全局寄存器:16個(gè)8位全局寄存器,s0~sf。寄存器的操作是非常靈活的;沒(méi)有為特殊任務(wù)保留寄存器,任何寄存器的優(yōu)先權都是一樣的。
算術(shù)邏輯單元(ALU):提供了8位處理器需要的所有簡(jiǎn)單操作。執行所有的操作都是用任意一個(gè)寄存器提供的操作數完成。若操作需兩個(gè)操作數,則有另一寄存器指定或在指令中嵌入一8位常量值。在不增加程序大小的前提下,指不定期任意常量值,增強了簡(jiǎn)單的指令特性。更明白地說(shuō),ADD1與 INCREMENT指令是等價(jià)的。若操作超過(guò)8位,則有一選項(增加或減少)可供選擇。二進(jìn)制操作碼(LOAD、AND、OR、XOR)可操作和測試二進(jìn)制數,還包括SHIFT和ROTATE指令集合。

程序流控制標志:ALU操作后的結果影響ZERO和CARRY兩個(gè)標記。用有條件的或無(wú)條件的程序流控制指令決定程序執行的順序。JUMP指令指定在程序空間內的絕對地址。CALL指令將程序定位到用一段代碼寫(xiě)的子程序的絕對地址,同時(shí)將返回地址壓棧。嵌套CALL指令使用的棧為15層,對于程序大小足夠了。

復位邏輯:復位信號強迫程序回到初始狀態(tài),即程序從地址00開(kāi)始執行,中斷被屏蔽,狀態(tài)標記和堆棧也同時(shí)復位,但寄存器中內容不受影響。

輸入/輸出(I /O):PicoBlaze提供256個(gè)輸入端口和256個(gè)輸出端口。由端口總線(xiàn)提供一個(gè)8位地址值與一個(gè)READ或WRITE選通脈沖信號,一起指定訪(fǎng)問(wèn)端口。這個(gè)端口地址值或為一確定值或由任意一寄存器中內容指定。當訪(fǎng)問(wèn)一由分布式或塊狀RAM組成的內存時(shí),最好用直接尋址。當進(jìn)行輸入操作時(shí),輸入端口上的值被輸出一個(gè)READ_STROBE輸出脈沖時(shí),即表示進(jìn)行了一次輸入操作。

中斷控制器:PicoBlaze提供一中斷輸入信號。只要用一些簡(jiǎn)單的組合邏輯,多個(gè)信號就可進(jìn)行組合并被應用于這一中斷。程序中可定義此中斷是否被屏蔽,默認值是中斷被屏蔽。一被激活的中斷信號使程序執行“CALL FF”指令(FF即256,程序存儲器的最后一個(gè)位置),然后設計者為此定義的放在此處的一段程序被執行。一般在此地址放一JUMP指令,跳轉到中斷服務(wù)程序。中斷進(jìn)程屏蔽其它中斷,RETURNI指令保證在中斷程序結束后,標記和控制指令回到原先的狀態(tài)。

表1 PicoBlaze處理器指令集
控制程序轉移指令循環(huán)轉移指令邏輯操作指令輸入/輸出指令
81aa JUMP aa
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 NC
Dx0E SP0sX
Dx0F SR1sX
Dx0A SRXsX
Dx08 SRAsX
Dx0C RR s
Dx06 SL0sX
Dx07 SL1sX
Dx04 SLXsX
Dx00 SLAsX
Dx02 RL sX
0xkk 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,sY
Axpp INPUT sX,pp
Bxy0 INPUT sX,(sY)
Expp OUTPUT sX,pp
Fxy0 OUTPUT sX,(sY)
算術(shù)運算指令
中斷指令
4xkk ADD sX,kk
5xkk ADDCY sX,kk
6xkk SUB sX,kk
7xkk SUBCY sX,kk
Cxy4 ADD sX,sY
Cxy5 ADDCY sX,sY
Cxy6 SUB sX,sY
Cxy7 SUBCY sX,sY
80F0 RETURNI REABLE
80D0 RETURNI DISABLE
8030 ENABLE INTERRUPT
8010 DISABLE INTERRUPT

3 PicoBlaze的指令集和調試器

表1列舉了所有代表十六進(jìn)制的PicoBlaze操作碼的指令,其中:
①“X”和“Y”代表寄存器,“s”,范圍為0~F;
②“kk”代表常量,“aa”代表地址,“pp”代表端口地址,范圍均為00~FF。
pBlazIDE(Integrated Development Environment)是PicoBlaze匯編程序的編輯、調試、匯編集成環(huán)境。利用它可以方便地仿真所寫(xiě)程序的輸入輸出、寄存器內值的變化及程序指令的順序執行過(guò)程,便于檢查程序的錯誤。PicoBlaze處理器IP Core應用的VHDL源代碼和調試器pBlazeIDE可以從Xilinx網(wǎng)站上直接下載。

4 PicoBlaze的應用系統設計

應用于Spartan-II和Virtex-E器件的PicoBlaze處理器IP Core,外掛一個(gè)可存儲256條指令的RAM,共同工作。若是用戶(hù)需要更多的程序存儲空間以便執行更加復雜的操作,有以下幾種解決方案。

*Xilinx 針對Virtex-E器件特別設計了KCPSM2模塊,提供1024個(gè)地址,且操作32個(gè)寄存器。
*若用戶(hù)的程序超過(guò)了256條指令,則可以考慮將設計分解為幾個(gè)過(guò)程,每一個(gè)過(guò)程由一個(gè)單獨的PicoBlaze模塊(每個(gè)擁有自己的RAM)完成。在一些設計中,以一個(gè)PicoBlaze為主(Master),其它一個(gè)或多個(gè)PicoBlaze為輔(Slave)。雙端口分布式存儲器是在處理器間交換數據的一個(gè)很好的選擇。
*可選擇將超過(guò)256個(gè)指令的程序分解到兩個(gè)或多個(gè)塊狀RAM中,用一個(gè)選擇開(kāi)關(guān)來(lái)選擇存儲了要執行的指令的RAM。最簡(jiǎn)單的是使用一個(gè)被一觸發(fā)器輸出控制的二選一選擇器來(lái)選擇RAM,如圖3所示。



這種方法的缺點(diǎn)是:二路選擇器占用8個(gè)slice,且加大了程序執行的延時(shí),降低了程序最大執行速率。一個(gè)更好的方法是將二路選擇器放到RAM 中,一條指令被分別存放在兩個(gè)512×8的RAM中,用switch信號和8位地址信號組成9位信號,選擇要執行的指令。圖4列舉了一個(gè)利用 PicoBlaze實(shí)現控制四個(gè)七段數據管顯示的例子,左邊兩個(gè)從0變到99,右邊情形相同,變化的間隔均為1s。但同時(shí)刻只有一個(gè)計數器增加,而選擇哪一個(gè)計數器增加則由DIP switch輸入控制。



結語(yǔ)

PicoBlaze是一個(gè)典型的8位微處理器。與傳統的8位MCU相比,它是一個(gè)由VHDL實(shí)現的軟處理器IP Core,可以在各種FPGA和CoolRunnerII CPLD上實(shí)現,設計靈活方便;因此,PicoBlaze將在基于可編程邏輯和MCU的應用領(lǐng)域中發(fā)揮積極的作用。其較高的處理性能和較少的資源占用,預示其具有更加廣泛的應用前景。

參考文獻

   1. Xilinx Inc PicoBlaze Processor IP Guide 2003
   2. Xilinx Inc Programmable Logic Data Book.Rev6 2003

作 者:國防科技大學(xué) 溫廣翔 徐欣  
來(lái) 源:單片機與嵌入式系統應用2003(12)
本文地址:http://selenalain.com/thread-10151-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页