徐波
摘 要:Altera Cyclone V SoC FPGA 在一個基于ARM的用戶可定制芯片系統(SoC),集成了分立處理器(HPS)、FPGA和數字信號處理(DSP)功能。本文主要介紹Altera Cyclone V SoC FPGA的Embedded Linux System搭建,集FPGA和ARM兩大優勢于一體,讓系統設計更加先進、靈活。
關鍵字:FPGA ARM SoC Linux
中圖分類號:G64 文獻標識碼:A 文章編號:1672-3791(2014)12(a)-0015-01
1 Linux系統搭建
Altera Cyclone V SoC FPGA的Embedded Linux System搭建是一個十分復雜的過程,包含如下幾個部分。
1.1 Linux系統搭建工具
(1)Quartus II,創建、編輯和編譯FPGA硬件設計。
(2)SoC EDS,創建設備樹、產生預加載源文件和硬件傳送信息。
(3)Yocto,生成U-boot、Linux內核、文件系統。
(4)ARM DS-5,應用軟件開發工具。
1.2 Linux系統搭建過程。
1.2.1 搭建Qsys系統
使用Quartus II創建一個Qsys工程,Alatra公司自己開發了一個Demo板,提供了Qsys的基礎搭建例程,這里使用已提供的“soc_system.qpf”,但是要正確運行Linux系統,還需要進行一些修正。
1.2.2 配置HPS系統
HPS內包含了雙核的ARM Cortex A9 處理器外,還有許多內建外設可以使用,在Qsys系統中雙擊 hps_0組件打開HPS配置窗口,查看HPS組件的配置信息,HPS屬性有FPGA Interfaces、Peripheral Pin Multiplexing、HPS Clocks和SDRAM等四個配置欄,根據硬件實際連接,進行相關配置,配置完畢后,保存、編譯就是生成需要的“soc_sysytem.sof”文件。
1.2.3 生成Preload Iamge文件
Altera的SoC FPGA與ARM專用芯片相比其有比較靈活的應用彈性。因為用戶可以通過Qsys配置和刪減ARM端外設,還可以添加與FPGA相連的組件。這些用戶自定義的設定在經過Qsys generate和Quartus II compile會產生出一些HPS和FPGA相關的配置文件。在進行軟件設計時,這些檔案可以通過BSP Editor轉換成Preloader需要的輸入檔案,以進一步生成Image文件。
1.2.4 生成Device Tree
Device Tree是一種有關硬件系統描述的數據結構,它可以描述整個系統上掛載了多少種類的硬件。通過device tree系統上的硬件信息都可以傳遞給OS(linux)。如此便可以不用在Kernel內放置大量的冗長的代碼。這樣的特性對于硬件里面有FPGA的情況下提供了很大的彈性與靈活性。
1.2.5 Yocto ProjectTM
進入Yocto網站,Yocto ProjectTM是一個開源的協作軟件,提供模板、工具和方法幫你創建定制的Linux系統和嵌入式產品,而無需關心硬件體系。下載基于Altera Cyclone V SoC FPGA的Linux系統相關資源包及編譯工具,進行內核的配置。
1.2.6 ARM DS-5
Altera版ARM DS-5是Altera提供的基于ARM Development Studio5工具包的特定設備,是一個強大的基于Eclispe的綜合集成開發環境,這里使用ARM DS-5進行Linux內核調試、外圍設備驅動調試,確保Linux能夠正確運行在Altera Cyclone V SoC FPGA。
1.2.7 制作Linux SD Card
完成上述步驟,將Preload Image鏡像文件,設備樹、系統信息文件、Linux內核燒錄到SD中,這樣一個基于Altera Cyclone V SoC FPGA Embedded Linux系統制作完畢。
2 Linux系統測試
將制作完成的SoC_System.img鏡像文件,使用Win32SD工具燒錄到SD卡,將SD插入到Altera DE1_SoC中進行測試,將出現如圖1所示的信息。
3 結語
隨著FPGA技術的高速發展,芯片規模不斷提升,帶來了更強性能的同時,也實現了更低的功耗。RISC和FPGA結合使用,這樣電路設計的難度也就相應地增加了。而Altera的Cyclone V SoC將RISC硬核處理器系統和FPGA集成到一起實現了功能的互補,大大減小了硬件電路復雜性和體積,同時也降低了功耗,提高了系統可靠性。
參考文獻
[1] 蔡志明,盧傳富,李立夏.精通QT編程(第2版)[M].北京:電子工業出版社,2011.
[2] 陳健,宋健建.Linux程序設計[M].北京:人民郵電出版社,2010.
[3] 黃照鶴.Linux指令范例速查手冊[M].北京:清華大學出版社,2011.
[4] 陳永強,陶品,王篤強.嵌入式Linux移植[J].實驗室研究與探索,2012(9):67-68.endprint