Ubuntu 22.04 LTS安装Modelsim SE 2020.4

前言

教程中的部分内容参考自易特创芯论坛,鉴于论坛相关资料有些零散、安装步骤繁琐或是存在错误、部分原理性问题未解释清楚人云亦云、导致为入门者带来了困难等原因,为此梳理出一篇相对完整的教程

准备工作

· 预装的Ubuntu系统版本:22.04 LTS (理论上20及以上版本的Ubuntu系统均可,必须有桌面环境)

· Modelsim版本:SE 2020.4,安装包下载地址:点此访问百度网盘

安装过程

一、安装软件

1-1:将网盘中的modelsim-se-2020.4.aol安装包下载到目标系统,将其设置为可执行

sudo chmod +x modelsim-se-2020.4.aol

1-2:以sudo方式运行安装包

sudo ./modelsim-se-2020.4.aol

1-3:在弹出的安装界面中选择Install Products

1-4:在Select a target location设置安装路径,教程安装至/opt/mentor/modelsim2020.4目录

1-5:选择需要安装的组件:教程使用了64位Ubuntu,所以选择安装64位组件

1-6:等待3~5分钟完成安装

二、设置环境变量

· 根据实际需求选择添加到全局配置文件或是个人配置文件中,执行以下命令可添加至全局配置文件/etc/bash.bashrc

# 对变量添加备注(非必须)
echo '' | sudo tee -a /etc/bash.bashrc; echo '# This is the variable of Modelsim2020.4' | sudo tee -a /etc/bash.bashrc

# 设置软件运行环境为64位
echo 'export MTI_VCO_MODE=64' | sudo tee -a /etc/bash.bashrc

# 设置软件可执行文件所在目录
echo 'export PATH=$PATH:/opt/mentor/modelsim2020.4/modeltech/bin/' | sudo tee -a /etc/bash.bashrc

# 设置License文件路径(虽然此时还未生成License,但可以提前设置)
echo 'export LM_LICENSE_FILE=/opt/mentor/modelsim2020.4/license.lic' | sudo tee -a /etc/bash.bashrc

# 使修改的环境变量配置文件生效
source /etc/bash.bashrc

三、测试软件运行状态

· 在Ubuntu桌面环境的Terminal里执行

vsim

· 回显如下关于License的报错说明Modelsim运行正常;如回显缺少依赖库的报错需要安装对应支持库

四、破解License验证程序

前言:

常规软件的破解方法比较简单:或是输入Key、或是将已Crack过的exe/dll文件覆盖替换原程序,或是运行一键破解补丁其自动完成破解工作;因为EDA软件的特殊性,Modelsim既需要破解安装目录中的License验证程序,还需要根据主机MAC地址生成License授权文件

4-1:将Crack压缩包中的sfk64程序放到以下目录:

/opt/mentor/modelsim2020.4/modeltech/linux_x86_64/mgls/lib/

备注:网络其他教程提供的sfk为32位程序,需要安装某些支持库才能运行。教程附件提供的是64位程序,可直接运行于教程中使用的Ubuntu 22.04 LTS系统

4-2:对sfk程序设置可执行权

# 进入License验证程序所在目录
cd /opt/mentor/modelsim2020.4/modeltech/linux_x86_64/mgls/lib/

# 对sfk程序设置可执行权
sudo chmod +x sfk64

4-3:破解License验证程序

# 执行破解命令
sudo ./sfk64 rep -yes -bin /41574989CF41564589C6415541544189D455534889FB4881ECF8000000488B8798020000/4831c0c3CF41564589C6415541544189D455534889FB4881ECF8000000488B8798020000/ -dir .

4-4:验证是否破解成功

下图所示,sfk程序回显3 files checked, 2 changed. 1 errors occureed表示破解成功;如回显0 changed表示破解异常

4-5:破解原理(如对此不感兴趣可跳过)

4-5-1:

下图所示,被破解目录/opt/mentor/modelsim2020.4/modeltech/linux_x86_64/mgls/lib有4个文件:mgcld、mgls_asynch、mgc.pkginfo、sfk64

· sfk64运行过程中不对自身进行检索,所以sfk回显3 files checked,表示3个文件被检测;

· mgcld、mgls_asynch用于Licnese验证,也是被破解的对象,所以sfk回显2 changed表示这两个文件已被修改;

· sfk64运行过程中不对自身进行检索,所以sfk回显1 errors occurred;

· mgc.pkginfo用于License的生成,不参与本阶段的破解

4-5-2:

破解过程中使用的sfk程序全称为Swiss File Knife,它并不属于软件破解器,而是文件处理工具。在执行4-3步的破解命令后,其会读取指定目录中所有文件的二进制数据,如果存在以下数据

41574989CF41564589C6415541544189D455534889FB4881ECF8000000488B8798020000

则替换为:

4831c0c3CF41564589C6415541544189D455534889FB4881ECF8000000488B8798020000

