本書是為高等學(xué)校電子信息類及相關(guān)專業(yè)編寫的數(shù)字系統(tǒng)設(shè)計教材,共分為11章,主要內(nèi)容包括數(shù)字邏輯基礎(chǔ)、可編程邏輯器件工藝和結(jié)構(gòu)、Vivado集成開發(fā)環(huán)境IP設(shè)計流程、Vivado集成開發(fā)環(huán)境Verilog HDL設(shè)計流程、Verilog HDL語言規(guī)范、基本數(shù)字單元Verilog HDL描述、Verilog HDL數(shù)字系統(tǒng)設(shè)計和實(shí)現(xiàn)、創(chuàng)建和封裝用戶IP設(shè)計和實(shí)現(xiàn)、Vivado調(diào)試工具原理及實(shí)現(xiàn)、數(shù)字系統(tǒng)高級設(shè)計方法和數(shù)模混合系統(tǒng)設(shè)計。 本書以Xilinx Artix7系列FPGA器件和Xilinx最新一代的Vivado 2015.4集成開發(fā)環(huán)境為設(shè)計平臺,根據(jù)數(shù)字系統(tǒng)設(shè)計課程的教學(xué)要求以及作者多年的教學(xué)經(jīng)驗(yàn),將本科傳統(tǒng)的數(shù)字電子技術(shù)(數(shù)字邏輯)課程與復(fù)雜數(shù)字系統(tǒng)設(shè)計課程相結(jié)合,遵循循序漸進(jìn)、由淺入深的原則,內(nèi)容涵蓋了晶體管、門電路、數(shù)字邏輯理論、組合邏輯和時序邏輯、可編程邏輯器件結(jié)構(gòu)、Vivado集成開發(fā)環(huán)境設(shè)計流程、Verilog HDL語言、Verilog HDL復(fù)雜數(shù)字系統(tǒng)設(shè)計、IP封裝與調(diào)用、在線邏輯分析儀工具以及數(shù);旌舷到y(tǒng)設(shè)計等方面。 為了方便教師教學(xué)和學(xué)生自學(xué),書中給出了大量設(shè)計實(shí)例,并提供了配套的教學(xué)資源(詳見書中的學(xué)習(xí)說明)。本書可作為本科生和研究生學(xué)習(xí)數(shù)字系統(tǒng)設(shè)計等相關(guān)課程的教材,或作為從事Xilinx FPGA設(shè)計的工程技術(shù)人員的參考用書,也可作為Xilinx大學(xué)計劃培訓(xùn)的授課教材。
何賓,著名的嵌入式技術(shù)和EDA技術(shù)專家,長期從事電子設(shè)計自動化方面的教學(xué)和科研工作,與全球多家知名的半導(dǎo)體廠商和EDA工具廠商大學(xué)計劃保持緊密合作。目前已經(jīng)出版嵌入式和EDA方面的著作30余部,內(nèi)容涵蓋電路仿真、電路設(shè)計、可編程邏輯器件、數(shù)字信號處理、單片機(jī)、嵌入式系統(tǒng)、片上可編程系統(tǒng)等。典型的代表作有《Xilinx FPGA設(shè)計*指南》《Xilinx All Programmable Zynq-7000 SoC設(shè)計指南》《Altium Designer 13.0電路設(shè)計、仿真與驗(yàn)證*指南》《Altium Designer 15.0電路仿真、設(shè)計、驗(yàn)證與工藝實(shí)現(xiàn)*指南》《Xilinx FPGA數(shù)字設(shè)計——從門級到行為級的雙重描述》《Xilinx FPGA數(shù)字信號處理*指南——從HDL、模型到C的描述》《模擬與數(shù)字系統(tǒng)協(xié)同設(shè)計*指南-Cypress集成開發(fā)環(huán)境》《STC單片機(jī)原理及應(yīng)用》《STC單片機(jī)C語言程序設(shè)計》等。
第1章數(shù)字邏輯基礎(chǔ)
1.1數(shù)字邏輯的發(fā)展史
1.2開關(guān)系統(tǒng)
1.2.10和1的概念
1.2.2開關(guān)系統(tǒng)的優(yōu)勢
1.2.3晶體管作為開關(guān)
1.2.4半導(dǎo)體物理器件
1.2.5半導(dǎo)體邏輯電路
1.2.6邏輯電路符號描述
1.3半導(dǎo)體數(shù)字集成電路
1.3.1集成電路的發(fā)展
1.3.2集成電路構(gòu)成
1.3.3集成電路版圖
1.4基本邏輯門電路分析
1.4.1基本邏輯門電路的描述
1.4.2邏輯門電路的傳輸特性
1.4.3基本邏輯門集成電路
1.4.4不同工藝邏輯門的連接
1.5邏輯代數(shù)理論
1.5.1邏輯代數(shù)中運(yùn)算關(guān)系
1.5.2邏輯函數(shù)表達(dá)式
1.6邏輯表達(dá)式的化簡
1.6.1使用運(yùn)算律化簡邏輯表達(dá)式
1.6.2使用卡諾圖化簡邏輯表達(dá)式
1.6.3不完全指定邏輯功能的化簡
1.6.4輸入變量的卡諾圖表示
1.7毛刺產(chǎn)生及消除
1.8數(shù)字碼制表示和轉(zhuǎn)換
1.8.1數(shù)字碼制表示
1.8.2數(shù)字碼制轉(zhuǎn)換
1.9組合邏輯電路
1.9.1編碼器
1.9.2譯碼器
1.9.3碼轉(zhuǎn)換器
1.9.4數(shù)據(jù)選擇器
1.9.5數(shù)據(jù)比較器
1.9.6加法器
1.9.7減法器
1.9.8加法器/減法器
1.9.9乘法器
1.10時序邏輯電路
1.10.1時序邏輯電路類型
1.10.2時序邏輯電路特點(diǎn)
1.10.3基本SR鎖存器
1.10.4同步SR鎖存器
1.10.5D鎖存器
1.10.6D觸發(fā)器
1.10.7其他觸發(fā)器
1.10.8普通寄存器
1.10.9移位寄存器
1.10.10存儲器
1.11有限自動狀態(tài)機(jī)
1.11.1有限自動狀態(tài)機(jī)原理
1.11.2狀態(tài)圖表示及實(shí)現(xiàn)
1.11.3三位計數(shù)器
第2章可編程邏輯器件工藝和結(jié)構(gòu)
2.1可編程邏輯器件的發(fā)展歷史
2.2可編程邏輯器件工藝
2.3簡單可編程邏輯器件結(jié)構(gòu)
2.3.1PROM原理及結(jié)構(gòu)
2.3.2PAL原理及結(jié)構(gòu)
2.3.3PLA原理及結(jié)構(gòu)
2.4CPLD原理及結(jié)構(gòu)
2.4.1功能塊
2.4.2宏單元
2.4.3快速連接矩陣
2.4.4輸入輸出塊
2.5FPGA原理及結(jié)構(gòu)
2.5.1查找表結(jié)構(gòu)及功能
2.5.2可配置的邏輯塊
2.5.3時鐘資源
2.5.4時鐘管理模塊
2.5.5塊存儲器資源
2.5.6互聯(lián)資源
2.5.7專用的DSP模塊
2.5.8輸入和輸出塊
2.5.9吉比特收發(fā)器
2.5.10PCIE模塊
2.5.11XADC模塊
2.6CPLD和FPGA比較
2.7Xilinx可編程邏輯器件
2.7.1Xilinx CPLD芯片介紹
2.7.2Xilinx FPGA芯片介紹
2.7.3Xilinx PROM芯片介紹
第3章Vivado集成開發(fā)環(huán)境IP核設(shè)計流程
3.1IP的基本概念
3.1.1IP核來源
3.1.2IP核的提供方式
3.1.3IP核優(yōu)化
3.2Vivado工具設(shè)計流程
3.3Vivado IP數(shù)字系統(tǒng)的設(shè)計與實(shí)現(xiàn)
3.3.1建立新的設(shè)計工程
3.3.2修改工程設(shè)置屬性
3.3.3創(chuàng)建塊設(shè)計
3.3.4生成設(shè)計輸出文件
3.4XDC文件原理及添加方法
3.4.1XDC的特性
3.4.2約束文件的使用方法
3.4.3約束順序
3.4.4XDC約束命令
3.4.5添加XDC文件
3.5查看綜合后的結(jié)果
3.6查看實(shí)現(xiàn)后的結(jié)果
3.7生成和下載比特流文件
3.7.1生成比特流文件
3.7.2下載比特流文件
3.8生成和下載PROM文件
第4章Vivado集成開發(fā)環(huán)境Verilog HDL設(shè)計流程
4.1創(chuàng)建新的設(shè)計工程
4.2創(chuàng)建并添加一個新的設(shè)計文件
4.3RTL詳細(xì)描述和分析
4.3.1詳細(xì)描述的原理
4.3.2詳細(xì)描述的過程
4.4設(shè)計綜合和分析
4.4.1綜合過程的關(guān)鍵問題
4.4.2執(zhí)行設(shè)計綜合
4.4.3綜合報告的查看
4.5設(shè)計行為級仿真
4.6創(chuàng)建實(shí)現(xiàn)約束文件XDC
4.6.1實(shí)現(xiàn)約束的原理
4.6.2I/O規(guī)劃器功能
4.6.3實(shí)現(xiàn)約束過程
4.7設(shè)計實(shí)現(xiàn)和分析
4.7.1設(shè)計實(shí)現(xiàn)原理
4.7.2設(shè)計實(shí)現(xiàn)及分析
4.8設(shè)計時序仿真
4.9生成并下載比特流文件
4.9.1生成比特流文件
4.9.2下載比特流文件到FPGA
4.10生成并燒寫PROM文件
第5章Verilog HDL語言規(guī)范
5.1Verilog HDL語言發(fā)展
5.2Verilog HDL程序結(jié)構(gòu)
5.2.1模塊聲明
5.2.2模塊端口定義
5.2.3邏輯功能定義
5.3Verilog HDL描述方式
5.3.1行為級描述方式
5.3.2數(shù)據(jù)流描述方式
5.3.3結(jié)構(gòu)級描述方式
5.3.4開關(guān)級描述方式
5.4Verilog HDL語言要素
5.4.1注釋
5.4.2間隔符
5.4.3標(biāo)識符
5.4.4關(guān)鍵字
5.4.5系統(tǒng)任務(wù)和函數(shù)
5.4.6編譯器命令
5.4.7運(yùn)算符
5.4.8數(shù)字
5.4.9字符串
5.4.10屬性
5.5Verilog HDL數(shù)據(jù)類型
5.5.1值的集合
5.5.2網(wǎng)絡(luò)和變量
5.5.3向量
5.5.4強(qiáng)度
5.5.5隱含聲明
5.5.6網(wǎng)絡(luò)類型
5.5.7寄存器類型
5.5.8整數(shù)、實(shí)數(shù)、時間和實(shí)時時間
5.5.9數(shù)組
5.5.10參數(shù)
5.5.11Verilog HDL命名空間
5.6Verilog HDL表達(dá)式
5.6.1操作符
5.6.2操作數(shù)
5.6.3延遲表達(dá)式
5.6.4表達(dá)式的位寬
5.6.5有符號表達(dá)式
5.6.6分配和截斷
5.7Verilog HDL分配
5.7.1連續(xù)分配
5.7.2過程分配
5.8Verilog HDL門級和開關(guān)級描述
5.8.1門和開關(guān)聲明
5.8.2邏輯門
5.8.3輸出門
5.8.4三態(tài)門
5.8.5MOS開關(guān)
5.8.6雙向傳輸開關(guān)
5.8.7CMOS開關(guān)
5.8.8pull門
5.8.9邏輯強(qiáng)度建模
5.8.10組合信號的強(qiáng)度和值
5.8.11通過非電阻器件的強(qiáng)度降低
5.8.12通過電阻器件的強(qiáng)度降低
5.8.13網(wǎng)絡(luò)類型強(qiáng)度
5.8.14門和網(wǎng)絡(luò)延遲
5.9Verilog HDL用戶自定義原語
5.9.1UDP定義
5.9.2組合電路UDP
5.9.3電平觸發(fā)的時序UDP
5.9.4邊沿觸發(fā)的時序電路UDP
5.9.5初始化狀態(tài)寄存器
5.9.6UDP例化
5.9.7邊沿觸發(fā)和電平觸發(fā)的混合行為
5.10Verilog HDL行為描述語句
5.10.1過程語句
5.10.2過程連續(xù)分配
5.10.3條件語句
5.10.4case語句
5.10.5循環(huán)語句
5.10.6過程時序控制
5.10.7語句塊
5.10.8結(jié)構(gòu)化的過程
5.11Verilog HDL任務(wù)和函數(shù)
5.11.1任務(wù)和函數(shù)的區(qū)別
5.11.2任務(wù)和任務(wù)使能
5.11.3禁止命名的塊和任務(wù)
5.11.4函數(shù)和函數(shù)調(diào)用
5.12Verilog HDL層次化結(jié)構(gòu)
5.12.1模塊和模塊例化
5.12.2覆蓋模塊參數(shù)值
5.12.3端口
5.12.4生成結(jié)構(gòu)
5.12.5層次化的名字
5.12.6向上名字引用
5.12.7范圍規(guī)則
5.13Verilog HDL設(shè)計配置
5.13.1配置格式
5.13.2庫
5.13.3配置例子
5.13.4顯示庫綁定信息
5.13.5庫映射例子
5.14Verilog HDL指定塊
5.14.1模塊路徑聲明
5.14.2為路徑分配延遲
5.14.3混合模塊延遲和分布式延遲
5.14.4驅(qū)動布線邏輯
5.14.5脈沖過濾行為的控制
5.15Verilog HDL時序檢查
5.15.1使用穩(wěn)定窗口檢查時序
5.15.2用于時鐘和控制信號的時序檢查
5.15.3邊沿控制符
5.15.4提示符: 用戶定義對時序沖突的響應(yīng)
5.15.5使能有條件的時序檢查
5.15.6向量信號的時序檢查
5.15.7負(fù)時序檢查
5.16Verilog HDL SDF逆向注解
5.16.1映射SDF結(jié)構(gòu)到Verilog
5.16.2多個注解
5.16.3多個SDF文件
5.16.4脈沖限制注解
5.16.5SDF到Verilog延遲值映射
5.17Verilog HDL系統(tǒng)任務(wù)和函數(shù)
5.17.1顯示任務(wù)
5.17.2文件輸入輸出系統(tǒng)任務(wù)和函數(shù)
5.17.3時間標(biāo)度系統(tǒng)任務(wù)
5.17.4仿真控制任務(wù)
5.17.5可編程邏輯陣列建模系統(tǒng)任務(wù)
5.17.6隨機(jī)分析任務(wù)
5.17.7仿真時間函數(shù)
5.17.8轉(zhuǎn)換函數(shù)
5.17.9概率分布函數(shù)
5.17.10命令行輸入
5.17.11數(shù)學(xué)函數(shù)
5.18Verilog HDL的VCD文件
5.18.1四態(tài)VCD文件的創(chuàng)建
5.18.2四態(tài)VCD文件的格式
5.18.3擴(kuò)展VCD文件的創(chuàng)建
5.18.4擴(kuò)展VCD文件的格式
5.19Verilog HDL編譯器指令
5.19.1'celldefine和'endcelldefine
5.19.2'default_nettype
5.19.3'define和'undef
5.19.4'ifdef、'else、'elsif、'endif和'ifndef
5.19.5'include
5.19.6'resetall
5.19.7'line
5.19.8'timescale
5.19.9'unconnected_drive和'nounconnected_drive
5.19.10'pragma
5.19.11'begin_keywords和'end_keyword
5.20Verilog HDL編程語言接口PLI
5.20.1Verilog HDL PLI發(fā)展過程
5.20.2Verilog HDL PLI提供的功能
5.20.3Verilog HDL PLI原理
5.20.4Verilog HDL VPI工作原理
5.21Verilog HDL(IEEE 1364—2005)關(guān)鍵字列表
第6章基本數(shù)字邏輯單元Verilog HDL描述
6.1組合邏輯電路的Verilog HDL描述
6.1.1邏輯門的Verilog HDL描述
6.1.2編碼器的Verilog HDL描述
6.1.3譯碼器的Verilog HDL描述
6.1.4多路選擇器的Verilog HDL描述
6.1.5數(shù)字比較器的Verilog HDL描述
6.1.6總線緩沖器的Verilog HDL描述
6.2數(shù)據(jù)運(yùn)算操作的Verilog HDL描述
6.2.1加法操作的Verilog HDL描述
6.2.2減法操作的Verilog HDL描述
6.2.3乘法操作的Verilog HDL描述
6.2.4除法操作的Verilog HDL描述
6.2.5算術(shù)邏輯單元的Verilog HDL描述
6.3時序邏輯電路的Verilog HDL描述
6.3.1觸發(fā)器和鎖存器的Verilog HDL描述
6.3.2計數(shù)器的Verilog HDL描述
6.3.3移位寄存器的Verilog HDL描述
6.3.4脈沖寬度調(diào)制PWM的Verilog HDL描述
6.4存儲器的Verilog HDL描述
6.4.1ROM的Verilog HDL描述
6.4.2RAM的Verilog HDL描述
6.5有限自動狀態(tài)機(jī)的Verilog HDL描述
6.5.1FSM設(shè)計原理
6.5.2FSM的分類及描述
第7章Verilog HDL數(shù)字系統(tǒng)設(shè)計和實(shí)現(xiàn)
7.1設(shè)計所用外設(shè)的原理
7.1.1LED燈驅(qū)動原理
7.1.2開關(guān)驅(qū)動原理
7.1.3七段數(shù)碼管驅(qū)動原理
7.1.4VGA顯示器原理
7.1.5通用異步接收發(fā)送器原理
7.2系統(tǒng)設(shè)計原理
7.3創(chuàng)建新的設(shè)計工程
7.4Verilog HDL數(shù)字系統(tǒng)設(shè)計流程
7.4.1設(shè)計分頻時鐘模塊2
7.4.2設(shè)計和仿真計數(shù)器模塊
7.4.3設(shè)計頂層模塊
7.4.4設(shè)計和例化分頻時鐘模塊1
7.4.5設(shè)計七段數(shù)碼管模塊
7.4.6設(shè)計和例化分頻時鐘模塊3
7.4.7設(shè)計和例化通用異步收發(fā)器模塊
7.4.8設(shè)計和例化分頻時鐘模塊4
7.4.9設(shè)計和例化VGA控制器模塊
第8章創(chuàng)建和封裝用戶IP設(shè)計與實(shí)現(xiàn)
8.1Vivado定制IP流程導(dǎo)論
8.2封裝用戶定義IP核設(shè)計流程
8.2.1創(chuàng)建新的封裝IP設(shè)計工程
8.2.2添加Verilog HDL設(shè)計源文件
8.2.3設(shè)置定制IP的庫名和目錄
8.2.4封裝定制IP的實(shí)現(xiàn)
8.3調(diào)用用戶自定義IP實(shí)現(xiàn)流程
8.3.1創(chuàng)建新的調(diào)用IP工程
8.3.2設(shè)置包含調(diào)用IP的路徑
8.3.3創(chuàng)建基于IP的系統(tǒng)
8.4系統(tǒng)行為級仿真
8.5系統(tǒng)設(shè)計綜合
8.6系統(tǒng)實(shí)現(xiàn)和驗(yàn)證
第9章Vivado調(diào)試工具原理及實(shí)現(xiàn)
9.1設(shè)計調(diào)試原理和方法
9.2FIFO IP的生成和調(diào)用
9.2.1創(chuàng)建新的工程
9.2.2添加FIFO IP核
9.2.3添加頂層設(shè)計文件
9.2.4添加XDC文件
9.3網(wǎng)表插入調(diào)試探測流程方法及實(shí)現(xiàn)
9.3.1網(wǎng)表插入調(diào)試探測流程的方法
9.3.2網(wǎng)表插入調(diào)試探測流程的實(shí)現(xiàn)
9.4使用添加Verilog HDL屬性調(diào)試探測流程
9.5使用Verilog HDL例化調(diào)試核調(diào)試探測流程
第10章數(shù)字系統(tǒng)高級設(shè)計方法
10.1數(shù)字系統(tǒng)設(shè)計目標(biāo)
10.2時序的基本概念
10.2.1基本術(shù)語
10.2.2時序路徑
10.2.3建立和保持松弛
10.2.4去除和恢復(fù)檢查
10.3邏輯復(fù)制和復(fù)用
10.3.1邏輯復(fù)制
10.3.2邏輯復(fù)用
10.4并行和流水線
10.4.1并行設(shè)計
10.4.2流水線設(shè)計
10.5同步和異步單元處理
10.5.1同步單元處理
10.5.2異步單元處理
10.6邏輯結(jié)構(gòu)處理
10.6.1邏輯結(jié)構(gòu)設(shè)計方法
10.6.2if和case語句的使用
第11章數(shù);旌舷到y(tǒng)設(shè)計
11.1模數(shù)轉(zhuǎn)換器原理
11.1.1模數(shù)轉(zhuǎn)換器的參數(shù)
11.1.2模數(shù)轉(zhuǎn)換器的類型
11.2數(shù)模轉(zhuǎn)換器原理
11.2.1數(shù)模轉(zhuǎn)換器的參數(shù)
11.2.2數(shù)模轉(zhuǎn)換器的類型
11.3基于XADC的信號采集和處理原理及實(shí)現(xiàn)
11.3.1XADC模塊原理
11.3.2XADC原語
11.3.31602模塊原理
11.3.4信號采集、處理和顯示的實(shí)現(xiàn)
11.4基于DAC的信號發(fā)生器的設(shè)計原理及實(shí)現(xiàn)
11.4.1D/A轉(zhuǎn)換器工作原理
11.4.2函數(shù)信號產(chǎn)生原理
11.4.3設(shè)計實(shí)現(xiàn)