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

58

description

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

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

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

估算Xilinx

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

目 录

出色的应用功能设计

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

22

无线通信领域的出色表现赛灵思All Programmable器件助力实现Smarter Wireless Networking ……10

嵌入式视觉领域的出色表现用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式视觉应用开发……18 1010

1818

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

估算

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

封面专题

8 赛灵思中国通讯第四十八期 2013 年第二季度

聚焦面向 Smarter 视觉的 Zynq SoC 聚焦面向 Smarter 视觉的 Zynq SoC 作者:Mike Santarini赛灵思公司《赛灵思中国通讯第

四十八期》出版人

电子邮件:[email protected]

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

2013 年第二季度 赛灵思中国通讯第四十八期 9

封面专题

是否看过奥迪自动停车技术演示,轿车

无需驾驶员干预,便可自动找到停车位并停

泊。您是否使用 Kinect 控制器玩过 Xbox

360 游戏,或者刚刚咬下您从本地水果店购

买的一块上好的水果。如果有,那您可能就

是 Smarter 视觉系统时代到来的见证人了。

从最高级电子系统到普通苹果,Smarter 视

觉技术影响着各种形式的产品。虽然当今各

种系统已足以让人称奇,但一些专家预测未

来 10年,从汽车到工厂自动化、医疗、监控、

消费、航空航天与国防的绝大多数电子系统,

都将包含功能更加出色的 Smarter 视觉技

术。

随着 Smarter 视觉系统高级程度的提

高,我们很可能有机会乘坐网络化高速公路

中川流不息的自动驾驶汽车。直觉外科等医

疗设备令人惊讶的机器人辅助外科系统将进

一步发展,可帮助外科医生实施远程外科手

术。电视与网真 Jelepresence 将达到新的

身临其境及互动水平,而电影院、家庭及店

铺屏幕上显示的内容则将迎合每个消费者的

兴趣,甚至是我们的情绪。

Smarter视觉的赛灵思All Programmable

解决方案处于这次革命的前沿。赛灵思以首

您聚焦面向 Smarter 视觉的 Zynq SoC 聚焦面向 Smarter 视觉的 Zynq SoC

Zynq All Programmable SoC

加上全新赛灵思工具及 IP,

可为新一代嵌入式视觉产品

奠定坚实基础。

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

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

CortexTM-A9 MPCORETM、可编程逻

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

ZynqTM-7000 All Programmable SoC

为基础,已推出一款工具与 IP 的支持

性基础架构,其将在实现这些视觉创新

开发与加速交付的过程中发挥重要作

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

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

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

SmartCORETM IP 以及专用开发套件。

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

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

在 通 过 赛 灵 思 A l l

ProgrammableSmarter 视觉技术帮助

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

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

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

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

Programmable SoC,处理器和 FPGA

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

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

用的硅芯片平台。”

就器件支持而言,Glaser表示:“我

们 已 使 用 由 Vivado HLS、 全 新 IP

Integrator 工 具、OpenCV 库、

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

健 开 发 环 境 为 Zynq-7000 All

Programmable SoC 提供辅助。在这些

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

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

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

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

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

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

甚至挽救生命。”

从哑巴摄像机到 SMARTER视觉

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

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

联 盟 ”(www.embedded-vision.

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

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

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

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

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

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

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

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

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

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

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

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

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

统,迅速发展成为如今能够知晓拍摄内

容的 Smarter 嵌入视觉系统。”

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

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

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

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

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

发展的最好例证。

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

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

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

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

轴线缆连接模拟监控器的模拟视频摄像

机和安保人员监测的视频录制设备组

成,其清晰度、可靠性以及因此而产品

的有效性主要取决于光学设备与透镜的

质量以及监控摄像机播放内容的安保人

员的尽职程度。

随着嵌入式视觉技术的推出,监控

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

成本摄像头。该数字处理技术为其系统

带来了卓越的特性,不但性能远超基于

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

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

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

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

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

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

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

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

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

率。

但可通过数字信号处理操纵的更清

晰图像只是开始。监控系统制造商已经

开始使用先进程度大为改观的像素处理

技术开发更加高级的嵌入式视觉系统,

其可在数字系统正在采集的高质量图像

上实时执行分析。这些最初的嵌入式视

觉系统只能检测具体的颜色、形状和移

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

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

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

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

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

10 赛灵思中国通讯第四十八期 2013 年第二季度

封面专题

先进的视频系统不但可增强和分析图像,

而且还可根据这些分析触发行动,从而显

著控制了计算功能需求 。

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

可疑行为

最先进的监控系统所提供的分析

功能能够跟踪受监测个体穿越安保网

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

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

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

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

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

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

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

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

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

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

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

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

情况或跟踪表现有可疑行为或过激行

为的个人,就会有明显的优势。”

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

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

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

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

头与热成像、雷达、声纳以及光/激

光探测与测距(LIDAR)等其它感测

技术相结合。这样系统可实现夜视功

能,检测热温/热能签名,或捕获单

凭摄像头无法采集或无法看到的对象。

该功能可显著减少虚假检测,实现更

精确的分析。毫无疑问,技术融合和

数据分析会提高复杂性,需求更为强

大的分析处理能力。

Timmons 提到,这个市场的另一

大趋势是执行所有此类复杂分析的产品

都位于监控系统网络的“边缘”,即位

于每一部摄像头中,而不是由每一部摄

像头将其数据传输到中央大型机系统,

再由大型机根据这些复馈进行更精细的

分析。本地化分析功能会给整体安全系

统增加灵活性,使系统中每个点都能够

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

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

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

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

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

其所发现的事物,而且还必须相当紧凑,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

安全性的速度。

SMARTER 视觉成就完美苹果

现在以苹果为例。有没有想过苹果

是怎么以如此良好的状态进入你的杂货

店的?赛灵思工业科学及医疗业务部架

构师 Giulio Corradi 表示,食品公司正

在将最新更智能视觉系统用于食品检验

流水线,将坏苹果从好苹果中筛选出来。

Corradi 表示,高速食品检验流水线上

使用的第一代嵌入式视觉系统通常使用

一个或多个摄像头发现苹果或其它农副

产品表面上的瑕疵。如果嵌入式视觉系

统发现有非正常色泽,该苹果就会被打

上标记/筛选出来进行进一步检测,或

者扔掉。

皮下检测

但是如果在此之前的某个时候水果

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

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

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

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

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

像头上整合了红外传感器,用以检验苹

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

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

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

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

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

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

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

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

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

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

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

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

可用于堆制肥料。

Corradi 表示,工厂车间是应用

Smarter 视觉的另一场合。越来越多的

工厂使用机器人辅助技术或完全自动化

机器人生产线帮助制造商根据不同任务

更换机械设备。机器人周围的传统安全

笼过于约束(或太小),无法满足其制

造不同产品系列的移动需求

故为保护工人的安全,同时也避免

制约自动化工厂生产线的动作范围,企

业正在使用Smarter视觉建立安全系统。

摄像头和激光会竖立“虚拟栅栏或屏

障”,如果有人在产品正在生产时过于

靠近工厂生产线,其可向工作人员(和

安全监测人员)发出告警声。部分设施

包含多相虚拟屏障系统,在有人跨越外

部屏障时其将发出告警声,然后在此人

跨越第二道屏障、接近机器人时自动关

闭整条生产线,以避免发生伤害事故。

嵌入式视觉联盟的 Bier 提到,这类虚拟

2013 年第二季度 赛灵思中国通讯第四十八期 11

封面专题

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

屏障技术有广泛的应用性。Bier说:“它

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

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

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

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

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

我们的日常生活中。”

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

汽车是另一个全力推崇 Smarter

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

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

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

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

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

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

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

china.xilinx.com/publications/archives/

xcell/Xcell66.pdf)。

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

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

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

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

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

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

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

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

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

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

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

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

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

其严重性。

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

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

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

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

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

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

驶员辅助功能。使用这四个摄像头和

图像处理分析功能,这些新一代系统

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

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

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

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

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

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

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

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

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

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

驶入停车位。

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 年第二季度

虚拟屏障可降低工厂安全事故,然而为什么不在游乐场、在我们

家中的游泳池周围或汽车上也安装虚拟屏障呢?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

赛灵思:面向 SMARTER 视觉的

ALL PROGRAMMABLE 方案

要全面快速推进 Smarter 视觉技

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

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

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

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

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

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

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

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

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

发商快速推出新一代创新技术。

10 多年来,嵌入式视觉技术设计

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

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

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

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

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

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

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

Programmable SoC 的推出,嵌入式

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

发新一代 Smarter 视觉应用的全面可

编程器件。

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

Jose Alvarez 表示:“Smarter 视觉技

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

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

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

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

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

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

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

信息。”

图 1 展现了 Zynq SoC 在创建多

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

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

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

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

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

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

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

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

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

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

一些半导体芯片厂商提供将 ARM

处 理 器 和 DSP 或 GPU 结 合 的

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

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

2013 年第二季度 赛灵思中国通讯第四十八期 13

+DSP+FPGA

PSA B C D

DSP FPGAFPGA

A B C D

Zynq SoC

PL

3 1

2

25%

50%

Zynq-700 All Programmable SoC

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

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

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

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

类低效率问题。

可编程性与性能

Zynq SoC 相对于以 GPU 和 DSP

为中心的 SoC 而言,其主要优势就是

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

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

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

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

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

Smarter 视觉系统,并让其系统从竞争

产品中脱颖而出。

图 2 给出了 smarter 视觉系统的

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

All Programmable SoC 相对于基于

ARM 和 DSP 以及基于 ARM 和 GPU

的 ASSP 解决方案的优势。

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

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

入。在 Zynq SoC 中,开发人员可让

多种不同 I/O 信号适应于客户连接的任

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

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

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

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

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

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

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

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

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

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

在 Zynq SoC 中,处理子系统和

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

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

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

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

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

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

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

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

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

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

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

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

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

系统中采用独立的 FPGA。

Zynq SoC 显然是开发 Smarter

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

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

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

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

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

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

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

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

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

2011 年 1 月收购 AutoESL 获得了这

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

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

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

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

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

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

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

Verilog 或 VHDL, 让 其 在 器 件 的

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

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

14 赛灵思中国通讯第四十八期 2013 年第二季度

4K2K

MIPI

SDIHDMI

DisplayPort

IP

IPH.265/HEVCH.264

I/O I/O240 Gops 50-100 Gops 1-10 Gops 50-200 Gops

Zynq SoC

DSP + ARM

GPU + ARM

I/O FPGA FPGA

I/O IP I/O

I/O I/O ARM

ARM +FPGA

DSPARM

GPUIP

GPUIP

FPGA I/O

I/O

I/O

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

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

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

整体系统性能。

