赛灵思中国通讯第52期:采用Xilinx最新SDNet环境实现“软”定义网络

Page 1

赛灵思 第

2 0 1 4

采用 Xilinx 最新 SDNet 环境 实现“软”定义网络

中 国 通 讯 Xilinx News I s s u e 5 2

S u m m e r

2 0 1 4

Xilinx 20nm UltraScaleTM 架构推动无 线电应用发展 在 ZynqSoC 设计中如何使用中断驱 动方案 Xilinx 开源 TCL 库正式发布 Vivado 设计套件 2014.1 版本的最新 消息

借助 MATLAB 将 电机驱动迁移至 ZynqSoC 设计

32

请即浏览 网络版的全部精彩内容 china.xilinx.com/xcell




30 年创新历史,未来再创辉煌 出版商

灵思今年 2 月迎来 30 周年庆典。我于 2008 年加入公司,相对还是一个新人。我看

到过去六年中赛灵思及其器件以惊人的速度取得了巨大的发展和进步。我简直无法 想象那些从一开始就加入赛灵思的员工看到今天的局面该有多么感慨。当初赛灵思

编辑

艺术总监 设计 / 制作

还是圣何塞汉密尔顿大街一家小型初创企业,推出的产品在许多人眼里是很疯狂的技术,而 其采用的商业模式更是疯狂得很。 FPGA 和无工厂代工半导体商业模式是今天产业的中坚力量,但早在 1984 年则不是这么回 事。多年前,我有幸参加 Bill Carter 的面试。他在赛灵思公司就像是一个活生生的传奇人物,

广告销售

他不仅为赛灵思推出业界首款 FPGA(XC2064)奠定了坚实的基础,而且后来还成为赛灵思首 任 CTO。Bill 分享了他在赛灵思多年经历中的许多美好回忆,其中最难以忘怀的就是他面试赛

国际

灵思的联合创始人 Ross Freeman(FPGA 发明人)、Bernie Vonderschmitt 和 Jim Barnett。创始人 一起勾画出蓝图,设想出一款可重编程的器件,并让 Seiko-Epson 生产其产品。 Carter 说 : “我看了一眼这个架构,我觉得他们简直疯了。当时的芯片非常珍贵,他们的 新型电路结构要用那么多晶体管来实现。不过硬件可重编程当时是一个革命性创新概念。” 当时公司的业务模式也有点疯狂。早在 1984 年,所有人都生产自己的芯片,进入这个 产业的最大障碍就是筹集足够的建厂资本。Carter 回忆说,Vonderschmitt 在 RCA 公司积累了

订购往期期刊

丰富的经验,对生产制造有很多了解,能让他在 Seiko 的朋友来生产芯片(他在 RCA 工作时 跟 Seiko 的朋友介绍过芯片制造技术)。 Bill Carter 当时要养家,还要还贷款,当时他正在 Z80 的缔造者 Zilog 公司工作,收入稳 定。但他毅然离开了 Zilog,去赛灵思寻求机会。从此也改写了他的人生轨迹,铸就了一篇辉 煌的历史。赛灵思于 1985 年向全球推出首款 FPGA,而数年后台积 (TSMC) 领衔的无工厂代 工模式成为生产芯片的主流方法。 此后 30 年,我认识到虽然许多人来了又走,他们都塑造了赛灵思的个性,但公司始终 不变、今天仍然蓬勃发展背后的最主要推动因素就是敢于承担风险、勇于创新。过去六年 来,我目睹赛灵思通过创新型芯片(7 系列 All Programmable FPGA、SoC 和 3D IC)和工具 (Vivado® 设计套件)在 28nm 工艺节点上保持领先竞争对手整整一代水平。此外,赛灵思还 率先向市场推出 20nmUltraScaleTM 器件,进一步巩固了其在业界的领先地位。随着 FinFET 时 代的到来,可以肯定的是我们还将不断推出更卓越的创新科技。过去 30 年来客户采用我们的 芯片实现了一系列卓越创新,激励我们继续发扬首创精神。我相信,我们在今后几十年还将 不断为客户推出更多创新。

编者注 :如果您对赛灵思和无工厂代工模式的早期历史感兴趣,建议您阅读以下这篇文章 : © 2014 Xilinx, Inc。保留所有权利。本 文包含的赛灵思、赛灵思徽标和所有其 他指定品牌均为赛灵思的商标。所有其 他商标是其各自所有者的财产。 本期文章、信息和其他材料仅出于为读 者提供方便目的而提供。赛灵思对上述 任何文章、信息和其他材料及其使用不 做任何明示、暗示或规定性担保,因此 用户对其使用带来的风险承担全部责 任。任何使用上述信息的人或实体均不 得因使用上述信息造成伤害、损失、成 本而向赛灵思提出索赔。

《赛灵思和无工厂代工半导体产业的诞生》,作者是 Xcell Daily 的编辑 Steve Leibson。如需了

解赛灵思未来创新的最新信息,敬请持续关注赛灵思中国通讯 (Xcell Journal) 的科技内容,并 欢迎为我们投稿。值得自豪的是,目前我们的刊物已迎来发行 26 周年。

Mike Santarini 发行人



目 录

视点 发行人致信 30 年创新历史,未来再创辉煌 ... 4

XCELLENCE BY DESIGN APPLICATION FEATURES 无线领域的出色表现 Xcellence in Wireless Xilinx 20nm UltraScaleTM架构 推动无线电应用发展…14 工业领域的出色表现 Xcellence in Industrial 利用Xilinx FPGA和分解器数字 转换器简化角度测量…24 工业领域的出色表现 Xcellence in Industrial

封面专题

8

借助MATLAB将马达驱动迁移至 Zynq SoC设计…32

采用Xilinx最新SDNet环境实现“软” 定义网络

32


2014

年第二季度

第五十二期

THE XILINX XPERIENCE FEATURES 手把手课堂:FPGA 101 在Zynq SoC设计中如何使用中 断驱动方案… 38

38

手把手课堂:FPGA 101 如何利用FPGA计算数学复变函 数… 44 手把手课堂:FPGA101 用Vivado HLS为软件提速… 50 出色的工具 Xilinx 开源TCL库正式发布… 54

54

XTRA READING 号外,号外 Vivado设计套件2014.1版本的最新消息… 60 实例 应用指南… 62

44


封面专题

Xilinx采用最新SDNet 环境实现“软”定义 网络

8

赛灵思中国通讯

2014年第二季度


A

封面专题

利用赛灵思技术,设计团 队现在能在芯片上构建线 路卡,并根据其特定网络 服务和应用定制硬件。 作者:Mike Santarini 赛灵思公司

在通信架构受消费者对更高带宽、更好更可靠

Xcel杂志发行人.

更安全服务需求推动而快速发展演进之际,赛

mike.santarini@xilinx.com

灵思积极创新,推出了一项改变游戏规则的技 术和设计方法,致力于帮助客户快速为有线 和无线网络以及数据中心推出和升级下一代 线路卡。这种新技术就是其软件定义规范环 境 SDNet。结合使用赛灵思 All Programmable FPGA 和 SoC,SDNet 能让通信设计团队运用 赛灵思所谓的“软”定义网络 “ ( Softly”Defined Network) 这一革命性创新方法来实现下一代软 定义网络架构线路卡的设计和升级。 从固定网络到 SDN 赛灵思通信 IP 和服务副总裁 Nick Possley 指 出,过去 20 年来,通信架构主要包含固定的控 制层和数据层,而且无法随着网络要求的发展 进行扩展。如果电信运营商想扩展网络功能、 提高整体带宽,这种僵硬化的架构就迫使其不 得不频繁更换设备。线路卡是系统的核心器 件,基本采用高度专业化的 ASIC、ASSP 和存 储器 IC 组合。FPGA 则用于加速和桥接线路卡 芯片间的通信。 随着需求的加快,电信运营商和通信系 统企业为满足有关需求开始探索更好的解决方 案。过去几年来,这些企业开始转而采用软件 定义网络(SDN)和网络功能虚拟化(NFV)

2014年第二季度

赛灵思中国通讯

9


封面专题

多不同市场需求。这样,这些 ASSP 线路卡就会耗费更多电力,导致设备

软件定义网络

发烫,因此电信运营商必须采取额外 措施来给设备降温。冷却成本当然也 优势

会增加运营支出,从而进一步影响电 信运营商的最终盈利能力。

带网络智能功能的软件 定义控制层

虚拟网络服务

网络灵活性

全面管理

更好的解决方案:软定义网络 采用 SDNet 和赛灵思革命性创新型软 定义网络方法,通信系统公司能够开 发出集成低功耗 All Programmable 线

OpneX... 南向 API

路卡,其功能绝不仅限于软定义控制 层和 SDN 架构所需要的网络智能。这 种新技术还能帮助厂商用具有内容智 能功能的软件定义数据层硬件实现系

固定数据层硬件

统差异化。这意味着设计团队能够根 据他们系统对网络服务和应用的确切 图1 – 今天的软件定义网络将控制层和数据层相分离,但仍采用固定的数据层, 差异化极低,生命周期也很短。

需求来定制硬件(见图 2)。 网络架构师(这些人通常没有硬 件设计背景)习惯用英语描述来表达 具体协议要求,如 Internet 的请求注

10

技术。这种架构将控制层和数据层相

合 SDN 规范。但由于供应商推出向所

分离,并为控制层添加了更多软件虚

有网络系统公司推出通用的 ASSP,

然后,他们要依靠精通目标器

拟化功能,这样电信运营商就能快速

因此这些芯片在产品差异化或功能扩

件底层架构的专业工程师来手动将这

部署新应用,而且网络设备也比在传

展方面缺乏竞争力。这样一来,网络

些协议要求转换为低层特定实现描述

统网络中更易于升级换代,从而有助

系统厂商被迫降低价格来赢得电信运 (通常要采用高度专业化的微代码)。

解 (RFC) 或 ISO 标准文档。

于延长使用寿命(进而提高盈利能力) 营商的青睐。

这些硬件工程师要么指定通用处理器

并简化网络管理(见图 1)。

或专用网络处理器如何执行包处理,

表面上,我们认为电信运营商会

不过 Possley 指出,即便是最近

喜欢这种设备价格走低的趋势。但实

新推出的 SDN 和 NFV 架构也仍然相

际上,即便是基于 ASSP 的 SDN 架

随后网络设计团队必须验证硬件

当死板,因为数据层不具可编程性,

构中,固定的数据层设计也仍然非常

能否实现架构师的最初设计意图,或

设计通常采用现成的 ASSP。居网络

僵硬,电信运营商如果发现 ASSP 固

者说能否至少满足线路卡应使用的最

核心地位的线路卡采用现成的分立包

定的硬件功能无法满足不断变化的应

新协议版本要求。如果线路卡无法满

处理器和连接至光学器件的流量管理

用、协议升级和新特性需求,就只能

足有关要求,那就必须重复设计过程

器 ASSP,与协处理器和外部存储器

进行昂贵的现场线路卡更换。线路卡

直至能正确运行为止。由于所需规范

一起使用。这种线路卡还采用 FPGA

更换需要关闭网络,同时还要求技术

和微代码之间的关系不够直观,这一

来加速所有这些芯片间的通信。

人员拆下老旧线路卡并安上新卡。此

过程变得更加复杂,同时底层架构性

许多不同芯片制造商为 SDN 和

外,ASSP 厂商还倾向于在设计中内

能存在局限性,功能因面向不同服务

NFV 架构打造的最新版 ASSP 确实符

置过多功能,试图让单个器件满足众

公司也存在差异。

赛灵思中国通讯

要么在定制 ASIC 中设计有关功能。

2014年第二季度


封面专题

SDNet 的软定义网络方法直击问

成 RTL 模块,便于实现在赛灵思 All

引擎。SDNet 规范环境不提供实现细

题根源,使网络系统设计团队能够快

Programmable 器件、固件和验证测试

节。这样客户能够自由扩展缩放设计

速设计出“生成即保证正确 (correct by

平台中。

的性能和资源,而且无需了解底层架

construction.)”的线路卡。具体说来,

Possley 指出 : “借助 SDNet,系统

SDNet 侧重线路卡最复杂设计部分的

架构师能够指定内容,而不是方式。系

自动化,即现代线路卡中包处理器和

统架构师能精确指定他们要部署的服

Possley 指出,SDNet 非常简单,

流量管理器功能的设计和编程(见图

务,而不去管底层硅硬件上到底怎么部

赛灵思选定几家客户进行了 beta 测

3)。

署。”

试,这些客户都认为其非常直观易

构的细节。SDNet 规范也不局限于任 何特定的网络协议。

网络系统团队不是让两个不同的

在 SDNet 流程中,系统架构师

用。他说 : “它以简单直观的规范大幅

分立 ASSP 执行这些功能,而是在单

可用高级功能规范定义线路卡功能

减少了客户要生成的代码量,因此相

个赛灵思 All Programmable FPGA 或 (见图 4)。让架构师用 SDNet 能够

对于网络处理器的微编码而言工作量

SoC 上集成包处理和流量管理功能以

描述语法分析、编辑、搜索和服务质

大幅减少。”

及其它线路卡功能。他们能确保为目

量(QoS)策略引擎等多种不同类型

一旦架构师完成了 SDNet 规范

标应用创建最佳实现方案。除了在单

包处理引擎所需的行为。架构师能够

环境中的系统引擎和流程定义,就能

个 All Programmable 器件中集成许多

分层级描述引擎,从而简化子引擎,

为 SDNet 的编译器提供吞吐量和时

芯片功能之外,SDNet 还能优化线路

它们能够互联并编排进入分组数据流

延要求以及运行时间可编程性要求,

卡高级行为规范的创建,并自动生

中。这些子引擎还能包含用户提供的

这将影响编译器生成的优化硬件架

SDNet 软件定义规范环境

“软”定义网络

All Programmable FPGA 和 SoC

虚拟网络服务

网络灵活性

全面管理

带网络智能功能的软件 定义控制层

OpneX... 南向 API

线速服务 , 避免各种协议的复杂性

提供以流程为单位的灵活服务

“无中断”操作即时升级

带内容智能功能的软件 定义数据层硬件

图2 – SDNet为数据层带来灵活性和自动化,实现了用于下一代网络设计和升级的软定义网络方法。

2014年第二季度

赛灵思中国通讯

11


封面专题

图3 – 各大公司借助SDNet能够创建高度集成的All Programmable线路卡。

构。架构师随后执行命令,SDNet 的 编译器会自动为硬件模块生成设计 需 要 的 RT L 。 编 译 器 还 生 成 固 件 和 核实 / 验证测试平台。SDNet 设计环 境不仅包括赛灵思针对网络优化的 SmartCORE 和针对连接功能优化的 LogiCOREs TM,同时还集成了外部存 储器控制处理器和嵌入式处理器。 编译后,网络工程师就能在 Vi v a d o ® 设 计 套 件 中 用 I P 生 成 器 (IPI)工具完成设计实现。他们首先 使用 Vivado 工具和 IPI 转换 SDNet 编译器生成的 RTL 架构描述为最佳 的赛灵思 FPGA 实现方案,如果所选 器件上有足够的可用资源,然后网络 工程师就可在 FPGA 中集成任何其

图 4 – 基于SDNet的实现流程支持All Programmable线路卡的生成即保证正确设计。

12

赛灵思中国通讯

2014年第二季度


封面专题

它线路卡功能,从而创建出片上 All

这样,企业进行重大服务升级就不会

当然,如果在赛灵思 Zynq ®-7000 All

Programmable 线路卡。

对造成服务中断。这种革命性开发成

Programmable SoC 上实现设计,那就

此外,SDNet 可为功能核实和验

果要归功于 SDNet 技术及其配套使用

能在器件的嵌入式 ARM® 处理器上运

证生成数据,引导实现生成即保证正

的赛灵思 All Programmable 器件高级

行软件。

确的设计。具体来说,SDNet 的编译

规范的独有特性。”(见图 5)

Possley 指出 : “SDNet 在软件控

器接受一系列测试包来测试设计的输

Possley 指出 : “SDNet 能够生成

入输出。架构师可在设计流程的规范

支持无中断操作即时升级的数据路径

定义阶段使用该测试包,确保其创建

处理功能,这是其独到之处。电信运

如需了解有关 SDNet 规范环境的

正确的 SDNet 描述解释。网络工程师

营商能通过标准的 SDNet API 用软件

更多信息,包括 SDNet 的视频演示,

可在 SDNet 编译器生成的 RTL 描述

控制器为线路卡组件添加新的特性或

敬请访问 :china.xilinx.com/sdnet。

仿真阶段使用测试包。最后但同样重

功能。”

制下可提供全面的硬件可编程功能, 因此我们称之为‘软’定义网络。”

该网站还为您提供题为《针对网

要的是,这些测试包能在设计最后实

他补充指出,其能在嵌入式软处

现阶段配合使用网络测试设备协助硬

理器或外部处理器上运行升级软件。

络的全新 SDNet 软件定义规范环境》 的深度白皮书。

件验证。此外,SDNet 将为搜索引擎 查询表生成相应的内容。这种核对 验证功能可大幅缩短设计时间,消除 系统架构师和网络硬件工程师之间的 迭代工作,从而有助于不同工作团队 加快向市场推出高度差异化的产品。 赛灵思杰出工程师 Gordon Brebner 指出,编译器自动生成定制 固件操作及其针对架构中不同组件的 二进制编码。他说 : “这使得架构师能 直接控制处理。”SDNet 有一个实用 功能,能够记录所生成的架构及其固 件的运行和存储细节。用户以更新版 SDNet 描述作为输入返回编译器时, 它能明确是否只需固件升级就能支持 修改(无需生成新硬件),抑或需要 重新生成硬件(和固件)。在大多数 情况下,仅升级固件即可完成中等规 模的升级(如添加或减少线路卡要处 理的协议)。 Brebner 指出 : “由 SDNet 编译器 生成的固件和架构之间密切关联,这 意味着用户能执行无中断升级,固件 更改并投运都不会中断数据包传输。

2014年第二季度

图5 – 部署后,SDNet能让厂商不中断服务就升级线路卡协议。

赛灵思中国通讯

13


无线领域的出色表现

Xilinx 20nm UltraScale架构助推 无线电应用发展

14

赛灵思中国通讯

2014年第二季度


无线领域的出色表现

新一代5G系统的设 计十分复杂,而UltraScale器件内置的 相关功能,能让这项 工作变得更加简单。

将到来的 5G 无线通信系统似乎需要支持比 目前使用的 4G 系统更大的带宽(200 MHz 及以上),以及大型的天线阵列,以实现更

高的载波频率,从而有可能构建小得多的天线元。这 些所谓的大规模多输入多输出(MIMO)应用连同更 加迫切的延迟需求可将设计复杂度提高一个数量级。 去年年底,赛灵思宣布推出 20nmUltraScaleTM 系列,目前第一款器件已在运输途中 [1,2,3]。这项新 技术与之前的 28nm7 系列相比具有众多优势,尤其 是在无线通信方面。确实,这款新型芯片与赛灵思 Vivado® 设计套件 [4,5] 工具的结合完美适用于新一代 无线电应用等高性能信号处理设计。

Michel Pecot

我们来看看针对这类设计 UltraScale 器件有哪些

赛灵思公司无线系统架构师

优势,着重观察架构方面 —— 尤其是当实现一些用

michel.pecot@xilinx.com

