FPGA开发:初识FPGA

FPGA是什么?

FPGA的全称是现场可编程门阵列 (Field Programmable Gate Array),一种以数字电路为主的集成芯片,属于可编程逻辑器件PLD的一种。简单来说,就是能用代码编程,直接修改FPGA芯片中数字电路的逻辑功能。

那这样就怎么了呢?因为早期芯片生产出来后,电路就固定好不会改变了,于是功能也就固定了,这种芯片就是ASIC(专用集成电路,Application Specific Integrated Circuit)。

而要想改变电路结构就需要重新设计芯片、重新"流片"、测试等,整个过程非常的 耗钱 耗时间。那突然间FPGA横空出世,支持通过修改软件代码来改变硬件电路结构,是不是就非常具有开创性!😎


半定制电路

  • 电路分类

集成电路 就是我们常说的IC,它就是把一定数量的电子元件(电容、电阻、晶体管、二极管、MOS管等)以及这些元件之间的连线通过半导体工艺把它们集成到一起,使它们具有特定的功能。

按照应用领域,可将集成电路分为通用集成电路专用集成电路。这两者的区别,可理解为前者为大众版,后者为私人定制版。

专业集成电路又可向下分,分为全定制电路半定制电路。区别为用户在使用过程中能否更改内部电路(能更改即为半定制)。而FPGA就是属于半定制电路。


发展历程

1970年:PLD 是第一款进入人们视野的可编程逻辑器件,采用PROM结构,输入接口少。

1978年:可编程逻辑阵列PAL 和通用阵列逻辑GAL采用了反熔丝技术、EPROM和EEPROM技术,结构功能仍然相对简单。

1984年:Altera公司于发明了基于CMOS和EPROM技术相结合的CPLD,可以胜任复杂性较高、速度也较快的逻辑功能。

1985年:Xilinx创始人之一Ross Freeman发明了现场可编程门阵列FPGA,开启了可编程逻辑的"高速"发展时代。Freeman先生发明的FPGA是一块全部由"开放式门"组成的计算机芯片。可灵活编程,添加各种新功能,以满足不断发展的协议标准或规范,甚至可以在设计的最后阶段对它进行修改和升级。


开发环境搭建

FPGA的开发环境主要包括:Quartus II开发软件、ModelSim仿真软件、Visio绘图软件、NotePad++代码编辑器的安装。

  • Quartus II开发软件是对FPGA代码进行编译,通过综合、布局布线将FPGA代码转化为硬件电路。可实现程序的下载以及固化。
  • ModelSim仿真软件主要是对编写的FPGA代码进行仿真验证,验证代码的正确性。
  • Visio绘图软件主要是对我们的程序框图以及波形图进行绘制,方便我们对模块功能的理解以及代码的编写。
  • NotePad++代码编辑器就是实现FPGA代码的编写。

1、Quartus II开发软件

  • 软件简介

Quartus II是Altera公司(已被Intel收购)开发的综合性CPLD/FPGA开发软件,支持原理图、VHDL、Verilog HDL以及ADHL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

**【注意】**使用Altera公司开发的FPGA或CPLD芯片,就得使用其开发的Quartus II软件。

  • USB Blaster

USB Blaster通过USB接口将计算机与FPGA开发板连接起来,使得工程师能够使用计算机上的设计工具(如Quartus II或Intel Quartus Prime IDE)对FPGA进行编程、调试和硬件验证。

驱动程序负责在计算机和USB Blaster硬件设备之间建立稳定、高效的数据传输通道,确保设计文件能够顺利下载到FPGA板卡上。且USB Blaster支持多种工作电压,包括1.8V、2.5V、3.3V和5.0V,满足不同FPGA和CPLD器件的编程需求。

**【注意】**通常在Quartus II软件安装的过程中就已经将USB Blaster驱动写入安装文件,我们只需要更新一些驱动文件即可。

  • 器件库

Quartus II器件库是一个包含多种电子元器件和模型的集合,专为数字电路设计和FPGA(现场可编程门阵列)开发而设计。这个库是Quartus II软件的重要组成部分,为设计师提供了丰富的资源,以便他们能够快速、高效地创建和验证电路设计。

Quartus II器件库包含多种类型的电子元器件和模型,包括但不限于:

  • 逻辑元件:如逻辑门(与门、或门、非门等)、触发器(D触发器、JK触发器等)、计数器等。
  • 算术电路:用于执行算术运算的电路,如加法器、乘法器等。
  • 存储元件:如RAM(随机存取存储器)、ROM(只读存储器)等,用于存储数据和指令。
  • I/O接口:包括各种输入输出接口,如UART、SPI、I2C等,用于与外部设备通信。
  • 时钟电路:用于生成和管理时钟信号的电路,是时序逻辑电路的重要组成部分。
  • 复合器件:集成了多个功能的复杂器件模型。

2、ModelSim仿真软件

ModelSim是一款由Mentor Graphics公司(现为Siemens EDA的一部分)开发的高性能、交互式和可扩展的硬件描述语言(HDL)仿真工具。它以其强大的功能和灵活的调试选项,在数字电路设计和验证领域得到了广泛应用。

ModelSim提供多种版本,包括SE(标准版)、PE(专业版)、LE(轻量级版)和OEM(原始设备制造商版)等。不同版本在功能和性能上有所差异,用户可以根据自己的需求选择合适的版本。同时,ModelSim支持多种操作系统平台,如Windows、Linux和UNIX等。

**【注意】**其中的OEM版本已经集成在Quartus II软件中,但单独下载SE版本能比OEM版本仿真更快。


3、Visio绘图软件

Visio软件是office全家桶的一员,它的定位是专业画图软件,可实现流程图和示意图的绘制。在FPGA学习中,Visio用于模块框图、波形图的绘制,目的是方便读者对RTL代码的理解和编写。


4、NotePad++代码编辑器

NotePad++软件是Windows操作系统下的一套文本编辑器,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。

其支持多种编程和标记语言的语法高亮,如C/C++、Java、JavaScript、Python、HTML、CSS等,提高代码的可读性和可维护性。同时支持语法折叠功能,可以折叠代码块,使代码结构更加清晰。


相关推荐
内有小猪卖17 分钟前
时序约束 记录
fpga开发
Cao1234567893214 小时前
FPGA时钟设计
fpga开发
JNTeresa7 小时前
锁存器知识点详解
fpga开发
Cao12345678932110 小时前
FPGA基础之基础语法
fpga开发
一大Cpp10 小时前
通过Quartus II实现Nios II编程
fpga开发
7yewh11 小时前
Verilog 语法 (二)
fpga开发
边缘计算社区1 天前
FPGA与边缘AI:计算革命的前沿力量
人工智能·fpga开发
S&Z34631 天前
[官方IP] Shift RAM
网络协议·tcp/ip·fpga开发
S&Z34631 天前
[FPGA Video IP] Video Processing Subsystem
网络协议·tcp/ip·fpga开发·video
FPGA_Linuxer1 天前
FPGA 100G UDP纯逻辑协议栈
网络协议·fpga开发·udp