OPENCV 库

赛灵思还推出了 OpenCV(CV

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

步 完 善 了 Smarter 视 觉 技 术。

OpenCV 是 OpenCV.org 发布的一

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

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

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

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

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

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

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

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

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

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

有。

Alvarez 表示,这些 OpenCV 算

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

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

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

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

语言编写的算法。

Alvarez 指 出, 有 了 Vivado

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

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

改为 HLS,然后使用 Vivado HLS,

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

Zynq-7000 SoC 的逻辑部分实现而

优化的 RTL 代码。在 Vivado 环境中

使用 OpenCV,便于 Smarter 视觉架

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

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

Programmable SoC 的 FPGA 逻辑部

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

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

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

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

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

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

7000 All Programmable SoC 中运行,

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

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

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

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

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

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

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

能并为之建立基准。

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

赛灵思还开发出了 SmartCORE IP 套

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

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

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

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

SmartCORE IP 套件提供的内核和

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

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

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

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

令行环境中工作。

目标平台意识

Alvarez 指出,自 Vivado 设计套

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

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

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

Integrator,Vivado 设计套件不仅具有

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

支持所有 Zynq SoC 和 7 系列 FPGA

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

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

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

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

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

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

并在 IP Integrator 中实例化 Zynq SoC

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

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

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

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

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

FPGA 逻辑更迅速地识别、重用并集

成 IP 软 / 硬核。

用户可使用一系列对话框设定处

理 系 统 及 其 逻 辑 之 间 的 接 口。IP

Integrator 随后自动生成 RTL,并针对

性能或面积进行优化。接下来用户可

添加自己的定制逻辑,或使用 Vivado

IP 目录完成设计。

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

FPGA 已经开发出怎样的 Smarter 视

觉系统,是非常值得一看的。Zynq-

7000 All Programmable SoC 和强大

的 Smarter 视觉环境的问世,为开发

更令人叫绝的新产品提供了保障。

2013 年第二季度 赛灵思中国通讯第四十八期 15

封面专题

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

Xilinx

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

2013 年第二季度 赛灵思中国通讯第四十八期 17

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

炸性增长需求的移动因特网。但是仅靠简

单部署更多、速度更快的设备还不行,电

信运营商必须通过更加智能的途径来充分

利用网络。他们正积极开发自组织网络等新型架构,以

便为客户提供出色的优质服务,并最大限度地提高盈利

能力。

赛灵思正助力无线网络公司率先利用这类新型架构,

并在 28nm All Programmable 器件和 Smarter Wireless

Networking 解决方案的基础上向市场推出产品,同时赛

灵思还提供配套基础设施,包括 SmartCORE ™ IP、

Vivado ™设计套件和服务专业技术等。

移动 IP 的爆炸性增长

过去 4 年来,移动 IP(因特网协议)使用呈爆炸性

增长。国际电信联盟的 ICT 统计数据显示,从 2000 年

到 2010 年,移动蜂窝用户的数量增长 8 倍,超过了同

期因特网用户增长的幅度。移动用户大发展的趋势同固

话用户数量持续下降的趋势大相径庭。截至 2010 年,

移动用户数量比固话用户数量多 4 倍。智能手机和平板

技术的推出从根本上改变了企业运营的方式,同时也改

变了人们休闲娱乐、同亲友互动的方式。

智能手机和平板电脑的功能和商业模式与因特网的

另一组成部分蜂窝网络之间存在着一种共生性联系,也

就是说,这二者是互相促进的。随着智能手机和平板电

脑的功能越来越强大,人们会找到利用这些新功能的新

途径,这就会增加网络的需求压力。在此情况下市场机

制就会发挥作用,网络运营商会进行网络升级,接下来

移动设备公司又要推出新的设备消耗更高的网络容量,

这样这种循环就会周而复始地进行下去。而现在,分析

人士认为 2020 年的网络容量需求要比现在的需求高出

1000 多倍。

自智能手机成为主流的这 4 年来,我们看到屏幕像

素密度从此前的 163PPI 提高到当前的 326 PPI(每平方

英寸拥有像素数量)。与此同时,存储容量从 32GB 翻

番到 64GB,而后置摄像头则从 300 万像素拍摄 VGA 视

频提升到 800 万像素,并可支持 30fps 1024p 高清视频。

无线通信领域的出色表现

作者:Chris Dick赛灵思公司首席 DSP 架构师[email protected]

随着移动 IP 的迅速发展,电信

运营商需要灵活的芯片和设计

工具来构建高性能异构网络架

构,从而充分满足未来需求。

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

移动设备制造商现在推出的前置摄像头

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

需求将呈指数级增长。

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

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

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

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

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

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

备下载媒体内容等各种不同的移动体

验要求。举例来说,在登机开始长途

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

的赛灵思中国通讯第四十八期或 IEEE Communications Magazine 或者下载

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

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

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

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

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

Facebook 等高级社会技术系统和

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

年每月 3.5EB 以上的水平。

努力满足带宽增长的需求

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

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

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

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

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

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

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

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

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

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

持续到 2020 年。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

高的要求。

网络不断发展演进

3GPP 等标准组织机构以及“新

一代网络移动联盟”等业界联盟和业

界学术界研究实验室等都在竞相定义

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

LTE(长期演进)和 Evolved Packet

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

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

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

18 赛灵思中国通讯第四十八期 2013 年第二季度

无线通信领域的出色表现

全球智能手机用户达到 10 亿经历了 16 年时间,但据估计全球再

增加 10 亿新智能手机用户只需要 3 年时间。 网络容量需求将呈指数级增长。

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

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

和 SC-FDMA 技术的新一代功能)发

展到 2011 年 LTE 的首次重大演进以

及 2011 年 批 准 的 LTE-Advanced

Release 10 规范。虽然 LTE 和 LTE-A

系统仍在部署之中,但 Release 12 工

作组已经在规划面向 LTE-B 的相关技

术和要求了。

无线产业面临的一大关键性挑战

就 是 如 何 扩 大 容 量。Claude E.

Shannon 在 1948 年的一篇开创性论

文(《通信的数学理论》)中提出了

著名的通道容量方程式。当时这位通

信产业的先锋还在贝尔实验室工作。

他指出,带宽效率的提高会必然伴随

着功率效率的下降。这个规律说明,

容量是带宽的线性函数,同时是信噪

比的对数函数。这就促使研究人员设

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

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

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

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

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

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

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

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

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

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

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

通 过 采 用 空 分 复 用(SDM)

MIMO 技术,我们能进一步提高容量,

与对数容量方程式不同的是,在发射

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

进。

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

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

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

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

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

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

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

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

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

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

战。

继 Shannon 开创性论文发表之后

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

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

无线通信领域的出色表现

2013 年第二季度 赛灵思中国通讯第四十八期 19

• 2D (AAA) 100 eNB

• MU-MIMO 10 EU

• MU-MIMO10 EU

LTE

• IP

FD-MIMO eNB• CPRI

图 1 - 工业和学术研究机构以及 3GPP PHY 工作组正在分析未来一代的蜂窝访问能否采用大规

模或 3D MIMO。大规模 MIMO 相对于当前系统而言可将天线系统提高一个数量级,能够部署数

百个天线。

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

码方案与多天线技术、调制系统、通

信协议和数字 IF 处理等的结合能够帮

助网络公司实现尽可能利用通道容量

的系统。不过,要充分满足更高容量、

更稳定通信和更低端对端时延的巨大

需求,我们还有很长的路要走。除了

通过 OFDMA 和智能天线配置等方法

更加灵活高级、或者更智能地利用频

谱之外,增强单元间干扰消除等概念

也不断涌现,协助切换工作,并保持

互联设备的稳定性。

自组织网络(SON)包含着一系

列丰富的概念,这也是 LTE 路线图上

必须实现的技术。SON包括很多方面,

如自动邻居关系、负载平衡、流量增

长和容量管理等。采用自我优化、自

我修复的技术有助于节约能耗,扩大

覆盖范围,并实现 LTE 参数优化。

RACH(随机访问通道)优化就是一

个例子。

SON 还有一个关键特性,就是能

提高网络的智能,其最终目标是最大

限度地减少运营成本相关的驱动测试。

为了改进网络,运营商通常现场部署

工程师收集无线电测量信息,以发现

网络中覆盖漏洞等问题,并明确是否

需要调节基站或网络参数。不过,这

种传统的驱动测试成本很高,而且收

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

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

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

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

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

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

的重要发展,有助于在网络中的节点

插入,支持在节点和网络生命周期中

实现自动的参数调节。

然而,网络设计还要考虑一个问

题,就是运营成本问题,它与运营支

出密切相关,实际上就是资本支出,

以 RF 平台为例,该平台包含了功率放

大器,即用于多天线系统的放大器。

RF 电子技术的环保因素包含多个方

面。非线性功率放大器的部署从成本

角度看是很不错,但 LTE RAN 下行使

用的非恒定包络 OFDMA 调制方案在

由低成本非线性放大器处理的情况下

会造成频谱再生这样的不利情况。这

种带外频谱发射的不良情况会影响邻

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

且也不符合监管规定要求。

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

避,并且只执行放大器传输功能的线

性部分。不过,由于我们对功率放大

器的效率或者放大器转换 DC 电源到

RF 载波的效率感兴趣,因此最好只采

用较小的输出退避来操作放大器,因

为放大器在此偏置点上的效率最高。

偏置放大器可最大限度的减少退避,

这就意味着更靠近传输功能的压缩部

20 赛灵思中国通讯第四十八期 2013 年第二季度

无线通信领域的出色表现

图 2 - Berrou 等在其著名的 1993 年论文中率先发布的卷积 Turbo 码瀑布图。

Turbo 码对 3G 和 4G 无线系统中采用的编码系统进行了彻底改革

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

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

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

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

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

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

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

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

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

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

议。

放眼未来,我们看到射频处理将

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

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

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

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

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

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

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

灵活性的解决方案。

当然,并非所有基站,无论是宏

蜂窝也好还是小蜂窝也好,都需要支

持所有可能的方案。因此,OEM 厂商

面临着一个难题,就是要快速构建一

系列低成本解决方案,满足网络运营

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

频谱许可、频谱碎片整理(spectrum

fragmentation)和单个 RF 链支持多种

射频访问技术 ( 多 RAT 挑战 ) 需求之

上的综合体。导致情况变得更加复杂

的是异构网络的推出,它包括宏蜂窝

基站、小蜂窝底层和Wi-Fi负载的组合。

规模和灵活性这两个属性要相互平衡,

这也是赛灵思 All Programmable SoC

和 FPGA 的核心所在。

不过 PHY 中的问题不只包含信号

处 理。LTE 和 未 来 的 LTE-A 以 及

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

