
1. 为什么 2025 年还在折腾 Quartus Prime Lite 23.1 这套组合先把结论摆在前面如果你手头是 Cyclone IV、Cyclone 10、MAX 10 这类中低端器件Quartus Prime Lite 23.1 加上 ModelSim 这套组合依然是目前最省心的本地开发环境之一。Lite 版本免费、不需要授权文件、对个人开发者和小团队极其友好而 ModelSim 负责仿真验证两者配合起来就是一套完整的 FPGA 开发闭环。但问题也很现实——这套环境的安装过程是很多人入门 FPGA 的第一道坎。我见过太多人卡在几个地方Quartus 装完了发现器件库没勾选新建工程找不到对应芯片ModelSim 装好了但 Quartus 里调不起来报一堆路径错误仿真跑起来波形全是红线盯着屏幕不知道从哪查。这些坑我在过去几年里几乎踩了个遍所以这篇就把 Quartus Prime Lite 23.1 和 ModelSim 的下载、安装、联调、仿真验证整条链路完整走一遍把每一步背后的原因也讲清楚。这篇文章适合三类人刚接触 FPGA 想搭环境的新手、换了新电脑需要重装环境的老手、以及一直用老版本想升级到 23.1 的开发者。我会尽量把每个操作的理由说透而不是只给一串“下一步”。因为只有理解了为什么这么做遇到报错时你才知道往哪个方向排查。需要提前说明的是Quartus Prime Lite 23.1 对操作系统有要求官方支持 Windows 10/11 的 64 位版本Linux 下也有对应安装包。本文以 Windows 环境为主线Linux 下的差异我会在关键步骤里单独标注。另外 ModelSim 这里我用的是与 Quartus 配套的 ModelSim Intel FPGA Edition这是最省事的方案不需要额外处理版本兼容问题。2. 安装前的环境盘点与版本选择逻辑2.1 先搞清楚 Lite / Standard / Pro 三个版本的区别很多人下载时看到 Quartus 有三个版本就懵了随便点一个下下来结果发现要么器件不支持要么功能缺失。这里必须先把版本逻辑理清楚否则后面全是无用功。版本定位支持器件授权适用场景Lite免费入门Cyclone 系列、MAX 系列免费无需授权学习、中小项目、个人开发Standard中端Arria、Cyclone 高端型号需授权中端产品开发Pro高端Stratix、Agilex需授权大规模高端设计Lite 版本是免费的而且不需要申请任何授权文件装完就能用。它支持的器件覆盖了绝大多数教学和入门项目会用到的芯片比如 Cyclone IV E、Cyclone 10 LP、MAX 10 这些。如果你用的是 DE2-115、小梅哥的板子、或者市面上常见的入门开发板Lite 基本都能覆盖。Standard 和 Pro 需要授权而且对器件有更严格的要求。如果你不确定自己该用哪个先查一下你板子上的芯片型号然后去对照官方文档里的器件支持列表。这一步花五分钟能省掉后面重装的几个小时。2.2 磁盘空间和系统要求的真实情况官方给的磁盘空间要求是“至少 20GB”但这是安装包解压后的最小占用。实际装完 Quartus Prime Lite 23.1 加上器件库轻松超过 40GB。如果你还要装 ModelSim再加 5-8GB。所以我建议直接预留 80GB 以上的空间而且一定要装在 SSD 上。为什么强调 SSD因为 Quartus 在编译综合的时候会频繁读写大量临时文件机械硬盘下编译一个中等规模的工程可能要十几分钟SSD 上能压缩到几分钟。这个差距在反复调试阶段会被无限放大。内存方面官方建议 8GB 起步但实际用起来 16GB 是舒适线。特别是你同时开着 Quartus、ModelSim、编辑器的时候8GB 会非常紧张。我自己的开发机是 32GB跑大型工程时 Quartus 能吃到 10GB 以上。还有一个容易被忽略的点安装路径不要有中文和空格。Quartus 和 ModelSim 对路径中的非 ASCII 字符处理得并不好很多时候报错就是因为路径里有个中文文件夹名。统一用英文路径比如D:\intelFPGA_lite\23.1这种。2.3 下载渠道与文件校验Quartus Prime Lite 23.1 的安装包从官方渠道获取通常是一个几 GB 的压缩包里面包含主程序和器件库。下载完成后第一件事是校验文件完整性官方会提供 MD5 或 SHA256 校验值。这一步别跳过我遇到过下载中断导致安装包损坏装到一半报错排查半天才发现是文件本身的问题。校验方法很简单Windows 下用 PowerShell 执行Get-FileHash -Algorithm SHA256 你的安装包路径把输出的哈希值和官方给的对比一致就说明文件没问题。不一致就重新下载别抱侥幸心理。ModelSim 这边如果你用的是 Quartus 配套的 Intel FPGA Edition它通常会随 Quartus 安装包一起提供或者在下载页面单独列出。这个版本是专门为 Intel FPGA 工具链适配的联调时不需要额外配置强烈建议用这个而不是独立版 ModelSim。3. Quartus Prime Lite 23.1 安装全流程拆解3.1 安装程序的启动与组件勾选解压安装包后运行setup.exe。第一步是选择安装目录这里再次强调纯英文路径不要有空格。我一般用D:\intelFPGA_lite\23.1清晰好记。接下来是关键的一步——组件选择。安装程序会列出几个大类Quartus Prime、器件库、ModelSim、以及其他辅助工具。很多人在这里只勾了 Quartus 主程序结果装完发现新建工程时找不到芯片又得重新跑一遍安装。正确的勾选逻辑是这样的Quartus Prime必选这是主程序。器件库根据你实际使用的芯片勾选。如果你不确定把 Cyclone 系列全勾上占用空间大一点但省心。如果你明确知道自己用 Cyclone IV E那就只勾这一个能省不少空间。ModelSim Intel FPGA Edition如果你打算做仿真这里就勾上让它和 Quartus 一起装省得后面单独配置。其他工具DSP Builder、Nios II 这些按需勾选入门阶段可以先不装。提示器件库可以后续通过 Quartus 的“器件安装器”单独添加但那个流程比较绕不如第一次装的时候一次到位。3.2 安装过程中的等待与中断处理勾选完组件后就是漫长的安装过程视磁盘速度不同通常需要 30 分钟到 1 小时。这期间安装程序会解压大量文件CPU 和磁盘占用都会很高建议不要同时跑其他重负载任务。如果安装中途卡住不动先别急着强制关闭。Quartus 安装程序在某些阶段比如注册组件、生成缓存会看起来像卡死实际上还在工作。你可以打开任务管理器看看磁盘和 CPU 有没有活动如果有就再等等。如果完全没动静超过十分钟那可能是真的卡了这时候再考虑中断重来。中断后重装前记得把安装目录清空有时候残留文件会导致重装失败。3.3 安装完成后的首次启动配置安装完成后第一次启动 Quartus它会让你做一些初始配置。这里有两个地方需要注意第一是许可证设置。Lite 版本不需要许可证文件但如果安装程序提示你选择许可证直接跳过或者选“免费版”即可。如果你之前装过 Standard 版本可能会有残留的许可证配置需要清理掉。第二是默认工作目录。建议设置一个专门的工程目录比如D:\FPGA_Projects所有工程都放这里方便管理。启动后通过Tools - Install Devices可以查看当前已安装的器件库。如果发现少了你要用的芯片可以在这里补充安装。4. ModelSim 的安装与环境变量配置4.1 为什么联调失败大多出在环境变量ModelSim 单独装其实不难难的是让 Quartus 能找到它。Quartus 调用 ModelSim 的方式是通过系统环境变量或者工具链配置来定位可执行文件路径。如果这个路径不对你在 Quartus 里点“RTL Simulation”就会报错提示找不到 ModelSim 或者版本不匹配。所以安装 ModelSim 的核心不是安装本身而是安装后的路径配置。这一步做对了后面联调基本不会出问题。4.2 安装路径的选择与版本确认如果你在装 Quartus 时已经勾选了 ModelSim Intel FPGA Edition那它已经装好了路径通常在 Quartus 安装目录下的modelsim_ase文件夹里。比如D:\intelFPGA_lite\23.1\modelsim_ase\win32aloem。如果你选择单独安装 ModelSim安装路径同样要遵循英文无空格原则。装完后确认一下版本Intel FPGA Edition 的版本号通常和 Quartus 配套比如 Quartus 23.1 配套的 ModelSim 版本是 2023 左右的版本。确认版本的方法进入 ModelSim 安装目录的win32aloem文件夹运行vsim.exe在命令行里输入vsim -version就能看到版本信息。4.3 环境变量配置的两种方式配置 ModelSim 路径有两种方式我推荐第一种因为它更稳定。方式一通过 Quartus 的工具链设置打开 Quartus进入Tools - Options - EDA Tool Options。在 ModelSim 一栏里填入 ModelSim 可执行文件所在的完整路径。比如D:\intelFPGA_lite\23.1\modelsim_ase\win32aloem注意这里填的是文件夹路径不是可执行文件路径。填完后点 OK 保存。方式二配置系统环境变量在系统环境变量里添加以下两项PATH: 追加 ModelSim 的 win32aloem 目录 LM_LICENSE_FILE: 指向 ModelSim 的 license 文件Intel FPGA Edition 通常不需要方式二的好处是命令行下也能直接调用 vsim、vlog 这些命令方便写脚本。但如果你只在 Quartus 里用方式一就够了。注意两种方式不要同时配有时候会冲突。选一种就行。4.4 验证 ModelSim 是否可被 Quartus 调用配置完成后做一个快速验证在 Quartus 里新建一个最简单的 Verilog 工程然后点Tools - Run Simulation Tool - RTL Simulation。如果 ModelSim 能正常启动并加载工程说明联调配置成功。如果报错先检查路径是否填对再检查 ModelSim 版本是否和 Quartus 兼容。版本不匹配是联调失败的常见原因特别是你用了独立版 ModelSim 而不是 Intel FPGA Edition 的时候。5. 联调仿真的完整链路与波形排错5.1 从 Quartus 工程到 ModelSim 仿真的数据流理解这条链路对排查问题非常重要。整个流程是这样的Quartus 工程里包含 Verilog/VHDL 源文件和 testbench。你点击 RTL Simulation 后Quartus 会调用 ModelSim把源文件路径和仿真参数传过去。ModelSim 编译源文件生成仿真库。运行仿真生成波形文件。波形在 ModelSim 的 Wave 窗口显示。任何一个环节出问题都会导致仿真失败或者波形异常。所以排查的时候要按这个顺序逐段检查。5.2 波形全是红线的几种典型原因波形红线是新手最常遇到的问题它的本质是信号处于“未知”状态X态。导致 X 态的原因有好几类我按出现频率排一下第一类信号未初始化寄存器没有复位或者复位信号没接对导致上电后寄存器处于未知状态。解决办法是确保 testbench 里有正确的复位逻辑或者在声明寄存器时给初值。第二类多驱动冲突同一个信号在多个 always 块里被赋值导致冲突。这种情况综合工具可能会警告但仿真时直接表现为红线。检查你的代码确保每个信号只有一个驱动源。第三类位宽不匹配比如你把一个 8 位信号连到了一个 4 位端口上高位会变成未知。这种问题在综合时可能只是警告但仿真时就是红线。仔细核对每个连接的位宽。第四类仿真库未编译如果你用了厂商提供的 IP 核或者仿真模型但没有把对应的仿真库编译进去相关信号就会是红线。解决办法是在 ModelSim 里先编译对应的库或者在 Quartus 里配置好仿真库路径。5.3 用 ModelSim 命令行定位问题图形界面排查有时候不够直观我习惯用命令行快速定位。在 ModelSim 的 Transcript 窗口里可以用以下命令# 查看某个信号的所有驱动源 examine /tb_top/dut/signal_name # 查看信号的当前值 examine -radix hex /tb_top/dut/data_bus # 重启仿真 restart -f # 运行指定时间 run 1000ns如果某个信号一直是 X用examine看它的驱动源顺着驱动链往上查通常能很快定位到问题源头。5.4 一个 UART 接收仿真的实际案例拿最常见的 UART 接收模块举例。假设你写了一个 uart_rx 模块testbench 里模拟串口数据发送。仿真跑起来后发现 rx_data 全是红线。排查步骤先看 rx 输入信号有没有正常翻转。如果 rx 本身就是红线说明 testbench 里的激励生成有问题。如果 rx 正常看 uart_rx 模块内部的采样逻辑。检查波特率计数器有没有正常计数。检查状态机是否正常跳转。如果状态机停在初始状态说明启动条件没满足。检查数据移位寄存器的复位逻辑。如果复位没生效移位寄存器就是 X 态。这个案例里最常见的问题是波特率计数器的位宽不够导致计数溢出后状态错乱。把计数器位宽加大问题就解决了。6. 装完之后必须做的几项验证6.1 编译一个最小工程验证工具链装完环境后别急着上大工程。先建一个最简单的工程一个计数器一个 LED 输出。编译一遍确保综合、布局布线、时序分析都能跑通。这一步能验证 Quartus 的核心功能是否正常。编译完成后看看 Compilation Report 里有没有严重警告。如果有关于时序的警告先不用管最小工程通常不会有严格的时序要求。但如果有时钟找不到、引脚未分配这类错误就要先解决。6.2 跑一次完整的 RTL 仿真用同一个计数器工程写一个简单的 testbench跑一次 RTL 仿真。确认 ModelSim 能正常启动、编译、出波形。波形里时钟正常翻转计数器正常计数就说明联调链路是通的。这一步的意义在于它把 Quartus 和 ModelSim 的配合完整验证了一遍。如果这里没问题后面做复杂项目时仿真环节基本不会出环境问题。6.3 检查器件库和 IP 核是否可用最后确认一下你要用的器件库和 IP 核是否都装好了。在 Quartus 里打开 IP Catalog看看常用的 IP 核比如 PLL、RAM、FIFO能不能正常配置和生成。如果 IP Catalog 是空的说明器件库没装全需要补充安装。这一步很多人会忽略等到项目里要用 IP 核时才发现没有又得回头折腾。提前检查一遍省事。7. 几个我踩过的坑和对应的处理经验第一个坑是安装路径里的空格。有一次我图省事装在Program Files下面结果 ModelSim 调用时路径解析出错报了一堆莫名其妙的错误。后来换成D:\intelFPGA_lite\23.1就正常了。所以路径这件事真的别偷懒。第二个坑是器件库勾选不全。我第一次装的时候只勾了 Quartus 主程序以为器件库会自动装。结果新建工程时发现芯片列表是空的又花了一个小时重新跑安装程序。所以安装时一定要把器件库勾上不确定就多勾几个。第三个坑是 ModelSim 版本不匹配。我试过用独立版 ModelSim 去配 Quartus结果联调时各种报错。后来换成 Intel FPGA Edition一次就通了。所以如果你不是有特殊需求直接用配套版本别给自己找麻烦。第四个坑是环境变量冲突。我同时配了系统 PATH 和 Quartus 的 EDA Tool Options结果 Quartus 有时候能找到 ModelSim有时候找不到。后来只保留 EDA Tool Options 里的配置问题就消失了。所以配置方式选一种就好别贪多。第五个坑是仿真库没编译。用 IP 核的时候如果没把对应的仿真库编译进去波形就是红线。解决办法是在 ModelSim 里手动编译库或者在 Quartus 里配置仿真库路径。这个坑比较隐蔽因为编译能过只有仿真时才暴露。8. 关于版本升级和长期维护的建议如果你现在用的是更老的版本比如 Quartus 18 或者 20想升级到 23.1我的建议是先备份现有工程然后在新环境里重新编译一遍。不要直接在新版本里打开老工程就编译因为不同版本的综合策略和 IP 核版本可能有差异直接打开可能会报错。正确的做法是新建一个 23.1 的工程把源文件加进去重新配置 IP 核重新分配引脚然后编译。这个过程虽然麻烦但能避免很多版本兼容问题。另外Quartus 和 ModelSim 的安装包建议保留一份在本地或者移动硬盘里。有时候官方下载页面会更新版本老版本不一定能随时下到。留一份安装包换电脑或者重装系统时能省不少事。最后说一个实际体会这套环境搭好之后尽量别再频繁折腾。FPGA 开发的核心是设计和验证环境只是工具。把环境一次性配到位然后专注在代码和仿真上才是正道。我见过太多人把时间花在反复重装环境上真正写代码的时间反而没多少。环境稳定了就让它稳定着别没事找事去动它。