《XilinxFPGA高級設計及應用》用簡潔的語言向讀者展示了FPGA高質量和可靠性設計中必須掌握的概念、思想和設計方法,如FPGA設計思想、高速數據傳輸系統設計、高級配置管理、空間應用可靠性設計、分區設計和高效測試系統設計等。本書來源于工程實際,選取的專題都是實際工程開發中必須面對、難度很高的問題。作者結合多年的工作經驗編寫了本書,書中深入剖析了其實現原理和技術細節,并提供了使用方法和實例。
第1章 概述
1.1 可編程邏輯器件與PLD開發工具
1.1.1 可編程邏輯器件
1.1.2 可編程邏輯器件的發展歷史
1.1.3 PLD開發工具
1.2 FPGA工作原理與開發流程
1.3 可編程技術
1.3.1 SRAM編程技術
1.3.2 Flash/E2PROM編程技術
1.3.3 反熔絲編程技術
1.3.4 編程技術比較
1.4 FPGA芯片結構
1.4.1 可編程輸入/輸出單元(IOB)
1.4.2 可配置邏輯塊(CLB)
1.4.3 數字時鐘管理模塊(DCM)
1.4.4 嵌入塊式RAM(BRAM)
1.4.5 布線資源
1.4.6 內嵌功能單元
1.4.7 內嵌專用硬核
1.4.8 軟核、硬核及固核的概念
1.5 Xilinx公司FPGA介紹
1.5.1 Spartan系列
1.5.2 Virtex系列
第2章 FPGA設計思想
2.1 可綜合設計思想
2.1.1 VHDL語言概述
2.1.2 設計層次
2.1.3 可綜合描述規范
2.1.4 組合邏輯電路可綜合設計
2.1.5 時序邏輯電路可綜合設計
2.2 面積與速度互換思想
2.2.1 利用層次化設計控制設計結構
2.2.2 if語句和case語句控制實現結構
2.2.3 減少關鍵路徑的邏輯級數
2.2.4 流水線Pipelining
2.2.5 串行轉并行處理
2.2.6 組合邏輯和時序邏輯分離
2.3 時鐘設計思想
2.3.1 工作時鐘模型
2.3.2 全局時鐘
2.3.3 門控時鐘
2.3.4 多級邏輯時鐘
2.3.5 行波時鐘
2.3.6 多時鐘系統
2.3.7 Xilinx FPGA中的時鐘資源
2.3.8 時序約束
2.4 同步設計思想
2.4.1 異步電路和同步電路
2.4.2 一般組合邏輯的同步設計
2.4.3 二次時鐘的同步設計
2.4.4 多時鐘系統的同步設計
2.4.5 非同源時鐘同步化(D觸發器使能信號的合理使用)
2.4.6 數據接口同步設計
2.5 延時電路設計思想
2.6 復位電路設計思想
2.6.1 同步復位
2.6.2 異步復位
2.6.3 觸發器組模塊的復位
2.6.4 復位電路的同步化方法
2.7 抗干擾設計思想
2.7.1 干擾產生的原因
2.7.2 干擾抑制設計方法
2.7.3 基于采樣法的串口通信設計
2.8 可靠性設計檢查單
第3章 高速數據傳輸設計
3.1 概述
3.1.1 高速數據通信的發展現狀
3.1.2 幾種高速數據通信方案簡介
3.2 高速數據傳輸中的同步技術
3.2.1 同步方法及其特點
3.2.2 同步方式比較及對數據通信的影響
3.3 FPGA對同步技術的支持
3.3.1 動態相位調整技術
3.3.2 基于ChipSync的動態相位調整方法
3.3.3 串行收發器SERDES(ISERDES和OSERDES)
3.4 應用實例——基于SERDES的多路高速同步傳輸系統
3.4.1 系統方案
3.4.2 發送模塊
3.4.3 接收模塊
3.5 基于RocketIO的高速數據傳輸系統
3.5.1 自同步通信系統架構
3.5.2 RocketIO簡介
3.5.3 基于標準協議的可靠通信模型
3.5.4 應用實例——基于自定義協議的即時傳輸系統
3.6 高速數據通信的加固設計
3.6.1 數據通信加固的概念
3.6.2 交織漢明碼原理及其性能分析
3.6.3 基于交織漢明碼的高速通信加固設計
3.7 LVDS應用設計
3.7.1 LVDS簡介
3.7.2 LVDS系統設計
第4章 Xilinx FPGA高級配置管理
4.1 配置模式
4.1.1 配置接口及配置模式
4.1.2 配置引腳
4.1.3 SelectMAP接口
4.1.4 和配置相關的BitGen選項
4.2 配置電路
4.2.1 配置時的電源要求
4.2.2 常用配置存儲器介紹
4.2.3 主串模式配置電路
4.2.4 主從模式配置電路
4.2.5 SelectMAP模式配置電路
4.3 FPGA配置過程
4.3.1 配置數據流加載過程
4.3.2 從串模式配置過程
4.3.3 SelectMAP模式配置數據加載
4.3.4 延時加載
4.4 配置命令分析
4.4.1 配置幀
4.4.2 配置數據流類型
4.4.3 配置幀尋址方式
4.4.4 配置寄存器
4.4.5 配置命令執行過程分析
4.4.6 配置數據解析程序
4.5 配置內存回讀
4.5.1 回讀準備設計
4.5.2 回讀指令序列
4.5.3 回讀數據校驗
4.6 配置內存重構(刷新)
4.6.1 SelectMAP模式下重構流程
4.6.2 刷新對系統功能的影響
4.7 SelectMAP接口下重配置實現代碼
4.8 配置數據文件格式分析
4.8.1 字節格式
4.8.2 文件格式
第5章 空間應用可靠性設計
5.1 集成電路單粒子效應的機理
5.2 單粒子翻轉故障模式
5.3 SRAM型FPGA單粒子問題的緩解措施
5.3.1 循環加電
5.3.2 配置管理
5.3.3 Xilinx三模冗余
5.3.4 器件冗余
5.4 三模冗余設計方法介紹
5.4.1 三模冗余原理
5.4.2 TMR Tool工具介紹
5.4.3 TMR Tool設計流程
5.4.4 創建一個ISE工程完成三模冗余前的設計
5.4.5 創建一個TMR Tool工程產生三模冗余后的網表
5.4.6 創建第二個ISE工程完成三模冗余后的設計
5.4.7 三模冗余技術問題分析
5.5 Half?Latch處理
5.6 異步FIFO處理
5.7 配置、刷新一體化方法
5.7.1 實現電路
5.7.2 工作流程及控制時序
5.7.3 SelectMAP接口Active刷新實現
第6章 分區設計
6.1 為什么使用分區設計
6.2 分區與SmartGuide
6.3 如何使用分區
6.4 用Synplify
6.5 分區保留級別
6.6 分區保留
6.7 對分區進行布局規劃
6.8 刪除分區
6.9 結論
第7章 高效驗證(TestBench)設計
7.1 為什么要進行仿真驗證
7.2 仿真驗證程序設計
7.2.1 仿真的三個階段
7.2.2 仿真的注意事項
7.2.3 仿真程序結構
7.3 使用TestBench對設計進行仿真
7.4 雙向總線信號仿真
7.5 基于TEXTIO的交互式仿真
7.5.1 基于TEXTIO的測試程序
7.5.2 TEXTIO
7.5.3 基于TEXTIO的交互式仿真實例
7.6 幾種常用的FPGA系數表文件產生方法
7.6.1 濾波器系數表
7.6.2 RAM系數表
7.6.3 I/O文件
第8章 綜合實例——數字DBF系統
8.1 系統實現結構
8.8.1 實現分區
8.2 數字下變頻(DDC)
8.3 數據傳輸模塊
8.4 波束形成的實現
附錄A 類型轉換
附錄B 文件操作
附錄C 常用元件的規范化設計示例
附錄D FPGA設計流程
參考文獻