于无线数字前端(DFE)应用的最常见功能时,这种 增强功能会给 DSP48 Slice 和 Block RAM 带来哪些优 势。与 7 系列相比,UltraScale 系列可提供更加密集 的布线和时钟资源,能够实现更高的设备利用率,尤 其针对高速设计。但是,这些特性通常不能对设计架 构产生直接影响,因此我们在这里不做讨论。 UltraScale 架构增强功能简介 UltraScale 20nm 架构不仅能随着几何节点的迁移提高 集成能力,提升架构性能以及降低功率消耗,还包括 一些显著增强的全新功能,可直接支持 DFE 应用。 而这些功能对 UltraScale Kintex® 器件而言尤其重要, 为此赛灵思已根据此类设计的需求进行了重大调整。 首先,这些器件包含多达 5,520 个 DSP48 Slice, 这几乎是 7 系列 FPGA 的最大数量(1,920)的三倍 (Zynq®- 700 All Programmable SoC 为 2,020),因此, 它可以实现高集成度。比如,一个中型 UltraScale FPGA 的瞬时带宽就能达到 80 到 100 MHz,您可以利 用这一带宽实现完整的 8Tx/8Rx DFE 系统,而在 7 系 列架构中,必须使用双芯片解决方案才能实现,因为 每个芯片只能有效支持一个 4x4 系统。如欲了解有关 这类设计各项功能的详细信息,敬请参阅赛灵思白皮 书 WP445“采用赛灵思 All Programmable FPGAs 以及 SoC 实现高速无线电设计”[6]。 受远辐射被动降温的散热限制,将复杂设计 集成到单个器件要求大幅降低功耗,以散发热量。

2014年第二季度

赛灵思中国通讯

15


无线领域的出色表现

SerDes可在最低速度等级 器件上支持12.5 Gbps流量, 实现最大JESD204B 接口连接速度。 UltraScale 系列在提供这项功能时,

说,UltraScale Kintex 器件拥有每千查

连接到 O6/O5 LUT 输出的两个触发器

其静态功耗比同等规模的 7 系列器件

找表(LUTs)8-8.5 个 DSP48 Slice,

以避免发生任何时序问题。基于相同

低 10%-15%,动态功耗比类似设计低

而 7 系列器件只有大概 6 个。

的原因,建议仅对相关逻辑使用这项

20%-25%。此外,赛灵思还大幅降低 了 UltraScale 产品线的 SerDes 功耗。

16

赛灵思还大幅增加了 UltraScale 架构的时钟和布线资源。这项增加提

功能,该策略还能起到限制布线拥塞 的作用。

此外,它还存在性能优势。最低

高了器件利用率,尤其针对高时钟速

在 UltraScale 器件中,时钟架构

速度等级 UltraScale 器件支持时钟速

率设计。实际上,这样做减少了布线

和可配置逻辑块(CLB)均有助于更

率高于 500MHz 的设计,而 7 系列器

拥塞,设计人员可以实现更好的设计

好地利用器件。尽管 CLB 仍然以 7 系

件则要求达到中速等级。然而,即使

封装和 LUT 利用率,尤其是使 LUT/

列架构为基础,但现在每个 CLB 拥

这样,Block RAM 从计时角度来看要

SRL 压缩变得更为高效。用户可以

有单个 Slice(而非两个),其中集成

求仍然严苛,并且必须选择 WRITE_

利用这项有意思的架构特性更好地打

了 8 个 6 输入 LUT 和 16 个触发器。

FIRST 或 NO_CHANGE 模式以达到这

包设计,从而优化资源利用率以及动

因此进位链有 8 位长,且提供更宽的

种性能。不能使用 READ_FIRST,因

态功耗,其中相关逻辑的动态功耗下

输出复用器。另外,赛灵思还增加了

为它的限值在 470MHz 左右,而另外

降系数可达 1.7。LUT/SRL 的压缩原

控制类资源(也就是时钟,时钟使能

两种模式可达到 530MHz。无论何时

理包括采用 LUT6 的两个输出在单个

和复位信号均共享于 CLB 中的存储组

NO_CHANGE 总是您的最佳选择,因

LUT 内打包两个不同函数。这样,

件)。

为它同时还能实现最低功耗。

如果两个 LUT5 共享相同的输出或内

然而,从本质上来讲,还是

同样,SerDes 可在最低 UltraScale

存读取 / 写入地址,您可以将实现逻

DSP48 Slice 和 Block RAM 的改进对无

速度等级上支持高达 12.5 Gbps 流

辑函数或内存的两个 LUT5 打包到一

线电设计架构的影响最大。我们来详

量,从而实现最大 JESD 204B 接口

个 LUT6 中。同样,也可以将两个

细了解一下。

连接速度,其应很快可在大多数

SRL16 打包到一个 LUT6 中。 UltraScale DSP48 Slice 架构的优势

DAC 和 ADC 上实现。同样,最低的

该特性对于数字无线电设计非

UltraScale 速度等级还可支持两个最高

常实用,该设计通常将共享同一地址

图 1 给出了 UltraScale DSP48Slice

CPRI 等级(7 级和 8 级,其流量分别

的多个小内存(例如储存滤波系数的

(DSP48E2) 的视图。上面的原理图

为 9.8304 和 10.1376Gbps)以及 10GE

ROM)和很多短延迟线(小于 16 个 (图表“a”)显示了详细架构,下面

接口,通常用于 DFE 系统。

周期)集成到按时间排列的不同信号

的原理图(“b”)强调了与 7 系列

此外,UltraScale Kintex 资源组

路径中。数据复用功能,尤其是双输

Slice(DSP48E1) 相比增强的功能。

合更适合无线电应用,它能够实现逻

入复用器,也将受益于这项特性。但

辑资源的最佳用法。该 DSP 逻辑比尤

是要想获得较高的时钟速率,必须谨

其符合 DFE 设计的典型需求。确切地

慎使用 LUT/SRL 压缩。首先,必须用

赛灵思中国通讯

赛灵思将乘法器的宽度从 25×18 增加到 27×18,预加法器宽度也

2014年第二季度


无线领域的出色表现

CARRYCASCOUT* BCOUT*

MULTSIGNOUT*

ACOUT*

A*B+P+PCIN。值得注意的是,

PCOUT*

只能在 ALU 中添加 W-mux 输出 A:B

(不允许减少)。

ALUMODE

Dual B Register MULT 27 x 18

在 X、Y 或 Z 多路复用器输出

M

端中的任意两个之间执行 96 位

Dual A, D, and Pre-adder

P

C

宽异或。实际上此处可提供四个 不同模式,1x96 位、2x48 位、

17-Bit Shift 17-Bit Shift

INMODE

4x24 位或 8x12 位异或操作。

GREG/C Bypass/Mask

CARRYIN OPMODE

将乘法器尺寸从 25×18 扩大到

MULTSIGNIN* CARRYCASCIN*

CARRYINSEL BCIN*

ACIN*

27×18,这对 DSP48 Slice 芯片面积 PCIN*

* These signals are dedicated routing paths internal to the DSP48E2 column. They are not accessible via general-purpose routing resources.

*这些信号是专用于DSP48E2列的内部布线路径,其不可通过通用布线资源进行访问。 (a)详细的DSP48E2架构

预加法器输入端上的 A/B Mux on

Pre-adder input A/B 多路复用器

赛灵思集成了其它逻辑,从而可

的影响极小,但会显著提高对浮点 运算的支持。首先,需要指出的是, DSP48E2 可有效支持高达 28×18 位 或 27×19 位符号乘法运算。这是通

Squaring Mux 方形多路复用器

宽 XOR XOR Wide 48-Bit Accumulator/Logic Unit

过用输入端 C 处理额外的比特位来实 现,如图 2,显示了 28 位操作数 X 和 18 位操作数 Y 之间的乘法运算。 46 位输出端的 45 个最高有效位

B

(MSBs)的计算方式为 : A

+/– D

Z[45:1] = X[27:1]*Y[17:0] + X[0]*Y[17:1]

27 x 18 Multiplier Pre-adder

X 的 27 个最高有效位和 Y 的 18

Round Cst Pattern Detector

C

位可直接馈送到 DSP48E2 乘法器输入 端,而 X[0]*Y[17:1] 源自外部 17 位 AND 运算符,并在一个流水线步骤

Increased 增加的乘法器宽度 Multiplier Width

W-W-Mux 多路复用器

后被发送到输入端 C 以匹配 DSP48E2 延迟。事实上 AND 运算符可通过由

(b)DSP48E2高层次功能视图 图1 – UltraScale DSP48 Slice架构

X[0] 控制的复位引脚将 Y[17:1] 直接 馈送到寄存器中。同样,外部 1 位 AND 运算符和用于实现延迟平衡的三

相应增加到 27 位。

算高达 18 位数据的 (D±A)² 或

时钟周期延迟可用来计算 Z,Z[0] 的

您可以选择预加法器输入端为 A

(D±B)²。

LSB。

或 B,输出端集成了一些多路复

通过额外的 W-mux 多路复用器

因此您可以执行具有单个

用器逻辑,从而允许在任意乘法

在算术逻辑单元 (ALU) 中添加

DSP48E2 Slice 和 18 个 LUT/ 触发器

器输入端上(27 位或 18 位输入)

了第四个操作数,可将其看作

对的 28×18 位乘法器。这同样适用

馈送 D±A 或 D±B。

输入端 C、P 或一个常量值(在

于使用其它 27 个 LUT/ 触发器对的

预加法器输出端可馈送两个乘法

F P G A 配 置 时 定 义 )。 这 样 ,

27×19 位乘法器。这两种情况下,均

器输入(在 18 位输入端上有适

使用乘法器时便可以执行一个

可通过 W-mux 支持运算结果的收敛

当的 MSB 截断),因此允许计

三输入操作,如 A*B+C+P 或

舍入。

2014年第二季度

赛灵思中国通讯

17


无线领域的出色表现

Sign Extension

Rounding Constant

Sign Extension

DSP48E2

图2 – 具备输出收敛舍入功能的28×18位符号乘法运算

双精度浮点乘法运算涉及两个

说,这包括建立浮点运算 A*B+C,

架构非常适合该用途,因为它只需 2

运算符的 53 位非符号尾数的整数乘

且乘法器和加法器之间无需明确舍

个 DSP48 Slice 就可以打造单精度的

积。尽管双精度浮点计数法中储存有

入、标准化和非规范化的数据。当

融合乘法器,而 7 系列器件则需使用

一 个 5 2 位 数 值 ( m ), 但 它 代 表 的

使用传统的浮点运算时,这些功能

3 个 Slice 以及其它架构逻辑。Squaring

是非符号尾数的小数部分,而实际上

的代价非常高昂,且占用了最多的

A/B Mux on Pre-adder input 预加法器集成在位于乘法器前面

其是标准化的 1+m 值,需要将这些

延迟时间。可推广这一概念以建立

的 DSP48 Slice 中,可提供一种高效

值乘在一起 ;因此乘法运算将要求使

积和运算符,这在线性代数中非常

的对称滤波器实现方式,这在 DFE 设

用附加位。考虑到两个 53 位操作数

常见(矩阵积,Cholesky 分解法)。

计中很常见,可以实现数字上变频器

的 MSB 都等于 1,并适当分解乘法

因此,这种方法在成本或时间紧迫

(DUC) 和数字下变频器 (DDC) 功能。

运算从而以最佳方式利用 DSP48E2

的情况下十分高效,同时要求具备 A

对于 N 抽头对称滤波器来说,其输出

26×27 位非符号乘法器及其改善后的

浮点计数法的准确性和动态范围。

各项功能(例如,由 W-mux 启动的

在无线电 DFE 应用中,数字预失

实例的计算方式如下 +/– :

真正的三输入 48 位加法器),可以看

真功能通常要求一些硬件加速来支

到,只需 6 个 DSP48E2 Slice 和极少

持,以提高非线性滤波器系数的更

的外部逻辑就可以构建 53×53 位非

C 架 新速度。然后,您可以在 FPGA

符号乘法运算。本文未涉及这类实现

构中建立一个或多个浮点 MAC 引

其中 x(n) 代表输入信号,h(n) 代

方式的所有细节,但在上一代 7 系列

擎,以协助软件中运行的系数估算

表滤波器脉冲响应,其中 h(n)=h(N-

器件上,要实现类似的方法则需要 10

算法(例如,在 Zynq SoC 的一个

1-n)。

个 DSP48E1 Slice ;因此 UltraScale 架

ARM®CortexTM-A9 核上)。

构将需要的 Slice 数量减少了 40%。

18

B

D

27 x 18 Multiplie

Pre-adder

Round Cst

Increased Multiplier Width 因此,成对的输入实例会被馈送

对于这类算术结构,已经证明

入预加法器中,而输出则会进一步乘

DSP48E2 的 27×18 乘法器对于

如果尾数宽度略有上升,从 23 位上

以相应的滤波器系数。在 7 系列架构

以融合数据路径为基础的应用非常实

升到 26 位,则与真正的单精度浮点

上,预加法器必须使用 DSP48E1 的

用。最近,IEEE 浮点标准中加入了

实现相比,准确度会有所提高,但

30 位输入端(A)以及 25 位输入端

融合乘累加运算符概念 [8]。一般来

会减少延迟和空间占用。UltraScale

(D),且其输出端需连接乘法器的 25

赛灵思中国通讯

Mu

2014年第二季度


无线领域的出色表现

通过额外的W-mux 多路复用器可将第四个输入 操作数添加到ALU中对无线电 应用最为有益。 位输入端,同时将输入端 B 布线至 18

的实现方案,这个操作数通常可以将

行所用的时钟速率相同。在所谓的并

位乘法器输入端。

DSP48 需求量减少 10%-20%。

行架构中,每个 DSP48 Slice 根据数

因此,在建立对称滤波器时,系

只能将 W-mux 输出加入 ALU(不

据通道支持单一滤波器系数,从而大

数数值化后不得超过 18 位,这样可

允许减少)中,并可将其动态设置为

幅简化了控制逻辑,并因此最大限度

将阻带衰减限制在 85 到 90dB 左右。

寄存器 C 或 P 内容,或在 FPGA 配

地降低设计资源利用率。

对于新一代 5G 无线电系统来说,这

置过程中将其设为常量值(比如用

但是由于提高了时钟速率(例

也许会成为问题,因为该系统很可能

于 DSP48 输出端的收敛舍入或对称

如,在最低速度等级 UltraScale 器件

在干扰水平较高的环境下运行,因此

舍入的常量),或只需将其归零。通

上时钟速率超过 500 MHz),且滤波

也许需要更大的衰减。

过这种方式可在使用乘法器时执行

器以相对较低的采样率运行,因此通

UltraScale 架构解决了这个问题,

真正的三输入运算,如 A*B+C+P,

常会选择时钟速率作为复合采样率的

因为可选择预加法器输入端作为 A

A*B+C+PCIN,A*B+P+PCIN,而这

倍数。可尽量提高时钟速率,以进一

或 B,并在输出端集成了一些多路复

在 7 系列架构中是不可能实现的。的

步减小设计占用的空间,同时降低功

用逻辑,从而支持将 D±A 或 D±B

确,使用乘法器阶段会生成最后两个

耗。在这种情况下,将需建立一个半

馈送至任意乘法器输入端(27 位或

部分乘积输出,然后将其添加到 ALU

并行架构,其中每个 DSP48 会根据通

1 8 位 输 入 端 )。 因 此 , 可 支 持 系 数

中,以完成运算(见图 1)。因此,启

道处理 K 系数,而 K 是时钟速率与

达 27 位的对称滤波器。赛灵思还为

动乘法器后,乘法器将使用 ALU 的

复合采样率之间的比率。最高效的实

DSP48E2 Slice 添加了另一项功能,将

两个输入端并执行一项三输入运算,

现方案包括将滤波器拆分为多个 K 相

预加法器输出端连接至乘法器的两个

而 7 系列器件则无法执行。

位,每个 DSP48 可处理这些 K 相位的

输入端(在 18 位输入端上设有恰当的

受益于这一额外 ALU 输入端的

MSB 截断)。这样便可以执行多达 18

两个最主要实例是半并行滤波器和复

在每个时钟周期中计算出连续多

位数据的(D±A)² 或(D±A)² 运

合乘积累加(MAC)操作数。下面我

个滤波器输出相位,并将其累加形成

算,从而可有效用于评估平方误差项

们将对这两个实例进行详细讲解。

一个输出样本(每个 K 周期一次)。

的总和。此类运算在优化问题中十分

一个特定系数。

因此,与并行实现方案相比,滤波器

常见,比如,在实施最小平方解决方

关于滤波器和 MAC

输出需要增加一个累加器。这种全精

案以获得调制解调器均衡器系数时,

在任何 DFE 应用中,线性滤波器都是

度累加器可作用于较大的数据宽度,

或按时间排列两个信号时。

最常用的处理单元。在赛灵思 FPGA

等于 bS+bC+bF,其中 bS 和 bC 分别

毫无争议,通过额外的 W-mux

上集成此项功能后,建议 [6] 尽可能

表示数据样本的位宽度和系数,而

多路复用器将第四个输入操作数添加

实现多通道滤波器,因为它的复合采

bF=Log2N 是滤波器的位增长,N 是系

到 ALU 中对无线电应用最为有益。

样率(定义为通道数量与每条通道一

数总数。因此,常规做法是在 DSP48

相比 7 系列器件上针对此类设计相同

般信号采样频率的乘积)与该设计运

Slice 内实现累加器,以保证支持最高

2014年第二季度

赛灵思中国通讯

19


无线领域的出色表现

时钟速率并最大限度地降低占用空间

晰地突出了 UltraScale 解决方案的优

AQ).(BI+j.BQ),从而根据以下等式仅

和功率消耗。

势,由于其具备 W-mux 功能,相位累

使用三个真正的乘法运算 :

需要注意的是,各类滤波器都

加器可被最后一个 DSP48 Slice 吸收。

可以生成半并行架构,例如 :单频率

下面我们来思考一下如何实现每

滤波器、整数型滤波器或分数率内插

个时钟周期产生一个输出单元的全并

• PQ = P1 + AQ.(BI + BQ)

和抽取滤波器。图 3 是简化后的 7 系

行复合 MAC 运算符。众所周知,您

其中 P1 = BQ.(AI - AQ).

列和 UltraScale 实现方块图。图中清

可以重写复乘积的等式 PI+j.PQ=(AI+j.

Din

Data MEM/SRL

Data MEM/SRL

Data MEM/SRL

Data MEM/SRL

+ h0 h1 h2

Data MEM/SRL

+ h3 h4 h5

x

+ h6 h7 h8

x

x

+

+

+

DSP48E1

DSP48E1

DSP48E1

+ DSP48E1

• PI = P1 + AI.(BI - BQ)

DOUT

(a)7 系列实现方案

Data MEM/SRL

Data MEM/SRL

Data MEM/SRL

x +

h3 h4 h5

x

+A B DSP48E2

h0 h1 h2

h0 h1 h2

+ DSP48E2

+

Data MEM/SRL

h6 h7 h8

+

x +

A B D PCOUT PCIN

M

D PCOUT PCIN

DSP48E2

Din

Data MEM/SRL

DOUT

(b)UltraScale实现方案 图3 – 在7 系列和UltraScale架构上实现半并行滤波器

20

赛灵思中国通讯

2014年第二季度


无线领域的出色表现

P1 PI PQ

PIACC P Q ACC – +

SRL-2

因此,利用内置加法器,您只需 DSP48E1 AREG-0

三个 DSP48(一个用于计算 P1,另

+ ADREG

DREG

外两个用来处理 PI 和 PQ 输出)就

x

能实现复合乘法器。根据延迟需求以 PREG

MREG BREG-0

及其中表述的速度性能指令,需要增

BREG-1

加一些逻辑以在不同数据路径间平衡

DSP48E1

SRL-2 AREG-0

+

SRL-2

ADREG DREG

x

DSP48 实行完全流水线化,从而让运

PREG

PREG

BREG-1

DSP48E1

x

+ MREG

SRL-2

数据路径和虚构数据路径保持一致。 在每个输入位配备四个 SRL2,并利用

CREG

DREG

算符整个延迟六个周期。随后在每个 输入端增加一个两周延迟线,让实际

+ ADREG

BREG-0

+ CREG

DSP48E1 AREG-0

延迟。为获取最大速度支持,必须对

+ MREG

SRL-2 BREG-0

DSP48E1 CREG

+ CREG

PREG

BREG-1

PREG

SRL 压缩功能将四个 SRL2 打包到两 个 LUT 中。通过在每个 PI 和 PQ 输出 端添加累加器来最终完成复合 MAC。 此外,这个累加器会作用于较大的数 据宽度,因此能更好地集成到 DSP48

(a)7 系列实现方案

P1 PI PQ

Slice 中。图 4 显示 7 系列和 UltraScale

PIACC P Q ACC – +

器件相应的实现方案,从而再一次展 SRL-2 示了 W-mux 集成的优势。PI 和 PQ DSP48E2 Slice 在吸收累加器时可节省

DSP48E2 AREG-0

40% 资源。值得一提的是,该方式还

+ ADREG

DREG

减少了延迟,对一些应用十分有益。

x

您可以用类似结构构建带有三个 PREG

MREG BREG-0

具备复合数据和系数),如图 5 所示。

