玩转Zynq可以使用Vivado创建一个FPGA工程。
什么是FPGA
前言
自FPGA诞生以来,FPGA(现场可编程门阵列)就引起了人们的关注。在1980年代中期,Ross Freeman和他的同事从Zilog购买了该技术,并创建了Xilinx,目标是ASIC仿真和教育市场。同时Altera以类似技术为核心成立。
直至今日,AMD 350亿美元(约2230亿人民币)收购赛灵思(Xilinx)则马上就要大功告成。原计划2021年底获得所有批准,但目前尚未完成,预计2022年第一季度完成交易。而早在2015年因特尔便宣布以167亿美元收购Altera。
Xilinx与Altera这两家公司共占有近90%的市场份额,专利达到6000余项之多,如此之多的技术专利构成的技术壁垒高不可攀。而Xilinx始终保持着全球FPGA的霸主地位,难以撼动!
一、FPGA是什么?
FPGA到底是什么?简单来说,就是一块可由工程师反复编程的逻辑器件,本体是一种数字集成电路,一个可以通过编程来改变内部结构的芯片。
FPGA本质也是一种芯片。
相信电子专业的同学都知道ASIC,也就是专用集成电路,ASIC一旦被设计好,其固定结构已经成型,后期将无法更改。而FPGA正是可以通过编程来改变内部结构,可以对后期的升级带来极大的便利。同样具备编程特点的器件如ARM、DSP等,这两者都是串行执行的,大家熟悉的有51单片机,stm32单片机都是串行执行。而FPGA最本质的特点就是为硬件而设计,我们对其编程改变的是其内部结构。并且FPGA是并行执行,FPGA的最大优势就在于其并行计算的特性。
二、FPGA基本结构
FPGA芯片主要由6部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。
1、可编程逻辑块
可编程构造表现为可编程逻辑块阵列,每个可编程模块都包含有许多数字功能,如查找表(LUT)、复用器、触发器。触发器可以被配置(编程)为寄存器或锁存器;复用器可以被配置为选择一个到逻辑块的输入或LUT的输出;LUT可以被配置为代表任何所要求的逻辑功能。
2、可编程输入/输出单元IOE
Altera器件IOE结构
Altera器件的输入输出结构:可配置成三态、输入/输出、双向IO
Altera器件中cyclone系列中的IOE结构是基本的输入、输出、使能的触发器结构。
3、嵌入式块RAM(BRAM)
大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。
FPGA 芯片内有两种存储器资源:一种叫 block ram, 另一种是由 LUT 配置成的内部存储器(也就是分布式 ram )。 Block ram 由一定数量固定大小的存储块构成的,使用 BLOCK RAM 资源不占用额外的逻辑资源,并且速度快。但是使用的时候消耗的 BLOCK RAM 资源是其块大小的整数倍。
4、底层内嵌功能单元
内嵌功能模块主要是指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核
除此之外,FPGA内部还集成了一些其它资源:(1)FPGA片上存储器、(2)乘法累积模块,(3)片外存储器控制器,(4)高速串行收发器。
三、FPGA的应用
FPGA在数据采集和接口逻辑领域、电平接口领域、高性能数字信号处理领域都有着广泛的应用。
另外FPGA在人工智能时代也具有独特优势。FPGA可以做人脸识别、车牌识别、深度学习等前沿技术。
总结
FPGA偏硬件,用语言(verilog)或者图形(vhdl)描述硬件电路,适合做底层通信时快速的硬协议。个人感觉,今后国家的大趋势应该是恶补底层建筑,应用范围比较广。而且自学难度大,适合投入整个本科或研究生阶段去学。
FPGA在嵌入式领域的应用,只是FPGA广阔应用中很小的一部分。作为一名学生,FPGA更多的是作为载体,用来帮助你来学习和理解更多专业知识,并且提高自己的动手能力和技术水平。从这个角度来看,FPGA和MCU、DSP什么的并没有本质区别。
————————————————
https://blog.csdn.net/qq_66213716/article/details/122363458
https://blog.csdn.net/qq_45922361/article/details/103628480