编辑整理:整理来源:搜狗问问,浏览量:62,时间:2022-09-11 20:07:01
数据采集逻辑分析,数据采集 数据处理 数据分析,数据采集逻辑分析的四个步骤
FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点
FPGA设计不是简单的芯片研究,主要是利用 FPGA 的模式进行其他行业产品的设计。 与 ASIC 不同,
FPGA在通信行业的应用比较广泛。通过对全球FPGA产品市场以及相关供应商的分析,结合当前我国的实际情况以及国内领先的FPGA产品可以发现相关技术在未来的发展方向,对我国科技水平的全面提高具有非常重要的推动作用。 [2]
与传统模式的芯片设计进行对比,FPGA 芯片并非单纯局限于研究以及设计芯片,而是针对较多领域产品都能借助特定芯片模型予以优化设计。从芯片器件的角度讲,FPGA 本身构成 了半定制电路中的典型集成电路,其中含有数字管理模块、内嵌式单元、输出单元以及输入单元等。在此基础上,关于FPGA芯片有必要全面着眼于综合性的芯片优化设计,通过改进当前的芯片设计来增设全新的芯片功能,据此实现了芯片整体构造的简化与性能提升。 [3]
基本结构
语音
FPGA 器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。FPGA 的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元。由于FPGA具有布线资源丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。FPGA的设计流程包括算法设计、代码仿真以及设计、板机调试,设计者以及实际需求建立算法架构,利用EDA建立设计方案或HD编写设计代码,通过代码仿真保证设计方案符合实际要求,最后进行板级调试,利用配置电路将相关文件下载至FPGA芯片中,验证实际运行效果
工作原理
语音
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块
CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。 [
芯片设计
语音
相比于其他种类的芯片设计,关于 FPGA芯片通常需要设置较高门槛并且拟定严格性较强的基本设计流程。具体在设计时,应当紧密结合 FPGA 的有关原理图,据此实现了规模较大的专门芯片设计。通过运用Matlab以及C语言的特殊设计算法,应当可以实现全方位的顺利转化,从而确保其符合当前的主流芯片设计思路。在此前提下,如果选择了上述设计思路那么通常需要着眼于有序整合各类元器件以及相应的设计语言,据此保证了可用性与可读性较强的芯片程序设计。运用 FPGA可以实现板机调试、代码仿真与其他有关的设计操作,确保当前的代码编写方式以及设计方案都能符合特定的设计需求。 除此以外,关于设计算法应当将合理性置于首要性的位置, 据此实现了优化的项目设计效果,并且优化了芯片运行的实效性。因此作为设计人员来讲,首先就是要构建特定的算法模块, 以此来完成与之有关的芯片代码设计。这是由于预先设计代码有助保证算法可靠性,对于整体上的芯片设计效果也能予以显著优化。在全面完成板机调试以及仿真测试的前提下,应当可以在根源上缩短设计整个芯片消耗的周期,同时也致力于优化当前现存的硬件整体结构。例如在涉及到开发非标准的某些硬件接口时,通常都会用到上述的新产品设计模式。 [3]
FPGA设计的主要难点是熟悉硬件系统以及内部资源,保证设计的语言能够实现元器件之间的有效配合,提高程序的可读性以及利用率。这也对设计人员提出了比较高的要求,需要经过多个项目的经验积累才可以达到相关的要求。 [3]
在算法设计时需要重点考虑合理性,保证项目最终完成的效果,依据项目的实际情况提出解决问题的方案,提高FPGA的运行效率。确定算法后应当合理构建模块,方便后期进行代码设计。在代码设计时可以利用预先设计好的代码,提高工作效率,增强可靠性。编写测试平台,进行代码的仿真测试和班级调试,完成整个设计过程。FPGA同ASIC不同,开发的周期比较短,可以结合设计要求改变硬件的结构,在通信协议不成熟的情况下可以帮助企业迅速推出新产品,满足非标准接口开发的需求
优缺点语音
优点FPGA的优点如下: [5]
(1) FPGA由逻辑单元、RAM、乘法器等硬件资源组成,通过将这些硬件资源合理组织,可实现乘法器、寄存器、地址发生器等硬件电路。 [5]
(2) FPGA可通过使用框图或者Verilog HDL来设计,从简单的门电路到FIR或者FFT电路。 [5]
(3) FPGA可无限地重新编程,加载一个新的设计方案只需几百毫秒,利用重配置可以减少硬件的开销。 [5]
(4) FPGA的工作频率由FPGA芯片以及设计决定,可以通过修改设计或者更换更快的芯片来达到某些苛刻的要求(当然,工作频率也不是无限制的可以提高,而是受当前的IC工艺等因素制约)。 [5]
缺点FPGA的缺点如下: [5]
(1) FPGA的所有功能均依靠硬件实现,无法实现分支条件跳转等操作。 [5]
(2) FPGA只能实现定点运算。 [5]
总结:FPGA依靠硬件来实现所有的功能,速度上可以和专用芯片相比,但设计的灵活度与通用处理器相比有很大的差距。 [5]
设计语言及平台语音
可编程逻辑器件是通过EDA技术将电子应用系统的既定功能和技术指标具体实现的硬件载体,FPGA作为实现这一途径的主流器件之一,具有直接面向用户,灵活性和通用性极大,使用方便,硬 件测试和实现快捷等特点。 [6]
硬件描述语言(HDL)是一种用来设计数字逻辑系统和描述数字电路的语言,常用的主要有VHDL、Verilog HDL、System Verilog 和 System C。 [6]
作为一种全方位的硬件描述语言,超高速集成电路硬件描述语言(VHDL)具有与具体硬件电路无关、与设计平台无关的特性,具有宽范围描述能力、不依赖于特定的器件、可将复杂控制逻辑的设计用严谨简洁的代码进行描述等优点,得到众多EDA公司的支持,在电子设计领域得到了广泛应用。 [6]
VHDL是一种用于电路设计的高级语言,与其他硬件描述语言相比,其具有语言简洁、灵活性强、不依赖于器件设计等特点,使其成为EDA技术通用的硬件描述语言,使EDA技术更便于设计者掌握。 [7]
Verilog HDL是广泛应用的硬件描述语言,可以用于硬件设计流 程的建模、综合、模拟等多个阶段。 [7]
Verilog HDL 优点:类似C语言,上手容易,灵活。大小写敏感。在写激励和建模方面有优势。缺点:很多错误在编译的时候不能被发现。 [7]
VHDL 优点:语法严谨,层次结构清晰。缺点:熟悉时间长,不够灵活。 [7]
Quartus_Ⅱ软件是由Altera公司开发的完整多平台设计环境,能满足各种FPGA,CPLD的设计需要,是片上可编程系统设计的综合性环境。 [8]
Vivado设计套件,是FPGA厂商赛灵思公司(Xilinx)2012年发布的集成设计环境。包括高度集成的设计环境和新一代从系统到IC级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。Xilinx Vivado设计套件中提供了FIFO IP核,可方便应用于设计中。 [9]
行业应用语音
视频分割系统近年来,大型的总控系统得到了日益广泛的应用,与之相关的视频分割技术水平也在逐步提高,该技术是把用多屏拼接显示的方式来显示一路视频信号,在一些需要使用大屏幕显示的场景应用广泛。 [2]
随着技术水平的进步, 视频分割技术逐步成熟,满足了人们对于清晰视频图像的基本需求、 FPGA 芯片硬件结构比较特殊,可以利用事先编辑的逻辑结构文件调整内部结构,利用约束的文件来调整不同逻辑单元的连接和位置,妥善处理好数据线路径,其自身具有的灵活性和适应性方便用户的开发和应用。在处理视频信号时,FPGA芯片可以充分利用自身的速度和结构优势,实现兵乓技术和流水线技术。在对外连接的过程中,芯片采用数据并行连接的方式,使图像信息的位宽拓宽,利用内部的逻辑功能提高图像处理的速度。通过高速缓存结构以及时钟管理实现对图像处理以及其他设备的控制。在整体的设计结构中,FPGA芯片处于核心位置,复杂数据的插值处理以及提取和存储,还起到总体控制的作用,保证系统的稳定运行。另外,视频信息处理与其他数据处理不同,需要芯片具有特殊的逻辑单元以及RAM或者FIFO单元,保证提高足够的数据传输速度。 [2]
数据延迟器和存储设计FPGA具有可编程的延迟数字单元,在通信系统和各类电子设备中有着比较广泛的应用,比如同步通信系统,时间数值化系统等,主要的设计方法包括数控延迟线法,存储器法,计数器法等,其中存储器法主要是利用 FPGA的RAM或者FIFO实现的。 [2]
利用 FPGA 对SD卡相关数据进行读写可以依据具体算法的需求低FPGA芯片开展编程,更加实际情况的变化实现读写操作的不断更新。这种模式之下只需要利用原有的芯片便可以实现对SD卡的有效控制,明显降低了系统的成本。 [2]
通信行业通常情况下,通信行业综合考虑成本以及运营等各方面的因素,在终端设备数量比较多的位置,FPGA的用量比较大,基站最适合使用FPGA,基站几乎每一块板子都需要使用FPGA芯片,而且型号比较高端,可以处理复杂的物理协议,实现逻辑控制。同时,由于基站的逻辑链路层,物理层的协议部分需要定期更新,也比较适合采用FPGA技术。目前,FPGA主要在通信行业的建设初期和中期应用,后期逐步被ASIC替代。 [2]
其它应用FPGA在安防,工业等领域也有着比较广泛的应用,比如安防领域的视频编码解码等协议在前端数据采集和逻辑控制的过程中可以利用FPGA处理。工业领域主要采用规模较小的FPGA,满足灵活性的需求。另外,由于 FPGA具有比较高的可靠性,因此在军工以及航天领域也有比较广泛的应用。未来,随着技术的不断完善,相关工艺将会完成升级改造, 在诸多新型行业比如大数据等,FPGA将会有更为广泛的应用前景。伴随5G网络的建设, 初期会大量应用FPGA,人工智能等新型的领域也会更多的用到FPGA。 [2]
什么是FPGA,FPGA与MCU的区别是什么?
以你每天的晚餐为例,MCU就像一个能力非常强的超人,它一个人就能很好的完成的任务,比如买菜、洗菜、切菜、做饭。而FPGA则像很多普通人的一个集合,买菜由配菜员负责,洗菜由洗菜工负责,切菜由切菜工负责,做饭由大厨师负责。
虽然结果都是你按时享受到了丰盛的晚餐,但MCU和FPGA的处理方法确有不同。
1. MCU简介上图为MCU的简略架构,它将ROM、RAM、CPU、I/O集合在同一个芯片中,为不同的应用场合做不同组合控制。
CPU最显著的特征便是“顺序执行”,这很符合人类大脑的思考方式,而总线就像人类的脊髓一样,CPU通过总线与外界进行交互,收集外界信息,或者发出某项行动指令。
2. FPGA简介上述为lattice的一款FPGA架构,你可以把它想象成一块放满电子元件的硬件电路板,图中“电路板”上的元件有IIC和SPI硬核接口“器件”,有NVCM程序存储“器件”,有RAM数据存储“器件”,还有最小单元的LUT(查找表)器件。
一般FPGA工程师会使用硬件描述语言Verilog或者VHDL对FPGA进行“编程”,之后,再经过厂家提供的FPGA开发工具(Diamond或Radiant)的综合、布局、布线,会产生bit文件或bin文件。
如果工程师将最终产生的bit文件或bin文件下载到FPGA中,就相当于一位硬件工程师,在FPGA芯片这块已经放置了“元件”的“电路板”上,进行了布线操作。(也就是把毫无关联的与器件,用铜线连接起来)
下载程序后的FPGA,我们就不能简单称之为“电路板”了。举个例子,FPGA实现的功能是SPI转并口,那么这块FPGA就可以称为“spi接口转换板”。
当然,FPGA和“电路板”终究是不同的,FPGA可以进行重复编程,相当于一块可以反复布线的电路板。
2.1 FPGA优缺点FPGA优点:
(1) FPGA由逻辑单元、RAM、乘法器等硬件资源组成,通过将这些硬件资源合理组织,可实现乘法器、寄存器、地址发生器等硬件电路。
(2) FPGA可通过使用框图或者Verilog HDL来设计,从简单的门电路到FIR或者FFT电路。
(3) FPGA可无限地重新编程,加载一个新的设计方案只需几百毫秒,利用重配置可以减少硬件的开销。
(4) FPGA的工作频率由FPGA芯片以及设计决定,可以通过修改设计或者更换更快的芯片来达到某些苛刻的要求(当然,工作频率也不是无限制的可以提高,而是受当前的IC工艺等因素制约)。
FPGA缺点:
(1) FPGA的所有功能均依靠硬件实现,无法实现分支条件跳转等操作。
(2) FPGA只能实现定点运算。
2.2 FPGA厂家简介FPGA行业比较出名的是Xilinx,其次Altera,不过Altera目前已被Intel收购,上述两家的FPGA大都用于工业、通讯行业,而且内部逻辑非常大,成本也比较高。
Lattice FPGA则把自己定位在中低端(逻辑资源小)以及消费行业,主打低成本、低功耗,高性价比,IPhone就曾用过lattice的一款ICE40芯片。