赛灵思中国通讯第四十八期 - 聚焦面向Smarter视觉的Zynq SoC

Page 1

Xi l i nx

估算


出色的应用功能设计

无线通信领域的出色表现 赛灵思All Programmable器件助力 实现Smarter Wireless Networking ……10 嵌入式视觉领域的出色表现 用OpenCV和Vivado HLS加速基于 Zynq SoC的嵌入式视觉应用开发……18

18 封面专题 聚焦面向Smarter 视觉的Zynq SoC…… 2

2

10


估算


封 面专 题

聚焦面向 Smarter 视觉的 Zynq SoC 作者:Mike Santarini 赛灵思公司《赛灵思中国通讯第 四十八期》出版人 电子邮件:Mike.santarini@xilinx.com

8

赛灵思中国通讯第四十八期

2013 年第二季度


封面专题

Zynq All Programmable SoC 加上全新赛灵思工具及 IP, 可为新一代嵌入式视觉产品 奠定坚实基础。

您 是否看过奥迪自动停车技术演示,轿车 无需驾驶员干预,便可自动找到停车位并停 泊。 您 是 否 使 用 Kinect 控 制 器 玩 过 Xbox 360 游戏,或者刚刚咬下您从本地水果店购 买的一块上好的水果。如果有,那您可能就 是 Smarter 视觉系统时代到来的见证人了。 从最高级电子系统到普通苹果,Smarter 视 觉技术影响着各种形式的产品。虽然当今各 种系统已足以让人称奇,但一些专家预测未 来 10 年,从汽车到工厂自动化、医疗、监控、 消费、航空航天与国防的绝大多数电子系统, 都将包含功能更加出色的 Smarter 视觉技 术。 随 着 Smarter 视 觉 系 统 高 级 程 度 的 提 高,我们很可能有机会乘坐网络化高速公路 中川流不息的自动驾驶汽车。直觉外科等医 疗设备令人惊讶的机器人辅助外科系统将进 一步发展,可帮助外科医生实施远程外科手 术。电视与网真 Jelepresence 将达到新的 身临其境及互动水平,而电影院、家庭及店 铺屏幕上显示的内容则将迎合每个消费者的 兴趣,甚至是我们的情绪。 Smarter 视觉的赛灵思 All Programmable 解决方案处于这次革命的前沿。赛灵思以首

2013 年第二季度

赛灵思中国通讯第四十八期

9


封面专题

款 在 单 个 芯 片 上 整 合 ARM 双 核

还可实现全新的效率水平,降低系统功

CortexTM-A9

耗,提升系统性能并大幅减少材料清单,

得到机械系统强化的最佳透镜,其可执

辑 以 及 各 种 重 要 外 设 的 器 件

从而可在提升盈利能力(因这些创新产

行能够实现更清晰、更宽广视野的自动

ZynqTM-7000

品的推出步伐加快)的同时丰富生活,

对焦和旋转。这些系统基本上由通过同

MPCORETM、可编程逻 All Programmable SoC

先进的视频系统不但可增强和分析图像, 而且还可根据这些分析触发行动,从而显 著控制了计算功能需求 。 为基础,已推出一款工具与 IP 的支持

轴线缆连接模拟监控器的模拟视频摄像 机和安保人员监测的视频录制设备组 成,其清晰度、可靠性以及因此而产品 的有效性主要取决于光学设备与透镜的 质量以及监控摄像机播放内容的安保人 员的尽职程度。 随着嵌入式视觉技术的推出,监控

甚至挽救生命。”

设备公司开始使用基于数字技术的较低

性基础架构,其将在实现这些视觉创新 开发与加速交付的过程中发挥重要作

二十年前,监控系统厂商竞相提供

从哑巴摄像机到 SMARTER 视觉

成本摄像头。该数字处理技术为其系统 带来了卓越的特性,不但性能远超基于

用。该支持性基础架构包含 VivadoTM

更智能系统的根源是嵌入式视觉。

HLS(高级综合)、全新 IP Integrator

根据迅速发展的行业组织“嵌入式视觉

透镜的模拟系统,而且价格更为低廉。

工 具、OpenCV( 计 算 机 视 觉) 库、

盟 ”(www.embedded-vision.

鱼眼透镜以及采用各种视觉专用算法的

SmartCORETM IP 以及专用开发套件。

com /)的定义,嵌入式视觉融入了两

嵌入式处理系统显著增强了摄像头所生

赛灵思公司战略及市场营销高级

种新兴技术:嵌入式系统(区别于使用

成图像的质量。针对光照条件进行校正

副总裁 Steve Glaser 表示:“我们正

处理器的计算机的任何电子系统)和计

的技术可改善对焦、增强色泽和数字缩

算机视觉(有时也叫机器视觉)。

放观测区域,无需使用机械电机控制来

A l l

ProgrammableSmarter 视觉技术帮助

嵌入式视觉联盟创始人兼咨询公司

执行平移、倾斜和缩放,从而可进一步

我们的客户开创新一代更智能系统。在

BDTI 首席执行官 Jeff Bier 表示,嵌入

提高系统可靠性。数字信号处理系统实

过去十年里,客户已使用我们的 FPGA

式视觉技术已经给多个行业造成显著的

现了 1080p 以及甚至更高的视频分辨

为在其系统中使用的处理器上运行速度

影响,因为这个领域的发展已经远远超

率。

偏慢的功能提速。有了 Zynq-7000 All

越了电机驱动旋转及变焦的模拟摄像机

Programmable SoC,处理器和 FPGA

系统时代。Bier 表示:“我们都已经在

逻辑将位于同一芯片上,这就意味着开

数字时代生活了一段时间,已经看到嵌

发人员现在拥有一款非常适合更智能应

入式视觉迅速从擅长于压缩、存储或者

用的硅芯片平台。”

增强摄像头拍摄内容观感的早期数字系

就器件支持而言,Glaser 表示: “我 们 已 使 用 由 Vivado HLS、 全 新 IP Integrator 工

统,迅速发展成为如今能够知晓拍摄内 容的 Smarter 嵌入视觉系统。”

但可通过数字信号处理操纵的更清 晰图像只是开始。监控系统制造商已经 开始使用先进程度大为改观的像素处理 技术开发更加高级的嵌入式视觉系统, 其可在数字系统正在采集的高质量图像 上实时执行分析。这些最初的嵌入式视 觉系统只能检测具体的颜色、形状和移

具、OpenCV 库、

此外,先进的嵌入式视觉系统不仅

SmartCORE IP 以及开发套件组成的稳

能增强和分析图像,而且还可根据那些

健 开 发 环 境 为 Zynq-7000 All

分析触发行动。由此,处理量及计算功

的算法:可检测某些事物是否跨越了摄

Programmable SoC 提供辅助。在这些

能以及算法高级程度都得到了显著提

像头视野中的虚拟栅栏,确定图像中的

Smarter 视觉技术的帮助下,我们的客

高。监控市场的快速发展就是这种显著

对象是否是一个人,以及链接到数据库

户不但能够跨越实现新一代设计,而且

发展的最好例证。

后甚至可识别是哪一个人。

10

赛灵思中国通讯第四十八期

动。该功能迅速发展成了具有下列功能

2013 年第二季度


封面专题

可疑行为 最先进的监控系统所提供的分析 功能能够跟踪受监测个体穿越安保网

更加迅速准确地执行检测,因而如果摄

曾掉落过,但伤痕难以察觉会怎么样呢?

像头真正发现了切实的威胁,就可更迅

Corradi 表示:“在某些情况下,掉落造

速地向操作人员发出告警。

成的损坏摄像头可能难以发现,只能用

络视野,甚至可跟踪他们离开摄像头

本地化分析功能意味着每个单元不

肉眼查看。损坏可能实际位于苹果的果

视野后进入盲点,然后进入监控网络

仅需要更强大的处理功能来强化和分析

肉中。所以一些 Smarter 视觉系统在摄

的另一部摄像头视野。视觉设计人员

其所发现的事物,而且还必须相当紧凑, 像头上整合了红外传感器,用以检验苹

已经开发出一些此类系统,用于检测

并能够整合高度集成的电子产品。并且

果表皮下的损坏。发现受损苹果,就可

异常或可疑移动。赛灵思工业、科学

由于每个单元都必须能够可靠地与网络

触发机械分拣机将苹果拣出流水线,以

及 医 疗(ISM) 事 业 部 系 统 架 构 师

其余部分通信,它还必须集成电子通信

免其被包装发往杂货店。”如果没有更

Mark Timmons 表示:“分析是当今监

功能,进一步增大计算复杂性。这些监

智能融合视觉系统,损坏的苹果会通过

控市场最大的趋势。它可克服人为错

控单元逐渐通过无线网络连接,成为更

检测。损伤会在苹果摆放在杂货店货架

误,甚至取代细致的人工观察及决策。

大规模监控系统的组成部分;而且这些

上时变得明显,这样该水果可能就必须

可以想象,在火车站和运动赛事等拥

监控系统正日益成为更大规模企业网络

要扔掉了。一个坏苹果会弄坏一堆苹果。

挤的环境中,监控难度极大。所以如

乃至更大规模全球网络的组成部分,如

此外,分析功能还可帮助食品公司

果有分析功能,发现过度拥挤的危险

美国军方全球信息网格赛灵思。

判断受损苹果是否损伤不太大,还可转

这种高复杂性正出现在军事和防务

入新的检验流水线,由另一套 Smarter

市场中的各个领域,从步兵头盔到与中

视觉系统判断它是否适用于其它用途,

为进一步增强这种分析功能,提

央司令部联网的防务人造卫星,无所不

如制作苹果酱、果脯或者如果损伤太大,

升这些系统的有效性,监控以及众多

包。可能更让人惊叹的是,Smarter 视

可用于堆制肥料。

其它使用 Smarter 视觉技术的市场正

觉技术进入其它市场,提高生活质量与

在更多地使用“融合”架构,将摄像

安全性的速度。

情况或跟踪表现有可疑行为或过激行 为的个人,就会有明显的优势。”

头与热成像、雷达、声纳以及光/激 光探测与测距(LIDAR)等其它感测 技术相结合。这样系统可实现夜视功 能,检测热温/热能签名,或捕获单 凭摄像头无法采集或无法看到的对象。 该功能可显著减少虚假检测,实现更 精确的分析。毫无疑问,技术融合和 数据分析会提高复杂性,需求更为强 大的分析处理能力。 Timmons 提到,这个市场的另一 大趋势是执行所有此类复杂分析的产品 都位于监控系统网络的“边缘”,即位 于每一部摄像头中,而不是由每一部摄 像头将其数据传输到中央大型机系统, 再由大型机根据这些复馈进行更精细的 分析。本地化分析功能会给整体安全系 统增加灵活性,使系统中每个点都能够 2013 年第二季度

SMARTER 视觉成就完美苹果 现在以苹果为例。有没有想过苹果 是怎么以如此良好的状态进入你的杂货 店的?赛灵思工业科学及医疗业务部架 构师 Giulio Corradi 表示,食品公司正 在将最新更智能视觉系统用于食品检验 流水线,将坏苹果从好苹果中筛选出来。 Corradi 表示,高速食品检验流水线上 使用的第一代嵌入式视觉系统通常使用 一个或多个摄像头发现苹果或其它农副 产品表面上的瑕疵。如果嵌入式视觉系 统发现有非正常色泽,该苹果就会被打 上标记/筛选出来进行进一步检测,或 者扔掉。 皮下检测 但是如果在此之前的某个时候水果

Corradi 表 示, 工 厂 车 间 是 应 用 Smarter 视觉的另一场合。越来越多的 工厂使用机器人辅助技术或完全自动化 机器人生产线帮助制造商根据不同任务 更换机械设备。机器人周围的传统安全 笼过于约束(或太小),无法满足其制 造不同产品系列的移动需求 故为保护工人的安全,同时也避免 制约自动化工厂生产线的动作范围,企 业正在使用 Smarter 视觉建立安全系统。 摄像头和激光会竖立“虚拟栅栏或屏 障”,如果有人在产品正在生产时过于 靠近工厂生产线,其可向工作人员(和 安全监测人员)发出告警声。部分设施 包含多相虚拟屏障系统,在有人跨越外 部屏障时其将发出告警声,然后在此人 跨越第二道屏障、接近机器人时自动关 闭整条生产线,以避免发生伤害事故。 嵌入式视觉联盟的 Bier 提到,这类虚拟 赛灵思中国通讯第四十八期

11


封面专题

虚拟屏障可降低工厂安全事故,然而为什么不在游乐场、在我们 家中的游泳池周围或汽车上也安装虚拟屏障呢? 屏障技术有广泛的应用性。Bier 说: “它

Zoratti 指出,现今某些新型轿车

对降低工厂安全事故数量能起到明显

装配有四个摄像头,分别位于车辆两

的作用,然而为什么不在游乐场中,

侧 及 前 后, 可 实 现 车 辆 周 边 环 境 的

或是在我们家中的游泳池周围,在轿

360 度不间断环视。虽然第一代环视

车上也安装上虚拟屏障呢?我想我们

系统只是使用这些摄像头为驾驶员提

将很快看到大量虚拟屏障系统出现在

供图像,但未来系统将融入更多的驾

我们的日常生活中。”

驶员辅助功能。使用这四个摄像头和 图像处理分析功能,这些新一代系统

SMARTER 视觉技术可提升驾驶体验

不但可同步生成汽车鸟瞰图,而且还

汽 车 是 另 一 个 全 力 推 崇 Smarter

可在遇到行人时警示潜在危险。此外,

视觉的市场,其可实现更轻松、更安

在汽车以更高速度行进时,其可使用

全的驾驶体验。赛灵思汽车业务部系

车身侧面及后面的摄像头进行盲点检

统架构师 Paul Zoratti 表示,高级驾驶

测、辅助变道,并在偏离车道时告警。

员 辅 助 系 统(ADAS) 就 是 使 用 包 括

在挡风玻璃后新增一个前视摄像头,

Smarter 视觉在内的远程传感技术的整

可支持交通标识识别和前方碰撞告警

体体现,其可辅助驾驶员安全驾驶(见

功能。最后,当驾驶员抵达目的地,

赛 灵 思 期 刊 第 66 期 的 封 面 专 题,

并启动自动停车时,系统将使用这些

china.xilinx.com/publications/archives/

摄像头及其它传感器帮助汽车半自动

xcell/Xcell66.pdf )。

驶入停车位。

过去十年中的每一年中,汽车制

Zoratti 还表示,实时执行这些任

造商不但会在其豪华车型中新增各类

务需要大量的处理功能,这恰好是并

甚至更优异的驾驶员辅助特性,同时

行硬件计算的长处。这就是为什么许

还在其运动车和标准车系列中实现了

多早期驾驶员辅助系统将独立微处理

数量日渐增多的驾驶员辅助功能。盲

器与 FPGA 搭配使用,由 FPGA 处理

点检测、变道辅助、行人及标牌检测

大多数并行计算,用微处理器执行串

等众多此类功能会在感测到潜在危险

行决策。

宽,才能支持四路、五路乃至六路实时 视频输入的同步处理。 SMARTER 视觉技术可延长使用寿命 另一个 Smarter 视觉正在实现显 著差异化的领域是医疗电子行业,其在 各种医疗成像系统中广泛使用 Smarter 视觉技术,从内窥镜及成像扫描装置 (CT、MRI 等 ) 到 诸 如 Intuitive Surgical 公司的达芬奇(Da Vinci)等 机器人外科系统,无一例外。详细介绍 见赛灵思中国通讯期刊第 42 期(见:

china.xilinx.com/publications/archives/ xcell/Xcell77.pdf )。 达芬奇高级 3D 视觉系统可帮助外 科医生操纵极其精度、流畅以及触觉敏 感的机器人外科仪器,完成各种精细而 又复杂的外科手术。每诞生一代新系 统,外科医生就能够执行更多数量的各 种外科手术,确保更好的治疗效果和更 短的恢复时间。控制和协调手术过程的 技术精密程度令人叹为观止,这主要要 归功于处理能力和逻辑的完美结合。因 而,每一代更新技术都将从处理器和逻 辑的更高集成中获益。 SMARTER 视觉可实现

情况时,向驾驶人员发出警告。汽车

与监视等在每个摄像头上执行分

制造商最近推出的车型甚至还可提供

析功能的其它市场不同,各种汽车成本

此外,Smarter 视觉在让我们保持

更为高级的系统,如自动紧急制动和

压力正在促进分析功能在中央计算中心

联系方面也在取得重大进步。如果您在

车道保持等。它们不仅可监测车辆环

执行。这样,汽车制造商可最大限度降

现代办公楼里工作,您的公司很可能至

境,发现潜在问题,而且还可辅助驾

低每个摄像头传感器的成本,进而最终

少有一个会议室安装有高级网真会议系

驶员采取纠正措施,避免事故或减轻

降低整个系统成本。这就意味着中央单

统。这不仅便于您与世界各地的参会者

其严重性。

元的处理平台需要提供极高的性能和带

对话,而且还能亲眼看到他们,就像在

12

赛灵思中国通讯第四十八期

身临其境的体验

2013 年第二季度


身边面对面交流一样。这些视频会议系

拥有一款具有极高灵活性的处理平台、

术可在能够在同一开发板上通信的不

统的精密程度在不断提高,以致于能感

丰富的资源组合以及致力于推进

同 处 理 器 和 FPGA 中 实 现, 而 Zynq

知在桌边或者会议中发言的人是谁,然