BREG-1

输入信号的真实部分和虚构部分会馈

DSP48E2

SRL-2 AREG-0

+

SRL-2

CREG ADREG

DREG

x

+

SRL-2 BREG-1

CREG ADREG

x

端结合起来,以生成输出端的真实与 虚构组件,其将再次受益于 W-mux,

+ MREG

SRL-2

的真实部分处理并行的输入端真实与 波器时,最终可将三个滤波器的输出

+

DREG

为该滤波器系数虚构部分和真实部分

虚构部分的总和。当需要建立并行滤

DSP48E2 AREG-0

送至两个真实滤波器中,其系数分别 的差值和总和。第三个滤波器用系数

PREG

MREG BREG-0

真实滤波器的复合滤波器(其中一个

PREG

这也是 DFE 应用中使用均衡器的典型 状况。

BREG-0

BREG-1

(b)UltraScale实现方案 图4 – 在7 系列和UltraScale架构上实现复合MAC

2014年第二季度

赛灵思中国通讯

21


无线领域的出色表现

UltraScale 内存架构的优势 UltraScale 器件集成的 Block RAM 与 7 系列中集成的 Block RAM 基本相

+

同,但新架构引入了硬件数据级联方 案以及动态电源门控能力。图 6 显示

+

了该级联,其中展示的是同一列中在 每个上下相邻的 Block RAM 间嵌入的

+

数据多路复用器。因此,无需使用其 它逻辑资源便能以由下至上的方式建 立更大内存。 该级联覆盖了器件上的所有整

图5 – 复合滤波器的实现架构

列,但最好将级联的使用限制在单个 时钟区域(即 12 个连续 BRAM)以 避免时钟偏移并最大限度提升时序性 能。此外,它还提供足够的灵活性, 可支持该级联功能的不同实现。实际 上,您既可以将多路复用器应用到位 于可选寄存器前后的 Block RAM 数据 输入端,也可以用于数据输出端。 该级联使建立需要多个 BRAM 的

BRAM

大型内存成为可能,同时占用空间极

Addr

BRAM

BRAM

BRAM

Hardened Cascade

少,支持最高时钟速率以及最低功率 消耗,而这些在 7 系列器件上则无法 实现。比如,在 7 Se 系列器件上, 通过配置为 16K×2 位的八个 BRAM (36K)实现存储 16 位数据的 16K 内 存,以避免外部数据复用,而这样则 需要增加逻辑资源和延迟,并会影响 计时与布线拥塞。从动态功率角度来 说,这种方法效率较低,因为在所有 读取或写入操作中都要启动这八个 Block RAM。最佳解决方案包括使 用 2Kx16 位配置,由于这样只需启 动一个 BRAM,因此消耗的动态功 率只有上述方法的八分之一。级联功 能连同动态功率门控功能正好可以在 UltraScale 器件上实现这种效果。 Block RAM 级联的另一种直接 图6 – UltraScale器件上的BRAM级联

22

赛灵思中国通讯

应用与实现 I/Q 数据转换功能有关, BRAM 通常与 DFE 系统的基带 CPRI 接口集

2014年第二季度


无线领域的出色表现

成。图 7 展示了通常由一个 NxM 存 储器阵列组成的高级交换架构。N 入

来架构而打造的新一代架构” 3.

赛灵思数据手册 DS890,2014 年

口流上的连续数据会根据其输出目的

2 月 6 日,“UltraScale 架构和产

地写入到相应的 Block RAM 中并形成

品简介”

一行,且会从相应的 Block RAM 以一

4.

如欲了解有关 20nmUltraScale

5.

6.

2015 年 5 月 14 日,中国北京 - All

“Vivado 设计套件的设计方法指

Programmable 技术和器件的全球领先企业赛

南”

灵思公司(Xilinx, Inc. (NASDAQ:XLNX))今

赛灵思白皮书 WP445,2014 年

天宣布首批 Virtex ® UltraScale TM VU095 All

1 月 2 0 日 ,“ 采 用 赛 灵 思 A l l

参考文献

高速无线电设计”

赛灵思背景资料,2013 年 7 月, “推出 UltraScale 架构 :业界首款

7.

赛灵思白皮书 WP435,2013 年 8 月, “赛灵思 UltraScale :为您未

赛灵思用户指南 UG579, “ U l t r a S c a l e 架 构 —— D S P

ASIC 级 All Programmable 架构” 2.

高质量高端产品

赛灵思用户指南 UG949,

Programmable FPGA 和 SoC 实现 1.

Virtex UltraScale 带来了领先竞争对手整整一代的

力的九大理由”

系列的更多信息,敬请访问 china. xilinx.com/products/silicon-devices/ fpga/index.htm

将业界唯一 20nm 高端产品系列 单芯片应用扩至 500G

“Vivado 设计套件加速设计生产

列的形式读取 M 出口流。因此,可以 用 BRAM 级联有效实现每一列。

赛灵思背景资料,2013 年 7 月,

Xilinx 首批 Virtex UltraScale FPGA 发货

Slice,高级规范用户指南” 8.

IEEE 计算机社团,2008 年 8 月 29 日, “针对浮点架构的 IEEE 标准”

Programmable FPGA 已经开始向客户发货,并 将业界唯一 20nm 高端产品系列扩展至单芯片 400G 和 500G 应用。Virtex UltraScale VU095 器件可为有线通信、测试测量、航空航天与军 用以及数据中心等多种不同应用带来前所未有 的高性能、系统集成度和带宽。此外,赛灵思 还新增加了 Virtex UltraScale 系列另一款器件 VU190 FPGA,该器件集成有近 200 万个逻辑 单元,超过 130Mb 的片上 RAM 容量,超过 1000 个并行 I/O 引脚数,而且还拥有多达 120 个串行收发器。

CTRL Bus

Virtex UltraScale ASIC 级系列产品利用 FPGA 和为客户带来领先一代产品价值的量产

CTRL BRAM

质量级 3D IC 技术,为业界提供了唯一可将系

CTRL BRAM

统级性能和集成度提升 2 倍以上,并将功耗降 低多达Ingress 50% 1的可编程方案。

Ingress 1

Virtex UltraScale 系列产品与 Vivado ® 设 DATA

CTRL Bus 化,可以在不降低性能的同时, 大幅提升生产 DATA

1R1W BRAM

DATA

ADDR

DATA

1R1W BRAM

DATA

ADDR

计套件和 UltraFast TM 设计方法进行了协同优

系列内含 32.75 Gb/s 芯片对芯片、芯片至光纤 和 28G 背板收发器,并采用多个集成式 ASIC

MUX

MUX

力、可预测性,并实现出色的器件利用率。该

级 100G 以太网和 150G Interlaken 内核。赛灵

Ingress 2

思 SmartCORE TM 和 LogiCORE TM 解决方案提

MUX

丰富的功能构建块要求。UltraScale 20nm 器件 DATA

1R1W BRAM

DATA

ADDR

DATA

DATA

ADDR

供了业经验证的 IP 核,能满足 UltraScale 设计 1R1W BRAM

同时也可以无缝移植至未来的 UltraScale 16nm FinFET 器件。

MUX

赛灵思 FPGA 产品管理高级总监 Dave Myron 指出 : “随着 VU095 器件的发货,客 户 可 以立 即 着 手 实现 要 求最 严 苛的 设计 。而

Egress 1

Egress 2

Virtex UltraScale VU190 FPGA 更是创立了一个 突破性的技术里程碑,它使得我们的客户能够

图7 – 数据交换高级架构

2014年第二季度

推出高集成度、超高性能的系统,可比市场上 其它其它同类方案领先整整一代。” 赛灵思中国通讯

23


工业领域的出色表现

利用XilinxFPGA和分 解器数字转换器简化 角度测量

角度传感器在与 FPGA 正确配合下能 够帮助工程师打造出无与伦比的机械。

24

赛灵思中国通讯

2014年第二季度


分 化

工业领域的出色表现

作者:N. N. Murty Scientist “F” S. B. Gayen Scientist “F” Manish Nalamwar Scientist “D” nalamwar.manishkumar@rcilab.in K. Jhansi Lakshmi, 技术官“C” 印度海德拉巴印度国防研究发展组 织IMARAT研究中心雷达导引头实 验室

从人类发明了转轮,我们就希望了解如何通过 改变精度提高转轮转动效率。在过去几个世 纪,科学家和工程师已经研发了许多方法来

实现此目标,期间轮 - 轴系统的基本原理得到了广泛应 用,从汽车、音量旋钮、各种机械形式的齿轮到简陋的 手推车,几乎每种机械系统均采用了这一原理 [1]。 经过多个时代的探索,人们发现让转轮高效运转的 最重要因素并非转轮本身(为何不彻底改造它呢?), 而是转轮的轴角。目前测量和优化轴角的最有效方法是 采用角度传感器。现有许多种角度传感器都能够通过 轮轴监控和改进促进轮周效率优化 ;但如果配合使用 FPGA,您就能够取得非常显著的效果,同时能够提高 众多应用中的轮轴 / 轮周效率。 在详细介绍工程师们如何最佳利用赛灵思 FPGA 达 到上述目的之前,先让我们简单回顾一下角度传感器的 部分基本原理。目前得到广泛应用就是编码器和分解器 这两类角度传感器。 编码器和分解器的类型 编码器分为增量和绝对两个基本类别。增量编码器可以 监控轮轴上的两个位置,并且可以在轮轴每次经过这两 个位置时产生 A 或 B 脉冲。独立的外部电动计数器然后 从这些脉冲解读出转速和旋转方向。虽然适用于众多应 用,但是增量式计数器确实存在某些不足。例如,在轮 轴停转情况下,增量编码器在开始运行之前必须首先通 过调回到某个指定校准点来实现自身校准。另外,增量 式计数器易受到电气干扰的影响,导致发送到系统的脉 冲不准确,进而造成旋转计数错误。不仅如此,许多增

RESOLVER WINDINGS R2转子

R4

定子 S4

S2

©

定子

S1

S3

图1 – 分解器转子激励 2014年第二季度 2014ᑈ㄀Ѡᄷᑺ

赛灵思中国通讯

25


工业领域的出色表现

量编码器属于光电器件 – 如果对目标应用有影响,则无法

压器,分解器可以提供信号隔离以及对电气干扰的自然

用于辐射危险区域。

共模抑制。除了这些特性之外,分解器只需要四根线就

绝对编码器是监控轮轴旋转计数和方向的传感器系 统。在基于绝对编码器的系统中,用户一般把转轮连接到 具有电触头或光电基准的轮轴。在轮轴运行时,基于绝对 编码器的系统会记录旋转和运行方向,同时产生易于转

可进行角数据传输,这使其能够适用于从重工业、微型 系统到航空航天工业等各种应用。 无刷分解器得到了进一步改进,其无需与转子的滑环 连接。因此,这种分解器更可靠,而且使用寿命更长。

换成代码(最常见的是二进制码或格雷码)的并行数字输

分解器采用两种方式获取与轴角相关的输出电压。在

出。绝对编码器的优势在于只需要校准一次(一般是在工

第一种方式中,如图 1 所示的转子绕组由交变信号激励,

厂中校准),而无需每次使用前都校准。此外,绝对编码

而输出来自两个定子绕组。由于定子是以机械方式定位到

器一般比其它编码器更可靠。不过,绝对编码器一般很昂

正确角度,因此输出信号幅度是通过轴角的三角正弦和余

贵,而且它们不利于进行并行数据传输,尤其是在测量其

弦关联。正弦与余弦信号均具有与原始激励信号相同的相

读数的电子系统距离编码器较远情况下。

位 ;仅其幅度随轮轴的旋转通过正弦与余弦进行调制。

分解器就其本身而言是一种旋转变压器 —— 一种输

在第二种方式中,定子绕组由相位正交的交变信号

出电压与其所监控的输入轴角唯一关联的模拟器件。它

激励。然后在转子绕组中感应电压。绕组的幅度和频率固

是一款具有 0o~360o 旋转角度的绝对位置传感器,其直接

定,但其相移随轴角变化。

连接到轮轴并报告转速和位置。分解器与编码器相比有

分解器可以放置到需要测量角度的位置 [2]。而电子

诸多优势。分解器非常稳健可靠,能够经受带有灰尘、

装置一般指的是分解器数字转换器(RDC),可以放置到

油污、极端温度、振动和辐射的严酷环境。作为一种变

需要测量数字输出的位置。分解器的模拟输出(含有轮轴

转子基准

余弦 乘法器 定子

检测器

输入 正弦 乘法器

误差 积分器

递增 / 递减 计数器

速度 数字角度

锁存器 当误差 =0

图2 – 分解器数字转换器(RDC)方框图 26

赛灵思中国通讯

2014年第二季度


工业领域的出色表现

角位置信息)然后经 RDC 转换成数字形式

V sinωt sinθ cosψ. 方程 3

典型 RDC 的功能

数字角度 ψ 另外还应用到正弦乘法器,乘以 V2 得出

一般而言,分解器的两个输出会应用到 RDC 的正弦与余 弦乘法器 [3]。这些乘法器结合正弦和余弦查找表以及函 数构成乘法数模转换器。图 2 显示了其功能。 暂且假设开始时递增 / 递减计数器的当前状态是一个 代表试验角度 (trial angle)ψ 的数值。转换器设法调整数字 角度 ψ,使其一直等于并跟踪所测量的模拟角度 θ。

下式 : V sinωt cosθ sinψ. 方程 4 这两个信号由误差放大器相减求得出波形的误差信号 : (V sinωt sinθcosψ – V sinωt cosθ sinψ) 方程 5

分解器的定子输出电压为 :

V sinωt (sinθ cosψ- cosθ sinψ) 方程 6

V1= V sinωt sinθ 方程 1 V2= V sinωt cosθ 方程 2

根据三角恒等式,其简化为 :

其中 θ 是分解器转子的角度。数字角度 ψ 应用到余弦乘法

V sinωt [sin (θ -ψ)] 方程 7

器,其余弦乘以 V1 得出下式 :

检测器采用分解器的转子电压作为基准同步解调此

基准调节器 位检测器 “S”选项综合基准

输入选项

控制变压器

解调器

增益 滞后

14/16 位递增 / 递减计数器

积分器

VCO 与时序

DC/DC 转换器

47μf

数据锁存器

外部电容

图3 – SD-14620方框图(单信道) 2014年第二季度

赛灵思中国通讯

27


工业领域的出色表现

四线组振荡器

图4 – OSC-15802基准振荡器方框图

AC 误差信号。这会产生与 sin (θ-ψ) 成正比的 DC 误差信

由于其大小、成本、精度与多功能性,此转换器适用于高

号。

性能军用、商用及位置控制系统。 DC 误差信号馈送到积分器,其输出驱动一个由电压

器件的运行需要一个 +5V 电压。转换器有两个对模

控制的振荡器。而 VCO 会导致递增 / 递减计数器按正确方

拟地为 ±4V 电压范围的速度输出(VEL A、VEL B),可

向计数,从而在一次计数中产生 :

用于替代转速计。为两条信道(/BIT A 与 /BIT B)提供两

sin (θ-ψ)→0. 方程 8

个内置测试输出,以指示信号丢失(LOS)。 此转换器由三大部分组成 :输入前端、误差处理器 和数字接口。前端对于同步器、分解器和直接输入端有所

当取得此结果,则 : 方程 9

θ -ψ→0,

分解器输入,而正弦与余弦电压跟随器用于直接输入端。 这些放大器可以馈送高精度控制变压器(CT)。CT 的另 一个输入是 16 位数字角度 ψ,其输出是两个输入之间的

因此, 方程 10

不同。电子 Scott-T 用于同步器输入,分解器调节器用于

θ=ψ

因此,计数器的数字输出 ψ 代表着角度 θ。锁存器 可以在不中断回路跟踪情况下实现此数据向外部的传输。 此电路等效于 2 型伺服回路,因为它实际上有两个积 分器。一个是累计脉冲的计数器 ;另一个是位于检测器输 出端的积分器。在具有恒定旋转速度输入的 2 型伺服回路 中,输出数字字连续跟随或跟踪该输入,而无需外部导出 转换。

模拟误差角度或差分角度。CT 采用放大器、交换机、逻 辑电路与电容器以查准率执行 SINθ COSψ - COSθ SINψ = Sin(θ-ψ) 的三角函数计算。 与常规精密电阻器相比,这些电容器按查准率使用, 以获得更高精度。另外,这些电容器(与运算放大器一起 用作计算元件)进行高速采样,以消除偏移和运算放大器 偏差。 DC 误差处理进行积分运算,然后得到驱动电压控制 振荡器的速度电压。此 VCO 与速度积分器结合在一起构 成递增积分器 :一种 2 型伺服反馈回路。

RDC 典型实例:SD-14621 SD-14621 是数据设备公司(DDC)生产的小型低成本 RDC。它有两条具备可编程分辨率控制功能的信道。分辨 率编程功能允许选择 10、12、14 或 16 位模式 [4]。此功 能允许低分辨率高速跟踪或者更高分辨率支持更高精度。 28

赛灵思中国通讯

基准振荡器 我们设计中采用的 OSC-15802 功耗振荡器也是 DDC 公司 提供。此器件适用于 RDC、同步器、LVDT 和感应式传感 器应用 [5]。频率与振幅输出可以分别由电容器和电阻器 2014年第二季度


工业领域的出色表现

FPGA的I/O电压为3.3V,而RDC的 电压为5V。我们采用电压收发器实现 两个器件之间的电压兼容。 编程。输出频率范围介于 400Hz~10kHz 之间,输出电压

器件驱动程序详细说明

为 7Vrms。图 4 显示了器件的方框图。

在本例中,FPGA 采用 20MHz 的外部输入时钟。此

馈送到分解器和 RDC 的振荡器输出用作基准信号。

FPGA 具有一个运行频率为 200MHz 的 PowerPC 440 硬 核。RDC 的时序图见图 6 与图 7。

VIRTEX-5 FX30T FPGA 与 RDC 接口

根据 RDC 的时序图,我们开发、测试并验证了实际

®

我们在设计中采用赛灵思 Virtex -5 FX30T FPGA [6]。

硬件的功能是否正确 [4]。器件驱动程序的实际编码包含

FPGA 的 I/O 电压为 3.3V,而 RDC 的电压为 5V。因此我

在单独的 XBD 文件中。根据时序图,我们生成了用于回

们采用电压收发器来实现这两个器件之间的电压兼容。通

路的所需延迟。在 200MHz 运行速率下进行处理时,每

过赛灵思提供的 GPIO IP 核与 FPGA 建立内部连接,如图

个计数都对应 5 纳秒的延迟。

5 所示。

器件驱动程序有三部分编码 :RDC 初始化、控制信

为了简单起见,图 5 仅显示一条具有一个分解器接口

号的生成及从 RDC 信道 A 的读取、以及控制信号的生成

的信道。您可以在本文件随附的赛灵思开发板描述(XBD) 及从 RDC 信道 B 的读取。RDC 初始化是设置信号方向 文件找到 RDC 的引脚详情以及 FPGA 对应的专用引脚。详

和缺省值的阶段。例如,利用以下语句,信号方向将设

情见该文件第一部分。

置为从 FPGA“输出”到 RDC。

分解器

收发器

基准信号

收发器

功耗振荡器 (OSC-15802)

信号链

图5 – RDC与Virtex-5 FPGA的接口(单信道)

2014年第二季度

赛灵思中国通讯

29


工业领域的出色表现

XGpio_WriteReg(XPAR_RESOLUTION_CNTRL_CH_A_ BASEADDR,XGPIO_TRI_OFFSET,0x000);

下一个语句通过写入“0x3”来设置 16 位分辨率 (即 :拉高): XGpio_WriteReg(XPAR_RESOLUTION_CNTRL_CH_A_ BASEADDR,XGPIO_DATA_OFFSET,0x03);

图 8 为编码截屏。注 :为了简化,我们仅提供一条 信道的编码。 我们已经看到,角度传感器可以帮助工程师创造更 好的转轮,进而设计出众多更高效的机械装置。分解器 是一种尤为有用的角度传感器,只要能够与 FPGA 正确 配合和控制,其就能够帮助工程师打造出无与伦比的机 械装置。

参考资料 1.

数据设备公司“同步器 / 分解器转换手册”。

2.

John Gasking,“分解器数字转换器 :光电轴角编码器简单 低成本替代方案”AN-263, 美国模拟器件公司

3.

Walt Kester,“分解器数字转换器”MT-030, 美国模拟器件 公司

4.

数据设备公司 SD-14620 系列数据手册。

5.

数据设备公司 OSC-15802 数据手册。

6.

赛灵思 Virtex-5 系列简介

seXGpio_WriteReg(XPAR_INHIBIT_CH_A_ BASEADDR,XGPIO_DATA_OFFSET,0x01); for(i=0;i<=5;i++); //gives delay of 25 ns XGpio_WriteReg(XPAR_ENABLE_LSB_ CH_A_BIT_BASEADDR,XGPIO_DATA_OFFSET,0x01); for(i=0;i<=5;i++); XGpio_WriteReg(XPAR_INHIBIT_CH_A_ BASEADDR,XGPIO_DATA_OFFSET,0x00); for(i=0;i<=2;i++); XGpio_WriteReg(XPAR_ENABLE_LSB_CH_A_BIT_ BASEADDR,XGPIO_DATA_OFFSET,0x00); for(i=0;i<=2;i++); lsb_val=XGpio_ReadReg(XPAR_RDC_DATA_15_ TO_0_PINS_BASEADDR,XGPIO_DATA_OFFSET); XGpio_WriteReg(XPAR_INHIBIT_CH_A_ BASEADDR,XGPIO_DATA_OFFSET,0x01); for(i=0;i<=5;i++); XGpio_WriteReg(XPAR_ENABLE_LSB_CH_A_BIT_ BASEADDR,XGPIO_DATA_OFFSET,0x01); for(i=0;i<=25;i++); XGpio_WriteReg(XPAR_INHIBIT_CH_A_ BASEADDR,XGPIO_DATA_OFFSET,0x01); for(i=0;i<=5;i++); XGpio_WriteReg(XPAR_ENABLE_MSB_CH_A_BIT_ BASEADDR,XGPIO_DATA_OFFSET,0x01); for(i=0;i<=5;i++); XGpio_WriteReg(XPAR_INHIBIT_CH_A_ BASEADDR,XGPIO_DATA_OFFSET,0x00); for(i=0;i<=2;i++); XGpio_WriteReg(XPAR_ENABLE_MSB_CH_A_BIT_ BASEADDR,XGPIO_DATA_OFFSET,0x00); for(i=0;i<=2;i++); msb_val=XGpio_ReadReg(XPAR_RDC_DATA_15_ TO_0_PINS_BASEADDR,XGPIO_DATA_OFFSET);

INHIBIT 500 ns max

lsb_val=lsb_val & 0x00ff; DATA VALID

DATA

msb_val=msb_val & 0xff00; rdccount_cha = msb_val | lsb_val;

图6 – INHIBIT时序

XGpio_WriteReg(XPAR_INHIBIT_CH_A_ BASEADDR,XGPIO_DATA_OFFSET,0X01); for(i=0;i<=5;i++);

EM OR EL 150 ns MAX 100 ns MAX DATA

HIGH Z

DATA VALID

图7 – ENABLE时序

30

赛灵思中国通讯

XGpio_WriteReg(XPAR_ENABLE_MSB_CH_A_ BIT_BASEADDR,XGPIO_DATA_OFFSET,0x01); for(i=0;i<=20;i++);

HIGH Z

图8- RDC器件驱动程序编码截屏

2014年第二季度


业界首款 All Programmable SoC


工业领域的出色表现

借助MATLAB 将马达驱动 迁移至 Zynq SoC设计 作者:Tom Hill 赛灵思公司DSP解决方案高级经理 tom.hill@xilinx.com

工业设计人员可以利用 快速原型与基于模型的 设计将马达控制算法移 至Zynq SoC环境。

32

赛灵思中国通讯

2014年第二季度


工业领域的出色表现

20 世纪 90 年代以来,马达驱动 开发人员一直采用多芯片架构 实施马达控制与处理需求。

在这种架构中,离散数字信号处 理 (DSP) 芯片负责执行马达控制算法, FPGA 实施高速 I/O 与网络协议,离散型 处理器负责处理执行控制。然而,随着赛 灵思 ® Zynq®-7000 All Programmable SoC 的问世,设计人员已经找到了能将这些功 能组合到单个器件的方法,而且还可以集 成其它处理任务。减少部件数量与复杂性 不仅可以降低系统成本,而且还能提升系 统性能与可靠性。 但是,驱动开发人员如何才能够改变 自己长期形成的设计实践,转而采用 Zynq SoC 呢? 长期以来,工业设计人员一直采用基 于模型的设计,通过仿真和 C 代码生成, 在 DSP 芯片上研发定制马达算法。 如今,赛灵思与 MathWorks 合作开发 了一种全新工作流程 —— 将基于模型的设 计扩展至可用 Zynq-7000 All Programmable SoC 的处理系统和可编程逻辑。 针对马达控制的 ZYNQ SOC 如今,先进的马达控制系统都属于控制算 法与工业网络的组合,包括 EtherCAT、 Profinet、Powerlink 以及 Sercos III,其能 够从计算资源中提取处理带宽。此外,控 制系统现在还聚合了其它需求,其中包括 运动控制层、PLC 层、诊断层以及用户界 面,以便进行调试和保养,或远程监控。 采用与处理系统自然贴合的元件,这些需 求能转化为逻辑分组和实体分组,而其它 元件则最好适合于硬件辅助减负与加速。 您所选择的硬件平台应该提供稳健的 可扩展型系统。赛灵思 Zynq SoC 就能满 足上述需求,其配有高性能处理系统,以 支持联网、运动、soft-PLC、诊断以及远 程维护功能,并与可编程逻辑相结合,从 而加速硬件中性能临界的功能。对于处理 方面,Zynq SoC 与带有 NEON 控制处理 2014年第二季度

赛灵思中国通讯

33


工业领域的出色表现

本变量,其中包括电流和电压。控制 器同样也必须读取或确定轴的位置, 包括轴的转速和通信网络或监视控制 器的处理命令。 Simulink® 可提供用于多域系统仿 真和基于模型设计的方框图环境,其 完全适用于含有控制算法和设备模型 的仿真系统。基于广泛用于 Simulink 中对控制系统建模进行系统分析、设 计与调节的方法,MathWorks 的控制 系统工具箱等产品可提供各种各样的 “应用”。利用 Simulink 执行系统建 模,可以加快马达控制系统的开发速 度,而且还可以从以下几个方面降低 风险 : •

降低受损风险 —— 在全新控制 系统算法用于量产硬件测试之 前,仿真法可对此算法进行全面 检验,这样就可以规避硬件测试 存在损害驱动电子系统、马达以 及系统其它组件的风险。

图1--针对Zynq SoC的MathWorks工作流程,采用C代码与HDL代码生成

• 器、浮点扩展的 ARM ® Cortex TM-A9

电动驱动。其电源频率通常为 50Hz-

双核处理系统相结合,可加速软件

60Hz,经过整流后,形成连续电压(直

执行速度。对于可编程逻辑,该器

流)。然后,该连续电压转换成变频

件配有 444000 个逻辑单元和 2200

电压,可控制馈送马达终端的电功率

个 DSP48Slice,能提供大量的处理

级。此外,控制器还必须读取马达基

加快系统集成速度 —— 支持员 工需要将控制系统新算法集成至 产品系统,这意味着部署新的控 制器会消耗有限的时间,而且可 能令部署过程变得冗长。

减少对设备可用性的依赖 ——

带宽。利用五个高吞吐量 AMBA ® -4 AXI 高速互连,可编程逻辑与处理系 统紧密耦合,相当于 3000 多个 PIN

元件

的有效带宽。

处理器(每个)

表 1 列出了 Zynq SoC 器件所能实 现的处理性能。 采用 Simulink 与控制系统工具箱的

处理器 (合计)

1 GHz 5,000 个DMIP

DSP (每个)

741 MHz

DSP (合计)

2,662 个GMAC

设备与电机模型

收发器(每个)

12.5 Gbps

现代控制算法的系统时间与系统变

收发器(合计)

200 Gbps

量可跨越多个数量级,从而导致硬

软件加速

件 / 软件分组成为一项艰巨、耗时、 重复的任务。图 2 给出了一个典型的 34

性能(最高)

赛灵思中国通讯

10x 表1--Zynq SoC的处理性能 2014年第二季度


工业领域的出色表现

在有些情况下,生产环境本身并

24V BLDC 马达,同时还配有霍尔效

不可用,例如定制驱动电子系统

应传感器和 1250-CPR 索引编码器,

或马达尚在开发当中或者其所处

其中 AD-FMCMOTCON1-EBZ 模块

位置使得控制系统设计人员无法

可以驱动带有 24V 外部电源(该套

对其进行访问。

件本身带有)的无刷直流步进式马

与转速计算相位电压与变频器使

达。此外,该套件还含有 Zynq SoC

能信号。

鉴于上述因素,仿真即是利用

磁场导向控制参考设计以及包括驱动

生产硬件进行测试的最佳替代方案。

程序、应用软件与源代码的模拟器件

Simulink 等仿真环境可以提供框架,

Ubuntu Linux 框架。

以便利用机电组件既存构建模块库创

置 •

速度估计器 —— 根据传感器信 号计算转子转速

六步换向器 —— 根据转子位置

脉宽调制(PWM)—— 通过驱动 回路驱动控制器输出。 我们首先采用适用于控制环路

建装置模型,进而利用该装置模型对

实例:马达梯形控制

分析的系统行为、控制环路模型。首

新的控制系统架构进行评估。

现在让我们通过 Simulink 仿真将上述

先,我们利用仿真对模型进行评估,

将系统模型与快速原型环境以及

工作流程应用于图 1 中的马达梯形控

模型接受脉冲测试,指令模型按照 150

最终生产系统相连接,从而进一步降

制系统,通过仿真装置评估控制器,

转 / 秒的转速旋转,持续 2 秒,然后

低计划的风险。快速原型工作流程允

然后采用智能驱动套件对该控制器进

停止。通过调节控制回路的比例积分

许算法开发人员可以在不依赖硬件设

行原型设计。最后,我们利用硬件测 (PI)控制器增益,我们可以获得 1.2

计人员的情况下进行原型设计。算法

试的结果来对 Simulink 模型进行验证。

秒稳定时间,并且过冲可以忽略不计

在该实例中,我们将使用智能驱 (图 3 中紫色阴影标志即为控制环路仿

研开人员可在高度自动化过程中采用 特定平台支持包,进而将系统硬件和

动套件来驱动以铝盘形式存在的惯性

真结果 ;有关本实例的详情,敬请访

软件组件部署到可以编译为特定硬件

载荷以及基础梯形控制器。该控制器

问 mathworks.com/zidk )。

开发平台的设计模板。硬件与软件设

的主要组件如下 :

设置好控制环路增益之后,我们 现在可将控制器置于更加精准的系统

计团队可以将这些相同的硬件和软件 组价重新应用于最终生产系统之中,

霍尔效应传感器 —— 检测马达位

模型上进行测试。与控制环路模型相

无需做出任何修改即可加速研发过 程、减少失误。 采用 Avnet 智能驱动套件实现快速原型 设计人员可以将 vnet Zynq-7000 AP SoC / 模拟器件智能驱动套件与 Simulink 以及 Zynq SoC 工作流程相 结合,实现针对马达控制应用的整套 快速原型系统。该套件整合了 Zynq SoC 与最新一代模拟器件高精度数据 转换器以及数字隔离技术。该套件可 支持高性能马达控制与双端口千兆位 以太网工业联网(china.xilinx.com/ products/boards-and-kits/1-490M1P. htm)。 该套件配有 Avnet ZedBoard 7020 基板、模拟器件 AD-FMCMOTCON1EBZ 模块、额定转速为 4000RPM 的 2014年第二季度

图2——电机驱动控制器的主要时间约束 赛灵思中国通讯

35


工业领域的出色表现

图3-用于根据硬件测试结果进行验证的硬件与软件仿真模型

图4-由分割后的Simulink模型生成的C代码与HDL代码ww

36

赛灵思中国通讯

2014年第二季度


工业领域的出色表现

Xilinx 成为多核联盟 執行理事,致力于推动新兴 多核众核标准发展

比,系统模型内含更加细化的驱动电

后,我们即可进行环路中的硬件测

子系统模型,更为重要的是,系统模

试。对于此测试,我们采用经过改良

型所包含的细化模型可以指定控制器

的 Simulink 测试平台模型,我们已经

与外设实施,其中包括 PWM 与霍尔

拆除该模型中的驱动电子系统、马达

效应传感器处理过程中所使用的准确

以及传感器模型,因为我们采用了环

时序模型。

路中的硬件取代被仿真的装置模型。

中国北京,2014 年 5 月 27 日 ——

我们已针对 Zynq SoC 规划出了

为了方便我们检查测试结果,同时方

致力于制定多核标准,以加速那些包含

控制器,速度控制器与速度估计器在

便与仿真结果进行对比,我们可将

多核实现产品之上市进程的全球非营利

ARM 核上运行,频率为 1kHz,换向

Zynq SoC 设置成将马达轴速度测量以

性组织 Multicore AssociationTM(多核联

器、霍尔传感器以及 PWM 均在 Zynq

及其它数据存储于 ARM 核内存之中

盟)今天宣布,All Programmable 技术和

(图 3 中黑色阴影标志即为硬件测试结

器件的全球领先企业赛灵思公司(Xilinx,

我们可以对比控制环路和系统模

果)。这样,我们即可将结果上传至

Inc. (NASDAQ:XLNX))正式加入该组织

型的仿真结果(图 3 中红色标志即为

MATLAB session,在试验结束时将脉

并成为该机构的执行理事。

系统模型结果)。一般来说,两个波形

冲输入应用于测试平台,即可处理和

的相似度非常高,但马达速率除外,

查看结果。如此一来,我们即可在硬 “过去 25 年多来,赛灵思一直是一个半

它趋向于零。在这些点上,霍尔传感

件中准确重复我们采用仿真进行的测

导体产业的领导者,走在科技的最前

器粗糙度非常明显,而且马达轴每次

试。原型设计的测试结果与仿真结果

沿。我们期待着他们在下一代标准制定

转动只有六个标志脉冲。这种高保真

非常接近,其中包括因霍尔传感器导

中做出积极贡献。赛灵思加入多核联

系统模型 7 分钟内即可运行一次为

致马达速度实测值发生中断。

盟,特别是专注于我们新的多核众核软

SoC 可编程逻辑上运行。

多核联盟主席 Markus Levy 表示 :

时 4 秒的仿真,而对于保真较低的控

本简述证明了 MathWorks 的 Zynq

硬件接口(SHIM)标准和 MCAPI 标准,

制环路模型而言,只能运行一次为时

SoC 工作流程可应用于基于模型的设

将在多核技术设计方面提供非常全面的

7 秒的仿真。对于控制系统设计人员

计,实现仿真和原型设计。如果想继

指导和实用的见解。”

而言,其意义在于上述仿真结果可以

续深入生产,您可以将所生成的 C 代 ®

赛灵思嵌入式软件首席科学家

让我们更加坚信,控制环路模型对于

码和 HDL 代码导入 Vivado 设计套

Tomas Evensen 指出 : “赛灵思鼎力支持

进一步评估控制器替代方案来说足够

件,在该套件中您可将这些代码与执

多核联盟及其指导开放式多核众核标准

准确,无需使用系统模型进行硬件测

行程序、联网 IP 以及完整执行系统所

长期发展的使命。我们一向致力于产品

试,即可验证替代方案。

必需的其它设计组件进行整合。

创新,为客户提供价值,而且专注于开

有了这些发现,我们即可利用智

如需下载本文所述模型以及了

能驱动套件设计出控制器的原型。通

解更多有关如何利用 Zynq-7000 All

过 Zynq SoC 推荐的工作流程,我们

Programmable SoC / Avnet 模拟器件智

多核联盟正在积极制定有关系统利

可以利用 Simulink 模型生成 C 代码与

能驱动套件完成基于模型的设计,敬

用与编程方式的标准,努力推动包括赛

HDL 代码,Simulink 模型已被分割成

请访问 :mathworks.com/zidk 。您还可

灵思 Zynq®-7000 All Programmable SoC

数个特定于 ARM 核以及可编程逻辑的

以从本页浏览在 Zynq SoC 器件上执

等在内的多核处理器实现方案的广泛采

子系统(图 4)。

行完整磁场导向控制模型的 Simulink

用。作为半导体设计创新企业,赛灵思

模型,也可以观看上述实例的视频,

将帮助多核联盟推动高性能嵌入式系统

了解更多详情。

领域部署多核解决方案的相关标准发展。

我们按照上述工作流程,使用 MathWorks 的 HDL 代码生成器生成 IP

放式标准和庞大的生态系统的发展,进 而推进整个行业的协作。”

核,此 IP 核将在 Zynq SoC 器件的可

如需了解 MathWorks 产品如何

多核联盟提供三级会员标准,包括

编程逻辑中运行,以便建立在 ARM 核

为赛灵思 Zynq-7000 All Programmable

执行理事、工作组成员和大学成员。执

上运行的可执行程序,并且在 ARM 核

S o C 系 列 提 供 支 持 , 敬 请 访 问 : 行理事会明确联盟的整体发展方向,工

与可执行程序之间建立 AXI 总线接口。

mathworks.com/zynq 。

将 bit 文件加载载入可编程逻辑 以及在 ARM 核上运行可执行程序之 2014年第二季度

作组成员在联盟下设的工作组工作,而 大学成员能参加多核联盟开展的各项制 定工作。 赛灵思中国通讯

37


手 把 手 课 堂 : FPGA 10 1

如何在 Zynq SoC 上使用中断 作者:Adam P. Taylor e2v技术公司工程系统部负责人 aptaylor@theiet.org

38

赛灵思中国通讯

2014年第二季度


手 把 手 课 堂 : FPG A 101

实时计算经常要求中断针对 事件快速做出响应。只要掌 握Zynq SoC中断结构的工作 原理,就不难设计出中断驱 动型系统。

嵌入式处理中,中断表示暂时 停止处理器的当前活动。处理 器会保存当前的状态并执行中

断服务例程,以便对引起中断的原因进 行寻址。中断可能来自下列三个地方之 一: •

硬件 – 直接连接处理器的电子信号

软件 – 处理器加载的软件说明

异常情况 – 发生错误或异常事件时 处理器出现的异常情况 无论中断的来源在何处,都可将中

断的类别归为可屏蔽和不可屏蔽两种。 您可通过在中断掩码寄存器中设置相应 的位来安全地忽略可屏蔽中断。但不能 忽略不可屏蔽中断,因为这类中断通常 用于定时器和看门狗监控器。 中断的触发既可以是边缘触发也 可以是水平触发。我们将在后面部分看 到,赛灵思 Zynq®-7000 All Programmable SoC 支持中断的这两种配置方式。 为什么使用中断驱动方案? 实时设计通常要求采用中断驱动方案, 因为众多系统都会有很多输入单元(如 键盘、鼠标、按钮、传感器以及类似设 备等)偶尔需要处理。这些设备的输入 单元通常会被异步至当前正在执行的进 程或任务,因而用户不可能始终准确预 测事件的发生时间。 使用中断,处理器能继续进行处理, 直到事件发生,这时处理器便可处理这一 事件。此外,与轮询方案相比,中断驱动 方案对事件的响应时间更短,在中断驱动 方案中,程序会以同步的方式主动对外部 设备的状态进行采样。 Zynq SoC 的中断结构 随着处理器技术不断进步,中断的来源 也多种多样。如图 1 所示,Zynq SoC 可 2014年第二季度

赛灵思中国通讯

39


手 把 手 课 堂 : FPG A 1 0 1

I/O SPI外设 0 SPI 1 I2C 0 I2C1 CAN 0 CAN 1 UART 0 UART 1 GPIO SD 0 SD1 USB 0 USB 1 ENET 0 ENET 1

Bank0 MIO (15:0)

I/O MUX (MIO)

Bank1 MIO (53:15)

通用设置

SWDT TTC

应用处理器单元(APU) ARM Cortex™-A9 CPU

• • •

ARM Cortex™-A9 CPU

系统级控制 寄存器 GIC

窥探控制单元 DMA8 通道

512KB L2 高速缓存与控制器 OCM Interconnect

CoreSight 组件

中央互联

256 KB SRAM

DAP

FLASH 存储器接口 SRAM/NOR NAND QUAD SPI

存储器接口 DEVC

到存储器互联点的可 编程逻辑 SMC 时序计算 Calulation

扩展 MIO (EMIO)

PS-PL 时钟端口

32b GP AXI 主系统 端口

32b GP AXI 从系统 端口

DMA 通道

DR2/3,LPDDR2 控制器

12 13 14 15 8 9 10 11 4 5 6 7 0 1 2 3

DMA 同步

时钟生成

复位

64b AXI ACP 从系统 端口

处理系统 (PS)

IRQ

高性能 AXI 32b/64b 从系统端口

配置 AES/ SHA

XADC

可编程逻辑 (PL) 图1 – 红圈显示的是通用中断控制器。

使用通用中断控制器(GIC)来处理中断。GIC 可处理源

1.

将中断显示为挂起 ;

自以下方面的中断 :

2.

处理器停止执行当前线程 ;

3.

处理器在协议栈中保存线程状态,以便在中断处理后

软件生成的中断 – 每个处理器有 16 个此类中断,能 ®

够中断一个或两个 Zynq SoC 的 ARM CortexTM-A9

继续进行处理 ; 4.

处理器内核 ; •

共享外设中断 – 共计 60 个,这些中断来自 I/O 外围 设备,或往返于设备的可编程逻辑(PL)侧。Zynq

处理器执行中断服务例程,其中定义了如何处理中 断;

5.

在处理器从协议栈恢复之前,被中断的线程继续运 行;

SoC 的两个 CPU 共享这些中断 ; •

专用外设中断 – 这种类型中包含的 5 个中断对每个

中断属于异步事件,因此可能同时发生多个中断。为

CPU 都属于专用中断,比如 CPU 定时器、CPU 看门

了解决这一问题,处理器会对中断进行优先级排序,从而

狗监视器定时器以及专属 PL 至 CPU 中断。

首先服务于优先级别最高的中断挂起。 为了正确实现这一中断结构,需要编写两个函数 :一

40

共享外设中断非常有趣,因为它们非常灵活。可将它

是中断服务例程,用于定义中断发生时的应对措施 ;二是

们从 I/O 外设(共 44 个中断)或 FPGA 逻辑(共 16 个中

用于配置中断的中断设置。中断设置例程可重复使用,允

断)路由至两个 CPU 中的一个,但也可以将中断从 I/O 外

许构建不同的中断。该例程适用于系统中的所有中断,将

设路由至设备的可编程逻辑侧,参见图 2。

针对通用 I/O(GPIO)设置和使能中断。

在 Zynq SoC 上处理中断

如何在 SDK 中使用中断

在 Zynq SoC 中发生中断时,处理器会采取以下措施 :

可使用赛灵思软件开发套件(SDK)中的独立板支持包

赛灵思中国通讯

2014年第二季度


手 把 手 课 堂 : FPG A 101

(BSP)在物理硬件上支持并实现中断。BSP 具备众多功

GPIO,以便在按下按钮后生成中断。为了设置中断,我

能,可显著降低创建中断驱动系统的任务难度。它们位于

们需要两个静态全局变量以及上述定义的中断 ID 来执行

带有以下报头的文件中 :

以下操作 :

static XScuGic Intc; // Interrupt Controller Driver static XGpioPs Gpio; //GPIO Device

Xparameters.h – 该文件包含处理器的地址空间和设备 ID ;

• •

Xscugic.h – 该文件包含配置驱动程序以及 GIC 的使

在中断设置功能中,我们需要初始化 Zynq SoC 异

用范围 ;

常 ;配置并初始化 GIC ;并将 GIC 连接到中断处置硬件。

Xil_exception.h – 该文件包含 Cortex-A9 的异常函数。

Xil_exception.h 和 Xscugic.h 文件可提供完成这一任务所 需的函数。结果生成以下代码 :

为了对硬件外设进行寻址,我们需要知道想要使用的 设备(也就是 GIC)的地址范围和设备 ID,这些信息大 多位于 BSP 报头文件 xparameters 下。但是 xparameters_ ps.h(无需在您的源代码中申报该报头文件,因为它包 含在 xparameters.h 文件中)提供了中断 ID。我们可在 源文件中使用这个标记有中断的“ID”(GPIO_Interrupt_ ID),使用方式如下 : #define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID #define INTC_DEVICE_ID XPAR_SCUGIC_SINGLE_DEVICE_ ID #define GPIO_INTERRUPT_ID XPS_GPIO_INT_ID

在这个简单的例子中,我们将配置 Zynq SoC 的

//GIC config XScuGic_Config *IntcConfig; Xil_ExceptionInit(); //initialize the GIC IntcConfig = XScuGic_LookupConfig(INTC_DEVICE_ ID); XScuGic_CfgInitialize(GicInstancePtr, IntcConfig, IntcConfig->CpuBaseAddress); //connect to the hardware Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_ INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler, GicInstancePtr);

当配置 GPIO 以使其在同一中断配置例程中发挥中断

图2 – 这些是处理系统与可编程逻辑之间可用的中断。 2014年第二季度

赛灵思中国通讯

41


手 把 手 课 堂 : FPG A 1 0 1

功能时,我们能够配置内存库或单个引脚。我们可通过使 用在 xgpiops.h 中提供的函数来完成这项任务,比如 : voi d XGpioPs_IntrEnable(XGpioPs *InstancePtr, u8 Bank, u32 Mask); voi d XGpioPs_IntrEnablePin(XGpioPs *InstancePtr, int Pin);

当然,您还需要正确配置中断。例如,您希望采用边 缘触发或水平触发吗?若答案为是,那么采用这个函数能

}

