Microsemi Libero
来自 Microsemi 网站
- Libero® SoC Design Suite 提供高生产力,其全面的、易于学习、易于采用的开发工具,用于设计 Microsemi 的 PolarFire、IGLOO2、SmartFusion2、RTG4、SmartFusion、IGLOO、ProASIC3 和 Fusion 系列。
本文展示了如何在 Arch Linux 上安装 Microsemi Libero FPGA 设计工具链。
安装
准备工作
Libero 需要大约 45GiB 的可用磁盘空间。安装 Libero 的磁盘大小不得超过 2TB!
软件包安装
Libero 依赖于 multilib 中的一些 32 位软件包。如果尚未启用 multilib 仓库,则需要启用它。
安装 以下软件包: openmotif zlib libjpeg6-turbo lib32-libxft lib32-libpng12 lib32-dbus lib32-sqlite lib32-libpulse lib32-libxcomposite
License Manager 二进制文件还需要软件包 ld-lsb (截至 lmgrd v11.16.6.0)
Qt5 32 位依赖
Libero 共享库的部分也依赖于 32 位 Qt5 库,即 libQt5XcbQpa.so.5
、libQt5Gui.so.5
、libQt5DBus.so.5
和 libQt5Core.so.5
。遗憾的是,它们在 multilib 仓库中不可用,因此我们必须手动添加它们。
在 Qt 32 位在线安装程序 下载 32 位 Qt 安装程序,使其 可执行 并运行它
$ ./qt-unified-linux-x86-2.0.5-2-online.run
安装 "Qt 5.5" -> "Desktop gcc" 应该就足够了。设置一个合理的安装路径,例如 /home/user/lib/qt5_32
,其中 user 是您的用户名。
解压文件
安装程序解压缩它自己的 Java Runtime,并且即使它告诉您不同,默认情况下也使用 /tmp
作为临时文件。因此,请确保 /tmp
上有足够的可用空间!默认大小为系统总内存一半的 tmpfs 通常不足以进行安装,您必须在安装前 禁用 它,并 重启 系统以应用更改
从 https://www.microsemi.com/product-directory/design-resources/1750-libero-soc#downloads 下载 “Libero SoC v12.1 for Linux” 安装文件(您需要创建一个帐户)。使其 可执行 并运行它
$ ./Libero_SoC_v12.1_lin.bin -i console
在安装程序中回答问题,并设置一个路径来解压文件,例如 /home/user/programs/microsemi/libero/v12.1/
和 /home/user/programs/microsemi/common
。有一个图形安装程序可用,只需在上面的调用中将 console
替换为 gui
即可。
静默安装
您也可以在命令行上将安装参数传递给脚本,而不是手动输入它们。以下是默认安装的示例
$ ./Libero_SoC_v12.1_lin.bin -i silent \ -DUSER_INSTALL_DIR=/home/user/programs/microsemi/libero/v12.1/ \ -DUSER_COMMON_DIR=/home/user/programs/microsemi/common \ -DCHOSEN_FEATURE_LIST=Synplify,ModelSim,ModelsimPro,Identify,Libero \ -DCHOSEN_INSTALL_FEATURE_LIST=Synplify,ModelSim,ModelsimPro,Identify,Libero \ -DCHOSEN_INSTALL_SET=Libero
安装后配置
必须进行一些修改才能使 Libero 在 Arch Linux 上运行。
Libero 尝试加载旧版本的 motif 库。修改以下文件并在 case `uname`
代码块中将 3 更改为 4
/home/user/programs/microsemi/libero/v12.1/Libero/bin/actel_setup_vars and /home/user/programs/microsemi/libero/v12.1/Libero/bin64/actel_setup_vars
... case `uname` in SunOS) ... Linux) arch=lin # X/Motif MOTIF_LIB=libXm.so.4 ...
此外,Microsemi 附带的过时的 libz
版本不适用于仓库版本的 lib32-libpng12。在 /home/user/programs/microsemi/libero/v12.1/Libero/lib
中执行以下操作,使 Libero 使用由 pacman 安装的库
$ mv libz.so.1 libz.so.1.old $ ln -s /lib/libz.so libz.so.1
在 /home/user/programs/microsemi/libero/v12.1/Libero/libfp
中重复相同的两个命令,以启用 FlashPro 实用程序。
安装程序错误地在定义 vault 位置时在 common 路径周围添加了双引号。因此,Libero 在调用时将在工作目录中创建一个名为 ""
的文件夹。要更改这一点,可以手动编辑文件 install.def
,从定义 VAULT_LOCATION
的行中删除双引号
/home/user/programs/microsemi/libero/v12.1/Libero/data/install.def
... data VAULT_LOCATION '/home/user/programs/microsemi/common/vault' OVERRIDE ...
... 或运行以下命令以删除引号
$ cd /home/user/programs/microsemi/libero/v12.1/Libero/data $ sed 's/"//g' install.def > tmp.def $ cp tmp.def install.def $ rm tmp.def
启动 Libero
启动 Libero 时,必须设置一些 环境变量。
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/lib/qt5_32/5.5/gcc/lib LM_LICENSE_FILE="port@domain.of.your.license.server" SNPSLMD_LICENSE_FILE="port@domain.of.synopsys.license.server"
$LD_LIBRARY_PATH
必须包含来自 32 位 Qt 安装的库,$LM_LICENSE_FILE
反映您的 Libero 许可证服务器,许可证守护程序在某些端口下的某个 url domain.of.your.license.server 上运行。$SNPSLMD_LICENSE_FILE
是 Synopsys 工具在 Libero 中使用的必需项,如果您有多个许可证守护程序正在运行,或者没有,则将其设置为不同的服务器和端口,或设置为 $LD_LIBRARY_PATH
。
设置这些变量后,Libero 就可以使用以下命令启动了
$ /home/user/programs/microsemi/libero/v12.1/Libero/bin/libero
您可能想要为此创建一个启动脚本
/home/user/scripts/launch_libero.sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/lib/qt5_32/5.5/gcc/lib export LM_LICENSE_FILE="port@domain.of.your.license.server" export SNPSLMD_LICENSE_FILE="port@domain.of.synopsys.license.server" /home/user/programs/microsemi/libero/v12.1/Libero/bin/libero
不要忘记使其 可执行。
可以通过在您的 ~/.local/share/applications
目录中 创建 一个 libero.desktop
文件,将 freedesktop.org 应用程序菜单项(许多桌面环境和窗口管理器都遵循)添加到系统中
~/.local/share/applications/libero.desktop
[Desktop Entry] Version=1.0 Name=Libero SoC Design Suite v12.1 Comment=Microsemi Design Software for Microsemi FPGAs and SoCs Exec=/home/user/scripts/launch_libero.sh Icon=/home/user/programs/microsemi/libero/v12.1/libero.xpm Terminal=false Type=Application Categories=Development
使用 FlashPro 编程器
使用编程器(例如 Microsemi FlashPro5)需要两个步骤:添加规则以获取设备权限和卸载冲突的内核模块。
添加 udev 规则
要为您的用户添加访问编程器的正确权限,请将以下文件以 root 身份添加到您的 Udev 规则集
/etc/udev/rules.d/70-microsemi.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="1514", ATTR{idProduct}=="2008", MODE="0666", GROUP="microsemi-prog" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", MODE="0666", GROUP="microsemi-prog"
组 microsemi-prog
只是一个示例,您可以将其替换为您用户所在的任何组,或者 添加一个新组 并使用 usermod 将您的用户添加到其中。
您必须注销并重新登录以应用会话的新组。在单个终端中,有些人也可以使用 newgrp microsemi-prog
应用新组。要列出您的组,请键入 id
或 groups
。
移除冲突的内核模块
插入编程器时,它会被识别为 FTDI 串行设备并加载相应的内核驱动程序。Libero 软件不适用于该内核驱动程序,因此我们必须卸载它
# rmmod ftdi_sio
要永久卸载驱动程序,您可以将其添加到您的 黑名单
/etc/modprobe.d/blacklist-ftdi.conf
blacklist ftdi_sio
故障排除
Libero 崩溃并显示 SysXceptError
Libero 12.1 版本之前的所有版本都不能在大于 2TB 大小的磁盘上工作。Libero 二进制文件、vault 或您的 home 文件夹或任何项目都不得驻留在大于该大小的分区上。如果您无法更改 home 文件夹所在分区的大小,请在较小的磁盘上使用不同的 home 路径启动 Libero
$ HOME=/path/to/fake/home libero
有些人可能会将其添加到启动脚本中以在启动时应用它。安装和 vault 位置必须在安装时设置,或者在之后移动文件时在 /home/user/programs/microsemi/libero/v12.1/Libero/data/install.def
中编辑。