Smarter 视觉技术发展的可靠生态系

SoC 则为电子产业带来了前所未有的

后可自动将镜头拉近并对准此人,用更

统。过去 10 年来,赛灵思器件在帮助

高集成度。现在,我们能通过同一芯

高画质的逼真视频突出显示。

各企业推进这些视觉系统创新方面一

片上处理器和逻辑之间 3,000 个高性

赛灵思广播及消费类市场营销总监

直发挥着重大作用。历经五年发展后

能连接以芯片速度而不是板级速度在

Ben Runyan 表示,开发网真技术的企

的今天,赛灵思推出了一款整体解决

主智能处理器和 FPGA 逻辑之间交换

业正在寻求为用户创造更加身临其境体

方案,其将帮助 Smarter 视觉应用开

信息。”

验的途径。Runyan 称:“这样做的目

发商快速推出新一代创新技术。 10 多年来,嵌入式视觉技术设计

的是让用户感觉他们同处一间会议室,

ᖂ໘⧚఼+DSP+FPGA乘໘⧚఼

功能车载驾驶员辅助系统时相对于传

ᨘ‫ڣ‬༈

DSPІ㸠‫ܗ‬ӊ໘⧚

ᖂᏻ໘⧚੠䗮ֵ

图 1 展现了 Zynq SoC 在创建多

FPGA

㾷‫އ‬ᮍḜӬ࢓

ᨘ‫ڣ‬༈

FPGAᑊ㸠‫ڣ‬㋴໘⧚ ᨘ‫ڣ‬༈

ࡳ㛑A

ࡳ㛑B

ࡳ㛑C

ࡳ㛑D

䌯♉ᗱZynq-700 All Programmable SoC 㾷‫އ‬ᮍḜ

Zynq SoC ೒‫ڣ‬䞛䲚੠䕀ᤶ

໘⧚㋏㒳˄PS˅ ࡳ㛑AǃBǃCǃDᑨ⫼䕃ӊ

ᨘ‫ڣ‬༈

㋏㒳䲚៤ 3Ͼ㢃⠛㓽‫ޣ‬Ў1Ͼ㢃⠛

ᨘ‫ڣ‬༈

㋏㒳ᗻ㛑ᦤ催2‫ס‬

ᨘ‫ڣ‬༈ ᨘ‫ڣ‬༈

ᴤ᭭⏙ऩ៤ᴀ䰡Ԣ25%

೒‫ڣ‬ᔃ᳆੠ᣐ᥹ ᨘ‫ڣ‬༈ Ⳃᷛߚ㉏

䖤ࡼԄ䅵

ৃ㓪⿟䘏䕥˄PL˅

ⳂᷛẔ⌟

ᘏࡳ㗫䰡Ԣ 50%

⹀ӊࡴ䗳

图 1 — 在驾驶员辅助应用中,Zynq All Programmable SoC 与多芯片多摄像头系统的对比

但实际上他们可能身处地球两端。要做

人员一直充分利用赛灵思 FPGA 的可

统多摄像头、多芯片架构的优势。赛

到这一点,需要业界一流的摄像头及显

编程性、并行计算功能和快速 I/O 功能

灵思架构(图下左)可使用连接至一

示技术,这需要高级图像处理技术。随

满足大量嵌入式视觉系统的需求。过

个 Zynq SoC 的一组摄像头,实现盲

着这些技术日益变得更加高级,可带来

去,设计人员用 FPGA 加速系统中可

点检测、360 度环视、车道偏离告警

更加逼真的体验,它不但将简化协作,

能拖慢主处理器的功能,或者用 FPGA

以及行人检测等功能绑定。相反,现

让企业工作效率进一步提高,同时还可

来运行仅靠处理器不能执行的并行计

有多功能驾驶员辅助系统需要使用多

大幅降低差旅需求与费用。”

算 任 务。 而 现 在 随 着 Zynq-7000 All

块芯片和多个摄像头,其不但可让集

Programmable SoC 的推出,嵌入式

成复杂化,对性能和系统功耗造成不

视觉技术开发人员可获得一款理想开

利影响,而且还可导致 BOM 成本上升。

赛灵思:面向 SMARTER 视觉的 ALL PROGRAMMABLE 方案

发新一代 Smarter 视觉应用的全面可 编程器件。

一些半导体芯片厂商提供将 ARM 处 理 器 和 DSP 或 GPU 结 合 的

要全面快速推进 Smarter 视觉技

赛灵思视频技术工程设计总监

ASSP,但这类器件过于僵化,或是难

术的发展,满足新市场需求,就必须

Jose Alvarez 表示:“Smarter 视觉技

以为当今众多更智能应用提供足够的

2013 年第二季度

赛灵思中国通讯第四十八期

13


计算性能。基于这些器件的解决方案

何摄像头需要。下一个信号处理模块

这种性能不足,开发人员往往还要在

往往需要增加独立的 FPGA 来解决此

执行像素级处理或视频处理工作(具

系统中采用独立的 FPGA。

类低效率问题。

体取决于应用是面向图形处理还是显

可编程性与性能 Zynq SoC 相对于以 GPU 和 DSP 为中心的 SoC 而言,其主要优势就是

Zynq SoC 显 然 是 开 发 Smarter

示)。再下一个模块执行图像分析功能,

视觉系统的最佳芯片选择,而赛灵思

这是一个计算密集型任务,通常需要

在该器件开发的早期阶段就认识到,

并行计算,而这则是 FPGA 最擅长的

应当对编程进行优化,特别是对那些

任务。通过后续三个模块(红色),

比 较 习 惯 用 C 和 C++ 开 发 视 觉 算 法

具有的可编程性和高性能。ARM 处理

处理系统从分析功能中获得元数据结

的设计人员来说更应该优化编程方法。

系统具有软件可编程性,FPGA 逻辑

果,创建结果的图形化表达(图形步

可通过 HDL 或 C++ 编程,甚至 I/O 也

为 此, 赛 灵 思 于 2012 年 6 月 向 客 户

骤),然后对结果编码用于发送。

推 出 了 一 款 最 先 进 的 软 件 环 境:

是全面可编程的。这样,客户就能创

在 Zynq SoC 中,处理子系统和

Vivado 设计套件,其包含有业界一流

建出适合其特定应用的极高性能

FPGA 逻辑协同工作。如果需要压缩,

的高层次综合等多项技术。赛灵思于

可以方便地在 FPGA 逻辑中实现合适

2011 年 1 月 收 购 AutoESL 获 得 了 这

Smarter 视觉系统,并让其系统从竞争 产品中脱颖而出。

的编解码器。然后在最终的信号处理

图 2 给 出 了 smarter 视 觉 系 统 的

种高层次综合技术。Vivado HLS 特别

模块(标示为“输出”)中,开发人

适用于嵌入式视觉应用。比方说,如

一般性信号流程,从中可以看出 Zynq

员使用 Zynq SoC 的可编程 I/O,可以

果视觉系统开发人员用 Zynq SoC 开

All Programmable SoC 相 对 于 基 于

满足多种不同通信协议和视频传输标

ARM 和 DSP 以 及 基 于 ARM 和 GPU

发 的 C 或 C++ 语 言 算 法 运 行 速 度 不

准的要求,有的是厂商专有标准,有

够快,或者给处理系统带来过重负担,

的 ASSP 解决方案的优势。

的是特定市场标准,还有的则是业界

那么这些开发人员就能把 C 算法提交

流程中第一个信号处理模块(绿

标准 IP 协议。与之相比,当开发人员

给 Vivado HLS,并将这些算法综合成

色)是连接器件到摄像头传感器的输

采用以 DSP 和 GPU 为中心的 SoC 开

Verilog 或 VHDL, 让 其 在 器 件 的

发 算 法 时, 可 能 ASSP 中 的 DSP 或

FPGA 逻 辑 中 运 行。 这 就 能 将 Zynq

GPU 难以提供所需的性能。为了弥补

SoC 上的处理子系统解放出来,让它

入。在 Zynq SoC 中,开发人员可让 多种不同 I/O 信号适应于客户连接的任

䕧ܹ

೒ᔶ 㾚乥ߚᵤ

4K2K MIPI 䅵ㅫ㽕∖

‫ܗ‬᭄᥂

೒‫ڣ‬໘⧚IP

㾚乥໘⧚IP

䕧ߎ

㓪㾷ⷕ఼ H.265/ HEVC

㾚乥ߚᵤ ࡳ㛑ߚᵤ

H.264

SDI HDMI DisplayPort

I/O

240 Gops

50-100 Gops

1-10 Gops

ϧ⫼ 50-200 Gops

I/O

Zynq SoC

ৃ㓪⿟I/O

ৃ㓪⿟FPGA

ৃ㓪⿟FPGA

ARM + FPGA

ৃ㓪⿟FPGA

ৃ㓪⿟I/O

DSP + ARM

೎ᅮI/O

೎ᅮIP

೎ᅮI/O

DSP ARM

GPU IP

೎ᅮI/O

GPU + ARM

᳝䰤೎ᅮ I/O

ϡৃ㛑

᳝䰤೎ᅮ I/O

ARM

GPU IP

೎ᅮI/O

图 2 —一般性视频及图像处理系统流程 14

赛灵思中国通讯第四十八期

2013 年第二季度


封面专题

从事更适合自己的任务,从而加速

构师方便地比较设计方案中的给定算

件诞生后,赛灵思让该套件的设计具

整体系统性能。

法到底是在处理器还是 Zynq-7000 All

有器件意识,这样就能充分发挥每款

Programmable SoC 的 FPGA 逻辑部

器 件 的 功 能。Alvarez 称, 有 了 IP

分运行效率最佳。赛灵思开源库的推

Integrator,Vivado 设计套件不仅具有

出可为客户提供一个良好的设计开端。

器件意识,现在还具有目标平台意识,

就是计算机视觉的缩写)库,进一

赛灵思使用 Vivado HLS,已经编译了

支持所有 Zynq SoC 和 7 系列 FPGA

步 完 善 了 Smarter 视 觉 技 术。

OpenCV 库中 30 多种最常用的嵌入式

开发板以及套件。具有目标平台意识,

OpenCV 是 OpenCV.org 发 布 的 一

视觉算法。客户能够在系统级快速权

就意味着 Vivado 设计套件现在能配置

种业界标准的开源算法库,可供嵌

衡处理器与逻辑,并且立即在 Zynq-

和应用特定开发板的设计规则检查,

入式视觉开发人员用于迅速创建视

7000 All Programmable SoC 中运行,

从而确保快速推出切实可行的系统。

觉系统。世界各地的嵌入式视觉开

为给定应用提供最理想的系统。

