《电子技术应用》
您所在的位置:首页 > 电子元件 > 其他 > 入门:FPGA相关知识系统介绍

入门:FPGA相关知识系统介绍

2023-01-30
来源:FPGA之家
关键词: 触发器

  FPGA的本质是设计一颗芯片,其开发刘成是通过verilog等硬件描述语言通过EDA工具编译、综合、布局布线成为下载文件,最终加载到FPGA器件中去,完成所实现的功能。而硬件描述语言描述的就是组合逻辑和时序逻辑电路,度和逻辑就是与、非、或组成的电路,而时序电路就是触发器。在FPGA中,组合逻辑的变成了查找表的工作,于是所有的数字电路转化成为查找表和寄存器,这便是FPGA的基础,查找表负责逻辑实现,寄存器存储电路状态。现代FPGA内部除了查找表和寄存器之外,还有RAM块,用于存储大量的数据块,这样可以节省芯片实现的面积。FPGA内部的时序电路需要时钟的输入,通常FPGA内部需要的时钟种类较多,因此需要在片内产生相关的时钟,因此时钟管理单元DCM/PLL也是必不可少的内部部件。除此之外,FPGA内部还包括接口I/O,可分为普通I/O和高速I/O,次外还有各种各样的硬核。

  FPGA的英文翻译过来是现场可编程门阵列,这是相对于ASIC来说的,ASIC硬件也可以可做是门阵列,但是它是非可编程的器件,流片完成之后功能就固化了。但是FPGA 的可编程性在于其能够重新下载配置文件,来改变其内在的功能。两者在前端开发流程上并无二致。FPGA作为一种器件,技术主要垄断在ALTERA和XILINX这两大公司手中。

  (一)FPGA架构

  一个完整的嵌入式系统中由单独一个FPGA组成的情况较少,通常由多个器件组合完成,例如CPU+FPGA。通常是由一个FPGA+ARM,ARM负责软件配置管理,界面输入外设操作,FPGA负责大数据量运算,可看做CPU的专用协处理器来使用,也常会用于扩展外部接口。常用的架构有ARM+FPGA,DSP+FPG A,或者网络处理器+FPGA等,这些架构形成构成整个高速嵌入式设备的处理形态。实现高速处理方面,CPU的发展趋势是多核。FPGA的热门应用有:

  1)网络存储产片

  2)高速网络设备

  3)4G通信等设备:对于新一代通信基站的信号处理,FPGA+DSP阵列的架构就是绝配。

  总之,没有完美的架构,只有合适的组合。

  (二)器件互联

  系统架构确定之后,下一步就是FPGA和各器件的互联问题。通常来说,CPU和FPGA的互联问题主要取决于两个要素:

  1)CPU所支持的接口

  2)交互的业务

  通常FPGA一般支持与CPU连接的数字接口,其常用的有EMIF,PCI,网口,DDR等接口。作为总线类接口,FPGA通常作为从设备与CPU连接,CPU作为主设备通过访问直接映射的地址对FPGA进行访问。通常总线访问分为同步访问和异步访问。CPU手册中会对信号定义时序控制有着详细的说明,FPGA根据这些详细的说明来说实现相应的逻辑。同时CPU还会对访问时序进行设置,例如设置建立时间、保持时间、最快时钟。对于总线型的访问来说,数据信号通常为三态,用于输入输出,这种设计目的减少外部连线的总数。总线访问优势是直接映射到系统的地址区间,访问较为直观,但相对传输速率不高,主要原因如下:

  1)受制总线访问间隔,即两次访问中间的空闲状态

  2)不支持双向传输,并且FPGA主动对CPU发起操作是,只有中断处理一种方式。

  这种总线型操作特点可以使其用作系统的管理操作,例如FPGA内部寄存器的配置,运行过程中所需参数配置,以及数据量较小的信息交互等操作。这些操作数据量和所需带宽合适,可应对普通的嵌入式系统的需求处理。而对于大数据流量的数据交互,一般采用专用的总线交互,其特点支持双向传输,总线传输速率较快。

  (三)FPGA特点

  FPGA最大的特点在于其灵活性:

  1)I/O的灵活性,可以通过其I/O组成各种接口与各种器件连接,并且支持不同的电器特性。

  2)内部存储器灵活,可以通过IP生成工具生成各种深度和宽度的RAM和FIFO

  3)逻辑的灵活性,内部逻辑可生成各种类型IP

  (四)架构设计

  1)流驱动式

  对于一个FPGA的架构设计,其首先需要考虑的就是性能,其次就是接口设计。一般架构设计是采用数据流驱动方式实现的,通常来说应用于IP领域、存储领域、数字处理领域等较大型FPGA设计都是数据流驱动式架构,主要包括输入接口单元,主处理单元,输出接口单元,还可能包括辅助处理单元、外部存储单元,这些单元之间一般采用流水式处理,即数据处理完之后数据打包发下一级处理。其中数据输入输出可能有多个,此时需要架构内部实现数据的交换。

  2)稳定性:设计一定能够进行正常工作

  3)时钟域复位:复位一般采用异步复位同步释放的方式。

  4)并行与复用:并行可以提过处理速度,复用可以节省资源。最终的设计取决于对设计处理能力和逻辑数量的权衡。

  5)流水线处理:简化设计;时序优化。但是流水设计对于带反馈的设计无能为力,强加流水设计的话有可能会浪费逻辑和设计。

  (五)FPGA中一些常用内部资源

  1)FIFO设计:作为FPGA中内部资源的一个常用器件,最常见与异步时钟域划分和缓冲数据,但不仅限于此。简化设计、减少耦合、输入输出接口固定,便于仿真和验证,都是使用FIFO的好处。

  2)RAM:通常实例化RAM中,一种是BLOCK RAM,一种是分布式RAM,前者可以提供较大的存储空间,后者提供较小的存储空间。

  (五)coding原则

  1)注释:好的代码必须有注释,注释至少包括文件注释、端口注释和功能语句注释。好的注释,可以提高代码的可读性,可维护性。

  2)语句:所写语句一定是可综合的,在FPGA设计中无外乎就是时序逻辑和组合逻辑。组合逻辑是即可生效的,时序逻辑是时钟的下一拍起效。

  3)阻塞与非阻塞赋值:一般情况下,组合逻辑用的是阻塞赋值,时序逻辑用的是非阻塞赋值。

  4)注意避免锁存器的生成:锁存器最容易产生在always(*)模块,所有的分支条件都要描述并且赋值,状态机中的default状态也不要忘记。

  (六)接口设计

  在进行设计的时候,需要一个接口模块,首先需要明确以下问题:

  1)同步接口还是异步接口?

  2)有哪些信号,功能是什么?

  3)信号之间的时序关系是什么?

  4)传递的效率什么?

  这些问题的答案一般都会在datasheet中给出,一般设计一个接口模块,必然与其他硬件电路相连接。加入外部连接接口是总线接口,至少包括以下却不限于以下信号:

  1)地址:能够支持的最大地址空间,数据和地址是否复用?

  2)数据:一般读数据和写数据复用同一接口

  3)读写命令

  4)是否支持突发传输

  5)同步还是异步

  6)控制信号之间的相位关系以及建立时间和保持时间的要求

  (6)学会总线设计

  PC时代,垄断江湖的是微软和INTel,而在移动互联网时代,最具有潜质的就是谷歌的ANDROID系统和ARM芯片。因此作为ARM处理做片上互联的AMBA总线标准成为业界应用最广泛的标准。

  AMBA总线实际是三个标准的集合,分别为AHB,ASB,APB。ASB已经逐渐被AHB取代,现在使用最广泛的是AHB和APB总线,以及最新扩展的AXI总线。如图为AHB和APB在一个嵌入式系统中的应用场景。



更多信息可以来这里获取==>>电子技术应用-AET<<

mmexport1621241704608.jpg

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。