特别是软件越来越成为一个重要的考

虑因素,其中包括运行自组织网络应

用以及最大限度地减少驱动测试,执

行 LTE参数优化、实现实时性能管理、

收集网络和设备规划的统计信息到运

行协议栈和 O&M 软件等。

随着 2012 年 Zynq SoC 的推出,

赛灵思为系统设计人员提供了一种业界

首 创 的 计 算 模 式, 带 来 了 双 核

Cortex ™ A9 处理器与高性能可编程逻

辑架构的紧密结合,可用于信号处理、

MAC层加速和连接工作,包括以太网、

CPRI 和 OBSAI 等。这些器件和组合

中的其它产品能直接用于满足各种计算

要求,包括 ISA 和数据路径、可扩展

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

建特色化产品,并以较低成本加速产品

上市进程。

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

战。随着射频访问网络功能的发展,

22 赛灵思中国通讯第四十八期 2013 年第二季度

无线通信领域的出色表现

DAC

DAC

ADC

ADC

ADC

SPI/I2C UARTS GPIO

6/10GSerdes

6/10GSerdes

CPRI/OBSAI

CPRI/OBSAI

ARM A9:O&MRTOS

ARM A9:DPD

Update

(DUC)

(DDC)

(CFR)(DPD)

JESD204 LVDS

JESD204 LVDS

JESD204 LVDS

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

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

24 赛灵思中国通讯第四十八期 2013 年第二季度

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

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

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

2013 年第二季度 赛灵思中国通讯第四十八期 25

计算机视觉技术几年来已发

展成为学术界一个相当成

熟的科研领域,目前许多

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

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

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

现在我们拥有能自动驾驶的汽车、能

根据我们的每个动作做出反应的游戏

机、自动工作的吸尘器、能根据我们

的手势做出响应的手机,以及其它等

视觉产品。

今天我们面临的挑战就是如何高

效实现上述这些及未来的各种视觉系

统,同时满足严格的功耗和上市要求。

此 类 产 品 可 以 Zynq ™ All

Programmable SoC 为基础,并结合

广泛使用的计算机视觉库 OpenCV 和

高层次综合 (HLS) 工具,以实现关键

功能的硬件加速。这种强强组合能为

设计和实现 Smarter Vision 系统提供

强大的平台。

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

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

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

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

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

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

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

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

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

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

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

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

嵌入式视觉系统的开发

嵌入式视觉技术要在计算平台上

运行智能计算机视觉算法。对许多用

户来说,标准的桌面计算处理平台即

可方便地满足需求。不过,一般性计

算平台或许无法满足高度嵌入式产品

的生产需求,这种产品要做到小型化、

高效性、低功耗,而且要处理庞大的

图像数据集,比如同时处理多个每秒

60 帧的实时高清视频流。

图 1 给出了设计人员通常用来创

建嵌入式视觉应用的流程。算法设计

是整个流程中最重要的一环,因为算

法将决定我们能否满足任何特定计算

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

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

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

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

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

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

将 Vivado HLS 与 OpenCV 库配合使用,

既能实现快速原型设计,又能加快基于

Zynq All Programmable SoC 的 Smarter Vision 系统的开发进度。

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

作者:Fernando Martinez Vallina赛灵思公司 HLS 设计方法工程师[email protected]

José Roberto Alvarez赛灵思公司视频技术工程设计总监 [email protected]

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

最终比特精度实现方案的要求。

系统分区是开发过程中的重要步

骤。在此,设计人员通过算法性能分析,

可明确他们要对算法的哪些部分进行

硬件加速,从而满足处理代表性输入

数据集的实时要求。同样重要的是对

目标平台中的整个系统进行原型设计,

从而实际地检测性能预期。一旦原型

设计过程说明设计满足了所有性能和

质量目标要求,那么设计人员就能在

实际的目标器件中启动最终系统实现。

最后一步就是测试运行在芯片上的设

计在各种用例场景下的表现。一切检

查完成后,设计团队就能发布最终产

品。

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

选择

在开发机器视觉应用过程中,设

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

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

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

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

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

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

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

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

赛灵思 All Programmable SoC

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

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

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

ARM® 双核 Cortex ™ -A9 MPCore ™

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

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

实现极为高效的嵌入式视觉系统。

处理子系统、FPGA 逻辑和外设

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

对于采用分立式组件设计而成的系统

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

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

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

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

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

理功能。

为了全面利用 Zynq SoC 的诸多

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

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

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

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

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

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

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

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

逻辑中运行。

Vivado HLS 工具非常适用于嵌入

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

26 赛灵思中国通讯第四十八期 2013 年第二季度

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

+_ +_

C C++ SystemC

VHDL Verilog

System IP Integration

RTL

C IP

Vivado HLS

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

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

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

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

将算法或算法的一部分编译为 RTL,

进而确定哪些函数更适合在 FPGA 逻

辑中运行,哪些函数更适合在 ARM 处

理器上运行。这样,您的设计团队就

能集中精力打造出最佳性能的基于

Zynq SoC 的视觉系统。

为了进一步帮助嵌入式视觉开发

人员创建 Smarter Vision 系统,赛灵

思在 Vivado 中增加了对 OpenCV 计

算机视觉算法库的支持。赛灵思还推

出 了 最 新 IP Integrator 工 具 和

SmartCORE™ IP以支持此类设计(参

见封面报道的第 8 页)。

OPENCV 推广计算机视觉技术

OpenCV 开辟了一条开发智能计

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

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

算法试验和快速原型设计的环境。

OpenCV 设计框架得到多平台支

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

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

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

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

虽然 OpenCV 在设计时就考虑到

计算效率问题,不过它源自传统计算

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

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

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

OPENCV 的特性

OpenCV 是一款基于 BSD 许可

证授权发行的开源计算机视觉库,这

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

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

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

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

Python 等多种编程接口。

开源项目的优势在于,用户能持

续改进算法,并将算法扩展用于多种

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

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

• 矩阵数学

• 公用设施和数据结构

• 通用图像处理功能

• 图像转换

• 图像金字塔

• 几何描述符函数

• 特性识别、提取和跟踪

• 图像分割与拟合

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

• 机器学习:检测、识别

有关 OpenCV 的更多详情,敬请

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

willowgarage.com

用 HLS 加速 OPENCV 函数

一旦完成了嵌入式视觉系统架构

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

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

同时仍能继续使用 C++ 编写。Vivado

HLS 用 C、C++ 或 SystemC 代码生

成高效的 RTL 实现方案。

此外,以 IP 为中心的 Vivado 设

计 环 境 提 供 丰 富 的 处 理 IP

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

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

化 OpenCV 库中这些函数的实现。这

相对于其它实现方案而言是一种明显

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

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

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

2013 年第二季度 赛灵思中国通讯第四十八期 27

OpenCV

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

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

为什么需要高层次综合?

赛灵思推出的 Vivado HLS 是一

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

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

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

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

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

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

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

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

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

Vivado HLS 会默认生成 RTL 实现。

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

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

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

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

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

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

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

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

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

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

和性能要求。

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

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

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

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

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

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

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

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

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

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

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

程外,Vivado HLS 还提升了从 RTL

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

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

过 Vivado HLS 生成 RTL 后,生成的

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

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

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

的。

虽然 Vivado HLS 能处理几乎所

有针对其它软件编译器的 C/C++ 代

码,但代码有一个限制。在用 Vivado

28 赛灵思中国通讯第四十八期 2013 年第二季度

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

Zynq

FPGA

FPGA

FPGA

FPGA

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

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

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

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

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

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

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

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

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

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

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

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

阵列。

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

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

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

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

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

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

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

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

如何描述。

Vivado HLS 编译器流程的最后

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

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

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

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

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

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

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

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

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

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

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

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

核。

赛灵思的 OpenCV 库为用 Vivado

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

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

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

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

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

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

Zynq SoC 上运行的 OpenCV 应用,

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

操作。

图 3 概述了用 OpenCV 进行运动

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

2013 年第二季度 赛灵思中国通讯第四十八期 29

Zynq

Sobel Sobel

ARM A9

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

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

了解更多

领 先 一 代Vivado设计套件WebPACK 版本为您提供

无与伦比的集成与实现速度

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

Xilinx

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

2013 年第二季度 赛灵思中国通讯第四十八期 33

手把手课堂: F P G A 1 0 1

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

高层次综合(HLS)是指

自 动 综 合 最 初 用 C、

C++ 或 SystemC 语言

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

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

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

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

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

利用 HLS,您能探索各种可能性,

分析面积和性能特点,最终确定

一个方案在 FPGA 芯片上实现算

法。举例来说,您能探索将存储

器映射到 Block RAM(BRAM)

或分布式 RAM 上有什么不同的影

响,或者分析回路展开以及其它

回路相关优化有什么效果,而且

不必手动生成不同的寄存器传输

级(RTL)设计。您所要做的仅

仅是在 C/C++/SystemC 设计中

设置相关指令而已。

赛 灵 思 在 其 最 新 发 布 的

Vivado ™工具套件中推出了 HLS 工

具。Vivado HLS 是 AutoESL 工具的

品牌转型重塑,可提供众多技术帮助

您优化 C/C++/SystemC 代码以实现

目标性能。这样的 HLS 工具就能帮

助您在 FPGA 上快速实现算法,无需

借助基于 Verilog 和 VHDL 等硬件描

述语言的非常耗时的RTL设计方法。

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

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

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

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

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

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

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

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

件(14.4 版)进行物理综合和布局布线。

此外,这一流程还采用了 ModelSim 和

GCC-4.2.1-mingw32vc9 进 行 RTL 协 同

仿真。

图 1 显示了简单的综合流程,从

C/C++/SystemC 设 计 开 始。C/C++/

SystemC testbench 用于验证设计功能的

正确性,同时还可用于 RTL 和 C 的协同

仿真。协同仿真包括验证生成的 RTL 设

计(.v 或 .vhd)功能,这要使用 C/C++/

SystemC 测试平台而不是 RTL 测试平台

或者采用 e 或 Vera 验证语言编写的测试

平台。时钟周期约束设置了设计应该运行

的目标时钟周期。设计将被映射到目标

FPGA 器件——赛灵思 FPGA 上。

C 语言的矩阵乘法

为了充分利用我们的矩阵乘法实例,

我们将探索矩阵乘法 C 语言实现方案的

各种修订版本,从而展示它们对综合设计

的影响。这一过程将凸显您在使用 HLS

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

34 赛灵思中国通讯第四十八期 2013 年第二季度

手把手课堂: F P G A 1 0 1

C/C++/SystemC

.v/.vhd Design

FPGA

C/C++/SystemC Testbench Vivado HLS Xilinx ISE FPGA

void matrixmultiply(data matleft[2][2], data matright[2][2], dataproduct[2][2])

