Verilog HDL與FPGA數(shù)字系統(tǒng)設計
定 價:69 元
叢書名:高等院校電子信息與電氣學科系列規(guī)劃教材
- 作者:羅杰主編
- 出版時間:2015/4/1
- ISBN:9787111489511
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP312VH
- 頁碼:385
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書是根據(jù)電子技術的發(fā)展和我國高等教育發(fā)展的新形勢,以及作者多年教學與實踐經(jīng)驗的基礎上而編寫的。內(nèi)容覆蓋了數(shù)字邏輯設計基礎、VerilogHDL基礎知識與建模方法、有限狀態(tài)機設計、可編程邏輯器件及其開發(fā)工具、數(shù)字電路與系統(tǒng)設計實例、數(shù)字電路動態(tài)仿真與靜態(tài)時序分析等相關知識。本書將數(shù)字邏輯設計和VerilogHDL有機地結合在一起,方便讀者快速地掌握數(shù)字邏輯的基礎知識和VerilogHDL建模方法,熟悉用EDA方法設計數(shù)字系統(tǒng)的技巧。本書不僅注重基礎知識的介紹,而且力求向讀者系統(tǒng)地講解VerilogHDL在數(shù)字系統(tǒng)設計方面的實際應用。本書以QuartusⅡ9.1為軟件平臺,所有程序都通過了DE2開發(fā)板的硬件測試,讀者可參考使用。
華中科技大學全國大學生電子設計競賽培訓指定教材。
將數(shù)字電路和Verilog HDL相互結合,用FPGA實現(xiàn)電路,實踐性更強。
配合在大學中廣泛使用的FPGA平臺,課程資源和實例豐富,可操作性極強。
隨著數(shù)字技術的高速發(fā)展,人們已經(jīng)不再采用各種功能固定的通用中、小規(guī)模集成電路和電路圖輸入方法設計數(shù)字系統(tǒng),而是廣泛地采用硬件描述語言對數(shù)字電路的行為進行建模,并使用電子設計自動化(Electronic Design Automation,EDA)軟件自動地對所設計的電路進行優(yōu)化和仿真,然后使用邏輯綜合工具將設計轉化成物理實現(xiàn)的網(wǎng)表文件,最后用可編程邏輯器件或者專用集成電路 (Application Specific Integrated Circuit,ASIC)完成數(shù)字系統(tǒng)。因此,掌握硬件描述語言、EDA技術和可編程邏輯器件已成為當今數(shù)字系統(tǒng)設計者的重要任務。
目前,符合IEEE標準的硬件描述語言(Hardware Description Language,HDL)有VHDL和Verilog HDL。兩者的應用廣泛,都能夠通過程序描述電路的功能,從而進行數(shù)字電路的設計。由于Verilog HDL在ASIC設計領域占有重要的地位,并且它是在C語言的基礎上發(fā)展起來的,語法較自由,易學易用,因此本書選取Verilog HDL進行電路設計。同時,本書還介紹了ModelSim軟件和Quartus II軟件的使用方法,讀者可以使用它們進行仿真和綜合Verilog HDL代碼。
本書是作者根據(jù)多年的教學科研經(jīng)驗以及指導學生參加全國電子設計競賽經(jīng)驗編寫而成的。在內(nèi)容上,將數(shù)字邏輯設計和Verilog HDL有機結合在一起,方便讀者快速進入現(xiàn)代數(shù)字邏輯設計領域。按照“數(shù)字邏輯設計基礎、Verilog HDL建模技術、可編程邏輯器件的結構原理、EDA設計工具軟件、數(shù)字電路系統(tǒng)設計實踐”的體系結構編寫。為了讓大家更容易掌握Verilog HDL知識,本書在介紹數(shù)字電路設計的過程中列舉了Verilog HDL的很多例程,并假定讀者沒有任何數(shù)字邏輯基礎知識。
全書共11章。首先介紹了數(shù)字邏輯運算、邏輯門、組合電路設計等基礎知識,接著重點介紹了Verilog HDL基礎知識與建模方法,對狀態(tài)機的建模方法進行了深入討論;然后討論各種可編程邏輯器件的組成、結構特點和開發(fā)流程,以及Quartus II軟件的使用方法和靜態(tài)時序分析方法;最后通過大量的例程介紹Verilog HDL在數(shù)字系統(tǒng)設計方面的應用,有助于讀者理解書中的基本概念并掌握從簡單電路到復雜模塊的設計技術。
本書力求做到通俗易懂,適教適學。為方便讀者學習,每章開頭均有“本章目的”,介紹該章將要學習的主要內(nèi)容,每章后面均安排有小結,部分章節(jié)后面配有習題。理論學習要和上機實驗相結合,從第7章開始通過精選的例程進行引導,讀者可以按照這些例程進行實際操作,將HDL代碼“寫入”FPGA芯片,對設計的電路進行實際測試,以方便讀者掌握FPGA開發(fā)的整個流程。
參加本書編寫工作的有華中科技大學的羅杰(第1、2、3、4、5章)、張大衛(wèi)(第6、7章、附錄C)、譚力(第8、10章)、王貞炎(第9章)和湖北大學的劉文超(第11章、附錄A、B)等,羅杰擔任主編,負責全書的策劃、組織整理和定稿工作。
本書在編寫過程中,得到了華中科技大學電工電子科技創(chuàng)新基地的大力支持;得到了華中科技大學“教學改革工程”教材建設基金資助;還得到康華光教授的熱情支持和鼓勵,在此表示衷心的感謝。
由于作者知識水平有限,書中難免有疏漏、不妥或錯誤之處,敬請各位專家、同行和讀者批評指正。
編者 2014年11月
前言
教學建議
第一篇 數(shù)字系統(tǒng)基礎
第1章 數(shù)字邏輯設計基礎
1.1 數(shù)字電路的發(fā)展歷史及分類
1.2 邏輯運算及邏輯門
1.2.1 基本邏輯運算及對應的邏輯門
1.2.2 常用復合邏輯運算及對應的邏輯門
1.2.3 集成邏輯門電路簡介
1.2.4 三態(tài)門
1.3 邏輯代數(shù)的基本公式和規(guī)則
1.3.1 邏輯代數(shù)的基本公式
1.3.2 邏輯代數(shù)的基本規(guī)則
1.3.3 基本公式的應用
1.4 邏輯函數(shù)的代數(shù)化簡法
1.5 邏輯函數(shù)的卡諾圖化簡法
1.5.1 最小項的定義和性質(zhì)
1.5.2 邏輯函數(shù)的最小項表達式
1.5.3 用卡諾圖表示邏輯函數(shù)
1.5.4 用卡諾圖化簡邏輯函數(shù)
1.5.5 用卡諾圖化簡含無關項的邏輯函數(shù)
1.6 組合邏輯電路設計
1.6.1 組合邏輯電路設計的一般步驟
1.6.2 組合邏輯電路設計舉例
小結
習題
第2章 Verilog HDL入門與功能仿真
2.1 硬件描述語言簡介
2.1.1 硬件描述語言的起源
2.1.2 硬件描述語言的特點
2.2 Verilog HDL程序的基本結構
2.2.1 Verilog HDL程序的基本概述
2.2.2 簡單Verilog HDL程序實例
2.3 邏輯功能的仿真驗證過程
2.3.1 激勵塊
2.3.2 仿真過程簡介
2.4 ModelSim仿真軟件的使用
2.4.1 創(chuàng)建工作目錄
2.4.2 輸入源文件
2.4.3 建立工作庫
2.4.4 編譯設計文件
2.4.5 將設計文件載入仿真器
2.4.6 運行仿真器
2.5 Verilog HDL功能仿真常用命令
2.5.1 系統(tǒng)任務
2.5.2 編譯器指令
小結
習題
第3章 Verilog HDL基礎語法與組合邏輯電路建模
3.1 Verilog HDL基本語法規(guī)則
3.1.1 詞法規(guī)定
3.1.2 邏輯值集合
3.1.3 常量及其表示
3.1.4 數(shù)據(jù)類型
3.2 Verilog HDL門級建模
3.2.1 多輸入門
3.2.2 多輸出門
3.2.3 三態(tài)門
3.2.4 門級建模舉例
3.3 Verilog HDL數(shù)據(jù)流建模與運算符
3.3.1 數(shù)據(jù)流建模
3.3.2 表達式與操作數(shù)
3.3.3 運算符
3.3.4 運算符的優(yōu)先級別
3.4 組合電路的行為級建模
3.5 分層次的電路設計方法
3.5.1 設計方法
3.5.2 模塊實例引用語句
3.6 常用組合電路及其設計
3.6.1 編碼器
3.6.2 二進制譯碼器
3.6.3 七段顯示譯碼器
3.6.4 二進制數(shù)與8421 BCD碼的轉換
小結
習題
第4章 時序邏輯電路建模
4.1 鎖存器
4.1.1 基本SR鎖存器
4.1.2 門控D鎖存器
4.1.3 門控D鎖存器的VerilogHDL建模
4.2 時序電路建;A
4.2.1 阻塞型賦值語句和非阻塞型賦值語句
4.2.2 事件控制語句
4.3 觸發(fā)器
4.3.1 D觸發(fā)器的邏輯功能
4.3.2 有清零輸入和預置輸入的D觸發(fā)器
4.3.3 有使能端的D觸發(fā)器
4.3.4 D觸發(fā)器及其應用電路的Verilog HDL建模
4.4 寄存器和移位寄存器
4.4.1 寄存器及Verilog HDL建模
4.4.2 移位寄存器及Verilog HDL建模
4.4.3 移位寄存器的應用電路
4.5 同步計數(shù)器
4.5.1 同步計數(shù)器的設計
4.5.2 同步計數(shù)器的Verilog HDL建模
4.6 Verilog HDL函數(shù)與任務的使用
4.6.1 函數(shù)說明語句
4.6.2 任務說明語句
4.7 m序列碼產(chǎn)生電路設計
小結
習題
第5章 有限狀態(tài)機設計
5.1 狀態(tài)機的基本概念
5.1.1 狀態(tài)機的基本結構及類型
5.1.2 狀態(tài)機的狀態(tài)圖表示法
5.1.3 狀態(tài)機的設計步驟
5.2 基于Verilog HDL的狀態(tài)機描述方法
5.2.1 狀態(tài)圖的建立過程
5.2.2 狀態(tài)圖的描述方法
5.3 狀態(tài)機設計中的關鍵技術
5.3.1 狀態(tài)編碼
5.3.2 消除輸出端產(chǎn)生的毛刺
5.3.3 使用OneHot編碼方案設計狀態(tài)機
5.4 狀態(tài)機設計舉例
5.4.1 汽車尾燈控制電路設計
5.4.2 十字路口交通燈控制
電路設計
小結
習題
第6章 可編程邏輯器件
6.1 概述
6.1.1 PLD的歷史
6.1.2 PLD開發(fā)流程簡介
6.1.3 PLD器件的符號
6.2 簡單可編程邏輯器件
6.2.1 PLA
6.2.2 PAL
6.3 復雜可編程邏輯器件
6.3.1 CPLD的基本結構
6.3.2 邏輯塊
6.3.3 IO塊
6.3.4 可編程內(nèi)部互連線資源
6.4 現(xiàn)場可編程門陣列
6.4.1 FPGA實現(xiàn)邏輯函數(shù)的基本原理
6.4.2 FPGA的一般結構
6.4.3 基于LUT的邏輯塊
6.4.4 可編程布線資源
6.4.5 IO塊
小結
習題
第二篇 數(shù)字系統(tǒng)設計實踐
第7章FPGA開發(fā)工具的使用
7.1 Quartus II軟件介紹
7.1.1 Quartus II 9.1 軟件主界面
7.1.2 Quartus II的設計流程
7.1.3 USBBlaster 驅動安裝
7.2 基于原理圖的電路仿真
7.2.1 建立新的設計項目
7.2.2 輸入電路原理圖
7.2.3 編譯設計項目
7.2.4 仿真驗證設計項目
7.2.5 分析信號的延遲特性
7.2.6 實驗任務
7.3 基于Verilog HDL的電路設計與實現(xiàn)
7.3.1 半加器的設計與Verilog HDL建模舉例
7.3.2 輸入設計文件
7.3.3 建立新的設計項目
7.3.4 編譯設計文件
7.3.5 仿真驗證設計項目
7.3.6 分配引腳
7.3.7 對目標器件編程與硬件電路測試
7.3.8 使用電路網(wǎng)表觀察器查看電路圖
7.3.9 實驗任務
7.4 基于原理圖和Verilog HDL的層次化設計
7.4.1 編碼、譯碼、顯示電路
7.4.2 建立新的設計項目
7.4.3 輸入HDL底層文件并完善原理圖
7.4.4 分配引腳并編譯設計
7.4.5 仿真驗證設計項目
7.4.6 對目標器件編程與硬件電路測試
7.4.7 實驗任務
7.5 嵌入式邏輯分析儀SignalTap II的使用
7.5.1 SignalTap II的實現(xiàn)原理與使用流程
7.5.2 SignalTap II的基本使用方法
7.5.3 實驗任務
7.6 宏功能模塊的調(diào)用
7.6.1 計數(shù)器模塊LPM_COUNTER的配置與調(diào)用
7.6.2 嵌入式鎖相環(huán)模塊ALTPLL的配置與調(diào)用
7.6.3 先進先出模塊FIFO的配置與調(diào)用
7.6.4 存儲器模塊LPM_ROM的配置與調(diào)用
7.6.5 實驗任務
7.7 在Quartus II中調(diào)用ModelSim進行仿真
7.7.1 乘法器模塊LPM_MULT的配置與調(diào)用
7.7.2 仿真流程
7.7.3 實驗任務
小結
第8章 數(shù)字電路與系統(tǒng)的設計實踐
8.1 變模計數(shù)器設計
8.1.1 功能要求
8.1.2 設計分析
8.1.3 邏輯設計
8.1.4 設計實現(xiàn)
8.1.5 實驗任務
8.2 移動顯示字符的設計
8.2.1 功能要求
8.2.2 設計分析
8.2.3 邏輯設計
8.2.4 設計實現(xiàn)
8.2.5 實驗任務
8.3 分頻器設計
8.3.1 功能要求
8.3.2 設計分析
8.3.3 邏輯設計
8.3.4 設計仿真
8.3.5 實際運行結果
8.3.6 實驗任務
8.4 籃球競賽30秒定時器設計
8.4.1 功能要求
8.4.2 設計分析
8.4.3 邏輯設計
8.4.4 設計實現(xiàn)
8.4.5 實驗任務
8.5 多功能數(shù)字鐘設計
8.5.1 功能要求
8.5.2 設計分析
8.5.3 數(shù)字鐘主體電路邏輯設計
8.5.4 功能擴展電路邏輯設計
8.5.5 頂層電路設計
8.5.6 實驗任務
8.6 頻率計設計
8.6.1 功能要求
8.6.2 設計分析
8.6.3 邏輯設計
8.6.4 頂層電路設計
8.6.5 實驗任務
8.7 DDS函數(shù)信號發(fā)生器的設計
8.7.1 功能要求
8.7.2 DDS產(chǎn)生波形的原理
8.7.3 設計分析
8.7.4 頂層電路設計
8.7.5 設計實現(xiàn)
8.7.6 DA轉換電路及放大電路設計
8.7.7 實驗任務
8.8 有限狀態(tài)機實驗
8.8.1 功能要求
8.8.2 設計分析
8.8.3 邏輯設計
8.8.4 設計實現(xiàn)
8.8.5 實驗任務
小結
第9章 靜態(tài)時序分析工具TimeQuest的使用
9.1 靜態(tài)時序分析基礎
9.1.1 同步路徑的分析
9.1.2 異步路徑的分析
9.1.3 外部同步路徑的分析
9.1.4 不同的時序模型
9.2 TimeQuest時序分析器的使用
9.2.1 TimeQuest的使用流程
9.2.2 兩級流水線乘法器設計
9.2.3 設定時序要求
9.2.4 全編譯并完成布局布線
9.2.5 驗證時序
小結
第10章 異步串口通信及UART實現(xiàn)
10.1 UART接口實現(xiàn)原理
10.1.1 串行通信的概念
10.1.2 基本的UART通信協(xié)議
10.2 UART接口模塊的層次化設計
10.2.1 UART接口的功能模塊劃分
10.2.2 配置文件
10.2.3 頂層模塊的功能描述
10.2.4 接收模塊的功能描述
10.2.5 發(fā)送模塊的功能描述
10.2.6 波特率變換模塊的功能描述
10.2.7 微處理器接口模塊的功能描述
10.3 對UART接口模塊的功能仿真
10.3.1 對接收模塊的功能仿真
10.3.2 對發(fā)送模塊的功能仿真
10.3.3 對波特率變換模塊的功能仿真
10.3.4 對微處理器接口模塊的功能仿真
10.3.5 對UART接口模塊的功能仿真
10.4 邏輯綜合與時序仿真
10.5 下載與驗證測試
10.5.1 驗證系統(tǒng)概述
10.5.2 驗證結果
小結
第11章 VGA接口控制器的設計
11.1 VGA接口標準和接口電路
11.1.1 VGA接口標準
11.1.2 VGA接口電路
11.2 VGA彩條信號發(fā)生器
11.2.1 功能要求
11.2.2 設計分析
11.2.3 邏輯設計
11.2.4 頂層電路設計
11.2.5 對目標器件編程與硬件電路測試
11.2.6 使用Signal Tap II觀察VGA工作時序
11.2.7 實驗任務
11.3 24位位圖顯示
11.3.1 功能要求
11.3.2 設計分析
11.3.3 邏輯設計
11.3.4 頂層電路設計
11.3.5 對目標器件編程與硬件電路測試
11.3.6 實驗任務
小結
附錄A Verilog HDL關鍵字
附錄B 常用FPGA開發(fā)板介紹
附錄C Cyclone II系列器件結構
參考文獻