Quartus Prime 18.1与ModelSim联合仿真全攻略:安装、授权到波形调试

发布时间:2026/9/24 14:15:10
Quartus Prime 18.1与ModelSim联合仿真全攻略:安装、授权到波形调试
帮人装Quartus这事我前前后后做了不下二十次。每次看到群里有新人卡在同一个地方——安装包下了好几个G装到一半报错或者软件好不容易起来了一仿真波形全是红线——我都恨不得把屏幕伸过去替他把配置点好。这篇文章把Quartus Prime 18.1和ModelSim从下载、安装、授权到联合仿真的完整流程拆开揉碎按我实际动手的顺序一步步走一遍。如果你刚接触FPGA但不想在环境搭建上浪费太多时间或者已经装过一次但被各种报错折腾得想重装系统这篇文章基本能把你能踩的坑提前帮你踩完。顺便先把话放在前面中文互联网里满天飞的“破解”在FPGA这个圈子里绝大多数时候并不是什么高深的黑客操作而是指把授权文件license.dat正确部署到系统里让软件觉得自己“有证上岗”。我把这个流程拆成了清晰的几步你照做就行不用东拼西凑看七八篇帖子。1. 装前摸底这台电脑到底能不能跑Quartus 18.11.1 版本选型18.1家族里你该装哪个Quartus Prime 18.1虽然名字只差一个后缀但实际分成三个差异很大的家族Standard、Lite、Pro。Standard Edition功能最全支持Cyclone V、Cyclone 10 LP、MAX 10、Arria V等主流中低端器件是绝大多数教材和课程使用的版本。Lite Edition免费但器件支持范围缩水只支持Cyclone IV、Cyclone 10 LP、MAX 10这几个系列对学习来说其实够用但很多实验代码是围绕Cyclone V写的如果用Lite版而板子是Cyclone V就会遇到器件不支持的问题。Pro Edition面向高端器件Arria 10、Stratix 10等功能和授权门槛都更高普通学习和教学完全用不到。我推荐你选Standard 18.1这也是标题里那个版本。它发布早、生态成熟网上能找到大量配套教程遇到问题搜索引擎一搜基本都有答案。注意不要手滑装了Pro版然后发现自己的板子型号根本不在支持列表里。还有个小细节18.1这个版本号没有17.x那些早期固件坑也比19.x及以后版本的界面更稳定很多大学实验室至今还在用18.1不是没有道理。1.2 硬件需求与磁盘空间估算Quartus不挑显卡也不吃CPU单核性能但对内存和磁盘空间有硬性要求。我的经验值是这样内存8GB是底线16GB很舒服。跑全编译的时候Quartus会吃4-6GB内存如果同时开着ModelSim和浏览器8GB机器会很吃力。磁盘这是最容易低估的一项。安装包约8GB解压后约10GB完整安装包括所有设备库后约30GB。就算你只装常用的Cyclone设备库最终空间占用也在15GB以上建议随便匀出40GB空余再动手。系统Windows 10/11 64位都支持。Windows 7虽然官方还列在支持列表里但USB驱动和后续第三方工具兼容性越来越差不太推荐。安装路径建议走默认的C:\intelFPGA\18.1或者D盘也可以但路径中绝对不能出现中文和空格。我见过有人装在D:\软件\Quartus Prime 18.1结果ModelSim编译库的时候各种找不到文件最后重装才解决。路径里的中文和空格会让很多底层脚本崩溃这不是Quartus的锅是这些老工具对Unicode路径的支持基本为零。1.3 下载前的文件核对一次性下全别装了一半发现少东西去Intel官网检索“Quartus Prime Standard Edition 18.1 for Windows”用注册账号登录后进入下载页面你会看到一长串文件列表。别看到什么点什么按我下面的清单来需要下载的文件用途QuartusSetup-18.1.0.625-windows.exeQuartus主安装器cyclonev-18.1.0.625.qdzCyclone V设备库常用cyclone10lp-18.1.0.625.qdzCyclone 10 LP设备库max10-18.1.0.625.qdzMAX 10设备库modelSimSetup-18.1.0.625-windows.exeModelSim安装器如果主安装器不带我自己的习惯是设备库只下手上用到的不需要把几十个.qdz全部拉下来。如果你的板子是Cyclone IV对应下载cycloneiv系列的.qdz即可。下载速度一般文件又大建议用浏览器原生的断点续传功能别用那些乱七八糟的第三方下载器经常下到一半文件损坏。下载完成后建议核对一下文件大小官网每个文件边上会标注具体字节数差一个字节都不行。这一步能避免后面解压到99%时报“CRC校验失败”的尴尬。2. Quartus Prime 18.1 安装实战从解压到驱动2.1 解压与安装器启动别在压缩包里双击安装QuartusSetup这个exe本身其实是一个自解压包双击后先会解压到临时目录然后才弹安装界面。很多新手在这一步就出问题直接把exe放在中文路径下双击解压过程报错退出。我建议的做法是先把exe和所有.qdz文件放在同一个英文无空格的目录里比如D:\fpga_download然后右键“以管理员身份运行”这个exe。注意这一步开始杀毒软件可能会弹出拦截提示。安装器要写注册表、要释放驱动文件行为上确实有点像“恶意软件”但这是正常现象。建议安装期间临时退出360、火绒之类的软件等安装完再开回来不然会莫名其妙少装几个组件。解压完成后进入安装界面一路Next到了组件选择页面会看到多个复选框。这里先只要两个核心选项Quartus Prime Standard Edition和ModelSim Intel FPGA Edition有的版本写的是ModelSim ASE。设备库等主程序装完再单独加或者在这一步勾选你需要的.qdz文件路径也行。2.2 组件勾选决策ModelSim要不要一起装我的建议是一起装。ModelSim是Quartus自带的正统仿真工具安装时选择它会让后面Quartus和ModelSim的路径自动对接好省掉大量手动配置。不要单独从Mentor官网下载独立版ModelSim——虽然功能几乎一样但独立版的License体系、库编译方式和Intel定制版略有差异新手很容易在启动时报错。如果你已经在Quartus装完之后发现当初没勾ModelSim也没关系重新运行安装器只勾ModelSim选项它会自动检测已有安装并补装。安装过程大概需要20到40分钟取决于你的硬盘速度。走到最后一步安装器可能会提示是否安装USB Blaster驱动选“Install”。如果没有这个选项后面也可以单独通过设备管理器手动装驱动。2.3 USB Blaster驱动设备管理器里的关键检查很多人的Quartus装好了面板跑起来了但一接上FPGA开发板就识别不到USB-Blaster问题通常出在驱动。操作流程是先把USB-Blaster插入电脑打开设备管理器找到带黄色感叹号的未知设备右键“更新驱动”选择“浏览我的电脑”指向C:\intelFPGA\18.1\quartus\drivers\usb-blaster然后确定安装。这里有个Windows 10/11的经典坑驱动签名验证。老版本的Altera驱动没有微软数字签名系统会直接拒绝安装。解决办法是在“设置 更新与安全 恢复 高级启动”里重启进入“禁用驱动强制签名模式”然后再装一次驱动。装完后最好重启一次电脑让驱动彻底生效。验证驱动是否正常可以打开Quartus点击“Tools Programmer”如果左侧Hardware Setup能看到USB-Blaster且状态显示绿色可识别这个坑就算填完了。3. 授权文件中文社区口中“破解”的关键三步3.1 license.dat到底是什么Quartus和ModelSim这两兄弟用的是同一套License授权体系。所谓的授权文件license.dat本质是一个文本文件里面写明了你的网卡MAC地址、软件版本号、授权期限、可用功能列表等信息。软件启动时会读取这个文件校验MAC地址是否匹配、功能项是否包含自己需要的模块校验通过就放行。这也是为什么中文社区里的各种“生成授权”工具第一步都让你填MAC地址——因为校验的核心就是那串网卡物理地址。很多人的问题恰恰出在后面拿到license.dat之后不知道放哪、不知道告诉软件去哪读结果软件一直报“License not found”。所以现在你只需要关心两件事让正确内容出现在license.dat里告诉软件到哪去读这个文件。前者属于软件授权范畴不同渠道的获取方式各有不同后者是通用的技术操作下面详细说。3.2 先走通官方30天评估License验证流程没问题在我推荐的稳妥路线里第一次装可以先申请Intel官方的30天评估授权把整套环境跑通之后再用其他方式替换license.dat。这样做的好处是如果后续出现问题你能确定是授权文件的问题还是其他配置的问题排查范围一下子缩小很多。申请流程打开Quartus Prime会弹出License Setup向导选择“Get an evaluation license now”它会跳到Intel官网登录页面登录后选择Quartus Prime Standard Edition网页会自动读取你当前机器的网卡MAC地址填完信息后邮箱会收到一个license.dat附件。把附件保存到固定的目录比如D:\altera_licenses\license.dat。然后到Quartus的“Tools Options License Setup”里把License文件路径填进去或者设置环境变量LM_LICENSE_FILE指向它。这时候再看License Setup页面授权状态应该已经变成绿色可用。3.3 设置环境变量LM_LICENSE_FILE的三种方式很多人以为license.dat不生效是文件问题其实是环境变量没配好。Windows下有三种方式我按推荐程度排列系统环境变量最推荐右键“此电脑 属性 高级系统设置 环境变量”在系统变量里新建或编辑LM_LICENSE_FILE值填license.dat的完整路径。这样Quartus和ModelSim都能读到一劳永逸。用户环境变量同上只是改的是当前用户的环境变量效果类似但某些以管理员权限运行的组件可能读不到用户变量所以不优先推荐。Quartus内部配置在Quartus的License Setup里填路径。但这只对Quartus生效ModelSim不认需要两边分别配容易漏。配置完环境变量后一定要重启Quartus或ModelSim因为这两个软件只在启动时读一次环境变量不是动态加载的。验证方法其实很简单。Quartus 18.1启动时如果license有问题会弹一个对话框明确告诉你“License feature is not valid”以及缺失的功能项。如果没有弹打开“Tools Options License Setup”看到绿色图标和可用的功能列表就说明读到了。ModelSim启动时命令行窗口会打印它当前使用的license路径那些信息值得留个心眼。4. ModelSim安装与首次启动避免重复劳动4.1 捆绑版与独立版的区别Quartus 18.1携带的ModelSim版本安装路径默认在C:\intelFPGA\18.1\modelsim_ase。这个版本和从Mentor官网下载的独立ModelSim SE版本有本质区别捆绑版已经预先配置好了Intel各系列器件的仿真库你不需要手动执行vlib和vmap去建库新建工程直接选器件就能编译仿真对FPGA开发来说省了一大截时间。独立版ModelSim SE功能强、支持语言版本多但和Quartus的配合需要额外做库映射。如果你只做Quartus的仿真完全没有必要碰独立版。这就像买冰箱送了一盒制冰格你非要去买一个工业制冰机一样——能出冰但没必要。4.2 首次启动与License指针第一次打开ModelSim在Quartus里通过“Tools Run Simulation Tool RTL Simulation”调用时它会先检查LM_LICENSE_FILE环境变量。如果之前在第3章已经配好这里会直接进入主界面不弹任何提示。如果弹窗提示license问题回到第3.3节检查环境变量是否写对、路径是否存在。有些版本modelSim启动时会要求你按一次“Schematic”或“Project”按钮切换视图这是正常的不是出错。4.3 版本不符导致的库编译失败我见过最典型的ModelSim报错是** Fatal: (vsim-3193) Load of altera_mf_ver failed。这个问题几乎都是因为第一次安装时设备库没选全或者Quartus和ModelSim版本号对不上。比如你Quartus是18.1.0但ModelSim装成了18.1.1库文件版本不匹配仿真时就会加载失败。解决起来也不复杂。打开ModelSim的安装目录找到modelsim.ini文件用文本编辑器查看里面的库映射路径确认所有映射都指向C:\intelFPGA\18.1\modelsim_ase\altera_ver等实际存在的目录。如果目录不存在说明对应器件库没装回到Quartus安装器补装设备库。如果路径对不上手动修改映射路径。这步能解决90%以上的库加载报错。5. Quartus ModelSim 联合仿真跑通一个计数器5.1 设置仿真工具路径到了这步你已经过了最痛苦的安装和授权关剩下的就是配置联合仿真。打开Quartus进入“Tools Options General EDA Tool Options”在ModelSim这一行填上C:\intelFPGA\18.1\modelsim_ase\win32aloem。注意是win32aloem目录不是modelsim_ase根目录。这里指向的必须是ModelSim的可执行程序所在位置填错了Quartus会报“Cannot launch ModelSim”。接着在工程里打开“Assignments Settings EDA Tool Settings Simulation”Tool name选ModelSimOutput format选Verilog HDL。到这里Quartus已经知道该把仿真工作交给谁了。5.2 Testbench模板生成与编写要点写Testbench是仿真里绕不开的环节。Quartus提供了一个很有用的功能自动生成Testbench模板。在工程文件列表里选中顶层文件点击“Processing Start Start Testbench Template”Quartus会在工程目录的simulation/modelsim/下生成一个工程名_tb.v文件。这个模板会自动例化你的顶层模块剩下的工作就是补上时钟和复位信号。以一个4位计数器为例生成的模板基础上我一般会这样补激励timescale 1ns/1ps module counter_tb; reg clk; reg rst_n; wire [3:0] cnt; counter u0( .clk(clk), .rst_n(rst_n), .cnt(cnt) ); initial begin clk 0; rst_n 0; #100; rst_n 1; end always #10 clk ~clk; endmodule这段代码想强调几个点。第一初始时先把rst_n拉低100ns再释放确保复位信号先于第一个时钟上升沿出现并完成清零。第二时钟用always #10生成50MHz的时钟10ns半周期任务简单。第三Testbench文件名和module名建议保持一致方便管理。一个常见的错误是仿真波形一直为红线/高阻Z结果发现Testbench里忘记例化设计模块Quartus模板的例化名和实际顶层名拼写不一致信号就悬空了。5.3 波形窗口操作与信号观察技巧配置好Testbench后在Quartus里执行“Tools Run Simulation Tool RTL Simulation”ModelSim会自动启动并加载工程然后弹出一个ModelSim主界面。你会在“sim”面板里看到testbench模块展开它就能看到内部信号。但默认状态下信号面板选中的是sim顶层不是u0这个DUT设计模块。要观察计数器内部信号必须右键点击u0节点选择“Add To Wave Selected Signals”或类似选项。这一步没做你看到的波形永远是空的。添加完信号后点击“Run”按钮或按快捷键运行一段时间比如运行2us就能看到cnt信号像楼梯一样逐步累加。如果rst_n释放的时序不对cnt前几个周期可能是X态。波形窗口还有一个很实用的技巧右键信号名选“Radix Hexadecimal”或“Unsigned”波形左侧的数值会从十六进制切换到十进制观察计数器的累加过程直观很多。6. 仿真波形一片红排查链路与解决办法6.1 红线、虚线、未知态到底在说什么“ModelSim仿真波形是红线”这句话在FPGA群里出现的频率高得离谱。其实红线只是表象真正要分清的是波形显示的不同状态。在ModelSim波形窗口里信号状态一般有这么几种显示状态含义常见原因红色粗线高阻态Z或未连接信号悬空、输出未驱动、器件库未加载红色/橙色区域X态未知状态寄存器未复位、信号赋初值前被读取蓝色细线线网wire有驱动但未知多驱动冲突绿色/黑色实线已正确驱动正常状态紫色/灰色虚线信号未初始化仿真时间0时刻之前看到红色波形先别急着怀疑软件装坏了。我的经验是八成是Testbench的激励没写好或者信号没添加到波形窗口而不是Quartus或ModelSim的安装问题。6.2 一步步排查的完整顺序我处理“全是红线”类的求助时从不直接给答案而是让求助者按顺序做这几步基本三分钟内定位问题第一步先确认加对信号。右键DUT实例比如u0再添加它的内部信号。如果直接在counter_tb节点上添加信号看到的是Testbench里的激励信号而设计内部信号根本不在这个层级里波形自然诡异。第二步看信号值到底是X还是Z。如果波形是红色且用鼠标悬停显示X说明信号被读但从未被赋值——八成是复位没生效把复位信号拉到有效电平再重新运行仿真。如果显示Z说明这条线悬空了——检查Testbench里对不对得上模块端口。第三步检查Testbench里的初值设定。用Verilog写Testbench时所有reg类型信号必须在initial块里赋初值否则默认是X状态。比如initial begin clk 0; rst_n 0; end很多新人只写了always #10 clk ~clk但忘写clk 0这个初值ModelSim里clk的波形就是一条红色的直线而不是连续的方波。第四步检查是否没跑够时间。有些复位是异步的释放后需要等几个时钟周期才能看到输出。如果Run的时间太短比如只跑了20ns计数器还没完成第一个上升沿采样当然还是竖直一条线。多Run一段时间比如run 1us再观察。第五步确认库编译顺序。如果连testbench编译都没报错但仿真时提示找不到模块回到4.3节检查模型库。这个坑在高版本的ModelSim配合旧工程时特别常见。6.3 我的处理顺序和一个小习惯我自己遇到“红线”时最常用的手法是先把所有内部信号全部加进波形然后run -all跑无限长用Zoom Full把全部波形显示出来先看全局趋势再针对性Zoom In到某个时间点。这样比盯着几十ns的波形猜来猜去高效得多。另外养成一个习惯每次修改Testbench后一定要在ModelSim里执行quit -sim结束仿真再重新启动仿真不要连续点Run。ModelSim对增量编译的支持在旧版本里很容易出现“信号还是上一个版本”的幻觉折腾半天发现改的代码根本没重新编译进去。如果上面的方法都试过了波形还是红色还有一个简单粗暴的常规处理关掉ModelSim回到Quartus在工程设置里把Simulation工具切到“None”再切回“ModelSim”然后重新生成仿真文件启动仿真。这个操作相当于把仿真环境重新初始化一遍能解决很大一部分莫名其妙的路径缓存问题。跟着这套流程走下来Quartus Prime 18.1和ModelSim基本能稳定跑起来计数器仿真波形也能正常显示。我个人在实际操作中的体会是装软件这种事最耗时间的往往不是下载而是那些毫不起眼的小配置——环境变量、路径、初值任何一个不对后面的报错都能绕死你。装完这套环境之后建议你把第5章的计数器例子完整跑一遍验证联合仿真链路是通的再去跑自己项目的代码。这样真遇到仿真问题至少能确定是环境问题还是设计问题排查起来心里有底得多。