//wait {}

专有定时器举例 Zynq SoC 拥有许多可用的定时器和看门狗监视器。它们既 可作为一个 CPU 的专用资源也可作为两个 CPU 的共享资 源。如需在您的设计中高效利用这些组件,则需要中断。 这些定时器和看门狗监视器包括 :

实现何种边缘和水平呢? void XGpioPs_SetIntrTypePin(XGpioPs *InstancePtr, int Pin, u8 IrqType);

在这里,xgpiops.h 中五个定义中的其中一个可对 IrqType

半计时

配合使用,能驱动各个 CPU 的专用中断) •

能将这个配置分为四个 Bank,每个 Bank 容纳 32 个引脚。 此外,这项设置功能还将定义中断服务例程,发生中 断时,可用以下函数调用该例程 : XGpioPs_SetCallbackHandler(Gpio, (void *)Gpio, IntrHandler);

42

系统看门狗监视时钟(WDT),可通过 CPU 时钟或 外部来源进行计时

一对三重定时器计数器(TTC),每个包含三个独立 定时器。在可编程逻辑中,可通过 CPU 时钟或来自 MIO 或 EMIO 的外部来源对 TTC 进行计时。

能中断的单个引脚或多引脚位于哪个 Bank 上。Zynq SoC 引脚)都会与 EMIO(64 个引脚)一起被用作 GPIO。我们

