總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電子電信技術 微電子學、集成電路
 
 
 
 
SoC FPGA嵌入式設計和開發教程
 叢書名稱: 工程師自學筆記系列叢書
 作  者: 梅雪松/宋士權/陳雲龍
 出版單位: 北京航空航天大學
 出版日期: 2019.03
 進貨日期: 2019/5/27
 ISBN: 9787512422391
 開  本: 16 開    
 定  價: 518
 售  價: 414
  會 員 價: 380
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

隨著半導體工藝的提升,晶片廠商將更多的功能集成到單一的半導體晶片之中,晶片集成度的提高,隨之帶來的是應用設計複雜度的提高。Intel在其FPGA 晶片上集成了ARM Cortex處理器,從而形成一顆基於FPGA 的SoC晶片,這是一個典型的可配置的單晶片系統。
目前一顆主流的FPGA 晶片,除了邏輯單元外,還集成了嵌入式記憶體塊、鎖相環、DSP塊,甚至高速收發器電路,並將ARM Core集成到FPGA 晶片上,在帶來功能高度集成的同時,再一次增加了應用設計的複雜度。
目前,基於SoC FPGA 嵌入式系統設計的參考書和教材還很少,而小梅哥的這本書從*基本的概念講起,由淺入深,再配合大量的截圖,一步一步地介紹了整個設計的流程。該書內容涵蓋了基於SoC FPGA 的硬體系統搭建、Linux作業系統的配置,以及軟體的設計與調試方法等,手把手地將一個初學者帶進SoC FPGA 嵌入式系統的設計入門,非常值得推薦。
希望作者在本書的基礎上,再接再厲,不斷地寫出更好的參考書,也希望廣大讀者對本書給予大力支持!

Intel FPGA 大學計畫經理 袁亞東


內容簡介:

本書以Intel Cyclone v SoC FPGA系列器件為例,介紹了SoC FPGA 器件的架構特點、常用電路設計以及軟硬體開發流程和開發技巧。內容編排按照開發一個基於SoC FPGA 的應用系統所需掌握的*基本的知識路線展開,從基本的Linux系統操作到分析一個最基礎的應用系統框架,然後基於該應用系統框架,詳細講解應用系統的構建、BSP檔的生成、啟動引導檔的更新、Ubuntu虛擬機器安裝配置、Linux內核配置與編譯。接著介紹如何在嵌入式Linux系統環境下,使用虛擬位址映射的方式編寫相應的應用程式來實現該應用系統中各個功能IP的程式設計控制和調試。*後以兩個實際的例子展示如何通過HPS和FPGA的片上通信橋實現軟硬體聯合開發的過程,包括FPGA側邏輯開發, IP匯流排封裝,Linux驅動程式的編寫編譯,Linux應用程式的編寫與運行等。

本書既可作為工程類應用、電子資訊類專業本科生以及相關專業專科生的嵌入式系統基礎類課程的教材,也可作為SoC FPGA自學人員以及從事SoC FPGA開發的工程技術人員的培訓教材和參考用書。


作者簡介:

梅雪松,網名“小梅哥”,擁有多年電子設計經驗,擅長知識的總結和傳播,有《小梅哥和你一起深入學習FPGA》、《小梅哥FPGA學習筆記》兩個系列網路博文;並推出了手把手式視頻教程《FPGA設計思想與驗證方法視頻教程》,該教程在各大視頻點擊平臺備受好評,網友稱其為學習FPGA基礎與提高教學視頻的不二之選。同時,開設FPGA實地培訓班,進行網路和實地FPGA培訓,並多次進入高校進行SoC FPGA開發技術的培訓。培訓課程以其系統的知識講解和生動的實例分析,得到了學員的一致肯定。


圖書目錄:

第1章 SoC FPGA軟硬體系統開發概述 … 1

1.1Intel SoC FPGA系列 1

1.1.1Cyclone Ⅴ SoC FPGA … 2

1.1.2Arria Ⅴ SoC FPGA 2

1.1.3Arria 10 SoC FPGA 2

1.1.4Stratix 10 SoC FPGA 3

1.1.5SoC FPGA應用領域與前景 3

1.2Intel Cyclone Ⅴ SoC FPGA介紹 … 4

1.2.1什麼是SoC FPGA … 4

1.2.2SOPC … 4

