资讯动态

Ubuntu 16.04 下 ModelSim 安装与配置完整指南

发布时间:2026/10/20 18:27:29 来源:尧图企业网站定制
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 仿真验证的人基本绕不开它。它分好几个版本SESystem Edition、PEPersonal Edition、DEDistributor Edition还有厂商定制版如 ModelSim-Altera、ModelSim-Xilinx 等。不同版本在 Linux 下的安装方式略有差异但核心流程大同小异。这个内容适合谁看三类人一是在实验室或公司里维护老系统的工程师需要在新机器上复现旧环境二是学生课程要求用 ModelSim 但手头只有 Ubuntu 机器三是想从 Windows 迁移到 Linux 做数字设计的开发者需要一个可用的仿真环境起步。我前后在 Ubuntu 16.04 上装过不下十次 ModelSim踩过的坑包括32 位库缺失导致安装器直接闪退、license 环境变量没配对导致启动报错、字体渲染异常导致界面全是方块、以及最经典的——安装完了但 vsim 命令找不到。下面把这些经验完整拆开讲。2. 安装前的环境准备与依赖梳理2.1 确认系统架构与版本第一步永远是确认你手上的系统到底是什么。打开终端执行uname -m lsb_release -auname -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 libstdc6:i386 \ libxext6:i386 libx11-6:i386 libxft2:i386 libxrender1:i386 \ libxtst6:i386 libxi6:i386 libgcc1:i386这些库各自解决什么问题我逐个说libc6:i38632 位 C 运行时安装器和部分工具链依赖它。libncurses5:i386终端界面库ModelSim 的命令行模式需要。libstdc6:i38632 位 C 标准库很多 EDA 工具的二进制依赖。libxext6、libx11-6、libxft2、libxrender1、libxtst6、libxi6这些都是 X11 相关的图形库ModelSim 的图形界面GUI依赖它们。缺了任何一个可能表现为界面打不开或者打开后花屏。libgcc1:i38632 位 GCC 运行时。实测下来如果你只装libc6:i386和libstdc6: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 里。你需要手动添加。编辑~/.bashrcexport 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 地址。如果你用的是本地 licenseSERVER 行可能写的是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 图形界面启动测试命令行通了之后测试 GUIvsim如果 GUI 能正常打开说明 X11 库都装对了。如果打开后字体是方块说明缺少中文字体或者字体配置有问题。Ubuntu 16.04 下可以装fonts-wqy-zenhei或fonts-noto-cjksudo apt-get install fonts-wqy-zenhei然后重新启动 vsim。如果 GUI 打开后菜单栏文字正常但波形窗口显示异常可能是 GTK 主题冲突可以尝试用env GTK_THEMEAdwaita vsim启动。6.3 一个完整的仿真流程示例假设你有一个简单的 Verilog 文件counter.vmodule counter( input clk, input rst, output reg [7:0] cnt ); always (posedge clk or posedge rst) begin if (rst) cnt 8d0; else cnt cnt 1b1; end endmodule测试文件counter_tb.vmodule 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 来切换版本。可以写两个 aliasalias msim105export PATH/opt/modelsim/10.5/bin:$PATH alias msim107export PATH/opt/modelsim/10.7/bin:$PATH放在~/.bashrc里用的时候执行对应 alias 即可。8.2 环境变量的持久化与隔离如果你在团队里维护多台机器建议把 ModelSim 的环境变量配置写成一个独立脚本比如/opt/modelsim/env.shexport 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.04ModelSim 可能需要重装。因为 32 位库的包名和路径可能变了。升级前建议先备份 license 文件和工程脚本。升级后重新走一遍依赖安装流程大部分情况下旧版 ModelSim 在新系统上也能跑只是依赖库的包名要对应调整。我在实际维护中发现Ubuntu 16.04 到 18.04 的过渡相对平滑主要是libncurses5变成了libncurses5和libtinfo5分开打包需要额外装libtinfo5:i386。到 20.04 之后32 位库的支持进一步收紧可能需要从旧源手动拉包。所以如果你的环境还能用 16.04不建议轻易动。最后分享一个小技巧装完 ModelSim 后把整个安装目录打包备份一份。下次换机器时直接解压配好环境变量就能用省去重新安装的麻烦。license 文件单独保管不要打包进备份里避免泄露。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