EDA 技術與 Verilog HDL, 4/e
黃繼業 黃汐威 潘 松 陳 龍
買這商品的人也買了...
-
$322嵌入式 Linux C 語言完全精通教程
-
$505基於 NiosⅡ 的嵌入式 SoPC 系統設計與 Verilog 開發實例 (Embedded SoPC Design with Nios II Processor and Verilog Examples)
-
$500$390 -
$768$730 -
$408$388 -
$602嵌入式 C語言自我修養 — 從芯片、編譯器到操作系統
-
$354$336 -
$720$612 -
$654$621 -
$560計算機系統開發與優化實戰
-
$414$393 -
$250數字電路基礎與實踐
-
$474$450 -
$534$507 -
$678labuladong 的算法筆記
-
$774$735 -
$474$450 -
$474$450 -
$356通信系統實戰筆記 無處不在的信號處理
-
$234$222 -
$414$393 -
$216$205 -
$551SoC 設計基礎教程 — 技術實現
-
$500SoC 設計基礎教程 — 系統架構
-
$454數字集成電路驗證從入門到精通
相關主題
商品描述
"《EDA技術與Verilog HDL(第4版)》系統地介紹了EDA技術和Verilog HDL硬件描述語言,將Verilog HDL的基礎知識、編程技巧和實用方法與實際工程開發技術在Quartus/Vivado上很好地結合起來,使讀者通過《EDA技術與Verilog HDL(第4版)》的學習能迅速瞭解並掌握EDA技術的基本理論和工程開發實用技術,為後續的深入學習和發展打下堅實的理論與實踐基礎。 依據高校課堂教學和實驗操作的規律與要求,並以提高學生的實際工程設計能力和自主創新能力為目的,合理編排全書內容。全書共分為7個部分:EDA技術的概述、VHDL語法知識及其實用技術、Quartus/Vivado及IP模塊的詳細使用方法、有限狀態機設計技術、16/32位實用CPU設計技術及創新實踐項目、基於ModelSim的Test Bench模擬技術、以及基於MATLAB和DSP Builder平臺的EDA設計技術及大量實用系統設計示例。除個別章節外,大多數章節都安排了相應的習題和大量針對性強的實驗與設計項目。書中列舉的VHDL示例都經編譯通過或經硬件測試通過。 本書主要面向高等院校本、專科的EDA技術和VHDL語言基礎課,推薦作為電子信息類、通信、自動化、電腦類、電子對抗、儀器儀表、人工智能等學科專業和相關實驗指導課的教材用書或主要參考書,同時也可作為電子設計競賽、FPGA開發應用的自學參考書。"
目錄大綱
目 錄
第1章 概述 1
1.1 EDA技術 1
1.2 EDA技術應用對象 3
1.3 常用的硬件描述語言 4
1.4 EDA技術的優勢 6
1.5 面向FPGA的開發流程 7
1.5.1 設計輸入 7
1.5.2 綜合 8
1.5.3 適配(佈局布線) 10
1.5.4 模擬與時序分析 10
1.5.5 RTL描述 11
1.6 可編程邏輯器件 11
1.6.1 PLD的分類 11
1.6.2 PROM可編程原理 12
1.6.3 GAL 14
1.7 CPLD的結構與可編程原理 16
1.8 FPGA的結構與工作原理 18
1.8.1 查找表邏輯結構 18
1.8.2 Cyclone 4E/10 LP系列器件的結構原理 19
1.8.3 內嵌Flash的FPGA器件 22
1.8.4 Artix-7系列FPGA的基本結構 22
1.8.5 主要FPGA生產廠商 25
1.9 硬件測試技術 26
1.9.1 內部邏輯測試 26
1.9.2 JTAG邊界掃描測試 27
1.10 編程與配置 28
1.11 Quartus 29
1.12 IP核 30
1.13 主要EDA軟件公司 31
1.14 EDA的發展趨勢 31
習題 33
第2章 程序結構與數據類型 34
2.1 Verilog程序結構 34
2.1.1 Verilog模塊的表達方式 35
2.1.2 Verilog模塊的埠信號名和埠模式 35
2.1.3 Verilog信號類型定義 36
2.1.4 Verilog模塊功能描述 37
2.2 Verilog的數據類型 37
2.2.1 net線網類型 37
2.2.2 wire線網型變量的定義方法 38
2.2.3 register寄存器類型 38
2.2.4 reg寄存器型變量的定義方法 39
2.2.5 integer類型變量的定義方法 40
2.2.6 存儲器類型 40
2.3 Verilog文字規則 42
2.3.1 Verilog的4種邏輯狀態 42
2.3.2 Verilog的數字表達形式 42
2.3.3 數據類型表示方式 43
2.3.4 常量 43
2.3.5 標識符、關鍵詞及其他文字規則 45
2.3.6 參數定義關鍵詞parameter和localparam的用法 46
習題 47
第3章 行為語句 48
3.1 過程語句 48
3.1.1 always語句 48
3.1.2 always語句在D觸發器設計中的應用 50
3.1.3 多過程應用與異步時序電路設計 50
3.1.4 簡單加法計數器的Verilog表述 51
3.1.5 initial語句 52
3.2 塊語句 53
3.3 case條件語句 54
3.4 if條件語句 55
3.4.1 if語句的一般表述形式 55
3.4.2 基於if語句的組合電路設計 56
3.4.3 基於if語句的時序電路設計 58
3.4.4 含異步復位和時鐘使能的D觸發器的設計 59
3.4.5 含同步復位控制的D觸發器的設計 60
3.4.6 含清零控制的鎖存器的設計 61
3.4.7 時鐘過程表述的特點和規律 62
3.4.8 實用加法計數器設計 64
3.4.9 含同步預置功能的移位寄存器設計 65
3.4.10 關註if語句中的條件指示 66
3.5 過程賦值語句 67
3.6 循環語句 68
3.6.1 for語句 68
3.6.2 while語句 69
3.6.3 repeat語句 70
3.6.4 forever語句 71
3.7 任務與函數語句 71
習題 73
第4章 FPGA模擬與硬件實現 75
4.1 代碼編輯輸入和系統編譯 75
4.1.1 編輯和輸入設計文件 75
4.1.2 創建工程 76
4.1.3 約束項目設置 77
4.1.4 全程綜合與編譯 79
4.1.5 RTL圖觀察器應用 80
4.2 模擬測試 81
4.3 硬件測試 84
4.3.1 引腳鎖定 84
4.3.2 編譯文件下載 86
4.3.3 通過JTAG口對配置芯片進行間接編程 87
4.4 電路原理圖設計流程 89
4.4.1 設計一個半加器 89
4.4.2 完成全加器頂層設計 90
4.4.3 對全加器進行時序模擬和硬件測試 91
4.5 利用屬性表述實現引腳鎖定 92
4.6 Signal Tap的用法 93
4.7 編輯Signal Tap的觸發信號 98
4.8 USB-Blaster驅動程序安裝方法 98
4.9 Vivado平臺模擬與硬件實現 99
4.9.1 創建工程 99
4.9.2 編輯和輸入設計文件 101
4.9.3 全程綜合編譯與實現 102
4.9.4 RTL圖觀察器應用 105
4.9.5 模擬 105
4.9.6 硬件測試 107
習題 107
實驗與設計 108
實驗4-1 多路選擇器設計實驗 108
實驗4-2 十六進制7段數碼顯示解碼器設計 108
實驗4-3 8位硬件乘法器設計實驗 110
實驗4-4 應用宏模塊設計數字頻率計 110
實驗4-5 計數器設計實驗 114
實驗4-6 數碼掃描顯示電路設計 115
實驗4-7 半整數與奇數分頻器設計 115
第5章 運算符與結構描述語句 118
5.1 運算操作符 118
5.1.1 按位邏輯操作符 118
5.1.2 邏輯運算操作符 119
5.1.3 算術運算操作符 119
5.1.4 關系運算操作符 120
5.1.5 BCD碼加法器設計示例 121
5.1.6 縮位操作符 122
5.1.7 並位操作符 122
5.1.8 移位操作符 123
5.1.9 移位操作符用法示例 123
5.1.10 條件操作符 124
5.2 連續賦值語句 125
5.3 例化語句 126
5.3.1 半加器設計 126
5.3.2 全加器設計 126
5.3.3 Verilog例化語句及其用法 127
5.4 參數傳遞語句應用 129
5.5 用庫元件實現結構描述 130
5.6 編譯指示語句 131
5.6.1 宏定義命令語句 132
5.6.2 文件包含語句 'include 132
5.6.3 條件編譯命令語句'ifdef、'else、'endif 133
5.7 keep屬性應用 134
5.8 SignalProbe使用方法 135
習題 137
實驗與設計 138
實驗5-1 高速硬件除法器設計實驗 138
實驗5-2 不同類型的移位寄存器設計實驗 139
實驗5-3 基於Verilog代碼的頻率計設計 139
實驗5-4 8位加法器設計實驗 141
實驗5-5 VGA彩條信號顯示控制電路設計 141
第6章 IP核的應用 145
6.1 調用計數器宏模塊示例 145
6.1.1 計數器LPM模塊文本代碼的調用 145
6.1.2 LPM計數器代碼與參數傳遞語句應用 146
6.1.3 創建工程與模擬測試 148
6.2 利用屬性控制乘法器構建的示例 149
6.3 LPM_RAM宏模塊用法 150
6.3.1 初始化文件及其生成 150
6.3.2 以原理圖方式對LPM_RAM進行調用 152
6.3.3 測試LPM_RAM 154
6.3.4 Verilog代碼描述的存儲器初始化文件加載表述 154
6.3.5 存儲器設計的結構控制 155
6.4 LPM_ROM使用示例 156
6.4.1 簡易正弦信號發生器設計 156
6.4.2 正弦信號發生器硬件實現和測試 158
6.5 存儲器內容在系統編輯器應用 159
6.6 嵌入式鎖相環調用 161
6.6.1 建立嵌入式鎖相環元件 161
6.6.2 測試鎖相環 163
6.7 In-System Sources and Probes Editor用法 164
6.8 DDS實現原理與應用 166
6.8.1 DDS原理 166
6.8.2 DDS信號發生器設計示例 168
習題 169
實驗與設計 170
實驗6-1 查表式硬件運算器設計 170
實驗6-2 正弦信號發生器設計 171
實驗6-3 簡易邏輯分析儀設計 171
實驗6-4 DDS正弦信號發生器設計 172
實驗6-5 移相信號發生器設計 173
實驗6-6 AM幅度調制信號發生器設計 174
實驗6-7 硬件消抖動電路設計 174
第7章 Verilog HDL深入 176
7.1 過程中的兩類賦值語句 176
7.1.1 未指定延時的阻塞式賦值 176
7.1.2 指定了延時的阻塞式賦值 177
7.1.3 未指定延時的非阻塞式賦值 177
7.1.4 指定了延時的非阻塞式賦值 179
7.1.5 深入認識阻塞式與非阻塞式賦值的特點 180
7.1.6 對不同的賦初值方式的進一步探討 182
7.2 過程語句討論 184
7.2.1 過程語句應用總結 184
7.2.2 不完整條件語句與時序電路的關系 185
7.3 三態與雙向埠設計 186
7.3.1 三態控制電路設計 186
7.3.2 雙向埠設計 187
7.3.3 三態總線控制電路設計 189
7.4 資源優化 190
7.4.1 資源共享 191
7.4.2 邏輯優化 192
7.4.3 串行化 192
7.5 速度優化 193
習題 195
實驗與設計 197
實驗7-1 4×4陣列鍵盤按鍵信號檢測電路設計 197
實驗7-2 直流電機綜合測控系統設計 198
實驗7-3 VGA簡單圖像顯示控制模塊設計 200
實驗7-4 硬件樂曲演奏電路設計 201
實驗7-5 PS/2鍵盤控制模型電子琴電路設計 204
實驗7-6 FIR數字濾波器設計實驗 207
第8章 狀態機設計技術 208
8.1 Verilog狀態機的一般形式 208
8.1.1 狀態機的特點與優勢 208
8.1.2 狀態機的一般結構 209
8.1.3 初始控制與表述 212
8.2 Moore型狀態機 213
8.2.1 多過程結構狀態機 214
8.2.2 序列檢測器及其狀態機設計 218
8.3 Mealy型狀態機 219
8.4 不同編碼類型狀態機 222
8.4.1 直接輸出型編碼 222
8.4.2 用宏定義語句定義狀態編碼 224
8.4.3 順序編碼 225
8.4.4 一位熱碼編碼 225
8.4.5 狀態編碼設置 226
8.5 安全狀態機設計 227
8.5.1 狀態導引法 228
8.5.2 狀態編碼監測法 228
8.5.3 借助EDA工具自動生成安全狀態機 229
習題 229
實驗與設計 230
實驗8-1 序列檢測器設計 230
實驗8-2 ADC採樣控制電路設計 230
實驗8-3 五功能智能邏輯筆設計 232
實驗8-4 數據採集模塊設計 233
第9章 16/32位CPU創新設計 235
9.1 KX9016的結構與特色 235
9.2 KX9016基本硬件系統設計 238
9.2.1 單步節拍發生模塊 238
9.2.2 ALU模塊 239
9.2.3 比較器模塊 239
9.2.4 基本寄存器與寄存器陣列組 240
9.2.5 移位器模塊 242
9.2.6 程序與數據存儲器模塊 243
9.3 KX9016指令系統設計 243
9.3.1 指令格式 243
9.3.2 指令操作碼 245
9.3.3 軟件程序設計示例 246
9.3.4 KX9016控制器設計 247
9.3.5 指令設計示例 251
9.4 KX9016的時序模擬與硬件測試 252
9.4.1 時序模擬與指令執行波形分析 252
9.4.2 CPU工作情況的硬件測試 254
9.5 KX9016應用程序設計示例和系統優化 256
9.5.1 乘法算法及其硬件實現 257
9.5.2 除法算法及其硬件實現 258
9.5.3 KX9016的硬件系統優化 258
9.6 32位RISC-V處理器設計 259
9.6.1 RISC-V基本結構與基本整數指令集RV32I 260
9.6.2 32位乘法指令集RV32M 263
9.6.3 16位壓縮指令集RVC 263
習題 264
實驗與設計 265
實驗9-1 16位CPU設計綜合實驗 265
實驗9-2 新指令設計及程序測試實驗 265
實驗9-3 16位CPU的優化設計與創新 266
第10章 Verilog HDL模擬 268
10.1 Verilog HDL模擬流程 269
10.2 Verilog 測試基準示例 271
10.3 Verilog Test Bench測試流程 272
10.4 Verilog系統任務和系統函數 275
10.4.1 系統任務和系統函數 275
10.4.2 預編譯語句 281
10.5 延時模型 282
10.5.1 # 延時和門延時 282
10.5.2 延時說明塊 283
10.6 其他模擬語句 283
10.6.1 fork-join塊語句 283
10.6.2 wait語句 284
10.6.3 force、release語句 285
10.6.4 deassign語句 285
10.7 模擬激勵信號的產生 286
10.8 數字系統模擬 287
習題 288
實驗與設計 288
實驗10-1 在ModelSim上對計數器的Test Bench進行模擬 288
實驗10-2 在ModelSim上進行16位累加器設計模擬 288
補充實驗列表 289
附錄A EDA教學實驗平臺系統及相關軟件 290
A.1 KX系列EDA-FPGA教學綜合實驗平臺 291
A.1.1 模塊化自主創新實驗設計結構 291
A.1.2 動態配置I/O高效實驗控制系統 292
A.1.3 不同廠家不同功能類型的FPGA核心板 293
A.1.4 引腳對照表 295
A.2 部分實驗擴展模塊 295
A.3 mif文件生成器使用方法 296
A.4 HX1006A及其引腳鎖定工具軟件 297
參考文獻 299