1.2.3SoC FPGA與SOPC之間的差異 5

1.2.4SoC FPGA架構的優勢 … 6

1.3Cyclone Ⅴ SoC FPGA器件硬體設計概述 9

1.3.1FPGA I/O和時鐘 … 10

1.3.2SoC FPGA JTAG電路設計 … 12

1.4AC501-SoC開發板介紹 13

1.4.1佈局及元件… 13

1.4.2輕觸按鍵 14

1.4.3使用者LED 15

1.4.4時鐘輸入 16

1.4.5GPIO介面… 17

1.4.6DDR3SDRAM 18

1.4.7通用顯示擴展介面… 19

1.4.8USB轉 UART 21

1.4.9乙太網收發器 21

1.5本章小結 23

第2章 SoC FPGA開發板的使用 … 24

2.1安裝SoC FPGA開發工具 24

2.2SoC FPGA的配置資料燒寫與固化 24

2.2.1SoC FPGA啟動配置方式介紹 24

2.2.2sof檔的燒寫方式 26

2.2.3Jic檔的生成和燒寫… 28

2.3在SoC FPGA上運行Linux作業系統 … 32

2.3.1SoC FPGA中的 HPS啟動流程介紹 32

2.3.2HPS啟動方式介紹 33

2.3.3製作啟動鏡像SD卡 34

2.3.4準備硬體板卡 35

2.3.5開機測試 39

2.4開發板Linux系統常用操作 … 40

2.4.1查看目錄 40

2.4.2設置和修改使用者密碼 40

2.4.3查看和編輯檔… 41

2.4.4設置IP位址 … 43

2.4.5掛載SD卡的FAT32分區 45

2.4.6掛載 U盤 46

2.4.7檔操作 47

2.4.8目錄操作 48

2.4.9停止某個進程 49

2.4.10重啟和關機… 50

2.5本章小結 50

第3章 SoC FPGA開發概述 … 51

3.1SoC FPGA開發流程 … 51

3.1.1硬體開發 51

3.1.2軟體發展 53

3.2AC501-SoC FPGA開發板的黃金參考設計說明 53

3.2.1GHRD … 53

3.2.2打開和查看GHRD 54

3.2.3元件參數配置詳解… 57

3.3本章小結 62

第4章手把手修改GHRD系統 63

4.1修改GHRD工程 … 63

4.1.1打開GHRD工程 … 63

4.1.2添加UART IP 64

4.1.3關於 HPS與FPGA資料交互… 64

4.1.4連接UART IP信號埠 65

4.1.5分配元件基底位址… 67

4.1.6生成 Qsys系統的 HDL檔 … 68

4.1.7添加uart_1的埠到 Quartus工程中 69

4.1.8分配FPGA引腳 … 71

4.1.9生成配置資料二進位檔案 72

4.2製作Preloader Image … 72

4.2.1打開SoC EDS工具 73

4.2.2生成bsp文件 74

4.2.3編譯Preloader和 U-Boot 77

4.2.4更新Preloader和 U-Boot 79

4.2.5Win 10下更新失敗問題… 80

4.2.6使用新的 U-Boot啟動SoC … 81

4.3製作設備樹… 82

4.3.1設備樹製作流程… 82

4.3.2準備所需文件 82

4.3.3生成.dts檔 83

4.3.4生成.dtb檔 84

4.4運行修改後的工程 85

4.5本章小結 87

第5章使用DS-5編寫和調試SoC的Linux應用程式 88

5.1啟動DS-5 …88

5.2創建C工程 … 91

5.3編譯工程 94

5.4建立SSH遠端連接 95

5.4.1創建遠端連接 95

5.4.2複製檔到目標板 101

5.4.3運行應用程式 102

5.5遠端調試… 103

5.5.1GDB設置… 103

5.5.2GDB連接和調試… 106

5.6使用 WinSCP實現多系統傳輸檔 108

5.6.1為什麼要使用 WinSCP 108

5.6.2安裝 WinSCP 109

5.6.3建立遠端主機連接 109

5.6.4新建遠端連接 112

5.6.5調用PuTTY終端 112

5.7本章小結… 113

第6章基於虛擬位址映射的Linux硬體程式設計 114

6.1什麼是虛擬位址映射… 114

6.2虛擬位址映射的實現… 115

