相關主題
商品描述
《EDA技術及應用實踐》課程的內容就是讓學生了解一類器件(CPLD/FPGA),熟悉一種語言(VHDL/Verilog HDL),學會一種軟件(MAX+plusII /QuartusII/ISE/Vivado),最終的目標就是會用CPLD/FPGA設計一般的數字模塊及小系統,以及人工神經網絡的設計。課程內容涉及三個方面,一是作為設計載體的大規模可編程邏輯器件的基本結構及其基本原理;二是作為主要表達方式的硬件描述語言的基本結構、基本語法及其優化設計方法;三是作為設計工具的開發軟件、基礎實驗、高階實驗及實驗開發系統的使用;三個方面相輔相成共同構成本門課程的主要內容,重點是第二和第三部分系統邏輯描述的硬件描述語言、應用實踐。
目錄大綱
1 EDA技術概述 001
1.1 EDA技術及發展 001
1.1.1 CAD階段 002
1.1.2 CAE階段 002
1.1.3 EDA階段 002
1.1.4 EDA技術特征 003
1.1.5 EDA技術優勢 003
1.1.6 EDA技術發展趨勢 004
1.2 EDA設計流程 004
1.2.1 自底向上設計 005
1.2.2 自頂向下設計 005
1.3 數字系統設計流程 006
1.3.1 設計輸入 007
1.3.2 綜合 007
1.3.3 布局布線 009
1.3.4 仿真 009
1.3.5 編程配置 010
1.4 硬件描述語言 010
1.5 可編輯邏輯器件 010
1.5.1 PLD分類 011
1.5.2 PROM 012
1.5.3 PLA 012
1.5.4 PAL 012
1.5.5 GAL 013
1.5.6 CPLD 013
1.5.7 FPGA 014
1.5.8 CPLD與FPGA的區別 018
1.6 FPGA技術的發展現狀及動態 019
1.6.1 FPGA技術的發展現狀 019
1.6.2 FPGA技術未來的發展動態 023
1.7 常用的EDA工具 027
1.8 習題 028
2 Verilog HDL基礎知識 029
2.1 什麼是Verilog HDL 029
2.2 Verilog HDL的主要特征 030
2.3 Verilog HDL程序模塊結構 030
2.3.1 模塊聲明 031
2.3.2 端口定義 032
2.3.3 I/O說明 033
2.3.4 內部信號聲明 033
2.3.5 功能定義 034
2.4 Verilog HDL的詞法 035
2.4.1 標識符、空白符和註釋 035
2.4.2 常量 036
2.4.3 變量 038
2.5 Verilog HDL的運算符 040
2.5.1 算術運算符 040
2.5.2 邏輯運算符 040
2.5.3 關系運算符 041
2.5.4 等值運算符 041
2.5.5 位運算符 042
2.5.6 縮減運算符 042
2.5.7 移位運算符 043
2.5.8 條件運算符 043
2.5.9 位並接運算符 044
2.5.10 運算符的優先級 044
2.6 Verilog HDL的基本語句 045
2.6.1 賦值語句 045
2.6.2 條件語句 046
2.6.3 循環語句 048
2.6.4 結構聲明語句 049
2.6.5 編譯預處理語句 053
2.7 Verilog數字系統的設計風格 055
2.7.1 結構描述方式 055
2.7.2 行為描述方式 056
2.7.3 數據流描述方式 057
2.8 習題 057
3 組合邏輯電路Verilog設計 058
3.1 Verilog HDL門級建模 058
3.1.1 常用門級說明 058
3.1.2 門級模塊調用 059
3.1.3 門級結構描述實現組合邏輯電路 060
3.2 Verilog HDL數據流建模 064
3.2.1 連續賦值語句 065
3.2.2 利用連續賦值語句描述簡單的數字電路 065
3.3 Verilog HDL的行為級建模 066
3.3.1 過程語句 067
3.3.2 語句塊 070
3.4 分層次電路設計方法 071
3.4.1 設計方法 071
3.4.2 模塊實例引用語句 072
3.5 常用的組合電路設計 073
3.5.1 基本門電路設計 074
3.5.2 三態門電路設計 074
3.5.3 半加器電路設計 075
3.5.4 4選1選擇器電路設計 076
3.5.5 編碼器電路設計 079
3.5.6 譯碼器電路設計 081
3.6 習題 082
4 時序邏輯電路Verilog設計 084
4.1 時序電路建模基礎 084
4.1.1 時序電路的建模方式 084
4.1.2 阻塞型賦值語句 085
4.1.3 非阻塞型賦值語句 086
4.1.4 事件控制語句 088
4.2 觸發器 089
4.2.1 基本觸發器 089
4.2.2 異步復位和時鐘使能的D觸發器 090
4.2.3 同步復位控制的D觸發器 091
4.3 鎖存器 092
4.3.1 基本鎖存器 092
4.3.2 含清0控制的鎖存器 092
4.3.3 If結構不完整 093
4.3.4 case結構不完整 094
4.4 移位寄存器 095
4.4.1 8位移位寄存器 095
4.4.2 16位環形移位寄存器 096
4.4.3 串行輸入並行輸出寄存器 097
4.4.4 並行輸入串行輸出移位寄存器 097
4.5 計數器 098
4.5.1 4位二進制數加法計數器 098
4.5.2 異步復位同步計數使能和可預置型十進制計數器 098
4.5.3 環形計數器 099
4.5.4 約翰遜計數器 099
4.6 習題 100
5 有限狀態機Verilog設計 101
5.1 有限狀態機的基本概念 101
5.1.1 有限狀態機的基本結構 102
5.1.2 有限狀態機的分類 103
5.1.3 有限狀態機的狀態圖表示法 105
5.1.4 有限狀態機的設計步驟 107
5.2 有限狀態機的描述方法 107
5.2.1 狀態圖的建立過程 107
5.2.2 狀態圖的描述方法 110
5.3 有限狀態機的狀態編碼 114
5.4 有限狀態機的設計舉例 115
5.4.1 自動售貨機設計 115
5.4.2 交通燈控制設計 122
5.4.3 A/D采樣控制設計 125
5.5 習題 127
6 深度神經網絡FPGA設計 129
6.1 人工智能、機器學習和深度學習 129
6.2 神經網絡的基本原理 130
6.2.1 神經元的基本原理 130
6.2.2 神經網絡的基本原理 132
6.3 神經網絡 136
6.3.1 全連接神經網絡 136
6.3.2 卷積神經網絡 141
6.3.3 卷積神經網絡舉例 150
6.4 卷積神經網絡的設計 161
6.4.1 卷積算子設計 161
6.4.2 全連接算子設計 163
6.4.3 池化算子設計 165
6.5 基於HLS的手寫體識別設計 167
6.5.1 神經網絡的搭建與訓練 167
6.5.2 神經網絡權重提取 169
6.5.3 FPGA上神經網絡的搭建與推理 170
6.6 當前挑戰和未來展望 175
7 Quartus Prime軟件應用 177
7.1 概述 177
7.2 Quartus Prime軟件下載和安裝 178
7.2.1 Quartus Prime軟件下載 178
7.2.2 Quartus Prime軟件安裝 178
7.3 Quartus Prime軟件基本使用流程 182
7.3.1 創建工程 182
7.3.2 創建項目 185
7.3.3 RTL視圖 187
7.3.4 ModelSim波形仿真 188
7.3.5 University Program VWF波形仿真 194
8 仿真驗證與Testbench編寫 197
8.1 Verilog電路仿真和驗證概述 197
8.2 Verilog測試程序設計基礎 197
8.2.1 Testbech及其結構 197
8.2.2 測試平臺舉例 199
8.3 與仿真相關的系統任務 201
8.3.1 $display和$write 201
8.3.2 $monitor和$stobe 203
8.3.3 $time和$reltime 204
8.3.4 $finish和$stop 205
8.3.5 $readmemh和$readmem 207
8.3.6 $random 208
8.4 典型測試向量的設計 208
8.4.1 變量初始化 208
8.4.2 數據信號測試向量的產生 209
8.4.3 時鐘信號測試向量的產生 209
8.4.4 總線信號測試向量的產生 210
9 數字系統設計應用實踐 212
9.1 加法器原理圖設計及波形仿真 212
9.1.1 加法器原理介紹 212
9.1.2 半加器設計實現 213
9.1.3 全加器設計實現 223
9.2 計數器Verilog設計及Testbench仿真 226
9.2.1 輸入文件 226
9.2.2 編譯與綜合 227
9.2.3 仿真測試 228
9.3 流水燈ModelSim設計及仿真 233
9.3.1 建立ModelSim工程 233
9.3.2 編譯仿真文件 236
9.3.3 配置仿真環境 236
9.4 分頻器設計及仿真 240
9.4.1 偶數分頻器 240
9.4.2 奇數分頻器 241
9.4.3 半分頻器 242
9.4.4 仿真測試 244
9.5 音樂蜂鳴器設計及仿真 245
9.5.1 設計的基本原理 245
9.5.2 Verilog設計實現 247
9.5.3 仿真測試 251
9.6 呼吸燈設計與仿真 254
9.6.1 設計的基本原理 254
9.6.2 Verilog設計實現 254
9.6.3 仿真測試 257
9.7 紅外線遙控系統的設計 258
9.7.1 設計的基本原理 258
9.7.2 Verilog設計實現 260
9.7.3 仿真測試 270
9.8 宏功能模塊/IP核的應用 271
9.8.1 IP核的定義及存在形式 271
9.8.2 十二進制加法計數器 272
9.8.3 LPM_RAM宏模塊的設置與使用 276
10 人工智能邊緣實驗基礎平臺介紹 283
10.1 概述 283
10.1.1 產品特點 283
10.1.2 主要用途以及使用場景 283
10.1.3 為客戶帶來的價值 284
10.1.4 傳統教學的延伸與拓展 284
10.1.5 產品形態 284
10.1.6 遠程調試工具 284
10.2 系統結構 285
10.3 安裝及環境部署 286
10.3.1 部署方式A:配合雲管系統 286
10.3.2 部署方式B:不配合雲管系統 287
10.4 管理軟件 287
10.4.1 登錄界面 287
10.4.2 開發板狀態統計 287
10.4.3 節點管理 288
10.4.4 FPGA開發板管理 289
10.4.5 告警 289
10.4.6 用戶管理 289
10.4.7 實驗管理平臺對接 290
11 EDA基礎實驗 291
11.1 數據選擇器實驗 291
11.1.1 實驗目的 291
11.1.2 實驗環境 291
11.1.3 實驗內容 291
11.1.4 實驗原理 291
11.1.5 實驗步驟 292
11.2 3-8譯碼器實驗 307
11.2.1 實驗目的 307
11.2.2 實驗環境 307
11.2.3 實驗內容 308
11.2.4 實驗原理 308
11.2.5 實驗步驟 308
11.3 D觸發器實驗 320
11.3.1 實驗目的 320
11.3.2 實驗環境 320
11.3.3 實驗內容 320
11.3.4 實驗原理 321
11.3.5 實驗步驟 321
11.4 串行數據檢測器實驗 333
11.4.1 實驗目的 333
11.4.2 實驗環境 333
11.4.3 實驗內容 333
11.4.4 實驗原理 333
11.4.5 實驗步驟 333
11.5 順序脈沖發生器實驗 348
11.5.1 實驗目的 348
11.5.2 實驗環境 348
11.5.3 實驗內容 348
11.5.4 實驗原理 348
11.5.5 實驗步驟 349
11.6 序列信號發生器實驗 363
11.6.1 實驗目的 363
11.6.2 實驗環境 363
11.6.3 實驗內容 363
11.6.4 實驗原理 363
11.6.5 實驗步驟 363
11.7 分頻器實驗 375
11.7.1 實驗目的 375
11.7.2 實驗環境 375
11.7.3 實驗內容 376
11.7.4 實驗原理 376
11.7.5 實驗步驟 376
附錄A Verilog關鍵字總結 390
參考文獻 418
