Vivado / Xilinx 常用手册主要分几类:**软件使用、综合实现、约束、Tcl、IP、器件、调试、烧录、安全加密**。
下面这些是最常见、最有用的。
## 1. Vivado 软件流程类
### UG973 — Vivado Release Notes / Installation / Licensing
用途:
Vivado 安装、版本说明、License、支持的器件列表
你要查:
- 某个 Vivado 版本支持哪些 FPGA;
- 安装环境;
- License 问题;
- 版本兼容性。
### UG892 — Vivado Design Suite User Guide: Design Flows Overview
用途:
Vivado 整体设计流程说明
适合入门看:
- Project Mode;
- Non-Project Mode;
- RTL 到 bitstream 的完整流程;
- 综合、实现、生成 bit 的关系。
## 2. RTL / 综合 / 实现类
### UG901 — Vivado Synthesis
用途:
综合指导手册
主要看:
- Verilog/VHDL 哪些写法综合友好;
- RAM、ROM、DSP、移位寄存器怎么推断;
- synthesis attributes;
- 综合选项;
- FSM 编码;
- 资源优化。
如果你写 RTL,这本很重要。
### UG904 — Vivado Implementation
用途:
实现/P&R 指导手册
主要看:
- opt_design;
- place_design;
- route_design;
- timing closure;
- implementation strategy;
- 资源、时序、布线优化。
如果工程 PAR / route / timing 过不了,看这本。
## 3. 约束 / 时序类
### UG903 — Using Constraints
用途:
XDC 约束指导手册
主要看:
- 时钟约束;
- IO 约束;
- false path;
- multicycle path;
- generated clock;
- clock groups;
- timing exception。
写 `.xdc` 必看。
### UG906 — Design Analysis and Closure Techniques
用途:
时序分析和收敛指导
主要看:
- timing report 怎么看;
- WNS/TNS/WHS 是什么;
- 时序违例怎么定位;
- 资源拥塞怎么分析;
- 如何做 timing closure。
如果 timing fail,看这本。
## 4. Tcl / 自动化脚本类
### UG835 — Vivado Tcl Command Reference Guide
用途:
Vivado Tcl 命令字典
里面是所有 Tcl 命令说明,例如:
create_project
read_verilog
synth_design
place_design
route_design
write_bitstream
write_cfgmem
program_hw_devices
想查某个命令参数,看这本。
### UG894 — Using Tcl Scripting
用途:
Vivado Tcl 脚本使用教程
它不是命令字典,而是教你怎么组织脚本:
- 工程模式脚本;
- 非工程模式脚本;
- 自动跑综合实现;
- 自动生成报告;
- 批量跑版本。
如果你要写自动化版本脚本,看这本。
## 5. IP / Block Design / MicroBlaze 类
### UG994 — Designing IP Subsystems Using IP Integrator
用途:
Block Design / IP Integrator 使用手册
主要看:
- `.bd` 怎么建;
- Add IP;
- Run Block Automation;
- AXI 互联;
- Address Editor;
- Generate Output Products。
你问 MicroBlaze 配置向导,和这个有关。
### UG1118 — Creating and Packaging Custom IP
用途:
自定义 IP 封装手册
主要看:
- 怎么把自己的 RTL 封装成 Vivado IP;
- AXI IP 打包;
- IP Catalog;
- component.xml。
### UG898 — Embedded Processor Hardware Design
用途:
MicroBlaze / Zynq 嵌入式硬件设计
主要看:
- MicroBlaze 系统搭建;
- MDM 调试模块;
- AXI BRAM;
- AXI UART;
- 中断;
- Vitis 需要的硬件平台。
## 6. 调试类
### UG908 — Vivado Programming and Debugging
用途:
JTAG、ILA、VIO、Hardware Manager、烧录调试
你最近问的很多内容都和这本有关:
- Program Device;
- Program Configuration Memory;
- Hardware Manager;
- JTAG chain;
- ILA;
- VIO;
- debug core;
- Flash 烧录;
- readback;
- eFUSE / 加密相关入口。
如果你研究 JTAG、烧 bit、烧 Flash、ILA,重点看这本。
### PG172 — ILA Product Guide
用途:
ILA IP 使用说明
主要看:
- ILA probe;
- trigger;
- sample depth;
- clock;
- debug hub;
- `.ltx` 文件。
### PG159 — Debug Bridge Product Guide
用途:
Debug Bridge 调试桥 IP
用于复杂 debug 架构,比如 JTAG-to-AXI、跨接口调试等。
## 7. 器件配置 / bitstream / Flash 类
### UG470 — 7 Series FPGAs Configuration
用途:
7 系列 FPGA 配置手册
你的 `xc7a100t` 是 Artix-7,所以这本非常关键。
主要看:
- JTAG 配置;
- Master SPI;
- BPI;
- SelectMAP;
- bit/bin/mcs;
- 配置引脚;
- DONE / INIT_B / PROGRAM_B;
- 加密启动;
- readback;
- fallback / multiboot。
你现在研究 JTAG、bin、Flash、加密,这本很重要。
### UG380 / 其他系列 Configuration 手册
不同系列有不同配置手册:
| FPGA 系列 | 配置手册 |
|---|---|
| 7 Series | UG470 |
| UltraScale | UG570 |
| UltraScale+ | UG570 / 相关配置章节 |
| Versal | AM011 / Versal TRM 相关文档 |
你是 Artix-7,优先看:
UG470
## 8. 安全 / 加密 / eFUSE 类
### XAPP1239 / XAPP1084 / 相关 Application Notes
用途:
bitstream encryption、AES key、BBRAM、eFUSE、安全启动
不同器件系列对应不同应用笔记。
主要看:
- AES bitstream encryption;
- `.nky` key 文件;
- eFUSE key;
- BBRAM key;
- readback security;
- JTAG 安全限制。
### UG470 里的 Security / Encryption 章节
对 7 系列来说,很多安全配置也在:UG470里面。
如果是 `xc7a100t`,优先查 UG470 的:
Bitstream Encryption
Readback Security
eFUSE
BBRAM
JTAG Configuration
## 9. 器件数据手册 / 电气手册
### DS181 — Artix-7 Data Sheet: DC and AC Switching Characteristics
用途:
Artix-7 电气参数手册
主要看:
- 电压;
- IO 标准;
- 时钟频率;
- 建立保持;
- 速率;
- 绝对最大额定值。
### UG475 — 7 Series Packaging and Pinout
用途:
封装和管脚说明
主要看:
- 管脚定义;
- bank;
- VCCO;
- 配置管脚;
- JTAG 管脚;
- 专用时钟管脚;
- 差分对。
### UG471 — 7 Series SelectIO Resources
用途:
IO 资源使用手册
主要看:
- IBUF/OBUF;
- IODELAY;
- ISERDES/OSERDES;
- LVDS;
- IO 电气标准;
- IDELAYCTRL。
### UG472 — 7 Series Clocking Resources
用途:
时钟资源手册
主要看:
- MMCM;
- PLL;
- BUFG;
- BUFR;
- BUFIO;
- clock region;
- 时钟网络。
### UG474 — 7 Series CLB
用途:
逻辑资源手册
主要看:
- LUT;
- FF;
- SRL;
- carry chain;
- slice 结构。
### UG473 — 7 Series Memory Resources
用途:
BRAM/FIFO 资源手册
主要看:
- Block RAM;
- FIFO;
- RAMB36/RAMB18;
- 初始化;
- 位宽配置。
### UG479 — 7 Series DSP48E1 Slice
用途:
DSP 资源手册
主要看:
- 乘法器;
- MAC;
- DSP48E1;
- pipeline;
- 级联。
## 10. IP Product Guide
每个 Xilinx IP 基本都有一个 `PGxxx` 手册。
例如:
| 手册 | 用途 |
|---|---|
| PG065 | Clocking Wizard |
| PG058 | FIFO Generator |
| PG059 | Block Memory Generator |
| PG109 | AXI DMA |
| PG021 | AXI GPIO |
| PG142 | AXI UARTLite |
| PG172 | ILA |
| PG174 | VIO |
| PG078 | MIG DDR 控制器 |
凡是用到一个 IP,就看对应的:
Product Guide,也就是 `PGxxx`。
| 优先级 | 手册 | 你用来解决什么 |
|---|---|---|
| 1 | UG908 | JTAG、Hardware Manager、Program Device、烧 Flash、ILA |
| 2 | UG470 | Artix-7 配置、bit/bin/mcs、JTAG、Flash、加密 |
| 3 | UG835 | Tcl 命令查询 |
| 4 | UG894 | Tcl 自动化脚本 |
| 5 | UG903 | XDC 约束 |
| 6 | UG901 | 综合、RTL 写法 |
| 7 | UG904 | 实现、布局布线 |
| 8 | UG906 | 时序分析和收敛 |
| 9 | UG475 | 管脚/JTAG/配置管脚 |
| 10 | DS181 | Artix-7 电气参数 |
## 简单记忆
```text
写 RTL → UG901
写约束 → UG903
跑实现/P&R → UG904
看时序 → UG906
写 Tcl → UG835 / UG894
JTAG/ILA/烧录 → UG908
Artix-7 配置/Flash → UG470
查管脚 → UG475
查电气参数 → DS181
用 IP → 对应 PGxxx