ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Windows 11 下 ISE 14.7 与 ModelSim 的联合仿真配置与避坑指南

Windows 11 下 ISE 14.7 与 ModelSim 的联合仿真配置与避坑指南 1. 为什么现在还有人在折腾 ISE 与 ModelSim 的这套组合1.1 哪些人必须用 ISE 14.7先别急着吐槽“都什么年代了还在用 ISE”。作为搞 FPGA 的人你迟早会遇到这类需求单位里还躺着几块 Spartan-6、Virtex-5 的老开发板导师给的毕业设计题目是基于 Xilinx 旧器件的或者手里有一套只能跑在 ISE 下的 IP 核。更常见的场景是很多高校的《EDA 技术》课程直到今天还是用 Xilinx Spartan-3E 或 Spartan-6 教学教材里的工程文件全部基于 ISE Design Suite 14.7 编写老师布置的作业模板也是 ISE 格式。ISE 14.7 是 Xilinx 老一代 FPGA 的最终版本之后新器件全部转向 Vivado 体系。Spartan-6、Virtex-6、以及更早的 Spartan-3、Virtex-5 这些器件在 Vivado 里根本没有对应的器件支持文件所以只能靠 ISE 14.7 完成设计、综合、布局布线、生成 bit 流和固化程序。这是硬需求不是情怀。不过很多人在使用 ISE 原生仿真器 ISim 时发现它虽然能用调试体验确实太原始了。波形缩放卡顿、信号分组不方便、复杂 Testbench 跑起来速度慢一旦设计规模上来ISim 的易用性和 ModelSim 差距明显。而且不少工程里的旧 Testbench 是为 ModelSim 写的直接迁移到 ISim 经常报兼容性错误。于是“ISE 做综合布线 ModelSim 做仿真验证”这套组合就成了很多老工程师的标准姿势。1.2 ISE 配 ModelSim 到底解决了什么问题简单说ISE 负责“把 RTL 变成 bit 文件”ModelSim 负责“验证 RTL 行为是否符合预期”。两者通过 ISE 内部的 EDA 工具链接机制协同工作行为级仿真在 ModelSim 里完成速度比 ISim 快调试手段更多。综合后的门级功能仿真、布局布线后的时序仿真也能把网表和仿真库交给 ModelSim 跑。Xilinx 官方提供了 UNISIM、SIMPRIM、XilinxCoreLib 等仿真库可以预编译到 ModelSim 里保证 IP 核和原语能正确仿真。换句话说你只需要维护一份 RTL 代码 一份 Testbench剩下的仿真切换、库映射、工程信息传递都由 ISE 和 ModelSim 之间的接口自动完成。把这套环境配置好后面所有工程的验证节奏都会顺很多。1.3 先说结论这套环境在 Windows 11 上能装成功网上不少帖子说 ISE 14.7 在 Windows 11 上装了也白装启动就报错。我实测下来的结论是能用但需要做三个前置动作——安装 .NET Framework 3.5、准备一个老版本 Java 运行时、把安装路径固定在 C 盘根目录且不能用带空格和括号的目录。后面我会把每一步讲透。装好之后ISE 的 Project Navigator、iMPACT、ChipScope 都能正常工作ModelSim 联合仿真也没问题。2. 动手安装前先把老工具的环境定死2.1 安装路径的硬性规范这个坑我踩得太深了。ISE 14.7 虽然已经是 2013 年的工具但它的安装器和许多核心模块依然是 32 位程序对路径的处理非常脆弱。如果你把 ISE 装到D:\Program Files (x86)\Xilinx\14.7这种路径后续很容易出现两类问题打开 Project Navigator 时工程创建向导偶尔报“Cannot open project”。iMPACT 下载程序时找不到电缆驱动或者 DLL 加载失败。不是说绝对不能装到其他盘但为了最大程度降低环境变量和脚本的出错概率建议统一采用这种目录结构C:\Xilinx\14.7\ISE_DS另外Windows 登录用户名一定要是纯英文不能是中文也不能带空格。因为 ISE 在运行过程中会往用户目录\AppData下写缓存和工程临时文件用户名含中文时部分老旧的批处理脚本会解析失败表现就是“综合到了一半突然报错重启又正常再跑又报错”。2.2 Windows 11 上的 .NET 3.5 与 Java 前置条件Windows 11 默认没有启用 .NET Framework 3.5而 ISE 14.7 的安装引导程序和部分图形化工具比如 ChipScope Analyzer依赖它。很多人双击 xsetup 后界面一闪而过或者安装进度条走到一半退出多半就是缺这个组件。在 Windows 11 上启用 .NET 3.5 的方法很简单打开“控制面板 - 程序和功能 - 启用或关闭 Windows 功能”勾选“.NET Framework 3.5包括 .NET 2.0 和 3.0”然后点确定。如果系统无法自动下载组件就手动准备一个 Windows 11 安装镜像用管理员权限运行dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess这里D:\sources\sxs是镜像解压后的路径。Java 环境也容易漏。ISE 14.7 自带的图形化配置工具会调用本机 Java系统里如果已经装了比较新的 JDK比如 Java 17可能会因为版本不兼容导致许可证管理工具打不开。稳妥做法是安装一个 JRE 1.8 的老版本并设置好JAVA_HOME环境变量指向它。不要担心 Java 8 太老它只服务于 ISE 的工具调用不影响系统里其他程序。2.3 安装包来源与完整性校验ISE 14.7 的完整安装包大约在 6GB 以上网上有很多分流压缩包。下载完成后不要急着解压先核对一下 SHA-256 校验值。Xilinx 官方文档里能查到对应文件的校验值如果对不上果断重新下载。原因在于ISE 安装程序是分卷打包的任何一个分卷损坏都会导致安装中途提示“Cabinet file corrupted”而你已经浪费了一个小时。解压时也建议直接解压到C:\Xilinx_installer这种纯英文短路径同样避开空格和括号。3. ISE 14.7 安装与许可证激活细节3.1 安装过程的勾选项进入安装界面后选择“ISE Design Suite 14.7”完整安装或者按需勾选。我的建议是保留默认全部组件特别是这几项不能少ISE WebPACK / ISE Foundation 主程序Cable Drivers用于 iMPACT 连接下载器Simulation Library Compilation Wizard后续编译 ModelSim 仿真库必需ChipScope Pro调试可选但建议一起装安装过程比较久等进度条跑完即可。安装完成后桌面上会出现“ISE Design Suite 14.7”的快捷方式先不要急着打开因为许可证还没配置。3.2 License 文件配置与验证如果你有官方 License 文件操作就很简单。如果没有可以先申请 Xilinx 的评估 License 或者用器件对应的 WebPACK 免费 License。我强烈建议不要在网上随便找那种不明来源的“万能 License”一方面不干净另一方面老工具的 License 机制对过期时间和 hostid 检查很严格使用不明文件反而导入失败。处理 License 的推荐步骤把.lic文件放到一个固定目录例如C:\Xilinx\license\Xilinx.lic。右键“此电脑 - 属性 - 高级系统设置 - 环境变量”新建系统变量XILINXD_LICENSE_FILEC:\Xilinx\license\Xilinx.lic打开“ISE Design Suite 14.7”下的“Xilinx License Configuration Manager”确认能识别到 License 和到期时间。命令行里运行lmutil lmdiag Xilinx能看到“Flexible License Manager”返回正常的诊断信息说明 License 服务状态没问题。如果你单位用的是浮动 License 服务器环境变量改成2100server_ip这种格式即可前提是网络能到达该服务器。3.3 安装后首次启动排错首次启动 Project Navigator 时有三个常见问题。一种情况是提示缺少libPortServer.dll或者ntdll.dll相关错误。这是因为 ISE 的 32 位组件在 Windows 11 上受到了一些兼容性约束解决办法是右键快捷方式“以管理员身份运行”并在“属性 - 兼容性”里把“以兼容模式运行这个程序”设为“Windows 7”。不要选 Windows XP实测 Windows 7 模式最稳定。另一种情况是启动后一片空白菜单栏能显示但新建工程按钮无效。这种多和 Java 版本有关检查JAVA_HOME是否指向了过高的 JDK 版本必要时卸载高版本 Java 再装 JRE 8。还有一种是点击“New Project”时直接退出。检查安装路径是否符合前面提到的规范我见过太多人把工程建在桌面“新建文件夹”里路径里带中文和空格导致工程文件生成失败。4. ModelSim 安装、环境变量与许可证配置4.1 版本选择SE、PE 与 ISE 自带之间的差异ModelSim 的版本比较多常见的有 Intel FPGA 版OEM、Mentor 的 ModelSim SE、以及各厂商定制的简化版。对 ISE 14.7 来说最佳搭配是 ModelSim SE 10.5 或 10.6 系列。这个版本既支持 64 位运行又能兼容 Xilinx 的仿真库编译脚本。需要注意ISE 14.7 安装目录下其实附带了一个“ModelSim XE”的入口但它只是一个简化配置并不是完整的 ModelSim 安装包。你仍然需要自己下载安装 ModelSim 主程序两者并不冲突。ModelSim 是 32 位还是 64 位不是关键但建议安装 64 位版本并在 PATH 里指向win64目录。64 位版本在跑大规模网表仿真时内存上限更高不容易出现“Out of memory”中断。4.2 环境变量、许可证和 PATHModelSim 安装完成后需要设置两个核心环境变量MODEL_TECHC:\modeltech64_10.5\win64 MGLS_LICENSE_FILEC:\modeltech64_10.5\license.dat其中MODEL_TECH是 ModelSim 的二进制目录MGLS_LICENSE_FILE是许可证文件路径。如果你的许可证来自 Mentor 浮动服务器同样写成2100server_ip格式。为了能在命令行里直接敲vsim建议把win64目录追加到系统PATHC:\modeltech64_10.5\win64顺便提一句如果你机器上同时装了其他 Mentor 工具可能会用到LM_LICENSE_FILE变量。但我建议 ModelSim 单独使用MGLS_LICENSE_FILE不要混在LM_LICENSE_FILE里因为不同工具的 license 特征码冲突时ModelSim 会启动失败或者显示“bad feature”。4.3 快速验证 ModelSim 能独立运行在配置 ISE 链接之前先在命令行验证一遍 ModelSim 本身是好的。打开命令提示符输入vsim -version如果输出版本信息说明主程序和 PATH 没问题。再输入vsim -c能进入交互命令行并显示ModelSim提示符说明 License 检查也通过了。如果此时报Unable to checkout a license不要浪费时间排查别的东西直接看MGLS_LICENSE_FILE指向的路径和内容。这一步验证非常重要。很多人把 ISE 和 ModelSim 安装都完成了但联合仿真时 ISE 弹出“ModelSim application not found”或者“License check failed”实际上问题根本不在 ISE 这边而是 ModelSim 自身就没跑起来。先把 ModelSim 独立跑通再联调排查范围能缩小一半。4.4 关于 64 位与 32 位的兼容细节ModelSim 的 64 位版默认编译的仿真库也是 64 位格式而 ISE 编译出来的 Xilinx 仿真库默认是 32 位格式。这两者混用会报Bad library format。解决办法有两个统一使用 32 位 ModelSim所有库都以 32 位格式编译。使用 64 位 ModelSim并在编译 Xilinx 库时指定-64参数。从实际使用效果看我推荐第二种方案。现在大多数人的电脑内存都在 16GB 以上64 位 ModelSim 跑大规模仿真更从容。后面编译仿真库的环节我会给出带-64参数的具体做法。5. 让 ModelSim 成为 ISE 的仿真后端5.1 修改工程模拟器设置ISE 工程默认的 Simulator 是 ISimISE Simulator要切换到 ModelSim需要依次操作打开工程后菜单栏选择Project - Design Properties。在弹出窗口左侧选择Simulation右侧Simulator下拉框里选择ModelSim-SE Mixed或者ModelSim-SE Verilog根据你 Testbench 的语言来定。Simulator Language保持默认 Mixed 即可方便同时仿真 Verilog 和 VHDL。点击 OK 保存。如果下拉框里没有 ModelSim 选项说明 ISE 没有正确识别 ModelSim 安装位置。这种情况可以手动在环境变量里补充MODEL_TECH然后重启 ISE。大多数识别问题都能通过这个变量解决。5.2 仿真库编译向导操作这是整个联合配置里最关键、也最容易出错的一步。ISE 生成的 IP 核网表、原语、以及布线后网表都依赖 Xilinx 仿真库。这些库必须预先编译成 ModelSim 能识别的格式。打开“ISE Design Suite 14.7”程序组里的“Simulation Library Compilation Wizard”按以下步骤操作在“Product to install”里选择ModelSim SE或ModelSim PE。编译器位置选择 ModelSim 安装目录里的win64文件夹。“Simulator Executable” 选择vsim.exe。语言类型勾选Verilog和VHDL如果你的设计只用 Verilog至少也要选 Verilog。架构类型全选即可。选择“Compile all device families”或者只勾选你需要的器件系列比如 Spartan-6 和 Virtex-5。输出目录建议设置为C:\Xilinx\sim_libs或者C:\modeltech64_10.5\xilinx_libs。在“Vlog Compiler Options”里加上-64确保按 64 位格式编译。点击 Compile 后编译过程会持续 10 到 30 分钟取决于你选的器件系列数量。这段时间不要干别的耐心等。编译完成后向导会在目标目录生成一个modelsim.ini文件里面记录了各个库的映射路径。注意这个modelsim.ini并不是 ModelSim 默认使用的那个你需要确认:如果 ModelSim 是从命令行vsim启动它会优先读取当前工作目录下的modelsim.ini。如果从 ISE 中直接调用 ModelSimISE 会通过参数把库映射传过去但为了保险最好把modelsim.ini复制到 ModelSim 安装目录下或者把modelsim.ini中Library相关的映射段落合并到 ModelSim 安装目录的原文件里。更省事的方法是在 ModelSim 主界面执行vmap work work vmap unisim C:/Xilinx/sim_libs/unisim vmap simprim C:/Xilinx/sim_libs/simprim vmap XilinxCoreLib C:/Xilinx/sim_libs/XilinxCoreLib vmap secureip C:/Xilinx/sim_libs/secureip通过vmap命令手动建立映射会让库关系最清晰。每次新开工程时只要在 ModelSim 里执行一次这些命令就行。ISE 自动启动 ModelSim 时也会自动带上类似的映射参数所以你手动映射只是为了备用。5.3 第一次联合启动试验库编译好之后找一个小工程做联调。在 ISE 里随便建一个最简单的 Verilog 模块再写一个空 Testbench然后选中“Design”面板里的“Simulate Behavioral Model”流程右键选择“Run”。ISE 会自动调用 ModelSim编译完设计后弹出 ModelSim 窗口并开始仿真。如果这一步能正常跑完说明 ISE 到 ModelSim 的链路已经通了。如果弹出找不到vsim、找不到库、或者许可证报错就回到前面的步骤逐项检查。这里要特别提醒一个容易忽略的点ISE 的 Process 属性里有一项“Simulation Library Compilation”设置建议把“Library Compilation”设为“Always Compile”。否则有时候你修改了 IP 核参数ModelSim 里加载的还是旧库仿真结果和当前设计对不上。5.4 命令行直接仿真和 ISE 调用的区别联合配置完成之后你会有两种仿真工作方式方式一在 ISE 的 Process 面板里点仿真由 ISE 自动生成脚本并调用 ModelSim。适合在工程里快速做一遍行为验证。方式二打开 ModelSim在命令行里手动vlib、vlog、vsim。适合需要反复调试 Testbench 的场景灵活度更高。我个人更推荐日常调试用方式二因为每次修改 RTL 后不需要回到 ISE 重新点直接在 ModelSim 里重新编译编译更快。ISE 只负责综合、布局布线和最终生成流文件。这也是“ISE 做编译、ModelSim 做仿真”这套分工最舒服的地方。6. 端到端仿真实战LED 移位寄存器从代码到波形6.1 设计代码与 Testbench 的准备我拿一个非常经典的 LED 流水灯模块来演示因为它足够简单但又覆盖了时钟、复位、寄存器、组合逻辑等核心要素出现红线时也容易定位原因。先写 DUT被测模块module led_shift( input clk, input rst_n, output reg [3:0] led ); reg [4:0] cnt; always (posedge clk or negedge rst_n) begin if (!rst_n) begin cnt 5d0; led 4b0001; end else if (cnt 5d31) begin cnt 5d0; led {led[2:0], led[3]}; end else begin cnt cnt 1b1; end end endmodule这个模块在 50MHz 时钟下每 32 个周期让 LED 数据向左循环移位实现流水灯效果。计数器故意做小是为了仿真时能快速看到变化。再写 Testbenchtimescale 1ns / 1ps module tb_led_shift; reg clk; reg rst_n; wire [3:0] led; led_shift uut ( .clk (clk), .rst_n (rst_n), .led (led) ); initial begin clk 1b0; rst_n 1b0; #100; rst_n 1b1; #2000; $finish; end always #10 clk ~clk; endmodule这里的关键点在于rst_n一开始被拉低持续 100ns 后再释放确保寄存器完成复位。clk每 10ns 翻转一次所以时钟周期是 20ns对应的频率是 50MHz符合常见开发板时钟。6.2 在 ISE 中启动 ModelSim 仿真把这两个文件加入 ISE 工程后确认工程 Simulation 属性已经改成 ModelSim。然后执行“Simulate Behavioral Model”。ModelSim 启动后会自动编译代码并加载仿真。如果一切正常你会在 Wave 窗口看到四组信号clk、rst_n、cnt、led。其中led从 0001 开始每隔 320ns 变成 0010、0100、1000、0001循环往复。cnt从 0 计数到 31然后归零。这时候可以试着在 ModelSim 里添加信号和游标、对比波形看看和预期是否一致。如果仿真结果正确那么恭喜你ISE 和 ModelSim 的联合仿真已经正式跑通了。6.3 波形红线问题是怎么回事很多人一上来就在 ModelSim 里看到满屏红线第一反应是“是不是我的代码写错了”。其实红色通常表示信号状态是X未知或者Z高阻并不一定是逻辑功能错而是仿真环境里某些输入没有被正确驱动。常见原因有四个复位没有被正确拉起来。比如 Testbench 里rst_n始终为高电平寄存器内部初始值在仿真开始时是 X于是所有 reg 信号都变成 X。解决办法就是像上面的例子一样先给一个复位低电平脉冲再释放。时钟没有生成。Testbench 里漏写always #10 clk ~clk;模块内部没有时钟沿触发reg 永远不会被赋值。模块的输入端口没有连接。比如顶层模块写成led_shift uut(.clk(clk), .rst_n(rst_n), .led(led));但rst_n没有在 Testbench 里定义或赋值端口悬空输入就是 X。Xilinx 原语仿真需要额外的全局复位信号。如果你在设计里用了 BUFG、DCM 等原语或者做的是布局布线后的时序仿真只跑速度快的 ModelSim 行为级仿真可能有些库模型不完整。碰到红线时先别急着怀疑代码按下面的顺序排查先看clk波形是不是方波。再看rst_n有没有一个从低到高的跳变。然后看顶层模块端口有没有X状态。最后检查 ModelSim 的 Transcript 窗口有没有编译警告比如“port connection”相关提示。大多数情况下把复位信号在 Testbench 里处理好红线问题就解决了。如果用了时序仿真还需要额外的glbl.v全局复位文件这个是另一个话题这里先不展开。7. 疑难杂症集中专栏安装、下载、固化一条龙避坑7.1 DLL 加载失败与 32 位兼容问题安装完 ISE 后在 Windows 11 上最常见的报错是双击“ISE Design Suite 14.7”快捷方式提示The application was unable to start correctly (0xc000007b)。这个错误代码的本质是 32 位和 64 位系统文件混淆通常不是单一 DLL 的问题而是系统缺少适合 32 位进程运行的运行库。处理方法按顺序尝试以管理员身份运行快捷方式。设置兼容模式为 Windows 7。安装系统缺失的 VC 运行库合集重点覆盖 2005、2008、2010、2013、2015-2022 这些版本。ISE 14.7 的安装目录里通常自带一部分但 Windows 11 新系统往往还需要补充。如果仍然报 0xc000007b检查系统 PATH 里是否混入了其他 64 位工具的某些同名 DLL。比较典型的冲突是安装了奇葩的数字电路软件后把libwinpthread-1.dll等文件写到了系统目录。这种情况只能手动清理 PATH或者重装 Visual C 运行库。另外一个容易出现的问题是自带的libPortServer.dll无法加载。这个文件在C:\Xilinx\14.7\ISE_DS\ISE\lib\nt64目录下。如果提示缺少它说明系统的 Microsoft Visual C 2008 运行库没有正确注册。去控制面板里找到对应的运行库选择修复或者直接下载一个 VC 2008 x86 版本安装。7.2 bit 文件下载与 iMPACT 的 Windows 11 处理ISE 综合布局布线之后会生成.bit文件。下载到开发板需要用到 iMPACT。很多人在这一步卡住因为 iMPACT 在 Windows 11 上经常识别不到下载器。正常下载流程是连接下载器比如 Xilinx Platform Cable USB II安装驱动时选“Jungo”驱动。打开 iMPACT点Boundary-Scan自动识别 JTAG 链上的 FPGA。右键 FPGA 器件选择Assign New Configuration File找到.bit文件。勾选Program点击 OK 开始下载。如果 iMPACT 提示No cable detected或者Cannot open cable driver第一个检查项是驱动是否成功安装。可以在设备管理器里查看是否出现“Jungo”相关的设备。如果设备带黄色感叹号右键更新驱动手动指向 ISE 安装目录下的C:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\drivers重新安装。Win11 下还有一招打开 iMPACT 时用管理员权限运行。因为 iMPACT 访问底层端口驱动时对权限要求很严格普通权限下驱动打开会悄悄失败。实在不行可以在命令行用批处理模式下载避免图形界面里某些控件在 Windows 11 上渲染异常impact -batch download.cmddownload.cmd里写的是 JTAG 操作命令网上有很多现成模板核心内容就是识别设备、加载 bit、执行 program。7.3 从 bit 到 mcs固化程序的完整链路bit 文件只对 SRAM 配置有效掉电即失。要把程序固化到 SPI Flash 里需要在 ISE 里把 bit 文件转换成 mcs 文件再用 iMPACT 写入。转换方法有两个方式一在 Project Navigator 里选中“Generate PROM File”流程按向导选择 Flash 型号、数据宽度和格式为 MCS把 bit 文件加进去点击生成。方式二用命令行工具promgen手动生成适合需要自动化的场景。生成 mcs 后用 iMPACT 写 Flash 的步骤是初始化 Boundary-Scan。右键 FPGA选择Assign New Configuration File此时不选 bit而是选择对应 Flash 的配置操作。在 iMPACT 左侧的 Flash 器件上右键选择Program。等进度条走完重新上电验证程序是否自动加载。补充一句如果是 Spartan-6 等带 SPI Flash 的板子iMPACT 写入时需要选择正确的 Flash 型号型号选错会导致写入成功但 FPGA 启动时读不到配置。一般开发板原理图上会标注 Flash 型号照着选就行。7.4 高频错误对照表现象根因解决方法安装向导闪退缺 .NET 3.5控制面板启用 .NET Framework 3.5启动提示 0xc000007bVC 运行库缺失或混乱安装/修复 VC 运行库设置 Win7 兼容模式License 管理器打不开Java 版本过高安装 JRE 8设置 JAVA_HOMEISE 找不到 ModelSim未设置 MODEL_TECH补环境变量后重启 ISEModelSim 报许可证失败MGLS_LICENSE_FILE 配置错误修复环境变量指向许可证文件ModelSim 编译库报 Bad library format32/64 位库混用统一用 -64 参数编译仿真波形全红复位未拉起或时钟未生成在手写 Testbench 中补复位和时钟iMPACT 不识别下载器驱动未装好安装 Jungo 驱动管理员权限运行bit 文件下载后掉电丢失只加载到 SRAM生成 mcs 并写入 SPI Flash这张表基本覆盖了从安装到固化的完整链路绝大多数人在这个主题下遇到的问题都能在表里找到对应解决方案。8. 关于这套环境我最后想补充的几点心得环境配置这种事最忌讳的就是到处找“一键包”或者“绿色破解版”因为 ISE 和 ModelSim 的版本耦合非常紧任何一步不匹配后面的仿真结果都不可信。我个人的建议是先把 ISE 14.7 完整安装并且能正常综合再把 ModelSim 独立跑通最后才做联合配置。三步之间不要跳步。很多人的 ModelSim 仿真出问题追根溯源是第一步就没做好——ISE 里设置 Simulator 时明明选的是 ModelSim但工程目录下还残留了 ISim 的缓存文件两者干扰导致仿真结果很奇怪。另外仿真库编译虽然一次性投入二三十分钟但千万别偷懒跳过。否则你在仿真里调用一个简单的IBUFG都会报Unknown module。只要把库编译一次后续所有工程都能复用这笔时间非常值。最后再分享一个小技巧库编译完成后在 ModelSim 的命令行里执行一次vmap把映射关系导出到文本保存成一个脚本。以后换电脑或者重装系统只需要在 ModelSim 里do map.do一下所有库映射就恢复好了比重新编译省事太多。ISE 和 ModelSim 这套组合虽然老但在特定器件开发场景下依然是不可替代的。按照本文的顺序一步步来半天时间足够跑通全流程。真遇到实在解决不了的问题把报错信息复制下来搜英文大多数都能找到答案——工具虽老遇到同样问题的人却一点也不少。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进