OPENCV 库 赛灵思还推出了 OpenCV(CV

举例来说,当设计人员选择赛灵

发人员都积极为该库贡献新算法,

赛灵思及其联盟成员将积极不断

思 Zynq-7000 SoC 视频及成像套件,

目前该库已包含有 2,500 多种使用

地从 OpenCV 库移植更多功能,按季

并在 IP Integrator 中实例化 Zynq SoC

C、C++、Java 和 Python 语言编写

提供给赛灵思的用户群。由于开发人

处理系统时,Vivado 设计套件则会用

完成的算法(见第 24 页的 OpenCV

员可以在几乎任何商用处理器上运行

恰当的外设、驱动程序和存储器映射

报道)。库中的算法复杂程度各个

OpenCV 库,视觉设计人员将能够比

对处理系统进行预配置,从而为开发

不同,从图像滤波器等简单功能到

较运行在各种芯片器件上的算法的性

板提供支持。嵌入式设计团队现在能

动作检测等高级分析功能,无所不

能并为之建立基准。

针 对 双 核 ARM 处 理 系 统 和 高 性 能

作为 Smarter 视觉计划的一部分,

有。 Alvarez 表示,这些 OpenCV 算

赛灵思还开发出了 SmartCORE IP 套

法所针对的几乎是用任何商用微处理

件,以满足各种细分市场的 Smarter

器 和 DSP 实 现 的 方 案。 由 于 Zynq

视 觉 设 计 要 求, 为 新 一 代 产 品 带 来

SoC 使用的是 ARM 处理系统,因此

Smarter 视觉功能。借助赛灵思最新推

可在其处理器上实现这些采用 C++

出的 IP Integrator 工具,客户能够将

语言编写的算法。

SmartCORE IP 套 件 提 供 的 内 核 和

FPGA 逻辑更迅速地识别、重用并集 成 IP 软 / 硬核。 用户可使用一系列对话框设定处 理 系 统 及 其 逻 辑 之 间 的 接 口。IP Integrator 随后自动生成 RTL,并针对 性能或面积进行优化。接下来用户可 添加自己的定制逻辑,或使用 Vivado

Alvarez 指 出, 有 了 Vivado

OpenCV 库提供的算法迅速实现在设

HLS,用户可以用 C 或 C++ 语言编

计中。这种新工具是一种新型即插即

写这些算法,将函数调用从 OpenCV

用 IP 环境,方便客户在原理图环境中

到目前赛灵思客户使用赛灵思

改为 HLS,然后使用 Vivado HLS,

工作,或者如果需要的话也支持在命

FPGA 已经开发出怎样的 Smarter 视

将算法综合成或者编译成为便于

令行环境中工作。

觉 系 统, 是 非 常 值 得 一 看 的。Zynq7000 All Programmable SoC 和强大

Zynq-7000 SoC 的逻辑部分实现而 优化的 RTL 代码。在 Vivado 环境中 使用 OpenCV,便于 Smarter 视觉架 2013 年第二季度

IP 目录完成设计。

目标平台意识 Alvarez 指 出, 自 Vivado 设 计 套

的 Smarter 视觉环境的问世,为开发 更令人叫绝的新产品提供了保障。 赛灵思中国通讯第四十八期

15


Xi l i nx


无线通信领域的出色表现

作者:Chris Dick 赛灵思公司首席 DSP 架构师 chrisd@xilinx.com

线电信运营商正急需各种办法来利用呈爆

炸性增长需求的移动因特网。但是仅靠简 单部署更多、速度更快的设备还不行,电 信运营商必须通过更加智能的途径来充分

利用网络。他们正积极开发自组织网络等新型架构,以 便为客户提供出色的优质服务,并最大限度地提高盈利 能力。 赛灵思正助力无线网络公司率先利用这类新型架构, 并在 28nm All Programmable 器件和 Smarter Wireless Networking 解决方案的基础上向市场推出产品,同时赛 灵思还提供配套基础设施,包括 SmartCORE ™ IP、 Vivado ™设计套件和服务专业技术等。 移动 IP 的爆炸性增长 过去 4 年来,移动 IP(因特网协议)使用呈爆炸性 增长。国际电信联盟的 ICT 统计数据显示,从 2000 年 到 2010 年,移动蜂窝用户的数量增长 8 倍,超过了同 期因特网用户增长的幅度。移动用户大发展的趋势同固 话用户数量持续下降的趋势大相径庭。截至 2010 年, 移动用户数量比固话用户数量多 4 倍。智能手机和平板 技术的推出从根本上改变了企业运营的方式,同时也改 变了人们休闲娱乐、同亲友互动的方式。 智能手机和平板电脑的功能和商业模式与因特网的

随着移动 IP 的迅速发展,电信 运营商需要灵活的芯片和设计 工具来构建高性能异构网络架 构,从而充分满足未来需求。

另一组成部分蜂窝网络之间存在着一种共生性联系,也 就是说,这二者是互相促进的。随着智能手机和平板电 脑的功能越来越强大,人们会找到利用这些新功能的新 途径,这就会增加网络的需求压力。在此情况下市场机 制就会发挥作用,网络运营商会进行网络升级,接下来 移动设备公司又要推出新的设备消耗更高的网络容量, 这样这种循环就会周而复始地进行下去。而现在,分析 人士认为 2020 年的网络容量需求要比现在的需求高出 1000 多倍。 自智能手机成为主流的这 4 年来,我们看到屏幕像 素密度从此前的 163PPI 提高到当前的 326 PPI(每平方 英寸拥有像素数量)。与此同时,存储容量从 32GB 翻 番到 64GB,而后置摄像头则从 300 万像素拍摄 VGA 视 频提升到 800 万像素,并可支持 30fps 1024p 高清视频。

2013 年第二季度

赛灵思中国通讯第四十八期

17


无线通信领域的出色表现

全球智能手机用户达到 10 亿经历了 16 年时间,但据估计全球再 增加 10 亿新智能手机用户只需要 3 年时间。 网络容量需求将呈指数级增长。 移动设备制造商现在推出的前置摄像头

望从办公室下载一些技术报告,或者

念出现以来,行业的比特率已经增加

能支持 FaceTime 等应用,进而支持移

是多部视频以备待会观看。在线互动

了三个数量级,同时也对应于过去 30

动商业视频会议,并能帮助移动用户随

游戏和金融交易的增长需求也对容量

年间每 10 年吞吐量就增加一个数量

时在线保持联系,比方说出国在外的移

和时延提出了全新的挑战。

级。显然,智能手机和平板电脑用户

Facebook 等高级社会技术系统和

数量的不断提升会带来巨大的电信业

从 2009 年至今,智能手机发展已

功能越来越强大的移动设备已经成为

务增长,并且这种趋势预计将会一直

经经历了惊人的 6 代发展演进。从首

全球数十亿人日常生活的一个重要组

持续到 2020 年。

部商业成功的平板电脑推出到现在的

成部分。社交媒体用户使用移动应用

自 19 世纪末人类实现首次无线电

短短 3 年间,我们已经看到了整整 5

的活跃度超过了以往任何时候。一家

通信以来,支持人们随时随地与任何

代平板电脑技术,而两年前的 720p 视

媒体机构 Ruder Finn 近期开展的一项

人进行通信的技术就在不断发展,而

频功能现在已经发展到了 1024p 高清

调查研究显示,91% 的移动用户都在

且也在支持各种多媒体服务的发展。

视频的典型后置摄像头功能。目前全

使用社交计算应用,而使用社交计算

不过,虽然移动用户设备以及无线和

球已有超过 10 亿部智能手机,北美超

应用的桌面用户比例仅为 79%。美国

有线网络本身已经实现了巨大发展,

过一半人口拥有智能手机,要为这么

人每天平均使用移动设备的时间达到

但真正的网真(telepresence)功能自

多像素提供多媒体内容并从移动到云

2.7 个小时,其中 45% 的时间用于发

动配置尚未实现,因为所有人都经历

端获得图像和视频数据,显然要带来

布评论,43% 的时间用于跟朋友互动

过断开连接、容量和覆盖问题、内容

巨大的网络容量和时延压力。全球智

联系,40% 的时间用于和他人分享内

下载时间过长、终端电池没电、网络

能手机用户达到 10 亿经历了 16 年时

容,而 38% 的时间用于在社交网站上

时延影响媒体体验质量等各种问题。

间,但据估计全球再增加 10 亿新智能

共享照片。现在的社交网站正越来越

除了人际通信和 IP 网络类型的通信之

手机用户只需要 3 年时间。网络容量

成为人们所青睐的社交平台。

外,我们还看到一种新型服务发展,

动用户能一直和家人保持联系。

需求将呈指数级增长。

人们使用移动技术方式的变化带

那就是设备之间的通信(或者说设备

随着功能越来越强大的智能手机

来的一大结果就是无线网络上目前的

类型通信),这将对网络功能提出更

和平板电脑支持人们开发的新式服务

数据流量要大大超过语音流量。一些

高的要求。

和应用,网络也必须不断演进发展,

行业报告预计全球移动数据增长在今

支持更高容量和更大覆盖范围,同时

后 几 年 将 保 持 约 40% 的 增 幅, 从

还要改进体验质量,缩短时延,从而

2009 年每月 90PB 的水平提高到 2014

充分满足视频会议、视频流、本地设

年每月 3.5EB 以上的水平。

3GPP 等标准组织机构以及“新 一代网络移动联盟”等业界联盟和业 界学术界研究实验室等都在竞相定义

备下载媒体内容等各种不同的移动体 验要求。举例来说,在登机开始长途

网络不断发展演进

努力满足带宽增长的需求

并推动移动宽带 4G 技术的发展,包括

飞行之前,您可能希望下载最新一期

为满足上述需求,同时也针对新

LTE(长期演进)和 Evolved Packet

的赛灵思中国通讯第四十八期或 IEEE

型移动应用和相关商业模式的兴起,

Core 等标准,以解决上述各种挑战。

Communications Magazine 或者下载

无线网络的容量确实也在大幅提升。

过 去 4 年 来, 我 们 已 经 从 2008 年 底

一两份其它报纸、杂志等,也可能希

过去 30 年间,自 2G GSM 系统的概

3GPP Release 8 规范的标准化(首款

18

赛灵思中国通讯第四十八期

2013 年第二季度


无线通信领域的出色表现

3GPP 标 准 定 义 采 用 多 载 波 OFDMA

䩜ᇍᆍ䞣䳔∖ⱘ㾷‫އ‬ᮍḜ

和 SC-FDMA 技术的新一代功能)发 展到 2011 年 LTE 的首次重大演进以 及 2011 年 批 准 的 LTE-Advanced Release 10 规范。虽然 LTE 和 LTE-A

• 2D ᳝⑤໽㒓䰉߫(AAA) 催䖒㑺100 eNB

• 催䰊MU-MIMOӴ䕧㟇 10ԭϾEU

• MU-MIMO ᏺ᳝10ϾEU

系统仍在部署之中,但 Release 12 工 作组已经在规划面向 LTE-B 的相关技 术和要求了。

LTE ෎⸔䆒ᮑ

无线产业面临的一大关键性挑战 就 是 如 何 扩 大 容 量。Claude E. Shannon 在 1948 年的一篇开创性论

• IP FD-MIMO eNB

• CPRI

文(《通信的数学理论》)中提出了 著名的通道容量方程式。当时这位通 信产业的先锋还在贝尔实验室工作。 他指出,带宽效率的提高会必然伴随

图 1 - 工业和学术研究机构以及 3GPP PHY 工作组正在分析未来一代的蜂窝访问能否采用大规 模或 3D MIMO。大规模 MIMO 相对于当前系统而言可将天线系统提高一个数量级,能够部署数 百个天线。

着功率效率的下降。这个规律说明, 容量是带宽的线性函数,同时是信噪 比的对数函数。这就促使研究人员设

可 用 来 提 高 单 个 用 户 的 吞 吐 量,

事实上,实现方案的损失,比方说通

法努力找到在一系列复杂约束条件下

SDMA 配置则能通过在用户中共享系

道估算不精确等,会限制理论上的改

高效利用带宽的方法,这些约束条件

统总吞吐量从而最大限度地提高一个

进。

包括监管要求、频谱许可证、互操作性、

单元所支持的用户数量。MIMO 收发

我们已经看到而且还将继续看到

多路访问、可靠性、服务质量以及每

器搭配分布式或虚拟 MIMO 能带来低

异构网络的加速部署。这种网络中的

个用户设备的频谱灵活性等。

功耗或“绿色”解决方案,以解决容

宏蜂窝通过中继进行扩大,而小蜂窝

量问题。随着业界向 LTE-B 技术发展,

则配合解决高密度城市峡谷环境中的

调 制 方 案 和 演 进 分 组 核 心(evolved

或许 3D MIMO 或全维 MIMO 会得到

容量和覆盖范围问题,从而加强建筑

packet core)技术背后的原因,同时

未来版本 3GPP 标准的采用,也会得

物内部的覆盖范围,并用于监管要求

也在促进 LTE-Advanced 中载波聚合

到构建宏基站 OEM 厂商的采用(图

禁 止 安 装 宏 蜂 窝 的 环 境。 异 构 网 络

功能的发展。不过单靠通道带宽来应

1)。运营商将部署异构网络,搭配波

(HetNet)和单元密实化对网络设计

对容量问题是远远不够的。

束形成小蜂窝,提供纵向和横向电子

人员在回程、单元间干扰和单元切换

波束倾斜功能,可解决覆盖漏洞问题,

乃至电信级 Wi-Fi 等方面提出了新的挑

并最大限度地降低单元之间的干扰。

战。

这些约束条件是 LTE 采用多载波

通 过 采 用 空 分 复 用(SDM) MIMO 技术,我们能进一步提高容量, 与对数容量方程式不同的是,在发射

不过,扩大载波聚合与高级多天

继 Shannon 开创性论文发表之后

和接收天线数量相同的情况下,容量

线技术还不够。在实践中难以实现理

的 60 年,通过大量研究工作得出了高

的线性提升在理论上是可能的。SDM

论上空间复用带来的容量提升优势。

级编码方案(如 turbo 代码),这些编

2013 年第二季度

赛灵思中国通讯第四十八期

19


无线通信领域的出色表现

码方案与多天线技术、调制系统、通 信协议和数字 IF 处理等的结合能够帮 助网络公司实现尽可能利用通道容量 的系统。不过,要充分满足更高容量、 更稳定通信和更低端对端时延的巨大 需求,我们还有很长的路要走。除了 通过 OFDMA 和智能天线配置等方法 更加灵活高级、或者更智能地利用频 谱之外,增强单元间干扰消除等概念 也不断涌现,协助切换工作,并保持 互联设备的稳定性。 自组织网络(SON)包含着一系 列丰富的概念,这也是 LTE 路线图上 必须实现的技术。SON 包括很多方面, 如自动邻居关系、负载平衡、流量增 长和容量管理等。采用自我优化、自 我修复的技术有助于节约能耗,扩大 覆 盖 范 围, 并 实 现 LTE 参 数 优 化。 RACH(随机访问通道)优化就是一 个例子。 SON 还有一个关键特性,就是能 提高网络的智能,其最终目标是最大 限度地减少运营成本相关的驱动测试。 为了改进网络,运营商通常现场部署 工程师收集无线电测量信息,以发现 网络中覆盖漏洞等问题,并明确是否 需要调节基站或网络参数。不过,这 种传统的驱动测试成本很高,而且收

图 2 - Berrou 等在其著名的 1993 年论文中率先发布的卷积 Turbo 码瀑布图。 Turbo 码对 3G 和 4G 无线系统中采用的编码系统进行了彻底改革

的重要发展,有助于在网络中的节点 会造成频谱再生这样的不利情况。这 插入,支持在节点和网络生命周期中 种带外频谱发射的不良情况会影响邻 实现自动的参数调节。

近频谱,不利于附近的通信系统,而

然而,网络设计还要考虑一个问 且也不符合监管规定要求。 题,就是运营成本问题,它与运营支

一种解决方案就是采用较大的退

出密切相关,实际上就是资本支出, 避,并且只执行放大器传输功能的线 以 RF 平台为例,该平台包含了功率放 性部分。不过,由于我们对功率放大

集到的测量信息只能提供有限的视图,

大器,即用于多天线系统的放大器。 器的效率或者放大器转换 DC 电源到

只涉及某个时间点上整个网络某一点

RF 电子技术的环保因素包含多个方 RF 载波的效率感兴趣,因此最好只采

的情况。新一代移动网络和 3GPP 组

面。非线性功率放大器的部署从成本 用较小的输出退避来操作放大器,因

织机构成员正积极探讨应对上述挑战

角度看是很不错,但 LTE RAN 下行使 为放大器在此偏置点上的效率最高。

的方法。Release 10 版规范提出了驱

用的非恒定包络 OFDMA 调制方案在 偏置放大器可最大限度的减少退避,

动测试最小化的概念,这是 SON 领域

由低成本非线性放大器处理的情况下 这就意味着更靠近传输功能的压缩部

20

赛灵思中国通讯第四十八期

2013 年第二季度



无线通信领域的出色表现

也包括我们对网络环保考虑因素的需

当然,并非所有基站,无论是宏 虑因素,其中包括运行自组织网络应

求。就 LTE-A 和载波聚合而言,通道

蜂窝也好还是小蜂窝也好,都需要支 用以及最大限度地减少驱动测试,执

带 宽 转 为 100 MHz。 波 峰 因 数 削 减

持所有可能的方案。因此,OEM 厂商 行 LTE 参数优化、实现实时性能管理、

(CFR)和功率放大器线性化技术要

面临着一个难题,就是要快速构建一 收集网络和设备规划的统计信息到运

不断发展,以应对宽通道需求,这就

系列低成本解决方案,满足网络运营 行协议栈和 O&M 软件等。

意味着需要更高的信号处理功能。赛

商的频率规划要求。这些要求是基于

灵思的通信业务部多年来一直积极解

频谱许可、频谱碎片整理(spectrum 赛灵思为系统设计人员提供了一种业界

决上述问题,并已开发了 CFR 和数字

fragmentation)和单个 RF 链支持多种 首 创 的 计 算 模 式, 带 来 了 双 核

预失真 IP,可服务于各种空中接口协

射频访问技术 ( 多 RAT 挑战 ) 需求之 Cortex ™ A9 处理器与高性能可编程逻

随着 2012 年 Zynq SoC 的推出,

ᄬ‫఼ټ‬

ᄬ‫఼ټ‬ ᥻ࠊ఼

SPI/I2C

6/10G Serdes

CPRI/ OBSAI Џ䆒໛

6/10G Serdes

CPRI/ OBSAI Џ䆒໛

‫ܝ‬ᄺ῵ഫ

ARM A9: O&M RTOS

᭄ᄫϞব乥 (DUC)

ARM A9: DPD Update

⊶ዄ ಴᭄ ࠞ‫ޣ‬ (CFR)

UARTS

᭄ᄫ乘༅ⳳ (DPD)

᭄ᄫϟব乥 (DDC)

GPIO

DAC

JESD204 ៪ LVDS

DAC

JESD204 ៪ LVDS

ADC

JESD204 ៪ LVDS

ADC ADC

图 3 - Zynq SoC 能构建单芯片数字 IF 处理链,其中包括数字上变频和数字下变频、 波峰因数削减、数字预失真和连接等功能。

议。

上的综合体。导致情况变得更加复杂 辑架构的紧密结合,可用于信号处理、 放眼未来,我们看到射频处理将

的是异构网络的推出,它包括宏蜂窝 MAC 层加速和连接工作,包括以太网、

会越来越复杂,因为需要支持越来越

基站、小蜂窝底层和 Wi-Fi 负载的组合。 CPRI 和 OBSAI 等。这些器件和组合

多的载波配置。在不到 4 年的时间里,

规模和灵活性这两个属性要相互平衡, 中的其它产品能直接用于满足各种计算

LTE 规范从基本的六通道带宽(1.4、3、

这也是赛灵思 All Programmable SoC 要求,包括 ISA 和数据路径、可扩展

5、10、15 和 20 MHz) 发 展 到 了

和 FPGA 的核心所在。

Release 10,而组件载波能在带内和

性和灵活性等,从而帮助 OEM 厂商构

不过 PHY 中的问题不只包含信号 建特色化产品,并以较低成本加速产品

带间配置进行聚合。而在 Release 12

处 理。LTE 和 未 来 的 LTE-A 以 及 上市进程。

中,我们已开始调查进一步加强频谱

LTE-B 网络在许多方面变得更加智能,

灵活性的解决方案。

特别是软件越来越成为一个重要的考 战。随着射频访问网络功能的发展,

22

赛灵思中国通讯第四十八期

新时代的回程技术也将是一种挑

2013 年第二季度



嵌 入 式 视 觉领域 的出 色表现

用 OpenCV 和 Vivado HLS 加速基于 Zynq SoC 的嵌 入式视觉应用开发

24

赛灵思中国通讯第四十八期

2013 年第二季度


嵌入式视觉领域的出色表现

作者:Fernando Martinez Vallina 赛灵思公司 HLS 设计方法工程师 Vallina@xilinx.com José Roberto Alvarez 赛灵思公司视频技术工程设计总监 jalvarez@xilinx.com

将 Vivado HLS 与 OpenCV 库配合使用, 既能实现快速原型设计,又能加快基于 Zynq All Programmable SoC 的 Smarter Vision 系统的开发进度。 算机视觉技术几年来已发

入式器件装上了慧眼,能帮助该器件

展成为学术界一个相当成

通过计算机视觉算法与环境互动。嵌

熟的科研领域,目前许多

入式系统和计算机 / 机器视觉的融合

视觉算法来自于数十年的科研成果。

催生了嵌入式视觉技术,这是一个快

不过,我们最近发现计算机视觉技术

速发展的领域,正成为设计能够观看

正快速渗透到我们生活的方方面面。

并了解周边环境的设备的基础所在。

现在我们拥有能自动驾驶的汽车、能 根据我们的每个动作做出反应的游戏 机、自动工作的吸尘器、能根据我们 的手势做出响应的手机,以及其它等 视觉产品。 今天我们面临的挑战就是如何高 效实现上述这些及未来的各种视觉系 统,同时满足严格的功耗和上市要求。 此 类 产 品 可 以 Zynq ™ All Programmable SoC 为基础,并结合 广泛使用的计算机视觉库 OpenCV 和 高层次综合 (HLS) 工具,以实现关键 功能的硬件加速。这种强强组合能为 设计和实现 Smarter Vision 系统提供 强大的平台。

2013 年第二季度

嵌入式视觉系统的开发 嵌入式视觉技术要在计算平台上 运行智能计算机视觉算法。对许多用 户来说,标准的桌面计算处理平台即 可方便地满足需求。不过,一般性计 算平台或许无法满足高度嵌入式产品 的生产需求,这种产品要做到小型化、 高效性、低功耗,而且要处理庞大的 图像数据集,比如同时处理多个每秒 60 帧的实时高清视频流。 图 1 给出了设计人员通常用来创 建嵌入式视觉应用的流程。算法设计 是整个流程中最重要的一环,因为算 法将决定我们能否满足任何特定计算

嵌入式系统在当今的市场中无所

机视觉任务的处理和质量标准要求。

不在。不过,计算功能方面的局限性,

首先,设计人员在 MATLAB® 等数字

尤其是在处理大型图片、高帧率时计

计算环境中搜索算法选项,明确高级

算能力低下严重限制了嵌入式系统在

处理选项。一旦确定了适当的算法,

计算机 / 机器视觉实际实现方面的应

设计人员通常用 C/C++ 等高级语言来

用。图像传感器技术的发展犹如为嵌

为算法建模,以便快速执行,并满足

赛灵思中国通讯第四十八期

25


嵌入式视觉领域的出色表现

ㅫ⊩䆒䅵

ᓎ῵

㋏㒳ߚऎ

ॳൟ䆒䅵

ᅲ⦄

᥼ߎ

图 1 - 嵌入式视觉系统开发流程

最终比特精度实现方案的要求。 系统分区是开发过程中的重要步

ZYNQ SOC:嵌入式视觉的最明智的

在 Zynq SoC 中的高度集成能确保相

选择

对于采用分立式组件设计而成的系统 在开发机器视觉应用过程中,设

而言提高数据传输速率,降低功耗和

计团队必须选择高度灵活的器件,这

材料清单成本。我们能用 Zynq SoC

一点至关重要。设计团队所需的计算

实现实时处理支持 1080p60 视频序列

平台应提供强大的通用处理功能,以

(1,920 x 1,080 RGB 图像,每秒 60 帧)

支持多种不同的软件生态系统,此外

的系统,达到每秒数千亿次运算的处

还要有稳健可靠的数字信号处理功能,

理功能。

以便实现计算强度高、存储高效的计

为了全面利用 Zynq SoC 的诸多

算机视觉算法。芯片的高度集成对实

功能与特性,赛灵思推出了以 IP 和系

现高效、完整的系统至关重要。

统为中心的设计环境 Vivado ™设计套

赛 灵 思 All Programmable SoC

件。该套件可加速集成和实现,从而

是以处理器为中心的器件,在单芯片

可帮助设计人员提高开发生产力,进

上 提 供 了 软 / 硬 件 和 I/O 可 编 程 性。

而 动 态 开 发 出 Smater 嵌 入 式 产 品。

Zynq SoC 在单个器件中集成了一个

Vivado HLS 作为该套件的一个组件,

ARM® 双核 Cortex ™ -A9 MPCore ™

能帮助设计人员将采用 C/C++ 语言开

处理系统、FPGA 逻辑和一些关键外

发的算法编译为 RTL,以便在 FPGA

设。这样,该器件就能帮助设计人员

逻辑中运行。 Vivado HLS 工具非常适用于嵌入

实现极为高效的嵌入式视觉系统。 处理子系统、FPGA 逻辑和外设

式 视 觉 设 计。 在 此 流 程 中, 您 用 C/

骤。在此,设计人员通过算法性能分析, 可明确他们要对算法的哪些部分进行

ࡴ䗳ㅫ⊩CࠄIP䲚៤

硬件加速,从而满足处理代表性输入 数据集的实时要求。同样重要的是对 目标平台中的整个系统进行原型设计,

Cǃ C++៪SystemC

ㅫ⊩㾘㣗

从而实际地检测性能预期。一旦原型 设计过程说明设计满足了所有性能和

Vivado HLS

ᖂൟᶊᵘ᥶㋶

质量目标要求,那么设计人员就能在 实际的目标器件中启动最终系统实现。 最后一步就是测试运行在芯片上的设 计在各种用例场景下的表现。一切检 查完成后,设计团队就能发布最终产

RTLᅲ⦄

VHDL៪Verilog

System IP Integration

+ _

+ _

䌯♉ᗱ䆒䅵⦃๗

品。 图 2 - 高层次综合设计流程

26

赛灵思中国通讯第四十八期

2013 年第二季度


嵌入式视觉领域的出色表现

C++ 创建您的算法,再用 Vivado HLS

ᔧࠡᏻ

将算法或算法的一部分编译为 RTL, 进而确定哪些函数更适合在 FPGA 逻

䕧ߎᏻ

辑中运行,哪些函数更适合在 ARM 处 理器上运行。这样,您的设计团队就

OpenCV 䖤ࡼẔ⌟ㅫ⊩

能集中精力打造出最佳性能的基于 Zynq SoC 的视觉系统。

Ϟϔᏻ

为了进一步帮助嵌入式视觉开发 人员创建 Smarter Vision 系统,赛灵

Ẕ⌟ࠄᮄⱘ䕓䔺

思在 Vivado 中增加了对 OpenCV 计 算机视觉算法库的支持。赛灵思还推 出 了 最 新 IP Integrator 工 具 和

图 3 - OpenCV 算法库开发的运动检测应用实例

SmartCORE ™ IP 以支持此类设计(参 见封面报道的第 8 页)。 OPENCV 推广计算机视觉技术 OpenCV 开辟了一条开发智能计

就意味着它可免费用于学术和商业应

• 机器学习:检测、识别

用中。它最初设计旨在提高通用多处

有关 OpenCV 的更多详情,敬请

理系统的计算效率,侧重于实时应用。

算机视觉算法的途径,而且能预测实

此 外,OpenCV 还 提 供 C/C++ 和

时性能。该库为设计人员提供了用于

Python 等多种编程接口。

算法试验和快速原型设计的环境。 OpenCV 设计框架得到多平台支

开源项目的优势在于,用户能持 续改进算法,并将算法扩展用于多种

访问以下网址:opencv.org 和 opencv.

willowgarage.com 用 HLS 加速 OPENCV 函数 一旦完成了嵌入式视觉系统架构

持。不过在许多情况下,要提高库对

不 同 应 用 领 域。 目 前 用 OpenCV 可

的分区,找到了计算强度最大的部分,

嵌入式产品的效率,就需要在嵌入式

现实 2,500 多种功能,其中包括:

HLS 工具就能帮助您加速这些函数,

平台上实现,而且该平台要能够加速

• 矩阵数学

高强度例程,满足实时性能要求。.

• 公用设施和数据结构

虽然 OpenCV 在设计时就考虑到 计算效率问题,不过它源自传统计算

• 通用图像处理功能

同时仍能继续使用 C++ 编写。Vivado HLS 用 C、C++ 或 SystemC 代 码 生 成高效的 RTL 实现方案。 此 外, 以 IP 为 中 心 的 Vivado 设

环境,可支持多核处理。这种计算平

• 图像转换

计 环 境 提 供 丰 富 的 处 理 IP

台或许对高度强调效率、成本和功耗

• 图像金字塔

SmartCORE,能简化到图像传感器、

的嵌入式应用来说并不是最佳选择。

• 几何描述符函数

网络及其它必要 I/O 接口的连接,简

• 特性识别、提取和跟踪 OPENCV 的特性 OpenCV 是 一 款 基 于 BSD 许 可 证授权发行的开源计算机视觉库,这

2013 年第二季度

化 OpenCV 库中这些函数的实现。这 相对于其它实现方案而言是一种明显

• 图像分割与拟合

的优势,因为其它方案哪怕是最基本

• 摄像头校准、立体化和 3D 处理

的 OpenCV I/O 功能都需要加速。

赛灵思中国通讯第四十八期

27


嵌入式视觉领域的出色表现

ᑨ⫼ҷⷕ

෎ѢZynqⱘᑨ⫼ ⑤ҷⷕ᯴ᇘ

㾚乥䕧ܹ ᄤ㋏㒳

FPGAᶊᵘ

ᄬ‫఼ټ‬ ᄤ㋏㒳

FPGAᶊᵘ

$50 $ ໘⧚఼

䕃ӊ

ᄬ‫఼ټ‬ ᄤ㋏㒳

FPGAᶊᵘ

㾚乥䕧ߎ ᄤ㋏㒳

FPGAᶊᵘ

图 4-Zynq SoC 上采用 ARM 处理器的运动检测

因此 Vivado HLS 可实现的优化级别比

架构的软件应用开发。该规范可在标

赛灵思推出的 Vivado HLS 是一

传统的编译器具有更精细的粒度。传

准桌面软件开发环境中,全面利用赛

款 软 件 编 译 器, 旨 在 将 C、C++ 或

统的针对处理器的软件设计 O1 – O3

灵思提供的 OpenCV 等软件库进行开

SystemC 编写的算法转变为针对用户

优化理念被架构探索要求所取代,这

发。除了支持以软件为中心的开发流

定义时钟频率和赛灵思产品系列器件

些 要 求 与 用 户 技 术 相 结 合, 指 导

程 外,Vivado HLS 还 提 升 了 从 RTL

优化的 RTL。在 C/C++ 程序解释、分

Vivado HLS 创建尽可能出色的实现方

到 C/C++ 的提取验证速度。用户能用

析和优化方面,它与 x86 处理器的编

案,满足特定算法的功耗、面积占用

原软件进行全面的算法功能验证。通

译器具有相同的核心技术基础。这种

和性能要求。

过 Vivado HLS 生成 RTL 后,生成的

为什么需要高层次综合?

相似性有助于从台式机开发环境快速

图 2 给出了 HLS 编译器的用户设

设计代码类似于传统软件编译器生成

移植到 FPGA 实现。您选择目标时钟

计 流 程。 从 理 念 上 讲, 用 户 提 供 C/

的处理器汇编代码。用户可在汇编代

频 率 和 器 件 后, 无 需 用 户 输 入,

C++/SystemC 算法描述,编译器就能

码级进行调试,但这一步并不是必需

Vivado HLS 会默认生成 RTL 实现。

生成 RTL 实现。程序代码转化为 RTL

的。

此外,Vivado HLS 与其它任何编译器

的过程分为四大阶段:算法规范、微

一样,也分不同的优化级别。由于算

型架构探索、RTL 实现和 IP 封装。

法最终执行目标是定制的微型架构, 28

赛灵思中国通讯第四十八期

算法规范阶段是指将针对 FPGA

虽然 Vivado HLS 能处理几乎所 有 针 对 其 它 软 件 编 译 器 的 C/C++ 代 码,但代码有一个限制。在用 Vivado 2013 年第二季度


嵌入式视觉领域的出色表现

HLS 编译代码到 FPGA 过程中,用户

当的面积和性能组合。您可在不同性

封装为 IP-XACT 等其它赛灵思工具能

代码不能包含任何运行时动态存储器

能点实现相同的 C/C++ 代码,无需

接受的格式,因此无需进行其它操作,

分配。与算法绑定于单个存储器架构

修改源代码。Vivado HLS 编译器优

就可在 Vivado 中使用 HLS 生成的 IP

的处理器不同,FPGA 实现采用特定

化或要求规定了算法不同部分的性能

核。

算法的存储器架构。通过分析阵列和

如何描述。

赛灵思的 OpenCV 库为用 Vivado

变量的使用模式,Vivado HLS 能确

Vivado HLS 编译器流程的最后

HLS 进行设计优化提供了捷径。这些

定哪些物理存储器布局和存储器类型

两步就是 RTL 实现和 IP 封装。这是

库预先特性描述后能提供 1080p 分辨

最适合算法的存储和带宽要求。这种

Vivado HLS 编译器中自动进行的两

率的像素处理功能。引导 Vivado HLS

分析工作的唯一要求就是在 C/C++ 代

步,不需要用户具备 RTL 方面的知识。

编译器进行优化的细节已嵌入在这些

码中明确描述算法使用的所有存储器

针对赛灵思产品组合中不同器 件的

库中。这样,您就能快速自如地将桌

阵列。

RTL 创建优化细节内置在编译器中。

面环境中的 OpenCV 理念应用迭代为

从 C/C++ 转 为 优 化 的 FPGA 实

在此阶段,为满足需求,我们提供了

Zynq SoC 上运行的 OpenCV 应用,

现的第二步就是微型架构探索。在这

经过全面测试和验证的按钮式工具,

均可在 ARM 处理器和 FPGA 架构上

一阶段,您可运用 Vivado HLS 编译

能生成基于时序和基于 FPGA 架构的

操作。

器优化来测试不同的设计,以找到适

RTL。Vivado HLS 编译器的输出自动

ᑨ⫼ҷⷕ

图 3 概述了用 OpenCV 进行运动

෎ѢZynqⱘᑨ⫼ ⑤ҷⷕ᯴ᇘ

㾚乥䕧ܹ ᄤ㋏㒳 ᄬ‫఼ټ‬ᄤ㋏㒳

Sobel ᔧࠡᏻ

Sobel ࠡϔᏻ

Ẕ⌟ᮄ䖍㓬

ARM A9 ໘⧚఼

ᄬ‫఼ټ‬ ᄤ㋏㒳

㾚乥䕧ߎ ᄤ㋏㒳

图 5 - 采用可编程架构的 Zynq SoC 上的运动检测

2013 年第二季度

赛灵思中国通讯第四十八期

29



领 先 一 代 Vi vado设计套件WebPACK 版本为您提供 无与伦比的集成与实现速度

了解更多


Xi l i nx


手把手课堂:FPGA 101

Vivado HLS 配合 C 语言等高级语言能 帮助您在 FPGA 上快速实现算法。

层次综合(HLS)是指

为了帮助用户了解 Vivado HLS 如何

自 动 综 合 最 初 用 C、

工作,我们不妨以矩阵乘法设计为例逐步

C++ 或 SystemC 语言

剖 析 从 设 计 描 述(C/C++/SystemC) 到

描 述 的 数 字 设 计。 工 程 师 之 所 以

FPGA 实现整个端对端综合流程。矩阵乘

对 高 层 次 综 合 如 此 感 兴 趣, 不 仅

法在许多应用中都很常见,并广泛用于图

是因为它能让工程师在较高的抽

像和视频处理、科学计算和数字通信。

象 层 面 上 工 作, 而 且 还 因 为 它 能

本项目中的所有结果均使用 Vivado HLS

方 便 地 生 成 多 种 设 计 解 决 方 案。

2012.4 生成,搭配使用赛灵思 ISE® 软

利 用 H L S ,您 能 探 索 各 种 可 能 性 ,

件(14.4 版)进行物理综合和布局布线。

分 析 面 积 和 性 能 特 点, 最 终 确 定

此 外, 这 一 流 程 还 采 用 了 ModelSim 和

一 个 方 案 在 FPGA 芯 片 上 实 现 算

GCC-4.2.1-mingw32vc9 进 行 RTL 协 同

法。 举 例 来 说, 您 能 探 索 将 存 储

仿真。

器映射到 Block RAM(BRAM)

图 1 显 示 了 简 单 的 综 合 流 程, 从

或分布式 RAM 上有什么不同的影

C/C++/SystemC 设 计 开 始。C/C++/

响, 或 者 分 析 回 路 展 开 以 及 其 它

SystemC testbench 用于验证设计功能的

回 路 相 关 优 化 有 什 么 效 果, 而 且

正确性,同时还可用于 RTL 和 C 的协同

不必手动生成不同的寄存器传输

仿真。协同仿真包括验证生成的 RTL 设

级(RTL) 设 计。 您 所 要 做 的 仅

计(.v 或 .vhd)功能,这要使用 C/C++/

仅 是 在 C/C++/SystemC 设 计 中

SystemC 测试平台而不是 RTL 测试平台

设置相关指令而已。

或者采用 e 或 Vera 验证语言编写的测试

赛 灵 思 在 其 最 新 发 布 的

平台。时钟周期约束设置了设计应该运行

Vivado ™工具套件中推出了 HLS 工

的目标时钟周期。设计将被映射到目标

具。Vivado HLS 是 AutoESL 工具的

FPGA 器件——赛灵思 FPGA 上。

品牌转型重塑,可提供众多技术帮助 您优化 C/C++/SystemC 代码以实现

2013 年第二季度

C 语言的矩阵乘法

目标性能。这样的 HLS 工具就能帮

为了充分利用我们的矩阵乘法实例,

助您在 FPGA 上快速实现算法,无需

我们将探索矩阵乘法 C 语言实现方案的

借助基于 Verilog 和 VHDL 等硬件描

各种修订版本,从而展示它们对综合设计

述语言的非常耗时的 RTL 设计方法。

的影响。这一过程将凸显您在使用 HLS 赛灵思中国通讯第四十八期

33


手把手课堂:FPGA 101

C/C++/SystemC ᯊ䩳਼ᳳ㑺ᴳ C/C++/SystemC Testbench

Vivado HLS

.v/.vhd Design

Xilinx ISE

FPGA↨⡍⌕

ⳂᷛFPGA఼ӊ

图 1 - 采用 Vivado HLS 进行 FPGA 综合的流程

进行原型设计和实际设计时需要注意

• 第三步:综合

此外,Vivado HLS 还可生成 latency

的重要问题。我们将跳过创建工程的

• 第四步:RTL 协同仿真

估算和回路相关的度量指标等。

有关步骤,因为您能很方便地在工具

• 第五步:导出 RTL / RTL 实现

文档中找到相关参考材料。我们将重

第一步编译工程并在不同的设

生成的 RTL。这一步叫做 RTL 协同

计文件中测试语法错误等。第二步测

仿真,因为工具采用的就是之 前用

在 典 型 的 Vivado HLS 流 程

试待实现的函数(在源文件中)功能

于验证 C 源代码的 testbench,现在

中, 我 们 需 要 三 个 C/C++ 文 件:

是 否 正 确。 在 这 一 步 骤 中 您 将 使 用

则测试 RTL 的功能正确性。要成功

源文件(包括待综合的 C 函数)、

testbench 执行函数调用,验证其功能

完 成 这 一 步, 您 系 统(Windows 或

头文件和通过 main() 函数调用描述

是否正确。如果功能验证失败,您就

Linux)中的 PATH 环境变量应包含

testbench 的文件。

需要返回来修改设计文件。

ModelSim 安装的路径。此外,您还

点介绍设计和实现等方面。

第四步是使用 C testbench 仿真

头文件不仅包括源文件中使用的

第三步进行综合,Vivado HLS 综

函数的声明,也包括支持具有特定位

合源文件中定义的函数。这一步的输

宽的用户定义数据类型的指令。这也

出 包 括 C 函 数 的 Verilog 和 VHDL 代

最 后, 第 五 步 就 要 将 RTL 导 出

使得设计人员能够采用与 C/C++ 所

码(RTL 设计),也包括目标 FPGA

为 IP 模块,用于更大的设计中,并

定义标准位宽不同的位宽。举例来说,

的资源利用率估算和时钟周期估算。

由其它赛灵思工具进行处理。您可

应 在 ModelSim 安 装 文 件 夹 中 包 含 GCC-4.2.1-mingw32vc9 套件。

整形数据类型(int)在 C 语言中通 常 为 32 位 长, 但 是 在 Vivado HLS

void matrixmultiply(data matleft[2][2], data matright[2][2], data product[2][2])

中您可指定用户定义的数据类型,例

{

如只使用 16 位的“data”。 图 2 显示了用于矩阵乘法的简 单 C 函数。两 个矩阵 mat1 和 mat2 进行乘法。为了简单起见,两个矩阵 大小一样,都是两行两列。 在 HLS 流程中执行的步骤如下:

}

data i,j,k; for(i=0;i<2;i++) { for(j=0;j<2;j++) { for(k=0;k<2;k++) { product[i][j]=product[i][j]+matleft[i][k]* matright[k][j]; } } }

• 第一步:创建工程 • 第二步:测试功能

34

赛灵思中国通讯第四十八期

图 2 - 用于 2*2 矩阵乘法的简单 C 代码

2013 年第二季度


手把手课堂:FPGA 101

中使用 Vivado 生成的 RTL,或者将其

matleft_ce0

本身用作顶层设计。当较大设计中例化 product_address0[1:0]

matleft_q0[15:0] matleft_address0[1:0]

product_d0[15:0]

matright_ce0

product_q0[15:0]

matright_q0[15:0] matright_address0[1:0]

导出的 RTL 时,您应注意相关接口要求。 当 综 合 图 2 中 的 C 函 数 时, 您 将 获得如图 3 所示的 RTL 级实现方案。 您会发现,实现方案中的矩阵 1 和矩阵 2 的元素被读取到函数,并且积矩阵的

matrixmultiply

ap_clk

元素被写出。这样,实现方案假定“矩

product_ce0

阵乘法”实体以外的存储器能用来存储

product_we0

矩阵 1、矩阵 2 和乘积矩阵的元素。表

ap_rst

1 介绍了信号描述,表 2 则介绍了设计 度量指标。

ap_start

在 表 1 中,start、done 和 idle 信

ap_done

号与设计中控制数据路径的有限状态

ap_idle

机(FSM) 有 关。 您 会 发 现,Vivado

ap_ready

HLS 生成的 Verilog 假定运算始于 start 信号,并且输出数据在 ap_done 信号 从低变高开始有效。Vivado HLS 生成 的 Verilog/VHDL 将始终保持至少三个

图 3 - 从图 2 所示代码中产生的设计

基 本 信 号:ap_start、ap_done 和 ap_ 将 RTL 导出为 IP-XACT 格式的 IP 模

directory>/<solution_number>/

idle,此外还有 ap_clk 信号。这意味着

块, 也 可 导 出 为 System Generator

impl/<sysgensysgen> 或 <project_

不管您使用 Vivado HLS 实现什么设计,

IP 模 块 或 pcore 格 式 的 IP 模 块, 进

directory>/<solution_number>/

设计 latency 都会限制您的流吞吐量。

而用于赛灵思嵌入式设计套件。导出

impl/<ip>。此外,您也可在较大设计

图 2 中的设计 latency 为 69 个时钟周期,

Vivado 生成的 RTL 时,您可以选择工 具的“评估”选项来评估布局布线后 的性能并且运行 RTL 实现。在此情况

䆒䅵ᑺ䞣ᣛᷛ

఼ӊ˖XC6VCX75TFF784-2

下, Vivado HLS 工具会调用赛灵思

DSP48E

1

ᶹᡒ㸼

44

㾺থ఼

61

ᅲ⦄ⱘ᳔Շᯊ䩳਼ᳳ˄ns˅

2.856

种 格 式 之 一 的 IP 模 块 不 可。 导 出

ᯊᓊ

69

的格式文件可放在三个不同路径

৲৤䞣˄߱ྟ䯈䱨˅

69

ISE 工具。要实现这一目的,您的系 统 PATH 环境变量需包括 ISE 安装路 径,Vivado HLS 将会搜索 ISE 安装。 当 然, 您 也 不 一 定 非 要 将 Vivado 生 成 的 RTL 导 出 为 以 上 三

下:<project_directory>/<solution_ number>/impl/<pcores> 或 project_

2013 年第二季度

表 1:面向图 3 中设计的信号描述

赛灵思中国通讯第四十八期

35


手把手课堂:FPGA 101

ֵো

ᦣ䗄

matleft_ce0

ⶽ䰉1ᄬ‫ⱘ఼ټ‬㢃⠛Փ㛑

matleft_q0[15:0]

ⶽ䰉1ⱘ16ԡ‫ܗ‬㋴

matleft_address[1:0]

ⶽ䰉1ᄬ‫ⱘ఼ټ‬䇏ഄഔ

matright_ce0

ⶽ䰉2ᄬ‫ⱘ఼ټ‬㢃⠛Փ㛑

matright_q0[15:0]

ⶽ䰉2ⱘ16ԡ‫ܗ‬㋴

matright_address[1:0]

ⶽ䰉2ᄬ‫ⱘ఼ټ‬䇏ഄഔ

product_ce0

⿃ⶽ䰉ⱘᄬ‫ⱘ఼ټ‬㢃⠛Փ㛑

product_we0

⿃ⶽ䰉ⱘᄬ‫ݭⱘ఼ټ‬Փ㛑

product_d0[15:0]

⿃ⶽ䰉ᄬ‫ݭⱘ఼ټ‬᭄᥂

product_q0[15:0]

⿃ⶽ䰉ᄬ‫ⱘ఼ټ‬䇏᭄᥂

product_address0[1:0]

⿃ⶽ䰉㽕䇏‫ݭ‬᭄᥂ⱘഄഔ

ap_clk

䆒䅵ⱘᯊ䩳ֵো

ap_rst

䆒䅵ⱘ催᳝ᬜৠℹ໡ԡֵো

ap_start

ᓔྟ䅵ㅫⱘᓔྟֵো

ap_done

䅵ㅫ㒧ᴳ੠䕧ߎህ㒾ⱘᅠ៤ֵো

ap_idle

㸼⼎ᅲԧ˄䆒䅵˅ぎ䯆ⱘぎ䯆ֵো

ap_ready

㸼⼎䆒䅵Ўᮄ䕧᭄ܹ᥂‫خ‬ད‫ޚ‬໛ˈϢap_idle䜡ড়Փ⫼

表 2:用于图 3 所示设计的设计度量指标

目标时钟周期为 3 纳秒。这意味着在

方案能让您输入矩阵,并在内部

的需求,它是源文件的一部分,应该属

此特定案例中,所有积矩阵元素需要

进行存储和计算,随后读取积矩

于 C++ 文件而非此前的 C 文件。您应在

69 个时钟周期可输出。这样,您在至

阵元素。这显然是图 2 所示实

头文件 matrixmultiply.h 中包含另外两个

少 69 个时钟周期前不能为设计提供新

现方案无法做到的。该实现方案

相关头文件:hls_stream.h 和 ap_int.h。

一组的输入矩阵。

需要外部存储器提供矩阵数据

请注意,在图 2 中,当源文件为 C 文件时,

的输入和输出

头文件包含了 ap_cint.h。头文件 ap_int.

调整代码

h 和 ap_cint.h 有 助 于 分 别 为 C++ 和 C

图 3 中所示的实现方案现在可能 并不是您在 FPGA 上实现矩阵乘法时 所预想的结果。您或许希望一款实现 36

赛灵思中国通讯第四十八期

图 4 中的代码能够满足您

源文件定义用户定义的任意位宽的数据 2013 年第二季度


手把手课堂:FPGA 101

为了让设计只接收输入矩阵流,并输出积矩阵流,您应在代 码中实现读和写数据流。流接口就像 FIFO。默认情况下这 个 FIFO 的深度为 1。

类型。需要头文件 hls_stream.h 来充分利 用流接口,并且只有在源文件为 C++ 语言 时才能使用。 为了让设计只接受输入矩阵流,并输 出积矩阵流,您应在代码中实现读和写数 据 流。 代 码 hls::stream<> stream_name 用于为读和写数据流命名。这样,d_mat1 和 d_mat2 为读取流而 d_product 为写入 流。流接口就像 FIFO 那样工作。默认情 况 下,FIFO 的 深 度 为 1。 您 应 在 Vivado HLS 指令面板中通过选择定义的数据流设 置深度。对于图 4 中的代码而言,每个数 据流的深度都为 4 个数据单元。请注意, 这里的(i,j)回路在(p,q)回路之前执行, 这是 C++ 代码的顺序特性使然。因此, d_mat2 数据流会在 d_mat1 数据流之后填 满。 完 成 数 据 流 接 口 后, 您 可 应 用 指 令 RESOURCE 并通过指令面板选择一个核, 从而选择将矩阵映射到 BRAM。否则将用 触发器和查找表(LUT)实现矩阵。请注意, 指令面板只有当源文件在综合视图中保持 有效时才是有效的。

#include "matrixmultiplystream.h" using namespace hls; stream <data> d_mat1; stream <data> d_mat2; stream <data> d_prodmat; void matrixmultiplystream (stream<data>& d_mat1, stream<data>& d_mat2, stream<data>& d_prodmat) { data matrixleft[2][2]={{0}}; data matrixright[2][2]={{0}}; data matrixproduct[2][2]={{0}}; data elementmat1; data elementmat2; data i,j,p,q,k; for (i=0;i<2;i++) { for(j=0;j<2;j++) { matrixleft[i][j] = d_mat1.read(); } } for (p=0;p<2;p++) { for(q=0;q<2;q++) { matrixright[p][q]=d_mat2.read(); } } for(i=0;i<2;i++) { for(j=0;j<2;j++) { for(k=0;k<2;k++) { matrixproduct[i][j] = matrixproduct[i][j]+matrixleft[i][k]* matrixright[k][j]; } } } for(i=0;i<2;i++) { for(j=0;j<2;j++) {

图 5 显示了图 4 中代码的设计实现情 况。表 3 介绍了设计接口上可用的信号情

}

}