{ 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]; }}

}}

图 1 - 采用 Vivado HLS 进行 FPGA 综合的流程

图 2 - 用于 2*2 矩阵乘法的简单 C 代码

进行原型设计和实际设计时需要注意

的重要问题。我们将跳过创建工程的

有关步骤,因为您能很方便地在工具

文档中找到相关参考材料。我们将重

点介绍设计和实现等方面。

在 典 型 的 Vivado HLS 流 程

中,我们需要三个 C/C++ 文件:

源文件(包括待综合的 C 函数)、

头文件和通过 main() 函数调用描述

testbench 的文件。

头文件不仅包括源文件中使用的

函数的声明,也包括支持具有特定位

宽的用户定义数据类型的指令。这也

使得设计人员能够采用与 C/C++ 所

定义标准位宽不同的位宽。举例来说,

整形数据类型(int)在 C 语言中通

常为 32 位长,但是在 Vivado HLS

中您可指定用户定义的数据类型,例

如只使用 16 位的“data”。

图 2 显示了用于矩阵乘法的简

单 C 函数。两个矩阵 mat1 和 mat2

进行乘法。为了简单起见,两个矩阵

大小一样,都是两行两列。

在 HLS 流程中执行的步骤如下:

• 第一步:创建工程

• 第二步:测试功能

• 第三步:综合

• 第四步:RTL 协同仿真

• 第五步:导出 RTL / RTL 实现

第一步编译工程并在不同的设

计文件中测试语法错误等。第二步测

试待实现的函数(在源文件中)功能

是否正确。在这一步骤中您将使用

testbench 执行函数调用,验证其功能

是否正确。如果功能验证失败,您就

需要返回来修改设计文件。

第三步进行综合,Vivado HLS 综

合源文件中定义的函数。这一步的输

出包括 C 函数的 Verilog 和 VHDL 代

码(RTL 设计),也包括目标 FPGA

的资源利用率估算和时钟周期估算。

此外,Vivado HLS 还可生成 latency

估算和回路相关的度量指标等。

第四步是使用 C testbench 仿真

生成的 RTL。这一步叫做 RTL 协同

仿真,因为工具采用的就是之前用

于验证 C 源代码的 testbench,现在

则测试 RTL 的功能正确性。要成功

完成这一步,您系统(Windows 或

Linux)中的 PATH 环境变量应包含

ModelSim 安装的路径。此外,您还

应在 ModelSim 安装文件夹中包含

GCC-4.2.1-mingw32vc9 套件。

最后,第五步就要将 RTL 导出

为 IP 模块,用于更大的设计中,并

由其它赛灵思工具进行处理。您可

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

手把手课堂: F P G A 1 0 1

2013 年第二季度 赛灵思中国通讯第四十八期 35

product_we0

product_ce0

product_q0[15:0]

ap_idle

ap_done

ap_start

ap_rst

ap_clk

matright_ce0

matleft_address0[1:0]

matleft_q0[15:0]

product_d0[15:0]

product_address0[1:0]

matrixmultiply

matleft_ce0

matright_address0[1:0]

matright_q0[15:0]

ap_ready

图 3 - 从图 2 所示代码中产生的设计

DSP48E

ns

XC6VCX75TFF784-2

1

44

61

2.856

69

69

表 1:面向图 3 中设计的信号描述

将 RTL 导出为 IP-XACT 格式的 IP 模

块,也可导出为 System Generator

IP 模块或 pcore 格式的 IP 模块,进

而用于赛灵思嵌入式设计套件。导出

Vivado 生成的 RTL 时,您可以选择工

具的“评估”选项来评估布局布线后

的性能并且运行 RTL 实现。在此情况

下, Vivado HLS 工具会调用赛灵思

ISE 工具。要实现这一目的,您的系

统 PATH 环境变量需包括 ISE 安装路

径,Vivado HLS 将会搜索 ISE 安装。

当 然, 您 也 不 一 定 非 要 将

Vivado 生 成 的 RTL 导 出 为 以 上 三

种格式之一的 IP 模块不可。导出

的格式文件可放在三个不同路径

下:<project_directory>/<solution_

number>/impl/<pcores> 或 project_

d i rec to ry> /<so lu t ion_number> /

impl/<sysgensysgen> 或 <project_

d i rec to ry> /<so lu t ion_number> /

impl/<ip>。此外,您也可在较大设计

中使用 Vivado 生成的 RTL,或者将其

本身用作顶层设计。当较大设计中例化

导出的RTL时,您应注意相关接口要求。

当综合图 2 中的 C 函数时,您将

获得如图 3 所示的 RTL 级实现方案。

您会发现,实现方案中的矩阵 1 和矩阵

2 的元素被读取到函数,并且积矩阵的

元素被写出。这样,实现方案假定“矩

阵乘法”实体以外的存储器能用来存储

矩阵 1、矩阵 2 和乘积矩阵的元素。表

1 介绍了信号描述,表 2 则介绍了设计

度量指标。

在 表 1 中,start、done 和 idle 信

号与设计中控制数据路径的有限状态

机(FSM)有关。您会发现,Vivado

HLS 生成的 Verilog 假定运算始于 start

信号,并且输出数据在 ap_done 信号

从低变高开始有效。Vivado HLS 生成

的 Verilog/VHDL 将始终保持至少三个

基本信号:ap_start、ap_done 和 ap_

idle,此外还有 ap_clk 信号。这意味着

不管您使用 Vivado HLS 实现什么设计,

设计 latency 都会限制您的流吞吐量。

图2中的设计 latency为69个时钟周期,

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

36 赛灵思中国通讯第四十八期 2013 年第二季度

手把手课堂: F P G A 1 0 1

matleft_ce0

matleft_q0[15:0]

matleft_address[1:0]

matright_ce0

matright_q0[15:0]

matright_address[1:0]

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

1

1 16

1

2

2 16

2

ap_idle

表 2:用于图 3 所示设计的设计度量指标

目标时钟周期为 3 纳秒。这意味着在

此特定案例中,所有积矩阵元素需要

69 个时钟周期可输出。这样,您在至

少 69 个时钟周期前不能为设计提供新

一组的输入矩阵。

图 3 中所示的实现方案现在可能

并不是您在 FPGA 上实现矩阵乘法时

所预想的结果。您或许希望一款实现

方案能让您输入矩阵,并在内部

进行存储和计算,随后读取积矩

阵元素。这显然是图 2 所示实

现方案无法做到的。该实现方案

需要外部存储器提供矩阵数据

的输入和输出

调整代码

图 4 中的代码能够满足您

的需求,它是源文件的一部分,应该属

于 C++ 文件而非此前的 C 文件。您应在

头文件 matrixmultiply.h 中包含另外两个

相关头文件:hls_stream.h 和 ap_int.h。

请注意,在图2中,当源文件为C文件时,

头文件包含了 ap_cint.h。头文件 ap_int.

h 和 ap_cint.h 有助于分别为 C++ 和 C

源文件定义用户定义的任意位宽的数据

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

手把手课堂: F P G A 1 0 1

2013 年第二季度 赛灵思中国通讯第四十八期 37

#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++){

d_prodmat << matrixproduct[i][j];}

}}

图 4: 用于矩阵乘法的重组源代码

为了让设计只接收输入矩阵流,并输出积矩阵流,您应在代

码中实现读和写数据流。流接口就像 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)实现矩阵。请注意,

指令面板只有当源文件在综合视图中保持

有效时才是有效的。

图 5 显示了图 4 中代码的设计实现情

况。表 3 介绍了设计接口上可用的信号情

况。在表 3 中,d_product_V_full_n 是低

有效信号,当需要通知内核积矩阵已满时

该信号为低。但在实现方案中通常不需要

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

38 赛灵思中国通讯第四十八期 2013 年第二季度

手把手课堂: F P G A 1 0 1

BRAMRAM

BRAM RAM LUT

XC6VCX75TFF784-2

DSP48E

BRAM

1

185

331

0

2.886

84

84

1

109

102

3

3.216

116

116

1

179

190

0

2.952

104

104

信号

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

表 3 - 图 5 中设计的信号描述

表 4:图 5 所示设计的设计度量指标

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

手把手课堂: F P G A 1 0 1

2013 年第二季度 赛灵思中国通讯第四十八期 39

ap_rst

d_mat2_V_empty_n

d_mat1_V_dout [15:0]

d_mat1_V_empty_n

d_mat2_V_dout [15:0]d_product_V_write

d_product_V_full_n

ap_idle

ap_done

ap_start

ap_clk

d_product_V_din [15:0]

matrixmultiply

d_mat1_V_read

d_mat2_V_read

ap_ready

图 5 - 图 4 中代码生成的设计

这样。

表 4 显示了 3 纳秒时钟周期约束下布

局布线后的不同设计度量指标,包含了矩

阵阵列映射到 BRAM 或分布式 RAM 的情

况和未映射的情况。您从表 4 中可以看到,

矩阵映射到单端口 BRAM 时,设计无法满

足 3 纳秒的时序约束。表中专门包含了这

个结果,说明您可用这种方法生成具有不

同面积—时序参数的各种设计。此外,您

也可从表 1 看出,虽然图 2 中代码的时延

为 69 个时钟周期,低于图 4 中调整后的代

码的设计方案,但这种设计需要矩阵乘法

实体以外的存储器,这一点我们在上面已

经解释过了。

实现方案的精度

就这里显示的结果而言,我将“data”

这种数据类型定义为 16 位宽。因此,所有

矩阵元素(左、右和积矩阵)都

为 16 位宽。矩阵乘法和加法运算

不能实现全精度。您可选择在头

文件中定义另一种 32 位宽的数据

类型 data_t1,积矩阵的所有元素

都采用这种数据类型,因为 16 位

数(左侧矩阵元素)乘以另一个

16 位数(右侧矩阵元素)最多得

到 32 位宽。这样,资源利用率和

时序结果将不同于表 1 和表 4 中

的结果。

调整后的源代码显示出同样

的源文件会带来多种不同设计解

决方案。在本例中,一个设计解

决方案采用 BRAM,而另一个没

有采用。在每个 Vivado HLS 工程

目录中,您会看到 Vivado HLS 为

不同的解决方案生成了不同的目

录。在每个解决方案目录中都有一个

名叫 impl(也就是 implementation,

实现方案)的子目录。在这个子目录中,

您会看到名为Verilog或VHDL的目录,

具体取决于 RTL 实现阶段使用什么样

的源代码。这个子目录中也包含赛灵

思 ISE工程文件(文件扩展名为 .xise)。

如果 Vivado HLS 生成的设计是您的顶

层设计,那么您可以双击这个文件来

启动赛灵思 ISE 运行这个解决方案,

