EDA 技術與 Verilog HDL, 4/e

黃繼業 黃汐威 潘松 陳龍

  • 出版商: 清華大學
  • 出版日期: 2024-06-01
  • 售價: $479
  • 貴賓價: 9.5$455
  • 語言: 簡體中文
  • 頁數: 316
  • ISBN: 7302666164
  • ISBN-13: 9787302666165
  • 相關分類: Verilog
  • 立即出貨 (庫存=1)

  • EDA 技術與 Verilog HDL, 4/e-preview-1
  • EDA 技術與 Verilog HDL, 4/e-preview-2
  • EDA 技術與 Verilog HDL, 4/e-preview-3
EDA 技術與 Verilog HDL, 4/e-preview-1

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

商品描述

"《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