ISE軟核MicroBlaze GPIO輸入輸出測試總結
ISE中例化MicroBlaze軟核的過程可以參考其它資料,此處無需贅述。軟核入門級的例程不外乎LED燈,即通過GPIO口輸出的信號。下面是對GPIO接口進行輸入輸出測試的相關總結。
1、軟件版本:ISE14.4
芯片型號:XC6SLX16-3
2、輸入輸出測試可以根據自有硬件平臺選擇不同方式,輸入至軟核的信號可以打印出來觀察,軟核輸出的信號可以通過LED燈、串口等方式進行觀察。當前使用的硬件平臺只有幾個LED燈,本次測試中輸出選擇LED燈作爲觀察方式。
3、本次測試爲在線調試。測試思路爲,FPGA中週期計數,輸入MicroBlaze軟核,通過一個GPIO輸入接口讀取,然後打印出來,觀察數據是否正確;再將讀取的數據通過另一個GPIO輸出接口輸出至FPGA,然後作爲輸出信號連接到LED。
4、測試程序中的C程序部分使用ISE自帶例程。需要注意的是,MicroBlaze軟核的外設是自定義的,需要哪個外設就添加哪個外設的IP核,添加外設的方式有兩種:一種是在Base System Builder中添加,另一種則是軟核生之後在XPS中添加需要的IP,分別如下圖所示。第一種方式添加外設,不需要手動連接信號,第二種方式添加外設需要手動連接信號(可以查找添加IP核的相關資料)。
5、MicroBlaze軟核和ARM等嵌入式器件很大的不同就是非常靈活,如前面所說的根據需要添加外設。連接好信號、分配完地址,硬件部分完成之後,硬件的信息會完全反映到軟件部分,如果後續添加了新的外設,相應的軟件會發生改變。注意觀察頭文件(xparameters.h)中的宏定義名稱和地址部分,即可發現。
6、system.mhs文件爲軟核的硬件規範,包含系統、外設的參數、接口等內容,在界面不好修改的內容可以考慮在該文件內進行修改。比如差分時鐘修改爲單端時鐘時,即可在該文件內進行修改(見參考資料)。
7、GPIO輸入輸出相關函數說明可見參考資料。程序中會遇到兩個變量DeviceId和Channel,其中DeviceId表示的是GPIO外設,對應哪個外設可以查看頭文件,Channel表示的是一個外設是否支持兩個通道,EDK中的GPIO外設屬性中可以進行設置,使用方式還不清楚。
參考資料:
1、本文測試例程下載地址,以供參考
http://download.csdn.net/detail/kpsuwen/8994839
2、MicroBlaze完整例程詳解(百度文庫)
3、MicroBlaze GPIO API函數說明,見以下博客,很詳細
http://bbs.elecfans.com/infocenter.php?mod=space&uid=1504142&do=blog&id=299228