前言
我们知道 FPGA 的应用领域非常广泛,包括但不限于以下,请看,
而且未来应用前景也可以,几乎涵盖了所有涉及数字信号处理和技术实现的领域。上期我们介绍了 FPGA 的基础知识数字电路,请看,
FPGA与数字电路https://blog.csdn.net/weixin_65793170/article/details/141363656?spm=1001.2014.3001.5501
这里我们来分享一下,如何搭建 FPGA 开发环境。这里以Altera(已被Intel收购)的开发板为例,记录一下
一. 工具软件
Altera(已被Intel收购)开发板,配置 FPGA 开发环境,所需要安装的软件工具类列表(这里只提供安装教程和使用,不提供安装程序,大家可以到指定官网下载),请看
二. 软件介绍
First. Quartus II
1. Quartus II 软件介绍
Quartus 是由 Altera(现在是 Intel 的一部分)开发的一款用于设计、仿真、综合、布局布线和编程 FPGA 和 CPLD(复杂可编程逻辑器件)的综合性开发软件。它支持原理图,支持多种硬件描述语言HDL,如 VHDL、Verilog HDL 和 SystemC等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
主要特点:
- 集成开发环境(IDE):提供了完整的开发流程,包括设计输入、仿真、综合、布局布线、调试等。
- 设计输入工具:支持文本编辑、原理图输入、状态机编辑等多种设计方法。
- 高级综合工具:自动将设计转化为硬件电路。
- 强大的调试工具:支持波形查看、断点设置、变量监控等功能。
- 多平台支持:可以在 Windows、Linux 和 Mac OS 上运行。
- 广泛的器件支持:支持多种 Altera 和 Intel FPGA 和 CPLD 器件。
简单来说 Quartus 是一款综合性的 CPLD/FPGA 开发软件,可以将 HDL(Hardware Description Language,硬件描述语言)代码转换成硬件电路。这款软件主要用于 Altera(现为 Intel 的一部分)系列的 PLD 的开发,包括 CPLD 和 FPGA。
这里需要注意的是 Quartus 有几个不同版本,不同版本的Quartus®软件,每个版本都有其特定的功能和限制,因此在选择合适的版本时需要考到以下,请看
设计的复杂度和规模。
所需的特性(如高级调试工具、性能优化等)。
预算和许可费用。
而我们这里需要用到的是Quartus II Subscription Edition版本,中文名可以理解为Quartus II 订阅版,这个版本需要按照订阅计划购买,提供了更多的设计和验证工具功能,适合需要完整设计功能和广泛设备支持的用户。
2. Quartus II 各个版本(各个版本的区别和收费情况)
(1). Quartus Prime Pro Edition
- 作用:
- 针对最新和高端的 Intel FPGA 设备设计,如 Stratix 10、Agilex 系列。
- 提供最先进的设计功能、优化工具和性能改进,适合复杂和大规模的 FPGA 设计。
- 收费情况: 需要购买许可证,是商业软件。
- 中文:可以理解为 Quartus Prime 高级版。
(2). Quartus Prime Standard Edition
- 作用:
- 适用于主流的 FPGA 设备,如 Arria、Cyclone 系列。
- 提供大部分高级设计功能,但不如 Pro Edition 功能全面。
- 适合中等规模的设计项目。
- 收费情况: 需要购买许可证,是商业软件。
- 中文:可以理解为 Quartus Prime 标准版。
(3). Quartus Prime Lite Edition
- 作用:
- 适用于小规模设计、学习和教育目的。
- 支持有限的 FPGA 器件,如 Cyclone IV、MAX 系列。
- 功能上有所限制,但免费使用。
- 收费情况: 免费。
- 中文:可以理解为 Quartus Prime 简化版。
(4). Quartus II Subscription Edition (Legacy Version)
- 作用:
- Quartus II 的收费版本,类似于现今的 Quartus Prime Standard Edition。
- 支持较广泛的 FPGA 设备,适用于当时的主流和高端 FPGA 设计。
- 收费情况: 需要购买许可证,是商业软件。
- 备注: 现已被 Quartus Prime Standard Edition 取代。
- 中文:可以理解为 Quartus II 订阅版(旧版本)。
(5). Quartus II Web Edition (Legacy Version)
- 作用:
- Quartus II 的免费版本,类似于现今的 Quartus Prime Lite Edition。
- 适用于较小规模的设计和学习目的,功能有限。
- 收费情况: 免费。
- 中文:可以理解为 Quartus II 网络版(旧版本)。
我们这里用到的Quartus II Subscription Edition 属于 Quartus II 的收费版本,现在被 Quartus Prime Standard Edition 所取代。它适合需要完整设计功能和广泛设备支持的用户,并且需要购买许可证。
Second. ModelSim
ModelSim 是一款由 Mentor Graphics(现为 Siemens EDA 的一部分)提供的高性能仿真工具,主要用于验证 VHDL 和 Verilog HDL 设计。它是业界标准的 HDL 仿真器之一,被广泛应用于 IC 设计和 FPGA 开发过程中。
ModelSim是业界最优秀的HDL语言仿真软件之一,由 Mentor 公司设计推出。它的仿真环境十分友好,是业界唯一的单内核支持 VHDL 和 Verilog 混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和 单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,此外个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是 FPGA/ASIC 设计的首选仿真软件。
ModelSim 有SE、PE、LE和OEM几种不同的版本,其中SE是最高级的版本,而集成在 Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本,SE与OEM版本相比,SE版本仿真速度更快。主要特点:
- 仿真速度:提供快速的仿真性能,适合大规模设计的验证。
- 全面的语言支持:支持 VHDL、Verilog HDL 和 SystemVerilog。
- 调试工具:提供丰富的调试特性,如波形查看器、断点、变量观察等。
- 接口扩展:可以通过 PLI(Perforce Level Interface)、VPI(Verilog Plus Interface)等接口扩展功能。
- 多平台支持:可在 Windows、Linux 和 Unix 系统上运行。
简单来说 ModelSim 就是一款高性能的 HDL(Hardware Description Language,硬件描述语言)仿真工具,可以将 HDL 代码进行仿真验证,以验证代码的正确性。
Third. Visio
Microsoft Visio 是一个专业的图表绘制和流程图制作工具,由 Microsoft 开发。它允许用户创建各种图表、流程图、组织结构图、平面图等。
Visio 是 office 全家桶的一员,它的定位是专业画图软件,可实现流程图和示意图的绘制。在FPGA的学习过程中,Visio用于模块框图、波形图的绘制,目的是方便读者对RTL代码的理解和编写。
主要特点:
- 图形模板:提供大量的预定义形状和模板,方便快速创建专业图表。
- 自定义能力:用户可以根据需要自定义图表元素。
- 协作工具:支持多人在线协作编辑图表。
- 集成 Office:与 Microsoft Office 套件紧密集成,方便与其他 Office 文档共享信息。
- 版本控制:支持文件的历史版本管理,便于追踪修改历史。
简单来说 Visio 是一款强大的绘图软件,或者说是图表工具,可以用来可视化各种概念和流程,进而帮助人们更好地理解复杂的系统和逻辑。
Fourth. Notepad++
Notepad++ 是一款免费且开源的文本编辑器,它专为程序员设计,支持多种编程语言的语法高亮显示。Notepad++ 在 Windows 平台上非常受欢迎,因为它提供了丰富的功能,同时体积小巧、启动速度快。
主要特点:
- 基本编辑功能:支持基本的文字编辑功能,如复制、粘贴、查找和替换等。
- 简单界面:具有直观简单的用户界面,易于使用。
- 小体积:占用系统资源少,启动速度快。
- 文本格式:支持纯文本文件(.txt)格式,不支持复杂的文档格式(如 .doc 或 .pdf)。
- 语言支持:可以用来编写简单的代码或脚本文件,但不提供语法高亮等高级功能。
简单来说 Notepad++ 是一个非常实用的文本编辑器,特别是在编写代码时,它提供了很多便利的功能。
Fifth. 小结
软件全部安装完成后,将Quartus、ModelSim、Visio软件,进行关联使用。这些工具在不同的领域中发挥着重要作用。Quartus 和 ModelSim 专注于 FPGA 和 IC 设计的开发和验证,Visio 适用于创建各种图表和流程图,而 Notepad 则是一个简单的文本编辑器,适用于轻量级的文本处理任务。每个工具都有其独特的用途和优势,根据具体的应用场景选择合适的工具非常重要。
需要注意的是不同厂家的 FPGA 开发板,需要不同的开发工具,来配置不同的开发环境,一般情况下,各大厂都有自己的开发工具,例如:
Xilinx:Vivado,
Altera(现归Intel):Quartus。
我们这里就是以 Altera(已被Intel收购)的开发板为例,所以要使用到Quartus。不管怎样,只是开发工具不同,整体上FPGA的开发流程与设计方法相同。
三. 软件安装
First. Quartus Install
1. 首先,新建文件目录 Quartus,文件名称最好不要包括中文、空格和特殊字符。
然后,以管理员身份运行 QuartusSetuo.exe
2. 点击下一步
3. 选择我同意,点击下一步
4. 选择软件安装位置(新建的 Quartus 文件位置),点击下一步
5. 默认全选,点击下一步
6. 这里显示,准备安装,安装目录,所需磁盘空间,可用磁盘空间,点击下一步
7. 正在安装
8. 这里有三个选项,表示,
☑是否创建桌面快捷方式
☑是否立即打开Quartus软件
☑是否提供反馈信息
我们只需要第一项,然后,点击 finish ,完成安装。
9. 打开软件,这里提示,
License Steup Required 需要升级许可证
License file is not specified 未指定许可文件
Select one of the following licensing options to get started: 选择以下授权选项之一开始使用:
Select one of the following options 选择以下选项之一 ——————————————
购买订阅版的Quartus软件
☑️试用30天
联网激活
提供有效的许可证文件
我们选择 Second ,试用30天
10. 这里来到 Quartus 软件主页面,提示,没有安装器件库
You successfully installed the Quartus Ⅱ software,but did you not install any devices. Do you want to launch the device installer to add devices?
您成功安装了QuartusⅡ软件,但没有安装任何器件库。要启动设备安装程序来添加器件库吗?
11. Quartus与器件库
Quartus和器件库之间的关系非常重要,因为Quartus是用于设计、仿真和实现基于Altera/Intel FPGA和CPLD项目的集成开发环境,而器件库则是Quartus软件中用于构建这些项目的硬件模块集合。器件库是在Quartus软件中预定义的一组硬件模块,这些模块代表了FPGA/CPLD内部的基本逻辑单元和其他硬件资源。
而且器件库和 Quartus 之间存在着密切的关系,Quartus软件通过器件库中的硬件模块来实现用户的数字电路设计。我们需要了解这些模块的功能和特性,并正确地使用它们来构建高效的FPGA/CPLD设计。
①. 器件库中的组件通常包括
- 基本逻辑门:如AND门、OR门、NOT门等。
- 触发器和寄存器:如D触发器、JK触发器、SR触发器等。
- 组合逻辑单元:如加法器、乘法器、比较器等。
- 内存元件:如RAM、ROM等。
- 专用模块:针对特定FPGA/CPLD架构的模块,如PLLs(锁相环)、DSP blocks(数字信号处理块)、嵌入式存储器等。
- IP核:即知识产权核心,这些是预先设计好的复杂模块,可以作为子系统直接插入到设计中。
②. Quartus与器件库的关系
- 设计输入:设计师可以使用Quartus中的设计输入工具来调用器件库中的组件,并将它们集成到自己的设计中。
- 综合:Quartus中的综合工具会将设计转换为逻辑门级别的表示,并使用器件库中的组件来实现这些逻辑。
- 布局与布线:布局与布线工具会将设计映射到具体的FPGA/CPLD物理结构上,这个过程中会根据器件库中的信息来确定如何放置和连接各个逻辑单元。
- 仿真与调试:Quartus中的仿真工具可以利用器件库中的信息来模拟设计的行为,并通过调试工具来验证设计是否按预期工作。
③. 使用Quartus时的注意事项
- 选择正确的器件库:不同的开发工具和版本通常需要与之匹配的器件库,确保选择了与所使用的FPGA/CPLD型号兼容的器件库。
- 理解器件库中的组件:熟悉器件库中的各种组件及其功能,以便在设计中正确使用它们。
- 利用IP核:合理利用器件库中的IP核可以大大简化设计过程并提高性能。
12. 器件库安装(Quartus II 13.0.1.232)
① 桌面点击开始,这里会显示 Quartus Device 的安装程序,点击打开,
② 可以看到,器件库与开发工具 Quartus 版本相同,点击下一步,
③ 选择器件库安装位置,这里的选择的位置就是解压文件后的Device位置,点击下一步,
④ 这里将 Devices 选项勾选,点击下一步,
⑤ 之后操作步骤同上,咱们直接来到最后一步,点击 Finish 完成安装。
⑥ 关闭 Quartus 后,重新打开,如果没有提示,没有安装器件库,
则表示器件库安装成功。
13. USB Blaster 驱动安装
① USB Blaster 介绍
USB Blaster 是一种用于与 FPGA 开发板进行通信的编程接口,它通过 USB 连接计算机与 FPGA 开发板。USB Blaster 驱动是用于在计算机上安装和配置 USB Blaster 编程接口所需的软件。FPGA工程的下载、上板调试和验证都离不开USB Blaster 软件。然而我们在 Ouartus 软件的安装过程中已经将USB Blaster驱动写入安装文件,我们只需要更新一下驱动程序即可。
② USB Blaster 更新
我们打开设备管理器,在其它设备中,可以看到 USB Blaster 驱动带有黄色感叹号,需要注意的是,我们这里只有在连接了FPGA开发板并通过USB Blaster编程电缆与计算机相连之后,你才能在设备管理器中看到USB Blaster相关的驱动程序条目。这是因为USB Blaster是一种硬件设备,它需要通过物理连接才能被计算机识别。然后我们点击鼠标右键,更新驱动程序,自己选择需要更新的驱动文件位置,就是我们安装的 Quartus 软件中的文件,一般路径为 C:\FPGA\Soft\Quartus\quartus\drivers\usb-blaster ,记得勾选包括子文件夹,最后点击下一步,完成更新。
14. Quartus 开发工具,安装小结
Quartus 安装完成后,打开软件时,页面会提示需要安装器件库;
器件库安装完成后,需要更新USB Blaster。USB Blaster驱动只有在你连接FPGA 开发板时,设备管理器中才会显示,而且 USB Blaster 驱动在Ouartus软件的安装过程中已经将写入安装文件,我们只需要更新一下驱动程序就可以;
Quartus、器件库、USB Blaster全部安装更新完成后,重新启动Quartus,没有提示没有安装器件库,则表示安装成功。
Second. ModelSim Install
1. 首先,同样先新建文件目录 ModelSim,文件名称最好不要包括中文、空格和特殊字符。然后,以管理员身份运行,安装程序modelsim-10.5-se.exe
2. 然后,直接点击下一步 > 选择程序安装位置后,点击下一步 > 选择同意,点击下一步 > 正在安装 > 这里问你是否创建桌面快捷方式?(是或否)这里依次会有多个提示 >
随后,这里问你是否将ModelSim添加到面板?(是或否)>
随后,再次提示你是否添加密钥驱动?(是或否)>
最后,提示你是否要重启电脑?(这里选择否)> 最后,点击完成。
3. 我们回到桌面,可以看到 ModelSim 的桌面图标,表示 ModelSim 安装成功。然后,打开软件,会直接报错
这里的报错信息表示,ModelSim 没有正版许可证,ModelSim的使用必须购买正版的许可证。
Fatal License Error
Unable to checkout a license. Make sure your license file environment variable (e.g., LM LICENSE FILE)
is set correctly and then run 'lmutil lmdiag' to diagnose the problem.
致命许可证错误
无法签出许可证。确保您的许可证文件环境变量(例如,LM许可证文件)
正确设置,然后运行' lmultildiag '来诊断问题。
Third. Visio Install
1. 首先,同样先新建文件目录 Visio,文件名称最好不要包括中文、空格和特殊字符。然后,以管理员身份运行,安装程序 setup.exe
2. 选中我接受此协议条款,点击继续 > 选择自定义,选择文件安装位置,点击立即安装
正在安装,稍等一会,然后,安装完成, 点击关闭。
3. 回到桌面,点击新建 Microsoft Visio 绘图,
然后,打开文件,这里可以看到,提示我们选择绘图类型,到此软件工具安装完成。
4. 配置 Visio 波形工具箱;这里直接复制工具箱中的文件,放在,文档 > 我的文件里面。这里的 .vss文件 就是关于数字电路的各种图形,方便我们后续使用。配置完成以后,可以在Visio文件中选中使用。
这里我们在新建的 Visio 文件中测试一下;首先,我们在使用之前,必须在 更多形状 > 我的形状 > 子文件中,选中复制过来的图形文件,最后就可以自行使用,请看
Fourth. Notepad++ Install
Ⅰ. Notepad++ 安装
1. 首先,同样先新建文件目录 Notepad++,文件名称最好不要包括中文、空格和特殊字符。然后,以管理员身份运行,安装程序 setup.exe
2. 选择中文简体 > 点击下一步 > 点击我接受 > 选择软件安装位置,点击下一步 > 默认安装组件,不用动,点击下一步 > 选择创建桌面快捷方式,点击安装 > 点击完成,安装完成
Ⅱ. Notepad++,默认设置
1. 首先,打开Notepad++ > 点击设置 > 首选项 > 文件关联 > customize > 输入.v,点击箭头。将Notepad设置为.v文件的默认打开方式
2. 同样,打开Notepad++ > 点击设置 > 首选项 > 新建 > Windows > UTF-8。这里是对Notepad++文件格式和编码进行规划,防止Quartus软件,打开.v文件时,出现中文乱码情况
3. Notepad++ > 点击设置 > 首选项 > 语言 > 选中替换为空格。这里的配置是防止其它编辑器打开.v文件时,出现格式混乱
4. 这里的配置是方便以后代码的编写
①Notepad++ > 点击设置 > 首选项 > 自动完成 > 字符数改成3。
②Notepad++ > 点击设置 > 首选项 > 备份> 取消备份选中。
③Notepad++ > 点击设置 > 首选项 > 其它 > 取消自动更新。
5. Notepad++ 主题设置。设置 > 语言格式设置 > 选择主题更换主题颜色
Fifth. 软件关联
1. 开发软件与仿真软件的关联,Quartus和ModelSim的关联
首先,打开Quartus II,找到Tooks > Options >
General > EDA Tool Options > 点击ModelSim后面的三个点,打开选择文件 >
找到ModelSim文件,选中win64后,选择文件夹,完成Quartus 与 ModelSim的关联。
2. 开发软件与代码编辑器的关联,Quartus和NotePad++的关联
还是同样,首先打开Quartus II,找到Tooks > Options > Preferred Text Editer > Text editor,选择文本编辑器NotePad++ >
选择NotePad++应用的启动路径 > 点击打开 > 最后,点击OK,完成关联。
这里如果选择的是其它类型的代码编辑器,只需选择对应的应用程序即可。
四. FPGA和PLD与CPLD
上文提到的 PLD、CPLD 和 FPGA 之间有什么关系,具体详细,请看以下
1. FPGA、PLD、CPLD之间的关系,如图所示
2. PLD (Programmable Logic Device)
(1)PLD介绍
PLD 是一种基本的可编程逻辑器件类别,它包括了一系列早期的技术,如 PAL(Programmable Array Logic)、GAL(GALlable Array Logic)等。这些器件通常具有固定的架构,并且可以通过编程来实现简单的逻辑功能。
(2)PLD包括的类型
- PAL (Programmable Array Logic):最早期的可编程逻辑器件之一,它具有固定的与阵列和可编程的或阵列。
- GAL (GALlable Array Logic):基于 PAL 的改进版本,增加了更多功能,如可编程延时和可重编程能力。
- CPLD (Complex Programmable Logic Device):一种更加复杂的可编程逻辑器件,具有更高的集成度和更复杂的逻辑功能。
- FPGA (Field-Programmable Gate Array):虽然通常不被直接归类为 PLD,但它也是一种可编程逻辑器件,具有高度可编程的逻辑和互连资源。
3. CPLD (Complex Programmable Logic Device)
CPLD 是一种更加复杂和高级的可编程逻辑器件,它可以实现比 PLD 更加复杂的逻辑功能。与 PLD 相比,CPLD 具有更高的集成度和更多的可编程资源。CPLD 是 PLD 的一个子类,属于 PLD 的范畴之内。CPLD 与早期的 PLD,如 PAL 和 GAL 相比,具有更高的集成度和更复杂的可编程逻辑资源。CPLD 通常由多个可编程逻辑块组成,每个逻辑块内可以实现复杂的组合逻辑和时序逻辑功能。
4. FPGA与PLD和CPLD,层级关系
(1)FPGA 与 PLD
- 答案:可以认为 FPGA 属于是 PLD 的一种。
- 解释:PLD 是一个广义的术语,指的是所有可编程逻辑器件。由于 FPGA 也是一种可编程逻辑器件,因此它属于 PLD 的范畴。但是,FPGA 的结构和功能通常比传统的 PLD 更加复杂和灵活。
(2)FPGA 与 CPLD
- 答案:FPGA 不属于 CPLD。
- 解释:尽管 FPGA 和 CPLD 都是可编程逻辑器件,并且都具有一定的复杂性,但它们在结构和编程方式上有显著的不同。CPLD 通常具有规则的结构,由多个宏单元组成,而 FPGA 则具有高度可编程的逻辑和互连结构,可以实现更复杂的逻辑功能。
(3)总结
- FPGA 属于是 PLD:从广义的角度来看,FPGA 属于是 PLD 的一种,因为它是一种可编程逻辑器件。
- FPGA 不属于 CPLD:FPGA 和 CPLD 虽然都属于 PLD 的范畴,但它们在结构和功能上存在差异,FPGA 通常比 CPLD 更加复杂和灵活。
五. 开发板选择
开发板 | FPGA芯片厂商 | 开发软件 | 下载器 | 上手程度 |
---|---|---|---|---|
征途 | Intel(Altera) | Quartus II | USB-Blaster | 入门级 |
踏浪 | Xilinx | ISE | Xilinx下载器 | 入门级 |
升腾 | Xilinx | Vivado | Xilinx下载器 | 进阶级 |
凌云 | Xilinx | Vivado | Xilinx下载器 | 进阶级 |
紫光PGL22G | 紫光同创 | PDS | 紫光FPGA下载器 | 入门级 |
紫光PG2L100H | 紫光同创 | PDS | 紫光FPGA下载器 | 进阶级 |