☰
Ubuntu 16.04 下 ModelSim 安装与配置完整指南
2026/10/20 18:27:17 网站建设 项目流程

1. 为什么还有人要在 Ubuntu 16.04 上装 ModelSim

先把场景说清楚。Ubuntu 16.04 是 2016 年发布的 LTS 版本,放到今天确实算老系统了,但在不少高校实验室、企业验证团队里,它依然是主力环境。原因很现实:很多老版本的 EDA 工具链、FPGA 厂商的官方支持列表、以及一批已经跑通多年的仿真脚本,都是围绕这个系统版本固化下来的。你贸然升级到 20.04 或 22.04,可能连安装器都跑不起来,或者跑起来了但和旧版 license 服务、旧版编译脚本打架。

ModelSim 是 Mentor Graphics(现 Siemens EDA)出品的 HDL 仿真工具,做 Verilog / VHDL / SystemVerilog 仿真验证的人基本绕不开它。它分好几个版本:SE(System Edition)、PE(Personal Edition)、DE(Distributor Edition),还有厂商定制版如 ModelSim-Altera、ModelSim-Xilinx 等。不同版本在 Linux 下的安装方式略有差异,但核心流程大同小异。

这个内容适合谁看?三类人:一是在实验室或公司里维护老系统的工程师,需要在新机器上复现旧环境;二是学生,课程要求用 ModelSim 但手头只有 Ubuntu 机器;三是想从 Windows 迁移到 Linux 做数字设计的开发者,需要一个可用的仿真环境起步。

我前后在 Ubuntu 16.04 上装过不下十次 ModelSim,踩过的坑包括:32 位库缺失导致安装器直接闪退、license 环境变量没配对导致启动报错、字体渲染异常导致界面全是方块、以及最经典的——安装完了但 vsim 命令找不到。下面把这些经验完整拆开讲。

2. 安装前的环境准备与依赖梳理

2.1 确认系统架构与版本

第一步永远是确认你手上的系统到底是什么。打开终端执行:

uname -m lsb_release -a

uname -m应该输出x86_64,说明是 64 位系统。lsb_release -a会显示 Ubuntu 16.04 的具体小版本号。为什么要确认这个?因为 ModelSim 的 Linux 安装包通常是 32 位和 64 位混合的,安装器本身可能是 32 位程序,而仿真内核有 64 位版本。如果你的系统是纯 64 位但没有装 32 位兼容库,安装器根本跑不起来。

注意:Ubuntu 16.04 默认的软件源里,32 位库的支持是有的,但需要手动开启多架构支持。

2.2 开启 32 位架构支持并安装依赖库

这是整个安装过程中最关键的一步,也是最容易出问题的地方。执行:

sudo dpkg --add-architecture i386 sudo apt-get update

然后安装一批必需的库:

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 \ libxext6:i386 libx11-6:i386 libxft2:i386 libxrender1:i386 \ libxtst6:i386 libxi6:i386 libgcc1:i386

这些库各自解决什么问题?我逐个说:

  • libc6:i386:32 位 C 运行时,安装器和部分工具链依赖它。
  • libncurses5:i386:终端界面库,ModelSim 的命令行模式需要。
  • libstdc++6:i386:32 位 C++ 标准库,很多 EDA 工具的二进制依赖。
  • libxext6、libx11-6、libxft2、libxrender1、libxtst6、libxi6:这些都是 X11 相关的图形库,ModelSim 的图形界面(GUI)依赖它们。缺了任何一个,可能表现为界面打不开或者打开后花屏。
  • libgcc1:i386:32 位 GCC 运行时。

实测下来,如果你只装libc6:i386和libstdc++6:i386,安装器可能能启动,但 GUI 会出问题。所以上面这一整套建议一次性装齐。

2.3 检查磁盘空间与权限

ModelSim 完整安装后占用的空间不小,SE 版本可能达到 3-5 GB。提前确认:

df -h /opt df -h /home

一般建议装在/opt或用户主目录下。如果装在/opt,需要 root 权限;如果装在主目录,普通用户权限即可,后续升级和维护也更方便。我个人习惯装在/opt/modelsim下,统一管理。