并生成用于门级时序和功能仿真的布

局布线后模型。但您在 Vivado HLS 中

不能做这种仿真。

在 ISE 中启动解决方案后,您应

给设计分配 I/O 引脚。随后您可在 ISE

Project Navigator 中选择“Generating

Programming File”以生成比特流。

在这一练习中,我们一步步完

成了 Vivado HLS 一个实际的端对端

流程,并在 FPGA 上实现算法。对

于 Vivado HLS 中的许多高级特性而

言,您应了解您需要什么样的硬件架

构,从而进行源代码的调整。如需了

解更多详情,《Vivado 高层次综合教

程》(UG871; http://China.xilinx.com/

support/documentation/sw_manuals/

xi l inx2012_2/ug871-vivado-high-

levelsynthesis-tutorial.pdf)和《Vivado

设计套件用户指南》(UG002; http://

China.xilinx.com/support/docum e n

t a t i o n / s w _ m a n u a l s / x i l

-inx2012_2/ug902-vivado-high)这两

个技术文档对您大有裨益。

欢迎关注 Sharad Sinha 的博客。

阅 读 更 多 文 章:http://sharadsinha.

wordpress.com。

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

40 赛灵思中国通讯第四十八期 l 2013 年第二季度

手把手课堂:FPGA 101

使用 JTAG 接口完成 Zynq SoC 应用的开发和测试后,下一步是让引导载入程序工作。

如何配置您的 Zynq SoC 裸机解决方案

作者:Adam Taylor首席工程师

EADS [email protected]

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

Zynq ™ -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

手把手课堂: F P G A 1 0 1

编者注:这是 Adam Taylor 规划的 Zynq-7000 All Programmable SoC 实际操作教程系列的第二部分。Adam经常为赛灵思中国通讯第四十八期撰稿,他撰写了第 46 期

介绍 Zynq SoC 设计的封面报道,以及本期中介绍 XPE 和

XPA 的文章(见第 46 页)。同时他还为 All Programmable Planet 撰写博客。

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

您可通过非易失性存储器中的报头对引

导 ROM 加以配置。报头标记着配置镜

像的起始点,是引导 ROM 首先要查找

的。报头定义了引导 ROM 可以实现的

一些启动选项,比如直接在 flash 上运

行程序(但是并不适用于所有类型的存

储器)、第一阶段引导载入程序(FSBL)

偏移和保密配置等。这个报头解析和处

理的目的,是确保引导 ROM 的工作模

式与配置存储器的格式相兼容。

对于具体设计而言,用户可以选择

保密或非保密的配置方法。引导 ROM

报头能够支持和定义这两种模式。在保

密配置下,必须给器件的可编程逻辑部

分 加 电, 将 其 作 为 硬 件 宏 AES 和

SHA。您需要这两个宏进行加密,而且

必须把它们放置在器件的可编程逻辑

侧。

在配置的下一阶段,您需要提供

FSBL,用于在加载软件应用和配置可

编程逻辑之前,根据 Xilinx Platform

Studio(XPS)的定义,配置处理器上

的 DDR 存储器和其它外设。总体而言,

FSBL 负责完成四项主要任务:

• 使用 XPS 提供的信息,初始化

处理系统

• 如果有提供 bit 文件,对 Zynq

SoC 的可编程逻辑侧进行编程

• 在使用操作系统的情况下,加载

第二阶段引导载入程序(SSBL)

到 DDR,或加载裸机应用到 DDR

• 开始执行 SSBL 或裸机应用。

您可通过处理器配置访问端口

(PCAP)为 Zynq SoC 的可编程逻辑

侧进行编程,能够支持部分或者完全的

可编程逻辑配置。这就意味着,只要处

理系统启动并进入运行状态,就可以

在任何时候对FPGA进行编程。此外,

如果您在可能产生单事件功能中断

(SEFI)的工作环境中使用器件时,

PCAP 还可以让您回读并检查错误。

为了给 Zynq SoC 创建可引导镜

像,还需要至少下列功能:

1. 用于控制引导 BOM 设置的引

导 ROM 报头(例如,现场执行、

加密、四通道 SPI 配置、FSBL

偏移和镜像长度)

2. 第一阶段引导载入程序(FSBL)

3. 可编程逻辑 bit 文件

4. 用于处理系统侧的软件应(ELF

文件)

和其它所有的赛灵思FPGA一样,

手把手课堂: F P G A 1 0 1

图 1:创建第一阶段引导载入程序项目

图 2:从提供的模板创建 FSBL

42 赛灵思中国通讯第四十八期 l 2013 年第二季度

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

手把手课堂: F P G A 1 0 1

Zynq SoC 器件使用多个模式引脚判

断存储程序的存储器类型以及其它重

要的系统设置。这些模式引脚共享器

件 处 理 系 统 侧 的 多 用 途 I/O 引 脚

(MIO)。总体而言,映射到 MIO 的

有 7 个模式引脚 [8:2]。头四个用于定

义引导模式。第五个用于定义 PLL 是

否在使用,第六个和第七个用于定义

加电过程中 MIO bank 0 和 bank 1 的

分组电压。第一阶段引导载入程序可

以把 MIO bank 0 和 bank 1 定义的电

压标准更改为应用的正确电压标准。

但是如果您是从头开始设计系统,应

确保加电过程中使用的电压不会损坏

连接到这些引脚的器件。

创建第一阶段引导载入程序

制作引导镜像的下一步是创建第

一阶段引导载入程序。用户不必手动

完成创建工作。赛灵思提供的 FSBL

可加载您的应用并完成FPGA的配置。

您当然也可以定制提供的代码,根据

应用的需要修改引导顺序。在当前的

软件开发套件(SDK)工作区中,即

用户项目所在的工作区,使用 new-

>application project 创建新项目,如

图 1 所示。

选择使用 C 或是 C++,选取为系

统定义的开发板支持套件并为项目命

名。在这种情况下,我使用 zynq_

fsbl_0 为我们的实例设计命名。

在下一个选项卡上,从图 2 所示

的可用模板选择 Zynq FSBL 选项,完

成 FSBL 项目的创建。到此您已经差

不多完成引导镜像的创建。如果您选

择自动“编译”,则 FSBL 将被编译;

如果没有,将根据随后的命令完成编

译。但是由于 FSBL 不知道 DDR 存储

器在处理器地址空间中的位置,我们

需要修改 FSBL 随附的链接器脚本。

因此我们需要打开 lscrip.ld 文件,将

DDR 存储器的位置添加到文件中。您

可以在为应用创建的链接器脚本中找

到 DDR 在地址空间中的位置(如需了

解有关如何创建脚本的详请,敬请参

阅赛灵思中国通讯第 46 期的封面报

道)。另外您也可以在“硬件平台定义”

下的 system.xml 文件中找到 DDR 在

地址空间中的位置。

图 3 所示为系统添加的具有 DDR

地址的 FSBL lscript.ld 文件。如果您忘

记添加,您会发现引导载入程序可以运

行,FPGA 可以进行配置,但应用无法

运行,即使您将其配置为在 DDR 中执

行。图 4:找出引导镜像所需的完整文件

图 3:定义 DDR 地址空间

2013 年第二季度 赛灵思中国通讯第四十八期 l 43

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

生成可配置镜像

在赛灵思 SDK Project Explorer

的下面,您应该可以看到下列四个模

块。每个模块用稍有不同的符号表示

模块的类型。以图 4 为例,您可以看

到下列结构:

1. P r o c _ s u b s y s t e m _ h w _

platform,在处理子系统创建后

命名,是您文件的硬件定义。

2. Zed_blog_0,这是您创建的开

发板支持套件。

3. Zed_blog_c,这是应用本身。

4. Zynq_fsbl_0,这是您刚刚创建

并为之修改链接器脚本的第一阶

段引导载入程序

由于我们正在创建的是裸机应用

(非操作系统),您将需要三个文件创

建引导镜像,具体顺序如下:第一阶段

引导载入程序、FPGA 编程 bit 文件和

C 应用程序。

使用赛灵思工具菜单下的“Create

Zynq Boot Image”选项,可以非常简

单地在 SDK 中创建引导镜像。当您选

定引导镜像,就会打开新的对话框,

以便您选择需要的文件,如图 4 所示。

需要强调的是,FPGA bit 文件必

须 一 直 紧 随 FSBL。 点 击“create

image”可以同时创建 *.bin 和 *.mcs

文件,您可将它们编程到目标器件。

配置存储器编程

通过 SDK 的赛灵思工具选项下的

“flash 编程”选项使用 SDK 或是使用

赛灵思的 iMPACT 编程工具,都可以

对配置存储器进行编程。在本例中,我

们准备把配置文件存储到四通道 SPI 闪

存中。QSPI 接口可在赛灵思 Platform

Studio 的系统组装视图中进行定义。因

此硬件定义将包含 QSPI IP 内核及其在

地址映射中的位置,以便第一阶段引导

载入程序连接到该器件并对其进行配

置。

器件编程工作的下一步是使用

JTAG 编程线缆,将 Zynq SoC 硬件

系统与您的 PC 机相连。然后从 SDK

手把手课堂: F P G A 1 0 1

内的赛灵思工具菜单中选择“编程闪

存”选项,就可以轻松完成配置存储

器的编程工作,如图 5 所示。

浏览并选择您生成的 MCS 文件,

在出现的对话框中输入 0x0 偏移。然

后在确保目标硬件已经加电之后,点

击“编程”(图 6)。

器件进行编程和验证可能需要几分

图 6:闪存对话框的编程

图 5:配置存储器的编程

44 赛灵思中国通讯第四十八期 l 2013 年第二季度

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

算Xilinx

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

F PGA 与众多其它类型组件

的不同之处在于,其核心

电压、辅助电压和 I /O 电

压电源需求取决于设计实现。因此,

确定应用中 FPGA 的功耗比数据手

册描述的情况更复杂一点,要实现

正确的电源架构因此也具有一定的

挑战性。这不仅要考虑到所需的静

态电流、斜坡率和上电顺序,还需

要能为终端应用适当供电,同时保

持器件结温在可接受的范围内。

XPE 和 XPA 是什么?这是赛灵思

推出的两款设计工具,能帮助您准确

地进行 FPGA 设计的功耗分析。您可

在设计早期阶段使用基于电子数据表

的赛灵思功耗估计器 (XPE),在完成

实现后再使用赛灵思功耗分析器

(XPA)。XPA 能帮助您对设计的功耗要

求做进一步的分析,并根据需要协助

功耗优化。

初始步骤

首先启动开发项目时,很难有整

个 FPGA 设计都到位的情况(如果幸

运的话,或许能重复利用一些代码,

这能为功耗预测提供更多准确信息)。

因此,进行估算功耗首先可以从 XPE

