
1. 为什么这套组合至今仍是FPGA入门的黄金搭档搞FPGA开发的人绕不开两个名字Intel Quartus Prime Lite 和 ModelSim。前者是Intel原Altera官方推出的FPGA开发集成环境后者是Mentor Graphics现Siemens EDA出品的仿真工具。这两个工具搭配起来基本覆盖了从代码编写、综合、布局布线到功能仿真的完整流程。你手里如果有一块Cyclone IV、Cyclone V、MAX 10之类的开发板这套组合就是最省心的起点。我见过太多新手卡在安装这一步。下载哪个版本、装哪些组件、ModelSim怎么和Quartus关联、仿真库怎么编译、License怎么处理——每一步都有坑。网上教程要么太老要么跳步严重要么资源链接早就失效。这篇内容就是把我自己反复装过十几台机器Windows和Linux都有的经验完整梳理出来从零开始把Quartus Prime Lite 20.1.1和ModelSim的安装配置讲透。为什么选20.1.1这个版本几个原因。第一它是Lite版里比较稳定的一个长期支持版本对Cyclone IV/V、MAX 10这些常见教学和入门芯片支持完善。第二20.1.1自带的ModelSim Intel FPGA Edition可以直接用不需要单独去找完整版ModelSim省掉很多License麻烦。第三这个版本对Windows 10的兼容性经过大量验证不像更新版本在某些老机器上会有驱动或界面问题。第四网上关于20.1系列的教程和问题讨论最多遇到问题容易搜到答案。这篇文章适合谁如果你是电子、自动化、计算机相关专业的学生刚拿到开发板不知道从哪下手或者你是嵌入式工程师想转FPGA方向需要快速搭好环境跑通第一个工程再或者你之前装过但仿真一直跑不起来想彻底搞明白Quartus和ModelSim之间的关联逻辑——那这篇内容就是给你写的。我会把每一步的操作意图、参数选择理由、常见报错和排查方法都讲清楚让你不仅装得上还能理解为什么这么装。2. 安装前的准备工作与版本选型逻辑2.1 Quartus Prime Lite 20.1.1的组件构成Quartus Prime Lite不是单一安装包它由几个独立部分组成。主程序是Quartus Prime负责综合、布局布线、时序分析、编程下载。然后是ModelSim Intel FPGA Edition这是精简版的ModelSim专门为Intel FPGA做功能仿真用。还有Nios II EDS嵌入式软核开发工具、DSP Builder等可选组件。对于纯FPGA逻辑开发你至少需要装Quartus主程序和ModelSim这两个。20.1.1的安装包总大小在5GB左右完整安装后占用空间大约15到20GB。如果你的硬盘空间紧张可以在安装时取消勾选不需要的器件库。比如你只用Cyclone IV就只选Cyclone IV的支持包能省下好几个GB。但我的建议是如果空间允许把Cyclone IV、Cyclone V、MAX 10这几个常用系列的器件库都装上后面换板子不用重新装。安装文件通常是一个名为QuartusLiteSetup-20.1.1.720-windows.exe的可执行文件加上若干器件库的单独安装包。有些渠道会把它们打包成一个压缩包解压后按顺序安装即可。这里要注意主程序安装完成后器件库需要单独运行对应的安装程序不能只装主程序就完事。2.2 ModelSim版本的选择与匹配Quartus 20.1.1配套的ModelSim是ModelSim Intel FPGA Edition 2020.1。这个版本和Quartus是深度绑定的安装Quartus时如果勾选了ModelSim组件它会自动装好。但很多人会遇到一个问题Quartus装完了ModelSim却打不开或者打开后提示License错误。这通常是因为安装时没有正确选择组件或者License文件没有配置到位。我的建议是在安装Quartus主程序时明确勾选ModelSim Intel FPGA Edition。安装完成后Quartus的安装目录下会有一个modelsim_ase文件夹ASE代表Altera Starter Edition这就是ModelSim的安装位置。你不需要单独去下载ModelSim安装包也不需要用网上那些来路不明的破解版。Intel FPGA Edition本身是免费的只要你有Quartus的LicenseModelSim就能正常用。如果你确实需要独立安装ModelSim比如想用完整版那要注意版本兼容性。ModelSim的版本不能低于Quartus要求的版本否则仿真时会出现库不匹配的问题。20.1.1配套的是ModelSim 2020.1你用2020.4或更新的版本通常也可以但太老的版本比如10.5以下就不行了。2.3 系统环境与依赖检查Windows方面Quartus Prime Lite 20.1.1官方支持Windows 10 64位。Windows 7也能装但可能会有一些界面显示问题。Windows 11我没有遇到大问题但个别驱动需要手动处理。内存建议至少8GB16GB更流畅。因为Quartus的综合和布局布线很吃内存小工程还好大一点的工程8GB会比较吃力。Linux方面官方支持RHEL 7、CentOS 7、Ubuntu 18.04 LTS等。我在Ubuntu 20.04上装过基本能用但需要手动装一些32位库。Linux下的安装包是.run文件安装过程比Windows稍微麻烦一点主要是权限和依赖问题。如果你主要在Linux下开发建议用Ubuntu 18.04或CentOS 7兼容性最好。还有一个容易被忽略的点安装路径不要有中文和空格。Quartus和ModelSim对路径中的特殊字符处理不好路径里有中文会导致各种奇怪的错误。建议直接装在C:\intelFPGA_lite\20.1.1或者D:\altera\20.1.1这样的纯英文路径下。注意安装前关闭杀毒软件和Windows Defender的实时保护。Quartus安装过程中会释放大量临时文件杀毒软件可能会误报或拖慢安装速度。装完后再重新开启即可。3. Quartus Prime Lite 20.1.1安装全流程拆解3.1 下载资源的获取与校验官方下载渠道是Intel的FPGA下载中心需要注册账号。但国内访问下载速度往往很慢所以很多人会选择网盘资源。网盘资源的问题在于你无法确认文件是否完整、是否被篡改。我的做法是下载完成后校验文件的SHA256或MD5值。Intel官网会提供每个安装包的校验值你可以在下载页面找到。如果网盘资源没有提供校验值至少确认文件大小和官方标注的一致。下载下来的文件通常包括主安装程序、器件库安装包可能有多个、ModelSim安装包如果单独提供。把这些文件放在同一个文件夹下安装时主程序会自动识别同目录下的器件库。3.2 主程序安装步骤详解运行QuartusLiteSetup-20.1.1.720-windows.exe首先会解压到一个临时目录。这个过程可能需要几分钟取决于你的硬盘速度。解压完成后安装向导启动。第一步是选择安装目录。默认是C:\intelFPGA_lite\20.1.1我建议保持默认或者改到空间更大的盘。路径中不要有中文和空格。第二步是选择组件。这里会列出Quartus Prime、ModelSim、Nios II EDS、DSP Builder等。对于纯FPGA逻辑开发勾选Quartus Prime和ModelSim就够了。如果你要做Nios II软核开发再勾上Nios II EDS。DSP Builder一般用不到可以不装。第三步是选择器件库。这里会列出Cyclone IV、Cyclone V、Cyclone 10、MAX 10、MAX II等系列。根据你手头的开发板选择。不确定的话把Cyclone IV、Cyclone V、MAX 10都选上这三个系列覆盖了绝大多数教学和入门开发板。第四步是确认安装信息然后开始安装。安装过程大约需要20到40分钟取决于你的机器性能和选择的组件数量。安装过程中不要中断不要运行其他大型程序。安装完成后会提示你是否安装USB-Blaster驱动。如果你用的是USB-Blaster下载器勾选安装。如果是其他下载器比如FT232芯片的板载下载器可以跳过后面手动装驱动。3.3 器件库的补充安装如果你在主程序安装时没有勾选全部器件库或者后来换了不同系列的FPGA需要单独安装器件库。器件库的安装包通常命名为CycloneIV-20.1.1.720-windows.exe这样的格式。运行它安装路径选择和你Quartus主程序相同的目录比如C:\intelFPGA_lite\20.1.1安装程序会自动把器件库放到正确的位置。器件库安装完成后打开Quartus在Assignments - Device里应该能看到新安装的器件系列。如果看不到检查安装路径是否正确或者重启Quartus。3.4 License的获取与配置Quartus Prime Lite是免费版本不需要付费License。但你需要一个License文件来激活。获取方式在Intel官网注册账号然后申请Quartus Prime Lite的免费License。申请时会让你填写网卡MAC地址License文件会绑定这个MAC地址。拿到License文件后在Quartus中打开Tools - License Setup在License file一栏填入License文件的路径。然后检查下方显示的License信息确认没有报错。如果提示MAC地址不匹配检查你申请时填的MAC地址是否和当前机器的一致。换机器或换网卡后需要重新申请。ModelSim Intel FPGA Edition的License是包含在Quartus License里的不需要单独申请。只要Quartus的License配置正确ModelSim就能正常启动。提示如果你在多台机器上使用可以把License文件放在一个固定路径然后在每台机器上指向这个文件。但MAC地址绑定意味着每台机器都需要单独申请除非你用同一个网卡比如USB网卡。4. ModelSim配置与Quartus关联的完整操作4.1 确认ModelSim安装状态Quartus安装完成后在安装目录下找到modelsim_ase文件夹。进入modelsim_ase\win32aloem32位或modelsim_ase\win6464位运行modelsim.exe。如果ModelSim能正常启动说明安装没问题。如果提示找不到License或启动失败检查Quartus的License配置。ModelSim启动后界面可能看起来比较简陋这是正常的。Intel FPGA Edition本身就是精简版去掉了完整版的一些高级功能但对于FPGA功能仿真完全够用。4.2 在Quartus中设置ModelSim路径打开Quartus进入Tools - Options - EDA Tool Options。在ModelSim一栏填入ModelSim可执行文件的路径。对于20.1.1路径通常是C:\intelFPGA_lite\20.1.1\modelsim_ase\win32aloem注意这里要填到包含modelsim.exe的目录而不是modelsim_ase的根目录。填完后点击OK保存。这个设置的作用是让Quartus知道ModelSim在哪里这样你在Quartus中点击“RTL Simulation”或“Gate Level Simulation”时Quartus能自动调用ModelSim进行仿真。4.3 编译仿真库这是最关键也最容易出错的一步。Quartus自带的仿真库比如altera_mf、lpm、cycloneive等需要先编译成ModelSim能识别的格式否则仿真时会提示找不到模块。编译方法有两种。第一种是通过Quartus的界面Tools - Launch Simulation Library Compiler。在弹出的窗口中选择ModelSim的安装路径、输出库的路径、要编译的器件系列。然后点击Start Compilation。这个过程可能需要几分钟到十几分钟取决于你选择的器件系列数量。第二种是通过命令行。打开Quartus自带的Nios II Command Shell或者直接用系统命令行进入Quartus安装目录下的eda\sim_lib文件夹运行vsim -c -do altera_mf_compile.do不过更推荐用图形界面因为命令行需要设置很多环境变量容易出错。编译完成后会在你指定的输出目录下生成一系列文件夹每个文件夹对应一个库。然后在ModelSim中通过File - Change Directory切换到那个输出目录再通过File - New - Library创建库映射或者直接在仿真脚本中用vmap命令映射。4.4 仿真库的映射与验证编译完仿真库后需要让ModelSim知道这些库的位置。在ModelSim中打开File - Change Directory切换到仿真库的输出目录。然后打开File - New - Library创建一个新的库映射名字和编译出来的库名一致比如altera_mf路径指向对应的文件夹。更常用的方法是在仿真脚本.do文件中直接写vmap命令vmap altera_mf C:/intelFPGA_lite/20.1.1/eda/sim_lib/altera_mf vmap lpm C:/intelFPGA_lite/20.1.1/eda/sim_lib/lpm vmap cycloneive C:/intelFPGA_lite/20.1.1/eda/sim_lib/cycloneive这样每次仿真时ModelSim会自动加载这些库映射。验证方法写一个简单的Verilog模块例化一个altera_mf库中的组件比如altpll然后跑仿真。如果仿真能正常编译和运行说明库映射成功。如果提示找不到模块检查库路径是否正确或者重新编译仿真库。5. 常见报错与排查技巧实录5.1 安装过程中的典型问题问题一安装程序卡在解压阶段。这通常是杀毒软件在扫描临时文件导致的。关闭杀毒软件后重新运行安装程序。如果还是卡住检查临时目录所在盘的空间是否充足。问题二安装完成后Quartus打不开提示缺少DLL。这通常是Visual C运行库缺失。安装Microsoft Visual C Redistributable 2015-2019x86和x64都装。Quartus 20.1.1依赖这些运行库。问题三USB-Blaster驱动安装失败。在设备管理器中找到未识别的USB-Blaster设备右键更新驱动手动指向Quartus安装目录下的drivers\usb-blaster文件夹。如果提示驱动签名问题在Windows启动时按F8禁用驱动签名强制仅限Windows 7或者用Windows 10的测试模式。5.2 ModelSim仿真常见报错报错一Error: (vsim-19) Failed to access library altera_mf at altera_mf.这是仿真库没有映射。按照4.4节的方法用vmap命令映射库路径。报错二Error: (vsim-3033) Instantiation of altpll failed.这是仿真库没有编译或者编译不完整。重新运行仿真库编译确保altera_mf库编译成功。报错三仿真波形全是红线。这是新手最常见的问题。红线表示信号为高阻态Z或未初始化X。原因通常是时钟信号没有正确产生、复位信号没有释放、或者模块端口连接错误。检查你的Testbench确保时钟在翻转复位在仿真开始后一段时间释放。报错四Error: (vsim-3170) Could not find work.xxx.这是你的设计文件没有被编译到work库中。在ModelSim中先编译你的设计文件Compile - Compile All然后再运行仿真。5.3 仿真库编译失败的处理仿真库编译失败通常有几个原因。一是ModelSim路径设置错误Quartus找不到ModelSim。检查Tools - Options - EDA Tool Options中的路径。二是输出目录权限不足换一个你有写入权限的目录。三是器件库没有安装完整比如你选了Cyclone V但没装Cyclone V的器件库编译时会报错。如果图形界面编译一直失败可以尝试用命令行。打开Quartus自带的命令行工具进入eda\sim_lib目录运行vlib altera_mf vlog -work altera_mf altera_mf.v不过这种方法需要手动处理依赖关系比较麻烦。还是优先用图形界面。5.4 常见问题速查表问题现象可能原因解决方法Quartus打不开提示缺少DLLVC运行库缺失安装VC 2015-2019 RedistributableModelSim启动提示License错误License未配置或MAC不匹配检查License Setup重新申请License仿真提示找不到altera_mf仿真库未映射用vmap命令映射库路径波形全是红线时钟未翻转或复位未释放检查Testbench的时钟和复位逻辑仿真库编译失败路径错误或权限不足检查ModelSim路径换输出目录USB-Blaster识别不到驱动未安装手动安装驱动禁用驱动签名强制Quartus综合报错找不到器件器件库未安装安装对应系列的器件库ModelSim编译报错找不到模块设计文件未编译先Compile All再仿真提示遇到报错时先看错误信息的第一行和最后一行。第一行通常告诉你错误类型最后一行告诉你错误位置。中间的信息往往是堆栈跟踪对定位问题帮助不大。6. 从零跑通第一个仿真工程的实操记录6.1 创建Quartus工程打开QuartusFile - New Project Wizard。设置工程路径和名称路径不要有中文。选择目标器件比如Cyclone IV EP4CE10F17C8根据你的开发板选择。EDA Tool Settings中Simulation一栏选择ModelSim-Altera格式选Verilog HDL或VHDL根据你的代码习惯。工程创建完成后新建一个Verilog文件写一个简单的分频器或者计数器。比如一个8位计数器module counter8( input clk, input rst_n, output reg [7:0] cnt ); always (posedge clk or negedge rst_n) begin if (!rst_n) cnt 8d0; else cnt cnt 1b1; end endmodule保存文件然后点击Analysis Synthesis进行综合。综合通过后说明代码没有语法错误。6.2 编写Testbench新建一个Verilog文件写Testbenchtimescale 1ns/1ps module tb_counter8; reg clk; reg rst_n; wire [7:0] cnt; counter8 u_counter8( .clk(clk), .rst_n(rst_n), .cnt(cnt) ); initial begin clk 0; rst_n 0; #100 rst_n 1; #1000 $stop; end always #10 clk ~clk; endmodule这个Testbench产生一个周期20ns的时钟复位信号在100ns后释放仿真运行1000ns后停止。6.3 配置ModelSim仿真在Quartus中Assignments - Settings - EDA Tool Settings - Simulation。设置仿真工具为ModelSim-Altera格式为Verilog HDL。然后在NativeLink settings中指定Testbench文件。点击Tools - Run Simulation Tool - RTL Simulation。Quartus会自动调用ModelSim编译设计文件和Testbench然后运行仿真。如果一切正常ModelSim会打开波形窗口显示cnt信号从0开始递增。如果ModelSim没有自动打开或者提示错误检查前面的仿真库映射和路径设置。也可以在ModelSim中手动操作File - Change Directory到工程目录Compile - Compile All然后Simulate - Start Simulation选择tb_counter8。6.4 波形分析与调试仿真运行后在ModelSim的波形窗口中把cnt信号拖进去。你应该看到cnt在复位释放后每个时钟上升沿加1。如果cnt一直是0或者红线检查复位信号是否正确释放时钟是否在翻转。一个实用技巧在ModelSim中用add wave命令添加信号用run 1000ns命令运行指定时间。这样比鼠标操作更高效。你也可以把常用命令写成一个.do文件每次仿真时直接do wave.do省去重复操作。提示仿真时间不要设得太长否则波形文件会很大ModelSim会变慢。一般跑几微秒到几毫秒就够了取决于你的设计。7. 提升效率的配置技巧与经验总结7.1 常用快捷键与界面优化Quartus和ModelSim都有一些隐藏的快捷键和配置选项能显著提升效率。Quartus中CtrlR是综合CtrlShiftR是重新综合CtrlL是布局布线。ModelSim中F9是运行仿真F10是单步CtrlG是跳转到指定时间。ModelSim的波形窗口可以保存为.wlf文件下次打开时直接加载不用重新添加信号。在波形窗口中File - Save Format保存为.do文件。下次仿真时do wave.do就能恢复波形布局。7.2 工程模板与脚本自动化如果你经常创建新工程可以做一个工程模板。把常用的设置器件系列、仿真工具、编译选项保存为.qsf文件新建工程时直接导入。这样不用每次都手动配置。更高级的用法是写Tcl脚本。Quartus支持Tcl脚本自动化你可以写一个脚本自动创建工程、添加文件、设置编译选项、运行综合和仿真。对于需要反复迭代的工程这能省下大量时间。ModelSim也支持Tcl脚本。你可以把编译、仿真、波形添加的命令写成一个.do文件每次仿真时直接运行这个脚本。比如vlib work vlog ../rtl/counter8.v vlog tb_counter8.v vsim -t 1ns work.tb_counter8 add wave -r /* run 1000ns这个脚本会自动创建work库、编译文件、启动仿真、添加所有信号、运行1000ns。你只需要在ModelSim中do sim.do即可。7.3 版本管理与工程备份FPGA工程的版本管理容易被忽略。Quartus工程中有很多中间文件比如.qpf、.qsf、.sof、.pof等不是所有文件都需要纳入版本管理。一般来说.qpf、.qsf、.v、.sv、.vhd、.sdc这些源文件和配置文件需要管理综合生成的中间文件db文件夹、incremental_db文件夹不需要。我习惯用Git管理FPGA工程在.gitignore中排除db、incremental_db、simulation、output_files等文件夹。这样仓库不会太大而且换机器时clone下来就能用。7.4 个人经验与避坑建议装Quartus和ModelSim这件事我前后折腾过不下十次有几个经验值得分享。第一安装路径一定要短、纯英文。我见过有人装在D:\我的项目\FPGA开发\Quartus下面结果ModelSim死活找不到仿真库。改成D:\fpga\quartus就正常了。第二仿真库编译一次就够了不用每次仿真都编译。编译好的库放在一个固定目录所有工程共用。在ModelSim的modelsim.ini文件中配置好库映射一劳永逸。第三如果ModelSim启动特别慢检查是不是杀毒软件在扫描。把ModelSim安装目录加入杀毒软件白名单启动速度会快很多。第四Quartus的License文件不要放在中文路径下。License文件路径有中文会导致License读取失败但报错信息不会直接告诉你原因只会提示License无效。第五如果你用的是笔记本电脑注意电源管理设置。Quartus综合和布局布线时CPU占用很高如果电源模式是“节能”会拖慢编译速度。切换到“高性能”模式。第六仿真时如果波形窗口没有自动弹出检查ModelSim的modelsim.ini中WaveSignalNameWidth设置。有时候信号名太长会被截断导致波形显示异常。这套环境搭好之后你就可以专注于FPGA逻辑设计本身了。从简单的计数器、分频器到状态机、FIFO、SPI、I2C再到图像处理、定点数运算Quartus加ModelSim的组合能支撑你走很远。后面如果要做时序仿真还需要编译Gate Level的仿真库流程类似只是多了一步综合后网表的生成。遇到问题多查Intel的官方文档和社区论坛大部分坑前人都踩过答案就在那里。