大多數(shù)FPGA設計者從邏輯設計做起,對軟件級設計接觸不多,但目前的項目中都少不了處理器軟件C的設計,下面接著看下《UltraFast 嵌入式設計方法指南》中關于軟件設計方面的內容,主要分3部分:軟件設計需要考慮的事項、設計流程及調試等。
1. 軟件設計考慮事項
軟件設計時,需要先搭建一個處理器到系統(tǒng)中,處理器可以是硬核(如ZYNQ的ARM),也可以是軟核(如NIOS II),所有的內容均圍繞處理器方面設計展開:處理器配置,操作系統(tǒng)選擇,庫和中間件,啟動加載器,軟件開發(fā)工具(SDK)。

-
處理器配置:配置核心頻率、多處理單元協(xié)調和數(shù)據(jù)程序存儲空間分配、中斷等;
-
操作系統(tǒng)選擇:選擇操作系統(tǒng)活著裸跑;
-
庫和中間件:方便設計者高效的使用底層硬件的過渡層接口;
-
啟動加載器:方便操作系統(tǒng)的BOOT設計;
-
軟件開發(fā)工具:C開發(fā)環(huán)境,類似NIOS IDE開發(fā)環(huán)境。
當我們自己在邏輯部分設計了一個底層邏輯后通過接口(一般是總線接口)連接到處理器后,也可以自定義自己的操作接口,通過SDK來操作底層邏輯。如三角函數(shù)處理器運算太慢,可以在邏輯中設計一個三角函數(shù)后SDK中只需將運算的數(shù)據(jù)寫入對應reg中后得到運算結果,這就實現(xiàn)了硬軟件協(xié)調處理功能。
2. 軟件設計流程
軟件設計流程如下圖:


其中:
-
板啟動開發(fā)工作包括開發(fā)低級固件、設置啟動次序、針對接口和外設的基本測試,劃分了下列階段:PS 初始化 ,PL 配置 ,儲存器和外設測試,軟件和硬件調試;
-
驅動開發(fā)為 SoC 和板載外設開發(fā)軟件驅動,用于為OS或裸機應用等更高軟件層建立接口;
設計中要注重層次,多學習C++等高級語言設計技巧,這樣可以保證設計的簡潔和可維護性,一般FPGA對C設計接觸比較少從業(yè)者寫的C代碼一團亂麻。
3. 調試
系統(tǒng)調試中,PL部分就是我們常用的Modelsim仿真+在線邏輯分析儀等,PS部分就是斷點、單步,查看內存等。關于調試的經驗技巧下次搞篇文章分享。
軟件調試中,需要在處理器配置配置合適的的選項,SDK中靈活使用,同時需要注意:調試完成得到最終發(fā)行版本時,記得去掉在線邏輯分析儀和處理器JTAG配置,因為這樣會省掉不少資源,時序和功耗當然會更好。
4. 其它
理解啟動加載器的流程對理解軟硬件協(xié)同+Linux有很大幫助:

在為SoC 加電時,啟動過程從BootROM 開始。啟動過程先從片上儲存器 (OCM) 加載然后啟動執(zhí)行第一階段啟動加載器 (FSBL)。FSBL負責配置具體的初始化。
然后根據(jù)軟件架構,第二階段啟動加載器,如使用嵌入式 Linux 時的 U-Boot進行初始化并執(zhí)行。 FSBL 和/或 SSBL 啟動 RTOS 或嵌入式 Linux 以及應用代碼。如果沒有操作系統(tǒng),則是裸跑,好多步都沒有。簡單說裸跑就是51單片機C程序開發(fā),而跑系統(tǒng)則是ARM高端應用程序開發(fā),原理性相差不大,可以自己查閱資料了解,不需要馬上都懂,因為隨著時間和經驗的積累,這些你會慢慢要了解并使用鞏固。
5. 總結
FPGA大多是邏輯開發(fā)者,但只做邏輯的話局限性太大,而且現(xiàn)在的趨勢也是FPGA軟件話了,SDSOC就是證明。所以,我們應該提前擴充知識面,而且你會發(fā)現(xiàn)復雜軟件設計和操作系統(tǒng)經驗上有很多技巧也可以借鑒,更好地借鑒能幫助我們軟+硬+系統(tǒng)結合,設計出更有成就感的架構應用于項目中。
-
FPGA
+關注
關注
1650文章
22217瀏覽量
627939 -
嵌入式
+關注
關注
5177文章
20003瀏覽量
325439 -
Linux
+關注
關注
88文章
11581瀏覽量
217130
原文標題:《UltraFast 嵌入式設計方法指南》(3)——軟件級
文章出處:【微信號:fpga234,微信公眾號:fpga234】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
FPGA培訓--FPGA高級邏輯設計研修班
FPGA高級邏輯設計培訓
FPGA高級邏輯設計培訓
急聘!FPGA邏輯設計部門經理
基于FPGA技術的RS 232接口的時序邏輯設計實現(xiàn)
如何利用FPGA芯片進行簡化的PCI接口邏輯設計?
如何去實現(xiàn)FPGA的邏輯設計呢
基于FPGA的MDIO接口邏輯設計
MPEG-2編碼復用器中的FPGA邏輯設計
MPEG-2編碼復用器中的FPGA邏輯設計
FPGA視頻教程之FPGA設計中時序邏輯設計要點的詳細資料說明

FPGA開發(fā)從邏輯設計做起,結合軟+硬+系統(tǒng)很重要

評論