电子数据表入手(参见: http://www.

origin.xilinx.com/prod- ucts/design_

tools/logic_design/xpe.htm)。 您 可

以根据工程团队对设计所需时钟、逻

辑和其它资源量的初步考虑来进行最

初功耗估算。

XPE 的使用非常直观,更好的是,

该工具能帮助您进行大量“假设”实现,

从而明确不同设计方案选择对功耗估

算的影响。如果您的解决方案耗电高,

那么这种功能对帮助您找到最佳实现

方案发挥着重要作用。

XPE 能根据散热、气流和印制电

路板层数预测器件结温,这一功能在

设计早期阶段非常有用。它能告诉我

们设计能否达到预期实现方案的额定

结温。

在 XPE 中,您的第一步工作就

是尽可能准确地完成设置。除了选择

器件之外,还要特别注意封装、速度

等级和温度等级都要正确设置,同样

如果适用的话还要准确设置步进、工

2013 年第二季度 赛灵思中国通讯第四十八期 47

手把手课堂: F P G A 1 0 1

精确估算 FPGA 设计的功耗对确保

获得正确的电源架构至关重要。作者:Adam Taylor首席工程师

EADS Astrium [email protected]

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

艺和功耗模式。所有这些参数,对所

需的整体功耗有很大影响,尤其是工

艺的设置,其设置分为“最大值”和“典

型值”。典型值设置为您提供统计上

应用所需的功耗,而最大值设置则能

满足最差情况下的需求。要确保您的

解决方案能应对最高用电需求情况,

但这也有一定困难,因为较大型器件

也有着更高的电流需求。

我们也可在此定义工作环境,包

括环境温度、散热和气流等。在此定

义最大环境温度能提高估算准确度,

因为所需的功耗会随着器件结温的提

升而升高。包括散热、气流或者这两

者等,就能改进功耗估算。

在此阶段也不要忽略赛灵思

ISE® 优化设置。这种设置对功耗估

算也有影响,因为不同的优化方案(比

方说时序性能与面积最小化方案)都

会带来不同的实现方案,每种实现方

案都有自己的资源使用和扇出模式,

也会影响功耗估算。

估算工作的下一阶段就是仔细检

查 XPE 电子数据表底部的标签,尽

可能准确地填写所建议的解决方案的

细节。为了确保早期获得最准确的估

算,至少应定义资源使用、时钟频率、

触发率和启用率,这非常重要。同时

也应做好一定应急准备,应对始终存

在的要求变化问题。

这一进程完成后,XPE 能在总结

标签中提供整体功耗和结温估算,如

图 1 所示。

估算完成后,您可根据需要,在

总结页面上选择“导出文件”选项,

将设置从 XPE 导出,以随后用于赛灵

思功耗分析器 (XPA) 中。这能确保

XPA 的设置与您最初用于估算的相匹

配。

随着开发工作向 RTL 制造、跟踪

综合和布局布线推进,我们根据提供

的更准确的信息,随时更新估算结果。

要记住,硬件团队,尤其是负责电源

设计的团队,应了解估算的任何变动。

电源工程师应提供电源轨最糟糕情况

下的最大电压,这能进一步提高估算

精度。最差情况下最大电源电压升高,

也会让功耗估算变大。

XPE 非常智能,能在最差情况下

最大电源电压超出器件可接受容限时

将电子数据表上的电压单元标为橙色

并发出警告,如图 2 所示。

进入 XPA

设计实现后,我们能用赛灵思功

耗分析器从功耗图片上获得精确得多

48 赛灵思中国通讯第四十八期 2013 年第二季度

手把手课堂: F P G A 1 0 1

图 1 - XPE 器件设置和功耗估算总结

图 2 - 电源电压超出可接受容限时发出的警报

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

手把手课堂: F P G A 1 0 1

2013 年第二季度 赛灵思中国通讯第四十八期 49

图 3 - 从 ISE 打开 XPA

为确保您获得最准确的功耗估算,请遵循以下所列出的最重要的步骤:

1. 首先要有准确的环境设置,包括步进、速度等级、散热、气流和环境温

度等。

2. 确保工艺准确设为“典型”或“最大”(对应于最差情况)。

3. 设置电源电压为最差情况下的最大值。

4. 确保采用最准确的翻转率、扇出、启用率、I/O 属性和时钟速率。

5. 采用 VCD/SAIF 仿真文件提供 XPA 中设计性能的最佳信息。要获得最

佳结果,该文件应提供门级仿真。

6. 随着硬件和 FPGA 设计的推进,要保证功耗估算最新,要经常更新。

7. 在功耗估算中要有应急措施,以应对应用要求变化问题。

8. 要定义端接方案,并在 XPA 和 XPE 中准确载入 I/O 负载电容。

9. 确保 XPA 报告的可信度为高。

10. 确保电源解决方案满足器件的所有其他功耗要求和可靠性要求,而且不

要运行在负载容量上或接近负载容量的水平。

实现精确功耗估算的十大步骤

的功耗估算。结果到底有多精确,这

取决于您对工具的输入。您可点击 ISE

设计套件进程窗口中布局布线项下的

Analyze Power Distribution 打开 XPA

(见图 3)。

一旦 XPA 打开,您又会看到类似

于 XPE 的总结屏幕(图 4)。您在此

可定义环境并创建更多设置,也可从

您的 XPE 分析中导入设置。

要包括 .xpa 文件或打开新项目,

您应采用以下流程,其中包括:

• 本地电路设计 (NCD) 文件:

定义物理 FPGA 实现方案。

• 设置文件: 定义从 XPE 导入

的设置。

• 物理约束文件 (PCF):包含时

钟信息和映射以及UCF限制。

• 数值变更转储 (VCD) 或开关

行为互换文件 (SAIF) 仿真文

件,可用仿真工具生成,使得

XPA 能获得设计开关信息。

自然,您直接包含的信息越多,

功耗估算就越准确。XPA 能提供估算

可信度,这很有帮助,可信度分为低

中高三级,并分为设计实现状态、时

钟节点活动、I/O 节点活动、内部节点

活动和器件模型五大类。

这些不同的可信度可得出估算的

整体可信度。XPA 还能就如何提高各

个不同类别的可信度提出建议,这也

相当有用,从而有助于提升整体可信

度(图 5)。

为了获得功耗估算最高的可信度,

您应该从门级仿真获得 VCD 或 SAIF

文件。这样,XPA 就能了解内部节点

的行为,从而提供更精确的估算。

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

从仿真获得 VCD 非常直观,不过根据

您 使 用 的 工 具(Mentor Graphics 的

ModelSim、赛灵思的 ISim 等)不同,所需

的命令格式可能略有不同。如果您正在使用

ModelSim 工具,那么您就可用以下语法创

建简单的 VCD 文件:

v c d f i l e m y v c d . v c d

Ñ d e f i n e t h e f i l e n a m e

50 赛灵思中国通讯第四十八期 2013 年第二季度

手把手课堂: F P G A 1 0 1

图 4 - XPA 总结屏

图 5 - XPA 可信度报告和提高可信度的建议方法

a n d l o c a t i o n i f

d e s i r e d

v c d a d d / m e m o r y _ i f _

t b /

u u t _ a p p l y / *

Ñ t h e r e g i o n o f

t h e d e s i g n t h a t

i s t o b e r e c o r d e d

退出仿真时,结果将会保存在 VCD 文

件中,您可在 XPA 中使用这个文件。如果

您使用的是 ISim 工具,那么格式会略有不

同:

v c d d u m p f i l e m y v c d . v c d

Ñ d e f i n e t h e f i l e n a m e

a n d l o c a t i o n i f

d e s i r e d

v c d d u m p v a r s - m / m e m o r y _

i f _ t b / u u t _ a p p l y

Ñ t h e r e g i o n o f t h e

d e s i g n t h a t i s t o b e

r e c o r d e d

R u n S i m u l a t i o n

v c d d u m p f l u s h

Ñ s a v e r e s u l t s t o t h e

v c d f i l e c r e a t e d

仿真工具中还有许多更高级的命令,

您可用来生成 VCD。在工具文档中有详细

介绍。

由于包括了 VCD 文件,您的功耗估算

可信度会有所提高。如果您不能提供仿真结

果(有的运行需要很长时间),那么 XPA

会用其内置的分析引擎运行。在此情况下要

做到准确,就应再次指定翻转率和启用率。

与 XPE 中一样,XPA 中也应包括最差

情况下的最大电源电压,这非常重要。我们

也可将 XPA 设计导回 XPE,让设计团队尝

试进行更多试验性修改,从而明确这些改动

对功耗和结温估算所产生的影响。

可信度还不够高该怎么办?

假设包括了仿真并提供有其它信息,

那么您应该就能实现较高可信度的功耗估

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

52 赛灵思中国通讯第四十八期 2013 年第二季度

出色的工具

Symmetricom 公司推出的微型 GPS 用

振荡器能方便地替换系统设计中的原子

钟。该振荡器搭配赛灵思 Zynq SoC,

就能构建 NTP 服务器。

您的系统时间准确吗?

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

2013 年第二季度 赛灵思中国通讯第四十八期 53

果您的系统需要掌握确切时间、了解

频率情况、或者要为系统提供精确频

率,您该怎么办?几个月前,我拿到

了一款小组件的样片,尺寸约为 1 x 1

x 0.25 英寸,而这款小产品好像就能

提 供 这 样 的 魔 法 功 能。 它 就 是

Symmetricom 公司推出的 GPS 用温

度补偿型晶体振荡器(GPS-TCXO)。

这款评估板的主板上采用 RS232

转 USB 芯片,能转换 TCXO 进 / 出接

口和 GPS 接收器装置。唯一需要做的

或许就是安装支持 USB 的软件,当然

也要找一个安放磁铁座的地方,让

GPS 天线能接收空中卫星信号。

蜂窝基站、无线电系统和计算机

系统工作均需要精确计时或精确频率。

采用固定 GPS 系统的一大优势在于,

因为它不移动,因此相对非固定系统

而言,能提供更好的频率参考,更精

确的定位和时间信息。如果是移动应

用,可能会在一定程度上影响精确度,

但采用 TCXO,仍可确保设计出真的

非常棒的系统。

什么才叫精确?

原子钟其实不是真正的时钟,而

是带有源或无源微波激射器的原子振

荡器。铯原子钟是作为“主参考”典

型频率源,能提供精确的频率,误差

不超过 1E-11。典型的铯原子钟参考

精确度甚至可能达到 1E-12,不过自

身 也 有 大 约 +/-100 纳 秒 的 延 迟

(wander)(但没有漂移 (drift))。这样

的参考有时被称作 Stratum 1 时钟。

GPS 卫星网络包括空间轨道中的

