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