FEATURED · 精选文章

Ubuntu 20.04安装QuestaSim 2021全流程:从依赖库到License配置

发布时间 / 2026/9/7 23:30:11
来源 / 创域科博编辑部
栏目 / 资讯中心
Ubuntu 20.04安装QuestaSim 2021全流程:从依赖库到License配置 简介一份面向数字IC设计与验证工程师的QuestaSim 2021 Linux版安装教程PDF基于VMware 17 Pro与Ubuntu 20.04.5 LTS环境实测通过针对性解决QuestaSim在Ubuntu下安装、许可生成、依赖配置及环境变量设置等常见难题。资源为单文件PDF仅945KB但内容紧凑、步骤完整目前已有6661人学习下载说明其稳定性和参考价值经过了大量读者验证。文档包含从软件下载到启动vsim的完整过程提供百度网盘安装包链接与解压密码覆盖安装权限处理、安装目录规划、产品组件选择、许可文件生成、补丁运行、libxft2/libxext6等依赖库安装以及.bashrc中PATH与M_LICENSE_FILE的配置方法。同时针对ifconfig不存在、python2缺失等典型报错给出了解决方向初学者可按图索骥完成部署有经验的工程师也能快速排查问题省去四处搜索的麻烦。 如果你正在Windows下用QuestaSim跑仿真跑得正欢突然被要求把工程迁到实验室的Ubuntu服务器或者公司刚给配了一台Linux工作站——恭喜接下来一整天你都会跟安装环境搏斗。我上周刚在一台Ubuntu 20.04上把QuestaSim 2021装完跑通中间踩了好几个坑趁记忆还热把整个流程和排错经验写下来。标题里的Ubantu实际是Ubuntu的笔误QuestaSim 2021确实有原生Linux x86_64版本但它不像Windows安装包那样双击Next到底依赖库、权限、License和环境变量每个环节都能卡人。这篇就是完整的Ubuntu安装教程附带日常使用和ISE联合仿真的落地方法。1. 为什么非要在Ubuntu上跑QuestaSim 2021先从场景说起1.1 这个教程适合谁先对号入座。如果你属于下面三类人这篇内容对你的帮助最大实验室或公司的仿真环境统一放在Linux服务器上你需要在无图形界面的情况下用vsim -c跑回归测试你装了虚拟机Ubuntu想在里面跑完整数字IC或FPGA仿真流程替代Windows下的ModelSim/QuestaSim你在用Xilinx ISE做FPGA开发想把仿真器切换到QuestaSim而不是用ISE自带的ISim。这三类场景我都实际经历过。当时最直观的感受是Linux下QuestaSim的仿真速度比Windows下更稳尤其跑大规模testbench时内存管理和多核负载分配更可控。而且服务器上跑vsim -c配合Makefile做自动化回归是Windows环境很难替代的工作流。1.2 版本和安装包形式得先分清QuestaSim 2021系列常见的有2021.1、2021.2、2021.3等小版本Linux版安装包一般长这样questasim-linux-x86_64-2021.1.tar.gz questasim-2021.1_1.tar.gz还有一类是Intel FPGA官网提供的Questa Intel FPGA Edition同样有Linux版本内部核心引擎和标准版一致但对Intel Cyclone/Stratix器件的库支持更全。我这次装的是Mentor标准版2021.1从Siemens EDA官方渠道或授权代理商获取安装包。需要特别提醒2021这个版本号有特殊意义。它是支持老式libXft、libpng12等依赖库的最后时期之一到了2023之后的版本对系统glibc版本要求更高在旧Ubuntu 20.04上反而不好装。如果你不是必须追新2021.1搭配Ubuntu 20.04/22.04是非常稳的组合。2. 装之前先把这几样备齐系统环境、依赖库和目录规划2.1 Ubuntu版本选择和虚拟机部署背景我实测过Ubuntu 20.04和22.04都能正常安装运行QuestaSim 2021.1。如果条件允许优先用20.04 LTS原因是它的旧兼容库最齐全很多依赖直接apt install就有不需要手动去下载deb包。22.04部分库需要启用universe仓库24.04必须要额外处理libncurses5和libtinfo5不是不能装但折腾时间明显变长。经常有朋友在VMware里装Ubuntu来跑QuestaSim这完全可行。但有两个前置要求虚拟机内存不要低于4GB否则QuestaSim跑仿真时分配存储空间会捉襟见肘安装VMware Tools或open-vm-tools不然虚拟机窗口分辨率锁死QuestaSim图形界面显示会出问题。2.2 依赖库清单报错集中区QuestaSim 2021 Linux版在本质上是32位和64位混合的程序虽然主程序是64位但它会用Tcl 8.4解释器、老式Motif图形库这些组件对系统库版本极其敏感。缺库的直接表现是命令运行后立刻报error while loading shared libraries或者双击后闪退却没有任何提示。我在Ubuntu 20.04上首次安装时用的依赖安装命令sudo apt update sudo apt install -y libncurses5 libncursesw5 libtinfo5 \ libpng16-16 libbz2-1.0 libfontconfig1 libxft2 \ libxrender1 libglib2.0-0 libexpat1 libx11-6 libxext6几个容易被忽视的点libncurses5和libtinfo5是QuestaSim启动时最常依赖的缺少时vsim会有类似libtinfo.so.5: cannot open shared object file的报错libxft2和libxrender1影响GUI启动缺少时程序能在终端输出版本号但一开图形界面就闪退libbz2-1.0影响编译VHDL标准库时的数据解压缺少时vcom编译会异常终止。如果在Ubuntu 22.04上apt install libncurses5提示找不到包可以尝试sudo apt install -y libncurses5 libtinfo5如果仍然失败就需要从Ubuntu 20.04的软件源手动下载deb包用dpkg -i安装。这个情况我后面遇到过一次会在第3章展开。2.3 安装目录规划和用户权限QuestaSim不建议直接装在/root下。EDA工具通常用普通用户运行避免文件权限错乱。我的习惯目录结构是这样/home/yourname/tools/questa/ /home/yourname/tools/questa/questasim # 主程序 /home/yourname/tools/questa/license # 放license文件 /home/yourname/sim/ # 仿真工程统一放这里为什么不用/opt/questasim因为很多场景下你没有root权限去写/opt而且以后升级、清理、给同组其他人共享都在home目录下操作更灵活。如果你确实要装成系统级工具可以装在/opt/questasim然后把bin目录加入所有用户的环境变量但这需要root权限而且License文件的读取权限也要仔细设置。解压前先确认磁盘空间QuestaSim完整安装后大约需要3-4GB空间加上编译库的空间建议预留10GB以上。3. 安装实操解压、执行、验证一条龙3.1 解压安装包与文件结构观察拿到安装包后先解压注意路径中不要有中文空格否则部分脚本解析路径会失败。我通常在home下的tools目录里解压cd ~/tools tar xzf questasim-linux-x86_64-2021.1.tar.gz ls -la questasim/标准版解压后你会看到这些内容bin/存放vsim、vlog、vcom、vlib等可执行文件其中vsim是最核心的仿真器gcc/QuestaSim自带的GCC编译链用来支持C/C测试平台和DPIinclude/Verilog/VHDL标准头文件vlog编译器需要modelsim.ini库映射主配置文件控制work库和标准库的位置tcl8.4/内嵌Tcl解释器QuestaSim的do脚本、GUI命令都基于它questasim/子目录部分打包方式会把真正的程序放在这层需要灵活观察。3.2 执行安装脚本与常见中途失败一部分安装包会带install.linux或setup.sh脚本例如cd questasim/ ./install.linux这个脚本本质上是检查系统架构、写寄存器信息、建立bin目录软链接并不会像Windows那样往注册表写东西。如果脚本给出可选项选择安装到当前目录即可。但很多2021版Linux安装包解压后已经可以直接使用不需要执行安装脚本。判断方法很简单看bin/vsim是否已经存在且有执行权限ls -l questasim/bin/vsim如果文件存在直接设置环境变量就能跑。我当时第一次没细看多执行了一步安装脚本结果脚本提示target already installed并不影响使用但属于无用功。常见中途失败集中在两类permission denied解压时用了root后续普通用户无法写库文件解决方法是chown -R yourname:yourname questasimbad interpreter执行install.linux时提示脚本解释器问题通常是系统缺少/bin/sh软链接或者用了极其精简的容器环境安装dash或bash即可。3.3 验证安装版本号加最小仿真设置临时环境变量做快速验证export PATH$HOME/tools/questasim/bin:$PATH vsim -version如果能看到类似QuestaSim-64 vsim 2021.1的输出说明主程序能加载。但能打印版本只代表依赖库全了真正能不能仿真还要过一遍完整的编译-仿真流程。我建议立刻建一个最小工程验证mkdir -p ~/sim_test cd ~/sim_test cat counter.v EOF module counter( input wire clk, input wire rst_n, output reg [3:0] q ); always (posedge clk or negedge rst_n) begin if (!rst_n) q 4d0; else q q 1b1; end endmodule EOF vlib work vlog counter.v vsim -c work.counter -do run -all; quit -l run.log这条命令会在纯命令行模式下运行仿真并把全部输出写到run.log。如果能看到End time那一行输出说明QuestaSim已经在你机器上健康运行了。这个最小工程我建议保留后续用来测试license改动和环境变量设置非常方便。4. License配置是最大的坎从报错到跑通4.1 License文件该怎么放QuestaSim和多数EDA工具一样启动时会向License服务请求许可。你需要把厂商正式提供的license.dat也可能是.txt或.lic后缀放到固定位置。我的做法mkdir -p ~/tools/questa/license cp license.dat ~/tools/questa/license/ chmod 644 ~/tools/questa/license/license.dat不要用root去启动Questasim再访问license文件普通用户的读取权限足够。把License文件放在home目录下还有一个好处即使系统升级或重启文件都在不会因为/opt下的临时清理而丢失。4.2 环境变量设置MGLS还是LMQuestaSim支持的License环境变量有两个export MGLS_LICENSE_FILE/home/yourname/tools/questa/license/license.dat export LM_LICENSE_FILE/home/yourname/tools/questa/license/license.datMGLS_LICENSE_FILE是Mentor Graphics专用变量LM_LICENSE_FILE是通用FlexLM变量。实际测试中设置MGLS_LICENSE_FILE优先级更高最稳妥是两者都设置。如果license在远程服务器上可以用27000license-server-ip的格式。建议把环境变量固化到~/.bashrc的末尾echo ~/.bashrc echo # QuestaSim 2021.1 ~/.bashrc echo export PATH$HOME/tools/questa/bin:$PATH ~/.bashrc echo export MGLS_LICENSE_FILE$HOME/tools/questa/license/license.dat ~/.bashrc echo export LM_LICENSE_FILE$HOME/tools/questa/license/license.dat ~/.bashrc source ~/.bashrc这里有个经验不要把LD_LIBRARY_PATH轻率地指向questasim/lib。QuestaSim自带一部分老版本动态库但宿主机通常已经有新版库两者一旦冲突会出现难以排查的Fatal Error或Aborted。默认情况下QuestaSim能找到它自己的库不要画蛇添足。4.3 常见三类报错与排查链路我前前后后处理过很多次License问题最高频的就是下面三类报错信息含义排查方向Unable to checkout a license无法获取许可先确认环境变量是否生效再确认license文件是否可读Invalid license keyLicense文件内容与主机不匹配检查hostname、MAC地址是否和授权信息一致License server system does not support this featureLicense未包含对应功能查看license文件里的FEATURE关键字确认是否包含Questasim或ModelSim的完整feature排查链路我建议按顺序走不要跳步运行echo $MGLS_LICENSE_FILE确认环境变量真的生效运行lmstat -a或lmdiag确认license服务器能正常响应查看~/.flexlmrc或~/.flexlm.log里面记录每次license请求的详细结果如果本机license文件直接head -50 license.dat看开头注释确认授权类型和hostname。有一次我折腾了半小时最后发现是license.dat文件名大小写写错了Linux是大小写敏感系统这个细节比Windows下严格得多。4.4 本地license与服务器license怎么选如果只有你一个人用这套工具本地文件license最省心。如果是团队共享建议配置license server客户端只写环境变量指向27000server_ip。这里有个权衡服务器license方便集中管理但增加了网络依赖一旦断网或服务器维护所有客户端都跑不了仿真。本地方案简单直接但授权文件不能跨机器复制每台机器都要单独申请。5. 跑起来之后的事标准库、联合仿真和远程使用5.1 编译模型库与工作库管理QuestaSim启动后不会自动建立任何工程库work库需要显式创建vlib work这个work目录在Linux下就是普通文件夹里面保存编译后的中间文件。每次新工程都建议单独建目录并在里面vlib work避免多个工程互相覆盖。你可以把这句话写到自己的个人笔记里vlib work是Questasim仿真流程的第一步没有work库vlog会报Cannot open work library。5.2 与Xilinx ISE的联合仿真怎么跑这是搜索热词里被问得最多的点。ISE默认仿真器是ISim但通过设置可以切换成QuestaSim。前提是vsim已经能被系统找到即被加入到PATH中。在ISE工程中切换仿真器的步骤打开ISE工程选择Design面板的Simulation视图右键点击testbench文件选择Process Properties找到Simulation Properties下的Simulator选项从列表中选择QuestaSim设置Compiled Library Directory指向你已经编译好的Xilinx仿真库。ISE调用QuestaSim的方式本质上是生成一个包含RTL文件和testbench的.f文件然后调用vsim执行仿真波形。如果你更喜欢命令行也可以绕过ISE的GUI直接在工程目录下执行vlog -f ise_project.f vsim -c work.testbench -do run -all; quit联合仿真常见的坑是Xilinx原生IP库版本不匹配。ISE的IP核会生成.ngc或.vhd文件必须用对应的仿真库编译。如果你看到大量Failed to find module错误大概率是库编译不全或modelsim.ini里缺少映射关系。5.3 在虚拟机或服务器上的使用姿势很多人在虚拟机里跑QuestaSim。如果你的VMware窗口内GUI正常Verdi-style窗口也能弹出那问题不大。但如果是在无显示器的服务器上想跑图形界面需要X11转发ssh -X yournameserver vsim work.testbench注意-X和常见的-x不同小写-x会关闭X11转发。转发后GUI能打开但网络延迟高的时候鼠标操作会卡顿。更高效的做法是纯命令行仿真vsim -c work.testbench -do run -all; quit配合do脚本可以实现完全不依赖图形界面的回归测试# run_all.do view wave add wave -r /* run -all quit调用方式vsim -c work.testbench -do run_all.do。这样即使通过SSH慢速连接、甚至放在后台nohup运行都能稳定完成任务。5.4 日常使用最重要的小习惯最后分享一个我踩过多次坑后养成的习惯每次开新工程第一件事就是写一个sim.do脚本把所有编译命令和仿真参数都放进去而不是每次手动敲vlog和vsim。因为Linux终端下命令一旦写错清除中间文件再重编的时间成本远比写脚本高。# sim.do vlib work vlog counter.v tb_counter.v vsim -c work.tb_counter -do run -all; quit之后直接vsim -c -do sim.do一条命令跑完日志文件通过-l参数指定。等你开始维护多个模块时会感谢这个习惯。QuestaSim在Linux下的优势从来不是图形界面而是命令行、脚本化和自动化一旦适应这个思路整个仿真效率会上一个台阶。本文还有配套的精品资源点击获取
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