共享 64 位全局定时器(GT),以 CPU 频率的一半计 时(每个 CPU 都有其自己的 64 位比较器 ;它与 GT

如果您决定使用 Bank 使能,那么您需要知道您希望使 最多支持 118 个 GPIO。在这种配置下,所有 MIO(54 个

CPU 32 位看门狗监视器(SCUWDT),以 CPU 频率 的一半计时

定义。这五个定义是 : #defi ne XGPIOPS_IRQ_TYPE_EDGE_RISING 0 /**< Interrupt on Rising edge */ #defi ne XGPIOPS_IRQ_TYPE_EDGE_FALLING 1 /**< Interrupt Falling edge */ #defi ne XGPIOPS_IRQ_TYPE_EDGE_BOTH 2 /**< Interrupt on both edges */ #defi ne XGPIOPS_IRQ_TYPE_LEVEL_HIGH 3 /**< Interrupt on high level */ #defi ne XGPIOPS_IRQ_TYPE_LEVEL_LOW 4 /**< Interrupt on low level */

CPU 32 位定时器(SCUTIMER),以 CPU 频率的一

为了通过可用的定时器和看门狗监视器获得最大优 势,我们需要使用 Zynq SoC 中断。其中配置最简单的就是 专有定时器。和 Zynq SoC 的大多数外设一样,该定时器带 有很多预定义的函数和宏指令,能帮助您高效使用这一资 源。这些函数和宏指令位于 : #include “xscutimer.h”

这个文件中的函数(宏指令)能够提供许多功能,包

中断服务例程的繁简程度由其应用定义。在该例中,

括初始化和自测试等。此外,文件中的函数还能启动和停

每按一次按钮,它便会触发一个 LED,打开和关闭这个

止定时器并对其进行管理(重启 ;检查是否过期 ;加载定

LED。另外,在每次按下按钮时,中断服务例程还会向控

时器 ;使能 / 禁用自动加载)。它们的另一项工作就是设

制台打印一条信息。

置、使能、禁用、清除和管理定时器中断。最后,这些函

static void IntrHandler(void *CallBackRef, int Bank, u32 Status) { int delay; XGpioPs *Gpioint = (XGpioPs *) CallBackRef; XGpioPs_IntrClearPin(Gpioint, pbsw); printf(“****button pressed****\n\r”); toggle = !toggle; XGpioPs_WritePin(Gpioint, ledpin, toggle); for( delay = 0; delay < LED_DELAY; delay++)

数还能获取并设置预分频器。

赛灵思中国通讯

定时器本身通过以下四个寄存器来控制 : •

专用定时器加载寄存器 – 可将该寄存器用于自动重新加 载模式,包含在使能自动重新加载时被重新加载到专 用定时器计数器寄存器中的数值。

专用定时计数寄存器 (Private Timer Counter Register) – 这 是真实计数器本身。使能后,一旦寄存器达到零,则 2014年第二季度


手 把 手 课 堂 : FPG A 101

会设置中断事件标志。 •

专用定时器控制寄存器 – 控制寄存器可使能或禁用定 时器、自动重新加载模式以及中断生成,还包含定时 器的预分频器。

专用定时器中断状态寄存器 – 该寄存器包含专用定时 器中断状态事件标志。

发生中断时,需要调用 TimerIntrHandler 函数,这时必

就使用 GPIO 而言,设置定时器所需的定时器设备 ID 和定时器中断 ID 都包含在 XParameters.h 文件中。在 本例中,我们将使用先前开发的按钮中断。当按下按钮 时,定时器将加载并开始运行(采用非自动重新加载模 式)。一旦定时器过期,将生成能通过 STDOUT 输出一 条消息的中断。然后清除该中断,以便等待下一次按下 按钮。在本例中,将始终向计数器加载相同的数值 ;因 此,在文件顶部的公告中公布了定时器计数值,如下所 示: #define TIMER_LOAD_VALUE

//set up the timer interrupt XScuGic_Connect(GicInstancePtr, TimerIntrId, (Xil_ExceptionHandler)TimerIntrHandler, (void *)TimerInstancePtr); //enable the interrupt for the Timer at GIC XScuGic_Enable(GicInstancePtr, TimerIntrId); //enable interrupt on the timer XScuTimer_EnableInterrupt(TimerInstancePtr);

0xFFFFFFFF

下一步是配置和初始化专用定时器并在其中加载定 时器计数值。 //timer initialisation TMRConfigPtr = XScuTimer_LookupConfig (TIMER_DEVICE_ID); XScuTimer_CfgInitialize(&Timer, TMRConfigPtr,TMRConfigPtr->BaseAddr); //load the timer XScuTimer_LoadTimer(&Timer, TIMER_LOAD_VALUE);

此外,我们还需要更新中断设置子例程,从而将定 时器中断连接至 GIC 并使能定时器中断。

须在 GIC 上以及定时器本身使能定时器中断。 定时器中断服务例程非常简单。它仅需清除挂起的中 断,并通过 STDOUT 输出一条消息,如下所示 : static void TimerIntrHandler(void *CallBackRef) { XScuTimer *TimerInstancePtr = (XScuTimer *) CallBackRef; XScuTimer_ClearInterruptStatus(TimerInstanceP tr); printf(“****Timer Event!!!!!!!!!!!!!****\ n\r”);

完成该操作后,最后还要修改 GPIO 中断服务例程,从 而在每次按下按钮后启动定时器,如下所示 : //load timer XScuTimer_LoadTimer(&Timer, TIMER_LOAD_VALUE); //start timer XScuTimer_Start(&Timer);

首先,我们要将定时器值加载到定时器中,然后调用 定时器启动函数。现在,我们能够再次清除按钮中断并恢 复处理,如图 3 所示。 在开始着手设计中断驱动系统时,很多工程师都会心 生畏惧。但是,Zynq SoC 架构以及通用中断控制器(与配 备 SDK 的驱动器相结合)可帮助您快速、高效地启动和运 行中断驱动系统。

图3 – GPIO与定时器中断事件输出的界面示例。 2014年第二季度

赛灵思中国通讯

43


手 把 手 课 堂 : FPGA 10 1

如何利用FPGA计 算数学复变函数 作者:Adam P. Taylor 工程-系统负责人 e2v技术公司 aptaylor@theiet.org

44

赛灵思中国通讯

2014年第二季度


手 把 手 课 堂 : FPG A 101

由 FPGA的最大优势之一是您 能够利用其嵌入式DSP模块 解决最棘手的数学传递函 数。多项式近似法就是此方 面的良方。

于其灵活性与高性能, FPGA 已经在众多需要计算 复杂数学题或传递函数的

工业、科研、军事及其它应用中找到 用武之地。苛刻的精度要求与计算时 延在更关键的应用中并不少见。 在采用 FPGA 实现数学函数时, 工程师一般选择定点数学(参见 :赛 灵思中国通讯第 45 期的《FPGA 数 学运算的基础知识》。另外,您还可 以采用 CORDIC 等许多算法计算超 越函数(参见 :赛灵思中国通讯第 44 期的《如何在 FPGA 中运用 CORDIC 算 法 》, h t t p : / / c h i n a . x i l i n x . c o m /

publications/archives/xcel l/Xcell79. pdf )。 不过,在遇到极为复杂的数学 函数时,与在 FPGA 之中实现精确 需求函数相比,还有更高效的方法 进行处理。为了理解这些变通方法 – 尤其是其中的多项式近似法,我 们首先需要定义相关问题。 设置问题 FPGA 中负责监控铂电阻温度计 ( P RT ) 并 把 P RT 电 阻 转 换 成 温 度 的复杂数学传递函数就是这样一个 例子。这种转换一般采用 CallendarVan Dusen 方程实现。通过以下该方 程的简化形式,可以确定温度介于 0 o

C~660 oC 之间。.

式中,R 0 为 0 oC 时的电阻,a 与 b 是 PRT 的系数,而 t 则是温度。 现实中,我们希望从电阻转换 到温度。为此,我们需要调整该方 程,确保得出的结果是给定电阻下的 温度。大多数采用 PRT 的系统都会 设计电子装置、采用电子电路测量

2014年第二季度

赛灵思中国通讯

45


手 把 手 课 堂 : FPG A 1 0 1

Temperature vs. Resistance 温度与电阻 900,000 800,000 700,000

Temperature

600,000 500,000 400,000 300,000 200,000 100,000 0.0000 100

150

200

250

300

350

400

Resistance 图1 – 传递函数图

PRT 的电阻,然后利用 FPGA、通过 调整后的下式计算温度。

LUT 所含点之间的线性插值。

不过,这些 Slice 还提供 25 x 18 位宽

根据相关精度要求和保存在查找

乘法器、加 / 减功能以及众多其它功

表中的元素数量,这种方法有可能满

能。您可以利用这些内部 RAM 结构

足需求。但是,您仍然需要在设计中

和 DSP Slice 更轻松实现传递函数。

包含线性插值函数。此函数在数学上 在 FPGA 中实现此方程即使是 经验丰富的 FPGA 工程师也会望而却

非常复杂,而且往往包含一个非二次

多项式近似法

幂除法,其会进一步增加复杂性。

利用 FPGA 具有丰富 DSP 与 RAM 的 结构的一种方法是多项式近似法。为

步。参考温度绘制所获得的电阻可以 利用 FPGA 资源

了使用此方法,您必须首先绘出数学

相反,您还可以利用另一种方法实现

函数图,在 MATLAB 或 Excel 等数学

此类传递函数,那就是利用 FPGA 的

程序中涵盖输入值范围。然后您可以

直接在 FPGA 中实现调整后的

本身特性。赛灵思 Spartan-6 与 7 系列

在相关数据集中添加多项式趋势线,

传递函数会在实际所需设计工作量以

Artix、Kintex 与 Virtex 等新型 FPGA

然后可以在 FPGA 中实现该趋势线的

及验证方面面临着巨大挑战(确保精

不仅仅只包含传统查找表和触发器,

等式,以取代复杂数学函数,只要趋

度以及跨边界与极端条件函数)。许

还具有内置 DSP Slice、Block RAM、

势线等式符合精度要求。

获得图 1 所示图形。 从图中可以清晰看出响应的非线 性。

46

®

多工程师会想方设法实现函数,以便

分布式 RAM、PCIe 等众多高级 IP 硬

能够添加多项式趋势线的数学

减少设计与验证工作量,从而控制项

核以及以太网端点、高速串行链路等。

程序大部分都允许您选择阶次或多

目进度。一个可行的方法是采用查找

由于其提供的 48 位累加器,工

项式项的数量。阶次越高,则配合

表保存曲线中的一系列点,同时提供

程师通常把 DSP Slice 称为 DSP48s。

越准确 —— 但是您需要在 FPGA 中

赛灵思中国通讯

2014年第二季度


手 把 手 课 堂 : FPG A 101

如果一个多项式方程无法针对整个 传递函数输入范围提供足够精度, 则可以添加更多方程。只要生成一系列 在相关输入范围使用的多项式常数, 您就能够继续依赖此方法。 实现更多的项。在针对传递函数示例

相同分析工具(在本例中为 Excel) 如何解决这个问题呢?

实施此过程时,我们是采用 Microsoft

针对原始传递函数仔细检查精度。在

Excel,我们已经获得了图 2 所示趋势

所述监控温度的例子中,最终测量精

根据输入值选择的多条趋势线

度可能会是 +/-1 C,这并非苛刻的精 下面继续探讨温度例子,第一个多项 y = 2E-09x4 - 4E-07x3 + 0.0011x2 + 程。 度要求。尽管如此,根据测量范围和 式方程可以在 0 C~268 C 范围内提 在获得了适合我们希望实现的传 2.403x 您实现的传递函数,可能证实仍然很 供 +/-1 C 的精度。对于许多应用此 -251.26 o

线与等式。本例中采用 4 次多项式方

o

o

o

递函数的多项式之后,我们可以采用

难仅用一个多项式方程实现。我们该

精度已经足够。假设我们需要达到

温度与电阻 Temperature vs. Resistance

900,000 800,000 700,000

Temperature

600,000 500,000 400,000 300,000 200,000 100,000 0.0000 100

150

200

250

300

350

400

电阻 Resistance 图2 – 用于温度传递函数的趋势线与多项式方程

2014年第二季度

赛灵思中国通讯

47


手 把 手 课 堂 : FPG A 1 0 1

聚焦温度与电阻 Focusing Temperature vs. Resistance

310,000

y = 2E-09x4 - 3E-08x3 + 0.001x2 + 2.4146x - 251.71 300,000

Temperature

290,000

280,000

270,000

260,000

250,000 199

201

203

205

207

209

211

Resistance 电阻 图3 – 可提供更准确结果的269 oC~300 oC绘图

300 oC 的更广泛运行范围与容差,则

求进行分段,集中精力关注较难达到

复杂化。即使设计团队采用赛灵思

意味着我们最初的方法无法满足设计

精度的传递函数部分。

Zynq-7000 All Programmable SoC 等

要求。利用分段方法我们能够解决

就决定您实现方案时需要考虑的

片上系统弥补上述缺陷,仍然会存在

上述问题,即绘出 269 C~300 C 范

利弊权衡而言,应当牢记的是均匀方

难题。对新手而言,用软件计算传递

围的图形并且获得能够为此输出范

法比非均匀方法会占用更大的内存空

函数比在逻辑电路中实现需要花费多

围提供更高精度的不同多项式方程

间。根据您所实现的传递函数,采用

得多的时间,从而会降低系统响应时

非均匀方法可能会节省大量资源。

间。事实上,传递函数(诸如我们示

o

o

(见图 3)。 总之,此实现方法采用第一套多 o

48

例设计中所用的)的计算是一个典型

项式常数,直到输入值超出与 268 C

如何对比?

的例子,应该由 Zynq SoC 可编程逻

对应的预先计算范围。超出该范围之

当然,如前所述,其它方法也可以用

辑端负责处理。

后则采用第二套常数保持精度要求。

于实现传递函数。多项式近似法之

第二种方法(即采用含有输入

这样您就能够把传递函数分为

外最常用的四种方法分别是软件程

预算值的查找表)的效果随输入值范

一系列片段,以便达到预期精度。您

序、查找表、带插值的查找表以及

围与宽度变化而改变。有时会很快造

可以选择跨传递函数均匀分隔这些片

CORDIC。

成非常庞大的 LUT,其会占用 FPGA

段,也就是说,可以把它们分为均等

由于需要添加处理器(会相应增

内部大量的 RAM 容量。根据相关

于 X 的 10 分段。另外,您也可以不

加设计复杂性、材料清单成本等),

FPGA,此方法可能需要的资源供不

均匀分隔,而是按实现所需精度的要

采用软件计算传递函数会使系统架构

应求,也有可能造成与设计中其它模

赛灵思中国通讯

2014年第二季度


手 把 手 课 堂 : FPG A 101

多项式近似法是四种备 选方案的折中,其能够 很好地平衡性能、精度 与实现资源占用。

Xilinx 运行速度达 2400 Mb/s 的 UltraScale 器件 DDR4 存储 器解决方案 通过安捷伦 N6462A 相容性测试

2014 年 4 月 14 日,中国北京 - All Programmable 技术和器件的全球领先企业赛灵思公司 (Xilinx, Inc. (NASDAQ:XLNX))和安捷伦科技公 司(Agilent, NYSE:A)今天宣布,赛灵思针对 UltraScaleTM 器件的 DDR4 存储器解决方案以 2400 Mb/s 的运行速度,通过了 Agilent N6462A 相容 性测试。根据 JEDEC JESD79-4 DDR4 DRAM 规 范要求,Agilent N6462A DDR4 相容性测试,能 让 DDR4 技术的早期试用者可以针对特性和容 限测试目的进行重要的电气和时序分析。赛灵思 UltraScaleTM All Programmable FPGA 的 DDR4 存储 器接口提供超过 1 Tb/s 的存储器带宽,能处理视 频成像与处理、流量管理和高性能计算等重要应 用领域的海量数据流量,支持快速处理,并可满 足下一代尖端系统设计的巨大存储器需求。 安捷伦的 DDR4 BGA 中介层能帮助用户 获得对 DDR4 调试和验证至关重要的 DDR4 信 号。中介层能在现有设计中工作,其提供的探测

块竟用资源。当然,这种方法的有利

选方案的折中,其能够很好地平衡性

之处是能够很快算出结果。

能、精度与实现资源占用。

据信号,因此无需提前规划或重新设计工作。

第三种潜在方法(带插值的查找

赛灵思公司 FPGA 产品管理高级总监 Dave

表)是我们前面谈到过的一种方法,

实现简便性

Myron 指出 : “与安捷伦携手,我们帮助客户拥

它试图减少整套 LUT 方法所需的内

每位工程师都希望创造出能够最佳利

存位置数量。此方法需要工程师在

益器件资源的 FPGA。多项式近似法

FPGA 内编写线性插值函数,而这项

使您能够受益于 FPGA 提供的丰富乘

工作多少有点棘手。不过,它仍然比

法器与 RAM 环境,同时能够利用这

安捷伦公司副总裁兼示波器和协议部总经理

些资源轻松实现看似极其复杂的数学

Jay Alexander 指出 : “我们很高兴和赛灵思联合演

CORDIC 这个最后选项简单得多。 CORDIC 算法能够实现超越函 数,如 :正弦、余弦、乘法、除法、 平方根等。因此,利用 CORDIC 算 法与基本数学模块的组合能够准确实

传递函数。

点使设计人员能够用示波器看到实际的时钟和数

有了加速开发高性能存储器设计的能力。我们已 经开始供货 UltraScale FPGA,其为行业提供了业 界首款 DDR4 存储器解决方案,并经安捷伦测试 解决方案验证完全符合严格的 JEDEC 标准。”

示这款高性能存储器解决方案的稳健性。我们的 演示表明用户能以全速操作,并可对高速 DDR4 信号进行特性描述,且不会影响设计性能。” 供货情况 采用 DDR4 存储器接口的 UltraScale 器件现

现传递函数。此方法可以实现更高精

已开始供货。欢迎观看联合视频演示,了解安捷

度。但是,对于复杂的传递函数,这

伦测试解决方案如何验证以 2400 Mb/s 速度运行

种好处需要付出增加设计与验证时间

的赛灵思 UltraScale 器件存储器解决方案 :china.

的代价。当然这对采用该方法实现的 器件的工作频率会有影响。 因此,多项式近似法是四种备

2014年第二季度

xilinx.com/memory。 如需了解有关安捷伦 DDR4 BGA 中介层 的更多信息,敬请访问 :www.agilent.com/find/ n6462a。

赛灵思中国通讯

49


手 把 手 课 堂 : FPGA 10 1

用Vivado HLS 为软件提速 任何为代码瓶颈而苦 恼的人都应探索高层 次综合工具与Zynq SoC的组合出击。

50

赛灵思中国通讯

2014年第二季度


H

手 把 手 课 堂 : FPG A 101

规环境下运行多数软件。事实上赛灵

作者:David C. Black Doulos高级技术人员 david.black@doulos.com

思还提供了一款软件开发工具(SDK) 以及 PetaLinux 来帮您实现这一目的。 架构问题 从软件角度思考这一转变,我开始更 加担心软件接口问题。毕竟,HLS 创 建的硬件专注于处理硬件接口。我 需要一些易于访问的工具(如协处理 器或硬件加速器)来加快软件运行速 度。而且,我不想编写新的编译器。 为了方便与软件的其它部分交换数 据,这个接口应该类似于简单的存储

在编写软件时,您有没有遇到过无论

单元,我们可以在其中输入信息并稍

怎么努力编码,软件都不能按您期望

后读取结果。

的速度运行?我遇到过。您有没有想

然 后 我 有 了 新 的 发 现 。 Vi v a d o

过,“有没有什么简单而且成本不高

HLS 支持以相对较小的努力轻松创建

的方法可将一些代码输入多个定制处

AXI 从接口。这让我开始思考,创建

理器或定制硬件?”毕竟,您的应用

加速器也许没有那么难。于是,我编

只是众多应用中的一个,而且创建定

码了一个简单的实例来探索这种可能

制硬件需要花费时间和成本。是不是

性。探索的结果让我惊喜不已。

这样?

下面看看我用了什么方法,并思

最近听说了赛灵思的高层次综 ®

合工具 Vivado HLS 后,我开始重 新思考这一问题。高层次综合工具 ®

在我的实例中,我选择了对一系 列简单的矩阵运算(如加法和乘法)

与 Zynq -7000 All Programmable SoC

进行建模。我不想将它限制在固定的

的结合为设计开辟了新的可能性,

大小,因此,我必须同时提供输入阵

®

其中 Zynq -7000 All Programmable

列及各阵列的尺寸大小。理想的接口

SoC 结合了带有 FPGA 架构的双

会将所有数值作为函数的自变量,例

®

核 ARM CortexTM-A9 处理器。这

2014年第二季度

考这种方法所得出的结果。

如图 1 中的代码。

类工具可以用 C 语言,C++ 语言

硬件接口需要用一种简单的方法

或 SystemC 源代码创建高度优化的

将函数自变量映射到存储单元。图 2

RTL。近年来,出现很多这项技术的

是支持这一映射的存储器配置。寄存

提供商,且其采用率也不断提高。

器中保存了有关矩阵的排列方式以及

如果我只用 Vivado HLS 便能完

所需运算的信息。指令寄存器将指示

成要求更高的计算,那么将那些慢速

执行何种运算。这样我便可以将一些

代码迁移到硬件中会有多难?毕竟我

简单的运算融合到一个硬件中。可以

经常用 C++ 语言编写代码,而 Vivado

用状态寄存器来查看是否正在进行运

HLS 将 C/C++ 语言作为输入语言。

算或是已经成功完成运算。此外,器

ARM 处理器内核意味着我可以在常

件最好还能提供中断支持。

赛灵思中国通讯

51


手 把 手 课 堂 : FPG A 1 0 1

回到硬件设计,我了解到 Vivado

假设能够综合 AXI 从接口,怎

做用户 I/O 器件的机制。UIO 可以用

HLS 为阵列自变量留出空间以指定小

样将它用在软件上?我将正常编码

容量内存。这样,图 3 所示函数便说

环境假设为 Linux。还好赛灵思提供

内存空间,并具备中断等待能

明了这种函数性。

PetaLinux,而且 PetaLinux 提供一种叫

力。这意味着您可以省去编写器件驱

简单的方法将新硬件映射到用户

Matrix operand1(5,10), operand2(10,5), product(10,10); int status; status = matrix_op(MUL, operand1, operand2, product); // product = operand1 * operand2; if (status != 0) cout << “ERROR: multiplication failed” << endl; 图1 – 调用加速器示例

内容

动程序所耗费的的时间和流程。图 4

地址

寄存器名称

目录

位元

0

Matrix0_ptr

RW

32

Matrix 0 数据地址

4

Matrix0_shape

RW

32

Matrix 0 行

8

Matrix1_ptr

RW

32

Matrix 1 数据地址

无法在 D M A 中使用 U IO 器件,因

12

Matrix1_shape

RW

32

Matrix 1 行

此您必须在器件内存中构建矩阵,并

16

Matrix2-ptr

RW

32

Matrix 2 数据地址

在构建完成后手动复制出来。如果需

20

Matrix2_shape

RW

32

Matrix 2 行

要,将来可以通过定制器件驱动程序

24

Matrix3_ptr

RW

32

Matrix 3 数据地址

28

Matrix3_shape

RW

32

Matrix 3 行

32

-reserved-

-

32

36

-reserved-

-

32

40

Command

RW

32

0

enum

题。它的综合难度有多大?我发现这

44

Status

RW

32

0

enum

些编码限制非常合理。除内存的动态

Matrix 0 列 Matrix 1 列 Matrix 2 列

显示了这个系统。 这种方式当然也有缺陷。例如,

解决这个问题。

Matrix 3 列

用 Vivado HLS 综合硬件 现在回到综合 AXI 从接口的话

分配以外,大多数 C ++ 语言都可以 使用。 毕竟硬件在运行过程中不能生产 其本身。这限制了标准模板库(STL)

8192 × 32 存储器

功能的使用,因为这里大量使用了动 态分配。只要数据保持静态,多数功 能都可以使用。起初这项任务似乎 非常繁重,但我发现这并不是什么 大事。另外,Vivado HLS 允许 C++ 类、模板、函数和运算符重载。我的

图2 – 寄存器汇总表

矩阵运算可轻易归入定制矩阵分类。 增加 I/O 来创建 AXI 从接口非常 简单。只需增加一些能够指示包含哪

int Accelerator(int registers[16], int memory[8192]);

些端口以及使用哪些协议的编译指示 即可。

图3 – 加速器函数API

52

赛灵思中国通讯

2014年第二季度


手 把 手 课 堂 : FPG A 101

只要我不按下所有旋钮, 运行这款综合工具非常简单。 只要我不按下所有旋钮,运行这 款综合工具非常简单。图 5 展示了其 处理系统(双核 Cortex-A9 MPCore)

中各个步骤,在此我不再详细解释。 需要就目标技术和时钟速度对 Vivado

Linux OS

软件应用

HLS 进行一些引导。之后涉及的程序

(驱动程序)

会密切关注违反政策的报告并研究分 析报告以确保 Vivado HLS 按我所期 望的方式运行。工具用户必须对硬件 方面有所了解,但有一些技术课程可

AXI 从适配器

软件加速器

以解决这个问题。还存在综合前后运 可编程逻辑(FPGA 架构)

行仿真以检验预期行为的问题。 Vivado IP Integrator 让 AXI 从接口

图4 – 系统框图

连接到 Zynq SoC 硬件变得轻而易举, 并打消了对信号连接错误的顾虑。赛 灵思甚至拥有我所使用的 ZedBoard 开 发系统的系统概述,并用 IP Integrator

代码应用

原始应用 + 测 试刺激

集成 IP

导出数据用于软件开发套件。 清除瓶颈

综合 IP

验证函数

我对结果非常满意,我希望能 用这款芯片与工具集的组合做更多事 情。我并没有探索所有的可能性。

确定候选函数

例如,Vivado HLS 还支持 AXI 主接 口。AXI 会允许加速器从外部存储器

重构代码

复制矩阵(尽管这样也可能存在安全

布局及布线

比特流

集成软件

应用 +HLS 驱 动程序

提取函数(HLS 输入单元)

问题)。不过我强烈建议所有面临代 码瓶颈的人都能考虑这个工具集。这

时序分析 重构后的应用 (Testbench)

验证函数

里提供足够的培训课程、资源和材料 以实现快速匀变,其中包括 Doulos 提供的课程、资源和材料。如需了解

高层次综合

RTLIP

验证函数

更多信息,敬请访问 :www.doulos.

com 。

分析进度

验证性能

验证函数

图5 – 设计流程图 2014年第二季度

赛灵思中国通讯

53


出色的工具

Xilinx 开源 TCL 库正式发布 作者:Greg Daughtry 赛灵思公司产品营销总监 greg.daughtry@xilinx.com

54

赛灵思中国通讯

2014年第二季度


出色的工具

用于共享工具命 令语言脚本的开 源库已发布在 GitHub.com上。

过去五年里,赛灵思把战略

Vivado XDC 约束语言的基础,因此

重点放在设计方法和工具

掌握和运用 Tcl 对设计人员来说越发

上,通过提供业界最先进、

重要。

最全面的开发环境,解决生产力问题, 加快设计周期,促使产品更快上市。 ®

使用 Tcl 命令可以交互式地开发 和优化时序约束,节省编译时间,

即 便 新 一 代 Vi v a d o 设 计 套 件

减少调试工作量。其核心命令可进

和综合全面的 UltraFast TM 设计方法

行对象查询,并据以提供定制报告

可以提高生产力,但使用当今的 All

和完成极为精细的工具控制。使用

Programmable 器件开展设计工作仍然

Vivado 设计工具还可以开发自己的

面临诸多挑战。设计人员必须将数百

DRC 和 Lint 检查,配合高度定制

个高度参数化的 IP 核、数十万个可放

化的流程即可实现更优异的结果质

置的对象和数百万个逻辑单元与赛灵

量或是更快的运行时间。设计人员

思 All Programmable FPGA、3D IC 和

使用 Tcl 还可以通过工程变更命令

SoC 完美集成。随着设计人员不断拓 (ECO)操作进行针对性的设计变更。 宽复杂设计的疆域,需要应对的情况 也千变万化。

TCL 带来的生产力改善,代码 创建的便捷性和代码的易读性,使

随着今年 4 月份 Vivado 2014.1 版

之成为共享有用代码的理想选择。

本的发布,赛灵思正在筹备一个用于

到目前这种共享还主要处于自发阶

共享工具命令语言(TCL)代码的开

段,采用电子邮件和用户论坛方

源库,这一举措无疑在进一步提升设

式。部分企业也已经在内部建立自

计人员生产力方面又前进了一大步。

己的 TCL 库,供自己项目使用。

这个名为“赛灵思 TCL 库”的开源

现在赛灵思通过自己全新的“赛

库能够显著简化查找和共享其他工程

灵思 Tcl 库”,让 Tcl 共享迈上新的

人员开发的 TCL(发音为“tickle”) 台阶。 脚本。借助 Tcl,这些脚本能够扩展 Vivado 设计套件强大的核心功能,进

欢迎使用 Tcl 库

而提升生产力,简化使用。“Tcl 库” 赛灵思 Tcl 库提供多种样例,用于示 对用户社区开放,通过发布对他人可

范如何编写定制报告,控制特定工

能有用的 Tcl 代码,让所有设计人员

具行为,进行定制网表变更,与仿

受益。

真、综合、时序与功耗分析及 lint 工 具等第三方电子设计自动化(EDA)

日趋复杂的设计

2014年第二季度

工具集成。

Vivado 设计套件建立在开放的可扩展

Tcl 库可从 Vivado 集成设计环

数据模型上。作为一种开源系统,要想

境(IDE)本地访问,便于用户直

提高生产力,其中一个关键就是提高工

接从工具内部选择和安装称为“应

具的智能化水平,提供更多定制选项和

用程序”(app)的 Tcl 脚本集。安

分析功能,以便设计人员更全面了解并

装完成后,这些应用程序的命令如

充分运用工具,实现最佳设计。

同 Vi v a d o 设 计 套 件 内 置 的 命 令 一

自 2 0 1 2 年 Vi v a d o 设 计 套 件 推

样,可通过帮助命令查看其用法。

出以来,用于执行各种规模任务的

Vivado 设计套件使用 Tcl 的标准封

Tcl 脚本呈现出爆炸性发展。Tcl 是

装工具支持不同版本的应用程序, 赛灵思中国通讯

55


出色的工具

图1—Vivado IDE中的Tcl库对话框为安装应用程序和浏览命令提供方便。

故即便有更新的版本发布,只需单击

图标访问赛灵思 Tcl 库。设计人员也

进程有命名规则,使用 TCL 中

鼠标即可选择升级。

可以转到工具菜单(Tools Menu),

名为“命名空间”的工具。命令的

赛 灵 思 Tc l 库 的 目 的 是 使 用 与

选择“Xilinx Tcl Store”菜单选项。此

名称看似比正常的 TCL 命令稍显

Linux 开发环境相同的方式,简化由

时会弹出库对话框,提供可供安装的

复杂,同时内嵌有“::”字符。例

用户社区开发和支持的优质 Tcl 脚本

应用程序清单(图 1)。

如 XILINX::ULTRAFAST::CHECK_

的查找和使用。Tcl 脚本编写与选择

浏览应用程序清单时,可以看

PLL_CONNECTIVITY 用于对赛灵

IDE 按钮相比稍微高级一些。但它易

到每个应用程序下又有一个命令清单

思器件中的时钟修改模块进行连接检

于学习和掌握。有大量技术文档和用 (TCL 中称为“PROCS(进程)”),

查。该命名法则的目的是确保 TCL 代

户指南详细介绍 Tcl API 提供的具体

列出了可供执行的命令。可以查看每

码的唯一性以及一个应用程序中的某

命令,详情请访问 china.xilinx.com/

个应用程序及每个应用程序中每个进

个进程不会与另一个应用程序中的同

support 。

程的介绍,了解其功能。点击安装按

名进程发生冲突。命名空间是 TCL 的

钮就可以安装和注册应用程序,随后

标准特性。

下面详细介绍从赛灵思 Tcl 库安 装和使用 Tcl 应用程序的方式。

56

可以如同 VIVADO 设计套件本地命令

运行应用程序命令的方法是键入

一样显示和使用。应用程序安装完毕

包括命名空间在内的进程的完整合法

安装和使用

后,每次启动 VIVADO 设计套件它都

名称,并有选择地输入任何要求的命

在首次启动 Vivado IDE 时,设计人员

会自动加载,无需每打开一个新的界

令行参数,就和其它 TCL 命令一样。

可以通过“Getting Started”页面上的

面都安装一次应用程序。

由于这些命令使用标准命名空间,也

赛灵思中国通讯

2014年第二季度


出色的工具

使用赛灵思Tcl库的Tcl应用程序 简单且方便。赛灵思的目标是 鼓励世界各地的开发团队 使用和共享Tcl库,提升生产力。 可选择导入命令到全局空间中。如果

能安装或升级到所支持的最新版本。

求。赛灵思尽量让随时可能发生变化

不和任何其他命令名称发生冲突,这

当然充分利用的最好方式是保证有丰

的基本要求项目保持简洁,同时确保

个方法是适用的。这样可以略去命名

富的有用代码库。赛灵思在库中植入

合理的用户体验。下面是用户需要遵

空间限定符,只使用进程名称。在上

了一整套非常有用的实用工具和集成

循的基本应用程序要求 :

面的例子中,如果把 ULTRAFAST 应

脚本,可供用户当作范本研究,掌握

用程序导入全局命名空间,无需命名

如何构建自己的可重用 TCL 脚本。

空间限定符即可直接调用 CHECK_ PLL_CONNECTIVITY 命令。 设计人员只需单点应用程序详细

遵循基本的编码方法指南,把进 程与不使用或访问全局变量的命

向 Tcl 库提供代码 有两种途径可向 Tcl 库提供代码,让

令行参数配合使用。 •

在进程内包含基本文档,用于描

介绍部分中的“UNINSTALL APP” 脚本供所有的 Vivado 设计套件用户使

述进程的功能、使用的命令行参

超链接,就可以卸载应用程序。另

用。第一个途径是修改现有的应用程

数和返回的结果。

外,点击“REFRESH”按钮便可更

序。第二个途径是开发新应用程序,

新应用程序目录。TCL 库目录由第

然后提交新应用程序申请。要提供代

三方网站托管,与 VIVADO 版本无

码给 Tcl 库,用户需要对用于版本控

关,因此可随时更新应用版本。目录

制的软件开发工具有一定熟悉,或至

试,确保代码的运行和行为基本

更新后,VIVADO 工具会占用少许资

少有学习意愿。

符合预期。

源执行应用程序清单同步。如果有更

每个应用程序都由一个人控制,

新后的已安装应用程序可用,请使用

一般是编写大部分代码的人,也称为

“UPDATE”按钮来取得。VIVADO 设 “应用程序负责人”。赛灵思库在整

确保代码通过语法检查和 Vivado 设计套件提供的 lint 工具的检查。

对每个进程至少进行一次基本测

GITHUB 上的 TCL 库 赛灵思 Tcl 库托管在名为 GitHub.com

计套件会复制并同步该应用程序的最

体上由赛灵思控制,且赛灵思公司负

的第三方网站上。该库使用版本控制

新版本,完成其安装。为避免发生配

责维护把应用程序发布到公共域的流

工具来保证分布开发工作以可控方式

置控制问题,更新只根据设计人员的

程,以保持各应用程序之间的基本一

进行。这个过程的关键就是 Git,一

要求安装。对在意安全性,不愿意让

致性。赛灵思员工起着质量保障“守

种常见的开源分布式版本控制工具,

VIVADO 设计套件随时从自己的网络

门员”的作用。

常用于 Linux。如果要访问 Tcl 库以

想要修改现有应用程序或添加

提交和测试代码,可以在 GitHub.com

新应用程序的“提供人”可与“守门

上注册一个免费账号,安装和设置

使用赛灵思 TCL 库的 TCL 应用程

员”和应用程序责任人合作,遵循与

Git。GitHub 提供供 Windows PC 机使

序简单且方便。赛灵思的目标是鼓励

其他开源项目一样的流程,完成提交

用的 Git 工具安装版本。Linux 机器一

世界各地的开发团队使用和共享 TCL

工作。在代码托管网站上有个维基

般已经安装有,或是可通过标准软件

防火墙外同步的用户,可以使用一个 参数禁用目录同步功能。

库,提升生产力。库中只显示任何给 (wiki)用于把这个流程形成文档。

包安装。GitHub 提供辅导资料,帮助

定应用程序的最新版本,设计人员只

用户入门 Git。

2014年第二季度

所有代码提交都应满足基本要

赛灵思中国通讯

57


出色的工具

App Submission/Review Process

Contributor

3. Send pull request (needs permission to send)

Gatekeeper 7. Review/test 8. Merge/close pull request

1. Create/update/test app 2. Push to own master 6. Approve/reject

4. Assign

App Owner 5. Review/test

图2—赛灵思Tcl库提交应用程序的工作流程历经几个非连续步骤

用户注册得到 GitHub 账号后,

引文件。

com,发出拉请求。这样会正式

在另一个位置打开 Vivado 设计套

启动把用户提供的代码合并到库

件,转到本地库,然后测试自己

中的流程。应适当与“守门员”

复制赛灵思 Tcl 库主库。这样可

的应用程序。运行 Linter 和本地

和应用程序负责人合作,通过

以在用户的测试环境(Sandbox)

测试,直至对所有运行情况满意

GitHub 和电子邮件解决任何问题。

中创建一个本地复本,便于用户

为止。

就可以按下列步骤向 Tcl 库提供代码: 4. 1.

在本地开发和测试,避免给其他

5.

应用程序造成影响。 2.

3.

遵循按照应用程序名称及企业或

恭喜!帮助大家是一件快乐的事 情。

所做的改动。 6.

发送申请允许提交代码到

图 2 所示的是提交应用程序的工

GitHub 名称确立的指引,把自己

tclstore@xilinx.com 的电子邮件。

的新代码放在正确的目录中。使

说明是否想要创建新应用程序,

用标准 Git 添加命令。

准备如何命名该新应用程序。如

细枝末节

使 用 本 地 库 中 的 Vi v a d o 设 计

果想要修改现有应用程序或是把

赛灵思 Tcl 库属于开源库,没有为商

套件,调用注册代码和生成

代码提供给现有应用程序,应明

业化提供的代码或用提供的代码收费

Catalog.xml 文件所需的命令。这

确说明。另外需要取得应用程序

提供机制。提交给 Tcl 库的应用程序

是用户所需的三个文件之一。另

负责人的许可。

可以通过开源项目中常用的 BSD 许可

使 用 We b 浏 览 器 转 到 G i t H u b .

证,供各类衍生作品免费使用。为便

两个是软件包索引文件和 Tcl 索

58

确认修改,并提供信息简要介绍

8.

赛灵思中国通讯

7.

作流程示意图。

2014年第二季度


出色的工具

Vivado 2014.1 版新增自动化

于提供的代码被大家接受和发布,向

赛灵思希望尽量简化应用程序

Tcl 库提供的代码应包含 BSD 许可证

的提交工作,因此可能会探索让用户

UltraFast 设计方法和 OpenCL 硬件

的版本。如果有企业或用户不想把自

通过电子邮件提交 Tcl 脚本的途径,

加速功能大幅提升生产力

己的知识产权发布到公共域,Vivado

从而尽量减少支持工作量,避免绕道

设计套件也可照搬发出拉请求前测试

GitHub。这个过程的无控性质与目前

工作所采用的机制,为本地版本的

的安装方案不对接,故只是作为例子

Tcl 库提供支持。

介绍。

2014 年 4 月 16 日,中国北京 - All Progra-mmable 技术和器件的全球领先企业赛灵思公司(Xilinx, Inc. (NASDAQ:XLNX))今天宣布推出 Vivado® 设计套

此外由于该项目使用 GitHub 进行

世界各地有成千上万的用户在使

托管,提交人在注册账号时必须同意

用 Vivado 设计套件,有数以百计的企

GitHub 的服务条款,因为这属于第三

业已经采用 UltraFast 设计方法。赛灵

方服务。

思 Tcl 库提供了一个新的开源项目,旨

件 2014.1 版,这是业界唯一一款 SoC 增强型开发环 境。该版本增加了 UltraFastTM 设计方法的自动化功 能,让所有器件的运行时间平均缩短达 25%,性能 提升 5%。此外,2014.1 版本还在 Vivado HLS(高层 次综合 ) 中新增了 OpenCL 内核硬件加速功能。 目前已有 2,500 多家客户接受了 UltraFast 设计方

应用程序库中的应用程序由用

在让赛灵思、赛灵思合作伙伴和客户

户社区开发和支持。这意味着赛灵思

之间共享 Tcl 脚本,从而可以进一步提

和采用度,旨在提高设计人员的生产力。用 UltraFast

技术支持部未接受过与该功能有关的

高设计人员生产力。

设计方法,设计团队可将设计收敛从此前的数月缩 短到数周。

培训,无法回答与 Tcl 代码有关的问 题。请直接把这些应用程序的支持性

参考信息和资料

问题提交到赛灵思用户论坛上。如果

申请 GitHub 账号,查阅 Git 和 GitHub 上的教程,请访问 :

发现代码段中存在的缺陷或问题,可 以直接在 GitHub.com 项目中备案并 跟踪。由于这属于开源开发模式,我 们鼓励用户修改这些问题,改善代 码质量,为所有用户造福,就如同 Linux 一样。 发展规划 Vivado 2014.1 版本推出 Tcl 库只 是一个开始。赛灵思今年将不断改进 Tcl 库,落实其搜索应用程序和进程的 能力,简化功能查找工作。赛灵思将 提供一种无需安装应用程序即可浏览 和查看源代码的途径。此外赛灵思还 考虑提供一种评价机制,用户可评定 一星到五星等级,并可选择提供书面 评语。这样便于人们为较受欢迎的代 码留下反馈意见。 赛灵思还准备根据应用类别提供 筛选功能,实现更好的分类。例如按仿 真、综合、实现、项目和网表实用工具 分类。随着库规模越来越大,赛灵思可 能会增加分类数量,丰富应用程序门 类,以体现提交的代码的多样性。 2014年第二季度

法的培训。赛灵思将不断提高该设计方法的知名度

https://github.com/ 赛灵思 Tcl 库的代码库和介绍代码 提交方法的维基文档,敬请访问 :

https://github.com/Xilinx/XilinxTclStore 赛灵思 Tcl 库维基包含代码提交流 程的详细介绍 :

https://github.com/Xilinx/XilinxTclStore/wiki/Xilinx-Tcl-Store-Home UG 894《使用 Tcl 脚本编写指南》内 含 Vivado 设计套件一般脚本编写功 能的介绍 :

china.xilinx.com/support/ documentation/sw_manuals/ xilinx2013_4/ug894-vivadotclscripting.pdf UG835《Tcl 命令参考》内含 Vivado 设计套件提供的全部本地命令有关 的信息 :

china.xilinx.com/support/ documentation/sw_manuals/ xilinx2013_4/ug835-vivadotclcommands.pdf

增强工具功能 用 UltraFast 设计方法是提高生产力的最佳实践 方法,关键在于是否用正确的方法来制定设计约束 以加快时序收敛。利用最新发布的交互式时序约束 向导,Vivado 设计套件 2014.1 版能自动生成“生成 即保证正确”的约束。该向导内置的智能功能可通 过查询 Vivado 设计数据库,抽取时钟结构和通常来 源于 IP 重用的现有约束,然后指导用户正确约束设 计其它部分。 Vivado 设计套件 2014.1 版本还配套推出了最新 赛灵思 Tcl 商店,设计人员可自行发布和分享合格脚 本,用以执行有用功能并提高生产力。在 Vivado 集 成设计环境中即可可访问 Tcl 商店,该商店提供有开 源脚本库,设计人员使用这些脚本执行的功能可扩 展 Vivado 设计套件的核心功能,而工具专家则能分 享代码,以提高更大用户群的设计效率。今天宣布 推出的 Tcl 应用能提供定制报告、分析、优化、工具 流程控制和各种设计修改。 Vivado 高层次综合 Vivado HLS 目前用于无线、医疗、国防和消费 类等应用的高级算法中,用于加速 IP 创建、它可 让赛灵思 All Programmable 器件直接运用 C、C++ 和 System C 规范,无需手动创建 RTL。Vivado IP Integrator 和 Vivado HLS 结合使用能大幅降低开发成 本,相对于 RTL 而言能降低多达 15 倍。 随着 Vivado 设计套件 2014.1 版的推出,Vivado HLS 现在能为 OpenCL 内核提供早期试用支持。 OpenCL 为编写在不同异构平台上执行的内核提供 了框架和语言,现在能无缝转换为运行于赛灵思 All Programmable 器件上的 IP。此外,Vivado 设计套件 2014.1 版借助最新线性代数库还可将 Vivado HLS 扩 展用于各种信号处理应用,从而快速生成 C/C++ 算 法 IP,满足 Cholesky 分解、奇异值分解 (SVD)、QR 因式分解和矩阵乘法等函数需求。

赛灵思中国通讯

59


号外,号外

Vivado 设计套件 2014.1 版本的最新消息 赛灵思不断改进其产品、IP 和设计工具,努力帮助设计人员提高生产力。本文将介绍赛灵 思设计工具的当前最新更新情况,其中包括为加速赛灵思 All Programmable 器件设计而构 建的以 IP 及系统为中心的全新一代革命性创新型设计环境 Vivado 设计套件。如需了解有关 Vivado 设计套件的更多信息,敬请访问 :china.xilinx.com/vivado。 通过产品升级,赛灵思设计工具的功能将得到显著增强并新增一些新特性。保持及时更新 升级是确保实现最佳设计结果的简单方式。 Vivado 设计套件 2014.1 版本可从赛灵思下载中心下载 :china.xilinx.com/download。 时序与功耗分析和 Linting 工具)集成

VIVADO 设计套件 2014.1 版本亮点

Vi v a d o 设 计 套 件 2 0 1 4 . 1 版 本 可 加 快 运 行 时 间 , 提 高 结 果 质 量 , 支 持 UltraFast TM 设计方法自动化,并通过 Vivado 高层次综合 (HLS) 实现 OpenCL 内核硬件加速,从而有助于提高您的设计生产力。

的实例。Tcl Store 可从 Vivado 集成设 计环境(IDE)中本机访问,从而帮 助用户直接在工具中选择并安装统称 为“应用”的 Tcl 脚本组合。一旦安

器件支持 支持以下生产就绪型器件 : • Artix®-7 XC7A35T和XC7A50T • XA Artix-7 XA7A50T、XA7A35T和XA7A75T • Zynq®-7000 XC7Z015

通用版本: Kintex® UltraScale: • XC KU035、XC KU040、XC KU060和XC KU075

早期试用版本(请联系当地销售代表): Kintex UltraScale SSI器件: • XC KU100和XC KU115

装,这些应用就会发出一些命令,像 内置 Vivado 设计套件命令一样。

VIVADO 设计套件 : 设计版本升级 Vivado IP 生成器 Vivado 实现工具 整体实现运行时间相对于 2013.4 版 本平均加快 25%。

Virtex® UltraScale 器件: • XC VU065、XC VU080、XC VU095、XC VU125、XC VU145和XC VU160

7 系列 SSIT 器件上 Fmax 平均改进 2.5%。 所有器件上 Fmax 平均改进 5%。

赛灵思 Tcl Store

60

功能,从而提高生产力和易用性。Tcl

赛灵思为共享工具命令语言 (Tcl) 代

Store 面向用户社区开放,通过向其他

集成设计环境

码提供开源库托管服务,这为推进设

设计人员发布可用的 Tcl 代码让所有

时序约束向导 :这是一款引导用户创

计人员生产力迈出了一大步。这个库

设计人员受益。

建时钟时序约束、I/O 和时钟域交叉

称作赛灵思 Tcl Store,将大大简化查

赛灵思 Tcl Store 提供了如何编写定制

约束的自动化工具。该向导内置的智

找和共享其他工程师所开发的 Tcl 脚

报告、控制特定工具行为、进行定制

能功能会查询 Vivado 设计套件的设计

本的工作。利用 Tcl 的功能,这些脚

网表修改,以及与第三方电子设计自

数据库,以提取时钟结构和现有约束

本可大幅扩展 Vivado 设计套件的核心

动化(EDA)工具(如仿真、综合、 (通常源于 IP 重用),并指导用户正

赛灵思中国通讯

2014年第二季度


确对设计其它部分进行约束。

齐数据到 8 位边界,从而更顺利地将

灵思精选来自专家的最佳实践,并将

如需了解有关最新时序约束向导的更

HLS 设计集成到 AXI4 系统中。AXI4

其总结归纳到面向 Vivado 设计套件的

多信息,敬请观看以下网址的快速

主接口进一步增强功能,该接口现在

权威性设计方法指南系列中。

入门视频 :china.xilinx.com/ training/

可选择性地添加 USER 端口。

vivado/using-the-vivado-tim- ingconstraint-wizard.htm。

UltraFast 设计方法指南现已推出

采用除法运算的设计可进一步优

第二版,进一步扩大 UltraScale 架构

化资源利用。这些运算现在能自动受

支持,添加了新的时序约束向导,能

益于较小的实现方案。

快速实现时序收敛,而且还包含了新

Vivado IPI

的最佳实践,如 :

新的“Signals( 信号 )”标签支持拖 放连接、可视化和时钟管理以及设

System Generator for DSP (DSP 系统生成器)

设计方法 DRC 版本控制

计中的重设域。

对 Linux 和裸金属设计而言,利用

IP / IPI 方法 仿真(包括第三方流程)

新的自动化“Board Interface( 开

AXI4-Lite 从接口和相应的软件驱 动程序系统能够更快捷方便地集成

验证

System Generator for DSP(DSP 系统生

Vivado HLS

成器 ) 模块。由于硬件协同仿真过程

部分重配置

发板接口)”标签能快速连接到所 支持的开发板上可用的接口。 Designer Assistance 现在为用户提供

中支持非存储器映射接口,因此有助

指定时钟域的选项,而不是假定默

于提高验证速度。

认的域。 即插即用 IP 升级 赛灵思 PCIe IP 的串联配置

Vivado 2014.1 为基于 UltraScaleTM GT

IP 集成器 (IPI) 中包含了串联配置

的 IP 提供更高质量和特性 :

IP 核,是专门的 AXI streaming 版

GT 向导可在运行时间查询器件模

本,可在 IPI 中添加给设计。

型,获得准确的物理资源和位置。

添加对 Zynq

®

-7000

All

所有基于 GT 的 IP 核都能在运行时

下一步 Vivado 快速入门教程 如需了解更多信息,敬请在以下网址 观看“Vivado 设计套件的最新消息” 视频 :china.xilinx.com/training/viva do/whats-new-in-vivado.htm. Vivado 设计套件快速入门视频教 程介绍 Vivado 设计套件内在功能的 示范视频。最新涉及的专题包括设计

Programmable SoC 器件的支持。

间调用 GT 向导。

更多信息,敬请参阅 PCI Ex-press®

时钟和重设资源能在 GT 实例之间

IP 产品指南。

灵思 Tcl Store、Vivado 与赛灵思评估

方便共享。

板的配合使用,以及定制 IP 封装配

所有 GT 端口都能启用,支持调试

合 IPI 使用等。如需观看所有快速入

VIVADO 设计套件 : 系统版本升级

工作。 无需编辑任何 IP 文件。

Vivado 高层次综合

2014.1 版本中面向 UltraScale 器件的

Vivado HLS 现可支持 OpenCL 内核

更多新的关键 IP 包括 HSSIO 向导、

早期试用。OpenCL 包括编写内核的

系统管理向导、SGMII over LVDS、

框架和语言,能在异构化平台上执

Aurora 8B10B 和 64B66B、CPRI 和

行,现在还能无缝转化为赛灵思 All

Serial RapidIO。

Programmable 器件上运行的 IP。 新的线性代数库支持 C/C++ 算 法的快速 IP 生成,满足 Cholesky 分 解、奇异值 (SVD) 分解 、QR 因式分 解和矩阵乘法等功能要求。 新的数据打包选项能自动化对

2014年第二季度

ULTRAFAST 设计方法

流程简介、时序约束向导的使用、赛

门视频,敬请访问 :china.xilinx.com/ training/vivado.。 Vivado 培训 如需了解有关 Vivado 设计套件的讲师 指导的培训课程,敬请访问 :china. xilinx.com/training。 欢迎立即从以下网址下载 Vivado 设 计套件 2014.1 版本 :china.xilinx.com/ download.

UltraFast 设计方法第二版 赛灵思的 UltraFast 技术是可编程产业 中率先推出的首个综合设计方法。赛

赛灵思中国通讯

61


实例 ...

应用指南 如果您希望进一步了解我们的 FPGA 如何适用于众多应用, 建议您阅读以下应用指南。

XAPP1177:用赛灵思 VIRTEX-7 PCI EXPRESS GEN3

间启动数据传输。您可修改该子系统用于需要在 FPGA 逻

集成模块的 SR-IOV 功能进行设计

辑内部启动数据事务处理的其它器件或应用。

china.xilinx.com/support/documentation/applica- tion_notes/ xapp1177-pcie-gen3-sriov.pdf 评估单根 I/O 虚拟化(SR-IOV)功能可能是一个相当复杂 的过程,不同操作系统和系统平台会存在许多差异。本应 用指南在演示赛灵思 Virtex®-7 FPGA PCI Express® Gen3 集 成模块的 SR-IOV 功能过程中,建立了基准系统配置,并 为快速启动和评估 Virtex-7 FPGA PCIe® Gen3 集成模块特 性提供必要的软件。 本文作者 Vivek Surabhi 介绍了 SR-IOV 的主要概念, 并详细分析了如何配置 SR-IOV 功能。本文介绍了如何 创建配有 2 个物理功能和 6 个虚拟功能的 PCI Express x8 Gen3 端点设计。面向 Virtex-7 FPGA VC709 连接功能套件 的参考设计在 SR-IOV 系统上已经过硬件验证。

本应用指南介绍了 Vivado 设计套件和设计所用 IP 核 的一些主要特性,首先用 Vivado 的 Tcl 命令和脚本生成 子系统方框图。设计涉及的其它领域包括 PCI Express 端 点配置、通过 PCI Express 的 DMA 启动数据传输,以及 用高性能 AXI 接口实现 Zynq SoC 处理系统的高吞吐量。 作者还探索了 64 位根联合体(主机)地址空间和 32 位 FPGA(AXI)地址空间之间的动态地址转换,并概括介 绍用动态地址转换执行 DMA 分散 / 聚集操作的方法。 XAPP1180:参考系统: 采用 IPI 的 KINTEX-7 MICROBLAZE 系统仿真 china.xilinx.com/support/documentation/applica- tion_notes/ xapp1180.pdf 本应用指南和参考系统采用赛灵思 IP 集成器 (IPI) 工具对

62

XAPP1171:

基于 Kintex-7 器件架构的 MicroBlaze TM 处理器系统的功

PCI EXPRESS 端点 -DMA INITIATOR 子系统

能进行了仿真和硬件验证。该系统包括主存储器和 RS232

china.xilinx.com/support/documentation/applica- tion_notes/

通信等常见外设。作者 James Lucero 提供了 hello_uart 和

xapp1171-pcie-central-dma-subsystem.pdf

hello_mem 等一些单机版软件应用来验证外设功能。

Brian Martin 编写的这篇应用指南介绍了通过 PCI

Lucero 还介绍了如何设置系统仿真环境,用 Vivado 仿

Express 支持端点启动的直接存储器访问 (DMA) 数据传输

真器或 Mentor Graphics 的 Model-Sim ® 环境执行仿真,

的 Vivado ® 设计套件子系统。提供的子系统面向 Zynq ®-

以及在硬件上运行设计。文件介绍了在采用 Kintex-7

7000 All Programmable SoC ZC706 和 Kintex®-7 KC705,

XC7K410TFFG900-2 FPGA 的 KC705 开发板运行设计仿真

能在 DDR3 存储器和外部连接的 PCI Express 根联合体之

和硬件验证的情况。

赛灵思中国通讯

2014年第二季度


XAPP1158:使用带 ZYNQ-7000 的 VXWORKS BSP

XAPP1202:系统流量生成和性能检测

china.xilinx.com/support/documentation/applica- tion_notes/

china.xilinx.com/support/documentation/applica- tion_notes/

xapp1158-zynq-7000-vxworks-bsp.pdf

xapp1202-sys-tg-pm.pdf

这是采用 Zynq-7000 All Programmable SoC 的 VxWorks 新

在本应用指南中,两位作者 Kondalarao Polisetti 和 Pankaj

用户的启动指南。VxWorks 是 Wind River 推出的实时操

Kumbhare 演示了如何用两个赛灵思 AXI 流量生成器

作系统(RTOS)。作者 Uwe Gertheinrich、Simon George (ATG)和 AXI 性能监控器(APM)这两个内核分别实现 和 Kester Aernoudt 逐步讲解了如何在 Zynq SoC 上运行

AXI4 系统流量生成和性能测量。配套的参考设计侧重于

VxWorks 6.9.3.1 板支持套件(BSP),还概括介绍了启

运行时间配置,以实现不同的 ATG 和 APM 实例,同时还

动过程。本应用指南首先介绍 Zynq SoC 软件环境的重要

介绍了如何配置和编程 IP 核以获得系统性能参数。参考

元素,帮助读者更好地了解 BSP 和应用生成。作者还介

设计还用 Web 服务器应用展示了不同配置下的运行时间

绍了 Zynq SoC 处理器子系统启动过程,探讨了如何添加

系统吞吐量和系统时延。两位作者采用 Vivado 设计套件

VxWorks,包括构建和调试应用以及在 Zynq SoC 上远程

2013.4 版本在存储器控制器的主 AXI4 接口上成功布局布

运行 VxWorks 定制应用。

线速率为 100 MHz 的接口。

XAPP742:AXI VDMA 参考设计

XAPP1199:通过带正向纠错功能的 IP 网络传输 SMPTE

china.xilinx.com/support/documentation/applica- tion_notes/

2022-5/6 高比特率媒体

xapp742-axi-vdma-reference-design.pdf

china.xilinx.com/support/documentation/applica- tion_notes/

如您曾考虑过用赛灵思原生视频 IP 核构建视频系统来处 理 Kintex-7 FPGA 的可配置帧速率和解析度,那么本应用 指南将向您介绍相关方法。参考设计的重点是针对视频 像素时钟的板上时钟生成器的运行时间配置以及如何使 用 AXI 视频直接存储器访问(VDMA)、视频时序控制器 (VTC)、测试模式生成器(TPG)和 DDR3 存储器控制 器等视频 IP 核来运行不同的视频解析度和帧速率组合。 作者 Pankaj Kumbhare 和 Vamsi Krishna 详细介绍了不同视 频 IP 的配置,帮助设计人员有效利用有关 IP 核。每个视 频 IP 模块都进行动态配置,能处理不同的帧速率和解析 度组合。 XAPP1200:KINTEX-7 FPGA 收发器向导示例设计 china.xilinx.com/support/documentation/applica- tion_notes/ xapp1200-k7-xcvr-wiz-example-design.pdf

xapp1199-smpte2022-56-over-ip.pdf 这里演示的 IP 视频传输 (video-over-IP) 网络系统充分发挥 了 LogiCORETM IP SMPTE 2022-5/6 IP 视频传输发射器和 接收器内核的高性能特性。Gilbert Magnaye、Josh Poh、 Myo Tun Aung 和 Tom Sun 等共同提供的参考设计重点介 绍了通过内置正向纠错(FEC)引擎的 10-Gbps 以太网 如何传输高比特率原生媒体。该设计能支持多达 3 个 SD/ HD/3G-SDI 流媒体。 发射器平台采用 3 个 SMPTE SDI 内核接收抵达的 SDI 视频流。接收的 SDI 流经多路复用并用 SMPTE 20225/6 IP 视频传输发射器内核打包在固定大小的数据报包 中,再用 10Gb 以太网 MAC 内核发送。10Gb 链路得到 10Gb 以太网 PCS/PMA 内核的支持,采用光缆连接到接 收器端。在接收器平台上,10Gb 以太网 MAC 收集以太 网数据报包。SMPTE 2022-5/6 IP 视频传输接收器内核过 滤、拆开数据报包,然后多路分配成不同的流,再通过

KC705 评估套件提供了采用 Kintex-7 FPGA 系列满足多个

SMPTE SDI 内核输出。以太网 SMPTE SDI 数据报包缓存

细分市场高带宽、高性能应用需求的综合而全面的高性能

在 DDR3 SDRAM 中,供发射器和接收器使用。

开发演示平台。Dinesh Kumar 和 Thupalli Ramachandra 编

DDR 流量通过 AXI4 互联接口传输到 7 系列 AXI 存

著的这篇应用指南用 KC705 套件和 GTX 收发器向导来演

储器控制器。MicroBlaze 处理器初始化这些内核和并读

示运行在 Kintex-7 FPGA 硬件上的收发器实例设计。两位

取相应的状态。参考设计面向的是赛灵思 Kintex-7 FPGA

作者已全面验证了该参考设计,并在硬件上进行了测试。

KC705 评估套件。

2014年第二季度

赛灵思中国通讯

63


资讯脉搏

依元素科技培训课程时间表 2014/7 至 2014/9 培训课程

7月

培训时间

8月

9月

2 日 西安

6 日 深圳

3 日 北京

9 日 上海

13 日 深圳

10 日 长春

16 日 北京

20 日 西安

17 日 深圳

2天

10-11 日 北京

7-8 日 杭州

4-5 日 西安

Vivado 设计套件的高级工具和技术

2天

21-22 日 成都

18-19 日 深圳

9-10 日 北京

Vivado 设计套件静态时序分析和 Xilinx 设计约束

2天

14-15 日 深圳

21-22 日 上海

11-12 日 西安

面向软件设计人员的基于 C 语言的 HLS 编码

1天

23 日 天津

6 日 上海

24 日 北京

面向硬件设计人员的基于 C 语言的 HLS 编码

1天

16 日 武汉

13 日 杭州

3 日 上海

基于 C 语言设计 :Vivado HLS 高层次综合

2天

14-15 日 西安

14-15 日 北京

11-12 日 上海

17-18 日 北京

18-19 日 深圳

15-16 日 上海

Zynq 全面可编程 SoC 架构介绍

1天

2 日 北京

27 日 成都

10 日 西安

17-18 日 深圳

7-8 日 成都

18-19 日 北京

14-15 日 上海

4-5 日 北京

29-30 日 天津

Vivado 设计套件工具流程

1天

基于 ISE 软件工程导航器用户的 Vivado 设计套件

1天

基于 Vivado 的 FPGA 设计基础

Zynq 全面可编程 SoC 系统架构

2天

嵌入式系统开发

2天

10-11 日 成都

嵌入式系统软件开发

2天

21-22 深圳

25-26 日 北京 4-5 日 西安

嵌入式开放源码 Linux 开发

2天

高级嵌入式系统软件设计

2天

基于 ISE 的 FPGA 设计基础

1天

利用 Vivado 逻辑分析器的调试和验证

2天

24-25 日 深圳

面向性能的设计

2天

7-8 日 杭州

11-12 日 上海

高级 FPGA 设计

2天

17-18 日 武汉

25-26 日 深圳

使用 PlanAhead 分析与设计工具进行基本设计

1天

30 日 深圳

20 日 上海

9-10 日 上海

使用 PlanAhead 分析与设计工具进行高级设计

2天

28-29 日 武汉

25-26 日 上海

22-23 日 杭州

Xilinx 部分重配置工具和技术

2天

21-22 北京

利用 Spartan-6 和 Virtex-6 系列进行设计

2天

使用 7 系列产品进行设计

2天

Xilinx FPGA 的信号完整性和电路板设计

2天

设计 LogiCORE PCI Express 系统

2天

利用以太网 MAC 控制器进行设计

2天

利用千兆位级串行 I/O 进行设计

2天

28-29 日 北京

利用 System Generator 进行 DSP 设计

2天

10-11 日 上海

Xilinx FPGA 的基本 DSP 实现技术

2天

利用 VHDL 进行设计

2天

利用 Verilog 进行设计

2天

30 日 北京

Vivado 设计套件的基本 Tcl 脚本

1天

2 日 成都

27 日 深圳

17 日 武汉

FPGA 设计方法

1天

16 日 上海

20 日 北京

3 日 西安

Xilinx 在线培训课程系列(WebEx) 以在线培训方式实施现场课堂教学和实验,学 员于线上学习。面向全国或是海外华人工程师 参加的中文 FPGA 培训课程,适合交通不便或 工作繁忙不便参加现场培训的工程师。课程安 排 Q&A 时间,老师现场解答学员在学习和实 验中遇到的问题,提供最新的实验项目现场操 作并进行专业辅导,直接带给学员 FPGA 项目 设计的亲身体验。授课老师都获 Xilinx 认证, 并具有丰富的 FPGA 系统项目经验。 依元素科技高级 FPGA 培训课程系列

6 日 杭州 24-25 日 上海

4-5 日 深圳 20 日 天津

17 日 深圳 11-12 日 深圳

29-30 日 武汉 11-12 日 西安

10-11 日 深圳

14-15 日 上海

4-5 日 北京

24-25 日 北京

28-29 日 深圳

9-10 日 成都

7-8 日 北京 7-8 日上海

15-16 日 天津 21-22 日 北京 15-16 日 深圳 18-19 日 天津 11-12 日 深圳 7-8 日 上海 25-26 日 上海

7月

培训课程

8月

9月

9日

6日

3日

面向性能的设计

14-15 日

7-8 日

4-5 日

高级 FPGA 设计

7-8 日

11-12 日

9-10 日

PlanAhead 分析与设计

21-22 日

14-15 日

15-16 日

利用 Spartan-6 系列进行设计

24-25 日

18-19 日

18-19 日

利用 Spartan-6 系列进行设计

28-29 日

25-26 日

22-23 日

利用 Spartan-6 系列进行设计

30 日

27 日

24 日

培训课程

7月

8月

9月

4-5 日 北京

以 FPGA 应用方向与案例式教学为主的 FPGA 实战课程,使用 Xilinx 最新的 FPGA 培训课程 为基础,理论部份针对工程师在设计上最常见需 求和问题来安排培训内容,实践部分结合实际项 目案例培养动手能力和解决实际问题的调适能 力,是有一定 FPGA 设计基础工程师,想提升设 计能力的最好选择课程,授课老师都获 Xilinx 认 证,并具有丰富的 FPGA 系统项目经验。

21-22 日 北京

22-23 日 北京

28-29 日 北京

25-26 日 北京 7-8 日 北京

17-18 日 北京

4-5 日 北京 29-30 北京

14-15 日 北京 28-29 日 北京

有关报名注意事项 : 请联系 :北京 : 电话 : 010-8275-7632, 传真 : 010-62166151 深圳 : 电话 : 0755-86186715, 传真 :0086-755-86186700, 电子邮件 : training@e-elements.com 地址 : 北京市海淀区北三环西路 32 号恒润国际大厦 801 网址 : www.e-elements.com

Xilinx 联手中国学术界 加速中国未来网络发展 全新 SDNet 软件定义规范环境和 All Programmable FPGA/SoC 将可编程能力和 智能化功能从控制层扩展至数据层,支持 SDN 及任何软件定义网络架构。清华大学 大学毕军教授表示,SDNet 是对计算机学科 人士进行 SDN 和未来网络研究、开发、试 验的一次“解放”, 是革命型的 SDN 技术。 2014 年 4 月 25 日,中国北京 – All Programmable 技术和器件的全球领先企 业赛灵思公司 (NASDAQ: XLNX) 今天在 位于盘古大观七星写字楼的北京办公室面 对中国通讯及电子行业媒体举行了“赛 灵思 SDNet(Software Defined Specification Environment for Networking) 解决方案媒体 见面会”。赛灵思公司负责通信 IP 和服务的 全球高级副总裁 Nick Possley 为媒体们全面 介绍了赛灵思推出的业界首款“软”定义网 络 (“Softly”Defined Networks) 解决方案, 并表示了赛灵思将大力支持中国未来网络 的研究与开发。中国 SDN 专委会执行副主 任、清华大学毕军教授应邀出席此次媒体见 面会,对赛灵思 SDNet 解决方案以及赛灵 思对中国 SDN 行业研究和发展支持,表示 了充分的肯定。 SDNet,指的是面向网络的软件定义 规范环境( Software Defined Specification Environment for Networking),是赛灵思 2014 年 3 月 31 日(美国时间)Interop 2014 网络通讯展会期间面向全球发布的业界首款 “软”定义网络 (“Softly”Defined Networks) 解决方案。SDNet 与赛灵思领先一代的 和 All Programmable 芯片产品相结合,可支持 创建软定义网络,这种交叉技术远远超过当 今的软件定义网络(SDN)架构 , 支持新一 代更智能网络和数据中心实现更多的可能。 除了 SDNet 规范环境的介绍,Nick 还 分享了一个令人兴奋的好消息,毕军教授 和成功实现 Zynq All Programmable SoC 定 制化 SDN 研发平台原型设计的西安交通大 学胡成臣副教授,已经被赛灵思公司选为全 球首批四个早期使用 SDNet 的先进学术研 究团队(SDNet advance academic research group)之一,赛灵思将大力支持他们率先 使用并实现 SDNet 的尖端技术研究。 毕军教授分享中国 SDN 发展及 SDNet 的影响,认为 SDNet 是是革命型的 SDN 技 术,是对计算机学科人士进行 SDN 和未来 网络研究、开发、试验的一次“解放”,这 必将大大加速中国对更加智能未来网络架构 的研究开发工作。

赛灵思 中国 /香港代表处 欢迎各位作出反馈讯息和建议 传真 :(010)5939 3005 电邮 : webmarketing_apac@xilinx.com

香港 上海 深圳 北京

电话 : (852)2424 5200 电话 : (86)21-5131 6060 电话 : (86)755-8660 6588 电话 : (86)010-5651 7300

更多的联络点请查询 :china.xilinx.com/cn 2014年第二季度

传真 : (852)2494 7159 传真 : (86)21-5198 1020 传真 : (86)755-2583 0986 传真 : (86)10-5939 3005

电邮 : ask-china@xilinx.com

技术支持 :china.xilinx.com/cn/support 赛灵思中国通讯

65


66

赛灵思中国通讯

2014年第二季度


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.