可編程邏輯器件與EDA技術
定 價:¥45
中 教 價:¥34.65 (7.70折)
庫 存 數: 0
叢 書 名:普通高等教育“十三五”電子信息類規劃教材
本書根據以提高工程設計能力為目的,深入淺出的對EDA技術、VHDL硬件描述語言、FPGA開發應用及相關知識做了系統和完整的介紹,使讀者通過本書的學習與實驗,能初步了解和掌握EDA的基本內容及實用技術。本書包括EDA的基本知識、常用EDA工具的使用方法和目標器件的結構原理、以向導形式和實例為主的方法介紹多種不同的設計方法、對VHDL的設計優化以及基于EDA技術的典型設計項目。各章都安排了習題和針對性較強的實驗與設計。書中例舉的大部分VHDL設計實例和試驗實現EDA工具平臺是Vivado集成開發環境,硬件平臺是Basys3Artix—7FPGA開發平臺。并在EDA實驗系統上通過硬件測試。本書可作為高等院校電子工程、通信、工業自動化、計算機應用技術、儀器儀表、數字信號或圖像處理等學科的本科生或研究生的電子設計、EDA技術課程和VHDL硬件描述語言的教材及實驗指導書,同時也可以作為相關專業人員的自學參考書。
隨著半導體產業進入深納米的時代. 可編程邏輯器件向高密度、高速度、低價格方向迅速發展. EDA 技術在電子信息、通信、自動控制及計算機應用等領域的重要性日益突出.目前EDA 技術已經成為電子信息類專業一門重要的專業基礎課程. 是電子信息類專業學生必須掌握的專業基礎知識和基本技能. 為了使學生掌握EDA 基本設計工具和設計方法. 在EDA 開發軟件上本書使用在FPGA 市場占有率第一的Xilinx 公司推出和發布的Vivado 設計套件. 該套件是一款基于業界標準的開放式開發環境. 可以利用Xilinx 公司推出的領先一代的硬件、軟件和I/ O 全面可編程的SoC - Zynq7000 系列實現數字系統、DSP 系統和嵌入式系統的設計. 作者力圖將EDA 技術最新發展成果、現代電子設計最前沿理論和技術、國際上業界普遍接受和認可的EDA 軟硬件開發平臺的使用方法奉獻給廣大讀者.本書力求全面、實用. 對例題做到詳細分析和解釋. 既可以幫助讀者學習理解知識和概念. 降低學習難度. 又具有啟發性. 幫助讀者更加輕松、迅速地理解和掌握本書內容.本書在內容的組織上共分14 章. 各章的具體內容如下:第1 章為緒論. 主要概述了EDA 技術及其重要性. EDA 包含的知識體系結構. 如HDL、EDA 的工作軟件等. 比較了傳統電子設計方法與EDA 技術各自的特點. 同時對EDA技術的發展歷程、特點和優勢. 以及利用EDA 進行工程設計的流程進行了簡要介紹.第2 章主要介紹了可編程邏輯器件的基本結構和工作原理. 以及相關的編程、測試和配置方法. 首先對可編程邏輯器件進行了概述. 主要介紹了可編程邏輯器件的發展歷史. 并對可編程邏輯器件通過不同的劃分方式進行了分類. 接著重點介紹了高密度可編程邏輯器件CPLD 和FPGA 的結構原理和工作特點. 然后詳細地闡述了JTAG 邊界掃描技術的硬件測試原理. 并對CPLD 的編程方法和配置方式進行了介紹. 最后介紹了本書使用的Basys3 開發板.第3 章主要講述了VHDL 語言的基本語法知識. 是使用VHDL 進行EDA 設計的基礎.首先介紹了VHDL 程序的基本結構. 一個完整的VHDL 設計由庫、程序包、實體、結構體和配置組成. 其中實體和結構體是基本組成部分. 然后介紹了VHDL 語言中的文字規則、數據對象、數據類型和操作符等內容. 最后介紹了VHDL 中預定義的屬性.第4 章主要講述了VHDL 語句的基本內容. VHDL 中的語句可以分為兩大類: 順序語句和并行語句. 在此基礎上介紹了各種語句的語法以及使用方法、程序包的構成和配置、子程序的概念及其使用方法. 并給出常用設計舉例.第5 章主要講述了有限狀態機的基本概念、特點和基本結構等基礎內容. 在此基礎上.對Moore 型狀態機和Mealy 型狀態機的結構、特性和設計方法進行了詳細的舉例說明. 然后介紹了狀態位置直接輸出型編碼、順序編碼、枚舉類型編碼及一位熱碼編碼四種不同的狀態編碼方式. 以及程序直接導引法及狀態編碼檢測法兩種安全狀態機的設計方法. 最后比較全面地對有限狀態機進行了介紹.第6 章介紹了EDA 的硬件系統設計中VHDL 的優化設計. 首先介紹了FPGA/ CPLD 的Ⅳ資源利用優化. 資源優化主要包括資源共享、邏輯優化和串行化. 由于對于大多數的設計來說. 速度優化比資源優化更重要. 所以介紹了速度優化. 并依次闡述了流水線設計、寄存器配平、關鍵路徑法、乒乓操作法和加法樹法. 最后詳細介紹了如何排除和避免毛刺或隨機干擾信號. 主要包括延時方式去毛刺、邏輯方式去毛刺和定時方式去毛刺.第7 章介紹了Vivado 設計套件的基本知識以及Vivado 設計套件的界面信息. 首先. 簡單介紹了Vivado 設計套件的特性. 其次介紹了使用Vivado 設計套件的系統級設計流程. 然后介紹了Vivado 設計套件的安裝過程. 之后介紹了各個工程文件夾存放的文件類型以及網表文件的相關知識. 最后介紹了Vivado 設計套件的基本界面信息.第8 章介紹了在Vivado 集成開發環境的工程模式下設計工程的基本設計實現流程. 工程模式下的基本設計實現主要步驟包括: 創建一個新的設計工程、創建并添加新的設計文件、RTL 詳細描述和分析、設計綜合、行為級仿真、建立約束、設計實現和分析、靜態時序分析、設計時序仿真以及生成編程文件并下載到目標芯片.第9 章介紹了Vivado 集成設計環境下創建和封裝用戶IP 的基本流程. 創建和封裝用戶IP的主要步驟包括: 創建一個用于定制用戶IP 的工程、設置定制IP 的庫名和目錄以及封裝IP.第10 章介紹了在Vivado 集成開發環境下基于IP 的簡單系統的設計實現流程. 基于IP的系統設計實現主要步驟包括: 創建一個新的設計工程、創建基于IP 的系統、行為級仿真、設計綜合、建立約束、設計實現和分析、靜態時序分析、設計時序仿真以及生成編程文件并下載到目標芯片.第11 章介紹了如何使用Vivado 集成開發環境和Basys3 開發板設計實現鍵控流水燈實驗的設計. 首先介紹了鍵控流水燈的設計要求和功能描述. 其次介紹了鍵控流水燈的層次化設計方案. 主要包括三部分內容. 分別是分頻模塊. 流水燈顯示模塊和按鍵控制模塊. 最后對鍵控流水燈設計進行了硬件測試.第12 章介紹了搶答器實驗設計. 首先介紹了搶答器的設計要求和功能描述. 其次制訂了三人搶答器的層次化設計方案. 主要包括三部分內容. 分別是分頻器模塊、搶答鑒別器模塊和數碼管顯示模塊. 然后對搶答器進行了頂層設計和仿真. 最后對搶答器的設計進行了硬件測試.第13 章主要介紹了一個簡單的數字鐘實驗設計. 首先介紹了數字鐘的設計要求和功能描述. 然后介紹了數字鐘的層次化設計方案. 主要包括三部分內容. 分別是分頻器模塊、計數模塊和數碼管顯示模塊. 之后對數字鐘進行了頂層設計和仿真. 最后對本次設計進行了硬件測試.第14 章介紹了如何使用Vivado 集成開發環境和Basys3 開發板進行簡單的UART 實驗設計. 實驗分為兩部分. 一部分是接收器的設計實現. 另一部分是發送器的設計實現. 在兩部分中分別介紹了接收器和發送器的層次化設計方案. 并對其進行了硬件測試.本書內容充實. 系統全面. 重點突出. 闡述循序漸進. 由淺入深. 書中所有例題均在Vivado 環境下運行通過. 本書配有免費的電子課件. 歡迎選用本書作為教材的教師登錄www.. cmpedu.. com 下載或發郵件到wangkang ̄maizi9@126.. com 索取.參加本書編寫、校對及程序測試工作的還有吳金輝、王輝等. 在此表示感謝.由于作者水平有限. 書中難免有錯誤和不足之處. 懇請各位專家和讀者批評指正.
編 者
前 言 第1 章 緒論 1 1. 1 EDA 技術概要 1 1. 1. 1 EDA 技術的含義 1 1. 1. 2 EDA 技術的發展歷程 1 1. 1. 3 EDA 的基本特征 3 1. 1. 4 EDA 技術的優勢 5 1. 2 EDA 技術的實現目標 7 1. 3 硬件描述語言 8 1. 3. 1 VHDL 8 1. 3. 2 Verilog HDL 9 1. 3. 3 VHDL 和Verilog HDL 的比較 9 1. 4 常用的EDA 工具 10 1. 4. 1 設計輸入編輯器 11 1. 4. 2 綜合器 11 1. 4. 3 仿真器 13 1. 4. 4 適配器 13 1. 4. 5 編程下載 14 1. 5 EDA 的工程設計流程 14 1. 6 Vivado 概述 17 1. 7 EDA 技術的發展趨勢 17 本章小結 19 習題 19 第2 章 CPLD 與FPGA 的結構原理 20 2. 1 PLD 概述 20 2. 1. 1 PLD 入門 20 2. 1. 2 常見的PLD 21 2. 1. 3 PLD 的優點 22 2. 1. 4 PLD 的發展趨勢 23 2. 2 簡單PLD 的結構原理 24 2. 2. 1 邏輯符號表示方法 25 2. 2. 2 PROM 的結構原理 25 2. 2. 3 PLA 的結構原理 26 2. 2. 4 PAL 的結構原理 26 2. 2. 5 GAL 的結構原理 31 2. 3 CPLD 的結構原理 35 2. 3. 1 CPLD 的基本結構 35 2. 3. 2 基于乘積項的可編程邏輯器件 36 2. 4 FPGA 的結構原理 39 2. 4. 1 查找表型FPGA 的邏輯結構 41 2. 4. 2 Xilinx 公司7 系列FPGA 簡介 43 2. 4. 3 FPGA 與CPLD 的區別 47 2. 5 硬件測試 48 2. 6 CPLD/ FPGA 的編程與配置 49 2. 7 Basys3 開發板介紹 50 2. 7. 1 電源電路 51 2. 7. 2 LED 燈電路和數碼管電路 51 2. 7. 3 按鍵電路和撥碼開關電路 52 2. 7. 4 VGA 顯示電路和I/ O 擴展電路 53 本章小結 53 習題 54 第3 章 VHDL 入門基礎 55 3. 1 VHDL 的基本結構 55 3. 1. 1 實體 56 3. 1. 2 結構體 57 3. 1. 3 庫、程序包和配置 57 3. 2 VHDL 的文字規則 59 3. 2. 1 數字型文字 60 3. 2. 2 字符串型文字 60 3. 2. 3 標識符 60 3. 2. 4 下標 61 3. 3 VHDL 的數據對象 62 3. 3. 1 常數 62 3. 3. 2 變量 62 3. 3. 3 信號 62 3. 3. 4 文件 63 3. 4 VHDL 的數據類型 63 3. 4. 1 VHDL 預定義數據類型 64 3. 4. 2 用戶自定義數據類型 67 3. 4. 3 數據類型間的轉換 68 Ⅵ 3. 5 VHDL 的操作符 69 3. 6 VHDL 預定義屬性 73 本章小結 75 習題 76 第4 章 VHDL 硬件描述語言 77 4. 1 進程語句 77 4. 2 賦值語句 78 4. 3 順序描述語句 80 4. 3. 1 IF 語句 80 4. 3. 2 CASE 語句 82 4. 3. 3 LOOP 語句 83 4. 3. 4 NEXT 語句和EXIT 語句 84 4. 3. 5 WAIT 語句 85 4. 3. 6 RETURN 語句 86 4. 3. 7 NULL 語句 87 4. 4 元件例化語句 87 4. 5 生成語句 90 4. 6 塊語句 91 4. 7 程序包和配置 93 4. 7. 1 程序包 93 4. 7. 2 配置 94 4. 8 子程序 95 4. 8. 1 過程 96 4. 8. 2 函數 97 4. 9 其他語句 99 4. 10 常用設計舉例 100 4. 10. 1 結構體的三種描述方式 100 4. 10. 2 組合邏輯電路設計 102 4. 10. 3 時序邏輯電路設計 107 本章小結 113 習題 113 第5 章 有限狀態機設計 114 5. 1 概述 114 5. 1. 1 狀態機的特點 114 5. 1. 2 狀態機的分類 115 5. 2 VHDL 狀態機的一般形式 116 5. 2. 1 一般狀態機的結構 116 5. 2. 2 狀態機的設計流程 118 5. 2. 3 狀態機的狀態轉移圖描述 118 5. 2. 4 狀態機的狀態說明部分 119 5. 3 Moore 型狀態機的設計 120 5. 3. 1 單進程Moore 型狀態機 120 5. 3. 2 多進程Moore 型狀態機 122 5. 4 Mealy 型狀態機的設計 125 5. 5 狀態編碼 127 5. 5. 1 順序編碼 127 5. 5. 2 枚舉類型編碼 128 5. 5. 3 狀態位直接輸出型編碼 128 5. 5. 4 一位熱碼編碼 129 5. 6 安全狀態機設計 129 5. 6. 1 程序直接導引法 129 5. 6. 2 狀態編碼檢測法 130 本章小結 130 習題 130 第6 章 VHDL 優化設計 132 6. 1 資源優化 132 6. 1. 1