內容簡介
本書簡要介紹了FPGA的編程技術,詳細討論了以Altera FPGA為代表的可程式器件的結構和特點、Altera QuartusⅡ集成環境的使用以及目前工業界最常用的仿真工具Modelsim的使用。重點講授了FPGA設計流程中的基本概念、所採用的步驟和應該遵循的原則,包括模組劃分原則、可綜合Verilog編碼風格、驗證程式的編寫方法和靜態時序分析等。另外,本書結合Altera公司的NiosⅡ軟核,簡單介紹了基於SOPC的系統設計方法以及Altera SOPC Builder軟體的使用方法。
本書可作為從事數字積體電路設計及相關工程技術人員的參考書,也可作為大專院校電子信息、自動控制等專業高年級本科生及研究生的教學用書。
目錄
第1章 緒論
1.1 FPGA概述
1.1.1 FPGA發展的簡要回顧
1.1.2 FPGA與ASIC
1.2 可程式邏輯器件的基本概念
1.3 簡單可程式器件(sPLD)的結構
1.4 高密度可程式邏輯器件
1.4.1 複雜可程式邏輯器件CPLD
1.4.2 現場可程式門陣列FPGA
1.4.3 CPLD和FPGA的區別
1.4.4 FPGA/CPLD廠家簡介
1.5基於FPGA的設計流程與設計方法
1.5.1 基於FPGA的設計流程
1.5.2 自頂向下和自底向上的設計方法學
1.5.3 基於IP核的設計
1.6 EDA技術簡介
第2章 可程式邏輯器件
2.1 Altera器件概述
2.1.1 FPGA系列簡介
2.1.2 EPLD系列簡介
2.1.3 結構化ASIC器件
2.1.4 FPGA器件的配置晶片
2.2 Altera的EPID器件系列
2.2.1 EPLD器件的特性
2.2.2 MAX9000器件的結構
2.2.3 MAX II器件的結構
2.3 Altera的FPGA器件
2.3.1 簡單FPGA器件
2.3.2 複雜FPGA器件
2.3.3 新型FPGA器件1
2.4 Xilinx公司產品簡介1
2.4.1 Xilinx CPLD器件
2.4.2 Xilinx FPGA器件的特性
2.4.3 Xilinx FPGA器件的結構
2.5 Lattice公司產品簡介
2.5.1 I,attice CPLD器件系列
2.5.2 Lattice FPGA產品系列
2.5.3 FPSC產品系列1
2.5.4 低密度PLD產品系列
2.5.5 其他產品
2.6 Actel公司產品簡介
2.6.1 Flash FPGA器件
2.6.2 反熔絲FPGA器件
2.6.3 航空航天和軍用器件
窘3章 FPGA設計入門
3.1 系統的抽象層次與高級硬體描述語言Verilog
3.2 用Verilog語言建立數字電路模型
3.2.1 代碼的書寫風格
3.2.2 可綜合代碼的編碼風格
3.2.3 時序電路的設計
3.3 模組設計
3.4 系統規範
3.4.1 系統規範的內容
3.4.2 選擇FPGA
第4章 設計驗證
4.1 驗證綜述
4.1.1 驗證的概念
4.1.2 驗證和測試
4.1.3 自頂向下和自底向上的驗證方法
4.1.4 主要驗證技術 1
4.1.5 驗證工具的介紹
4.1.6 驗證計畫和流程
4.2 功能驗證
4.2.1 驗證程式(Testbench)的組成
4.2.2 實用構造Trestbench技術
4.3 基於斷言的驗證
4.4 時序驗證
4.4.1 靜態時序分析概述
4.4.2 靜態時序分析中的基本概念
4.4.3 假路徑和多周期路徑
4.4.4 時序驗證中的系統任務
第5章 ModeISjm工具介紹
5.1.ModelSim概述
5.1.1 基本仿真流程
5.1.2 工程仿真流程1
5.1.3 多資料庫仿真流程1
5.1.4 調試工具
5.2 ModelSim工程
5.2.1 創建一個新工程
5.2.2 編譯和載入設計
5.2.3 利用資料夾組織工程
5.2.4 在工程中進行仿真配置
5.2.5 關於工程的其他基本操作
5.2.6 Proiect標籤頁及選單簡介1
5.2.7 指定檔案屬性和工程設定
5.3 設計庫
5.3.1 設計庫簡介
5.3.2 使用設計庫工作
5.3.3 導入FPGA設計庫
5.4 Verilog基本仿真
5.4.1 創建工作的設計資料庫
5.4.2 編譯設計
5.4.3 運行仿真
5.4.4 設定斷點與原始碼單步執行
5.4.5 結束仿真
5.4.6 增量編譯
5.5 在Verilog仿真中連線第三方資源庫
5.5.1 仿真連線資源庫
5.5.2 永久性映射資源庫
5.6 使用波形視窗 1
5.6.1 向波形視窗添加項目
5.6.2 波形顯示的圖像縮放
5.6.3 在波形視窗中使用游標
5.6.4 存儲波形視窗格式
5.6.5 WLF檔案(Datasets)
5.7 使用數據流(dataflow)視窗進行調試
5.7.1 編譯並載入一個例子
5.7.2 觀察設計的連線性
5.7.3 跟蹤事件
5.7.4 追蹤未知態
5.7.5 在dataflow視窗中顯示層次結構
5.8 存儲器的查看與初始化
5.8.1 編譯和裝入設計舉例
5.8.2 查看存儲器
5.8.3 保存存儲器數據到一個檔案
5.8.4 初始化一個存儲區
5.8.5 互動式調試命令
5.9 使用性能分析器仿真
5.9.1 性能分析器簡介及本節的設計檔案
5.9.2 編譯、載入例子的設計
5.9.3 運行仿真
5.9.4 使用數據改進性能
5.9.5 過濾並保存數據
5.10 仿真代碼覆蓋情況
5.10.1 編譯、載入例子的設計
5.10.2 在主視窗中查看統計
5.10.3 在原始碼視窗中查看統計
5.10.4 在信號視窗中查看狀態翻轉統計
5.10.5 指定不進行覆蓋率統計的行或檔案
5.10.6 創建代碼覆蓋率報告
5.11 波形比較過程
5.11.1 波形比較器簡介及本節的設計檔案
5.11.2 創建參考數據檔案和測試數據檔案
5.11.3 比較仿真運行
5.11.4 查看比較數據
5.11.5 保存和重裝比較數據.
5.12 ModelSim自動運行
5.12.1 創建簡單的DO檔案
5.12.2 使用“啟動DO檔案”運行ModelSim
5.12.3 命令行方式運行ModelSim
5.12.4 與ModelSim一起使用Tcl
5.13 使用ModelSim進行後仿真
第6章 Quartus集成環境
6.1 Quartus II軟體概述
6.1.1 Quartus II軟體的安裝
6.1.2 Quartus II軟體工具授權
6.2 Quartus II設計流程簡介
6.3 設計輸入
6.3.1 創建一個工程
6.3.2 創建一個設計
6.3.3 Quartus使用舉例
6.4 配置設計工程的編譯約束1
6.4.1 使用Assignment Editor
6.4.2 使用引腳規劃器(Pin Planner)1
6.4.3 使用Settings對話框
6.5 綜合設計
6.5.1 使用QuartusII Verilog HDL及VHDL集成綜合工具
6.5.2 使用其他EDA綜合工具 1
6.5.3 “Analysis&Synthesis”的控制 1
6.6 布局布線
6.6.1 執行一個完整的增量編譯
6.6.2 分析布局布線結果
6.6.3 布局布線的最佳化
6.7 基於模組的設計
6.7.1 Quartus II基於模組化的設計流程
6.7.2 使用邏輯鎖區域(LogicLock Regins)
6.7.3 在自頂向下增量編譯流程中使用區域邏輯鎖
6.7.4 在自底向上邏輯鎖流程中保存中間綜合結果
6.7.5 在EDA工具中集中使用邏輯鎖
6.8 Quartus II的時序分析(17lining Analysis)
6.8.1 在Quartus II軟體中執行時序分析
6.8.2 進行前期的時序評估
6.8.3 查看時序分析結果
6.8.4 使用第三方EDA工具進行時序分析
6.9 時序逼近(Timing Closure)
6.9.1使用時序逼近底層圖(Timing Closure Floorplan)
6.9.2使用時序最佳化顧問
6.9.3使用網表最佳化實現時序逼近
6.9.4使用L,ogicLock Regins實現時序逼近
6.9.5使用增量編譯達到時序逼近
6.10 功率分析(Power Analysis)
6.1l 對器件的編程與配置
6.12 調試
6.12.1 使用SignalTap II邏輯分析儀
6.12.2 使用SignalProbe信號探針
6.12.3 使用In-System Memory Content Editor
6.12.4 使用暫存器傳輸級查看器(RTL Viewer)
6.12.5 使用晶片編輯器 1
第7章 FPGA設計實例
7.1 74181ALU運算器設計
7.1.1 74181ALU的功能說明
7.1.2 邏輯電路
7.1.3 Verilog程式設計
7.1.4 ALV運算器的功能驗證
7.2 偽隨機序列設計
7.2.1 m序列
7.2.2 9位的LFSR計數器
7.2.3 數字序列的擾碼
7.2.4 循環冗餘校驗
7.3 SDH解幀器設計
7.4.8b/10b編碼設計
7.4.1 8b/10b編碼技術
7.4.2 8b/10b編碼器的設計
7.4.3 程式代碼簡介
7.4.4 Testbench程式設計
第8章 AItera系統級的SOPC開發
8.1 Altera II的使用
8.2 SOPC開發流程概述
8.2.1 套用系統需求分析 1
8.2.2 使用SOPC Builder建立SOPC系統設計
8.2.3 Nios II監控軟體的開發
8.2.4 靈活運用SOPC開發流程
8.3 Altera Nios CPU簡介
8.4 Altcra Nios外設組件簡介
8.5 Altera 1C20 Demo板介紹
8.6 Altera 1C20試驗板上的SOPC系統開發實例
8.6.1 開發實例功能介紹
8.6.2 開發設計步驟
附錄頻率計系統的設計
參考文獻
……