d_prodmat << matrixproduct[i][j]; }

况。 在 表 3 中,d_product_V_full_n 是 低 有效信号,当需要通知内核积矩阵已满时 该信号为低。但在实现方案中通常不需要 2013 年第二季度

图 4: 用于矩阵乘法的重组源代码

赛灵思中国通讯第四十八期

37


手把手课堂:FPGA 101

信号

ᦣ䗄

d_mat1_V_read

䆒䅵Ўⶽ䰉 ˄Ꮊջⶽ䰉˅䕧ܹ‫خ‬ད‫ޚ‬໛ᯊⱘֵো

d_mat1_V_dout [15:0]

ⶽ䰉 ⱘ ԡ⌕‫ܗ‬㋴

d_mat1_V_empty

䗮ⶹ䆒䅵ⶽ䰉 ≵᳝᳈໮‫ܗ‬㋴ⱘֵো

d_mat2_V_read

䆒䅵Ўⶽ䰉 ˄েջⶽ䰉˅䕧ܹ‫خ‬ད‫ޚ‬໛ᯊⱘֵো

d_mat2_V_dout [15:0]

ⶽ䰉 ⱘ ԡ⌕‫ܗ‬㋴

d_mat2_V_empty

䗮ⶹ䆒䅵ⶽ䰉 ≵᳝᳈໮‫ܗ‬㋴ⱘֵো

