Vivado 命令行构建
更新时间:2026-09-21。硬件工具。Intel 平台见 Quartus 命令行,调试见 OpenOCD。
一句话回答
Vivado 用 vivado -mode batch -source build.tcl 做无头命令行构建,适合 CI;Tcl 里走「读入 RTL/约束 → synth_design 综合 → 布局 place_design → 布线 route_design → write_bitstream」,可分非工程模式(直接对 design 对象操作)和工程模式(create_project)两种。
一、运行
bash
vivado -mode batch -nojournal -nolog -source build.tcl-mode batch 非交互,-nojournal/-nolog 少产生日志文件(仍可用 -log 指定)。
二、非工程模式 Tcl(CI 常用,最轻)
tcl
read_verilog [glob src/*.v]
read_xdc constraints.xdc
synth_design -top top -part xc7a35tcpg236-1
write_checkpoint -force post_synth.dcp
opt_design
place_design
route_design
report_timing_summary -file timing_summary.rpt
write_bitstream -force top.bit非工程模式每步显式、产物可控,适合脚本和服务器批处理。
三、工程模式
tcl
create_project proj ./proj -part xc7a35tcpg236-1 -force
add_files [glob src/*.v]
add_files -fileset constrs_1 constraints.xdc
launch_runs synth_1 -jobs 4
wait_on_run synth_1
launch_runs impl_1 -to_step write_bitstream -jobs 4
wait_on_run impl_1常见坑
- 器件型号/板卡支持未装:只装部分器件时
-part报找不到,安装时勾选对应 family。 - license 不足:综合一般免费 WebPACK 可用,部分器件/IP 需 license。
- 不检查时序报告:route 完成不等于时序收敛,CI 要解析
report_timing_summary的 WNS/TNS。 - 工程模式 wait_on_run 缺失:批处理不等待就往下走会失败。
- 磁盘/路径问题:Vivado 工程路径要短、无空格中文,长路径在 Windows 易报错。
- 内存不足:大设计布线吃内存,CI 机器留足 RAM。
- 混淆两种模式命令:非工程用 synth_design/place_design,工程用 launch_runs,不能混用。
总结
Vivado 用 vivado -mode batch -source 跑 Tcl,非工程模式 read_verilog→synth_design→place/route→write_bitstream 最适合 CI;务必装好器件支持、确认 license,并解析 timing_summary 的 WNS/TNS 判断是否真正收敛,而非只看是否产出 bit。