FPGA 現代數字系統設計教程 — 基於 Xilinx 可編程邏輯器件與 Vivado 平臺
內容描述
本書是以Xilinx公司全可編程FPGA和SoC為基礎,針對最新的設計工具軟件——Vivado介紹FPGA設計現代數字系統的理論與設計方法。 全書分為6章,內容包括現代數字系統設計概論、可編程邏輯器件、Verilog HDL硬件描述語言、Vivado設計工具、數字系統的高級設計與綜合,以及綜合性設計項目實例。各章都安排了針對性強的已驗證過的設計實例,便於讀者二次開發使用。 本書可作為高等院校電子、通信、自動化、電腦等專業本科“數字電路與邏輯設計”“EDA技術”“綜合電子系統設計”等課程的教學參考教材,也可作為信息類專業研究生和數字系統設計人員的參考書。
目錄大綱
目錄
第1章現代數字系統設計概論
1.1概述
1.2數字系統的層次化結構
1.2.1開關電路級的基礎——CMOS反相器
1.2.2邏輯級的門電路
1.2.3寄存器傳輸級的有限狀態機
1.2.4數字系統的系統級構成
1.2.5複雜系統的算法級設計
1.3數字系統設計的描述方法
1.3.1原理圖設計
1.3.2程序設計法
1.3.3IP模塊的使用
1.3.4基於模型的設計技術
1.3.5高層次綜合——HLS設計
1.3.6腳本設計技術
1.4IP技術
1.4.1IP知識產權模塊
1.4.2IP模塊的種類與應用
1.4.3片上系統和IP核復用
1.5全可編程FPGA/SoC實現智能化系統
1.5.1軟件智能化和硬件最佳化
1.5.2在線可重構技術
1.5.3可重配置加速堆棧
1.5.4自適應計算加速平台
本章小結
習題
第2章可編程邏輯器件
2.1概述
2.1.1可編程邏輯器件概述
2.1.2可編程邏輯器件分類
2.2CPLD的結構和工作原理
2.2.1簡單可編程邏輯器件原理
2.2.2CPLD的結構和工作原理
2.3FPGA的結構和工作原理
2.3.1SRAM查找表類型
2.3.2反熔絲多路開關類型
2.4邏輯級FPGA的結構和工作原理
2.4.1可編程邏輯
2.4.2可編程互連線
2.4.3可編程I/O
2.5系統級FPGA的結構和工作原理
2.5.1片上存儲器及接口
2.5.2數字時鐘管理
2.5.3時鐘資源
2.5.4系統級I/O
2.6平台級FPGA的結構和工作原理
2.6.1DSP模塊
2.6.2高速串行接口
2.7全可編程FPGA的特性和結構
2.7.1採用統一的7系列架構
2.7.2高性能和低功耗結合的工藝
2.8ASIC架構的UltraScale系列
2.8.1UltraScale架構
2.8.2SSI互連技術
2.9FPGA的配置
2.9.1編程原理簡介
2.9.2編程模式
2.9.3典型的配置電路
2.9.4編程流程
2.9.5部分重配置
本章小結
習題
第3章Verilog硬件描述語言
3.1硬件描述語言概述
3.1.1硬件描述語言特點
3.1.2層次化設計
3.2Verilog HDL程序的基本結構
3.2.1模塊結構分析
3.2.2模塊的實例化
3.3Verilog HDL詞法、數據類型和運算符
3.3.1詞法約定
3.3.2數據類型
3.3.3運算符
3.4Verilog HDL行為語句
3.4.1賦值語句
3.4.2順序塊和並行塊語句
3.4.3結構說明語句
3.4.4條件語句
3.4.5循環語句
3.4.6系統任務和系統函數
3.4.7編譯預處理命令
3.4.8Verilog HDL可綜合設計
3.5Verilog HDL設計舉例
3.5.1組合電路設計
3.5.2時序電路設計
3.5.3數字系統設計
3.5.4數碼管掃描顯示電路
3.5.5LED通用異步收發電路設計
3.6Testbench文件與設計
本章小結
習題
第4章Vivado設計工具
4.1Vivado工具概述
4.1.1單一的、共享的、可擴展的數據模型
4.1.2標準化XDC約束文件——SDC
4.1.3多維度分析佈局器
4.1.4IP封裝器、集成器和目錄
4.1.5Vivado HLS
4.1.6其他特性
4.1.7TCL特性
4.1.8Vivado按鍵流程執行設計項目
4.2Vivado設計流程
4.2.1創建工程
4.2.2功能仿真
4.2.3RTL級分析
4.2.4綜合設計
4.2.5分配引腳和時序
4.2.6設計實現
4.2.7生成bit文件
4.2.8下載
4.3產生IP集成器子系統設計
4.3.1產生IP集成器模塊設計
4.3.2定制IP
4.3.3完成子系統設計
4.3.4產生IP輸出產品
4.3.5例示IP到設計中
4.4硬件診斷
4.4.1設計診斷概述
4.4.2Vivado邏輯診斷IP核
4.4.3HDL例示法添加ILA核
4.4.4系統內診斷uart_led設計
4.4.5網表插入法添加診斷核
4.4.6添加VIO診斷核
本章小結
習題
第5章數字系統的高級設計與綜合
5.1Verilog編程風格
5.1.1邏輯推理
5.1.2陷阱
5.1.3設計組織
5.1.4針對Xilinx FPGA的HDL編碼
5.2綜合優化
5.2.1速度與面積
5.2.2資源共享
5.2.3流水線、重新定時和寄存器平衡
5.2.4有限狀態機編譯
5.3數字系統的同步設計
5.3.1同步設計基本原理
5.3.2建立和保持時間
5.3.3時序例外約束
5.3.4同步設計中的異步問題
5.4數字系統的綜合
5.4.1數字系統綜合概述
5.4.2系統級綜合
5.4.3高級綜合
5.4.4寄存器傳輸級綜合
5.4.5邏輯級綜合
本章小結
習題
第6章綜合設計實例
6.1實例一: 鍵盤輸入電路設計
6.1.1PS/2通信協議
6.1.2PS/2接口設計
6.1.3鍵盤輸入程序
6.2實例二: VGA顯示電路設計
6.2.1設計任務
6.2.2原理分析與系統方案
6.2.3彩條顯示
6.2.4Logo的VGA顯示
6.3實例三: 俄羅斯方塊遊戲設計
6.3.1系統組成
6.3.2數據通道
6.3.3控制單元
6.3.4按鍵輸入處理模塊
6.3.5顯示部分
6.4實例四: 五子棋人機對弈遊戲設計
6.4.1gobang_top
6.4.2gobang_datapath
6.4.3gobang_logic
6.4.4gobang_strategy
6.4.5score_calculater
6.4.6win_checker
6.4.7輸出顯示
習題
附錄AEGO1用戶手冊
A.1概述
A.2FPGA
A.3闆卡供電
A.4系統時鐘
A.5FPGA配置
A.6通用I/O接口
A.6.1按鍵
A.6.2開關
A.6.3LED
A.6.4七段數碼管
A.7VGA接口
A.8音頻接口
A.9USBUART/JTAG接口
A.10USB轉PS2接口
A.11SRAM接口
A.12模擬電壓輸入
A.13DAC輸出接口
A.14藍牙模塊
A.15通用擴展I/O
附錄BVerilog HDL(IEEE 1364—2001)關鍵詞表及說明
參考文獻
作者介紹
孟憲元
清華大學電子工程系教授,長期從事EDA相關技術和課程教學和科研工作,具有超過20年的FPGA技術研究和項目開發經歷,親歷了FPGA技術的發展歷程,積累了豐富實踐經驗,曾出版《新一代FPGA設計套件Vivado應用指南》等暢銷教材。