电子说
BY Anatoli Curran
在 Vivado/ISE 中遇到许可问题时,该怎么办呢?
本文介绍了使用不同类型的许可证时可能遇到的不同问题。您可单击以下标题,以跳转到当前使用的许可证类型的相关内容。
首先值得注意的是,赛灵思可提供单机版许可证和浮动许可证(或者网络浮动许可证服务器)。
单机版许可证是锁定到特定机器或硬件保护装置的加密“密钥”。许可证不予计数,这表示在任一机器上可供任一用户同时运行的许可证数量没有限制。
网络浮动许可证允许用户在可访问已标识的许可证服务器的任何机器上使用许可证。而加密“密钥”则锁定到运行 FLEX 许可证服务器守护程序的许可证服务器主机。对于此类许可证的使用将进行“计数”,即 FLEX 许可证管理器会记录该服务器托管的“席位”数量。
根据所使用的许可证类型,如下建议将有助于解决您遇到的许可问题。
浮动许可证相关问题
单机版许可证相关问题
硬件保护装置相关许可信息和已知问题
IP 核许可证相关问题
浮动许可证相关问题:
首先,您需要确认问题源自于浮动许可证服务器端还是来自于客户端。
所谓“浮动许可证服务器端”,指的是用于运行浮动许可证的服务器。
“客户端”指的是用于运行出现许可问题的赛灵思工具的 PC。
首先,请检查浮动许可证服务器端。
浮动许可证服务器端:
在客户端上,确认浮动许可证服务器是否已启动并且正常运行。
Linux:
打开命令提示符,使用 CD 命令转至 lnx64.o 所在位置,例如:../Xilinx/Vivado/2019.1/bin/unwrapped/lnx64.o
在其中运行以下命令:
lmutil lmstat –a –c @ -i
(例如,lmutil lmstat –a –c 2100@server123 -i)
Windows:
从 win64.o 所在位置(例如:C:/Xilinx/Vivado/2019.1/bin/unwrapped/win64.o)运行以下命令
lmutil lmstat –a –c @ -i
(例如,lmutil lmstat –a –c 2100@server123 -i)
接下来检查 lmgrd 和 xilinxd 是否均已启动,如下所示:
如果服务器未启动,您将会看到错误消息,指示服务器尚未运行。
在此阶段,您可集中识别导致服务器未运行的原因。
建议最好从浮动许可证服务器 debug.log 文件开始调试。在此文件中会显示有关为何该服务器未启动或无法运行的详情。
浮动许可证服务器一旦启动后,就会创建 debug.log 文件。许可证服务器管理员知晓此文件的位置。
根据该日志文件中的消息,下一步您应该就可以在赛灵思网站上搜索此特定错误或参考信息,因为在“答复记录”中已经识别并记录了大量已知问题:https://china.xilinx.com/support/answer-navigation/design-tools/licensin...
此外,还请查阅Vivado 2017.3 许可变更论坛主题。
其中有一项重大变更与将许可实用程序升级到 Flex 11.14.1 相关。
(赛灵思答复记录 69377)中陈述如下,使用 Vivado 2017.3 和更高版本的 Vivado 时,所有浮动许可证用户都必须将其许可证实用工具升级到 FlexLM 11.14.1.0 或更高版本,这样 Vivado 才能提取这些许可证。
低于 Vivado 2017.3 的 Vivado 版本以及 ISE 14.7 和更低版本可以正常使用所有先前版本的 flexlm 实用程序,例如,v11.13。但是,赛灵思建议升级到 FlexLM 11.14.1.0 或更高版本。
运行以上命令 (lmutil lmstat…) 时,您还会看到服务器启动时所使用的 flexlm 版本。
您应该可以看到,对于 lmgrd 和 xilinxd,版本均为 v11.14.1,如下图所示:
在某些情况下,lmgrd 以 v11.14.1 启动,但 xilinxd 仍使用较低版本(如 v11.13)运行。
在此类情况下,Vivado 仍将无法从服务器中识别并检出必要的许可证。
如果发生这种情况,可从 china.xilinx.com 下载页面找到并获取许可实用程序。
对应 Windows 或 Linux 操作系统使用的实用程序是不同的。
完成下载并将其解压到服务器后,请从上述实用程序的解压位置使用 lmgrd 启动浮动许可证服务器。
随后,它将调用 xilinxd 供应商守护程序(此守护程序与 lmgrd v11.14 位于相同位置)。
注意:如果浮动许可证明确指向特定版本的 xilinxd.exe 位置(即,直接指向浮动许可证文件内部),那么将改为调出该版本的 xilinxd 供应商守护程序,而不是调用更高版本的 v11.14。
如果情况如此,请编辑 lic 文件并指向最新 xilinxd.exe 的位置,或者从许可证文件的 VENDOR 行中移除此路径。
如果浮动许可证服务器位于 Windows 操作系统上并且在此机器上未安装任何 Vivado 工具,那么使用 lmgrd v11.14 启动浮动许可证服务器后,在 debug.log 文件中可能会显示“xilinxd exited with status 53”之类的错误。如果发生此类情况,请参阅(赛灵思答复记录 69969),以了解有关如何解决此类问题的详情。
如需了解有关如何启动浮动许可证服务器的一般说明,请参阅 (UG973)。其中第 3 章包含一节题为“提供基于证书的浮动许可证 (Serving Certificate-Based Floating Licenses)”的内容。
完成上述检查后,下一步是检查客户端以了解为何客户端机器无法从浮动许可证服务器获取必要的许可证。
客户端:
关于在客户端上出现的此类行为,有几个常见的原因:
环境变量:
在含网络路径(格式为 port@server)的客户端 PC 中,可能未将 XILINXD_LICENSE_FILE 或 LM_LICENSE_FILE 环境变量设置为指向许可证服务器。
注意:XILINXD_LICENSE_FILE 环境变量旨在用于指向任意赛灵思相关许可证,而 LM_LICENSE_FILE 环境变量则应用于其他非赛灵思相关许可证(例如,Mentor Graphics、Synopsys 许可证等)。
“版本已到期”限制:
客户端可能已安装更新版本的 Vivado 发行版,由于存在“版本已到期”限制,当前浮动许可证对于此类版本无效。
如需了解版本限制及其工作方式的相关说明,请参阅(赛灵思答复记录 33770)。
如需了解更多信息,请参阅“许可常见问题解答 (Licensing FAQ)”页面上的“到期与保修期 (Expiration and Warranty Period)”部分:http://china.xilinx.com/tools/faq.htm
选项文件 INCLUDE 列表:
当特定浮动许可证文件上已设置选项 (.opt) 文件时,可能会发生此问题。选项文件允许您控制哪些用户有权或无权从浮动许可证服务器检出特定许可功能或者整个许可证文件。
对于未添加到 .opt 文件的 INCLUDE 列表中的用户,将在 debug.log 文件中显示类似“user is not on INCLUDE list for feature”的消息。
如需了解 Flexera 选项文件的创建和管理的相关信息,请查阅 Flexnet 许可文档。
以上列出的均为最常见的问题,当然可能导致客户端无法从浮动许可证服务器检出许可证的因素并不止于此。
单机版许可证相关问题:
如果赛灵思软件/工具无法识别许可证,问题可能出在哪里?
在此类情况下,常见问题原因包括:
Windows:
许可证位于 Vivado 无法检测的文件夹中:
如果单机版许可证不在默认位置 %APPDATA%/.Xilinx(在 Windows 操作系统中默认位置通常为 C:/.Xilinx),并且未设置 XILINXD_LICENSE_FILE 或 LM_LICENSE_FILE,那么 Vivado/ISE 工具将无法检测单机版许可证。
请参阅 http://china.xilinx.com/tools/faq.htm 上的“赛灵思软件工具(CORE Generator 除外)查找许可证的搜索顺序和位置 (What are the search order and locations...)”部分,以了解合法搜索路径。
主机 ID 错误:
如果许可证的 hostID 与所使用的机器的 hostID 不匹配,那么该功能仍会显示在 VLM/XLCM 中,但无法使用。
Linux:
许可证位于 Vivado 无法检测的文件夹中:
在 Linux 操作系统上,单机版许可证的默认许可位置为 $HOME/.Xilinx。
如果许可证不在此位置,并且未设置 XILINXD_LICENSE_FILE 或 LM_LICENSE_FILE,那么 Vivado/ISE 工具将无法检测单机版许可证。
主机 ID 错误:
如果许可证的 hostID 与所使用的机器的 hostID 不匹配,那么该功能仍会显示在 VLM/XLCM 中,但无法使用。
以太网地址报告为“000000000000”
有一个 Linux 上独有的命令问题,即用于 Flex 许可证的 HostID 以太网地址在某些机器上报告为“000000000000”。
在此情况下,Vivado Flex Licensing API 不会对 HostID 进行验证,导致无法授予许可证。
此问题的解决方案是更改端口名称。如需了解更多信息,请参阅(赛灵思答复记录 60510)。
硬件保护装置相关许可信息和已知问题:
什么是硬件保护装置?为何使用它?
如果要在其他机器上使用单机版许可证,那么就需要考虑向 Flexera 购买和使用硬件保护装置。
硬件保护装置并非 USB 记忆棒,它只是一个可转移 ID(硬件保护装置的主机 ID)。
以下是 Flexnet 硬件保护装置示例:
在生成单机版许可证时,您可以选择并指定此许可证的硬件保护装置的 FlEX ID。
请参阅(赛灵思答复记录 42410),以了解详情。
这样您就可以将此硬件保护装置与自己的许可证一起从一台 PC 转移到另一台 PC,并且随后赛灵思工具将能够在不同机器上检测并使用此许可证。
从何处购买硬件保护装置?
赛灵思已停售硬件保护装置。
可直接向 Flexera 购买该装置。
如需了解有关订购硬件保护装置的其他信息,请联系 Flexera。
Flexera 的硬件保护装置申请电子邮件地址为:flexid@flexerasoftware.com
注意:在 Linux 操作系统上针对 FLEX ID 硬件保护装置不提供官方支持。仅在 Windows 平台上才支持 USB 硬件保护装置许可。根据(赛灵思答复记录 35027)中的信息,对于 Linux 操作系统上的许可,赛灵思不提供用于支持 USB 硬件保护装置的驱动。
虽然无官方支持,但部分客户已报告称其能够安装并成功使用 Linux FlexID-9 硬件保护装置驱动来获取 FLEX 许可。
通常只要系统能够识别硬件保护装置,FLEX 许可就有效。
要获取硬件守护装置的 FLEX ID 并检查是否已识别出该硬件守护装置,请通过命令提示符使用 CD 转至 win64.o 的位置。
例如:C:/Xilinx/Vivado/2019.2/bin/unwrapped/win64.o
在其中运行以下命令
lmutil lmhostid -flexid
如果已识别出硬件保护装置,那么 Vivado 应该可以正常发现并使用以该硬件保护装置的 FLEX ID 为目标生成的许可证。
如果未能识别该硬件保护装置,请参阅下文以获取更多详细信息。
与硬件保护装置相关的已知问题:
① Vivado 2017.3 和更高版本使用较低版本的 HASP4 硬件保护装置时,无法检测到有效的单机版许可证。
如需了解解决方案,请参阅(赛灵思答复记录 70201)
② 在 64 位 Windows 操作系统上无法识别出第二个 FlexNet ID 硬件保护装置。
要了解解决方案,请参阅(赛灵思答复记录 43209)
③ 在 Windows 中安装和下载 USB 硬件保护装置驱动。
如需了解更多信息,请参阅(赛灵思答复记录 47132)
如果 Vivado 无法识别 FLEXId-9 硬件保护装置,我该怎么办?
调试流程如下所述:
将硬件保护装置插入机器后,如果已正确安装其驱动,那么该硬件保护装置的红色指示灯将点亮,如下图所示:
如果红色指示灯未点亮,则表明该硬件保护装置的驱动很可能存在问题。
在此情况下,请遵循(赛灵思答复记录 47132)中概述的步骤,以使 Windows 操作系统能够识别出此装置。
注意:对于(赛灵思答复记录 47132)中的步骤 6,您必须将 haspsrm_win64.dll 和 haspsrm_win32.dll 一并复制到 %windir%/System32 中,然后还需要将这两个库(haspsrm_win64.dll 和 haspsrm_win32.dll)都复制到 %windir%/SysWOW64 中。
仅将 haspsrm_win32.dll 复制到 %windir%/System32 中并将 haspsrm_win64.dll 复制到 %windir%/SysWOW64 中是无效的,因为如上文所述,这两个文件在这两处位置中都必须存在。
完成上述操作后,请重新启动 PC。这样硬件保护装置上的指示灯应显示为红色,从而表明已成功检测到此硬件保护装置。
另请参阅(赛灵思答复记录 70201),以了解以下问题:
如果 FlexNet 硬件保护装置为旧的 HASP4 硬件保护装置,而非新型 HASP HL 硬件保护装置,那么 Vivado 2017.3(和更高版本的 Vivado)将无法检测出该硬件保护装置,这样也就无法从中检出许可证。
如果使用的是旧硬件保护装置(如 HASP4),那么可供选择的操作如下:
订购新型 HASP HL 硬件保护装置,以配合新工具一起使用
重新生成许可证,以 NIC ID(网络接口卡 ID)或 DISK_SERIAL_NUM(而非您的硬件保护装置的 ID)为目标。
IP 核许可证相关问题:
对于任何 IP 核许可问题,您需要确认问题在于 IP 核许可证文件本身(许可证安装问题、许可证文件遇到“版本已到期”限制或者设计中的特定 IP 存在 IP 核许可证错误或缺失等),还是赛灵思工具无法在浮动许可证服务器或本地机器中找到并检出有效的 IP 核许可证文件。
如果您在 Vivado 中遇到 IP 核许可错误,要确认设计中包含具体哪些 IP 以及针对这些 IP 核找到了哪些许可证,请打开 Vivado,并单击位于“Reports”标签下的“Report IP Status”。
或者,您可在 Tcl 控制台中运行“report_ip_status”命令,这样即可生成“IP 状态汇总 (IP Status Summary)”。
“IP 状态汇总 (IP Status Summary)”将包含有关设计中找到的所有 IP 以及针对这些 IP 找到的许可证的信息。
您可在其中看到 Purchased/Bought、Hardware_Evaluation (HW_Eval)、Design_Linking 或 Included。
要生成比特流,需要 bought(完整)IP 核许可证或完整系统硬件评估 (Full Hardware Evaluation) IP 核许可证。
如果在某个 IP 核上出现 Design_Linking,那么它就是 Vivado 中出现 IP 核许可错误的原因。
如需了解 LogiCORE IP 核完整系统硬件评估许可证和 LogiCORE IP 核设计链接许可证的相关限制,请参阅以下答复记录:
(赛灵思答复记录 42380)- LogiCORE IP 核硬件评估许可证有什么特性/限制?
(赛灵思答复记录 42379)- LogiCORE IP 核仅仿真 (Design_Linking) 许可证有什么特性/限制?
XILINXD_LICENSE_FILE 变量
如果许可证列为 Design_Linking,但您拥有有效的许可证,且该许可证已正确安装并显示在 Vivado License Manager (VLM) 中,那么可能 Vivado 无法检测此 IP 核许可证的位置。
建议将 XILINXD_LICENSE_FILE 环境变量设置为指向默认位置 %APPDATA%/.Xilinx(通常在 Windows 上此位置为 C:/.Xilinx,或者在 Linux 上此位置为 $HOME/.Xilinx),即使 IP 核单机版许可证位于此 .Xilinx 文件夹中也是如此。
这样 Vivado 将在此处查找 IP 核许可证。
下一步是重新打开 Vivado,并再次执行 report_ip_status 扫描。
然后确认这次针对设计中找到的所有 IP 是否能显示 Purchased/Bought 或 HW_Eval(而不是 Design_Linking)。
只要显示的是这两种许可之一,那么下一步即可更新当前网表。
网表更新:
曾经出现过这样的情况,用户已添加有效的新许可证,但由于存在 IP 核相关许可问题,导致比特流生成仍以失败告终。
这其中问题在于添加新的完整 (Full) 许可证或硬件评估 (HW Eval) 许可证后,未更新当前网表。
生成 IP 核时,许可信息存储在网表文件中,即使许可证情况发生变化,也是如此。例如,原先您没有许可证,但随后添加了完整 (full purchased) 许可证(而非评估 (evaluation) 许可证)。
在此情况下,您将需要更新存在问题的 IP 上的输出产品(或者对于块设计,改为针对块设计执行此操作),以更新网表。
否则,只要不更新输出产品,就不会更新网表,而且仍将指向旧许可证,即使已安装有效的许可证后也是如此。
请遵循(赛灵思答复记录 58758)中的步骤进行操作,这些步骤应可帮助您解决此 IP 核许可问题。
IP 核:
在某些情况下,还需要清除 IP 高速缓存。
您可通过两种方式清除 IP 高速缓存。
在 GUI 中的 IP 设置下,有一个按钮用于清除工程的 IP 高速缓存:
或者,可通过运行以下 Tcl 命令来清除 IP 高速缓存:
config_ip_cache -clear_output_repo
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !