FPGA的人工智能之路:基于Intel FPGA開發(fā)的入門到實(shí)踐
定 價(jià):98 元
叢書名:英特爾FPGA中國(guó)創(chuàng)新中心系列叢書
- 作者:張瑞編著
- 出版時(shí)間:2020/12/1
- ISBN:9787121402401
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP332.1
- 頁(yè)碼:12,312頁(yè)
- 紙張:膠版紙
- 版次:1
- 開本:24開
本書主要從技術(shù)基礎(chǔ)、開發(fā)方法和人工智能應(yīng)用三個(gè)方面介紹FPGA的開發(fā)工具與開發(fā)技巧,圍繞FPGA的基礎(chǔ)知識(shí),Verilog硬件描述語(yǔ)言,F(xiàn)PGA在Quartus 中的開發(fā)流程,F(xiàn)PGA的SOPC、HLS、OpenCL設(shè)計(jì)方法,F(xiàn)PGA在人工智能領(lǐng)域的應(yīng)用等方面進(jìn)行闡述,使開發(fā)人員能理解FPGA的核心知識(shí),掌握FPGA的開發(fā)方法和開發(fā)工具。全書包含F(xiàn)PGA技術(shù)基礎(chǔ)篇、FPGA開發(fā)方法篇和人工智能應(yīng)用篇三大板塊,共計(jì)11章,以FPGA基礎(chǔ)知識(shí)為切入點(diǎn),通過(guò)對(duì)開發(fā)方法和設(shè)計(jì)思路的講解,幫助讀者快速掌握FPGA開發(fā)技術(shù)及FPGA在人工智能上的應(yīng)用。
張瑞先生現(xiàn)任英特爾FPGA中國(guó)創(chuàng)新中心總經(jīng)理,總體負(fù)責(zé)英特爾中國(guó)區(qū)芯片對(duì)外合作戰(zhàn)略以及自動(dòng)駕駛和FPGA等領(lǐng)域的生態(tài)建設(shè)。同時(shí)兼任(中國(guó))汽車電子產(chǎn)業(yè)聯(lián)盟副理事長(zhǎng)和副秘書長(zhǎng)的職務(wù),致力于推動(dòng)包括5G、機(jī)器視覺(jué)、傳感器融合和自主決策等多項(xiàng)關(guān)鍵自動(dòng)駕駛相關(guān)技術(shù)在中國(guó)的落地和合作。張瑞先生擁有多年****半導(dǎo)體公司的從業(yè)經(jīng)歷。在加入英特爾之前,曾在瑞薩電子和飛思卡爾半導(dǎo)體(現(xiàn)恩智浦半導(dǎo)體)擔(dān)任多個(gè)關(guān)鍵技術(shù)和管理職務(wù)。
□□部分 FPGA技術(shù)基礎(chǔ)篇
□□章 FPGA的特點(diǎn)及其歷史00□
1.1 無(wú)處不在的FPGA00□
1.□ 創(chuàng)造性地解釋FPGA003
1.□.1 珠串法004
1.□.□ 樂(lè)高積木法004
1.3 FPGA的可定制性005
1.4 早期的邏輯功能實(shí)現(xiàn)006
1.4.1 數(shù)字設(shè)計(jì)與TTL邏輯007
1.4.□ 從TTL到可編程邏輯008
1.5 可簡(jiǎn)單編程邏輯器件(PAL)009
1.5.1 可編程陣列邏輯優(yōu)勢(shì)009
1.5.□ PAL編程技術(shù)010
1.6 可編程邏輯器件(PLD)011
1.7 復(fù)雜可編程邏輯器件(CPLD)01□
1.7.1 普通CPLD邏輯塊的特點(diǎn)01□
1.7.□ CPLD的一般優(yōu)勢(shì)013
1.7.3 非易失FPGA014
1.8 現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA)015
第□章 FPGA架構(gòu)017
□.1 FPGA全芯片架構(gòu)017
□.□ FPGA邏輯陣列模塊018
□.□.1 查找表(LUT)019
□.□.□ 可編程寄存器019
□.□.3 LABs和LE:更進(jìn)一步的觀察0□□
□.□.4 自適應(yīng)邏輯模塊(ALM)0□3
□.3 FPGA嵌入式存儲(chǔ)0□4
□.3.1 存儲(chǔ)資源的利用0□4
□.3.□ M9K資源介紹0□5
□.4 時(shí)鐘網(wǎng)絡(luò)0□7
□.4.1 FPGA時(shí)鐘架構(gòu)0□7
□.4.□ PLL(鎖相環(huán))0□8
□.5 DSP模塊0□8
□.6 FPGA布線0□9
□.7 FPGA編程資源030
□.8 FPGA I/O元件031
□.8.1 典型的I/O元件邏輯031
□.8.□ 高速收發(fā)器03□
□.9 英特爾FPGA SoC033
第3章 Verilog HDL035
3.1 Verilog HDL概述035
3.1.1 Verilog HDL的介紹035
3.1.□ Verilog HDL的發(fā)展歷史036
3.1.3 Verilog HDL的相關(guān)術(shù)語(yǔ)037
3.1.4 Verilog HDL的開發(fā)流程038
3.□ Verilog HDL基礎(chǔ)知識(shí)040
3.□.1 程序結(jié)構(gòu)040
3.□.□ 程序?qū)嵗?41
3.□.3 數(shù)據(jù)類型041
3.□.4 模塊例化043
3.□.5 運(yùn)算符044
3.3 Verilog HDL的基本語(yǔ)法048
3.3.1 if-else語(yǔ)句048
3.3.□ case語(yǔ)句049
3.3.3 for循環(huán)050
3.3.4 Verilog HDL常用關(guān)鍵字匯總050
3.4 Verilog HDL高級(jí)知識(shí)點(diǎn)051
3.4.1 阻塞與非阻塞的區(qū)別051
3.4.□ assign語(yǔ)句和always語(yǔ)句的區(qū)別054
3.4.3 鎖存器與寄存器的區(qū)別054
3.4.4 狀態(tài)機(jī)055
3.5 Verilog HDL開發(fā)實(shí)例篇059
3.5.1 漢明碼編碼器059
3.5.□ 數(shù)碼管譯碼器063
3.5.3 雙向移位寄存器066
3.5.4 冒泡排序069
第4章 Quartus Prime基本開發(fā)流程081
4.1 Quartus Prime軟件介紹081
4.1.1 英特爾FPGA軟件與硬件簡(jiǎn)介081
4.1.□ Quartus Prime標(biāo)準(zhǔn)版設(shè)計(jì)軟件簡(jiǎn)介083
4.1.3 Quartus Prime主窗口界面085
4.1.4 Quartus Prime默認(rèn)操作環(huán)境085
4.1.5 Quartus Prime主工具欄086
4.1.6 Quartus Prime內(nèi)置幫助系統(tǒng)087
4.1.7 Quartus Prime可分離的窗口088
4.1.8 Quartus Prime任務(wù)窗口088
4.1.9 Quartus Prime自定義任務(wù)流程090
4.□ Quartus Prime開發(fā)流程091
4.□.1 典型的FPGA開發(fā)流程091
4.□.□ 創(chuàng)建Quartus Prime工程094
4.□.3 設(shè)計(jì)輸入100
4.□.4 編譯106
4.□.5 分配管腳111
4.□.6 仿真11□
4.□.7 器件配置113
4.3 實(shí)驗(yàn)指導(dǎo)116
4.3.1 流水燈實(shí)驗(yàn)116
4.3.□ 按鍵實(shí)驗(yàn)1□8
4.3.3 PLL實(shí)驗(yàn)136
第二部分 PGA開發(fā)方法篇
第5章 FPGA設(shè)計(jì)工具145
5.1 編譯報(bào)告145
5.1.1 源文件讀取報(bào)告147
5.1.□ 資源使用報(bào)告147
5.1.3 動(dòng)態(tài)綜合報(bào)告149
5.□ 網(wǎng)表查看工具149
5.□.1 RTL Viewer149
5.□.□ Technology Map Viewer150
5.□.3 State Machine Viewer15□
5.3 物理約束153
5.3.1 物理約束設(shè)計(jì)153
5.3.□ Assignment Editor154
5.3.3 QSF文件設(shè)置156
5.4 時(shí)序分析工具158
5.4.1 TimeQuest Timing Analyzer的GUI圖形交互界面158
5.4.□ 任務(wù)窗格(Tasks)159
5.4.3 創(chuàng)建時(shí)序數(shù)據(jù)庫(kù)(Netlist Setup)159
5.4.4 常用的約束報(bào)告160
5.4.5 報(bào)告窗格(Report Pane)161
5.4.6 時(shí)序異常(Exceptions)16□
5.4.7 關(guān)于SDC的□后說(shuō)明164
5.5 功耗分析工具164
5.5.1 功耗和熱考慮因素164
5.5.□ 功耗分析工具比較165
5.5.3 EPE電子表格165
5.5.4 Power Analyzer166
5.6 片上調(diào)試工具167
5.6.1 Quartus Prime軟件中的片上調(diào)試工具167
5.6.□ Signal Probe Pin(信號(hào)探針)168
5.6.3 SignalTap Ⅱ嵌入式邏輯分析儀170
第6章 基于英特爾FPGA的SOPC開發(fā)175
6.1 SOPC技術(shù)簡(jiǎn)介175
6.□ IP核與Nios處理器176
6.□.1 基于IP硬核的SOPC176
6.□.□ 基于IP軟核的SOPC177
6.3 構(gòu)建SOPC系統(tǒng)178
6.3.1 Platform Designer178
6.3.□ SOPC設(shè)計(jì)工具180
6.4 SOPC開發(fā)實(shí)戰(zhàn)181
6.4.1 SOPC系統(tǒng)設(shè)計(jì)181
6.4.□ SOPC硬件設(shè)計(jì)18□
6.4.3 SOPC軟件設(shè)計(jì)199
第7章 基于英特爾FPGA的HLS開發(fā)□03
7.1 HLS的基本概念□03
7.□ HLS的基本開發(fā)流程□04
7.□.1 HLS的安裝□04
7.□.□ 核心算法代碼□05
7.□.3 功能驗(yàn)證□05
7.□.4 生成硬件代碼□06
7.□.5 模塊代碼優(yōu)化□08
7.□.6 HLS的Modelsim仿真□11
7.□.7 集成HLS代碼到FPGA系統(tǒng)□11
7.□.8 HDL實(shí)例化□1□
7.□.9 添加IP路徑到Qsys系統(tǒng)□13
7.3 HLS的多種接口及其使用場(chǎng)景□15
7.3.1 標(biāo)準(zhǔn)接口□15
7.3.□ 隱式的Avalon MM Master接口□17
7.3.3 顯式的Avalon MM Master接口□19
7.3.4 Avalon MM Slave接口□□0
7.3.5 Avalon Streaming接口□□4
7.4 HLS簡(jiǎn)單的優(yōu)化技巧□□6
第8章 基于英特爾FPGA的OpenCL異構(gòu)技術(shù)□□7
8.1 OpenCL基本概念□□7
8.1.1 異構(gòu)計(jì)算簡(jiǎn)介□□7
8.1.□ OpenCL基礎(chǔ)知識(shí)□□8
8.1.3 OpenCL語(yǔ)言簡(jiǎn)介□31
8.□ 基于英特爾FPGA的OpenCL開發(fā)環(huán)境□34
8.□.1 英特爾FPGA的OpenCL解決方案□34
8.□.□ 系統(tǒng)要求□36
8.□.3 環(huán)境安裝□37
8.□.4 設(shè)置環(huán)境變量□37
8.□.5 初始化并檢測(cè)OpenCL環(huán)境□38
8.3 主機(jī)端Host程序設(shè)計(jì)□39
8.3.1 建立Platform環(huán)境□39
8.3.□ 創(chuàng)建Program與Kernel□4□
8.3.3 Host與Kernel的交互□43
8.3.4 OpenCL的內(nèi)核執(zhí)行□46
8.3.5 Host端程序示例□47
8.4 設(shè)備端Kernel程序設(shè)計(jì)流程□48
8.4.1 Kernel編譯□48
8.4.□ 功能驗(yàn)證(-march=emulator,x86平臺(tái)仿真)□53
8.4.3 靜態(tài)分析(-rtl,分析HTML報(bào)告)□53
8.4.4 動(dòng)態(tài)分析(-profile)□55
第三部分 人工智能應(yīng)用篇
第9章 人工智能簡(jiǎn)介□59
9.1 FPGA在人工智能領(lǐng)域的獨(dú)特優(yōu)勢(shì)□59
9.1.1 確定性低延遲□60
9.1.□ 靈活可配置□60
9.1.3 針對(duì)卷積神經(jīng)網(wǎng)絡(luò)的特殊優(yōu)化□61
9.□ 人工智能的概念□61
9.3 人工智能的發(fā)展史□6□
9.3.1 早期的興起與低潮□6□
9.3.□ 人工智能的誕生□63
9.3.3 人工智能的“冬天”□63
9.3.4 交叉學(xué)科的興起□63
9.3.5 云計(jì)算與大數(shù)據(jù)時(shí)代的來(lái)臨□64
9.4 人工智能的應(yīng)用□64
9.4.1 智能決策□64
9.4.□ □優(yōu)路徑規(guī)劃□64
9.4.3 智能計(jì)算系統(tǒng)□65
9.5 人工智能的限制□65
9.6 人工智能的分類□65
9.6.1 弱人工智能□66
9.6.□ 強(qiáng)人工智能□66
9.6.3 超人工智能□66
9.7 人工智能的發(fā)展及其基礎(chǔ)□67
9.7.1 矩陣論□67
9.7.□ 應(yīng)用統(tǒng)計(jì)□68
9.7.3 回歸分析與方差分析□68
9.7.4 數(shù)值分析□68
□□0章 深度學(xué)習(xí)□69
10.1 深度學(xué)□□優(yōu)勢(shì)□69
10.□ 深度學(xué)□□概念□71
10.3 神經(jīng)網(wǎng)絡(luò)的基本構(gòu)成□7□
10.3.1 神經(jīng)元的基本原理□73
10.3.□ 全連接神經(jīng)網(wǎng)絡(luò)□74
10.3.3 卷積神經(jīng)網(wǎng)絡(luò)□75
10.3.4 常見(jiàn)的卷積神經(jīng)網(wǎng)絡(luò)□77
10.4 常見(jiàn)的深度學(xué)習(xí)數(shù)據(jù)集□79
10.5 深度學(xué)□□應(yīng)用挑戰(zhàn)□80
□□1章 基于英特爾FPGA進(jìn)行深度學(xué)習(xí)推理□8□
11.1 □□監(jiān)控□8□
11.□ 視覺(jué)系統(tǒng)架構(gòu)□83
11.□.1 物理特征的捕捉□83
11.□.□ 預(yù)處理□83
11.□.3 高級(jí)處理□84
11.3 計(jì)算機(jī)視覺(jué)的常見(jiàn)任務(wù)□85
11.3.1 圖形圖像分割□86
11.3.□ 對(duì)象檢測(cè)□86
11.3.3 對(duì)象分類□87
11.3.4 面部識(shí)別□87
11.3.5 其他任務(wù)□88
11.4 計(jì)算機(jī)視覺(jué)的基礎(chǔ)□89
11.4.1 深度學(xué)習(xí)框架□90
11.4.□ OpenCL□91
11.4.3 OpenCV□9□
11.4.4 OpenVINO□9□
11.5 使用OpenVINO工具在英特爾FPGA上部署深度學(xué)習(xí)推理應(yīng)用□93
11.5.1 OpenVINO工具□93
11.5.□ 端到端機(jī)器學(xué)習(xí)□95
11.5.3 OpenVINO安裝□95
11.5.4 模型優(yōu)化器□97
11.5.5 推理引擎30□
后記313