2. 开发环境搭建:Quartus II / Vivado / Lattice Diamond安装与配置、License设置、工程创建流程、仿真工具(ModelSim/Questa)集成
说实话,搞CPLD开发,第一步不是写代码,而是把开发环境伺候好。我见过太多新手卡在安装和License上,一卡就是半天。今天咱们就把这事儿捋清楚。
2.1 三大主流IDE的选择与安装
目前市面上主流的CPLD开发工具,说白了就三家:Intel的Quartus II、AMD的Vivado、还有Lattice的Diamond。你选哪个,主要看你手头用的芯片是哪家的。
2.1.1 Quartus II
如果你用的是Intel(原Altera)的CPLD,比如MAX II、MAX 10系列,那Quartus II是跑不掉的。我个人习惯用Quartus II 13.0sp1这个版本,稳定,对老器件支持也好。
安装要点:
- 下载时注意区分Web Edition和Subscription Edition。Web版免费,但功能有限制;订阅版功能全,但需要License。
- 安装路径不要有中文,不要有空格。我吃过这个亏,装完死活编译不了,最后发现是路径问题。
- 建议勾选所有器件支持,虽然安装包大了点,但省得以后换芯片还得重装。
2.1.2 Vivado
Vivado是Xilinx(现属AMD)的工具,主要针对他们的CPLD和FPGA。说实话,Vivado比Quartus II重不少,但功能确实强大。
安装要点:
- Vivado WebPACK是免费的,支持大部分CPLD器件。
- 安装时建议选择“Vivado HL WebPACK”,别选那个“Vivado HL System Edition”,后者贵且用不上。
- 磁盘空间至少留50GB,Vivado是个大家伙。
2.1.3 Lattice Diamond
Lattice的CPLD,比如MachXO2、MachXO3系列,用Diamond来开发。这个工具相对轻量,但配置起来有点小坑。
安装要点:
- Diamond分免费版和付费版,免费版够用。
- 安装时注意选择正确的操作系统版本,Linux和Windows的安装包不一样。
- 我曾经在Ubuntu上装Diamond,折腾了一下午,最后发现是缺少libpng12库。嗯,这个坑你们别踩。
2.2 License设置——绕不开的坎
License这东西,说白了就是个授权文件。没有它,你的工具只能当摆设。
2.2.1 Quartus II License设置
Quartus II的License分两种:一种是免费的Web版License,另一种是付费的订阅版License。
免费License获取:
- 去Intel官网注册账号,申请免费License。
- 你会收到一个.dat文件,这就是你的License。
- 打开Quartus II,Tools → License Setup,把.dat文件路径填进去。
我曾经遇到的情况: 有一次License文件路径填对了,但工具还是报错。后来发现是环境变量LM_LICENSE_FILE没设置。你想想看,Quartus II有时候就是会忽略GUI里的设置,非得读环境变量。
2.2.2 Vivado License设置
Vivado的License相对简单。WebPACK版是免费的,安装完就能用。如果你买了付费版,会收到一个.lic文件。
设置步骤:
- 打开Vivado,Help → Obtain License。
- 选择“Load License”,加载你的.lic文件。
- 或者直接把.lic文件放到C:\Xilinx\Vivado\2023.1\data\licenses目录下。
2.2.3 Lattice Diamond License设置
Lattice Diamond的License设置有点特殊。免费版不需要License,但功能受限。付费版需要把License文件放到安装目录下的license文件夹里。
我曾经踩过的坑: 有一次装完Diamond,发现综合不了。查了半天,原来是License文件权限不对。Linux下记得给License文件加读权限:chmod 644 license.dat。
2.3 工程创建流程——从零开始
环境搭好了,License也搞定了,接下来就是建工程。不同工具的流程大同小异,但细节上有区别。
2.3.1 Quartus II工程创建
步骤:
- File → New Project Wizard。
- 填工程名、路径。注意:工程名不要用中文,不要用特殊字符。
- 选择器件型号。比如MAX II系列的EPM240T100C5。
- 添加设计文件。可以是.v或.vhd文件。
- 选择仿真工具。我一般选ModelSim-Altera。
- Finish,工程就建好了。
2.3.2 Vivado工程创建
步骤:
- File → Project → New。
- 填工程名和路径。
- 选择RTL Project,勾选“Do not specify sources at this time”。
- 选择器件型号。比如XC7S25CSGA324-1。
- Finish。
Vivado的工程向导比Quartus II更智能,但选项也多。我个人习惯先不添加源文件,建完工程再手动添加。
2.3.3 Lattice Diamond工程创建
步骤:
- File → New → Project。
- 填工程名和路径。
- 选择器件型号。比如LCMXO2-1200HC-4TG100C。
- 添加设计文件。
- Finish。
Diamond的工程创建最简洁,但功能也相对少。不过对于CPLD开发来说,够用了。
2.4 仿真工具集成——ModelSim/Questa
仿真,说白了就是让你的代码在电脑上跑一遍,看看逻辑对不对。我刚开始做设计时,总觉得仿真浪费时间,直接上板子调。结果呢?烧一片炸一片,板子都烧了好几块。嗯,从那以后我再也不敢跳过仿真了。
2.4.1 ModelSim集成
ModelSim是Mentor(现属Siemens)的仿真工具,也是Quartus II和Vivado的标配仿真器。
集成步骤:
- 安装ModelSim。注意版本要和你的开发工具匹配。
- 在Quartus II中,Assignments → Settings → EDA Tool Settings → Simulation,选择ModelSim-Altera。
- 在Vivado中,Tools → Settings → Simulation,选择ModelSim。
- 设置ModelSim的安装路径。
2.4.2 QuestaSim集成
QuestaSim是ModelSim的升级版,功能更强,但也更贵。如果你用的是Vivado,可以集成QuestaSim。
集成步骤:
- 安装QuestaSim。
- 在Vivado中,Tools → Settings → Simulation,选择QuestaSim。
- 设置QuestaSim的安装路径。
2.5 知识体系总览
为了让你对整个开发环境搭建有个全局认识,我画了张图。你看看,心里就有数了。
2.6 避坑指南——我踩过的那些坑
最后,分享几个我实际项目中遇到的坑,你们注意避开。
- 路径问题: 我曾经把工程放在桌面,结果编译报错“路径太长”。后来把所有工程都放到D盘根目录下,再也没出过问题。
- 版本匹配: 有一次我装了Quartus II 13.0,但ModelSim是10.5的,结果仿真跑不起来。后来发现是版本不匹配。记住,ModelSim的版本要和Quartus II的版本对应。
- License过期: 免费License一般有有效期。我建议你每次打开工具前,先检查一下License是否过期。别等到编译到一半才发现。
- 仿真库编译: 第一次用ModelSim仿真时,需要先编译器件库。这个步骤容易忘。我建议你建一个批处理脚本,一键编译所有库。
好了,开发环境搭建这部分就讲到这里。环境搭好了,后面写代码、仿真、下载,才能顺风顺水。记住,磨刀不误砍柴工,环境搭好了,后面能省不少事。