另外确认当前用户有 sudo 权限,因为安装过程中需要创建符号链接、修改环境变量等操作。

3. ModelSim 安装包的选择与获取思路

3.1 版本选择的核心考量

ModelSim 的版本选择不是越新越好。你需要考虑三个因素:

第一,你的 license 文件对应哪个版本。Mentor 的 license 通常和版本号绑定,比如 license 里写的是 10.5,你装 10.7 可能就认不了。这个必须提前确认。

第二,你的仿真代码依赖哪些特性。比如 SystemVerilog 的某些高级验证特性在不同版本间支持程度不同。如果你要跑 UVM 1.2,那至少需要 10.4 以上的版本。

第三,厂商定制版的兼容性。如果你用的是 ModelSim-Altera Starter Edition(免费版),它的功能有限制,比如不支持某些优化选项,仿真速度也慢一些。但胜在免费且安装简单。

3.2 安装包的文件结构

典型的 ModelSim Linux 安装包是一个.run文件,比如modelsim-se-10.7-linux.run。这个文件本质是一个自解压的 shell 脚本,里面打包了安装器和实际的文件。有些版本会提供.tar.gz格式,解压后里面有install脚本。

拿到安装包后,先给它执行权限:

chmod +x modelsim-se-10.7-linux.run

然后不要急着运行,先看看它的帮助信息:

./modelsim-se-10.7-linux.run -help

有些安装器支持-text参数进入纯文本安装模式,这在没有图形界面的服务器上很有用。

提示:如果你拿到的安装包在 Windows 下解压过再传到 Linux,可能会丢失执行权限或文件属性。建议直接在 Linux 下处理压缩包。

4. 图形化安装流程的完整拆解

4.1 启动安装器与初始配置

在终端中进入安装包所在目录,执行:

./modelsim-se-10.7-linux.run

如果一切正常,会弹出图形化安装向导。第一步通常是选择安装目录。这里有个细节:安装路径中不要包含中文或空格,否则后续脚本可能出问题。我一般用/opt/modelsim/10.7这样的路径,版本号单独一层目录,方便以后装多个版本共存。

接下来会问你是否创建桌面快捷方式、是否安装硬件加密狗驱动等。如果你用的是软 license(基于 MAC 地址的 license 文件),不需要装加密狗驱动。硬件狗驱动在虚拟机里经常出问题,能不用就不用。

4.2 安装过程中的常见卡点

安装过程本身通常比较顺利,但有几个地方容易卡住:

第一个卡点是安装器启动后界面空白或者直接闪退。这几乎百分之百是 32 位图形库缺失导致的。回到第 2.2 节,确认那些 i386 库都装上了。可以用ldd命令检查安装器的依赖:

ldd ./modelsim-se-10.7-linux.run

不过.run文件是自解压脚本,ldd可能不直接适用。更实际的做法是看安装器解压后的临时目录里的二进制文件。或者直接看终端输出,缺哪个库通常会报出来。

第二个卡点是安装到一半提示磁盘空间不足。前面已经确认过空间,但如果你选的是/opt而/opt是单独分区且空间小,就会出问题。换个目录即可。

第三个卡点是安装完成后提示“Installation completed with errors”。这时候不要慌,先看安装日志。日志通常在安装目录下的install.log或类似文件中。大部分“错误”其实是某些可选组件没装上,不影响核心功能。

4.3 安装后的目录结构说明

安装完成后,你的安装目录下会有这些关键子目录:

  • bin/:可执行文件,包括vsim、vlog、vcom、vlib等。
  • modeltech/:核心库和配置文件。
  • examples/:示例工程,可以用来验证安装是否成功。
  • include/:头文件,编译时可能用到。

其中bin/目录是后续配置环境变量的重点。

5. 环境变量配置与 license 设置

5.1 PATH 与 LM_LICENSE_FILE 的配置

安装完成后,vsim命令默认不在 PATH 里。你需要手动添加。编辑~/.bashrc:

export PATH=$PATH:/opt/modelsim/10.7/bin export LM_LICENSE_FILE=/opt/modelsim/license.dat