6.3基於虛擬位址映射的PIO程式設計應用 117

6.3.1PIO外設的虛擬位址映射 117

6.3.2在DS-5中建立PIO應用工程 118

6.3.3添加和包含 HPS庫檔 119

6.3.4添加FPGA側外設硬體資訊… 121

6.3.5PIO IP核介紹 124

6.3.6PIO核寄存器映射 125

6.3.7PIO IP核應用實例 128

6.3.8合理的程式退出機制… 131

6.3.9關於按鍵消抖 133

6.4基於虛擬位址映射的 UART程式設計應用… 134

6.4.1UART核介紹 134

6.4.2UART寄存器映射 134

6.4.3UART IP核應用實例… 136

6.4.4UART IP核板級調試… 144

6.4.5小結 145

6.5基於虛擬位址映射的I2C程式設計應用 145

6.5.1OpenCores I2C IP簡介… 146

6.5.2OpenCores I2C IP寄存器映射 146

6.5.3I2C IP核應用實例 149

6.5.4小結 161

6.6本章小結… 161

第7章基於Linux應用程式的HPS配置

FPGA… 162

7.1製作 Quartus工程 163

7.2生成rbf格式配置資料 163

7.3編譯Linux配置FPGA應用程式… 165

7.4在系統重配置FPGA實驗 … 166

7.5本章小結… 168

第8章編譯嵌入式Linux系統內核 169

8.1安裝 VMware … 170

8.2安裝 Ubuntu系統 171

8.2.1使用現成的 Ubuntu系統鏡像 171

8.2.2安裝全新的 Ubuntu系統 175

8.3下載Linux系統源碼 … 182

8.4設置交叉編譯環境 185

8.5配置和編譯內核… 189

8.5.1快速配置內核 189

8.5.2保存內核設定檔 195

8.5.3編譯內核 195

8.5.4使用內核啟動開發板… 197

8.6本章小結… 199

第9章 Linux設備樹的原理與應用實例 200

9.1什麼是設備樹 200

9.2設備樹基本格式… 201

9.3設備樹載入設備驅動原理… 206

9.4編寫I2C控制器設備節點 … 208

9.5載入 OC_I2C驅動 211

9.6使用RTC … 212

9.7使用EEPROM … 216

9.8編寫SPI控制器設備節點 … 217

9.9本章小結… 219

第10章基於Linux標準檔I/O 的設備讀/寫 … 220

10.1什麼是檔I/O 220

10.2基於檔I/O操作的一般方法 … 220

10.2.1檔描述符 220

10.2.2打開設備(open)… 221

10.2.3向設備寫入資料(write) 221

10.2.4讀取設備資料(read)… 222

10.2.5雜項操作(ioctl)… 222

10.2.6關閉設備(close)… 223

10.2.7其他操作… 223

10.3使用檔I/O實現I2C程式設計 223

10.4本章小結… 226

第11章 FPGA與HPS高速資料交互應用 …227

11.1FPGA與 HPS通信介紹 … 227

11.1.1H2F_LW_AXI_Master橋 … 229

11.1.2H2F_AXI_Master橋 … 229

11.1.3F2H_AXI_Slave橋 230

11.2AXI與 Avalon-MM 匯流排的互聯… 230

11.3Avalon-MM 總線 230

11.4Avalon-MM Slave介面 232

11.5基本Avalon-MM Slave IP設計框架 … 234

11.5.1埠定義… 234

11.5.2寄存器和線網定義 235

11.5.3Avalon匯流排對寄存器的讀/寫 235

11.5.4使用者邏輯使用寄存器… 236

11.6PWM 控制器設計 237

11.6.1PWM IP核埠設計… 238

11.6.2PWM IP核寄存器定義 239

11.6.3讀/寫PWM 寄存器 … 239

11.6.4Platform Designer中封裝PWM IP 241

11.7Avalon-MM Master介面 … 255

11.7.1常見的通用Avalon-MM Master主機 … 256

11.7.2DMA Controller 256

11.7.3Scatter-Gather DMA Controller … 256

11.7.4Modular Scatter-Gather DMA 258

11.7.5Avalon-MM Master範本 … 260

11.8高速資料獲取系統… 263

11.8.1安裝Avalon-MM Master範本 263

11.8.2完善 Qsys系統 … 265

11.8.3修改 Quartus中的 Qsys例化 269

