Vivado 从 RTL 到上板
三类核心输入
跳转到“三类核心输入”| 输入 | 典型文件 | 职责 |
|---|---|---|
| Design Sources | .sv、.v、.vhd、IP、Block Design | 定义可综合电路 |
| Constraints | .xdc | 定义时钟、I/O、时序例外和物理要求 |
| Simulation Sources | Testbench、模型、测试数据 | 产生激励并自动检查功能 |
约束不是最后补的“引脚表”。主时钟和外部接口时序应在架构阶段建立,使综合和实现从一开始就按真实目标优化。
流程与产物
跳转到“流程与产物”flowchart TD SRC["RTL / IP / XDC"] --> SIM["行为仿真"] SRC --> SYN["Synthesis<br/>RTL → 网表"] SYN --> OPT["opt_design"] --> PLACE["place_design"] --> PHYS["phys_opt_design 可选"] --> ROUTE["route_design"] ROUTE --> REPORT["时序、DRC、资源、功耗"] --> BIT["write_bitstream"]- 综合:推断逻辑、优化并映射到 LUT、触发器、RAM、DSP 等原语。
- 实现:逻辑优化、布局、物理优化和布线。
- Bitstream:在实现后的器件配置上生成,不等同于综合网表。
每阶段检查
跳转到“每阶段检查”综合后
跳转到“综合后”- 顶层器件和源文件集合是否正确。
- 是否出现锁存器、多驱动、组合环、未使用端口或位宽截断。
- RAM/DSP/SRL 是否按预期推断。
- 时钟是否走专用资源,资源是否超预算。
实现后
跳转到“实现后”report_timing_summary:建立/保持和未约束路径。report_drc:电气、时钟、布局和配置问题。report_clock_interaction/ CDC 报告:跨域关系和同步结构。- 资源与功耗报告:是否接近器件或热设计边界。
可重复构建
跳转到“可重复构建”图形界面适合探索,稳定工程应导出或维护 Tcl 构建脚本,固定:器件型号、源文件、IP 参数、XDC、综合/实现策略和输出路径。不要把临时生成目录当成唯一工程源。
下面是从工程根目录运行的阶段示例,假定 rtl/ 与 constraints/top.xdc 已准备好,器件也已按实际工程选择。涉及 SystemVerilog package、include、IP 或混合语言时,要另行明确依赖与编译顺序,不能只依赖文件名排序。
file mkdir buildset rtl_files [lsort [glob -nocomplain ./rtl/*.sv]]if {[llength $rtl_files] == 0} { error "No RTL files found" }read_verilog -sv $rtl_filesread_xdc ./constraints/top.xdcsynth_design -top top -part xc7a35tfgg484-2opt_designplace_designroute_designreport_timing_summary -file timing_summary.rptwrite_bitstream -force build/top.bit实际脚本还应在关键报告不通过时返回失败,避免“生成了 bit 文件”被误认为构建成功。