许多类似高精度时钟(主要是铷时钟

源,有些漂移 (drift),但没有延迟

(wander)),全球最稳定的时钟源可

定期对时纠偏。通过复杂的数学程序,

全球“投票选出”约 200 个最精确的

时钟,据此确定 30 天前的时间,并在

此基础上校准。

这样,GPS 用系列 10MHz 温度

补偿型晶体振荡器就能作为高精度

Stratum 1 时间 / 频率 / 位置参考,它

锁定于卫星,如果丢失卫星信号就会

发生漂移 (drift)。不过,在了解漂移记

录并掌握温度的情况下,这种漂移可

以预见也可以消除(温度补偿不是完

美无缺的,在操作中可以很容易观察

到)。

下面谈谈极小的数字问题

我的这块小板工作了一个月,大

多数时间插在办公室的台式机中,有

时候在家里插进我的笔记本电脑,现

在它已经进入常规工作状态。首次启

动时,误差在 +/-1E-10 之内,几周后,

它会表现出内在明显的漂移,误差约

为 3.031E-12,通过补偿,实际误差

小于 3E-12(阿伦方差 [v] 约 6 小时,

这个方差用于测量时钟、振荡器和放

大器的频率稳定性),参见图 1。它的

表现比铯原子钟强 3 倍,铯原子钟的

延迟 (wander) 较高,不过不出故障的

情况下漂移为零。由于晶体会老化,

出色的工具

如作者:Austin Lesea赛灵思实验室首席工程师 [email protected]

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

所以 TCXO 的漂移不是恒定的。6 个

月后,漂移现在为 3.029E-12。

为期六个月的一组每秒一个脉冲

(1-PPS)输出频率数据同样给人印

象深刻:平均为 -397ps(最近平均低

于 400ps,作为固定延迟可消除),

方差为 1.72E-16。

这么高的精确度足以帮助您测量

重力和速度随时间的变化值(GPS 卫

星绕地球轨道运行时要就针对重力和

速度进行校正,同时卫星也会受到重

力和加速度的影响)。

所得的频率非常稳定,锁定时间

内几乎一直保持常量。那为什么不是

一直都保持锁定状态呢?我的窗口朝

东南开,因此所有直接面向西北的卫

星天线都无法接收。即便如此,没有

卫星连接的情况每天只有几分钟,对

性能几乎没有影响或者说没有任何影

响。

接收器需要最少 4 颗卫星连接才

能工作,不过晴天情况下通常能连接

10 到 11 颗卫星。如果 GPS 信号丢失,

我就看看设备的内部漂移:3.03E-12。

由于每个晶体都不同,因此我的设备

也有自己的漂移。我现在知道漂移的

情况下就用外部综合器修改 10MHz 输

出,同时在卫星不跟踪情况下采用反

向校正。卫星重新连接上,我再把校

正关闭。

54 赛灵思中国通讯第四十八期 2013 年第二季度

出色的工具

如果不能接收卫星信号,那么还有一个办法,那就

是采用网络时间协议(NTP)。NTP 提供了因特网

时间戳功能

图 2 - 示意图显示输出的谱纯度。

图 1 - 另一设备测试运行时的阿伦方差。

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

56 赛灵思中国通讯第四十八期 2013 年第二季度

XAPP897:使用 ZYNQ-7000 AP SOC 和

FREERTOS 设计视频流系统

http://china.xinlinx.com/support/documentation/application_

notes/xapp897-video-streaming-system-freertos.pdf

Dinesh Kumar 编写的本应用指南介绍了如何利用

Zynq ™ -7000 All Programmable (AP) SoC 中的赛灵思原

生 IP,创建具备数字视觉接口 (DVI) 输入和视频测试模式

发生器 (TPG) 输入的视频系统。该参考设计针对的是

ZC702 评估板,可对视频 IP 核进行配置,使其具备 60Hz

的帧处理速率和 1920 x 1080 的分辨率。该参考设计还能

显示系统级带宽使用率和视频时延等指标。这样,设计人

员就能利用 Zynq-7000 AP SoC 创建具备 DVI 输入和 TPG

输入的复杂、高性能视频系统。

本应用指南演示了如何使用 FreeRTOS 操作系统——

Zynq-7000 AP SoC 的两种推荐操作系统之一(另外一种

是 Linux)。FreeRTOS 是一种只含有少量文件的免费操作

系统,易于连接、使用和维护。FreeRTOS 支持多线程或

任务、互斥器、信号灯和软件定时器。在参考设计中,主

应用在一个 FreeRTOS 线程中运行, 同时创建另一个

FreeRTOS 线程,用以逐渐改变屏幕视控系统 (OSD) 的透

明度,以显示混合效果。

该设计使用两个 AXI 视频直接存储器访问 (VDMA) 内

核, 用以同时传送四个视频流(两个发送视频流和两个接

收视频流),每个视频流的帧尺寸为 1920 x 1080,帧速

率为 60 帧 / 秒,每像素 24 个数位 (RGB)。带视频时序控

制器 (VTC) 的 TPG 模块负责驱动其中一个 VDMA,同时,

DVI-In 的输入视频负责驱动另外一个 VDMA。两个 VDMA

内核的 S2MM(数据流到存储器映射)路径中的数据先在

DDR 中进行缓冲,再通过 AXI VDMA 的 MM2S 通道读回

并发送到通用 OSD 内核,由 OSD 内核负责将多路视频流

复用或叠加成单个输出视频流。

OSD 内核的输出通过色彩空间转换器驱动板载 HDMI

视频显示接口。

该参考设计利用 Vivado ™系统版本 2012.4 中的赛灵思

Platform Studio (XPS) 创建而成。软件采用赛灵思软件开发

套件创建,运行于 ARM® 双核处理器上,可实现控制、状

态和监控功能。该参考设计通过了全面的硬件验证与测试。

XAPP1078:利用简单的 AMP 机制在两个 ZYNQ SOC 处理器上运行 LINUX 和裸金属系统

http://china.xinlinx.com/support/documentation/application_

notes/xapp1078-amp-linux-bare-metal.pdf

TZynq-7000 All Programmable SoC 包含两个 ARM

Cortex ™ -A9 处理器,两个处理器经过配置后可以同时运

行独立的软件协议栈或可执行文件。本应用指南介绍了一种

处理器启动方法,能够让两个处理器分别运行各自的操作系

统和应用,并通过共享存储器相互通信。

Zynq-7000 SoC 的 Cortex-A9 处理器共享通用存储器

和外设。非对称多处理 (AMP) 这种机制允许两个处理器分

别运行各自的操作系统或裸金属应用,并可利用共享资源将

应用进行松散耦合。该参考设计包括在 AMP 配置下运行两

个 Cortex-A9 处理器所必备的软 / 硬件,即 CPU0 运行

Linux,CPU1 运行裸金属应用。作者 John McDougall 格外

注意避免两个 CPU 在共享硬件资源上发生冲突。本文还介

XAMPLES.. .

应用指南如果您希望进一步了解我们的 FPGA 如何适用于众多应用,建议阅读以下应用指南。

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

2013 年第二季度 赛灵思中国通讯第四十八期 57

绍了如何创建一个可启动的解决方案以及如何对两个 CPU

进行调试。

XAPP890:使用 VIVADO HLS 工具实现 ZYNQ ALL PROGRAMMABLE SOC SOBEL 滤波器

http://china.xinlinx.com/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 逻辑。

对于 Zynq 器件,这意味着将代码从 ARM 双核 Cortex-A9 处

理器移到 FPGA 逻辑中,以实现加速。硬件中用 HLS 工具实

现的代码通常会遇到算法计算瓶颈。本应用指南中,算法瓶

颈具体指 60 帧 /秒、分辨率为 1080p的Sobel边缘检测算法。

作者介绍了如何用 C 语言对算法进行描述,利用 HLS 工具生

成 RTL,并将结果模块集成到硬件系统设计中。尽管本应用

指南主要介绍的是 Sobel IP 模块,但只要应用涉及到将

Vivado 工具生成的 IP 模块集成到 Zynq SoC 中,同样可采用

本文所描述的方法。

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

Sun 共同编著的本应用指南涵盖了利用 LogiCORE ™ IP

SMPTE 2022-5/6IP 视频传输发射器和接收器内核进行 IP

视频传输网络系统设计应考虑的事项。这种设计的重点在于

采用内置的前向纠错引擎通过 10GB/s 以太网实现高比特率

本地媒体传输。这种设计可支持多达三个 SD/HD/3G SDI

数据流。

该参考设计有两个平台,分别是发射器和接收器。发射

器平台采用三个的 LogiCORE SMPTE SDI 内核,用于接

收输入 SDI 视频流。SMPTE 2022-5/6IP 视频传输发射器

内核负责接收 SDI 数据流,并对其进行多路复用,然后

将他们封装装到固定大小的数据报中,随后通过

LogiCORE IP 10GB 以太网 MAC 将数据流发送出去。而

接收器平台则在 10GB 以太网 MAC 地址处收集以太网数

据报。

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

在数字显示器市场,正在掀起新一轮创新浪潮,全面

推出超高清(UHD)4K2K 技术。先于竞争对手将具有

4K2K 观赏体验的产品推向市场是产品开发商面临的一大挑

战。赛灵思 Kintex-7 FPGA 显示目标参考设计让设计人员

能够立即获得 28nm 7 系列 FPGA 器件的功率效率和性价

比优势,以便有效管理更高的带宽和算法复杂性。上变频

器是三个赛灵思参考设计中的一个,这套参考设计能提供

4K2K 数字显示信号处理所需的基础架构,这样客户就可以

集中精力进行产品差异化设计。

Yasushi Tatehira 编著的本应用指南介绍的 HDTV 至

4K2K 上变频器参考设计能将 1080p 高清 TV 提升至 4K2K

更优画质。这种上变频功能可以使在广播和套装媒体中非

常流行的 HDTV 内容在 4K x 2K 平板显示器上播放。该参

考设计采用视频定标器和屏幕视控系统 (OSD) 这两块

LogiCORE IP 构建。

这种参考设计是基于 Kintex-7 FPGA 的显示目标设计

平台的一部分,它可以让 HDTV 内容在 4K2K 显示器或

4K2K 平板显示器上播放,为设计工程师进行产品设计奠定

了基础。有了这一转换基础功能,工程师就可以集中精力

对 4K2K 数字 TV、显示器和投影机进行差异化设计。

XAPP891:AXI USB 2.0 器件:演示批量和等时传输

性能

http://china.xinlinx.com/support/documentation/

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

58 赛灵思中国通讯第四十八期 2013 年第二季度

application_notes/xapp891-7series-axi-usb-2-0.pdf

本应用指南对采用 AXI 接口的赛灵思 USB 2.0 高速器

