PicoBlaze軟核的仿真與調(diào)試
引言
本文引用地址:http://m.butianyuan.cn/article/189698.htmPicoBlaze是Xilinx公司為Virtex、Spartan系列FPGA和CoolRunnerII系列CPLD設(shè)計(jì)的8位嵌入式處理器軟核。PicoBlaze嵌入式處理器具有高達(dá)44~100 MIPS的指令執(zhí)行速度,并具有效率高、占用資源少等優(yōu)點(diǎn),可以方便地嵌入到硬件系統(tǒng)設(shè)計(jì)中,實(shí)現(xiàn)與其他功能模塊的無(wú)縫連接[1],在FPGA嵌入式系統(tǒng)中具有廣泛的應(yīng)用。傳統(tǒng)的PicoBlaze項(xiàng)目調(diào)試方法通常將PicoBlaze的匯編程序編譯后,與FPGA相關(guān)邏輯綜合、實(shí)現(xiàn),然后下載到電路板上進(jìn)行板級(jí)驗(yàn)證,往往要花費(fèi)大量時(shí)間,效率低下。本文介紹了一種基于pBlazIDE的PicoBlaze匯編程序仿真調(diào)試方法,并對(duì)基于JTAG Loader的PicoBlaze程序快速更新方法進(jìn)行了詳細(xì)分析。實(shí)踐證明,該方法簡(jiǎn)便可行、效率較高,大大加快了PicoBlaze項(xiàng)目的調(diào)試進(jìn)度。
1 pBlazIDE仿真調(diào)試工具
pBlazIDE是一款免費(fèi)的圖形化仿真調(diào)試工具,只有145 MB,無(wú)需安裝即可使用[1],非常適合于PicoBlaze匯編程序的前期仿真驗(yàn)證。pBlazIDE具有以下功能:
◆ 按語(yǔ)法分色高亮顯示代碼;
◆ 指令集仿真器,可設(shè)置斷點(diǎn),并可查看寄存器和存儲(chǔ)器內(nèi)容;
◆ 源代碼格式化;
◆ KCPSM3到pBlazIDE導(dǎo)入功能,并自動(dòng)完成語(yǔ)法轉(zhuǎn)換;
◆ 支持語(yǔ)法分色高亮顯示HTML文件輸出。
pBlazIDE仿真調(diào)試工具窗口布局如圖1所示。pBlazIDE仿真調(diào)試工具窗口布局為標(biāo)準(zhǔn)的Windows界面,主要包括菜單欄、工具欄、代碼區(qū)、I/O端口欄、PicoBlaze處理器狀態(tài)欄、暫存RAM欄、輸出狀態(tài)區(qū)和系統(tǒng)狀態(tài)欄。其中,I/O端口欄和暫存RAM欄只有在程序中使用了I/O端口和暫存RAM時(shí)才顯示,平時(shí)默認(rèn)為不顯示狀態(tài)。PicoBlaze處理器狀態(tài)欄顯示程序運(yùn)行過(guò)程中PicoBlaze的寄存器值和標(biāo)志位狀態(tài),輸出狀態(tài)區(qū)顯示程序編譯和運(yùn)行信息,系統(tǒng)狀態(tài)欄顯示內(nèi)容包括程序運(yùn)行時(shí)間、當(dāng)前PC值、當(dāng)前堆棧指針和堆棧值等。

圖1 pBlazIDE仿真調(diào)試工具
pBlazIDE與標(biāo)準(zhǔn)的KCPSM3語(yǔ)法相比,除中斷處理和其他少量語(yǔ)句外,大部分均相同。在導(dǎo)入KCPSM3程序時(shí),pBlazIDE會(huì)自動(dòng)完成語(yǔ)法轉(zhuǎn)換,無(wú)需人工干預(yù)。必須注意的是,pBlazIDE對(duì)KCPSM3語(yǔ)法中I/O端口的定義不會(huì)自動(dòng)轉(zhuǎn)換,必須手動(dòng)修改,否則編譯時(shí)會(huì)報(bào)錯(cuò)。例如,KCPSM3語(yǔ)法中輸出端口定義LED EQU 1應(yīng)修改為L(zhǎng)ED DSOUT 1,輸入端口和雙向口的定義與此類似。
pBlazIDE仿真調(diào)試步驟如下:
① 打開(kāi)pBlazIDE仿真調(diào)試工具,在Settings里選擇合適的Picoblaze 類型,對(duì)于Spartan3、VirtexII或VirtexII Pro系列FPGA選擇Picoblaze 3即可。另外,還需在Settings→Options中設(shè)置軟核的系統(tǒng)時(shí)鐘,以便pBlazIDE顯示程序精確運(yùn)行時(shí)間。
② 點(diǎn)擊File→Import命令,導(dǎo)入KCPSM3語(yǔ)法格式的.psm源文件,pBlazIDE會(huì)自動(dòng)完成語(yǔ)法轉(zhuǎn)換。
③ 手動(dòng)修改I/O端口定義,以滿足pBlazIDE語(yǔ)法要求。
④ 單擊AssembleSimulate按鈕,對(duì)程序進(jìn)行匯編,如果程序沒(méi)有錯(cuò)誤,即可開(kāi)始仿真。仿真既可以全速運(yùn)行,也可以單步運(yùn)行,并可設(shè)置斷點(diǎn)等,大部分功能與常用的單片機(jī)開(kāi)發(fā)軟件Keil 51類似。在仿真過(guò)程中,可以查看或修改寄存器和存儲(chǔ)器內(nèi)容,監(jiān)測(cè)I/O輸出是否與預(yù)期結(jié)果相符,設(shè)置輸入端口值和模擬端口輸入;另外,還可以對(duì)外部中斷進(jìn)行模擬仿真,極大地方便了用戶程序調(diào)試。
評(píng)論