Xilinx新一代FPGA設計套件Vivado應用指南
孟憲元 陳彰林 陸佳華
商品描述
目錄大綱
第1章Vivado設計套件
1.1單一的、共享的、可擴展的數據模型
1.2標準化XDC約束文件——SDC
1.3多維度解析布局器
1.4IP 封裝器、集成器和目錄
1.5Vivado HLS把ESL帶入主流
1.6其他特性
1.6.1快速的時序收斂
1.6.2提高器件利用率
1.6.3增量設計技術
1.6.4Tcl特性
1.7Vivado按鍵流程執行設計項目
1.7.1KC705開發板實現計數器
1.7.2在Nexys4開發板實現計數器
第2章7系列FPGA架構和特性
2.17系列結構特點
2.1.1采用統一的 7 系列架構
2.1.2高性能和低功耗結合的工藝
2.2擴展7系列的UltraScale架構
2.3可配置邏輯模塊CLB
2.3.1Slice的結構和功能
2.3.2SliceM配置為SRL
2.3.3SliceM配置為分布式RAM
2.47系列專用模塊: Block RAM/FIFO和DSP模塊
2.4.1Block RAM/FIFO
2.4.2DSP模塊
2.4.3I/O模塊
2.4.4時鐘資源
2.5由RTL代碼推論實驗
2.5.1計數器程序
2.5.2實驗結果
第3章創建設計項目
3.1wave_gen設計概述
3.2啟動Vivado
3.3仿真設計
3.3.1添加仿真需要的信號
3.3.2運行仿真和分析仿真結果
3.4利用時鐘向導配置時鐘子系統
3.5產生IP集成器子系統設計
3.5.1產生IP集成器模塊設計
3.5.2定制IP
3.5.3完成子系統設計
3.5.4產生IP輸出產品
3.5.5例示IP到設計中
第4章RTL級分析和設計網表文件
4.1網表文件
4.1.1設計項目數據庫
4.1.2網表文件
4.1.3推演的設計網表文件
4.1.4綜合的設計網表文件
4.1.5實現的設計網表文件
4.2RTL設計分析
4.2.1RTL網表文件
4.2.2RTL設計規則校驗
4.2.3瀏覽設計的層次
4.2.4平面規劃布圖
4.2.5時鐘規劃布圖
4.3網表文件的設計對象
4.3.1通過get_*命令來尋找網表中的對象
4.3.2設計層次
4.3.3pin的層次與名稱
4.3.4層次展平化
4.3.5Nets的層次分段
4.4設計對象特性
4.4.1查看對象的特性
4.4.2Cell的特性
4.4.3Port的特性
4.4.4Pin的特性
4.4.5用戶自定義特性
4.4.6使用特性過濾對象
4.5對象連通性
4.5.1層次結構下get_pins命令的使用
4.5.2GUI的使用
4.5.3圖形化幫助界面
4.6RTL分析實例
本章小結
第5章設計綜合和基本時序約束
5.1設計綜合
5.1.1Vivado IDE的綜合環境
5.1.2Vivado IDE 綜合常用設置
5.1.3Vivado IDE 綜合流程
5.1.4Vivado支持SystemVerilog
5.1.5Vivado工具的特點
5.2基本的時序約束
5.2.1靜態時序通道
5.2.2建立時間和保持時間校驗
5.2.3輸入和輸出的時序約束
5.2.4編輯靜態時序約束
5.2.5約束查看器
5.3綜合報告
5.3.1利用率分析報告
5.3.2時序報告摘要
5.3.3時鐘網絡分析(report_clock_network)
5.3.4時鐘關連分析(report_clock_interaction)
5.3.5設計規則檢查(report_drc)
5.3.6噪聲分析(report_ssn)
5.3.7使用資源分析(report_utilization)
5.3.8設計功耗分析(report_power)
5.3.9功耗利用的細節
5.4綜合實例
5.4.1運行綜合設計
5.4.2執行基本的網表分析
5.4.3在時序約束管理器窗口校驗存在的時序約束
本章小結
第6章設計實現與靜態時序分析
6.1設計實現流程
6.1.1網表優化(opt_design)
6.1.2功率優化(power_opt_design)
6.1.3布局設計(place_design)
6.1.4物理優化(phys_opt_design)
6.1.5布線設計(route_design)
6.2設計實現報告
6.3基礎的靜態時序分析
6.4實現後的設計分析
6.4.1在Device窗口觀察時序通道
6.4.2在原理圖窗口中觀察時序通道
6.4.3FPGA編輯器
6.4.4產生位流文件
6.5設計實現實例
6.5.1完成設計實現
6.5.2資源利用率報告
6.5.3生成基本時序報告
6.5.4分析設計中關鍵時序通道
6.5.5利用iMPACT編程KC705演示卡
本章小結
第7章Tcl命令設計項目
7.1Tcl的基本知識
7.1.1變量
7.1.2命令替換
7.1.3數學表達式
7.1.4反斜杠替換
7.2基於項目的設計
7.2.1設計項目目錄和文件
7.2.2項目運行管理器
7.2.3管理運行
7.2.4約束管理
7.2.5基於項目設計流程實例
7.3非項目的批作業流程
7.3.1產生RTL設計的推敲過的網表文件
7.3.2產生綜合設計
7.3.3隨後的進程
7.3.4約束管理
7.3.5非項目批作業流程實例
7.4腳本文件編寫
第8章同步設計技術
8.1概述
8.1.1同步設計
8.1.2異步輸入信號
8.1.3亞穩態信號存在的危害
8.2單比特同步電路
8.2.1求解亞穩態
8.2.2亞穩態的消釋電路
8.2.3單比特同步電路的約束條件
8.2.4單比特同步電路的跨時鐘域約束
8.2.5復位橋
8.3總線同步電路
8.3.1總線一致性
8.3.2低速總線同步電路
8.3.3總線同步電路的約束
8.3.4同步計數序列
8.3.5時鐘交互FIFO的結構
8.3.6時鐘交互FIFO的約束
8.4時鐘和同步器
8.4.1時鐘之間的關系
8.4.2分析時鐘交互
8.4.3時鐘交互分析報告
8.4.4使用最大延遲分析時鐘交互
8.5復位實驗
8.5.1異步復位實驗
8.5.2無復位實驗
8.5.3同步復位實驗
8.5.4高扇出同步復位實驗
本章小結
第9章HDL編碼技巧
9.1概述
9.2控制集Control Sets
9.2.1FPGA中的寄存器資源
9.2.2控制集Control Sets
9.3控制信號設計要點
9.3.1控制端口使用規則
9.3.2控制信號的問題
9.3.3低電平有效控制信號的問題
9.4置位/復位信號的使用
9.4.1復位的類型
9.4.2全局復位與GSR
9.4.3同步置位/復位信號優勢
9.4.4HDL編碼中復位信號同步化
9.5其他設計要點
9.5.1I/O寄存器使用要點
9.5.2Block RAM使用要點
9.5.3時鐘使能要點
9.5.4DSP應用中的加法器樹
9.5.5綜合選項要點
9.5.6編碼方式改善可靠性、性能、功耗
9.6設計實例
本章小結
第10章時序收斂
10.1基線——Baselining
10.1.1求解時序收斂
10.1.2基線設計
10.1.3設置時序報告找根源
10.1.4綜合/優化後的時序結果
10.1.5布局布線後的時序結果
10.1.6提取時序信息
10.2解決常見的時序瓶頸
10.2.1高扇出網線
10.2.2長邏輯通道
10.3最後裏程的策略
10.3.1時序達標的策略
10.3.2綜合的策略
10.3.3物理優化
10.3.4實現的策略
10.3.5增量布局
10.3.6關鍵電路預先布線
10.3.7避免過渡約束
10.4時序收斂實驗
10.4.1基線方法時序收斂流程
10.4.2優化內部路徑——基線
10.4.3執行設計的基線實現
10.4.4生成時序報告和分析路徑
10.4.5優化整個芯片
10.4.6添加時序例外和精細調整設計
本章小結
第11章硬件診斷
11.1設計診斷概述
11.1.1診斷方法
11.1.2Vivado邏輯分析儀
11.1.3Vivado邏輯診斷好處
11.2Vivado邏輯診斷IP核
11.2.1ILA核
11.2.2VIO核
11.2.3標誌診斷
11.2.4診斷核集線器
11.3邏輯診斷探測流程
11.3.1網表插入流程
11.3.2HDL例示流程
11.4硬件診斷實驗
11.4.1HDL例示法添加ILA核
11.4.2系統內診斷uart_led設計
11.4.3網表插入法添加診斷核
11.4.4添加VIO診斷核
第12章Vivado HLS
12.1高級綜合
12.1.1高級綜合的調度和裝配
12.1.2數據通道+控制器架構
12.1.3理解Vivado HLS
12.2高級綜合的優化方法
12.3Vivado HLS設計例子
12.3.1HLS工具的流程
12.3.2HLS生成IP核
第13章嵌入式系統Zynq設計
13.1Zynq概述
13.2Zynq設計入門
13.2.1Vivado工程創建
13.2.2由Vivado創建Zynq嵌入式系統
13.2.3SDK應用程序編寫
13.3ZYNQ嵌入式系統調試方法
13.3.1Vivado硬件調試
13.3.2使用SDK進行ZYNQ debug
13.4Booting Linux on ZedBoard
13.4.1創建FSBL.elf
13.4.2從SD卡啟動Linux
13.4.3從QSPI啟動Linux