d_product_V_din [15:0]

⿃ⶽ䰉ⱘ ԡ䕧ߎ‫ܗ‬㋴

d_product_V_full_n

䗮ⶹ䆒䅵⿃ⶽ䰉ᑨ䆹㹿‫ֵⱘܹݭ‬ো

d_product_V_write

ᰒ⼎⿃ⶽ䰉ℷ೼㹿‫ܹݭ‬᭄᥂ⱘֵো

ap_clk

䆒䅵ⱘᯊ䩳ֵো

ap_rst

䆒䅵ⱘ催᳝ᬜৠℹ໡ԡֵো

ap_start

ᓔྟ䅵ㅫⱘᓔྟֵো

ap_done

䅵ㅫ㒧ᴳ੠‫ޚ‬໛དֵো䕧ߎⱘᅠ៤ֵো

ap_idle

㸼ᯢᅲԧ˄䆒䅵˅ぎ䯆ⱘぎ䯆ֵো

ap_ready

㸼⼎䆒䅵Ўᮄ䕧᭄ܹ᥂‫خ‬ད‫ޚ‬໛ˈϢDSBLGOH䜡ড়Փ⫼

表 3 - 图 5 中设计的信号描述

఼ӊ˖XC6VCX75TFF784-2 䆒䅵খ᭄

᮴BRAM៪᮴ߚᏗᓣ RAMᄬ‫ⶽټ‬䰉

ऩッষBRAMᄬ‫ⶽټ‬䰉 ߚᏗᓣRAM˄LUTᅲ⦄˅ ᄬ‫ⶽټ‬䰉

DSP48E

1

1

1

ᶹ䆶㸼

185

109

179

㾺থ఼

331

102

190

BRAM

0

3

0

ᅲ⦄ⱘ᳔Շᯊ䩳਼ᳳ˄㒇⾦˅

2.886

3.216

2.952

ᯊᓊ

84

116

104

৲৤䞣˄߱ྟ䯈䱨˅

84

116

104

表 4:图 5 所示设计的设计度量指标 38

赛灵思中国通讯第四十八期

2013 年第二季度


手把手课堂:FPGA 101

这样。

矩阵元素(左、右和积矩阵)都

录。在每个解决方案目录中都有一个

表 4 显示了 3 纳秒时钟周期约束下布

为 16 位宽。矩阵乘法和加法运算

名 叫 impl( 也 就 是 implementation,

局布线后的不同设计度量指标,包含了矩

不能实现全精度。您可选择在头

实现方案)的子目录。在这个子目录中,

阵阵列映射到 BRAM 或分布式 RAM 的情

文件中定义另一种 32 位宽的数据

您会看到名为 Verilog 或 VHDL 的目录,

况和未映射的情况。您从表 4 中可以看到,

类型 data_t1,积矩阵的所有元素

具体取决于 RTL 实现阶段使用什么样

矩阵映射到单端口 BRAM 时,设计无法满

都采用这种数据类型,因为 16 位

的源代码。这个子目录中也包含赛灵

足 3 纳秒的时序约束。表中专门包含了这

数(左侧矩阵元素)乘以另一个

个结果,说明您可用这种方法生成具有不

16 位数(右侧矩阵元素)最多得

同面积—时序参数的各种设计。此外,您

到 32 位宽。这样,资源利用率和

也可从表 1 看出,虽然图 2 中代码的时延

时序结果将不同于表 1 和表 4 中

为 69 个时钟周期,低于图 4 中调整后的代

的结果。

码的设计方案,但这种设计需要矩阵乘法

调整后的源代码显示出同样

实体以外的存储器,这一点我们在上面已

的源文件会带来多种不同设计解

经解释过了。

决方案。在本例中,一个设计解

思 ISE 工程文件(文件扩展名为 .xise)。 如果 Vivado HLS 生成的设计是您的顶 层设计,那么您可以双击这个文件来 启动赛灵思 ISE 运行这个解决方案, 并生成用于门级时序和功能仿真的布 局布线后模型。但您在 Vivado HLS 中 不能做这种仿真。

决方案采用 BRAM,而另一个没

在 ISE 中启动解决方案后,您应

有采用。在每个 Vivado HLS 工程

给设计分配 I/O 引脚。随后您可在 ISE

就这里显示的结果而言,我将“data”

目录中,您会看到 Vivado HLS 为

Project Navigator 中选择“Generating

这种数据类型定义为 16 位宽。因此,所有

不同的解决方案生成了不同的目

Programming File”以生成比特流。

实现方案的精度

在 这 一 练 习 中, 我 们 一 步 步 完 成 了 Vivado HLS 一 个 实 际 的 端 对 端 流 程, 并 在 FPGA 上 实 现 算 法。 对

d_mat1_V_read

于 Vivado HLS 中 的 许 多 高 级 特 性 而

d_mat1_V_dout [15:0]

d_product_V_din [15:0]

d_mat1_V_empty_n

d_product_V_full_n

d_mat2_V_read d_mat2_V_dout [15:0]

matrixmultiply

d_mat2_V_empty_n ap_clk

d_product_V_write

言,您应了解您需要什么样的硬件架 构,从而进行源代码的调整。如需了 解更多详情,《Vivado 高层次综合教 程》(UG871; http://China.xilinx.com/

support/documentation/sw_manuals/ xilinx2012_2/ug871-vivado-highlevelsynthesis-tutorial.pdf )和《Vivado

ap_rst

设计套件用户指南》(UG002; http://

ap_start

China.xilinx.com/support/docum e n

ap_done ap_idle ap_ready

tation/sw_manuals/xil -inx2012_2/ug902-vivado-high ) 这 两 个技术文档对您大有裨益。 欢迎关注 Sharad Sinha 的博客。 阅 读 更 多 文 章:http://sharadsinha.

图 5 - 图 4 中代码生成的设计

2013 年第二季度

wordpress.com 。 赛灵思中国通讯第四十八期

39


手 把 手 课 堂:F P G A 1 0 1

如何配置您的 Zynq SoC 裸机解决方案 使用 JTAG 接口完成 Zynq SoC 应用的开发和测 试后,下一步是让引导载入程序工作。 作者:Adam Taylor 首席工程师 EADS Astrium

aptaylor@theiet.org

40

赛灵思中国通讯第四十八期 l

2013 年第二季度


手把手课堂:FPGA 101

