EDA技術與VHDL(第6版)
黃繼業 潘 松 盛慶華
相關主題
商品描述
"《EDA技術與VHDL(第6版)》系統地介紹了EDA技術和VHDL硬件描述語言,將VHDL的基礎知識、編程技巧和實用方法與實際工程開發技術在Quartus/Vivado上很好地結合起來,使讀者通過《EDA技術與VHDL(第6版)》的學習能迅速瞭解並掌握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的結構與可編程原理 ....................................................................................... 15 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生產廠商 ....................................................................................... 26 1.9硬件測試技術 .............................................................................................................. 27 1.9.1 內部邏輯測試 ................................................................................................... 27 1.9.2 JTAG邊界掃描測試......................................................................................... 27 1.10編程與配置 ................................................................................................................ 28 1.11 Quartus ....................................................................................................................... 29 1.12 IP核 ........................................................................................................................... 31 1.13主要 EDA軟件公司 .................................................................................................. 31 1.14 EDA的發展趨勢 ....................................................................................................... 32 習題 ....................................................................................................................................... 33 第 2章程序結構與數據對象......................................................................................... 34 2.1 VHDL程序結構 .......................................................................................................... 34 ·VI· EDA技術與 VHDL(第 6版) 2.2 VHDL程序基本構建 .................................................................................................. 36 2.2.1 實體和埠模式 ............................................................................................... 36 2.2.2 結構體 ............................................................................................................... 37 2.2.3 庫和庫的種類 ................................................................................................... 38 2.2.4 庫和程序包的調用方法 ................................................................................... 39 2.2.5 配置 ................................................................................................................... 41 2.3 VHDL文字規則 .......................................................................................................... 41 2.3.1 數字 ................................................................................................................... 41 2.3.2 字符串 ............................................................................................................... 42 2.3.3 關鍵詞 ............................................................................................................... 43 2.3.4 標識符及其表述規則 ....................................................................................... 43 2.3.5 文件取名和存盤 ............................................................................................... 44 2.3.6 規範的程序書寫格式 ....................................................................................... 44 2.4 VHDL數據對象 .......................................................................................................... 44 2.4.1 常數 ................................................................................................................... 44 2.4.2 變量 ................................................................................................................... 45 2.4.3 信號 ................................................................................................................... 46 習題 ....................................................................................................................................... 47 第 3章數據類型與順序語句......................................................................................... 49 3.1 VHDL數據類型 .......................................................................................................... 49 3.1.1 BIT和 BIT_VECTOR類型 ............................................................................. 50 3.1.2 STD_LOGIC和 STD_LOGIC_VECTOR類型 ............................................... 50 3.1.3 整數類型 INTEGER ......................................................................................... 52 3.1.4 布爾數據類型 BOOLEAN ............................................................................... 52 3.1.5 SIGNED和 UNSIGNED類型 ......................................................................... 53 3.1.6 其他預定義類型 ............................................................................................... 55 3.1.7 數據類型轉換函數 ........................................................................................... 56 3.2常用順序語句 .............................................................................................................. 58 3.2.1 賦值語句 ........................................................................................................... 58 3.2.2 CASE語句 ........................................................................................................ 58 3.2.3 PROCESS語句 ................................................................................................. 60 3.2.4 並置操作符 & .................................................................................................... 61 3.2.5 IF語句 .............................................................................................................. 61 3.3 IF語句使用示例 ......................................................................................................... 62 3.3.1 D觸發器的 VHDL描述 .................................................................................. 62 3.3.2 含異步復位和時鐘使能 D觸發器的描述 ...................................................... 65 3.3.3 基本鎖存器的描述 ........................................................................................... 66 3.3.4 含清零控制鎖存器的描述 ............................................................................... 68 3.3.5 實現時序電路的不同表述方式 ....................................................................... 68 3.3.6 4位二進制加法計數器設計 ............................................................................ 69 3.3.7 計數器更常用的 VHDL表達方式 .................................................................. 70 3.3.8 設計一個實用計數器 ....................................................................................... 72 3.3.9 含同步並行預置功能的 8位移位寄存器設計 ............................................... 74 3.3.10優先編碼器設計 ............................................................................................. 76 3.4 VHDL其他順序語句 .................................................................................................. 77 3.4.1 LOOP循環語句 ............................................................................................... 77 3.4.2 NEXT語句 ....................................................................................................... 78 3.4.3 EXIT語句 ......................................................................................................... 78 3.4.4 WAIT語句 ........................................................................................................ 79 3.4.5 GENERIC參數定義語句 ................................................................................. 82 3.4.6 REPORT語句 ................................................................................................... 82 3.4.7 斷言語句 ........................................................................................................... 83 3.4.8 埠數據含“ 1”個數的統計電路模塊設計 ................................................. 85 習題 ....................................................................................................................................... 86 第 4章模擬與硬件實現 ................................................................................................ 87 4.1代碼編輯輸入和系統編譯 .......................................................................................... 87 4.1.1 編輯和輸入設計文件 ....................................................................................... 87 4.1.2 創建工程 ........................................................................................................... 88 4.1.3 約束項目設置 ................................................................................................... 90 4.1.4 全程綜合與編譯 ............................................................................................... 91 4.1.5 RTL圖觀察器應用 ........................................................................................... 92 4.2波形模擬 ...................................................................................................................... 93 4.3基於 ModelSim手動流程的模擬 ............................................................................... 96 4.4硬件測試 .................................................................................................................... 101 4.4.1 引腳鎖定 ......................................................................................................... 101 4.4.2 編譯文件下載 ................................................................................................. 102 4.4.3 通過 JTAG口對配置芯片進行間接編程 ...................................................... 104 4.4.4 USB-Blaster驅動程序安裝方法 .................................................................... 105 4.5層次化設計流程 ........................................................................................................ 105 4.5.1 設計一個半加器 ............................................................................................. 105 4.5.2 完成全加器頂層設計 ..................................................................................... 107 4.5.3 對全加器進行時序模擬和硬件測試 ............................................................. 108 4.6利用屬性表述實現引腳鎖定 .................................................................................... 109 4.7 Signal Tap邏輯分析儀的用法 .................................................................................. 110 4.8編輯 Signal Tap的觸發信號 ..................................................................................... 115 4.9 Vivado平臺模擬與硬件實現 ................................................................................... 116 4.9.1 創建工程 ......................................................................................................... 116 4.9.2 編輯和輸入設計文件 ..................................................................................... 119 ·VIII· EDA技術與 VHDL(第 6版) 4.9.3 全程綜合編譯與實現 ..................................................................................... 120 4.9.4 RTL圖觀察器應用 ......................................................................................... 122 4.9.5 模擬 ................................................................................................................. 123 4.9.6 硬件測試 ......................................................................................................... 124 習題 ..................................................................................................................................... 125 實驗與設計 ......................................................................................................................... 126 實驗 4-1多路選擇器設計實驗 ............................................................................... 126 實驗 4-2十六進制 7段數碼顯示解碼器設計 ....................................................... 126 實驗 4-3簡易數字頻率計設計 ............................................................................... 128 實驗 4-4計數器設計實驗 ....................................................................................... 131 實驗 4-5數碼掃描顯示電路設計 ........................................................................... 131 實驗 4-6硬件消抖動電路設計 ............................................................................... 132 實驗 4-7串行靜態顯示控制電路設計 ................................................................... 133 第 5章並行語句 ........................................................................................................ 134 5.1並行信號賦值語句 .................................................................................................... 134 5.1.1 簡單信號賦值語句 ......................................................................................... 134 5.1.2 條件信號賦值語句 ......................................................................................... 135 5.1.3 選擇信號賦值語句 ......................................................................................... 136 5.1.4 塊語句 ............................................................................................................. 136 5.1.5 元件例化語句 ................................................................................................. 137 5.1.6 例化語句應用示例 ......................................................................................... 138 5.1.7 生成語句 ......................................................................................................... 140 5.1.8 GENERIC參數傳遞映射語句及其使用方法 ............................................... 142 5.1.9 數據類型定義語句 ......................................................................................... 144 5.1.10 VHDL的存儲器描述 ................................................................................... 147 5.1.11信號屬性及屬性函數 ................................................................................... 148 5.2 VHDL運算操作符 .................................................................................................... 150 5.2.1 邏輯操作符 ..................................................................................................... 150 5.2.2 關系操作符 ..................................................................................................... 152 5.2.3 算術操作符 ..................................................................................................... 153 5.2.4 省略賦值操作符 ............................................................................................. 156 5.3 keep屬性應用 ........................................................................................................... 157 5.4 SignalProbe使用方法 ............................................................................................... 158 習題 ..................................................................................................................................... 160 實驗與設計 ......................................................................................................................... 161 實驗 5-1 8位加法器設計實驗 ................................................................................ 161 實驗 5-2高速硬件除法器設計 ............................................................................... 161 實驗 5-3移位相加型 8位硬件乘法器設計 ........................................................... 162 實驗 5-4基於 VHDL代碼的頻率計設計 .............................................................. 162 實驗 5-5 VGA彩條信號顯示控制電路設計 ......................................................... 164 實驗 5-6不同類型的移位寄存器設計實驗 ........................................................... 167 第 6章 IP核的應用 .................................................................................................... 168 6.1調用計數器宏模塊示例 ............................................................................................ 168 6.1.1 計數器 LPM模塊文本代碼的調用 ............................................................... 168 6.1.2 LPM計數器代碼與參數傳遞語句應用 ........................................................ 169 6.1.3 創建工程與模擬測試 ..................................................................................... 172 6.2利用屬性控制乘法器構建的示例 ............................................................................ 172 6.3片內 RAM IP用法 .................................................................................................... 173 6.3.1 初始化文件及其生成 ..................................................................................... 174 6.3.2 片內 RAM IP的設置與調用 ......................................................................... 175 6.3.3 測試片內 RAM ............................................................................................... 177 6.3.4 用 VHDL代碼描述存儲器以及用初始化文件加載表述 ............................ 178 6.3.5 片內存儲器設計的結構控制 ......................................................................... 179 6.4片內 ROM IP使用示例 ............................................................................................ 180 6.4.1 簡易正弦信號發生器設計 ............................................................................. 180 6.4.2 正弦信號發生器硬件實現和測試 ................................................................. 182 6.5在系統存儲器數據讀寫編輯器應用 ........................................................................ 183 6.6嵌入式鎖相環調用 .................................................................................................... 184 6.6.1 建立嵌入式鎖相環元件 ................................................................................. 184 6.6.2 測試鎖相環 ..................................................................................................... 187 6.7 In-System Sources and Probes Editor用法 ............................................................... 187 6.8 Vivado中 IP模塊用法 .............................................................................................. 190 6.9 DDS實現原理與應用 ............................................................................................... 190 6.9.1 DDS原理 ........................................................................................................ 191 6.9.2 DDS信號發生器設計示例 ............................................................................ 192 習題 ..................................................................................................................................... 193 實驗與設計 ......................................................................................................................... 194 實驗 6-1查表式硬件運算器設計 ........................................................................... 194 實驗 6-2正弦信號發生器設計 ............................................................................... 194 實驗 6-3簡易邏輯分析儀設計 ............................................................................... 195 實驗 6-4 DDS正弦信號發生器設計 ...................................................................... 196 實驗 6-5移相信號發生器設計 ............................................................................... 197 實驗 6-6 VGA簡單圖像顯示控制模塊設計 ......................................................... 197 實驗 6-7 AM幅度調制信號發生器設計 ............................................................... 198 第 7章 VHDL設計深入 .............................................................................................. 200 7.1進程中的信號賦值與變量賦值 ................................................................................ 200 7.2含高阻輸出的電路設計 ............................................................................................ 204 7.2.1 三態門設計 ..................................................................................................... 204 ·X· EDA技術與 VHDL(第 6版) 7.2.2 雙向埠的設計方法 ..................................................................................... 205 7.2.3 三態總線電路設計 ......................................................................................... 206 7.3資源優化 .................................................................................................................... 208 7.3.1 資源共享 ......................................................................................................... 208 7.3.2 邏輯優化 ......................................................................................................... 210 7.3.3 串行化 ............................................................................................................. 211 7.4速度優化 .................................................................................................................... 212 7.4.1 流水線設計 ..................................................................................................... 213 7.4.2 關鍵路徑法 ..................................................................................................... 215 7.5模擬延時 .................................................................................................................... 215 7.5.1 固有延時 ......................................................................................................... 216 7.5.2 傳輸延時 ......................................................................................................... 216 7.5.3 模擬 δ .............................................................................................................. 217 習題 ..................................................................................................................................... 217 實驗與設計 ......................................................................................................................... 218 實驗 7-1 4×4陣列鍵盤鍵信號檢測電路設計 ........................................................ 219 實驗 7-2樂曲硬件演奏電路設計 ........................................................................... 219 實驗 7-3 PS2鍵盤控制模型電子琴電路設計 ....................................................... 222 實驗 7-4直流電機綜合測控系統設計 ................................................................... 224 實驗 7-5 VGA動畫圖像顯示控制電路設計 ......................................................... 226 第 8章狀態機設計技術 .............................................................................................. 227 8.1 VHDL狀態機的一般形式 ........................................................................................ 227 8.1.1 狀態機的特點與優勢 ..................................................................................... 227 8.1.2 VHDL狀態機的一般結構 ............................................................................. 228 8.1.3 狀態機設計初始約束與表述 ......................................................................... 232 8.2 Moore型狀態機的設計 ............................................................................................ 233 8.2.1 多進程狀態機 ................................................................................................. 233 8.2.2 序列檢測器之狀態機設計 ............................................................................. 236 8.3 Mealy型狀態機的設計 ............................................................................................. 237 8.4狀態編碼 .................................................................................................................... 240 8.4.1 直接輸出型編碼 ............................................................................................. 240 8.4.2 順序編碼 ......................................................................................................... 242 8.4.3 一位熱碼編碼 ................................................................................................. 243 8.4.4 狀態編碼設置 ................................................................................................. 243 8.5安全狀態機設計 ........................................................................................................ 244 8.5.1 程序直接導引法 ............................................................................................. 245 8.5.2 狀態編碼監測法 ............................................................................................. 245 8.5.3 借助 EDA優化控制工具生成安全狀態機 ................................................... 246 習題 ..................................................................................................................................... 246 實驗與設計 ......................................................................................................................... 247 實驗 8-1序列檢測器設計 ....................................................................................... 247 實驗 8-2並行 ADC採樣控制電路實現與硬件驗證 ............................................ 247 實驗 8-3數據採集模塊設計 ................................................................................... 248 實驗 8-4五功能智能邏輯筆設計 ........................................................................... 249 實驗 8-5串行 ADC/DAC採樣或信號輸出控制電路設計 ................................... 250 第 9章 16/32位 CPU創新設計 .................................................................................. 251 9.1 KX9016的結構與特色 ............................................................................................. 251 9.2 KX9016基本硬件系統設計 ..................................................................................... 254 9.2.1 單步節拍發生模塊 ......................................................................................... 254 9.2.2 運算器 ............................................................................................................. 254 9.2.3 比較器 ............................................................................................................. 255 9.2.4 基本寄存器與寄存器陣列組 ......................................................................... 256 9.2.5 移位器 ............................................................................................................. 260 9.2.6 程序與數據存儲器 ......................................................................................... 260 9.3 KX9016指令系統設計 ............................................................................................. 261 9.3.1 指令格式 ......................................................................................................... 261 9.3.2 指令操作碼 ..................................................................................................... 262 9.3.3 軟件程序設計實例 ......................................................................................... 263 9.3.4 KX9016系統控制器設計 .............................................................................. 267 9.3.5 指令設計實例詳解 ......................................................................................... 269 9.4 KX9016的時序模擬與硬件測試 ............................................................................. 270 9.4.1 時序模擬與指令執行波形分析 ..................................................................... 270 9.4.2 CPU工作情況的硬件測試 ............................................................................ 271 9.5 KX9016應用程序設計實例和系統優化 ................................................................. 274 9.5.1 乘法算法及其硬件實現 ................................................................................. 274 9.5.2 除法算法及其硬件實現 ................................................................................. 275 9.5.3 KX9016的硬件系統優化 .............................................................................. 276 9.6 32位 RISC-V處理器設計 ........................................................................................ 277 9.6.1 RISC-V基本結構與基本整數指令集 RV32I................................................ 277 9.6.2 32位乘法指令集 RV32M .............................................................................. 280 9.6.3 16位壓縮指令集 RVC ................................................................................... 280 習題 ..................................................................................................................................... 281 實驗與設計 ......................................................................................................................... 282 實驗 9-1 16位 CPU驗證性設計綜合實驗 ............................................................ 282 實驗 9-2新指令設計及程序測試實驗 ................................................................... 282 實驗 9-3 16位 CPU的優化設計與創新 ................................................................ 283 第 10章 VHDL模擬 ................................................................................................... 285 10.1 VHDL模擬流程 ...................................................................................................... 286 ·XII· EDA技術與 VHDL(第 6版) 10.2 VHDL測試基準實例 .............................................................................................. 287 10.3 VHDL Test Bench測試流程 ................................................................................... 289 10.4 VHDL子程序 .......................................................................................................... 292 10.4.1 函數 ............................................................................................................... 292 10.4.2 重載函數 ....................................................................................................... 294 10.4.3 決斷函數 ....................................................................................................... 297 10.4.4 過程 ............................................................................................................... 297 10.4.5 重載過程 ....................................................................................................... 299 10.4.6 子程序調用語句 ........................................................................................... 300 10.4.7 RETURN語句 .............................................................................................. 302 10.4.8 並行過程調用語句 ....................................................................................... 302 10.5 VHDL程序包 .......................................................................................................... 304 習題 ..................................................................................................................................... 306 實驗與設計 ......................................................................................................................... 307 實驗 10-1 在 ModelSim上對 VHDL Test Bench進行模擬 .................................. 307 第 11章 DSP Builder系統設計方法 ........................................................................... 308 11.1 MATLAB/DSP Builder及其設計流程 ................................................................... 308 11.2正弦信號發生器設計 .............................................................................................. 310 11.2.1建立設計模型 ............................................................................................... 311 11.2.2 Simulink模型模擬 ....................................................................................... 317 11.2.3 Signal Compiler使用方法 ............................................................................ 321 11.2.4使用 ModelSim進行 RTL級模擬 ............................................................... 322 11.2.5使用 Quartus實現時序模擬 ......................................................................... 323 11.2.6硬件測試與硬件實現 ................................................................................... 324 11.3 DSP Builder層次化設計 ......................................................................................... 326 11.4基於 DSP Builder的 DDS設計 .............................................................................. 329 11.4.1 DDS模塊設計 .............................................................................................. 329 11.4.2 FSK調制器設計 ........................................................................................... 332 11.4.3正交信號發生器設計 ................................................................................... 334 11.4.4數控移相信號發生器設計 ........................................................................... 335 11.4.5幅度調制信號發生器設計 ........................................................................... 335 11.5 FIR數字濾波器設計 ............................................................................................... 336 11.5.1 FIR濾波器原理 ............................................................................................ 337 11.5.2使用 DSP Builder設計 FIR濾波器 ............................................................. 337 11.5.3使用 MATLAB的濾波器設計工具 ............................................................. 342 11.5.4使用 FIR IP Core設計 FIR濾波器 .............................................................. 347 11.6 HDL模塊插入模擬及其設計 ................................................................................. 351 習題 ..................................................................................................................................... 353 實驗與設計 ......................................................................................................................... 354 實驗 11-1利用 MATLAB/DSP Builder設計基本電路模塊 ................................. 354 實驗 11-2基於 DSP Builder的 DDS應用模型設計 ............................................. 355 實驗 11-3 FIR數字濾波器設計實驗 ...................................................................... 357 實驗 11-4 HDL Import模塊應用實驗 .................................................................... 358 附錄 A EDA教學實驗平臺系統及相關軟件 ................................................................. 359 A.1 KX系列 EDA-FPGA教學綜合實驗平臺 ............................................................... 360 A.1.1 模塊化自主創新實驗設計結構 .................................................................... 360 A.1.2 動態配置 I/O高效實驗控制系統 ................................................................. 361 A.1.3 不同廠家不同功能類型的 FPGA核心板 .................................................... 362 A.1.4 引腳對照表 .................................................................................................... 363 A.2部分實驗擴展模塊 ................................................................................................... 364 A.3 MIF文件生成器使用方法 ....................................................................................... 364 A.4 HX1006A及其引腳鎖定工具軟件 ......................................................................... 366 參考文獻 ....................................................................................................................... 367