Verilog數字系統設計與FPGA應用(第2版)(MOOC版)
內容描述
本書按照Verilog數字系統設計的前端設計流程編寫,從Verilog HDL、HDL編碼指南、邏輯驗證到測試平臺,在此基礎上對當前主流Altera FPGA/CPLD器件的應用進行介紹,並對片上可編程系統進行深入探討。本書內容由淺入深、循序漸進,既容易入門,又能深入到集成電路設計領域。
本書可作為電子、電腦等信息類專業高年級本科生及研究生的教材,也可以作為集成電路設計和FPGA開發工程師的技術參考書。
目錄大綱
目錄
第1章緒論
1.1集成電路設計技術的發展
1.2Verilog HDL和VHDL
1.2.1Verilog HDL和VHDL的發展歷史
1.2.2Verilog HDL和VHDL的比較
1.3FPGA/CPLD簡介
1.3.1可編程邏輯器件的發展歷史
1.3.2PAL/GAL
1.3.3CPLD
1.3.4FPGA
1.3.5CPLD與FPGA的區別
1.3.6SOPC
1.4IP核
習題1
第2章Verilog HDL 基礎
2.1Verilog HDL的基本單元——模塊
2.1.1簡單Verilog HDL程序實例
2.1.2Verilog HDL程序的基本結構
2.1.3邏輯功能描述
2.2Verilog HDL基本語法
2.2.1詞法規定
2.2.2常量及其表示
2.2.3變量的數據類型
2.3運算符及表達式
2.3.1算術運算符
2.3.2位運算符
2.3.3縮位運算符
2.3.4關系運算符
2.3.5等式運算符
2.3.6邏輯運算符
2.3.7移位運算符
2.3.8位拼接運算符
2.3.9條件運算符
2.3.10優先級別
2.4過程語句
2.4.1initial語句
2.4.2always語句
2.5塊語句
2.5.1串行塊begin…end
2.5.2並行塊fork…join
2.6賦值語句
2.6.1連續賦值
2.6.2過程賦值
2.7條件語句
2.7.1if…else語句
2.7.2case語句
2.7.3條件的描述完備性
2.8循環語句
2.8.1forever語句
2.8.2repeat語句
2.8.3while語句
2.8.4for語句
2.8.5disable 語句
2.9task和function說明語句
2.9.1task說明語句
2.9.2function說明語句
2.9.3task和function說明語句的不同點
2.10編譯向導
2.10.1宏定義語句`define
2.10.2文件包含語句`include
2.10.3條件編譯命令`ifdef、`else、`endif
2.10.4時間尺度命令`timescale
2.11Verilog HDL設計舉例
2.11.1組合邏輯電路描述
2.11.2時序邏輯電路
2.12小結
習題2
第3章Verilog HDL層次化描述
3.1設計方法學
3.2數據流建模描述方式
3.3行為建模描述方式
3.4結構化建模描述方式
3.4.1實例化已有模塊
3.4.2實例化基本門級和開關級元件
3.4.3用戶定義的原語
3.5混合設計描述
3.6用Verilog HDL 建模實現自頂向下設計實例
3.7小結
習題3
第4章Verilog有限狀態機設計
4.1有限狀態機
4.1.1FSM的類型
4.1.2FSM的基本結構
4.1.3標準的四狀態Mealy機和Moore機代碼描述
4.1.4使用FSM設計數字系統的優點
4.2FSM的Verilog HDL描述方法
4.2.1設計FSM的基本原則
4.2.2FSM的設計步驟
4.2.3狀態圖和算法狀態機圖
4.2.4FSM編碼方式和非法狀態處理辦法
4.2.5FSM的描述方法
4.3FSM描述方法實例
4.3.11001序列信號檢測器設計
4.3.2簡單十字路口交通信號控制器設計
4.3.3復雜交通燈信號控制器設計
4.4小結
習題4
第5章Verilog代碼規範和代碼風格
5.1Verilog代碼規範
5.1.1命名規範
5.1.2格式規範
5.1.3RTL可綜合代碼編寫規範
5.1.4常見錯誤
5.2Verilog代碼風格
5.2.1基本原則
5.2.2設計技巧
5.3小結
習題5
第6章邏輯驗證與測試平臺
6.1測試平臺的基本概念
6.1.1什麽是測試平臺
6.1.2測試平臺模板
6.2模擬激勵的語法
6.2.1initial語句和always語句施加激勵
6.2.2時鐘信號的產生
6.2.3復位信號
6.2.4並行激勵
6.2.5循環激勵
6.2.6數組激勵
6.2.7強制激勵
6.2.8包含文件
6.2.9文件的讀寫
6.2.10矢量採樣
6.2.11矢量回放
6.2.12MATLAB
6.3系統函數和系統任務
6.3.1$display、$write和$strobe
6.3.2系統任務$monitor
6.3.3$fopen、$fclose、$fdisplay和$fmonitor
6.3.4系統任務$readmemb和$readmemh
6.3.5系統任務$finish和$stop
6.3.6系統任務$random
6.3.7系統函數$time和$realtime
6.3.8值變轉儲文件
6.4基礎實例
6.5應用實例
6.5.1小型FIFO設計與模擬
6.5.2自動售貨機設計與模擬
6.5.3洗衣機控制器設計與模擬
6.6小結
習題6
第7章邏輯綜合與靜態時序分析
7.1邏輯綜合概述
7.1.1什麽是邏輯綜合
7.1.2邏輯綜合的特點
7.1.3邏輯綜合的要求
7.2邏輯綜合流程和語法
7.3邏輯綜合實例
7.3.1組合電路的綜合(4位ALU的層次化綜合)
7.3.2時序電路的綜合(數字跑表的綜合)
7.4門級網表的驗證
7.4.1ALU網表的門級模擬
7.4.2跑表網表的門級模擬
7.5形式驗證
7.6物理綜合
7.7靜態時序分析
7.8小結
習題7
第8章Altera FPGA/CPLD器件及編程配置
8.1可編程器件的歷史和發展趨勢
8.2FPGA/CPLD器件結構
8.2.1CPLD的基本結構
8.2.2FPGA的基本結構
8.2.3FPGA/CPLD的器件選型
8.3Altera系列FPGA/CPLD器件
8.3.1MAX各系列器件
8.3.2Cyclone各系列器件
8.3.3Arria各系列器件
8.3.4Stratix各系列器件
8.4編程配置
8.4.1編程硬件
8.4.2編程配置策略
8.4.3下載電纜驅動程序安裝指導
8.4.4Quartus Ⅱ 9.0下的編程下載
8.5小結
習題8
第9章數字電路與系統的設計實例
9.1三層電梯控制器設計
9.1.1模塊劃分
9.1.2電梯控制模塊
9.1.3顯示轉換模塊
9.1.4分頻模塊
9.1.5系統電路圖
9.2出租車計價器設計
9.2.1系統分析和模塊劃分
9.2.2速度調節模塊
9.2.3里程顯示模塊
9.2.4金額顯示模塊
9.2.5系統電路圖
9.3基於FPGA的電子點菜系統設計
9.3.1系統分析和模塊劃分
9.3.2輸入控制模塊
9.3.3LCD顯示模塊
9.3.4菜單存儲模塊
9.3.5總價計算模塊
9.3.6LED顯示模塊
9.3.7系統電路圖
9.4基於TRDB_LCM的液晶顯示模塊的應用
9.4.1TRDB_LCM顯示屏簡介
9.4.2TRDB_LCM顯示屏的主要參數
9.4.3模塊劃分
9.4.4彩條顯示模塊
9.4.5LCM配置模塊
9.4.6I2S控制器模塊
9.4.7LCM鎖相環
9.5維納濾波器設計
9.5.1維納濾波算法原理
9.5.2模塊劃分
9.5.3濾波窗口模塊
9.5.4維納濾波算法模塊
9.5.5聯合測試平臺
9.5.6系統電路圖
習題9
第10章可編程片上系統
10.1SOPC簡介
10.1.1SOPC開發流程
10.1.2Nios Ⅱ處理器簡介
10.1.3Nios Ⅱ外設接口
10.1.4Avalon總線
10.2SOPC開發實例
10.3SOPC設計的常見問題及解決方法
習題10
附錄A常用EDA軟件使用指南
A.1Quartus Ⅱ 9.1使用指南
A.1.1Quartus Ⅱ文體輸入法設計電路實例
A.1.2混合輸入法完成層次化設計實例
A.1.3嵌入式鎖相環宏功能模塊使用實例
A.2ModelSim使用指南
附錄BDE2介紹
參考文獻