文章来源:FPGA算法工程师
自中高端FPGA技术成熟以来,FPGA+DSP/ARM架构的硬件设计在众多工业领域得到广泛应用。例如无线通信、图像处理、工业控制、仪器测量等。
在ZYNQ系列尚未推出以前,FPGA+DSP器件是众多工业领域应用的典型搭配。
例如某司采用K7325T+6678的组合,推出应用于无线通信、雷达处理和图像处理等领域的板卡。中低端的K7325T可以实现信号的采集和处理,DSP 6678则通过 SRIO与FPGA实现连接传输,可做上层处理和应用。
但从灵活性和应用场景看,无法实现操作系统的应用,限制了FPGA+DSP架构的进一步推广。
此外,一种分立式的FPGA+CPU架构可实现硬件逻辑和软件应用开发,通常可以通过PCIE和Ethernet接口实现交互传输。
随着业务场景的需求日益丰富,对人机交互、网管维护等高层应用不可或缺。以FPGA+ARM/CPU等架构的SOC成为了近10年主要应用平台。
例如,Xilinx推出的ZYNQ系列,成为行业里最为广泛推荐应用的明星产品。以PS+PL的系统开发和逻辑开发,极大方便了软硬件开发工程师在一块芯片实现系统功能,极大提高了系统集成度和可操作性。
在一块SoC上,即可实现系统处理、高速逻辑、高低速接口传输、数据存储、Web操作界面等。
处理器可以被看作是硬件系统的中央单元,ZYNQ部分包含丰富的外设和处理器,可以实现系统版本加载和控制。
PL侧则是纯逻辑FPGA开发,PS-PL之间可以通过GPIO、AXI-Lite、AXI-Stream等接口实现交互传输。
PS-PL之间通过丰富的接口实现互联,PS可实现系统启动、软件处理和板级驱动支持;PL则可实现并行高速处理、接口传输、存储、温度监测等。
APU 主要是由两个ARM 处理核组成的,每个都关联了一些可计算的单元:一个NEONTM 媒体处理引擎(Media Processing Engine,MPE)和浮点单元(Floating Point Unit,FPU);一个内存管理单元(Memory Management Unit,MMU);和一个一级cache 存储器(分为指令和数据两个部分)。APU 里还有一个二级cache 存储器,再往下还有片上存储器(On Chip Memory,OCM)。最后,由一个一致性控制单元(Snoop Control Unit,SCU)在ARM 核和二级cache 及OCM 存储器之间形成了桥连接,这个单元还部分负责与PL 对接,图中没有标出这个接口。
在产品研制中,一个由若干人员组成的团队,通过分工合作,实现产品从需求到交付客户的全流程。
项目经理提取需求,并通过项目管理进行需求分解,并制订产品计划。系统工程师则制订系统规范,把控系统设计重要事项,系统架构师完成系统架构设计,软件架构、硬件架构和逻辑架构的设计是产品能否成功的关键。开发工程师根据开发需求,负责各自领域的功能开发和验证,包括算法仿真、自测试和数据分析等。每个产品版本的集成涉及软件和逻辑bit,各领域集成打包合成一个完整的版本。
产品测试通常由测试工程师负责完成,IC设计中则由验证工程师负责完成。测试通常根据产品复杂度,可能分为单元测试、集成测试和系统测试等。
此外,版本输出和开发过程中,质量管理则为保障产品质量设立红线,通过一系列管理措施,并与研发配合,完成产品质量跟踪。
总结来说,ZYNQ的设计流程如下图所示,PS侧负责软件开发,PL侧负责逻辑开发,左后进行联调。
FPGA天生适合实现高速并行计算,因此承担了系统中计算量大、并行度高的部分,例如无线通信的基带和中射频,以及数据链路层等。
PS侧的处理器带操作系统,可是实现上层软件应用,运行软件协议等。
BSP则在软件和硬件之间搭建起传输通道,实现软硬件驱动和数据传输。
ZYNQ具备的SoC属性,使其能够满足大部分场景下的高性能计算和应用。
典型应用场景包括:无线通信、智能网络系统基于图像视频处理等。
例如,使用动态部分重构技术,实现软件无线电系统,可快速从更换波形。
在汽车领域,可用于显示控制和道路识别。
在地面移动无线通信、卫星通信以及网络交换机等中,广泛应用ZYNQ器件。FPGA 是对基于包交换的无线和有线通信进行计算密集型处理的平台。这个领域很多样化,包括地面和卫星传输的收发信机、移动通信骨干网络、有线网络设备、声纳、全球定位系统(Global Positioning System, GPS)和许多其他的通信系统。例如Starlink、Oneweb、国网、千帆等巨型星座低轨卫星通信系统,广泛采用FPGA进行系统设计。
此外,在防务安全和航空航天领域,FPGA+ARM/CPU/GPU等实现数据链、星地通信或星间链路传输。防务系统包括各种通信、图像处理、航空、导航和运输系统,以及和武器相关的技术。军用电路通常需要比民用应用更高的稳固性,以及更大的温度范围和安全特性。民用航空应用包括导航和机上飞行系统、卫星和地面通信以及雷达系统。
在工业控制、机器人、仪器等应用领域,FPGA+ARM/CPU/GPU发挥着重要作用。从制造和加工到高能物理实验的工业和科学处理,都需要精密的控制和仪器。FPGA 和Zynq 芯片是非常合适的平台,因为借助于PL 的能力,它们能快速、实时地同时处理多个传感器的输入并操作多个动作器的输出。Zynq 在系统集成和操作的灵活性上还有更大的潜力。比如,可以监视一个控制环的性能,如果有必要就可以改变它的配置转用软件控制。如果需要,PS 还可以支持实时操作系统及(或)GUI (图形用户界面)。此外,ZYNQ用于信号源、示波器、频谱仪、矢量网络分析仪、信道模拟器等仪器设备。
图像视频处理是ZYNQ的另一个重要的应用领域,通过卫星遥感/SAR雷达/光学、数据链、自组网等实现战场态势感知。医学领域的医疗设备(CT机/内窥镜等)、机器人辅助医疗等。包括家用和专业用的摄像头、视频压缩和存储系统、广播设备、显示技术、工业过程监视、保安和监控、以及许多其他应用。视频应用既需要对大量像素点数据的确定处理,也需要从图像中提取数据的软件算法(正好相应地适合PL 和PS)。
目前,国内的FPGA厂商正在推进“国产ZYNQ”SoC器件设计研发,部分厂家已经流片测试验证中,预计今年下半年至明年上半年上市。
高端器件如RFSoC、ACAP等作为ZYNQ的升级版,在5G通信、数据中心等领域使用,国产同类型器件则相对缺乏,处于追赶或另辟蹊径的状态。