或者用MGLS_LICENSE_FILE,具体用哪个取决于你的 license 类型。Mentor 的工具通常认LM_LICENSE_FILE或MGLS_LICENSE_FILE,两个都设上最保险。

改完后执行:

source ~/.bashrc

然后验证:

which vsim vsim -version

如果which vsim能找到路径,但vsim -version报 license 错误,说明 PATH 配对了但 license 没配对。

5.2 license 文件的常见问题

license 文件通常是一段文本,里面包含 SERVER 行和 FEATURE 行。SERVER 行指定 license 服务器的主机名和 MAC 地址。如果你用的是本地 license,SERVER 行可能写的是localhost或127.0.0.1,但 MAC 地址必须和你机器的网卡 MAC 一致。

检查 MAC 地址:

ifconfig -a | grep HWaddr

或者用ip link show。拿到 MAC 后和 license 文件里的对比。如果不一致,需要联系 license 提供方重新生成,或者自己用工具修改(这涉及 license 合规问题,建议走正规渠道)。

另一个常见问题是 license 文件路径中有空格或特殊字符。LM_LICENSE_FILE的值如果是多个路径,用冒号分隔,不要用分号。

注意:license 文件不要放在中文目录下,也不要有中文文件名。有些版本的 license 解析器对非 ASCII 字符处理有问题。

5.3 验证 license 是否生效

执行:

vsim -c -do "quit"

-c表示命令行模式,-do "quit"表示执行完 quit 命令就退出。如果 license 正常,你会看到 ModelSim 的启动信息然后正常退出。如果 license 有问题,会报类似 “Unable to checkout a license” 的错误。

报错信息里通常会包含具体是哪个 feature 出了问题,比如vsim或vlog。根据 feature 名称去 license 文件里找对应的 FEATURE 行,确认版本号和数量。

6. 安装后的验证与首个仿真跑通

6.1 用示例工程做冒烟测试

安装目录下的examples/里通常有现成的工程。找一个最简单的 Verilog 例子,比如一个计数器或加法器。进入目录后:

vlib work vlog test.v vsim -c work.test -do "run -all; quit"

这三条命令分别做:创建 work 库、编译 Verilog 文件、启动仿真并运行到底。如果能看到仿真输出(比如打印的计数结果),说明整个工具链是通的。

6.2 图形界面启动测试

命令行通了之后,测试 GUI:

vsim

如果 GUI 能正常打开,说明 X11 库都装对了。如果打开后字体是方块,说明缺少中文字体或者字体配置有问题。Ubuntu 16.04 下可以装fonts-wqy-zenhei或fonts-noto-cjk:

sudo apt-get install fonts-wqy-zenhei

然后重新启动 vsim。如果 GUI 打开后菜单栏文字正常但波形窗口显示异常,可能是 GTK 主题冲突,可以尝试用env GTK_THEME=Adwaita vsim启动。

6.3 一个完整的仿真流程示例

假设你有一个简单的 Verilog 文件counter.v:

module counter( input clk, input rst, output reg [7:0] cnt ); always @(posedge clk or posedge rst) begin if (rst) cnt <= 8'd0; else cnt <= cnt + 1'b1; end endmodule

测试文件counter_tb.v:

module counter_tb; reg clk, rst; wire [7:0] cnt; counter u_counter(.clk(clk), .rst(rst), .cnt(cnt)); initial begin clk = 0; forever #5 clk = ~clk; end initial begin rst = 1; #20 rst = 0; #200 $finish; end initial begin $monitor("Time=%0t cnt=%d", $time, cnt); end endmodule

编译和仿真:

vlib work vlog counter.v counter_tb.v vsim -c work.counter_tb -do "run -all; quit"

你应该能看到 cnt 从 0 开始递增,到 255 后回绕。这个流程跑通,说明你的 ModelSim 环境已经完全可用了。

7. 常见问题排查与避坑经验

7.1 安装器无法启动的排查路径

这是最高频的问题。排查顺序如下:

现象可能原因解决方法
双击无反应缺少执行权限chmod +x
终端运行报错 “No such file”32 位加载器缺失装libc6:i386
启动后闪退图形库缺失装全套 i386 X11 库
提示 “cannot execute binary file”架构不匹配确认安装包是 Linux 版而非 Windows 版
界面乱码字体缺失装中文字体

7.2 vsim 命令找不到的几种情况

which vsim没输出,说明 PATH 没配好。检查~/.bashrc里的 PATH 是否包含 ModelSim 的bin目录。如果配了但还是找不到,可能是source没执行,或者你用的是zsh而不是bash,需要改~/.zshrc。

还有一种情况是 PATH 配了,但vsim文件本身没有执行权限。去bin目录下ls -l vsim看看,如果没有x权限,chmod +x vsim。

7.3 license 报错的典型场景

license 问题占 ModelSim 使用问题的七成以上。典型报错和对应处理:

  • “Unable to find license file”:LM_LICENSE_FILE没设或路径错。
  • “Invalid license file”:license 文件内容被截断或格式错。
  • “License expired”:license 过期,需要更新。
  • “Hostid mismatch”:MAC 地址不匹配。
  • “Cannot connect to license server”:license 服务器没启动或网络不通。

对于本地 license,最常见的是 Hostid mismatch。用ifconfig确认 MAC,和 license 文件里的对比。注意有些机器有多个网卡,license 绑定的是哪一个要搞清楚。通常绑定的是eth0或enp3s0这类有线网卡,不是lo或无线网卡。

7.4 仿真速度慢的优化思路

如果你觉得仿真跑得慢,可以尝试几个方向:

第一,用vopt做优化编译。vsim -o选项可以在仿真前做优化,对大型设计提速明显。

第二,关闭不必要的波形记录。$dumpfile和$dumpvars会显著拖慢仿真,只在需要时开启。

第三,用-c命令行模式跑回归测试,比 GUI 模式快。

第四,检查是否误用了 32 位版本。64 位版本在处理大设计时内存寻址更有优势。

8. 多版本共存与后续维护

8.1 多版本安装的目录规划

如果你需要同时装多个版本的 ModelSim(比如 10.5 和 10.7),建议目录结构如下:

/opt/modelsim/ ├── 10.5/ │ ├── bin/ │ └── ... ├── 10.7/ │ ├── bin/ │ └── ... └── license.dat

然后通过切换 PATH 来切换版本。可以写两个 alias:

alias msim105='export PATH=/opt/modelsim/10.5/bin:$PATH' alias msim107='export PATH=/opt/modelsim/10.7/bin:$PATH'

放在~/.bashrc里,用的时候执行对应 alias 即可。

8.2 环境变量的持久化与隔离

如果你在团队里维护多台机器,建议把 ModelSim 的环境变量配置写成一个独立脚本,比如/opt/modelsim/env.sh:

export MODELSIM_HOME=/opt/modelsim/10.7 export PATH=$MODELSIM_HOME/bin:$PATH export LM_LICENSE_FILE=/opt/modelsim/license.dat

然后在~/.bashrc里source /opt/modelsim/env.sh。这样升级版本时只改一个文件。

8.3 系统升级时的注意事项

如果哪天你要把系统从 16.04 升级到 18.04 或 20.04,ModelSim 可能需要重装。因为 32 位库的包名和路径可能变了。升级前建议先备份 license 文件和工程脚本。升级后重新走一遍依赖安装流程,大部分情况下旧版 ModelSim 在新系统上也能跑,只是依赖库的包名要对应调整。

我在实际维护中发现,Ubuntu 16.04 到 18.04 的过渡相对平滑,主要是libncurses5变成了libncurses5和libtinfo5分开打包,需要额外装libtinfo5:i386。到 20.04 之后,32 位库的支持进一步收紧,可能需要从旧源手动拉包。所以如果你的环境还能用 16.04,不建议轻易动。

最后分享一个小技巧:装完 ModelSim 后,把整个安装目录打包备份一份。下次换机器时直接解压,配好环境变量就能用,省去重新安装的麻烦。license 文件单独保管,不要打包进备份里,避免泄露。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询