天天看點

PicoBlaze性能

PicoBlaze性能

表12-4列出了PicoBlaze微控制器在不同的FPGA系列和不同的速度等級的器件中能達到的最高頻率。通常情況下,如果對性能要求不是太高,最好是讓PicoBlaze在低頻下工作,因為它所處理的外設一般為低速裝置,例如,串行通信,按鍵等。另外,低頻工作也會減少等待周期,降低系統功耗。

PicoBlaze性能

12.4 PicoBlaze在FPGA設計中的應用

PicoBlaze以三種方式提供給設計者使用,包括VHDL源碼、Verilog源碼和黑盒子。ISE6.1及以上版本均可以支援。下面主要介紹VHDL源碼的設計流程,關于Verilog和黑盒子方式,請參閱Xilinx相關文檔。

PicoBlaze的VHDL源檔案是KCPSM3.VHD,它支援XST綜合和ModelSim仿真,也可以應用其他綜合和仿真工具。建議設計者不要以各種方式更改源碼。

KCPSM3.VHD子產品component聲明以及例化如下,KCPSM3包括ALU、寄存器、暫存器等,但是不包括指令存儲器。

PicoBlaze性能
PicoBlaze性能

由于KCPSM3不包括指令存儲器,是以需要另外建立指令存儲器,并将指令存儲器與KCPSM3連接配接。指令存儲器component和例化方式如下所示。

PicoBlaze的彙編源程式的擴充名為psm,其程式存儲器的檔案名由彙編源檔案名決定,如果彙編源檔案名為my_rom.psm,經過PicoBlaze編譯後産生的程式存儲器的VHDL的檔案名即為my_rom.vhd,其中的RAM被.psm檔案初始化,将這個檔案與KCPSM3連接配接,即可實作完整的PicoBlaze系統。

PicoBlaze性能
PicoBlaze性能

12.5 PicoBlaze開發工具

PicoBlaze開發工具主要有三個:Xilinx KCPSM3、Mediatronix pBlazIDE和Xilinx System Generator,如表12-5所示,本節主要介紹Xilinx KCPSM3 和Mediatronix pBlazIDE。

PicoBlaze性能

12.5.1 KCPSM3開發工具

一、 編譯器

KCPSM3編譯器是一個簡單的DOS可執行程式,還有三個臨時檔案。将KCPSM3.EXE、ROM_form.vhd、ROM_form.v和ROM_form.coe四個檔案拷貝到工作目錄。源程式可以用任何文本編輯器編輯,其擴充名為.psm。注意:檔案名不超過7個字元。DOS指令如下:

kcpsm3 [.psm]

二、 編譯錯誤

KCPSM3編譯過程中,如果程式有錯誤,會在DOS視窗顯示,然而由于編譯比較快,很難看清錯誤資訊,是以KCPSM3提供一個指令,可以将錯誤資訊寫入一個文本檔案。

kcpsm3 [.psm] > screen_dump.txt

三、 輸入輸出檔案

KCPSM3編譯器包括4個輸入檔案和15個輸出檔案,如圖12-24所示。

PicoBlaze性能

12.5.2 Mediatronix pBlazIDE 開發工具

Mediatronix pBlazIDE 軟體界面如圖12-25 所示,它是一個免費的圖形化的內建開發環境,它包括的特性介紹如下。

PicoBlaze性能

圖12-25 Mediatronix pBlazIDE 軟體界面

 文法彩色高亮顯示。

 指令集仿真(ISS)。支援斷點、寄存器視窗、存儲器視窗。

 源代碼格式化。

 KCPSM3-to-pBlazIDE 導入功能/文法轉換。

 支援HTML 輸出,包括彩色高亮顯示。

此工具可以從http://www.mediatronix.com/pBlazeIDE.htm 下載下傳。

一、 設定pBlazIDE

pBlazIDE 支援4 個PicoBlaze 版本,如圖12-26 所示。對于Spartan-3、Virtex-2、Virtex-2 Pro 和Virtex-4/5/6 選擇Settings→Picoblaze 3。

PicoBlaze性能

圖12-26 設定pBlazIDE 的PicoBlaze 版本

二、 将KCPSM3 代碼導入pBlazIDE

如圖12-27 所示,由于KCPSM3 源碼與pBlazIDE 源碼存在差異,是以當用pBlazIDE進行代碼調試時,需要應用導入指令File→Import 進行轉換,如圖12-28 所示。

PicoBlaze性能

圖12-27 KCPSM3 源碼與pBlazIDE 源碼的差別

PicoBlaze性能

圖12-28 将KCPSM3 代碼導入pBlazIDE

KCPSM3 源碼與pBlazIDE 源碼的差異如表12-6 所示。

PicoBlaze性能

三、 PicoBlaze代碼模拟

在pBlazIDE開發環境中,開發者可以對應用程式代碼進行模拟運作,可以設定斷點,觀察寄存器、存儲器、暫存器的内容,也可以監控輸入/輸出口以及标志位的狀态。這一步驟與常用的Keil51等模拟器相似,不再詳述。

12.6 PicoBlaze設計開發包

一個PicoBlaze設計主要包含兩個部分,分别是控制器硬體部分和控制器軟體彙編源程式。Xilinx的KCPSM3開發包中主要包括如圖12-29所示内容,下面分别就每個部分進行簡單介紹。

 Assembler檔案夾包括KCPSM3編譯器、HDL格式的Picoblaze程式存儲器檔案ROM_form.v/ROM_form.vhd、BRAM資料檔案ROM_form.coe,另外還有一個清除中間檔案的批處理檔案cleanup.bat。

 DATA2MEM_assistance檔案夾中的檔案用來更新FPGA的BIT配置檔案。在進行基于PicoBlaze的FPGA開發時,PicoBlaze的硬體一般不需要頻繁改動,而其psm軟體則需要進行多次修改調試,如果psm軟體每改一次,就對整個設計進行一次布局布線,就需要花費較多的調試時間,特别是當使用較大規模的FPGA 時,布局布線時間特别長。為了解決這個問題,Xilinx開發了DATA2MEM工具,使用它可以在不進行布局布線操作的情況下,更新bit檔案,這極大地節省了調試時間。詳細的使用方法請參考其中的TXT 說明文檔。

PicoBlaze性能

圖12-29 KCPSM3 開發包

 JTAG_loader 檔案夾中的檔案講述了如何用JTAG 下載下傳電纜更改PicoBlaze 的程式存儲器的内容,而不需要重新運作布局布線。詳細使用方法請參考其中的JTAG_loader_quick_guide.pdf 檔案。

 VHDL 檔案夾包含了KCPSM3.vhd 的微控制器硬體描述檔案以及一個序列槽相關檔案。

 Verilog 檔案夾包含了KCPSM3.V 的微控制器硬體描述檔案以及一個序列槽相關檔案。

 KCPSM3 開發包中的KCPSM3_Manual.pdf 檔案為Picoblaze 的應用手冊,UART_Manual.pdf 檔案為用Picoblaze 實作序列槽通信的應用手冊,UART_real_time_clock.pdf 檔案為一個用PicoBlaze 實作的時鐘描述檔案,kcpsm3.ngc 為PicoBlaze 的網表檔案。另外,讀者還可以從Xilinx 的官方網站下載下傳更多的Xilinx 驗證過的參考設計和應用文檔,包括xapp213、xapp387、xapp374、xapp627、ug129 等。