FPGA 学习笔记(一):Linux 下安路开发环境从安装到ModelSim仿真优化
前言
在 Linux 系统下进行 FPGA 开发,环境搭建往往是第一道坎。安路(Anlogic)的 Tang Dynasty (TD) 软件与 ModelSim 的配合虽然强大,但在 Linux 下的安装配置以及默认的仿真流转效率仍有优化空间。本文记录了这两个软件在 Linux 下的安装基本流程,并重点介绍如何通过优化 .do 脚本解决仿真启动缓慢的问题。
1. Linux 环境下的软件安装
1.1 Tang Dynasty (TD) 安装
安路 TD 软件通常提供 Linux 版本的压缩包(如 .tar.gz)。以 TD_Release_2026.1_NL_Linux.tar.gz 为例:
解压与解包:
1
2sudo mkdir -p /opt/Anlogic
sudo tar -xzvf TD_Release_2026.1_NL_Linux.tar.gz -C /opt/AnlogicLicense 配置:
将官网下载的Anlogic.lic放置在软件安装目录下的license文件夹中:1
/opt/Anlogic/TD_Release_2026.1_NL/license/Anlogic.lic软件启动:
TD 提供了二进制程序td和封装脚本td.sh。推荐方式(使用 wrapper 脚本):
td.sh会自动处理LD_LIBRARY_PATH等环境变量,是最简单且稳定的启动方式:1
2/opt/Anlogic/TD_Release_2026.1_NL/bin/td.sh -gui # 启动图形界面
/opt/Anlogic/TD_Release_2026.1_NL/bin/td.sh # 命令行模式手动配置启动(仅限高级调试):
若需直接调用二进制文件td,需在当前终端手动设置环境(以 Bash 为例):1
2
3
4
5export TD_HOME=/opt/Anlogic/TD_Release_2026.1_NL
export LD_LIBRARY_PATH=$TD_HOME/lib:$TD_HOME/lib/Qt/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$TD_HOME/lib/Qt/plugins
$TD_HOME/bin/td -gui便捷访问:
建议建立一个软链接到/usr/local/bin,这样可以直接在终端输入td启动:1
sudo ln -s /opt/Anlogic/TD_Release_2026.1_NL/bin/td.sh /usr/local/bin/td
1.2 ModelSim 安装
ModelSim (或 Questa) 的安装在 Linux 下相对复杂
- 资源获取:网盘下载 (提取码: 2301)
1. 运行安装程序
建议在 64 位系统(如 Ubuntu 20.04+)上进行如下操作:
准备安装包:确保安装程序具有执行权限。
1
2chmod +x modelsim-se-2020.4.aol
sudo ./modelsim-se-2020.4.aol图形界面安装:在弹出的窗口中选择安装路径(建议
/opt/mentor/modelsim)。组件选择:
ModelSim SE 64-bitModelSim SE DocumentationGCC-64-bit
由于环境是64位,所以组件选择64位的组件
2. 配置环境变量
在 ~/.bashrc 或 ~/.zshrc 末尾添加以下内容。
将以下内容添加到配置文件末尾(请根据你的实际安装路径修改):
1 | |
保存后,在终端执行以下命令使配置生效:
1 | |
虽然现在还没有 license.lic 文件,会在后面破解时候生成
3. 破解 License 验证程序
详细参考:CSDN - Ubuntu 安装 ModelSim SE 教程
2. 项目目录规范
在我的学习过程中,我采用了如下结构,确保代码、仿真和日志互不干扰:
1 | |
3. 核心优化:预编译库链接
安路 EG4 系列的库文件如果每次都重编,会浪费大量时间。我们可以为 ModelSim 手动建立一个预编译库。
3.1 预编译 eg4_lib 库
1. 文件准备
- 在 ModelSim 的安装目录下(或任意你喜欢的地方),建立文件夹
anlogic/src。 - 将 TD 安装路径下
sim_release目录内的所有文件复制到上述src文件夹中。
2. 执行编译
在 anlogic 目录下打开终端,依次执行以下命令:
1 | |
3. 写入全局配置文件 (可选但推荐)
为了让 ModelSim 每次启动都能自动识别 eg4 库,建议修改 ModelSim 安装目录下的 modelsim.ini:
- 找到
modelsim.ini(通常在$MTI_HOME/modelsim.ini),取消其只读属性。 - 在
[Library]部分添加:这样以后在任何项目的1
eg4 = /opt/mentor/modelsim2020.4/modeltech/anlogic/eg4.do脚本中,直接调用-L eg4即可,无需再手动vmap。
3.2 优化后的 .do 脚本示例
现在,你的项目仿真脚本可以精简为如下结构(建议命名为 sim.do):
1 | |
运行方式
在仿真目录下打开终端,直接执行以下命令即可实现“一键仿真”:
1 | |
4. 总结
- 自动化思维:通过修改
.do脚本实现“一键启动”,极大减少了手动点击 UI 的重复劳动。 - 资源解耦:将厂商库与项目代码分离,利用预编译库(.ini 映射)将原本几分钟的编译过程缩短至秒级。
- 环境规范:清晰的目录结构(rtl, sim, log)是长期维护大型项目的基础。