FPGA 的 AI之路:Intel FPGA 開發技術昇華實戰

張瑞 編著

買這商品的人也買了...

商品描述

Intel依然強大!FPGA設計是現代電子業的奇蹟,用軟體設計的方式來完成硬體核心的佈建,加上人工智慧更是如虎添翼。
 
本書主要從技術基礎、開發方法和人工智慧應用三個方面介紹FPGA的開發工具與開發技巧,圍繞FPGA的基礎知識,Verilog硬體描述語言,FPGA在Quartus中的開發流程,FPGA的SOPC、HLS、OpenCL設計方法,FPGA在人工智慧領域的應用等方面進行闡述,使開發人員能理解FPGA的核心知識,掌握FPGA的開發方法和開發工具。
以FPGA基礎知識為切入點,透過對開發方法和設計思路的講解,幫助讀者快速掌握FPGA開發技術及FPGA在人工智慧上的應用。

全書包含FPGA技術基礎篇、FPGA開發方法篇和人工智慧應用篇三大篇,內容如下 
■ 第一部分 FPGA的基礎知識及開發流程
首先,介紹了FPGA的基本概念和入門知識,從FPGA的抽象化解釋,到FPGA如何從早期的邏輯門器件演變為當前的現場可程式化邏輯閘陣列的整個發展歷程,讓讀者明白FPGA的概念及特點。其次,介紹了FPGA的內部結構,進一步解讀FPGA的晶片內建資源,包括查閱資料表、可程式化暫存器、自我調整邏輯模組、內部儲存模組和時脈網路等,讓讀者能夠從FPGA的最基本邏輯單元和最底層結構的角度加深對FPGA的瞭解。然後,介紹了FPGA的Verilog HDL語言開發方法,包括基本語法,如if-else敘述、case敘述等和進階開發技巧,如鎖相器和暫存器的區別、阻塞與非阻塞的區別,並且根據編碼器、解碼器、雙向暫存器和上浮排序等實例具體介紹Verilog HDL語言的開發。最後,介紹了FPGA在Quartus Prime軟體中的開發流程,結合FPGA基礎知識、FPGA的內部結構及Verilog硬體描述語言系列內容,形成了一個基本的FPGA開發知識系統。

■ 第二部分 FPGA開發方法和工具
在對第一部分內容進行深化的同時,進一步介紹了針對軟體工程師的FPGA開發方法。首先,介紹了FPGA傳統開發過程中使用到的分析與偵錯工具,如綜合工具、約束工具、時序分析工具、偵錯工具等,介紹了編譯報告和網路表查看工具。其次,介紹了基於FPGA的可程式化系統單晶片(SOPC)的建構方法及其軟硬體的開發流程,介紹了IP核心與Nios處理器。然後,介紹了使用高層次綜合設計的FPGA設計工具HLS進行FPGA開發的方法,包括基於HLS的開發流程、程式最佳化、Modelsim模擬及HLS多種介面的使用場景分析。最後,介紹了在異質計算場景下,如何使用OpenCL進行FPGA開發的方法,包括主機端和裝置端的程式編寫。

■ 第三部分 FPGA開發的擴充
主要介紹FPGA在人工智慧領域的應用。首先,介紹了人工智慧的發展歷史和深度學習技術的基礎,包括常用的深度學習網路模型和程式設計框架。其次,介紹了深度學習的概念、基本組成及深度學習的應用挑戰,包括神經網路基本組成、常見的神經網路模型和資料集。最後,以電腦機器視覺為例,介紹了如何使用英特爾OpenVINO工具在英特爾FPGA上部署深度學習推理計算。

作者簡介

張瑞
現任英特爾FPGA中國創新中心總經理,負責英特爾中國區晶元對外合作戰略以及自動駕駛和FPGA等領域的生態建設,同時兼任中國汽車電子產業聯盟副理事長和副秘書長的職務,致力於推動包括5G、機器視覺、感測器融合,和自主決策等多項關鍵自動駕駛相關技術。

目錄大綱

第一部分  FPGA技術基礎篇
第1章  FPGA的特點及其歷史

1.1  無處不在的FPGA    
1.2  創造性地解釋FPGA    
1.3  FPGA的可訂製性    
1.4  早期的邏輯功能實現    
1.5  可簡單程式設計邏輯器件(PAL)    
1.6  可程式化邏輯器件(PLD)    
1.7  複雜可程式化邏輯器件(CPLD)    
1.8  現場可程式化邏輯閘陣列(FPGA)    
第2章  FPGA架構    
2.1  FPGA全晶片架構    
2.2  FPGA邏輯陣列模組    
2.3  FPGA嵌入式儲存    
2.4  時鐘網路    
2.5  DSP模組    
2.6  FPGA佈線    
2.7  FPGA程式設計資源    
2.8  FPGA I/O元件    
2.9  英特爾SoC FPGA    
第3章  Verilog HDL    
3.1  Verilog HDL概述    
3.2  Verilog HDL基礎知識    
3.3  Verilog HDL的基本語法    
3.4  Verilog HDL進階基礎知識    
3.5  Verilog HDL開發實例篇    
第4章  Quartus Prime基本開發流程    
4.1  Quartus Prime軟體介紹    
4.2  Quartus Prime開發流程    
4.3  實驗指導    
第二部分  FPGA開發方法篇
第5章  FPGA設計工具  
 
5.1  編譯報告    
5.2  網路表查看工具    
5.3  物理約束    
5.4  時序分析工具    
5.5  耗電分析工具        
5.6  晶片內建偵錯工具    
第6章  基於英特爾FPGA的SOPC開發    
6.1  SOPC技術簡介    
6.2  IP核心與Nios處理器    
6.3  建構SOPC系統        
6.4  SOPC開發實戰    
第7章  基於英特爾FPGA的HLS開發    
7.1  HLS的基本概念    
7.2  HLS的基本開發流程    
7.3  HLS的多種介面及其使用場景    
7.4  HLS簡單的最佳化技巧    
第8章  基於英特爾FPGA的OpenCL異質技術    
8.1  OpenCL基本概念    
8.2  基於英特爾FPGA的OpenCL開發環境    
8.3  主機端Host程式設計    
8.4  裝置端Kernel程式設計流程    
第三部分  人工智慧應用篇
第9章  人工智慧簡介  
 
9.1  FPGA在人工智慧領域的獨特優勢    
9.2  人工智慧的概念    
9.3  人工智慧的發展史    
9.4  人工智慧的應用    
9.5  人工智慧的限制    
9.6  人工智慧的分類    
9.7  人工智慧的發展及其基礎    
第10章  深度學習
10.1  深度學習的優勢    
10.2  深度學習的概念    
10.3  神經網路的基本組成    
10.4  常見的深度學習資料集    
10.5  深度學習的應用挑戰    
第11章  基於英特爾FPGA進行深度學習推理    
11.1  視訊監控    
11.2  視覺系統架構    
11.3  電腦視覺的常見任務    
11.4  電腦視覺的基礎    
11.5  使用OpenVINO工具在英特爾FPGA上部署深度學習推理應用