-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
嵌入式系統軟硬件協同設計實驗教程 版權信息
- ISBN:9787030737151
- 條形碼:9787030737151 ; 978-7-03-073715-1
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
嵌入式系統軟硬件協同設計實驗教程 內容簡介
基于Xilinx公司的Zynq系列器件和Vivado平臺,通過具體實例介紹嵌入式系統軟硬件協同設計的思想、方法和步驟,由淺入深、循序漸進,引導讀者逐步學會通過軟硬件協同實現嵌入式系統設計并解決實際問題。
嵌入式系統軟硬件協同設計實驗教程 目錄
第1章 緒論 1
1.1 軟硬件協同設計技術簡介 1
1.2 Zynq全可編程SoC基礎 5
1.2.1 Zynq處理系統 6
1.2.2 Zynq可編程邏輯 9
1.2.3 PS部分與PL部分間的接口 12
第2章 軟硬件協同設計實驗 16
2.1 交替閃爍LED燈 16
2.1.1 創建1個IP集成器設計 17
2.1.2 在Vivado中創建1個Zynq嵌入式系統 23
2.1.3 在Vitis IDE中創建1個軟件應用程序 35
2.2 具有中斷功能的計數器 47
2.2.1 擴展基本IP集成器設計 47
2.2.2 在Vivado中創建1個具有中斷的Zynq嵌入式系統 48
2.2.3 在Vitis IDE中創建1個軟件應用程序 58
2.2.4 增加1個中斷源 65
2.3 使用Vivado HLS/Vitis HLS進行設計 74
2.3.1 在Vivado HLS中新建工程 74
2.3.2 Vivado HLS設計優化 80
2.3.3 Vivado HLS接口綜合 95
2.3.4 Vitis HLS高層次綜合 98
2.4 創建IP核 115
2.4.1 在硬件描述語言中創建IP并調用它 116
2.4.2 創建IP并實現具有按鈕中斷功能的計數器 145
2.4.3 在MathWorks HDL Coder中創建IP核 159
2.4.4 在Vivado HLS中創建IP核 169
2.5 軟硬件協同設計綜合實驗 175
2.5.1 導入自定義IP到Vivado IP目錄 176
2.5.2 向Vivado IP集成器設計中添加音頻編解碼器 182
2.5.3 在SDK中創建1個音頻軟件應用程序并測試 193
第3章 軟硬件分離設計實驗 203
3.1 顯示輸出“Hello world” 203
3.2 純軟件簡易計算器 213
3.3 在ZedBoard開發板上實現流水燈 216
3.4 在ZedBoard開發板上實現純硬件簡單計算器 228
3.5 在Zybo開發板上實現流水燈 235
3.6 在Zybo開發板上實現純硬件簡單計算器 246
第4章 基于ZedBoard的擴展功能實驗 253
4.1 程序固化實驗 253
4.1.1 利用官方鏡像SD卡啟動ZedBoard 253
4.1.2 利用包含特定硬件信息的SD卡啟動ZedBoard 258
4.1.3 通過QSPI啟動ZedBoard 265
4.2 OLED顯示實驗 266
4.2.1 基于自定義IP實現文本顯示 266
4.2.2 基于OLED IP核實現文本和圖形顯示 271
4.3 雙核AMP實驗 276
參考文獻 293
嵌入式系統軟硬件協同設計實驗教程 節選
第1章緒論 1.1軟硬件協同設計技術簡介 近年來,隨著以ABC(即人工智能(Artificial Intelligence)、大數據(Big-Data)、云計算(Cloud Computing))為代表的新型計算技術的不斷發展,嵌入式系統應用不斷普及,包括移動計算設備、穿戴設備等在內的各種嵌入式系統產品已經成為生產、生活及科學研究中不可或缺的重要組成部分。嵌入式系統產品功能不同、形態各異,其主要功能部件也相差很大,其中具備復雜功能的嵌入式系統產品往往既包含硬件平臺,也包含豐富的軟件組件。 傳統的嵌入式系統開發是從概念設計開始的,在分析系統功能和性能需求的基礎上,將系統分成硬件部分和軟件部分,然后由硬件工程師和軟件設計師分別進行硬件、軟件系統的設計、驗證等,*后將兩部分集成到一起,并進行集成測試。 嵌入式系統的軟件部分運行在相應的硬件平臺上,其功能、性能很大程度受硬件部分結構、功能和性能的影響,因此在系統設計時往往采取“硬件優先”(Hardware First)策略。按照這一策略,可以選擇在硬件部分設計完成之后再進行相應的軟件部分的開發,但是如此一來必將導致研發周期增加,影響嵌入式系統產品的上市時間。另一種方法是基于模擬仿真進行軟件系統的開發。在這種方法下,先通過軟件的方式“造”一個硬件平臺,刻畫不同操作下硬件系統的響應以及相應的技術參數等,并基于這一模擬仿真平臺進行軟件部分的設計,待真正的硬件部分完成設計之后再把軟件系統集成到硬件系統中進行系統測試。這種方法能夠很大程度縮短產品研發周期,但是其對于模擬器的依賴程度較大,而事實上由于硬件系統也在研發中,此時很難保證模擬器參數與*終產品的完全一致。 這種分開設計軟件部分和硬件部分的系統開發方法隱含的一個突出問題是系統設計之初所進行的軟硬件功能劃分完全依靠先驗定義,由于缺乏軟硬件之間的有效交互,不能夠及早發現系統在概念設計中存在的“先天”不足,也無法發現軟件、硬件之間可能存在的如不兼容、不匹配的問題,不能及時評估軟件、硬件之間的性能影響。同時,因為軟件部分設計和硬件部分設計是獨立進行的,所以不能夠在設計中進行系統驗證,只有等軟件部分和硬件部分均分別設計完成并驗證通過以后才能進行集成測試,這在很大程度上影響了產品上市時間。特別地,傳統的軟硬件分開設計的系統開發模式中所采用的“硬件優先”策略使得軟件部分必須“順從”硬件部分的“假定”,但是事實上在系統設計之初往往不能保證硬件部分滿足在功能、結構或者性能方面的全部要求,這就有可能需要更改硬件部分的設計,其必將導致軟件部分設計的相應更改,增加了軟件部分的設計開銷。當然,也可以不更改硬件部分的設計,而是通過軟件的方式來彌補硬件部分設計中存在的缺陷或不足,這同樣會增加軟件部分的設計開銷。 傳統的軟硬件分開進行系統設計的方法之所以會帶來如設計質量差、設計修改難、設計周期長等問題,其根本原因在于在進行軟件部分和硬件部分設計的過程中缺乏有效的交互。軟硬件協同設計通過各種手段實現系統設計全周期中高效及時的軟硬件交互與協同以滿足系統性能標準與功能參數要求,從而獲得更好的設計效果、更低的設計成本、更短的設計周期。 實現軟硬件協同設計首先需要統一的軟硬件描述方式,包括統一的設計、分析工具和集成的仿真、評估環境,從而支持系統任務在軟硬件設計間相互移植;還需要具備交互式軟硬件功能劃分能力,允許對多個不同的軟硬件劃分設計進行仿真和比較,并提供輔助*優系統實現方式決策;此外還要求具備完整的軟硬件模型基礎,支持不同階段的模擬仿真與評估,并提供正確且快速的驗證方法以確保*終設計目標的快速實現。 為了實現軟硬件協同設計,需要構建一種軟硬件協同設計平臺,它為軟硬件協同描述、驗證、綜合提供一種集成環境。這種平臺一般都是由硬件開發系統供應商(如Xilinx)提供的,它不僅包含可編程芯片(或者安裝有相應芯片的開發板)等物理平臺、基于對應物理平臺進行產品設計和軟硬件系統研發的完整的開發系統,往往還提供大量的典型應用實例和完備的服務與技術支持。 需要特別指出的是現代嵌入式系統設計中所使用的軟硬件協同設計技術與早期的協同設計技術概念有所不同。早期的軟硬件開發是在軟硬件功能劃分之后分開獨立進行的,其中的協同設計指的是針對一個特定的硬件進行軟件開發,或根據一個已有的軟件實現具體的硬件結構。前者是一個經典的軟件開發問題,它揭示了電子系統中一個顛撲不破的真理,即軟件性能的好壞不僅僅取決于軟件開發人員的技術水平,更依賴于所使用的硬件平臺。后者則是一個軟件固化的問題。為了提升系統性能,可以采用一個與原有軟件平臺相同的硬件處理器,并將軟件代碼存儲于(只讀)存儲器當中,即用固件方式實現原有軟件的功能;當然也可以在充分理解軟件內在功能后完全使用硬件的方式實現相應軟件的功能。 當代的軟硬件協同設計技術中,軟硬件使用統一的設計方法同時并發進行設計,而且在開發過程中,軟件部分、硬件部分通過充分交互實現協同設計、協同評估、協同驗證以達到性能和功能要求,主要涉及系統任務描述、軟硬件劃分、軟硬件協同綜合、軟硬件協同仿真等問題,并且對系統設計師提出了新的更高的要求,即軟件設計師必須懂硬件語義,硬件設計師必須懂軟件語義。 基于軟硬件協同的方法進行嵌入式系統設計的基本框架如圖1-1所示。 大體上,基于軟硬件協同的嵌入式系統設計可以分為以下4個階段。 1)系統說明與功能驗證 在這個階段,主要進行概念設計,確定系統的功能以及相關性能要求;谏鲜龉δ芘c性能要求,進行軟硬件需求分析,并使用硬件描述語言(HDL)或者高級語言(如C語言或者System C等)對系統進行高層次建模與描述,使用模擬仿真或者形式化驗證等方法確認系統功能與參數能夠滿足設計要求。如果滿足,則進入下一階段;否則重新進行概念設計。 2)軟硬件功能劃分 一個完整的嵌入式系統往往是由硬件部分和軟件部分共同組成的。雖然從邏輯功能上講,軟件與硬件是等價的,但是對于一個確定的系統而言,某項功能使用軟件實現還是硬件實現,在速度、功耗等方面的性能差異很大,需要結合系統參數需求進行合理的功能劃分,以滿足系統要求。與此同時,嵌入式系統設計進行軟硬件功能劃分還需要充分考慮市場、用戶使用習慣、消費者心理以及系統擴展性、可移植性等諸多因素,同時需要盡量降低成本。因此,在嵌入式系統軟硬件協同設計過程中,軟硬件功能劃分尤為重要。合適、恰當的軟硬件功能劃分方法不僅能夠在滿足功能要求的基礎上提升性能、降低成本,而且能夠給系統的*終設計實現提供便利;反之,不成功的軟硬件功能劃分將導致系統性能損失,或者成本增加,或者增加系統設計實現的難度。 圖1-1軟硬件協同設計框架 一般地,在進行軟硬件劃分時遵循的基本原則是:系統中要求高速度、追求低功耗的功能通過硬件實現,而那些面向多品種、小批量的功能則通過軟件來實現。具體的功能實現與軟硬件功能劃分策略,大體上可以分為兩種:一種是面向軟件的方法;另一種是面向硬件的方法。前一種方法中,系統的主要功能用軟件實現,但是將其中的部分功能從通過軟件實現改成使用硬件實現,例如,通過這種方法以滿足時序的要求,從而提高系統速度等;后一種方法中,主要功能用硬件實現,但是將其中的部分功能從使用硬件實現改成通過軟件實現,例如,通過這種方法減少硬件部件、降低系統成本等。 一般地,進行嵌入式系統軟硬件功能劃分是一個反復迭代、求精的過程,每一次功能劃分以后,需要基于劃分結果對系統性能進行預測,檢驗其功能的完備性,以及在關鍵性能指標上的滿足情況,并適當考慮未來技術、市場以及應用的需求情況,如果性能預測結果表明當前的劃分結果能夠達到預期,則進入下一步的具體設計實現階段,否則需要重新進行系統的軟硬件功能劃分。如果發現無論怎樣進行軟硬件功能劃分都無法滿足系統性能設計要求,則可能需要退回到上一步重新進行系統設計,確定系統的功能和性能參數。 3)設計與綜合 在電子系統設計中,綜合其實就是將通過較高級別描述方式描述的設計結果轉化為通過較低級別描述方式描述的設計結果的過程。例如,可以通過綜合,把硬件描述語言描述的設計結果轉化成門級或晶體管級描述的設計結果。因此,可以把綜合簡單地理解成使用較低一級的描述結果“具體實現”較高一級的描述結果的過程。從這個意義上講,電子系統設計中的綜合實際就是對設計結果逐步求精并*終實現它。 在軟硬件協同設計中,需要分別完成硬件部分設計與綜合、軟件部分設計與綜合和接口設計與綜合。 從電子系統設計的角度看,硬件部分設計與綜合的概念*為簡單,可以認為硬件部分*后的綜合結果就是硬件部分的*終表現形式,例如,其可以是一個或多個中央處理器(CPU)(或CPU核),或者一個專用集成電路(ASIC)、一個數字信號處理器(DSP)等。硬件部分設計與綜合中需要考慮的主要問題跟傳統的集成電路設計與綜合一樣,主要是面積、速度、功耗等,這些因素都與系統的*終性能參數要求密切相關。除此之外,跟傳統的集成電路設計與綜合一樣,硬件部分設計與綜合過程中還需要考慮復用(Reuse)的問題。 軟件部分設計與綜合過程可以簡單地理解為編寫調試相應的軟件,例如,將有限狀態機(FSM)描述的過程程序化等,只不過這里編寫的軟件可能是基于特定硬件結構或操作系統的,因此需要面向一個定制的操作系統,甚至沒有操作系統支持。在軟硬件協同設計中,軟件部分設計與綜合面臨的主要問題在于缺乏實際硬件的支持。因為軟硬件協同設計中軟件和硬件是同步開發的,在進行軟件部分開發的時候,其面向或依托的硬件系統并沒有開發完成,因此只能通過模擬仿真的方式進行系統調試,而且,一旦硬件部分設計有修改,可能需要軟件部分做出相應的改動(與此對應,軟件部分設計的調整也有可能需要硬件部分做出必要的改動)。此外,如何估算軟件部分的性能和如何讓在不同模塊軟件中線性執行的命令滿足系統時序約束條件(如頻率要求、操作的并發與同步、信號的先后次序等)也是軟件部分設計與綜合需要著重考慮的問題。 嵌入式系統中的接口包括接口軟件和接口硬件。跟傳統的接口設計方法類似,軟硬件協同設計中接口設計與綜合遵循以下原則:通用接口標準化(例如,接口硬件中采用標準總線接口,如PCI、VME接口等)、專用接口定制化(例如,接口硬件中的傳感器接口需要結合具體的功能以及系統需求進行設計)、接口通信簡單化(例如,盡量使接口硬件中的連線更少,盡量將子模塊直接連接而不采用膠合邏輯,等等)。 4)系統模擬與協同仿真 軟硬件系統設計需要通過系統模擬與協同仿真來確認系統功能、預估系統性能。在此過程中,如果發現功能或性能方面不能滿足系統要求,需要立即診斷問題原因,回退到相關設計環節加以修正。有些情況下,簡單的設計修改已經不能達到修正錯誤的目的,可能需要進一步完善系統功能、修正性能參數,或者重新進行軟硬件功能劃分,甚至重新進行系統頂層設計。 系統模擬與協同仿真可以利用仿真器參數配置模擬構建真實環境從而通過仿真器完成,也可以借助形式化驗證、高層次綜合等技術,在(部分或全部)子模塊尚未完成的情況下進行。相比較而言,后一種方法能夠更早地發現可能存在的問題,而形式化驗證、高層次綜合等一直以來也是電子設計自動化(EDA)技術研究的重點和難點。 一般地,軟硬件協同設計平臺會提供相應的系統模擬與協同仿真系統。從使用者的角度__來看,除了對其模擬仿真結果正確性的要求之外,還需要系統提供足夠便利的交互性,允許用戶快速改變結構參數,并且能夠通過直觀的圖形化界面等多種方式呈現便于分析與調試的模擬仿真結果。當然,用戶同時希望模擬仿真系統能夠具備較高的速度,在不同結構下均能快速測試不同輸入激勵的響應,但是模擬仿真系統往往很難同時滿足用戶在交互性和模擬仿真速度上的要求。 1.2 Zynq全可編程SoC基礎 早期的嵌入式系統是通過
- >
有舍有得是人生
- >
月亮與六便士
- >
【精裝繪本】畫給孩子的中國神話
- >
巴金-再思錄
- >
經典常談
- >
上帝之肋:男人的真實旅程
- >
朝聞道
- >
李白與唐代文化