编者注:这是 Adam Taylor 规划的 Zynq-7000 All Programmable SoC 实际操作教程系列的第二部分。Adam 经常为赛灵思中国通讯第四十八期撰稿,他撰写了第 46 期 介绍 Zynq SoC 设计的封面报道,以及本期中介绍 XPE 和 XPA 的文章(见第 46 页)。同时他还为 All Programmable Planet 撰写博客。

Z

ynq ™ -7000 All Programmable SoC 在单个

器件上实现了 ARM 处理功能与 FPGA 逻辑独

特的组合,因此需要双重的配置过程,同时需

要考虑处理器系统和可编程逻辑。工程师会发现,其

配置顺序与传统的赛灵思 FPGA 稍有差别。尽管如此, 方法仍是相似的,生成引导镜像和完成配置存储器编 程的难度不大。 虽然标准的 FPGA 配置实践一般只需要 FPGA bit 文件,但是如果您想最大限度地利用 Zynq SoC 的优势, 还需要添加另一种配置文件,即软件可执行与可链接 格式(ELF)文件。FPGA bit 文件用于定义设计中可 编程逻辑部分的行为,而 ELF 文件则是处理系统将要 执行的软件程序。 下面让我们来看看如何在 Zynq SoC 上实现裸机 (无操作系统)软件应用。 配置概览 在 Zynq SoC 中,处理系统(PS)处于主控地位, 因此负责配置器件的可编程逻辑(PL)侧。(唯一例 外的情况是在使用 JTAG 接口进行配置时。)这就是说, 如果需要,您可以在可编程逻辑侧不加电的情况下给 处理系统加电并使之运行,从而降低系统的总功耗。 当然如果需要使用 Zynq SoC 的 PL 侧,您也需要给 它加电。 软件应用和 FPGA bit 文件都存储在连接到处理系 统的同一配置存储器器件中。处理系统可以通过多种 非易失性存储器类型为配置提供支持,包括四通道 SPI flash、NAND flash、NOR flash 和 SD 卡等。此外, 您还可以和其它任何器件一样,通过 JTAG 配置系统。 因此,Zynq SoC 按照典型的处理器启动顺序配置 器件两侧。首先从不可修改的内部引导 ROM 运行。该 引导 ROM 包含用于支持非易失性存储器的驱动程序。 2013 年第二季度

赛灵思中国通讯第四十八期 l

41


手把手课堂:FPGA 101

您可通过非易失性存储器中的报头对引

理系统启动并进入运行状态,就可以

加密、四通道 SPI 配置、FSBL

导 ROM 加以配置。报头标记着配置镜

在任何时候对 FPGA 进行编程。此外,

偏移和镜像长度)

像的起始点,是引导 ROM 首先要查找

如果您在可能产生单事件功能中断

的。报头定义了引导 ROM 可以实现的

(SEFI)的工作环境中使用器件时,

一些启动选项,比如直接在 flash 上运

PCAP 还可以让您回读并检查错误。

行程序(但是并不适用于所有类型的存 储器)、第一阶段引导载入程序(FSBL) 偏移和保密配置等。这个报头解析和处 理的目的,是确保引导 ROM 的工作模

为了给 Zynq SoC 创建可引导镜 像,还需要至少下列功能: 1. 用于控制引导 BOM 设置的引 导 ROM 报头(例如,现场执行、

2. 第一阶段引导载入程序(FSBL) 3. 可编程逻辑 bit 文件 4. 用于处理系统侧的软件应(ELF 文件) 和其它所有的赛灵思 FPGA 一样,

式与配置存储器的格式相兼容。 对于具体设计而言,用户可以选择 保密或非保密的配置方法。引导 ROM 报头能够支持和定义这两种模式。在保 密配置下,必须给器件的可编程逻辑部 分 加 电, 将 其 作 为 硬 件 宏 AES 和 SHA。您需要这两个宏进行加密,而且 必须把它们放置在器件的可编程逻辑 侧。 在配置的下一阶段,您需要提供 FSBL,用于在加载软件应用和配置可 编 程 逻 辑 之 前, 根 据 Xilinx Platform Studio(XPS)的定义,配置处理器上 的 DDR 存储器和其它外设。总体而言,

图 1:创建第一阶段引导载入程序项目

FSBL 负责完成四项主要任务: • 使用 XPS 提供的信息,初始化 处理系统 • 如 果 有 提 供 bit 文 件, 对 Zynq SoC 的可编程逻辑侧进行编程 • 在使用操作系统的情况下,加载 第二阶段引导载入程序(SSBL) 到 DDR,或加载裸机应用到 DDR • 开始执行 SSBL 或裸机应用。 您可通过处理器配置访问端口 (PCAP)为 Zynq SoC 的可编程逻辑 侧进行编程,能够支持部分或者完全的 可编程逻辑配置。这就意味着,只要处

42

赛灵思中国通讯第四十八期 l

图 2:从提供的模板创建 FSBL

2013 年第二季度


手把手课堂:FPGA 101

Zynq SoC 器件使用多个模式引脚判

分组电压。第一阶段引导载入程序可

一阶段引导载入程序。用户不必手动

断存储程序的存储器类型以及其它重

以把 MIO bank 0 和 bank 1 定义的电

完 成 创 建 工 作。 赛 灵 思 提 供 的 FSBL

要的系统设置。这些模式引脚共享器

压标准更改为应用的正确电压标准。

可加载您的应用并完成 FPGA 的配置。

件 处 理 系 统 侧 的 多 用 途 I/O 引 脚

但是如果您是从头开始设计系统,应

您当然也可以定制提供的代码,根据

(MIO)。总体而言,映射到 MIO 的

确保加电过程中使用的电压不会损坏

应用的需要修改引导顺序。在当前的

有 7 个模式引脚 [8:2]。头四个用于定

连接到这些引脚的器件。

软件开发套件(SDK)工作区中,即

义引导模式。第五个用于定义 PLL 是 否在使用,第六个和第七个用于定义 加电过程中 MIO bank 0 和 bank 1 的

用 户 项 目 所 在 的 工 作 区, 使 用 new创建第一阶段引导载入程序 制作引导镜像的下一步是创建第

>application project 创建新项目,如 图 1 所示。 选择使用 C 或是 C++,选取为系 统定义的开发板支持套件并为项目命 名。 在 这 种 情 况 下, 我 使 用 zynq_ fsbl_0 为我们的实例设计命名。 在下一个选项卡上,从图 2 所示 的可用模板选择 Zynq FSBL 选项,完 成 FSBL 项目的创建。到此您已经差 不多完成引导镜像的创建。如果您选 择自动“编译”,则 FSBL 将被编译; 如果没有,将根据随后的命令完成编 译。但是由于 FSBL 不知道 DDR 存储 器在处理器地址空间中的位置,我们 需要修改 FSBL 随附的链接器脚本。

图 3:定义 DDR 地址空间

因此我们需要打开 lscrip.ld 文件,将 DDR 存储器的位置添加到文件中。您 可以在为应用创建的链接器脚本中找 到 DDR 在地址空间中的位置(如需了 解有关如何创建脚本的详请,敬请参 阅 赛 灵 思 中 国 通 讯 第 46 期 的 封 面 报 道)。另外您也可以在“硬件平台定义” 下的 system.xml 文件中找到 DDR 在 地址空间中的位置。 图 3 所示为系统添加的具有 DDR 地址的 FSBL lscript.ld 文件。如果您忘 记添加,您会发现引导载入程序可以运 行,FPGA 可以进行配置,但应用无法 运行,即使您将其配置为在 DDR 中执 行。

图 4:找出引导镜像所需的完整文件

2013 年第二季度

赛灵思中国通讯第四十八期 l

43


手把手课堂:FPGA 101

Studio 的系统组装视图中进行定义。因

内的赛灵思工具菜单中选择“编程闪

在赛灵思 SDK Project Explorer

此硬件定义将包含 QSPI IP 内核及其在

存”选项,就可以轻松完成配置存储

的下面,您应该可以看到下列四个模

地址映射中的位置,以便第一阶段引导

器的编程工作,如图 5 所示。

块。每个模块用稍有不同的符号表示

载入程序连接到该器件并对其进行配

模块的类型。以图 4 为例,您可以看

置。

生成可配置镜像

到下列结构: 1. P r o c _ s u b s y s t e m _ h w _ platform,在处理子系统创建后

浏览并选择您生成的 MCS 文件, 在出现的对话框中输入 0x0 偏移。然

器件编程工作的下一步是使用 JTAG 编程线缆,将 Zynq SoC 硬件 系统与您的 PC 机相连。然后从 SDK

后在确保目标硬件已经加电之后,点 击“编程”(图 6)。 器件进行编程和验证可能需要几分

命名,是您文件的硬件定义。 2. Zed_blog_0,这是您创建的开 发板支持套件。 3. Zed_blog_c,这是应用本身。 4. Zynq_fsbl_0,这是您刚刚创建 并为之修改链接器脚本的第一阶 段引导载入程序 由于我们正在创建的是裸机应用 (非操作系统),您将需要三个文件创 建引导镜像,具体顺序如下:第一阶段 引导载入程序、FPGA 编程 bit 文件和 C 应用程序。 使用赛灵思工具菜单下的“Create

图 5:配置存储器的编程

Zynq Boot Image”选项,可以非常简 单地在 SDK 中创建引导镜像。当您选 定引导镜像,就会打开新的对话框, 以便您选择需要的文件,如图 4 所示。 需要强调的是,FPGA bit 文件必 须 一 直 紧 随 FSBL。 点 击“create image” 可 以 同 时 创 建 *.bin 和 *.mcs 文件,您可将它们编程到目标器件。 配置存储器编程 通过 SDK 的赛灵思工具选项下的 “flash 编程”选项使用 SDK 或是使用 赛灵思的 iMPACT 编程工具,都可以 对配置存储器进行编程。在本例中,我 们准备把配置文件存储到四通道 SPI 闪

图 6:闪存对话框的编程

存中。QSPI 接口可在赛灵思 Platform 44

赛灵思中国通讯第四十八期 l

2013 年第二季度



Xi l i nx


手把手课堂:FPGA101

精确估算 FPGA 设计的功耗对确保 获得正确的电源架构至关重要。 作者:Adam Taylor 首席工程师 EADS Astrium

aptaylor@theiet.org

F

P G A 与众多其它类型组件

这能为功耗预测提供更多准确信息)。

的 不 同 之 处 在 于, 其 核 心

因此,进行估算功耗首先可以从 XPE

电 压、 辅 助 电 压 和 I / O 电

电子数据表入手(参见: http://www.

压电源需求取决于设计实现。因此,

origin.xilinx.com/prod- ucts/design_

确定应用中 FPGA 的功耗比数据手

tools/logic_design/xpe.htm)。 您 可

册 描 述 的 情 况 更 复 杂 一 点, 要 实 现

以根据工程团队对设计所需时钟、逻

正确的电源架构因此也具有一定的

辑和其它资源量的初步考虑来进行最

挑 战 性。 这 不 仅 要 考 虑 到 所 需 的 静

初功耗估算。

态 电 流、 斜 坡 率 和 上电顺序, 还 需

XPE 的使用非常直观,更好的是,

要 能 为 终 端 应 用 适 当 供 电, 同 时 保

该工具能帮助您进行大量“假设”实现,

持器件结温在可接受的范围内。

从而明确不同设计方案选择对功耗估

XPE 和 XPA 是什么?这是赛灵思

算的影响。如果您的解决方案耗电高,

推出的两款设计工具,能帮助您准确

那么这种功能对帮助您找到最佳实现

地进行 FPGA 设计的功耗分析。您可

方案发挥着重要作用。

在设计早期阶段使用基于电子数据表

XPE 能根据散热、气流和印制电

的赛灵思功耗估计器 (XPE),在完成

路板层数预测器件结温,这一功能在

实现后再使用赛灵思功耗分析器

设计早期阶段非常有用。它能告诉我

(XPA)。XPA 能帮助您对设计的功耗要

们设计能否达到预期实现方案的额定

求做进一步的分析,并根据需要协助 功耗优化。 初始步骤

2013 年第二季度

结温。 在 XPE 中, 您 的 第 一 步 工 作 就 是尽可能准确地完成设置。除了选择

首先启动开发项目时,很难有整

器件之外,还要特别注意封装、速度

