FPGA开发:初识FPGA

news2024/12/23 6:03:13

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等,提高代码的可读性和可维护性。同时支持语法折叠功能,可以折叠代码块,使代码结构更加清晰。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2103564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OceanBase 关于 place_group_by HINT的使用

PLACE_GROUP_BY Hint 表示在多表关联时,如果满足单表查询后直接进行group by 的情形下,在跟其它表进行关联统计,减少表内部联接。 NO_PLACE_GROUP_BY Hint 表示在多表关联时,在关联后才对结果进行group by。 使用place_group_by …

二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)

一、目的 由于部分数据类型频率为1s,从而数据规模特别大,因此完整的JSON放在Hive中解析起来,尤其是在单机环境下,效率特别慢,无法满足业务需求。 而Flume的拦截器并不能很好的转换数据,因为只能采用Java方…

启动.cmd文件一闪而过,看不到报错信息

在window的环境中,双击.cmd文件,有报错信息,但是一闪而过 例如启动zookeeper时,没有zoo.cfg文件会报错,但是启动一闪而过,你看不到报错信息 有文本工具编辑cmd文件,在最后添加 pause 再次启…

Linux 之 lsblk 【可用块的设备信息】

功能介绍 在 Linux 系统中,“lsblk”(list block devices)命令用于列出所有可用的块设备信息 应用场景 查看存储设备信息:“lsblk” 命令可以帮助你快速了解系统中的存储设备,包括硬盘、固态硬盘、U 盘等。你可以查…

9_4_QTextEdit

QTextEdit //核心属性//获取文本 toPlainText(); toHtml(); toMarkdown(); //输入框为空时的提示功能 placeHolderText(); //只读 readOnly();//定义文本光标 QTextcursor cursorcursor.position(); cursor.selectedText();//核心信号//文本改变 textChanged(); //选中范围 se…

【黑马点评】附近商户

需求 选择商铺类型后,按照距离当前用户所在位置从近到远的顺序,分页展示该类型的所有商铺。 接口: 参数: typeId:商铺类型current:页码x:经度y:纬度 返回值:所有typeId…

LVS 负载均衡集群指南

1. 引言 LVS (Linux Virtual Server) 虚拟服务器,是 Linux 内核中实现的负载均衡技术,以其高性能、高可靠性和高可用性而闻名。LVS 工作在 TCP/IP 协议栈的第四层 (传输层),通过将流量分配到多个后端服务器,提高系统性能、可用性…

硬件工程师笔试面试知识器件篇——电阻

目录 1、电阻 1.1 基础 电阻原理图 阻实物图 1.1.1、定义 1.1.2、工作原理 1.1.3、类型 1.1.4、材料 1.1.5、标记 1.1.6、应用 1.1.7、特性 1.1.8、测量 1.1.9、计算 1.1.10、颜色编码 1.1.11、公差 1.1.12、功率 1.1.13、重要性 1.2、相关问题 1.2.1、电阻…

数组和指针 笔试题(1)

目录 0.复习 1.笔试题1 2.笔试题2 3.笔试题3 4.笔试题4 5.笔试题5 0.复习 在做笔试题之前,我们首先复习一下数组名的理解 数组名的所有情况: 1.&数组名,取出的是整个数组的地址 2.sizeof(数组名)&#x…

LLM常见问题(Attention 优化部分)

1. 传统 Attention 存在哪些问题? 传统的 Attention 机制忽略了源端或目标端句子中词与词之间的依赖关系。传统的 Attention 机制过度依赖 Encoder-Decoder 架构上。传统的 Attention 机制依赖于Decoder的循环解码器,所以依赖于 RNN,LSTM 等循环结构。传…

【Transformer】Tokenization

文章目录 直观理解分词方式词粒度-Word字粒度-Character子词粒度-Subword(目前最常使用) 词表大小的影响参考资料 直观理解 在理解Transformer或者大模型对输入进行tokenize之前,需要理解什么是token? 理工科的兄弟姐妹们应该都…

027集——goto语句用法——C#学习笔记

goto语句可指定代码的跳行运行: 实例如下: 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Security.Policy; using System.Text; using System.Threading.Tasks;namespace ConsoleApp2 { //…

采用基于企业服务总线(ESB)的面向服务架构(SOA)集成方案实现统一管理维护的银行信息系统

目录 案例 【题目】 【问题 1】(7 分) 【问题 2】(12 分) 【问题 3】(6 分) 【答案】 【问题 1】解析 【问题 2】解析 【问题 3】解析 相关推荐 案例 阅读以下关于 Web 系统设计的叙述,在答题纸上回答问题 1 至问题 3。 【题目】 某银行拟将以分行为主体…

是噱头还是低成本新宠?加州大学用视觉追踪实现跨平台的机器手全掌控?

导读: 在当今科技飞速发展的时代,机器人的应用越来越广泛。从工业生产到医疗保健,从物流运输到家庭服务,机器人正在逐渐改变我们的生活方式。而机器人的有效操作和控制,离不开高效的遥操作系统。今天,我们要…

OHIF Viewer (3.9版本最新版) 适配移动端——最后一篇

根据一些调用资料和尝试,OHIF 的底层用的是Cornerstonejs ,这个是基于web端写的,如果说写在微信小程序里,确实有很多报错, 第一个问题就是 npm下载的依赖, 一、运行环境差异 微信小程序的运行环境与传统的 Node.js 环境有很大不同。小程序在微信客户端中运行,有严格的…

传输大咖38 | 如何应对汽车行业内外网文件交换挑战?

在数字化浪潮的推动下,汽车行业正经历着前所未有的变革。随着智能网联汽车的兴起,内外网文件的安全交换成为了一个亟待解决的问题。本文将探讨汽车行业在内外网文件交换中遇到的难题,并介绍镭速如何为这些问题提供有效的解决方案。 跨网文件传…

js封装上传组件 点击拖拽上传

效果图 上传组件代码 <template><div id"appp"><label for"fileInput" class"upload" dragover"fileDragover" drop"fileDrop" v-if"log ! checkLog"><!-- <div class"jia" …

CTFHub技能树-备份文件下载-.DS_Store

目录 方法一&#xff1a;直接访问/.DS_Store文件 方法二&#xff1a;使用Python-dsstore工具解析.Dsstore文件 方法三&#xff1a;直接使用crul访问/./.DS_Store文件 .DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单…

中西结合治疗帕金森怎么样

中西结合治疗帕金森怎么样 中西结合治疗帕金森病是一种综合运用中医和西医治疗方法的策略&#xff0c;旨在通过各自的优势来改善患者的症状、延缓病情进展&#xff0c;并提高生活质量。西医治疗帕金森病主要依赖药物治疗&#xff0c;如左旋多巴和多巴胺受体激动剂&#xff0c;…

基于web知识库管理系统设计与实现

第二章 系统分析 2.1 知识库管理系统可行性分析 可行性分析对系统的开发至关重要&#xff0c;可以大幅减少不必要的损失&#xff0c;保证系统开发的顺利进行。因此要对系统进行技术可行性、经济可行性两方面的系统可行性分析。 2.1.1技术可行性 随着网络技术日新月异的高速…