11.8.4測試邏輯設計… 271

11.9本章小結… 275

第12章 Linux驅動編寫與編譯 … 276

12.1基底字元型設備驅動… 276

12.1.1字元型設備驅動框架… 277

12.1.2PWM 控制器驅動的完整源碼 286

12.1.3驅動編譯 Makefile 291

12.1.4Ubuntu下編譯設備驅動 292

12.1.5字元型設備驅動驗證… 293

12.2基於DMA的字元型設備驅動 … 297

12.2.1Avalon-MM Master Write驅動 … 298

12.2.2Avalon-MM Master Write測試 … 304

12.3本章小結… 311

附錄A外設位址映射 312

附錄BHPS GPIO映射 … 314


章節試讀:

隨著積體電路生產工藝的不斷進步,晶片中電晶體的數量也在不斷增加。GAL、PLD、CPLD、FPGA 等一系列的可程式設計邏輯數位積體電路相繼誕生。新型架構晶片的出現,不僅得益於積體電路設計和製造工藝的進步,而且更離不開實際的應用需求。現代數位系統大多都朝小型化、集成化方向發展,而作為一種通用的可程式設計邏輯器件,FPGA 以其靈活的現場可程式設計特性、強大的並行處理能力,在眾多高性能數位系統中都有應用。

鑒於很多高性能的數位系統都離不開FPGA 器件,為了進一步降低硬體系統的複雜度,各大FPGA 廠家都推出了基於各自FPGA 的軟核CPU 方案。通過該方案,設計者能夠將原本需要通過外置CPU 實現的功能,轉移到FPGA 晶片中使用通用邏輯搭建的軟核CPU 來實現,在保證系統功能和性能的前提下,簡化硬體系統設計,提高系統集成度,降低維護難度。但是受限於FPGA 中通用邏輯的可運行最大頻率,各種軟核CPU 的運行頻率都較低,一般不超過200MHz,再加上架構的原因,各種軟核CPU 的軟體生態都遠趕不上各種常用的單片機。因此,基於軟核處理器的應用開發受到了較大的限制。

在此情形下,眾多的FPGA 廠商又相繼推出了集成高性能ARM 硬核處理器和通用可程式設計邏輯的新型架構晶片。這其中就包括以Xilinx的Zynq系列為代表的全可程式設計晶片以及Intel 的可程式設計片上系統晶片(SoC FPGA)。

無論是Xilinx的Zynq系列晶片,還是Intel的SoC FPGA 晶片,兩者的架構都是相似的,都是在同一個晶片上將高性能的ARM Cortex A 系列處理器和FPGA有機結合,並輔以各種常見的外設,實現完整的系統。依賴於ARM 處理器強大的開發工具鏈和軟體生態環境,使用這一類器件進行系統設計,開發和調試的時間將被大大縮短。

得益于Intel大學計畫提供的眾多學習機會和學習資料,筆者從2014年底開始接觸Intel的SoC FPGA,並開始了斷斷續續的學習。但是由於在這之前,作者並沒有任何基於Linux系統開發的基礎,因此學習的過程非常的艱辛,學習的資料主要來SoC FPGA 嵌入式設計和開發教程自網路博文和一些講解Linux開發的書籍。幸好在這個學習的過程中得到了很多朋友的無私幫助,尤其是駿龍科技的工程師,也是本書的第二作者宋士權,多次為我提供最新的一手學習資料,讓我最終堅持了下來。

在決定編寫本書之前,市面上還很難找到系統講解Intel SoC FPGA 開發的書籍,作者作為一個草根創業者,既對該器件的開發抱有極大的興趣,同時又受限於個人的知識積累,因此學習過程本身就是一個不斷試錯的過程。本書從某種意義上來說,可以算做作者學習SoC FPGA 開發的學習筆記。由於作者能力有限,雖然在寫作過程中投入了大量的精力和時間,但錯誤與不妥之處還是在所難免,讀者在閱讀本書時如果發現任何疏漏,可及時回饋給我們,以便我們及時更正。讀者可以通過本書配套的網站www.corecourse.cn留言回饋在閱讀本書的過程中所發現的問題,或者在學習過程中遇到的疑惑;同時,也可以在該網站上以本書名作為關鍵字,搜索與本書相關的軟硬體配套資源。


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。