个 FPGA 设计都到位的情况(如果幸

等级和温度等级都要正确设置,同样

运的话,或许能重复利用一些代码,

如果适用的话还要准确设置步进、工 赛灵思中国通讯第四十八期

47


手把手课堂:FPGA101

艺和功耗模式。所有这些参数,对所 需的整体功耗有很大影响,尤其是工 艺的设置,其设置分为“最大值”和“典 型值”。典型值设置为您提供统计上 应用所需的功耗,而最大值设置则能 满足最差情况下的需求。要确保您的 解决方案能应对最高用电需求情况, 但这也有一定困难,因为较大型器件 也有着更高的电流需求。 我们也可在此定义工作环境,包 括环境温度、散热和气流等。在此定 图 1 - XPE 器件设置和功耗估算总结

义最大环境温度能提高估算准确度, 因为所需的功耗会随着器件结温的提 升而升高。包括散热、气流或者这两 者等,就能改进功耗估算。 在此阶段也不要忽略赛灵思 ISE® 优化设置。这种设置对功耗估 算也有影响,因为不同的优化方案(比 方说时序性能与面积最小化方案)都 会带来不同的实现方案,每种实现方 案都有自己的资源使用和扇出模式, 也会影响功耗估算。 估算工作的下一阶段就是仔细检 查 XPE 电子数据表底部的标签,尽

图 2 - 电源电压超出可接受容限时发出的警报

可能准确地填写所建议的解决方案的 细节。为了确保早期获得最准确的估 算,至少应定义资源使用、时钟频率、

思 功 耗 分 析 器 (XPA) 中。 这 能 确 保

精度。最差情况下最大电源电压升高,

触发率和启用率,这非常重要。同时

XPA 的设置与您最初用于估算的相匹

也会让功耗估算变大。

也应做好一定应急准备,应对始终存

配。

XPE 非常智能,能在最差情况下 随着开发工作向 RTL 制造、跟踪

最大电源电压超出器件可接受容限时

这一进程完成后,XPE 能在总结

综合和布局布线推进,我们根据提供

将电子数据表上的电压单元标为橙色

标签中提供整体功耗和结温估算,如

的更准确的信息,随时更新估算结果。

并发出警告,如图 2 所示。

图 1 所示。

要记住,硬件团队,尤其是负责电源

在的要求变化问题。

进入 XPA

估算完成后,您可根据需要,在

设计的团队,应了解估算的任何变动。

总结页面上选择“导出文件”选项,

电源工程师应提供电源轨最糟糕情况

设计实现后,我们能用赛灵思功

将设置从 XPE 导出,以随后用于赛灵

下的最大电压,这能进一步提高估算

耗分析器从功耗图片上获得精确得多

48

赛灵思中国通讯第四十八期

2013 年第二季度


手把手课堂:FPGA101

的功耗估算。结果到底有多精确,这 取决于您对工具的输入。您可点击 ISE 设计套件进程窗口中布局布线项下的 Analyze Power Distribution 打开 XPA (见图 3)。 一旦 XPA 打开,您又会看到类似 于 XPE 的总结屏幕(图 4)。您在此 可定义环境并创建更多设置,也可从 您的 XPE 分析中导入设置。 要包括 .xpa 文件或打开新项目, 您应采用以下流程,其中包括: •

图 3 - 从 ISE 打开 XPA

本 地 电 路 设 计 (NCD) 文 件: 定义物理 FPGA 实现方案。

设置文件: 定义从 XPE 导入 的设置。

钟信息和映射以及 UCF 限制。 •

实现精确功耗估算的十大步骤

物理约束文件 (PCF):包含时 数 值 变 更 转 储 (VCD) 或 开 关 行为互换文件 (SAIF) 仿真文

为确保您获得最准确的功耗估算,请遵循以下所列出的最重要的步骤: 1. 首先要有准确的环境设置,包括步进、速度等级、散热、气流和环境温 度等。

件,可用仿真工具生成,使得 XPA 能获得设计开关信息。 自然,您直接包含的信息越多, 功耗估算就越准确。XPA 能提供估算 可信度,这很有帮助,可信度分为低 中高三级,并分为设计实现状态、时 钟节点活动、I/O 节点活动、内部节点 活动和器件模型五大类。 这些不同的可信度可得出估算的 整体可信度。XPA 还能就如何提高各

2. 确保工艺准确设为“典型”或“最大”(对应于最差情况)。 3. 设置电源电压为最差情况下的最大值。 4. 确保采用最准确的翻转率、扇出、启用率、I/O 属性和时钟速率。 5. 采用 VCD/SAIF 仿真文件提供 XPA 中设计性能的最佳信息。要获得最 佳结果,该文件应提供门级仿真。 6. 随着硬件和 FPGA 设计的推进,要保证功耗估算最新,要经常更新。 7. 在功耗估算中要有应急措施,以应对应用要求变化问题。

个不同类别的可信度提出建议,这也

8. 要定义端接方案,并在 XPA 和 XPE 中准确载入 I/O 负载电容。

相当有用,从而有助于提升整体可信

9. 确保 XPA 报告的可信度为高。

度(图 5)。 为了获得功耗估算最高的可信度, 您应该从门级仿真获得 VCD 或 SAIF

10. 确保电源解决方案满足器件的所有其他功耗要求和可靠性要求,而且不 要运行在负载容量上或接近负载容量的水平。

文件。这样,XPA 就能了解内部节点 的行为,从而提供更精确的估算。 2013 年第二季度

赛灵思中国通讯第四十八期

49


手把手课堂:FPGA101

退出仿真时,结果将会保存在 VCD 文 件中,您可在 XPA 中使用这个文件。如果 您使用的是 ISim 工具,那么格式会略有不 同: vcd

dumpfile

Ñ define and

myvcd.vcd

the

file

location

name

if

desired vcd

dumpvars

-m

/memory_

if_tb/uut_apply 图 4 - XPA 总结屏

Ñ the

region

design

of

that

the

is

to

be

recorded Run

Simulation

vcd

dumpflush

Ñ save vcd

results file

to

the

created

仿真工具中还有许多更高级的命令, 您可用来生成 VCD。在工具文档中有详细 介绍。 由于包括了 VCD 文件,您的功耗估算 可信度会有所提高。如果您不能提供仿真结

图 5 - XPA 可信度报告和提高可信度的建议方法

果(有的运行需要很长时间),那么 XPA 会用其内置的分析引擎运行。在此情况下要 and

从仿真获得 VCD 非常直观,不过根据 您 使 用 的 工 具(Mentor Graphics 的

location

if

与 XPE 中一样,XPA 中也应包括最差

desired

ModelSim、赛灵思的 ISim 等)不同,所需

情况下的最大电源电压,这非常重要。我们

的命令格式可能略有不同。如果您正在使用 v c d

add

/memory_if_

vcd

file

Ñ define 50

the

对功耗和结温估算所产生的影响。

uut_apply/*

myvcd.vcd file

赛灵思中国通讯第四十八期

name

也可将 XPA 设计导回 XPE,让设计团队尝 试进行更多试验性修改,从而明确这些改动

ModelSim 工具,那么您就可用以下语法创 t b / 建简单的 VCD 文件:

做到准确,就应再次指定翻转率和启用率。

Ñ the

region

of

the

design

that

is

to

be

recorded

可信度还不够高该怎么办? 假设包括了仿真并提供有其它信息, 那么您应该就能实现较高可信度的功耗估 2013 年第二季度



出色的工具

您的系统时间 准确吗? Symmetricom 公司推出的微型 GPS 用 振荡器能方便地替换系统设计中的原子 钟。该振荡器搭配赛灵思 Zynq SoC, 就能构建 NTP 服务器。

52

赛灵思中国通讯第四十八期

2013 年第二季度


出色的工具

作者:Austin Lesea 赛灵思实验室首席工程师

austin.lesea@xilinx.com

如 果您的系统需要掌握确切时间、了解

频率情况、或者要为系统提供精确频 率,您该怎么办?几个月前,我拿到 了一款小组件的样片,尺寸约为 1 x 1 x 0.25 英寸,而这款小产品好像就能 提 供 这 样 的 魔 法 功 能。 它 就 是 Symmetricom 公司推出的 GPS 用温 度补偿型晶体振荡器(GPS-TCXO)。 这款评估板的主板上采用 RS232 转 USB 芯片,能转换 TCXO 进 / 出接 口和 GPS 接收器装置。唯一需要做的 或许就是安装支持 USB 的软件,当然 也 要 找 一 个 安 放 磁 铁 座 的 地 方, 让 GPS 天线能接收空中卫星信号。 蜂窝基站、无线电系统和计算机 系统工作均需要精确计时或精确频率。

不超过 1E-11。典型的铯原子钟参考 精确度甚至可能达到 1E-12,不过自 身 也 有 大 约 +/-100 纳 秒 的 延 迟 (wander)(但没有漂移 (drift))。这样 的参考有时被称作 Stratum 1 时钟。 GPS 卫星网络包括空间轨道中的 许多类似高精度时钟(主要是铷时钟 源, 有 些 漂 移 (drift), 但 没 有 延 迟 (wander)),全球最稳定的时钟源可 定期对时纠偏。通过复杂的数学程序, 全球“投票选出”约 200 个最精确的 时钟,据此确定 30 天前的时间,并在 此基础上校准。 这 样,GPS 用 系 列 10MHz 温 度 补偿型晶体振荡器就能作为高精度 Stratum 1 时间 / 频率 / 位置参考,它 锁定于卫星,如果丢失卫星信号就会 发生漂移 (drift)。不过,在了解漂移记 录并掌握温度的情况下,这种漂移可 以预见也可以消除(温度补偿不是完 美无缺的,在操作中可以很容易观察 到)。 下面谈谈极小的数字问题

采用固定 GPS 系统的一大优势在于,

我的这块小板工作了一个月,大

因为它不移动,因此相对非固定系统

多数时间插在办公室的台式机中,有

而言,能提供更好的频率参考,更精

时候在家里插进我的笔记本电脑,现

确的定位和时间信息。如果是移动应

在它已经进入常规工作状态。首次启

用,可能会在一定程度上影响精确度,

动时,误差在 +/-1E-10 之内,几周后,

但采用 TCXO,仍可确保设计出真的

它会表现出内在明显的漂移,误差约

非常棒的系统。

为 3.031E-12, 通 过 补 偿, 实 际 误 差 小于 3E-12(阿伦方差 [v] 约 6 小时,

什么才叫精确? 原子钟其实不是真正的时钟,而

2013 年第二季度

这个方差用于测量时钟、振荡器和放 大器的频率稳定性),参见图 1。它的

是带有源或无源微波激射器的原子振

表现比铯原子钟强 3 倍,铯原子钟的

荡器。铯原子钟是作为“主参考”典

延迟 (wander) 较高,不过不出故障的

型频率源,能提供精确的频率,误差

情况下漂移为零。由于晶体会老化, 赛灵思中国通讯第四十八期

53


出色的工具

如果不能接收卫星信号,那么还有一个办法,那就 是采用网络时间协议(NTP)。NTP 提供了因特网 时间戳功能 所以 TCXO 的漂移不是恒定的。6 个 月后,漂移现在为 3.029E-12。 为期六个月的一组每秒一个脉冲 (1-PPS)输出频率数据同样给人印 象深刻:平均为 -397ps(最近平均低 于 400ps,作为固定延迟可消除), 方差为 1.72E-16。 这么高的精确度足以帮助您测量 重力和速度随时间的变化值(GPS 卫 星绕地球轨道运行时要就针对重力和 速度进行校正,同时卫星也会受到重 力和加速度的影响)。 所得的频率非常稳定,锁定时间 内几乎一直保持常量。那为什么不是 图 1 - 另一设备测试运行时的阿伦方差。

一直都保持锁定状态呢?我的窗口朝 东南开,因此所有直接面向西北的卫 星天线都无法接收。即便如此,没有 卫星连接的情况每天只有几分钟,对 性能几乎没有影响或者说没有任何影 响。 接收器需要最少 4 颗卫星连接才 能工作,不过晴天情况下通常能连接 10 到 11 颗卫星。如果 GPS 信号丢失, 我就看看设备的内部漂移:3.03E-12。 由于每个晶体都不同,因此我的设备 也有自己的漂移。我现在知道漂移的 情况下就用外部综合器修改 10MHz 输 出,同时在卫星不跟踪情况下采用反 向校正。卫星重新连接上,我再把校 正关闭。

图 2 - 示意图显示输出的谱纯度。 54

赛灵思中国通讯第四十八期

2013 年第二季度



X AM PL E S . . .

应用指南 如果您希望进一步了解我们的 FPGA 如何适用于众多应用, 建议阅读以下应用指南。 XAPP897:使用 ZYNQ-7000 AP SOC 和

内核的 S2MM(数据流到存储器映射)路径中的数据先在

FREERTOS 设计视频流系统

DDR 中进行缓冲,再通过 AXI VDMA 的 MM2S 通道读回

http://china.xinlinx. com/support/documentation/application_

并发送到通用 OSD 内核,由 OSD 内核负责将多路视频流

notes/xapp897-video-streaming-system-freertos.pdf

复用或叠加成单个输出视频流。

Dinesh Kumar 编 写 的 本 应 用 指 南 介 绍 了 如 何 利 用 Zynq ™ -7000 All Programmable (AP) SoC 中的赛灵思原 生 IP,创建具备数字视觉接口 (DVI) 输入和视频测试模式 发 生 器 (TPG) 输 入 的 视 频 系 统。 该 参 考 设 计 针 对 的 是 ZC702 评估板,可对视频 IP 核进行配置,使其具备 60Hz 的帧处理速率和 1920 x 1080 的分辨率。该参考设计还能

OSD 内核的输出通过色彩空间转换器驱动板载 HDMI 视频显示接口。 该参考设计利用 Vivado ™系统版本 2012.4 中的赛灵思 Platform Studio (XPS) 创建而成。软件采用赛灵思软件开发 套件创建,运行于 ARM® 双核处理器上,可实现控制、状 态和监控功能。该参考设计通过了全面的硬件验证与测试。

显示系统级带宽使用率和视频时延等指标。这样,设计人 员就能利用 Zynq-7000 AP SoC 创建具备 DVI 输入和 TPG 输入的复杂、高性能视频系统。 本应用指南演示了如何使用 FreeRTOS 操作系统—— Zynq-7000 AP SoC 的两种推荐操作系统之一(另外一种 是 Linux)。FreeRTOS 是一种只含有少量文件的免费操作

处理器上运行 LINUX 和裸金属系统 http://china.xinlinx. com/support/documentation/application_ notes/xapp1078-amp-linux-bare-metal.pdf

系统,易于连接、使用和维护。FreeRTOS 支持多线程或

TZynq-7000 All Programmable SoC 包含两个 ARM

任务、互斥器、信号灯和软件定时器。在参考设计中,主

Cortex ™ -A9 处理器,两个处理器经过配置后可以同时运

应 用 在 一 个 FreeRTOS 线 程 中 运 行, 同 时 创 建 另 一 个

行独立的软件协议栈或可执行文件。本应用指南介绍了一种

FreeRTOS 线程,用以逐渐改变屏幕视控系统 (OSD) 的透 明度,以显示混合效果。 该设计使用两个 AXI 视频直接存储器访问 (VDMA) 内

XAPP1078:利用简单的 AMP 机制在两个 ZYNQ SOC

处理器启动方法,能够让两个处理器分别运行各自的操作系 统和应用,并通过共享存储器相互通信。 Zynq-7000 SoC 的 Cortex-A9 处理器共享通用存储器 和外设。非对称多处理 (AMP) 这种机制允许两个处理器分

核, 用以同时传送四个视频流(两个发送视频流和两个接

别运行各自的操作系统或裸金属应用,并可利用共享资源将

收视频流),每个视频流的帧尺寸为 1920 x 1080,帧速

应用进行松散耦合。该参考设计包括在 AMP 配置下运行两

率为 60 帧 / 秒,每像素 24 个数位 (RGB)。带视频时序控

个 Cortex-A9 处 理 器 所 必 备 的 软 / 硬 件, 即 CPU0 运 行

制器 (VTC) 的 TPG 模块负责驱动其中一个 VDMA,同时,

Linux,CPU1 运行裸金属应用。作者 John McDougall 格外

DVI-In 的输入视频负责驱动另外一个 VDMA。两个 VDMA

注意避免两个 CPU 在共享硬件资源上发生冲突。本文还介

56

赛灵思中国通讯第四十八期

2013 年第二季度


绍了如何创建一个可启动的解决方案以及如何对两个 CPU

内核负责接收 SDI 数据流,并对其进行多路复用,然后

进行调试。

将 他 们 封 装 装 到 固 定 大 小 的 数 据 报 中, 随 后 通 过

XAPP890:使用 VIVADO HLS 工具实现 ZYNQ ALL PROGRAMMABLE SOC SOBEL 滤波器

LogiCORE IP 10GB 以太网 MAC 将数据流发送出去。而 接收器平台则在 10GB 以太网 MAC 地址处收集以太网数 据报。

http://china.xinlinx.c om/support/documentation/application_ notes/xapp890-zynq-sobel-vivado-hls.pdf 本应用指南介绍了如何利用 Vivado 高层次综合 (HLS) 工 具在 Zynq-7000 All Programmable SoC ZC702 基础目标参 考设计 (TRD) 中生成 Sobel 边缘检测滤波器。作者 Fernando Martinez Vallina、Christian Kohn 和 Pallav Joshi 介绍的这种 设计方法是一种将 Vivado HLS 生成的 IP 模块集成到 Zynq SoC 系统中的基础流程。 Vivado HLS 工具可以将处理器算法迁移至 FPGA 逻辑。

DDR 流量经过 AXI 互联到达 AXI 7 系列存储控制器。 设计中包含一个用于完成内核初始化和状态读取的 MicroBlaze ™ 处 理 器。 参 考 设 计 针 对 的 是 赛 灵 思 Kintex ™ -7 FPGA KC705 评估套件。 XAPP596:4K2K 上变频器参考设计 http://china.xinlinx. com/support/documentation/ application_notes/xapp596-4k2k-up-converter-ref-design. pdf

对于 Zynq 器件,这意味着将代码从 ARM 双核 Cortex-A9 处

在数字显示器市场,正在掀起新一轮创新浪潮,全面

理器移到 FPGA 逻辑中,以实现加速。硬件中用 HLS 工具实

推 出 超 高 清(UHD)4K2K 技 术。 先 于 竞 争 对 手 将 具 有

现的代码通常会遇到算法计算瓶颈。本应用指南中,算法瓶

4K2K 观赏体验的产品推向市场是产品开发商面临的一大挑

颈具体指 60 帧 / 秒、分辨率为 1080p 的 Sobel 边缘检测算法。

战。赛灵思 Kintex-7 FPGA 显示目标参考设计让设计人员

作者介绍了如何用 C 语言对算法进行描述,利用 HLS 工具生

能够立即获得 28nm 7 系列 FPGA 器件的功率效率和性价

成 RTL,并将结果模块集成到硬件系统设计中。尽管本应用

比优势,以便有效管理更高的带宽和算法复杂性。上变频

指南主要介绍的是 Sobel IP 模块,但只要应用涉及到将

器是三个赛灵思参考设计中的一个,这套参考设计能提供

Vivado 工具生成的 IP 模块集成到 Zynq SoC 中,同样可采用

4K2K 数字显示信号处理所需的基础架构,这样客户就可以

本文所描述的方法。

集中精力进行产品差异化设计。

XAPP896:在 KINTEX-7 FPGA 上实现具有前向纠错功 能的 SMPTE2022-5/6 高比特率 IP 网络媒体传输 http://china.xinlinx. com/support/documentation/application_ notes/xapp896-k7-smpte2022-56-fec.pdf Gilbert Magnaye、Josh Poh、Myo Tun Aung 和 Tom

Yasushi Tatehira 编著的本应用指南介绍的 HDTV 至 4K2K 上变频器参考设计能将 1080p 高清 TV 提升至 4K2K 更优画质。这种上变频功能可以使在广播和套装媒体中非 常流行的 HDTV 内容在 4K x 2K 平板显示器上播放。该参 考 设 计 采 用 视 频 定 标 器 和 屏 幕 视 控 系 统 (OSD) 这 两 块 LogiCORE IP 构建。

Sun 共同编著的本应用指南涵盖了利用 LogiCORE ™ IP

这种参考设计是基于 Kintex-7 FPGA 的显示目标设计

SMPTE 2022-5/6IP 视频传输发射器和接收器内核进行 IP

平台的一部分,它可以让 HDTV 内容在 4K2K 显示器或

视频传输网络系统设计应考虑的事项。这种设计的重点在于

4K2K 平板显示器上播放,为设计工程师进行产品设计奠定

采用内置的前向纠错引擎通过 10GB/s 以太网实现高比特率

了基础。有了这一转换基础功能,工程师就可以集中精力

本地媒体传输。这种设计可支持多达三个 SD/HD/3G SDI

对 4K2K 数字 TV、显示器和投影机进行差异化设计。

数据流。 该参考设计有两个平台,分别是发射器和接收器。发射

XAPP891:AXI USB 2.0 器件:演示批量和等时传输

器平台采用三个的 LogiCORE SMPTE SDI 内核,用于接

性能

收输入 SDI 视频流。SMPTE 2022-5/6IP 视频传输发射器

http://china.xinlinx. com/support/documentation/

2013 年第二季度

赛灵思中国通讯第四十八期

57


XAMPLES...

application_notes/xapp891-7series-axi-usb-2-0.pdf 本应用指南对采用 AXI 接口的赛灵思 USB 2.0 高速器 件在进行批量和等时事务处理时的性能进行了测量。生成 的测试系统基于 Kintex-7 FPGA 器件。使用两个独立的主 机驱动器测量批量事务和等时事务处理性能。本文作者 Ravi Kiran Boddu 和 Dinesh Kumar 介绍了如何开发一个

尽量降低电源和接地线的阻抗。

尽量降低 RefN 线路和 XADC 的 GNDADC 之间 的一般阻抗,最好使用星形连接。

按照以上指南,极有可能首次电路板设计就能获得出 色的 XADC 性能。

针对批量事务处理和等时事务处理的 USB 系统及相应的 XAPP1077:使用 GTP 收发器的物理层 HDMI 接收器

ELF 文件。 AXI USB 2.0 器件能以最少的资源让设计具备 USB 连 接功能。这种接口适用于以 USB 为中心的高性能设计、桥 接器以及原有端口替换操作。USB 2.0 协议通过一个半双 工串行总线将许多器件进行多路复用。AXI USB 2.0 器件 的运行速率为 480 Mbps(高速)或 12 Mbps(全速), 可 即插即用。主机对总线进行控制并给器件发送令牌用以指 定所需操作。 AXI USB 2.0 器件可支持多达 8 个端点。端点 0 用于 统计负责控制事务处理的器件数。剩余的 7 个用户端点可 配置为批量、中断或等时。此外,端点也可以被配置为输 入(输入至主机)或输出(从主机输出)。用户端点的数

http://china.xinlinx. com/support/documentation/ application_notes/xapp1077-phy-hdmi-rx-gtp.pdf 高清多媒体接口 (HDMI)I/O 标准使用 3.3v 端接最小 化 传 输 差 分 信 号 (TMDS)。 尽 管 TMDS 信 号 可 通 过 Spartan®-6 FPGA SelectIO ™接口进行本地接收,但 GTP 收发器有助于提高性能。本应用指南重点介绍了如 何利用 GTP 接收器的更高带宽来支持系统。 我们可以使用外部无源网络来调整 GTP 收发器,使 之接收符合 HDMI 标准的信号。作者 Paolo Novellini 和 Rodney Stewart 从理论和实践角度详细介绍、分析和比 较了两个不同的无源网络。作者在一个定制开发板上对

据缓冲器是单向的,而且通过各自的配置 - 状态寄存器进

两个网络进行了测试,以研究它们的信号完整性极限并

行配置。缓冲器的容量可以是 0 至 512 字节(用于批量端

对理论预期进行确认。作者在这篇应用指南中主要考虑

点)、64 字节(用于中断端点)以及最高的 1024 字节(用

的是芯片到芯片的使用案例,但是得出的结果是普遍适

于等时端点)。

用的。HDMI 使用的目标数据速率是 1.45 GB/s。

XAPP554:XADC 布局指南 http://china.xinlinx. /support/documentation/application_

XAPP586:为 7 系列 FPGA 搭配 SPI 闪存

notes/xapp554-xadc-layout-guidelines.pdf

http://china.xinlinx. com/support/documentation/

灵思模数转换器 (XADC))是一种精确混合信号测量系 统。与其它混合信号或模拟电路一样, 如果印刷电路板

Arthur Yang 编写的本应用指南介绍了将串行外设接

(PCB) 布局不够理想,会对性能产生很大影响。本应用指南

口 (SPI) 闪存作为赛灵思 7 系列 FPGA 配置内存存储器的

的作者 Cathal Murphy 详细介绍了一系列简单的布局指南,

优势,FPGA 与 SPI 闪存存储器之间的所需的连接,以及

以帮助电路板设计人员实现尽可能最佳的 XADC 性能。

选择合适 SPI 闪存应注意的细节。

首先需要整理与每个 BGA 焊球有关的走线,为差分信 号和遮蔽罩 (shield) 腾出最大布线空间。然后:: •

在尽可能小的 PCB 空间上将 N 和 P 线路布置在一 起,以最大限度发挥 XADC 提供的差分采样优势。

application_notes/xapp586-spi-flash.pdf

58

使所有去耦和抗混叠电容器尽量靠近 FPGA 引脚。 赛灵思中国通讯第四十八期

SPI 闪存是一款可用于配置 7 系列 FPGA 的简单、低 引脚数解决方案。它支持间接编程功能,可通过重用配置 解决方案的已有连接进行在系统编程更新,从而增强易用 性。 尽管其它一些配置方法能实现更快的配置速度或更 高的密度,但 SPI 闪存解决方案能够很好地在速度与简便 性之间进行平衡。 2013 年第二季度


XAPP797:吞吐性能测量

XAPP739:AXI 多端口存储控制器

http://china.xinlinx .com/support/documentation/application_

http://china.xinlinx. com/support/documentation/application_

notes/xapp797.pdf

notes/xapp739_axi_mpmc.pdf

这篇应用指南讨论了在 AXI Quad SPI IP 核处于增强

设计人员需要在有多个器件共享通用存储控制器的应

型 Quad 模式下,从 SPI 闪存中写入和读取 1 MB 数据时,

用中使用多端口存储控制器 (MPMC)。这在视频、嵌入式

SPI 的带宽测量情况。

和通信应用中比较常见,因为这些应用中有来自多个数据

本技术文档介绍的测试使用带 Numonyx SPI 存储器

源的数据需要流经通用存储器件(一般是 DDR3 SDRAM

的 KC705 开发板,在对软件实例文件进行少量修改后,

存储器)。Khang Dao 和 Dylan Buli 共同编著的本应用指

可以在任意其他测试版上测试。

南 介 绍 了 如 何 利 用 包 括 Project Navigator 和 CORE

作者 Sanjay Kulkarni 和 Prasad Gutti 通过向 SPI 闪存读写 1MB 数据的方式展现系统性能测量方法。这些 系统采用赛灵思 Platform Studio(XPS)v14.4 构建而成, XPS 是 ISE® 设计套件系统版本的组成部分。该设计还 包含由赛灵思软件开发套件构建的软件,该软件运行在 MicroBlaze 处理器子系统上,用于实现控制、状态和监 控功能。本应用指南的重点是测量当内核处于 Quad SPI 模式且 SPI 时钟速率为 40 MHz 情况下的 SPI 带宽。 XAPP1084:使用赛灵思 VIRTEX-6 和 7 系列 FPGA 开发防篡改设计 http://china.xinlinx. com/support/documentation/application_ notes/xapp1084_tamp_resist_dsgns.pdf 不管是军事领域还是商业领域,都需要时刻保持领先 竞争对手一步,然而这需要了解潜在的漏洞和攻击,然后 开发出最新的缓解技术或反制措置用以对抗侵袭。系统工 程师可以利用赛灵思提供的多种 FPGA 防篡改(AT)功能, 为其 FPGA 设计选用不同防篡改功能,以实现单芯片 AT 功能或多种 AT 功能的结合。 本应用指南提供的防篡改指南和操作实例可以帮助 FPGA 设计人员保护知识产权 (IP) 以及 FPGA 系统中可 能存在的敏感数据。 防篡改功能必须在用比特流配置 FPGA 之前、之中和之后有效。敏感数据包括用于设置

Generator ™在内的 ISE 设计套件逻辑版本工具创建基本的 DDR3 MPMC 设计。方法是将存储器接口生成器 (MIG)IP 模块与 AXI 互联 IP 模块相结合(二者均包含在 ISE 设计套 件逻辑版本中),用以创建高性能 MPMC。 本实例设计中使用的 AXI 接口由 AXI4、AXI4-Lite 和 AXI4-Stream 组成,三者都可以提供系统构建所需的通用 IP 接 口 协 议 框 架。 实 例 设 计 是 一 种 基 于 Virtex-6 FPGA ML605 评估板的完整硬件系统,可用于实现简单的视频系 统。在视频系统中,视频测试模式生成器产生的数据在被 发送到评估板 DVI 显示器之前,要多次循环出入于存储器。 因此,DDR3 存储器就相当于一个由多个视频帧缓冲器共 享的多端口存储器。 XAPP593:显示端口 SINK 参考设计 http://china.xinlinx. com/support/documentation/application_ notes/xapp593_DisplayPort_Sink.pdf Arun Ananthapadmanaban 和 Vamsi Krishna 共同编 著的本应用指南介绍了针对 Spartan-6 FPGA 消费视频套 件 中 MicroBlaze 处 理 器 的 DisplayPort ™ 宿 端 内 核 与 Policy Maker 参考设计的实现。该参考设计是一种环通系 统,可通过接收链路接收来自 DisplayPort 源端的视频, 并对视频数据进行缓冲,再经过 DisplayPort 发送链路将 数据再次发出。Policy maker 可执行多个任务,例如 GTP

FPGA 逻辑功能的配置数据、包含在比特流中的关键数据

收发器链路初始化、寄存器探测以及其它有助于启动和内

或 参 数, 以 及 在 配 置 后 正 常 运 行 过 程 中 动 态 输 入 输 出

核使用的功能。应用则负责控制参考设计的宿端和源端,

FPGA 的外部数据。

并利用辅助通道与连接参考设计发送端口的显示器(宿端)

作者 Ed Peterson 总结了 Virtex-6 和 7 系列器件提供

进行通信。该参考设计使用了赛灵思 CORE Generator 工

的芯片 AT 功能,并介绍了有关多种增强防篡改方法的使

具 生 成 的 DisplayPort 源 端 内 核 和 宿 端 内 核, 以 及 一 个

用指南。

Policy Maker 和使用外部存储器的帧缓冲器逻辑。

2013 年第二季度

赛灵思中国通讯第四十八期

59


X T R A, X T RA

Vivado 2013.1 版本的最新 消息 Vivado ™设计套件提供了高度集成的设计环境和全新一代系统到 IC 工具,其中包括高 层次综合、解析布局布线和高级时序引擎等。这些工具能帮助开发人员提高设计集成度 以及实现生产力。

VIVADO IP 集成器:加速 IP 创建与集成 为 了 加 速 在 All Programmable FPGA 器件中创建高度集成的复杂设 计,赛灵思推出了 Vivado IP 集成器 (IPI) 早期试用版。Vivado IPI 可加速 RTL、赛灵思 IP、第三方 IP 以及 C/ C++ 综合的 IP 的集成。Vivado IPI 采 用 ARM® AXI 互 联 和 IP 封 装 的 IPXACT 元数据等业界标准,能提供 智能、结构组装正确并与赛灵思 All Programmable 解决方案协同优化的 设计方案。 IP 集成器 (IP Integrator) 建立在 Vivado 设计套件基础上,是一款具有 器件和平台意识的互动性、图形化和 可编写脚本的环境,能支持具有 IP 意 识的自动化 AXI 互联、单击 IP 子系统 生成、实时 DRC、接口变更传播以及 强大的调试功能。针对 Zynq ™ -7000 All Programmable SoC 设计,嵌入式 设计团队现在能够更快速地识别、重 用并集成软 / 硬件 IP,满足双核 ARM 处理系统和高性能 FPGA 架构的要求。 如需获取早期试用许可证,敬请联系 您所在地的销售代表。 如欲观看 IP 集成器创建 IP 子系 统 的 视 频, 敬 请 访 问:http://china. 62

赛灵思中国通讯第四十八期

xinlinx.com/cn/training/vivado/ creating-ip-subsystemswith-vivadoip-integrator.htm。

Vivado 现可支持 Zynq-7000 All Programmable SoC 器 件, 包 括 7Z030 和 7Z045(支持需要 IP 集成 器早期试用版)。Vivado 设计套件支

VIVADO 高层次综合库增强功 能 为了加速 C/C++ 系统级设计和 高 层 次 综 合 (HLS), 赛 灵 思 为 其

持 所 有 7 系 列 器 件, 而 2013.1 版 本 除此之外还可支持如下器件: ■

7VX1140T、7VX330T、

Vivado HLS 库新增了业界标准浮点

7VX415T 和 7VX980T

math.h 运算和实时视频处理等增强 功能。正在评估 Vivado HLS 的超过

量产级:Virtex®-7 7VX690T、

军用级:Kintex ™ -7Q(7K325T

350 名活跃用户和 1000 多家客户,

和 7K410T)和 Virtex-7Q

现在就可以立即访问嵌入到 OpenCV

(7V585T 和 7VX485T)

环境中的视频处理功能,实现运行在 双核 ARM 处理系统上的嵌入式视觉。 最终解决方案通过硬件加速能将现有 的 C/C++ 算法性能提升 100 倍之多。 同时,Vivado HLS 相对于 RTL 设计 输入流程而言,可将系统验证和实现 速度提高达 100 倍。 针对 Zynq-7000 All Programmable SoC 设计,设计团队现在能够 更快地开发出双核 ARM 处理系统的 C/C++ 代码,同时还能自动加速高性 能 FPGA 架构中计算密集型功能的执 行。

VIVADO 设计套件可支持的器 件

一般工程样片:Virtex-7

7VH580T 和 7VH870T Vivado 设 计 套 件 Web-PACK ™ 版 本 可 免 费 下 载, 其 可 支 持 Artix ™ -7(100T 和 200T) 和 Kintex-7(70T 和 160T)器件,以及 Zynq-7000 All Programmable SoC ( 早 期 试 用 版 Z010、Z020 和 Z030)器件。

Q: A:

VIVADO 设计套件提供哪些 不同的版本? Vivado 设计套件现已推 出 三 个 版 本:设 计 版 本 、

系统版本版和 WebPACK 版本 2013 年第二季度


(这是免费的限于器件的 Vivado 设计套件设计版本)。有效期 内的 ISE® 设计套件用户可免费获得 Vivado 设计套件。 Vivado 设计套件和 ISE 设计套件提供不同的下载和安装程序。Vivado 设 计套件包括 ISE 嵌入式版本;而 Vivado 系统版本则包括 ISE 系统版本,以及 Vivado 高层次综合和 System Generator for DSP(DSP 系统生成器)。 注册码生成信息,敬请访问:china.xilinx.com/cn/getlicense。

Q: A:

我是该继续使用 ISE 设计套件还是应转用 VIVADO ? ISE 设计套件是一款业经验证的解决方案,支持各代赛灵 思 All

Programmable 器件。赛灵思 ISE 设计套件继续

为广大开发人员带来创新支持,而且还为 7 系列和赛灵思 Zynq7000 All Programmable SoC 项目提供熟悉的设计流程。ISE 14.5 带来新的创新并提供更多器件支持,现可立即下载。 赛灵思的新一代设计环境 Vivado 设计套件 2013.1 版本可支持 7 系列器件

和 Zynq All Programmable SoC(早期试用)器件,提供了增强型工具性能,特 别适用于大型设计或密集型设计。 赛灵思建议开始启动新设计的用户垂询当地的现场应用工程师,以确定 Vivado 是否适用于该设计。如果当前项目正采用 ISE 设计套件进行设计,赛灵 思建议不要转用 Vivado,因为两种环境的设计约束和脚本并不兼容。 如需了解更多信息,敬请参阅 Vivado 2013.1 和 ISE 14.5 版本说明。

Q: A:

VIVADO 设计套件是否 提供培训? Vivado 充 分 利 用 了 强 大 的 互 动 Tcl 脚 本、Synopsys 设 计约束、SystemVerilog 等业界标准。为帮助您缩短学习

时间,赛灵思推出了全新教师指导培训课程,让您了解如何使用 Vivado 工具。如需了解有关教师指导培训课程的更多信息,敬请 访 问 以 下 网 址 : china.xilinx. c o m / c n / t r a i n i n g 。

Q: A:

能否在线探索 VIVADO 设计 套件特性? Vivado 快速入门教程提供了新设计环境某些特性的快速 概览,包括流程概览、系统级设计、综合、设计分析、I/

O 规划和高层次综合等课题。同时还将定期增加新的课题。敬请 访 问 : china .xilinx.com/training/vivado

2013 年第二季度

Xilinx Vivado 设 计 套 件 荣 膺 2013 年 EE Times 和 EDN ACE 大奖 业界首款 SoC 增强型设计套件 Vivado 设 计套件被纳入业界精品之列

All Programmable 技 术 和 器 件 的 全 球 领 先 企 业 赛 灵 思 公 司 (Xilinx, Inc. (NASDAQ:XLNX) )今天宣布其业界首款 SoC 增 强 型 设 计 套 件 Vivado® 设 计 套 件 在 2013 年 4 月 23 日 举 行 的 EE Times 和 EDN ACE 颁奖典礼上荣膺了 UBM Tech 的 电 子 工 程 专 辑 (EE Times) 和 EDN 年 度 电 子创新(ACE)终极产品软件类大奖(http:// ubm-ace.com)。这次颁奖活动属于 UBM Tech 举办的 DESIGN West 和 ESC 硅谷大 会的一部分。 Vivado 设计套件之所以获得了 2013 年度 ACE 奖,是因为其能够帮助设计人员提高 All Programmable FPGA 和 SoC 设计的生 产力。Vivado 设计套件采用基于业界标准 和共享、可扩展模型的以系统和 IP 为核心 的集成设计环境,可提供 C/C++ 和 System C 的高层次综合、智能 IP 集成、RTL 仿真 以及速度比同类竞争解决方案快四倍的业界 领先的分析实现引擎。 赛灵思公司设计方法市场营销高级总监 Tom Feist 指出: “我们很高兴获得如此高的荣耀, 这是对我们员工 4 年来打造 Vivado 设计套 件这一全新一代设计环境所做努力的充分肯 定。荣膺 UBM 的 ACE 奖, 也证明了赛灵 思在为客户提供领先一代生产力解决方案上 所做出的贡献,同时也保持了赛灵思众所周 知的卓越水平和高质量。” 年度最佳产品奖旨在表彰过去 12 个月内推 出的最有影响力的产品,该奖项共分 11 个 类别,经过大规模同行评审确定最终得主。 每个类别的获得者由 EE Times 和 EDN 专 家级编辑选出,并提供点评。 EE Times 和 EDN ACE 奖包含 22 个类别, 评选委员会成员都是业界的顶级专家,包括 学术界和产业领域的最权威人士。 EDN 的品牌总监 Patrick Mannion 指出: “我 们的评选旨在展示本年度上市的最佳产品组 合。2013 年度大奖得主均彰显出了不仅能 够推出前瞻性技术,而且还具有让消费者惊 艳的非凡创造力,进一步凸显了电子和嵌入 式设计专业人士对当今文化的巨大影响力。”

赛灵思中国通讯第四十八期

63


领 先 一 代 软件、硬件及I / O全面可编程

了解更多


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.