五、生成License授权文件

前言:

不同版本的Modelsim破解方法存在明显差异,混用方法会导致破解失败

5-1:网上现有教程中有两种License生成方法

1.在Ubuntu安装wine,通过其模拟Windows环境运行MentorKG.exe生成License文件。不过在安装wine过程中需要安装大量支持库,占用磁盘空间和网速,其安装的支持库还可能对现有其他软件的依赖库造成影响,所以教程不采用这种方式

2.在Windows环境安装与Ubuntu同版本的Modelsim,并将MAC修改为Linux系统的网卡地址,然后运行MentorKG生成License文件,此方法较为繁琐教程也不采用

通过分析发现:

MentorKG程序在破解V10旧版本的Modelsim时需要mgls.dll/mgls64.dll文件参与,否则会报错退出。而破解2020.4版仅需要mgc.pkginfo的参与

· 首先提取Ubuntu系统的网卡MAC

# 在Terminal运行如下命令
ip addr

· 提取出网卡MAC: 00:15:5d:b5:ee:10,并将其编辑为MentorKG程序认可的格式: 00155db5ee10

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:b5:ee:10 brd ff:ff:ff:ff:ff:ff
    inet 192.168.181.67/24 brd 192.168.181.255 scope global dynamic noprefixroute eth0
       valid_lft 28706sec preferred_lft 28706sec
    inet6 fe80::f855:b5bb:daa1:455c/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

· 将Crack工具包下载到Windows系统,将其解压到路径不存在中文及特殊符号的目录中,教程将其解压在了D盘

· 通过CMD程序运行以下命令(某些系统需要以管理员权限运行CMD)

# 设置D盘Crack为根目录
cd /d D:\Crack

# 通过MentorKG工具和前一步提取的MAC地址生成License
MentorKG.exe -h 00155db5ee10

· 程序回显

Mentor Graphics MGCLD License KeyGen V11.10.0
?2023 by Team EFA (Eda For All).

Scanned : 1 Packagesn
Features: 193 Station, 1472 Composites, 220 Atomic and 203 Extended.
Used    : 2088 Features

· 等待10秒左右(如大于30秒说明运行异常),弹出LICENSE授权文件:

备注:行一SERVER与行二VENDOR为Flexlm授权服务器使用,教程中使用本地授权模式,所以不用修改其内容,也可将这一部分删除

· 将授权文件另存到本地,保存时有三点注意事项:

1、文件名修改为license.lic(名称可改为其它,但是要与之前变量中定义的License文件名相同)

2、保存类型修改为所有文件

3、编码修改为UTF-8

· 将license.lic文件上传到Ubuntu主机的/opt/mentor/modelsim2020.4/目录,通过vim进行编辑

# 进入License文件所在目录
cd /opt/mentor/modelsim2020.4/

# 通过vim编辑License文件
sudo vim license.lic

· 因为License文件生成于WIndows环境,所以在vim编辑器左下角显示其为dos编码格式

· 将License文件转换为unix编码格式

# 在vim编辑器输入以下命令,用于将License设置为unix编码格式,然后敲回车执行
:set ff=unix

# 验证是否修改为unix编码,如果回显fileformat=unix表示修改成功
:set ff?

# 保存修改
:set wq

关于网卡的备注:

某些旧版Modelsim只认名称为eth0网卡的MAC,实测教程中使用的2020.4版Modelsim可以识别名称为eth0、eno1、enp0s10f0的网卡名称,如果遇到某些网卡不被识别,有4种解决方法:

  1. 将网卡改为eth0等常规名称但是不建议这样操作,因为Ubuntu主机的其他软件License可能依赖某块网卡,改动后导致授权失效。或是正式环境中的服务器运行有各种任务不允许重启

  1. 根据主机上每块网卡的MAC生成独立License文件,挨个测试哪个License有效

  1. 将不同网卡MAC生成的独立License文件整合到一个License中,每个License文件大约有12000行数据,假如将4块网卡的License整合后会有约48000行的数据,导致vsim启动时滞后10秒左右

  1. 将每块网卡独立生成的License放到同一目录,通过设置LM_LICENSE_FILE变量加载所有授权文件,这会导致vsim启动时滞后5秒左右

# 通过变量指定license1.lic、license2.lic、license3.lic三个独立的授权文件
echo 'export LM_LICENSE_FILE=/opt/mentor/modelsim2020.4/license1.lic:/opt/mentor/modelsim2020.4/license2.lic:/opt/mentor/modelsim2020.4/license3.lic' | sudo tee -a /etc/bash.bashrc

六、验证软件是否正常运行

· 在Ubuntu桌面环境的Terminal里执行

vsim

· 下图所示,程序左下角的Transcript窗口无报错信息、或是软件未有弹窗报错信息,则视为运行正常

猜你喜欢

转载自blog.csdn.net/baishikele006/article/details/128763006