今天给大侠带来FPGA Xilinx Zynq 系列第十二篇,本篇内容目录简介如下:
5. 应用和机会 (“ 拿它能做什么?”)
5.1 应用的概述
5.1.1 汽车
5.1.2 通信
5.1.3 防务和航空航天
5.1.4 机器人、控制和仪器
5.1.5 图像和视频处理
5.1.6 医药
5.1.7 高性能计算 (HPC)
5.1.5 其他及未来的应用
5.2 何时 Zynq 真的有用 ...?
本系列分享来源于《The Zynq Book》,Louise H. Crockett, Ross A. Elliot,Martin A. Enderwitz, Robert W. Stewart. L. H. Crockett, R. A. Elliot, M. A. Enderwitz and R. W. Stewart, The Zynq Book: Embedded Processing with the ARM Cortex-A9 on the Xilinx Zynq-7000 All Programmable SoC, First Edition, Strathclyde Academic Media, 2016。
应用和机会(拿它能做什么?)
Zynq 的应用领域和那些基于 FPGA 和某些处理器的芯片的是差不多的,因此可以先来看一下一般的应用产品和系统的基本状况。下面几页会展示的例子包括:汽车、军用装备、航空航天、图像处理、有线和无线通信、医药、工业控制和许多其他领域。
第 4 章和三种理论上的对照组比较过之后,应该已经理解 Zynq 提供了和其他方 案相比更为独特的功能和特性。因此值得基于这些观察结果来探索和考虑什么是Zynq特别适合的应用。Zynq的架构可以被用来满足那些对于高性能计算以及处理器顺序密集计算都有极高要求的应用。由此,我们会关注于三种应用来做例子研究:软件定义无线电 (Software Defined Radio,SDR) 、智能与网络系统 (Smart Systems and Networks)和图像及视频处理 (Image and Video Processing)。
另一个要探索的重要内容是 Zynq 的生态系统,和围绕着 Zynq 对开发者有些怎 样的机会,比如 IP 包、操作系统和其他的软件解决方案。
5.1. 应用的概述
考虑 Zynq、FPGA 和相关芯片的应用,有几个重要的领域可以被点出来。虽然有大量的可能性应用,但这里的只是有代表性的一些选择。
5.1.1. 汽车
现在的汽车里都有大量的电子装置,从引擎管理到车窗、后视镜和灯光等控制功能,以及导航和资讯娱乐系统都有。先进驾驶辅助系统 (Advanced Driver Assistance Systems,ADAS)专门指的就是汽车里为了驾驶员的安全和便捷所提供 的系统的总和,包括:偏离车道告警系统、道路标识识别 (如进入限速较低的路段时提醒驾驶员)、泊车辅助、抬头显示,以及甚至能监视驾驶员的清醒程度。图 5.1是一些例子。
图 5.1: 汽车系统 (左:抬头显示;右:道路标识识别)
FPGA,以及现在的 Zynq 芯片,可以用来实现这些汽车系统 [10][50]。Zynq 的处理能力使它特别适合做这样的系统,而且能够降低元件的数量在一个对成本和功耗敏感并且还往往对物理空间有要求的市场中是一种优势。
5.1.2. 通信
FPGA是对基于包交换的无线和有线通信进行计算密集型处理的平台。这个领域 很多样化,包括地面和卫星传输的收发信机、移动通信骨干网络、有线网络设备、雷达、声纳、全球定位系统 (Global Positioning System, GPS)和许多其他的通信系统。图 5.2 是其中的一小部分例子。
在无线通信中,无线电频谱日益紧张,而与此同时大量无线系统和标准不断在 扩张。柔性无线电 (flexible radio)的概念有可能更好地利用无线电频谱,并能把无线电设备稳固在一个能动态改变操作的单个设备上。Zynq 就是一个理想的柔性无线电平台 —— 在 5.3 节有更多的描述。在有线通信中,通过使用 “ 软定义网络 (softly defined networks,SDN)” 使其达到类似程度的灵活性,SDN 能在软件的控制下升级功能 [39]。
图 5.2: 通信系统 (左:无线基站;中:卫星地面站;右:有限网络交换机)
5.1.3. 防务和航空航天
防务系统包括各种通信、图像处理、航空、导航和运输系统,以及和武器相关的技术。军用电路通常需要比民用应用更高的稳固性,以及更大的温度范围和安全特性 [58]。一个有意思的领域是 “ 网络化的战场 ” 的概念,在这样的战场上,军人和装备是与飞行器、卫星、信号情报装备及其他防务系统互联的 [38]。网络化战场的目的是搜集、过滤和分享情报,从而提升军事行动的效率。民用航空应用包括导航和机上飞行系统、卫星和地面通信以及雷达系统。
5.1.4. 机器人、控制和仪器
从制造和加工到高能物理实验的工业和科学处理,都需要精密的控制和仪器。图 5.3 分别展示了工厂控制室、风力发电厂和 CERN 的高能物理实验装置 [4]。
图 5.3: 控制和仪器仪表系统:(左:工业控制室;中:风力发电厂;右:高能物理实验)
FPGA 和 Zynq 芯片是非常合适的平台,因为借助于 PL 的能力,它们能快速、实时地同时处理多个传感器的输入并操作多个动作器的输出。Zynq 在系统集成和操作的灵活性上还有更大的潜力。比如,可以监视一个控制环的性能,如果有必要就可以改变它的配置转用软件控制。如果需要,PS 还可以支持实时操作系统及 (或)GUI (图形用户界面)。
电机控制算法在工业的很多领域都是极为重要的。比如,对美国制造业工厂的调查发现,工业中消耗的大约 50% 的电力是用于 “ 机器驱动 ”,也就是电机、泵和风扇 [48]。由于在 PS 和 PL 之间的高带宽连接,能够形成紧密的反馈回路,并能利用 AMS 包所提供的 DAC 采样能力,使得 Zynq 很适合做电机控制 [26]。
5.1.5. 图像和视频处理
图像和视频处理包含很多不同的应用,包括家用和专业用的摄像头、视频压缩 和存储系统、广播设备、显示技术、工业过程监视、保安和监控、以及许多其他应用。Zynq 的处理能力对于 “ 嵌入式视频 ” 应用是特别有价值的,嵌入式视频应用既需要对大量像素点数据的确定处理,也需要从图像中提取数据的软件算法(正好相应地适合 PL 和 PS)[8]。在 5.5 节会以具体的实例来进一步探索这个话题。
5.1.6. 医药
在医疗诊断中一个重要的问题是要 “ 看见 ” 人体的内部,这就需要像计算机断层摄影 (Computer Tomography,CT)扫描、超声波和核磁共振成像(Magnetic Resonance Imagers,MRI)这样的医疗影像设备。为了增强和显示通过这样的设备所获得的图像,往往就需要对大量的数据做精密的图像处理算法。和其他图像处理应用一样,Zynq 综合了 PS 和 PL 的能力,既支持高速并行计算,也支持基于软件的算法。医学领域所涉及到的进一步的应用包括机器人辅助手术中的仪器控制,以及实 时手术图像,比如内窥镜设备、病人监视设备和家庭保健技术 [24]。
图 5.4: 医药应用:(左:MRI 扫描;右:机器人辅助手术)
5.1.7. 高性能计算 (HPC)
“ 高性能计算 ” 这个大帽子术语下面覆盖了需要快速处理大数据集的各种应用,这些应用往往可以通过专用硬件处理来加速 [44]。HPC 包括但不限于诸如金融建模 [54]、油气勘探分析、科学实验中的数据处理、射电天文 [15] 和捕获到的雷达信号分析这样的多样的应用。还包括数据中心和云计算那些常用于建立起 HPC 应用的基础设施。
5.1.8. 其他及未来的应用
接下去几页,会给出 FPGA 和 Zynq 的一些关键应用领域的概述。不过,还有很多正在开展的和潜在的应用没能详细列在这里,从音频信号处理到基于 Zynq的无人机都有!
要跟上最新的发展,一个好办法是阅读 Xilinx 的 Xcell 杂志,它每季度一期, 内容包括了和 Xilinx 技术与应用相关的各种有意思的文章。
许多文章都关注 Zynq或和 Zynq 相关的芯片。Xcell 杂志可以通过以下网站地址访问:http://www.xilinx.com/about/xcell-publications/xcell-journal.html。
另外,Xcell 每日博客常常会重点给出最新的 Zynq 相关的设计新闻、教程和应 用报道。Xcell 每日博客位于:http://forums.xilinx.com/t5/Xcell-Daily-Blog/bg-p/Xcell
最近出现在每日博客上的应用例子包括 Phenox,一个由在东京的研究人员通过 KickStarter 项目 [35] 开发的基于 Zynq 的无人机,开源仪器平台 ——Red Pitaya 以及做 “ 开放影院摄像头 ” 的协作开源项目 ——AXIOM,都是基于 ZedBoard 这块Zynq 开发板的 [1]。
5.2. 何时 Zynq 真的有用 ...?
正如 5.1 节关于应用领域的总结所展示的,Zynq 适合各种应用,这里还有很多可能性可以展示。
许多应用都是既适合 FPGA 也适合 Zynq 的,因此有理由提出这个问题 “ 何时 Zynq 真的有用?”。为了回答这个问题,我们可以先分辨出在一个目标应用中可能需要的两种特殊的计算类型:
• 高速、并行、确定性的计算。
• 连续、动态、非确定性的计算。
这两种计算类型各自很理想地适合 Zynq 的 PL 和 PS 部分。对于同时需要这两种计算类型的,特别是若不用 Zynq 实现就需要使用两片分立的处理芯片的 (比如一片用于高速向量处理的 FPGA,和一片运行操作系统的处理器),Zynq 提供了很大的便利。不仅如此,当应用涉及到这两个计算单元的密切合作的时候,统一的 Zynq 架构能保证降低功耗和简化设计。PS 和 PL 之间的低延迟、高带宽连接是一种优势,尤其在需要快速实时计算和反馈环路的系统中具有巨大的优势。
很可能 Zynq 的不同的特性对于不同的市场会有不同的吸引力。比如,有些应用领域会对成本特别敏感 —— 特别是出货量很大而售价很低的产品 —— 那么由于 使用了单颗 Zynq 芯片,就能比两片分离的芯片的方案具有更低的物料价格,从而使这个产品受益。在其他的例子中,最有价值的可能是由于 Zynq 的基于标准和以 IP为中心的设计流所实现的投放市场时间的加速、功耗的降低或是处理器和逻辑资源之间的低延迟链接。
正如第 4 章中所演示过的,Zynq 比单独的 FPGA 具有更强的嵌入式系统性能, 因此传统上使用 FPGA 的某些产品,当引进新的功能和性能改进的时候,就可以自然地在下一轮产品迭代中转换到 Zynq 来。
接下去的三个小节,我们会呈现一个小型的实例研究,关注三个重要而且先进 的领域:通信、智能网络和图像与视频处理。每个例子中,Zynq 对于任意一个应用都将表现出其特别的适合性。
第十二篇到此结束,下一篇将带来第十三篇,应用和机会(“ 拿它做什么?”) 之 通信:软件定义无线电等相关内容。欢迎各位大侠一起交流学习,共同进步。
END
后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。
大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!