Vivado license 取不出来怎么办:checkout failed 报错速查
更新时间:2026-10-22。FAQ 速查页,属于 FPGA 入门 阶段最容易把新人挡在门外的一类问题:工程和代码都没问题,综合、实现或生成 IP 时 Vivado 突然红掉,提示 license checkout failed。本篇以 Vivado 日志里的真实风格报错为锚,先教你从报错原文里读出「它到底在签哪个 feature」,再按环境变量、网络、服务器、版本、借用五条线逐条收敛。同目录另一类高频启动报错见 Vivado 模块找不到(Module not found)报错怎么排查,EDA 排错总入口见 开源 EDA 报错排错中心。
本文要回答的问题
- 日志里
[Vivado 12-3632]/[Common 17-350]到底在说什么,先看哪几个词? - 明明装的是免费版,为什么 xsim、综合或某个 IP 还提示取 license 失败?
XILINXD_LICENSE_FILE和LM_LICENSE_FILE都设了,Vivado 到底按什么顺序找?- floating license 连不上时,客户端自己能排查到哪一步,哪些必须找管理员?
- 借(borrow)出去的 license 没归还、新版 Vivado 签不到老 license,各自怎么处理?
一、报错原文与一句话根因
Vivado 的 license 报错出现在 Tcl Console 或 vivado.log 里,常见形态如下,服务器地址一律占位:
[Vivado 12-3632] Unable to checkout a license for <feature>.
* Tcl Stack: ...
[Common 17-350] Command failed: Vivado License Edition ... please use Vivado License ManagerERROR: [Common 17-350] A license was not found for this design.
License Component does not exist: <feature>
Please run Vivado License Manager (Help -> Manage License) for further assistance.报错尖括号里的 <feature> 是全篇最关键的词:它可能是 edition 名(如设计版、系统版对应的 edition feature),可能是某个阶段名(综合、实现),也可能是付费 IP 的 feature 名(部分万兆以太网 MAC、高速收发器等付费 core 在定制时才签出)。xsim 行为仿真对 WebPACK 免费器件随软件授权,但仿真库、语言特性在某些版本/组合下也会触发签出。
一句话根因:Vivado 本身没坏,是「要的 feature」与「能拿到的 license」对不上。 对不上有两大方向:一是这个 feature 本来就该免费、你却选错了器件或 edition(最常见,先排除);二是 floating license 链路某一环断了——环境变量指错、网络不通、服务器守护进程没起、license 里没有这个版本年份的 feature、席位被占满或被借走。
二、先排除:你选的器件在不在 WebPACK 免费范围
Vivado WebPACK 对一份明确的器件清单免费授权,覆盖主流入门型号(部分 Artix-7、Spartan-7、Zynq-7000 小容量器件等);清单之外的器件(大容量 Kintex/UltraScale、多数 Zynq UltraScale+ 等)综合与实现必须签付费 edition。器件选错时,报错长得和服务器故障一模一样,但根因在工程而不在 license。
先在 Vivado 里 Settings → Project Device 确认器件型号,再对照 Xilinx 官方当版 WebPACK 支持器件清单。属于免费器件的,用 Vivado License Manager 装好 WebPACK 授权即可,不依赖任何服务器;不属于免费器件又没有付费 license,唯一的正解是换器件或走采购,调环境变量救不回来。
三、报错 → 原因 → 处置速查表
| 报错现象 | 最常见原因 | 快速确认 | 处置 |
|---|---|---|---|
| 任何 feature 都签不到,启动即报 | 选了付费器件或付费 edition | 核对器件是否在 WebPACK 清单 | 换免费器件,或在 VLM 装入付费 license |
License Component does not exist | license 文件里没有这个 feature 名 | VLM 的 View License Status 搜 feature | 核对采购套餐;付费 IP 单独申请授权 |
| 连不上 server,报无法连接 | XILINXD_LICENSE_FILE 主机/端口写错或被其他 EDA 工具覆盖 | printenv | grep -i license | 改为 <port>@<server>(默认端口口径 2100,以管理员通知为准) |
| 变量看着对仍连不上 | 防火墙/VPN 不通,或没连单位网络 | telnet <server> 2100 或 nc -vz <server> 2100 | 连 VPN;找网管放行端口 |
| 端口通但签不到 | lmgrd 或 vendor daemon(xilinxd)未运行 | 请管理员看 lmgrd 日志、lmstat -a | 重启 license 服务,重读 license 文件 |
| 旧版能用、升级后全员签不到 | license 里 feature 版本年份早于 Vivado 版本 | VLM 看 license 支持的版本日期 | 回退 Vivado 版本,或申请新版授权 |
| 别人都能用、只有一台机器不行 | node-locked 授权绑了主机,或本机变量被残留配置覆盖 | 看 VLM 本机 license 状态与变量顺序 | 用登记机器;清理错误的变量与旧 .lic 路径 |
| 提示席位占满 | 并发数用完,或异常退出残留占用 | 请管理员查在用席位 | 等待释放,或由管理员回收僵尸席位 |
| 间歇性签不到 | 有人 borrow 借用后未归还 | VLM 查看借用状态与到期时间 | 提前归还;借用到期自动恢复 |
| GUI 能用、脚本批处理签不到 | 非交互 shell 没加载 license 环境 | 作业脚本里 printenv 打印变量 | 变量写进工程环境脚本,作业开头显式导出 |
四、排查决策图
按「先认 feature,再分免费与浮动,浮动走变量→网络→服务→版本」收敛,任何一步命中就地修复后立即复验:
读这张图抓住一个分叉:红色入口之后第一要务不是摸网络,而是读报错里的 feature 名、判断器件是否免费——免费器件走绿色直通,装 WebPACK 授权即可;确认是付费 feature 才进入浮动链路的三环排查(蓝色变量、蓝色网络、橙色修复含服务器侧),全通后回到绿色节点复验。图中红色代表报错入口,蓝色是你在客户端能做的排查动作,橙色修复里凡涉及重启 license 服务、回收席位的动作都需要管理员执行,全图颜色即红、蓝、橙、绿四类语义。
五、客户端逐条排查
第一步:在「启动 Vivado 的那个 shell」里打印变量。 Vivado 查找 license 的顺序是 XILINXD_LICENSE_FILE 优先、通用 LM_LICENSE_FILE 兜底;值可以是浮动的 <port>@<server>,也可以是 node-locked 本地授权文件的绝对路径(.lic),多个目标用冒号分隔,按书写顺序逐个尝试:
printenv | grep -i license
# XILINXD_LICENSE_FILE=2100@<server> ← 与管理员给的主机、端口逐字符对
# LM_LICENSE_FILE=... ← 留意是否被其他 EDA 工具的配置整体覆盖高频事故有两个:一是别的 EDA 工具安装时改写了 LM_LICENSE_FILE,而 Xilinx 私有变量没设,Vivado 被带去一串不相关的服务器;二是多服务器冒号列表里旧地址排在前面,超时等待很长才试到正确服务器。GUI 终端有值、命令行批处理失败,几乎都是非交互 shell 不加载个人环境配置——把变量写进工程自己的环境脚本,作业开头显式导出并打印一行确认。
第二步:打开 Vivado License Manager 看库存。 菜单 Help → Manage License(即 VLM),在 View License Status 里搜报错中的 feature 名:能看到且未过期,说明服务器侧授权没问题,问题在本机器件或 edition 选择;看不到,记下 license 搜索路径,继续下一步。同一界面还能看到本机 node-locked 授权、borrow 借用状态与到期时间——借用未归还的席位在到期前对别人不可用,本人可在 VLM 提前归还。
第三步:测网络连通性。 floating license 默认端口口径为 2100(若管理员另指定,以 <port>@<server> 为准):
telnet <server> 2100
# 或
nc -vz <server> 2100能连上是黑屏无报错(telnet)或 succeeded(nc);超时/拒绝就是网络层不通:先确认是否需要单位 VPN,再找网管放行端口。变量中也可能配三机冗余位,形如 2100@<server1>:2100@<server2>:2100@<server3>,多数存活即可签到,逐个测。端口能通但 Vivado 仍签不到,问题在服务器侧:lmgrd 与 Xilinx 的 vendor daemon(xilinxd)必须都在运行,管理员通过 lmgrd 日志和 lmstat 确认,更新 license 文件后要重读才生效,这些动作不在普通用户权限内,把报错原文和你已做的三步结果一并交给管理员最快。
第四步:版本年份对不上。 license 里的 feature 带版本日期,只支持该日期之前发布的 Vivado;刚升级到新版 Vivado 就全员签不到,基本是新版授权未到位,临时回退旧版,正式走续期。反过来,老客户端连新服务器一般兼容。
六、修复后验证与预防
修完不要只看「这次没红」:在 VLM 的 View License Status 确认目标 feature 可见、未过期,然后重跑触发报错的完整动作——综合、实现和付费 IP 在进入对应阶段时才分别签出,启动能过不代表全程能过。预防上记住三条:变量进工程环境脚本、Vivado 大版本升级前先确认 license 年份覆盖、借用离线授权回来后及时归还。
这一篇在知识体系里的位置
本篇是 FPGA 工具排错速查簇的一员。同目录的编译类报错见 Vivado 模块找不到(Module not found)报错怎么排查;其他 EDA 工具的同款 FlexNet 签到故障(错误码语义互通)见 开源 EDA 报错排错中心。license 是 FPGA 流程的前置门槛,签到过去之后的设计流程见 FPGA 入门目录。
一句话总结
Vivado license 取不出来,先读报错里的 feature 名并核对器件是否在 WebPACK 免费清单——免费器件装 WebPACK 授权即可,付费 feature 才按三环排查浮动链路:用 printenv 核对 XILINXD_LICENSE_FILE 优先、LM_LICENSE_FILE 兜底且多目标冒号有序,用 VLM 的 View License Status 看 feature 是否可见与借用状态,用 telnet/nc 测 2100 端口区分网络故障与服务器侧 lmgrd/xilinxd 故障;最后排除版本年份早于 Vivado 版本与席位占满,修完用完整综合/IP 流程复验。