件在进行批量和等时事务处理时的性能进行了测量。生成

的测试系统基于 Kintex-7 FPGA 器件。使用两个独立的主

机驱动器测量批量事务和等时事务处理性能。本文作者

Ravi Kiran Boddu 和 Dinesh Kumar 介绍了如何开发一个

针对批量事务处理和等时事务处理的 USB 系统及相应的

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 个用户端点可

配置为批量、中断或等时。此外,端点也可以被配置为输

入(输入至主机)或输出(从主机输出)。用户端点的数

据缓冲器是单向的,而且通过各自的配置 - 状态寄存器进

行配置。缓冲器的容量可以是 0 至 512 字节(用于批量端

点)、64 字节(用于中断端点)以及最高的 1024 字节(用

于等时端点)。

XAPP554:XADC 布局指南

http://china.xinlinx. /support/documentation/application_

notes/xapp554-xadc-layout-guidelines.pdf

灵思模数转换器 (XADC))是一种精确混合信号测量系

统。与其它混合信号或模拟电路一样, 如果印刷电路板

(PCB) 布局不够理想,会对性能产生很大影响。本应用指南

的作者 Cathal Murphy 详细介绍了一系列简单的布局指南,

以帮助电路板设计人员实现尽可能最佳的 XADC 性能。

首先需要整理与每个 BGA 焊球有关的走线,为差分信

号和遮蔽罩 (shield) 腾出最大布线空间。然后::

• 在尽可能小的 PCB 空间上将 N 和 P 线路布置在一

起,以最大限度发挥 XADC 提供的差分采样优势。

• 使所有去耦和抗混叠电容器尽量靠近 FPGA 引脚。

• 尽量降低电源和接地线的阻抗。

• 尽量降低 RefN 线路和 XADC 的 GNDADC 之间

的一般阻抗,最好使用星形连接。

按照以上指南,极有可能首次电路板设计就能获得出

色的 XADC 性能。

XAPP1077:使用 GTP 收发器的物理层 HDMI 接收器

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 从理论和实践角度详细介绍、分析和比

较了两个不同的无源网络。作者在一个定制开发板上对

两个网络进行了测试,以研究它们的信号完整性极限并

对理论预期进行确认。作者在这篇应用指南中主要考虑

的是芯片到芯片的使用案例,但是得出的结果是普遍适

用的。HDMI 使用的目标数据速率是 1.45 GB/s。

XAPP586:为 7 系列 FPGA 搭配 SPI 闪存

http://china.xinlinx.com/support/documentation/

application_notes/xapp586-spi-flash.pdf

Arthur Yang 编写的本应用指南介绍了将串行外设接

口 (SPI) 闪存作为赛灵思 7 系列 FPGA 配置内存存储器的

优势,FPGA 与 SPI 闪存存储器之间的所需的连接,以及

选择合适 SPI 闪存应注意的细节。

SPI 闪存是一款可用于配置 7 系列 FPGA 的简单、低

引脚数解决方案。它支持间接编程功能,可通过重用配置

解决方案的已有连接进行在系统编程更新,从而增强易用

性。 尽管其它一些配置方法能实现更快的配置速度或更

高的密度,但 SPI 闪存解决方案能够很好地在速度与简便

性之间进行平衡。

XAMPLES.. .

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

2013 年第二季度 赛灵思中国通讯第四十八期 59

XAPP797:吞吐性能测量

http://china.xinlinx .com/support/documentation/application_

notes/xapp797.pdf

这篇应用指南讨论了在 AXI Quad SPI IP 核处于增强

型 Quad 模式下,从 SPI 闪存中写入和读取 1 MB 数据时,

SPI 的带宽测量情况。

本技术文档介绍的测试使用带 Numonyx SPI 存储器

的 KC705 开发板,在对软件实例文件进行少量修改后,

可以在任意其他测试版上测试。

作者 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 之前、之中和之后有效。敏感数据包括用于设置

FPGA 逻辑功能的配置数据、包含在比特流中的关键数据

或参数,以及在配置后正常运行过程中动态输入输出

FPGA 的外部数据。

作者 Ed Peterson 总结了 Virtex-6 和 7 系列器件提供

的芯片 AT 功能,并介绍了有关多种增强防篡改方法的使

用指南。

XAPP739:AXI 多端口存储控制器

http://china.xinlinx.com/support/documentation/application_

notes/xapp739_axi_mpmc.pdf

设计人员需要在有多个器件共享通用存储控制器的应

用中使用多端口存储控制器 (MPMC)。这在视频、嵌入式

和通信应用中比较常见,因为这些应用中有来自多个数据

源的数据需要流经通用存储器件(一般是 DDR3 SDRAM

存储器)。Khang Dao 和 Dylan Buli 共同编著的本应用指

南 介 绍 了 如 何 利 用 包 括 Project Navigator 和 CORE

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

收发器链路初始化、寄存器探测以及其它有助于启动和内

核使用的功能。应用则负责控制参考设计的宿端和源端,

并利用辅助通道与连接参考设计发送端口的显示器(宿端)

进行通信。该参考设计使用了赛灵思 CORE Generator 工

具生成的 DisplayPort 源端内核和宿端内核,以及一个

Policy Maker 和使用外部存储器的帧缓冲器逻辑。

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

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.

x in l inx.com/cn/training/vivado/creating-ip-subsystemswith-vivado-ip-integrator.htm。

VIVADO 高层次综合库增强功

能为了加速 C/C++ 系统级设计和

高层次综合 (HLS),赛灵思为其

Vivado HLS 库新增了业界标准浮点

math.h 运算和实时视频处理等增强

功能。正在评估 Vivado HLS 的超过

350 名活跃用户和 1000 多家客户,

现在就可以立即访问嵌入到 OpenCV环境中的视频处理功能,实现运行在

双核ARM处理系统上的嵌入式视觉。

最终解决方案通过硬件加速能将现有

的C/C++算法性能提升 100倍之多。

同时,Vivado HLS 相对于 RTL 设计

输入流程而言,可将系统验证和实现

速度提高达 100 倍。

针对 Zynq-7000 All Programm- able SoC 设计,设计团队现在能够

更快地开发出双核 ARM 处理系统的

C/C++ 代码,同时还能自动加速高性

能 FPGA 架构中计算密集型功能的执

行。

VIVADO 设计套件可支持的器

Vivado 现可支持 Zynq-7000 All Programmable SoC 器 件, 包 括

7Z030 和 7Z045(支持需要 IP 集成

器早期试用版)。Vivado 设计套件支

持所有 7 系列器件,而 2013.1 版本

除此之外还可支持如下器件:

■ 量产级:Virtex®-7 7VX690T、7VX1140T、7VX330T、7VX415T 和 7VX980T

■ 军用级:Kintex ™ -7Q(7K325T和 7K410T)和 Virtex-7Q(7V585T 和 7VX485T)

■ 一般工程样片:Virtex-7 7VH580T 和 7VH870T

Vivado 设计套件 Web-PACK ™版 本 可 免 费 下 载, 其 可 支 持

Artix ™ -7(100T 和 200T) 和

Kintex-7(70T 和 160T)器件,以及

Zynq-7000 All Programmable SoC( 早 期 试 用 版 Z010、Z020 和

Z030)器件。

Q: VIVADO 设计套件提供哪些

不同的版本?

A: V i v a d o 设计套件现已推

出三个版本:设计版本、

系 统 版 本 版 和 W e b P A C K 版 本

62 赛灵思中国通讯第四十八期 2013 年第二季度

Vivado 2013.1 版本的最新消息 Vivado ™设计套件提供了高度集成的设计环境和全新一代系统到 IC 工具,其中包括高

层次综合、解析布局布线和高级时序引擎等。这些工具能帮助开发人员提高设计集成度

以及实现生产力。

XTRA, XTRA

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

(这是免费的限于器件的 V i v a d o 设计套件设计版本)。有效期

内的 I S E ® 设计套件用户可免费获得 V i v a d o 设计套件。

Vivado 设计套件和 ISE 设计套件提供不同的下载和安装程序。Vivado 设

计套件包括 ISE 嵌入式版本;而 Vivado 系统版本则包括 ISE 系统版本,以及

Vivado 高层次综合和 System Generator for DSP(DSP 系统生成器)。

注册码生成信息,敬请访问:china.xilinx.com/cn/getlicense。

Q: 我是该继续使用 I S E 设计套件还是应转用

V I V A D O ?

A: I S E 设计套件是一款业经验证的解决方案,支持各代赛灵

思 A l l P r o g r a m m a b l e 器件。赛灵思 I S E 设计套件继续

为广大开发人员带来创新支持,而且还为 7 系列和赛灵思 Z y n q -7 0 0 0 A l l P r o g r a m m a b l e S o C 项目提供熟悉的设计流程。 I S E 1 4 . 5 带来新的创新并提供更多器件支持,现可立即下载。

赛灵思的新一代设计环境 Vivado 设计套件 2013.1 版本可支持 7 系列器件

和 Zynq All Programmable SoC(早期试用)器件,提供了增强型工具性能,特

别适用于大型设计或密集型设计。

赛灵思建议开始启动新设计的用户垂询当地的现场应用工程师,以确定

Vivado 是否适用于该设计。如果当前项目正采用 ISE 设计套件进行设计,赛灵

思建议不要转用 Vivado,因为两种环境的设计约束和脚本并不兼容。

如需了解更多信息,敬请参阅 Vivado 2013.1 和 ISE 14.5 版本说明。

Q: V I V A D O 设计套件是否

提供培训?

A: V i v a d o 充 分 利 用 了 强 大 的 互 动 T c l 脚 本、S y n o p s y s 设

计约束、S y s t e m V e r i l o g 等业界标准。为帮助您缩短学习

时间,赛灵思推出了全新教师指导培训课程,让您了解如何使用

V i v a d o 工具。如需了解有关教师指导培训课程的更多信息,敬请

访问以下网址:china.xilinx. c o m / c n / t r a i n i n g 。

Q: 能否在线探索 V I V A D O 设计

套件特性?

A: V i v a d o 快速入门教程提供了新设计环境某些特性的快速

概 览, 包 括 流 程 概 览、 系 统 级 设 计、 综 合、 设 计 分 析、 I /O 规划和高层次综合等课题。同时还将定期增加新的课题。敬请

访问: china .xilinx.com/training/vivado

2013 年第二季度 赛灵思中国通讯第四十八期 63

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 年度大奖得主均彰显出了不仅能够推出前瞻性技术,而且还具有让消费者惊艳的非凡创造力,进一步凸显了电子和嵌入式设计专业人士对当今文化的巨大影响力。”

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

了解更多

领 先 一 代软件、硬件及I/O全面可编程