赛灵思中国通讯第四十七期 - 用planahead启动并运行zynq soc设计

55
SOLUTIONS FOR A PROGRAMMABLE WORLD 2013 Խ ISSUE 47, SPRING 2013 Zynq SoC上的软件可编程数字预失真 在硬件ഡ中采ႨFPGA的基本要点 Vivado 2012.4版本的最新消息 PlanAhead ѩ ѩ Zynq SoC 赛灵思 Xilinx News 请即浏览赛灵思中国通讯 网络版的全部精彩内容 www.xilinx.com/cn/xcell47

Upload: xilinx-inc

Post on 17-Mar-2016

341 views

Category:

Documents


2 download

DESCRIPTION

赛灵思的All Programmable SoC使设计人员受益匪浅,虽然开发工作乍看起来很复杂,但是事实上并非如此。详情请看本期中国通讯的封面文章。

TRANSCRIPT

Page 1: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

S O L U T I O N S F O R A P R O G R A M M A B L E W O R L D

第 四 十 七 期 2 0 1 3 年 春春 季季 刊刊 I S S U E 4 7 , S P R I N G 2 0 1 3

Zynq SoC上的软件可编程数字预失真

在硬件设计中采用FPGA的基本要点

Vivado 2012.4版本的最新消息

用用PlanAhead启启动动并并运运行行Zynq SoC设设计计

赛 灵 思 中 国 通 讯Xi l i nx News

请即浏览赛灵思中国通讯网络版的全部精彩内容

www.xilinx.com/cn/xcell47

Page 2: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

Copyright © 2012 Avnet Electronics Marketing

ZedBoard是一款基於賽靈思ZynqTM-7000器件的低成本開發板,也是

行業首款面向廣大開源社區的ZynqTM -7000 ALL PROGRAMMABLE

SOC開發套件。開發板為基於Linux、安卓、Windows或其它操作系

統/實時操作系統的設計開發提供了所需的一切。另外,該平臺提供

數款擴展連接器,便於用戶訪問處理系統和可編程邏輯。Zynq-7000

系列緊密集成了ARM®處理系統和7系列可編程邏輯,充分利用它們

的優勢,並結合ZedBoard可以開發出獨樹一幟且功能強大的設計。

為推動ZedBoard套件的創新分享和交流,安富利公司還專門打造了

www.zedboard.org開源社區,用戶可以通過這個社區與其他同樣從

事Zynq設計的工程師開展各種各樣的協作。

套件組成部分:u Avnet ZedBoard 7020 基礎板u 12 V AC/DC 電源u 4 GB SD 卡u Micro-USB 電纜u USB 適配器: Micro-B (公頭)對 Standard-A(母頭)u 入門指南u ISE® WebPACKTM, 配器件專用 ChipScope 許可證

特性:u Zynq-7000 XC7Z020-CLG484-1u 存儲器 u 512 MB DDR3 u 256 Mb Quad-SPI Flash u 4 GB SD 卡u 板載 USB-JTAG 編程u 10/100/1000 以太網u USB OTG 2.0 和 USB-UARTu PS & PL I/O 擴展 (FMC, PmodTM, XADC)u 支持多顯示器 (1080p HDMI, 8-bit VGA, 128 x 32 OLED)u I2S 音頻編解碼器

行業首款面向開源社區的

ZynqTM -7000 ALL PROGRAMMABLE SOC 開發套件

北京:010-8206 2506 重慶:135-9422 8267 上海:021-3367 8387 西安:029-8832 8891武漢:027-8732 2719 瀋陽:024-8290 2597 南京:025-8483 8138 廣州:020-2808 7301成都:028-8652 8262 青島:0532-8097 0718 杭州:0571-8580 0667 深圳:0755-8378 1886廈門:0592-516 2777 香港:00852-2212 7848 蘇州:0512-6956 7753

目標應用:u 視頻處理u 電機控制u 軟件加速u Linux/Android/實時操作系統開發u 嵌入式 ARM® 處理u 通用 ZynqTM -7000 原型設計

價錢 : USD$ 395.00

型號 : AES-Z7EV-7Z020-G

更多關於ZedBoard的信息,請訪問:

http://www.zedboard.org 或聯繫以下安富利辦事處

www.em.avnetasia.com

Page 3: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计
Page 4: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

封面专题

4 赛灵思中国通讯 47期 2013年春季刊

赛灵思的All Programmable SoC使设计人员受益匪浅,虽然开发工作乍看起来很复杂,但事实上并非如此。

用PlanAhead启动并运行Zynq SoC设计

Page 5: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

2013年春季刊 赛灵思中国通讯47期 5

Cover story

Zynq™-7000 All Programmable SoC

是在单芯片上将双核ARM®Cortex™-

A9 处理器与可编程逻辑相结合的最

新系列赛灵思器件中的首款产品(参见《赛

灵思中国通讯》第四十期的封面专题)。因

此,该产品在系统灵活性以及性能和集成度

方面均实现了飞跃。不过,这款片上系统平

台 确 实 需 要 F P G A 工 程 师

考虑采用与传统逻辑FPGA略有不同的开发

方法。

所幸的是,开发工作并不像您想象的那

么困难,这在很大程度上要归功于赛灵思推

出的PlanAhead™工具。我们不妨更细致地

看看生成Zynq-7000 系统的步骤,我们可用

JTAG载入该系统。

大量FPGA资源

Zynq-7000 系列将双核 ARM Cortex-

A9 处理器(该芯片的处理系统(PS))与相

当于赛灵思Artix™或Kintex™系列器件的可

编程逻辑(PL)资源完美结合在一起。根据您

所选器件和速度级别,处理系统的工作频率

可高达1 GHz。

Zynq SoC的处理系统侧负责为众多存

储器和通信外设提供支持硬件。该架构使得

处理系统能作为主设备并自主工作,甚至无

需加电或配置可编程的逻辑系统。处理系统

支持的主要特性包括:

• 动态RAM 接口:DDR SDRAM ,支持

DDR 2和DDR 3标准,包括LPDDR2。

• 静态RAM接口:支持SRAM器件以及

NAND、NOR和QSPI闪存存储器。

• 通信接口:USRT、CAN、 I 2C、SPI、

USB、千兆以太网和SD/SDIO。

• 通用I/O:支持多达4个32位通用I/O。

用PlanAhead启动并运行Zynq SoC设计

作者:Adam Taylor首席工程师EADS [email protected]

这是Adam Taylor计划中推出的系列 Zynq-700 AllProgammable SoC实际操作辅导资料中的首篇文章。Adam经常为Xcell 杂志撰稿,在本期中他还发表了一篇介绍如何在硬件设计中采用FPGA的文章。他也在All Progrmmable 星球社区(http://www.programmableplanet.com/profile_con-tent.asp?piddl_userid=450978)撰写博客。

Page 6: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

除了DRAM链路以外,其余接口

都采用 Multiuse I/O、一组54个I/O引

脚,可根据需要分配用于不同功能。

当然,这意味着您不能同时实现所有

外设,不过您可根据需要将接口扩展

到可编程逻辑。

处理系统侧和可编程逻辑侧之间可

全面互联传输,包括:

• 高级微控制器总线架构(AMBA®)和

高级可扩展接口(AXI)均提供主/从接

口,包括直接链接到外部DDR和片

上存储器。此外,加速器联接端口

(ACP)提供了从可编程逻辑侧到CPU

存储器空间的一致存取。

• 扩展的Multiuse I/O 使用户能够通过

可编程逻辑I/O增加处理系统外设的

数量。

• 直接存储器存取和中断,包括从PL

到PS的16个中断以及4个DMA通道。

• 从处理系统到可编程逻辑的4个时钟

和复位端口。

Zynq配置不同于赛灵思以前众多

系列FPGA的配置过程,甚至也不同于

Virtex®-2 Pro、Virtex-4和Virtex-5等

采用硬核宏处理器的系列产品的

配置。在Zynq系统中,处理侧为主设

备,根据正常的软件引导过程引导,

从非易失性存储器载入应用,随后开

始执行或使用更复杂的引导载入程序

交叉载入应用至速度更快的DDR存储

器。Zynq的可编程逻辑侧通过处理器

配置访问端口(PCAP)载入,可支持部

分或完整配置。您也始终能通过JTAG

接口配置该器件。由于Zynq器件复杂

性较高,能提供更多常见的FPGA模式

引脚,从而可支持各种配置方法。

我们需要什么工具?

创建片上系统(SoC)所需的工作

比开发逻辑型FPGA设计略多,但仍

比较直观,而且工具链也提供很好的

指南。要创建Zynq SoC 设计方案,

至少需要4款工具:Xilinx Platform

Studio(XPS)、ISE®设计套件、赛灵

思的软件开发套件(SDK)和iMPACT。

您可用Xilinx Platform Studio

( X P S ) 创 建 处 理 系 统 , 可 以 是

PowerPC®、MicroBlaze™或本案例

中的Zynq PS。在XPS中您可定义配

置、接口、时序和地址范围,也就是

生成处理器系统所需的一切。这个过

程将生成定义系统的HDL网表。

大多数FPGA工程师都熟悉ISE。这款赛灵思工具链支持包括XPS网表

在内的HDL设计,可生成所需的比特

文件。软件开发套件(SDK)则帮助您开

发处理系统所需的软件。要正确

生成软件,SDK应了解系统的硬件

配置。最后,iMPACT工具可帮助您将

比特文件编程到系统中并生成比特流

格式。

您可孤立地分别使用上述4款工具

创建All Programmable SoC,不过

赛灵思的PlanAhead工具可提供更大

的帮助,它能够将这些工具集成在一

起,大幅简化开发工作。下面我们就

在进一步深入了解Zynq流程的同时重

点谈谈PlanAhead方法。

6 赛灵思中国通讯 47期 2013年春季刊

封面专题

图1 - AXI总线的基础系统构建器

Page 7: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

创建硬件

开 发 进 程 的 第 一 步 就 是 打 开

PlanAhead并创建新的RTL项目,

这项工作相当直观。由于您一开始

没有现成的RTL、IP或约束,因此就

一直选择“下一选项”直到看到器

件选择标签为止。如果您使用开发

板,那么请选择您希望使用的开发

板,否则请根据您的系统选择所需

的器件。

创建项目后,您会看到PlanAhead

的默认屏幕。这时您应添加源文件到

设计方案中,您可从位于屏幕左侧的

“流程选项标签”下的“项目管理选

项”中勾选“添加源”来实现这一操

作。我们首先感兴趣的是让Zynq的处

理系统侧启动并运行起来,因此请选

择“添加或创建嵌入式源”,这会打

开另一个标签,从中您可选择“创建

次级设计”按钮,并输入选定的处理

系统名称。

下面,工具会用所谓“基础系统构

建器 (BSB )向导”带您通过一系列

步骤创建基础系统,如图1所示。这

一步中会打开Xilinx Platform Studio,

您会看到器件中的处理系统图示

(见图2)。

如果您针对某款开发板开展工

作,工具会自动为该开发板配置外设接

口,不过如果您针对某个单一器件开展

设计,那么您就需要在系统中实现自己

的外设,比方说 DDR 时序和 MIO

连接等。操作起来非常直观,您可在离

开XPS并返回PlanAhead之前运行设计

规则检查程序确保没有出错。

返回PlanAhead之后,您需要为

处理系统生成一份VHDL或Verilog语言

的RTL网表,这可通过项目设置选

定您想用的语言。生成 H D L文件

很简单,只需右击处理系统名称并选

择“生成HDL”选项即可。

您随后也可在PlanAhead中通过

“添加源”选项为器件的可编程逻

辑侧创建RTL设计。创建了所需的

RTL后,您还需通过右击选择“设置顶

层”选项来定义顶层模块。如果您的设

计同时包含处理系统和可编程逻辑系

统,那么您应创建顶层RTL文件根据需

要将其连接起来。

SoC完成和比特文件生成前的最后

一步就是创建含有Zynq-7000 器件PL

侧管脚信息的约束文件,这只需在Plan

Ahead中右击源窗口中的约束选项,然

后选择“添加源”即可。现在点击“运

行实现”按钮便可实现设计。

6 赛灵思中国通讯 47期 2013年春季刊 2013年春季刊 赛灵思中国通讯47期 7

封面专题

图2 - 处理系统的XPS视图

Page 8: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

创建软件

用PlanAhead 和 Xilinx Platform

Studio 定义系统后,您现在应创建在

处理系统上运行的软件。大部分开发

工作,您将采用软件开发套件,不过

采用PlanAhead来设计,还要再做一

件事,那就是通过PlanAhead中的“

导出选项”导出硬件配置到SDK。

执行导出工作会打开SDK并导入

硬件规范(如图3所示)。

完成硬件导入后,您应为硬件创

建板支持包(如图4所示)。该BSP特

定于硬件实现,包含外设驱动程序以及

一系列特定硬件的C报头文件,如定义

系统存储器映射的 xparameters.h

以及其它系统配置参数。创建BSP时,

请确保选择您的目标处理 系统和

CPU0。(我们分析的是一个简单的系

统,多核工作在这里暂不涉及。)

下一步就是创建实际的软件项目

本身了。这里您应选择C或C++语言以

及一系列模板,既可以是 简单的

“hello world”,也可以是一级引导

载入程序。您还可选择是在裸机系统

(也就是说不带操作系统的系统)上

还是在Linux操作系统中实现项目。

完成这一步骤并创建好您的项目后,

您就可以开始为应用编写代码。

如果您是开发嵌入式软件的新

手,这项工作乍看起来可能有点可

怕,不过SDK能为新手和经验丰富的

开发人员提供大量的支持与协助。如

果您不清楚系统中的外设驱动程序或

者如何驱动,那么工具 P r o j e c t

Explorer中BSP下的system.mss文件

可提供存储器映射,您在此可获得有

用的链接列表,连接到有关技术文档

和示例。

封面专题

8 赛灵思中国通讯 47期 2013年春季刊

图3 - 导入硬件到SDK

板支持包(BSP)特定于您的硬件实现,包含外设驱动程序以及多种特定硬件C报头文件。

Page 9: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

项目中可调入大量C报头文件,

一些常用的文件包含驱动外设的参数

和函数。

• Stdio.h定义标准输入输出,许

多以前用过C语言的人都很熟悉

该文件。

• Platform.h 定义实现与平台初始

化的基本功能,并支持清空。

• Xil_types.h定义赛灵思IP所需的

一系列类型。

• Xgpio.h定义AXI连接的通用I/O

模块驱动程序。

• Xparameters.h定义硬件架构以

及实现的配置。

编写代码并成功编译后,您当然

希望把应用下载到开发板上了。要实

现这一目的,首先应创建链接文件脚

本,其将决定可执行文件在系统存储

器内的位置。虽然您最初编程的文件

可能比较小,完全能放在片上存储器

中,但最好的办法通常是把它放在

DDR存储器中(如果使用DDR的

话),以表明该接口已正确配置。您

可通过右键点击项目并选择“生成链

接脚本”来创建链接脚本。

最后要做的事情就是设置运行配置

(project explorer -> project -> run ->

r u n , 右 击 弹 出 的 菜 单 中 ) 。

这里您可定义STDIO连接,即您针对

STDIO所采用的串行端口(如果使

用该连接的话)。圆满完成上述工作后,

可 应 用 配 置 并 关 闭 ( 不 要 点 击

“运行”,因为我们现在还没完全做好

准备呢)。最后一步就是连接开发板到

P C上,连接 J T A G电缆以及包括

RS232串行电缆等在内的其它各种

所需电缆,并通过赛灵思工具对

硬件进行编程(使用“FPGA编程”选

项)。确保比特文件准确,并对器件

编程。

完成配置后,您现在能下载ELF文

件并测试程序了。这很简单,只需在Pl

anAhead 的 Project Explorer 中选

择您的项目,然后右击“作为……运

行”和“在硬件上启动”即可。如果

您此前没有创建或编译过自己的代

码,那么运行该命令在设计无误情况

下也会自动创建出设计方案。

Zynq-7000器件提供了全新的All

Programmable SoC 开发流程,新手

乍看起来可能觉得复杂,不过赛灵思

的PlanAhead内集成的工具链,可

供方便使用,打造出了一个无缝的、

入门级开发进程,可确保您能够相对

轻松地创建Zynq系统。

2013年春季刊 赛灵思中国通讯47期 9

封面专题

图4 - 创建板支持文件

Page 10: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

10 赛灵思中国通讯 47期 2013年春季刊

专家观点

预防故障的设计安全关键型系统规划需要密切关注硬件故障率和冗余。

Page 11: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

2013年春季刊 赛灵思中国通讯47期 11

就安全关键型系统(飞机、

火车、汽车等)或安全工

业控制(风车、工厂蒸汽

车间等)而言,设计人员必须考虑到

诸多因素。首先,必须考虑到故障始

终有可能发生,而且肯定会发生。[1]

其次,当故障发生时,您的任务就是

确保故障不会导致财产损失或人员

伤亡。

商业系统发生故障,会带来不便

或令人沮丧,然而安全关键型应用发

生故障则后果非常可怕。因此故障安

全系统的设计人员必须区分并采用适

当的设计理念来消除或至少最大限度

地减少故障的发生。

在服务器、路由器、电话系统、

手机交换机或其它商业系统中,故障

造成损失、破坏或危及生命的可能性

极低。根据服务级别(受影响的客户

数量)和设备用途(商业电话交换机

或911呼叫中心),也有可能实施一

套更严格的规定。然而,如果系统被

视为非安全关键型系统,一旦出现故

障,仅会造成服务损失,虽然令人不

愉快,但仍可被接受。当然,故障率

低的美誉有助于赢得客户的欢心并愿

意为之付费。

下面我们在讨论无法接受故障

的系统之前先来进一步看看可接受故

障、仅意味着造成服务损失的系统。

发生故障也“OK”的系统

一般情况下,设计人员都希望尽

可能加强设计的可靠性。可靠性季度

报 告 [ 2 ] 在 表 1 - 1 6 中 按 技 术 分

别列出了赛灵思FPGA器件的硬故障

率。就7系列器件的硬故障率来说,截

至 2 0 1 2 年 8 月 2 2 日 为 2 4 F I T

(每10亿小时的故障次数)。这相当

于每隔4,756年才会发生一次故障。假

设我们现场部署1万个系统,那么一个

客户遇到现场故障的频率平均为每

174天出现一次。这就是基准,也就

是假设系统只包含一个赛灵思28nm7

系列FPGA器件时(“没有其它特殊

情况”)的故障率。然而,现在没有

任何系统只包含一个组件。系统还

会包含印刷电路板、电源、连接器、

LED、开关等。

含有所有相关组件的典型系统,

其使用寿命比含有单个赛灵思FPGA

器件的系统要短得多。系统的典型故

障率为 1000 到 10000 FIT,而7

系列FPGA仅仅只作为其中的一小部

分。这相当于每隔114年或甚至每隔

11.4年发生一次故障,也就是说每隔4

天或甚至不到1天就会出现客户产品

返修问题。仍要说明的一点是,在

非安全关键型系统中,故障只会造成

不便,不会造成人员伤亡或财产损失

破坏。

不是所有组件的故障率都保持恒定

不变。大多数器件的平均故障间隔时间

都有一个所谓的“浴缸”曲线,即边缘

陡峭而底部平坦。使用初始阶段的故障

较后一阶段多,这就是所谓的“早期故

障期”。初始阶段之后的较长时间内故

障率较低,这就是所谓的“正常工作寿

命”。接近组件使用寿命的末期时,故

障率又开始增加,这就是所谓的“使用

寿命终止”阶段。

比方说,一台笔记本电脑的一般

使用寿命为3年,刚买之后和使用3年

后的故障率最高,而在此期间的故障

率要低得多。

专 家 观 点

预防故障的设计安全关键型系统规划需要密切关注硬件故障率和冗余。

作者:Austin Lesea首席工程师赛灵思实验室[email protected]

Page 12: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

赛灵思设计的商业和工业产品最

低使用寿命为15年。根据结温不同,

这一使用周期有长有短。可靠性和用

户指南介绍了各种有关赛灵思FPGA

使用寿命的详细信息。

发生故障不“OK”的系统

如果系统安全影响到生命或环境

安全,那对故障率就有严格的规定要

求。这种规定可能非常严,不过没有

任何系统是完美的,任何设计也不可

能做到绝对的安全,因此肯定会有故

障率,要实现如此严格的故障率要求

也会非常困难

比方说风车的电源控制系统。风

车一旦发生故障,可能导致风车的叶

片掉落,设备彻底损坏,甚至可能导

致附近的人员伤亡。让我们假设故障

率为10 FIT,也就是每隔11,416年发

生一次故障。首先我们要明确的是,

没有任何单个设备的可靠性能达到这

一标准要求,系统肯定要有某种形式

的冗余。

由于组件的硬件故障率太高,无

法满足要求,因此设计人员必须为所

有关键组件、子系统和电源提供冗余

系统,还要辅助其它方法才能确保不

会发生故障。子系统的设计通常要保

证一点,即使发生故障,也能保证一

定的安全性。

不妨设想一下有两个完全独立的

设备,每个设备的故障率均为10,000

FIT,二者都通过一个冗余通信通道

相互校验(比方说每个系统中四线上

的2个UART作为通信通道)。单点故

障为四线或UART,但任何故障均可

被检测到,子装配件不能跟另一个子

装配件进行通信,但系统仍能立即安

全地彻底关断。

两个系统仍可能同时发生故障。

这种可能性为每个系统故障可能性的

乘积,即每隔1.3亿年出现一次同时发

生故障。这样的性能水平应该能够满

足要求。

再举一个例子。航天飞机采用5

个冗余系统,只有这5个系统都没问

题才能发射。发射后,只要5个系统

中的3个可以工作,系统仍然被视为

安全。同样,商用飞机在飞行控制中

也采用三重冗余安全性。

我何时能完成工作?

设计人员通常忘了,可靠性是一

项永无止尽的工作,除非已有明确规

定的可靠性目标。就上述例子而言,

如果赛灵思7系列产品某组件的软故

障率(大气中子造成的软故障)为

1 FIT(PicoBlaze™软处理器的实际

故障率就是这样),那么设计人员该

怎么办呢?通常而言只要这种故障率

低于硬件故障率,就能实现很长时间

的安全工作,可靠性任务就完成了。

如果最终系统不满足要求,那么

或许是架构设计错了(比方说没有

冗余)。

现在有标准了⋯⋯

幸运的是,设计人员现在有了工

业、航空、汽车、医学等其它系统的

国际标准。[3]IEC 61508是适用于所

有要求的最高级伞形标准,其下每个

不同的行业都有自己的子标准。关于

这些标准要记住的一点是,认证的不

是组件制造商,而是要认证最终系统

和最终系统的制造商。

要是有人声称出售给您的FPGA器件通过了26262认证(IEC汽车标

准),那他肯定在说谎。同样地,说

器件通过了DO-254飞机标准认证也

是在说谎。要满足标准的是整个系统

和它的设计,并不是组件。当然,如

果系统中只有一个FPGA器件而没有

别的,那自然很容易发现故障率。如

果是赛灵思组件的话,查询UG116就行了。但现实情况绝非如此,因为所

有系统都不止包含一个器件。

参考文献

1. “故障始终有可能发生”,A d am

Savage,资料来源:Myth Busters:

http://www.brainyquote.com/quotes/

quotes/a/adamsa vage207580.html

2. http://www.xilinx.com/support/docu-

mentation/user_guides/ug116.pdf

3. 如需了解更多详情和有趣的阅读材料,

敬请访问:www.xilinx.com/applica-

tions/aerospace-and-defense/avion-

i c s / 。 您 在 此 可 找 到 D O - 2 5 4

和SEU白皮书。另一个有用的链接为:

http://en.wikipedia.org/wiki/IEC_61508

Austin Lesea毕业于加

州大学伯克利分校,

1974年获得电气工程

与计算机科学系电磁

理论专业理学士学位,

1975年获得通信和电气工程与计算机科学系通

信与信息理论专业硕士学位。他在电信领域

工作了20年,主要设计光学、微波和铜传输系

统。Austin曾在赛灵思IC设计部工作过10年,

主要开展Virtex®产品线工作。过去3年来他一

直在赛灵思研究实验室工作,研究现有技术发

展的问题。此外,Austin还拥有70项专利。

12 赛灵思中国通讯 47期 2013年春季刊

专 家 观 点

Page 13: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

13 赛灵思中国通讯 47期 2013年春季刊

无线通信领域的出色表现

赛灵思的Zynq All Programmable SoC和Vivado HLS工具为实现无线数字前端应用提供高效灵活的途径。

作者:Baris Ozgul赛灵思爱尔兰都柏林分部研究科学家[email protected]

Jan Langer赛灵思爱尔兰都柏林分部研究科学家[email protected]

Juanjo Noguera赛灵思爱尔兰都柏林分部研究科学家[email protected]

Kees Vissers赛灵思公司杰出工程师[email protected]

Zynq SoC上的软件可编程数字预失真Zynq SoC上的软件可编程数字预失真

Page 14: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

2013年春季刊 赛灵思中国通讯47期 14

数字预失真(DPD)是一种先

进的数字信号处理技术,

可减小无线发射器中功率

放 大 器 ( P A ) 的 非 线 性 影

响。DPD在为3G/4G基站甚至更高

系统提供高效无线电数字前端解决方

案方面发挥着关键作用。一般的DPD

系统包括一个可在PA输入之前补偿非

线性影响的预失真器,和一个位于PA

输出反馈路径上的估计器。该估计器

用于更新预失真器系数,以反映操作

特性可能的变化。根据调制类型、功

率放大器技术和传输带宽的不同,

DPD解决方案因系统而异。因此,我

们应当为数字前端(DFE)提供灵活的

设计方法,这有助于新DPD系数估计

算法的实现和集成。

新型FPGA是一种极具前景的目

标平台,可用于实现包含DPD的灵活

无线数字前端解决方案。赛灵思

Zynq™-7000 All Programmable SoC

将可编程逻辑架构和多核ARM®处理

器系统完美结合在一起,不失为一种

很好的新选择。Zynq-7000 All Pro-

grammable SoC 能在软硬件组件

之 间 进 行 功 能 分 区 , 从 而 提 高

整体系统性能。如图 1所示,A l l

Programmable SoC 能在单芯片中

实现DFE的全部必要功能。

我们的团队创建了一款软件可编

程设计流程,用以在Zynq - 7000

器件上实现DPD系数估算,方法是根

据所用估计算法的复杂性对软硬件组

件功能进行灵活分区。由于采用了

Vivado™高层次综合(HLS)工具,我

们的工作效率大幅提升,这也使得我

们能在软件中实现和验证硬件设计。

ZYNQ上的软件可编程设计流程

Zynq-7000 SoC是一款混合型

计算平台,包括两个主要组成部分。

一大部分是:两个工作频率高达

1 GHz的嵌入式ARM Cortex™-A9处

理器和他们的支持基础架构,其包括

高速缓存分级结构、存储控制器和

I/O外设。这部分本身就是一个完整的

可编程嵌入式平台,无需任何FPGA

编程就能使用。两个ARM处理器内核

配套提供了被称为NEON的单指令多

数据(SIMD)扩展功能,可支持128位

宽的数据路径。

Z y n q - 7 0 0 0器件的第二大组

成部分就是:一个可编程逻辑区域,

实际就是一个传统的FPGA。该器件

的主要优势是能够通过许多AXI4通信

端口在FPGA和嵌入式处理器之间提

供高带宽,这样,我们就能为处理器

开发软件,而且还能根据需要将计算

密集型任务交给可编程逻辑来完成。

图2给出了我们建议的设计流程的

概览。第一步与典型的软件设计流程

没什么两样。流程涉及到在纯软件中

实现应用,并对结果进行全面的测试

与验证。第二步所进行的特性描述可

揭示出应用瓶颈,比如计算密集型子

函数需要进行硬件加速。

无 线 通 信 领 域 的 出 色 表 现

图1 - Zynq All Programmable SoC上的可编程无线数字前端

Page 15: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

所谓的软硬件分区不仅要选择哪

些功能需要进行加速,还要确定适当

的通信基础架构,是用DMA传输还是

存储器映射等。此外,为了调用硬件

加速器而不是原始的C函数,我们还

要对软件做一些必要的修改。

在传统设计流程中,经验丰富的

硬件设计人员会用VHDL或Verilog等

硬件描述语言来实现待加速的功能,

而有了赛灵思Vivado HLS工具,我们

可以用原软件功能自动生成相应的硬

件加速器,无需手动硬件实现。这

一转变需要手动分步执行几个优化

步骤,包括给代码添加指令,甚至要

重构算法,从而实现高效的硬件实现

方案。在此过程中,代码仍可作为软

件执行,这样设计人员就能使用原测

试与验证环境。这相对于传统的硬件

设计流程而言是一大优势。

优化后,Vivado HLS工具会生成硬

件加速器实现方案,以满足设计约束

条件。比方说满足所要求的时钟频率

和所需硬件资源量等。接下来的集成

步骤要求对通信组件(如DMA)进行

实例化,以支持硬件加速器和处理器

之间的互动。最后,系统综合生成比

特流对可编程逻辑进行编程。

面向可编程逻辑的高层次综合

HLS工具可提高可编程逻辑设计

的抽象层级,让耗时且容易出错的寄

存器传输级(RTL)设计任务变得透明。

这种工具的输入是特定算法的高级描

述,可针对目标硬件加速器实现并生

成RTL设计。

新型HLS工具接受无时序C/C++

描述作为输入,从中可解释输入/输

出行为顺序语义及架构规范。根据

C/C++代码、编译器指令和目标吞吐

量要求,这些工具能生成高性能流水

线化的架构。此外这些工具也能支持

自动流水线级插入和资源共享,从而

减少硬件资源的使用。

我们采用了图3所示的整体硬件

设计流程。整个流程的第一步就是重

构设计人员可能从MATLAB®功能描

述中获得的参考C/C++代码。这里所

谓重构就是指修改原始代码(通常在

编写时更多考虑概念的清晰和易于

理解的需求,而不是针对性能进行优

化),将其变为一种更适合目标处理

引擎需要的格式,这类似于重新安排

应用代码,以便在DSP处理器上实现

更高效的性能。面向FPGA时,代码

重构可能涉及重写代码,使其代表一

种某种架构规范,从而能够实现所需

的吞吐量,或者通过重写代码,以便

高效利用嵌入式DSP宏等特定FPGA

特性。

实现代码的功能验证可采用传统

C/C++编译器(如gcc),并重复利

用针对参考代码验证开发的C/C++级

测试平台。除了实现代码外,约束和

编译器指令(如代码中插入的编译指

令(pragma))是HLS工具的另外两个

重要输入。两个基本约束为目标

FPGA系列(即技术)和目标时钟频

率。自然,这两种因素都会对所生成

的架构中的流水线级数量产生影响。

设计人员可就不同的代码段应用不同

类型的指令。比方说,有的指令针对

循环展开(loop unrolling),还有的指

令用于限制特定功能或运算的实例,

以便最大限度地减少相应FPGA资源

的使用。

15 赛灵思中国通讯 47期 2013年春季刊

无 线 通 信 领 域 的 出 色 表 现

图2 - 始于软件开发的设计流程概览

Page 16: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

HLS工具用所有这些输入(实现

C/C++代码、约束和指令)生成RTL

输出,并报告所生成的架构的吞吐

量。如果所生成的架构不能满足吞吐

量要求,您可以修改实现C/C++代码

或指令,或者对两者同时进行修改。

如果架构满足吞吐量要求,那么您

可用RTL输出作为赛灵思Vivado或

ISE®/EDK工具的输入。最终可实现

的时钟频率和使用FPGA资源量的报

告只有在运行逻辑综合和布局布线后

才能生成。如果设计未满足时序要求

或FPGA资源与预期不符,那么您应

修改实现C/C++代码或编译器指令。

值得注意的是,这是一种迭代式

的设计流程,因此实现代码可能要经

历不同类型的重构,直到最后满足设

计要求为止。要记住这样一个关键理

念,那就是要重复利用C级验证基础

架构来验证实现方案的任何改动。这

样,您不必在寄存器传输级进行验

证,从而避免耗时的RTL仿真,有利

于缩短整体开发时间。

DPD的系统模型

较高的峰均功率比(PAPR)是3G/4

G和新兴无线系统中广泛使用的非恒包

络信号(比方说宽频码分多址(WCDM

A)和正交频分多址(OFDMA)信号)的

一大问题。由于PAPR较高以及PA的

非线性,发射信号在传输过程中会

失真。失真通常会导致带外杂散发射

增加,针对这个问题有一种简单直观

的解决方案,那就是PA输入后退,让

其处在PA的线性工作范围内。不过,

这种方法的最大弊端就是PA使用效率

低下,这会导致实现相同的输出功率

成本增加。另一种解决方案是采用数

字预失真。DPD能抵消PA的非线性影

响并提高其效率。

15 赛灵思中国通讯 47期 2013年春季刊 2013年春季刊 赛灵思中国通讯47期 16

无 线 通 信 领 域 的 出 色 表 现

图3 -可编程逻辑的高级综合设计流程

图4 - 数字预失真器(DPD)的算法视图

Page 17: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

如图4所示,DPD系统包括放大

之前采用的预失真器以及PA输出反馈

路径上的参数估计器。(请注意,该

图是算法视图,不含PA输入输出处的

数模转换器和模数转换器以及其间的

RF电路系统。)

参数估计器可根据PA输入输出的

采样计算出预失真器的系数。为了避

免PA行为受到更多模拟硬件的影响,

PA输出y0在估计参数之前应对齐。对

齐的PA输出y匹配于z的强度、延迟和

相位变化。

预失真器和参数估计器所依靠的

存储器模型用来描述PA的非线性影

响。对宽带DPD应用来说,通常采用

基于Volterra系列的模型,这种模型广

泛应用于非线性系统的近似估计。

我们下面来看看图4中的高效对齐

实现和最小二乘法(LS)估计器。DPD

系统采用这些模块在电源动态信号

特性发生重大变化时更新预失真器系

数。图4中的自相关矩阵计算(AMC)模

块是LS估计器设计中计算最复杂的函

数,它采用基于Volterra系列的模型生

成系数计算(CC)模块的输入,而CC则

负责估计预失真器系数。

与预失真器滤波器硬件不同,对

齐和LS估计器模块不以采样率运行,

因为DPD系统不更新预失真器系数它

们就不工作。这里,我们的主要目标

是缩短系数更新总时间。这样,DPD

解决方案能加快对变化条件的响应,

从而更高效地校正预失真。此外,更

新速度越快也能支持更复杂的DPD解

决方案,从而可使用更多活动系数。

更新时间缩短,我们就能以串行方式

多次运行同一设计方案,从而更新不

同数据路径的预失真系数。这种方法

使得我们能够实现高效的DPD解决方

案,满足多天线基站要求。

下面我们更深入分析一下软件可

编程设计流程的详情,这有助于高效

DPD系数更新解决方案的实现,满足

新型无线发射器的要求。

数字预失真的软件实现

在软件开发过程中,我们采用的

测试环境可从参考矢量读取z和y采样

(如图4所示),并写入一组系数。随

后,我们将其与写入MATLAB中的参

考实现方案的系数进行比较,从而可

以看出两组系数之间的差异。我们分

两步进行软件特性描述。首先,我们

在标准x86服务器上运行软件并采用

gprof软件特性描述工具估算出首个预

计瓶颈。其次,我们在ARM处理器上

运行软件,而后根据gprof的估计结

果,通过调用Zynq All Programmabale

SoC的全局CPU定时器对感兴趣的子

函数进行调节。该定时器运行频率为

CPU频率的一半,这样只需几个工作

循环的开销就能得到出色的分辨率。

图5显示了运行在ARM处理器上3个主

要功能模块的特性描述结果,由此可

以看出AMC模块是应用瓶颈,它占用

总更新时间的97%,成了硬件加速的

主要对象。

特性描述之前,我们预计图4中系

数计算所用的解算器可能占用较大部

分更新时间,因为相对于其它功能而

言,它要执行双精度浮点运算,不过

ARM的浮点单元能非常高效的处理这

一任务。

17 赛灵思中国通讯 47期 2013年春季刊

无 线 通 信 领 域 的 出 色 表 现

97%

0%3%

图5 - 初始特性描述结果

图6 - 采用NEON的两个并行32 x 32位乘法

Page 18: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

真正实现AMC模块硬件加速器之

前,我们要分析潜在的软件优化可能

性。ARM处理器的SIMD NEON引擎

有128位宽的数据路径。由于AMC算法

针对64位定点数据类型工作,因此NE

ON引擎如图6所示能执行两个并行计

算。编译器不是采用低级汇编指令来

访问NEON引擎,而是为指令提供一系

列类似于函数的封装器。这些封装器

被称作内部函数(intrinsics),提供类型

安全运算,同时还能让编译器自动计

划安排到NEON寄存器的C变量。

在C代码中应用内部函数能让速度

提高一倍。此外,在NEON运算期间,

正常的ARM处理器可以腾出来继续处

理简单的非NEON指令,如循环条件

和指针增量等,而NEON引擎则能并行

工作。

数字预失真的硬件实现

为了缩短参数更新总时间,我们

用Vivado HLS工具根据图3所示的设

计流程实现AMC加速器。我们加速器

的可编程配置支持多种不同预失真器

系数,也能在Volterra系列模型中灵活

选择非线性项。这样,我们能用相同

的AMC加速器支持几种不同的DPD配

置。此外,您还可再次修改现有的C++

代码和编译器指令,从而以比手动编

码RTL设计短得多的时间生成全新的加

速器。我们下面来进一步分析有关

AMC加速器所用的代码重写和编译器

指令的具体实例。

通过重写C/C++代码可更高效地利

用特定的FPGA资源,从而也能改善时

序,缩小占位面积。这种类型的优化

有两种非常典型的实例:位宽优化和

嵌入式DSP模块(DSP48)的高效利用。

例如,标准方法是在参考C/C++代码中

采用内置C/C++数据类型(如short、

int),但实际设计可能需要字长而不

是字节长度整数倍的定点数据类型。

在这里,Vivado HLS工具可支持采用

任意位宽代表整数数据类型的C++模板

类型。就我们的AMC加速器而言,我

们可采用这些模板类型来减少FPGA资

源占用,并最大限度地降低对时序的

影响。

图7所示的C++代码片段是体现代

码重写、位宽优化和DSP48s高效利用

的最好例证。该实例的重点突出了我

们在AMC加速器中广泛使用的复数

乘法。标准的复数乘法运算要进行4次

实数乘法计算,并需要在用全流水线

化的实现方案中使用4个不同的乘法

器。但如图7所示,我们也能通过重写

代码,采用3个乘法器(使用较少的DS

P48模块)来实现相当的功能,不过这

需要使用3个额外的预加法器且乘法器

的字长会增加1位。在本例中,Vivado

HLS工具生成3个33 x 32位乘法器,每

个都能提供65位结果。

17 赛灵思中国通讯 47期 2013年春季刊 2013年春季刊 赛灵思中国通讯47期 18

无 线 通 信 领 域 的 出 色 表 现

1: typedef struct 2: ap_int<32> real;3: ap_int<32> imag;4: CINT32;5:6: typedef struct 7: ap_int<64> real;8: ap_int<64> imag;9: CINT64;10:11: CINT64 CMULT32(CINT32 x, CINT32 y)12: CINT64 res;13: ap_int<33> preAdd1, preAdd2, preAdd3;14: ap_int<65> sharedMul;15:16: preAdd1 = (ap_int<33>)x.real + x.imag;17: preAdd2 = (ap_int<33>)x.imag - x.real;18: preAdd3 = (ap_int<33>)y.real + y.imag;19:20: sharedMul = x.real * preAdd3;21: res.real = sharedMul - y.imag * preAdd1;22: res.imag = sharedMul + y.real * preAdd2;23: return res;24:

1: void amc_accelerator_top(_)2: 3: #pragma HLS allocation instances=mul limit=3*UNROLL_FACTOR operation4:5: <function body>6: CINT64 Marray[MSIZE];7:8: #pragma HLS array_partition variable=Marray cyclic factor=UNROLL_FACTOR dim=19:10:11:#pragma HLS resource variable=Marray core=RAM_2P12: <function body>13: label_compute_M: for (int i=0; i < MSIZE; ++i)14: 15:#pragma HLS pipeline16:#pragma HLS unroll factor=UNROLL_FACTOR17: <loop body>18: 19: <function body>20:

图7 -经过优化的复数乘法代码

图8 - 循环展开的代码片段

Page 19: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

复数乘法的原始参考C++代码使

用4个乘法器,每个乘法器都与2个32

位数相乘。请注意,原始代码采用内

置的C/C++数据类型,而32位输入应

投射到64位整数中,以避免丢失信息

(因为结果是一个64位整数)。然

而,HLS工具可根据该代码生成4个

64 x 64位乘法器,这相对于DSP48而

言显然昂贵得多。在另一方面,对数

据类型而言,通过采用图7中的C++模

板类型,C++代码功能无需任何投射

也能很好工作,而Vivado HLS工具只

生成3个33 x 32位乘法器,且每个乘

法器都使用4个DSP48。

实现AMC加速器的主要原因是为

了缩短运行AMC算法所需的时间,进

而缩短更新预失真器系数的总时长。

为此,我们在C++代码中对回路进行

流水线化,而且只要有可能也可运用

循环展开。使用Vivado HLS工具,我

们已验证实现方案中耗时最长的回路

是矩阵计算回路。我们通过可配置因

数将循环展开,并将其在编译器选项

中预定义为C宏。设计人员根据展开

因数可在更好的资源共享和更短的计

算时间之间进行选择。

图8显示了我们如何采用可配置展

开因数(UNROLL_FACTOR)以及软

件级上用于循环展开的Vivado HLS指

令。在矩阵计算回路中,我们调用图7

中的CMULT32函数,使用3个乘法器

进行复数乘法。在图8中,第三行的

HLS指令在回路并行的情况下支持

3xUNROLL_FACTOR乘法器共享。

第八行指令通过展开因数对存储矩阵

值的阵列进行分区,从而避免并行存

取问题。第15和16行分别显示了我们

如 何 应 用 回 路 流 水 线 ( l o o p

p i p e l i n i n g )和循环展开指令。此

外,Vivado HLS还能帮助您指定资

源,以便在RTL中实现变量。例如,

我们在第11行中将Marray变量映射于

双端口RAM。

集成软硬件组件

处理器系统与硬件加速器之间的

通信协议为高级可扩展接口(AXI)。

AXI4是AXI的第二个版本也是最新版

本。我们的设计采用赛灵思AXI互联技

术从Zynq处理系统(ARM)向硬件加

速器传输数据。考虑到应用的带宽

要求,我们不用DMA传输,而是使用

AXI互联内核将AXI4-Lite 主设备连接

到从设备上(如图9所示)。

AXI4-Li te是一款轻量级单事务

处理、存储器映射接口。连接到AXI4-

Lite从设备时,AXI互联内核会存储事

务处理 ID,并在响应传输时将其恢

复。此外,AXI4-Lite还负责控制事

务处理,且不向AX I4 - L i t e从设备

传播任何非法事务处理。

图9中的AXI FIFO采用加速器的

AX I 4 - S t r e am接口针对加速器的

输入输出数据进行采样。加速器上的

AXI4-Lite从设备针对AMC配置参数。

19 赛灵思中国通讯 47期 2013年春季刊

无 线 通 信 领 域 的 出 色 表 现

图9 - 处理器系统与硬件加速器的集成

Page 20: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

我们在软件级采用Vivado HLS生成加

速器的所有流接口和AXI4-Lite接口。

ZYNQ-7000 SOC 的性能测试结果

图10显示了不同设计阶段DPD系

数更新总时间。我们的目标是采用

Zynq 7045器件的Zynq-7000 SoC

ZC706开发板。我们在Vivado HLS生

成AMC加速器中所用的目标时钟

频率为 250 MHz。然而,我们也能在

Vivado HLS 中提高目标时钟频率约

束,从而生成更快的加速器。我们的

Vivado HLS实现方案效率很高,面积

利用率提高了3%。

在图10中,采用原始代码的纯软

件解决方案的更新时间约为1.250秒,

且AMC是该应用的主要瓶颈。AMC

代码经过优化后,更新速度提高了

一倍。NEON优化又将速度提高了一

倍。在可编程逻辑中加速AMC后,此

模块的速度提升到70倍。最后,我们

在目标器件上成功测试了我们的设计

方案。

随着高复杂性DPD应用的不断发

展,我们的加速设计将越来越受欢

迎。例如,在多天线基站中,我们可

以通过串行方式多次运行加速设计

(每次针对不同的天线计算预失真器

系数)。如果预失真器系数增加,加

速设计的可行性也就更高。对复杂性

较低的DPD应用而言,我们的纯软件

设计仅通过NEON优化就足够了。

性能测试结果证明我们的软件可

编程设计流程通过缩短预失真器系数

更新时间,可同时实现多个DSP设计

方案。我们的设计流程支持灵活的软

硬件组件功能分区,而且有助于实现

高效的DSD解决方案,满足新型无线

发射器需求。

在此,我们对提出宝贵意见和参

与协作的赛灵思DPD设计团队表示

感谢。

赛灵思针对回程应用推出完全自适应千兆位级点对点微波调

制解调器IP此款1024QAM微波调制解调器IP解决方案将完全可编程的硬件和API软件相结合,支

持新一代智能宽带无线解决方案

2013年2月25日,中国北京 - All Pro-gram-mable技术和器件的全球领先企业赛灵思公司(Xilinx, Inc. (NASDAQ:XLNX))今天宣布推出面向回程应用的全新千兆位级1024QAM点对点(PtP)微波调制解调器IP。这款调制解调器解决方案在设计过程中充分采纳了一级OEM厂商的宝贵意见,并采用赛灵思的28nm All Programmable器件。对于无线OEM厂商来说, 这个调制解调器方案代表了一个巨大的机会,可以支持他们在其低成本高性能微波回程平台中集成差异化、灵活性以及可编程等功能。

对于全球电信运营商来说,在他们不断升级网络以支持激增的移动宽带流量过程中,移动回程技术都是一个关键、重点的资本投入领域。这个趋势驱动着OEM厂商利用赛灵思最新调制解调器方案大幅缩短开发周期,从而快速向市场推出灵活的、高性能的可扩展回程平台。

赛灵思公司无线通信高级总监 S u n i lKar指出:“赛灵思为OEM厂商带来了全新的机遇。赛灵思All Programmable 逻辑芯片和嵌入式处理器SoC上预集成的PtP调制解调器解决方案IP,不仅能降低总拥有成本,还可加速产品上市进程。1024QAM调制解调器IP具有前所未有的软硬件可编程性,不仅能可帮助OEM厂商开发出领先同类竞争对手整整一代水平的回程平台,而且还实现了出色的带宽容量、低时延和低功耗。”

这款1024QAM调制解调器IP解决方案,集成了OEM厂商加速无线解决方案开发所需的所有关键特性和功能,而无线解决方案的功耗和总体材料清单(BOM)成本相对于采用ASSP技术的产品而言,降低了30% 之多。这款调制解调器非常适用于点对点室外部署,可支持多个E1/T1和SDH等早期接口以及千兆位以太网等接口。在单极和双极模式下,数据速率分别可扩展到1Gbps和2Gbps。更强的相位抗噪能力有助于优化设备成本,并能充分利用现场更高阶调制功能的优势。该调制解调器具有众多关键特性,其中包括:支持从QPSK到1024QAM的高阶调制技术、3.5-112MHz的信道间隔、自适应调制、自适应数字预失真、前向纠错、I/Q不平衡校正、自动频率恢复、混合判决引导均衡器 (Dec is ionDirected Equalizer)以及集成有效负载与配置接口等。

1024QAM调制解调器IP解决方案以赛灵思All Programmable 7系列器件为核心,采用先进的28nm 高性能低功耗(HPL)工艺技术制造而成,不仅提供了突破性的性能、容量和系统集成度,同时还有助于优化性价比和降低功耗。

19 赛灵思中国通讯 47期 2013年春季刊 2013年春季刊 赛灵思中国通讯47期 20

无 线 通 信 领 域 的 出 色 表 现

图10 - ZC706开发板上的性能测试结果

性能测试结果证明我们的软件可编程设计流程通过缩短预失真器系数更新时间,

可同时实现多个DSP设计方案。

Page 21: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

21 赛灵思中国通讯 47期 2013年春季刊

专家园地

MicroBlaze如何与Zynq SoC和平共存

Page 22: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

赛灵思Zynq™-7000 All Pro-

grammable SoC 已具有很

强的板载处理能力。但是

Zynq应用处理单元(APU)中强大的双

Cortex™-A9处理器和相关外设的存

在并不妨碍您在同一封装中添加一个

或多个MicroBlaze™处理器,只要能

让应用受益就好。

为什么要给处理功能已经很强大

的解决方案添加MicroBlaze呢?首先

就是可靠性的问题。单线程会大幅提

高可靠性。您可以针对计算密集型任

务 为 每 个 C o r t e x - A 9 都 布 置

一个线程,而且能根据需要为其它

线程实例化任何数量的MicroBlaze

处理器。其次,您可将任何杂务交给

MicroBlaze去完成,让处理功能强大

的Cortex-A9去执行最需要它的工作,

充分发挥其用武之地,从而节省数个

关键的工作周期。

下面这个例子能反映以上两种情

况。设想一下,一个任务需要长期高

强度计算,同时还要监控用户输入。

这里,MicroBlaze可管理用户输入

(频率较低、计算强度不高),并写

入APU存储器空间,这样APU闲置时

(也就是完成了处理任务时)就能看

看接下来需要处理什么信息。

一旦您决定在基于Zynq的设计中

添加一个MicroBlaze处理器,马上就

会发现一些问题。首要问题就是APU

如何与MicroBlaze通信,哪些处理系

统(PS)资源可供MicroBlaze使用。包

括ZC702和Zedboard等在内的许多开

发板将许多外设直接映射到与处理系

统相连的引脚。可编程逻辑(PL)中,

这些引脚不能直接访问MicroBlaze。

处理系统还包含多种不同定时器和中

断资源。有什么办法能从MicroBlaze

领域访问这些资源吗?

PS与PL之间的接口

处理器系统和可编程逻辑紧密结

合,这意味着Cortex-A9、窥探控制

单元(SCU)、PS外设、时钟管理及其

它功能与可编程逻辑之间存在多个紧

密的集成连接。事实上,PS和PL之

间共有6种不同类型的互联,您可将

这些互联类型彼此结合使用。此外,

许多路径是对称的,也就是说PC能启

动到PL的连接,而PL也能启动到PS

的连接。

2013年春季刊 赛灵思中国通讯47期 22

专 家 园 地

?

图1 - PL中PS和MicroBlaze的边界是一片雷区吗?二者能否共享资源?

MicroBlaze如何与Zynq SoC和平共存

作者:Bill Kafig赛灵思公司高级内容开发工程师[email protected]

Praveen Venugopal赛灵思公司解决方案开发工程师[email protected]

向基于XilinxZynq All Programmable SoC的设计添加MicroBlaze处理器相当简单。

Page 23: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

除了AXI链接之外,可扩展多路输

入输出(EMIO)信号也可用于路由许多PS

的硬外设直至PL,以便访问封装引脚。

只 有 5 4 个 封 装 引 脚 直 接 连 接 到

PS,不过PS的硬外设可使用的引脚数

量大大超过54个。EMIO是PS硬外设和

PL之间的通道。这些I/O信号可直接路由

到PL可用的封装引脚,而您也可利用这

些引脚与PL中兼容的外设进行通信。

赛灵思公司目前提供的应用指

南、用户指南和白皮书等大量资料均

介绍了作为设计“核心”的Zynq -7000 APU 如何利用可编程逻辑来访

问存储器、基于PL的外设和硬芯片外

设(如PCIe®模块、BRAM、DSP48和千兆位级收发器等)。要分析

MicroBlaze如何成为其自身领域的主

导,逻辑上的第一步就是看看6个接口

变量,首先从通用、高性能和加速器

一致性端口这三类AXI接口入手。

PS有两个连接到PL的主AXI通道

和两个由PL启动的从通道(图2)。

这里的“主”是指AX I通道为发起

方,能启动数据交换,而“从”只能

用于响应到达的数据。主AXI通道通

常用来与PL中的外设通信。从AXI通道负责响应PL的请求,其中可能包括

MicroBlaze处理器所执行的事务处

理。这些AXI通道连接到PS的中央互

联,可路由到许多资源。

此外,还有4个高性能(64位宽)AXI通道连接点。从PS角度来

说,所有这4个通道均为从通道,连

接至PS中的存储器接口子系统(图

3)。这4个通道的目的就是让PS中的

主设备启动DDR存储器事务处理。

这种存储器互联和DDR存储器控

制器是所有资源到DDR存储器的门

户。虽然Cor tex -A9处理器的优先

级通常高于从AXI连接,但4个AXI连接中每个都有一个“现在为我服务”

信号,能让发出该请求的通道获得优

先级。未断言该信号时,架构、采用

循环机制确定哪个请求方有权访问特

定类型存储器。.

加速器一致性端口(ACP)是另一

种PL的32位AXI PS 从连接。ACP 的

23 赛灵思中国通讯 47期 2013年春季刊

专 家 园 地

独特之处在于它直接连接到SCU中。S

CU的任务就是确保L1、L2和DDR

存储器之间的一致性。采用ACP,您

能访问PS中的每个Cortex- A9 处理器

的高速缓存存储器,而不必担心与主

存储器中的数据同步问题(硬件会自

动处理好这个问题)。该功能不仅可

大幅降低设计负担,而且还能显著加

速处理器与PL间的数据传输。

图3 - 到DDR存储器控制器和片上存储器(OCM)的简化连接

图2 - 到处理系统中央互联的简化连接

Page 24: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

专 家 园 地

2013年春季刊 赛灵思中国通讯47期 24

PS和PL之间另外的各种杂项信

号可以分为 5个基本类:时钟与

复位、中断信号、事件信号、空闲

AXI与DDR存储器信号,以及DMA

信号。

• 时钟与复位:PS为PL提供4个独立

的可编程频率。通常这些时钟之一

用于AXI连接。每个时钟域都有自己

的域复位信号,可重设与该域关联

的任何器件。

• 中断信号:PS中的通用中断控制器

(GIC)负责收集所有可用源的中断,

包括PS外设的所有中断源和可编程

逻辑的16个“外设”类型中断。此

外,还有4个连接到CPU(IRQ0、

IRQ1、FIQ0和FIQ1)的直接中断。

来自PS外设的共28个中断可提供

给PL。

• 事件信号:这些“带外”异步信号

说明PS的特殊情况。PS提供一系

列信号用于表明哪个CPU进入待机

模式,哪个CPU执行了SEV(“发

送事件”)指令。PS可用事件信号

从WFE(“等待事件”)状态中

唤醒。

• 空闲AXI与DDR存储器信号:PS的

空闲AXI信号用来指示PL中没有未

处理的AXI事务处理。该信号由PL

驱动,是用来启动PS总线时钟关断

功能的条件之一,确保所有PL总线

器件均处于闲置状态。DDR紧急/仲

裁信号用来向 PS DDR 存储器控制

器的4个AXI端口DDR仲裁表示关键

的存储器处于紧张状况。

• DMA信号:PS的直接存储器访

问(DMA)模块通过一系列“请求和确

认”信号与PL从设备通信。

访问DDR存储器

我们下面来分析一个设计实例,

该实例涵盖了典型MicroBlaze用户可

能涉及的几个常见的需求,比如如何

访问DDR存储器;如何使用PS IOP中

的外设;如何在MicroBlaze和PS之间

传输数据块;如何在MicroBlaze和

PS之间实现事件同步等。图4给出了

解决每种问题的方法(分别标识为1、

2、3、4)。

访问DDR存储器最简单方法就是

通过4个高性能(HP)AXI接口的一个或

多个连接(方框图右上方)。4个64位

宽端口可供可编程逻辑访问。您首先

必须启用一个端口,然后连接AXI到端

口。MicroB laze采用AXI4-L i te接

口,而HP端口则应用作全AXI4连接。

所幸的是,赛灵思设计工具可自动弥

补,无需任何手动修改就确保实现成

功连接。方框图中①显示了该连接。

这类连接的优势在于创建起来非常简

单,而DDR存储器对设计来说就是常

规存储器。而不足之处在于,AXI-Lite

不支持突发模式,而且只有32位宽,

因此会丧失不少性能。

23 赛灵思中国通讯 47期 2013年春季刊

图4 - 硬件设计实例方框图;数字表示:1、访问DDR存储器的途径;2、PSIOP中的外设使用;3、如何在MicroBlaze和PS之间传输数据块;4、如何在MicroBlaze和PS之间

实现事件同步。

Page 25: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

MicroBlaze则为其另一侧主设备。软

件负责管理分区和共享BRAM存储器空

间的使用,因为两侧都有权对存储器

的全部内容进行全面读取和写入。

最终问题涉及如何在MicroBlaze

和PS之间同步事件。PS包括大量定时

器,您能对PL中任意数量的定时器实

例化。设计实例中采用了一个TTC外

设中的一个通道来生成100毫秒的脉冲

信号(图中的④)。这里的关键是要

认识到TTC生成的波形能从PS以外访

问,但TTC中断只能在PS以内可用。

您可用波形本身作为MicroBlaze中

断,从而规避这个问题。此外,您也

可采用硬件定时器(AXI定时器或用户

编码的定时器)为PS和MicroBlaze提

供中断。

软件支持

与任何嵌入式设计一样,您要考

虑的不光是硬件实现问题,还要考虑

软件支持。对本例而言,要考虑两个

处理器的重叠区域(如图5所示)。

就硬件而言,要把系统视为两个

相 互 交 叉 的 嵌 入 式 设 计 : P S和

MicroBlaze。我们的参考设计可让PS

为其自身和MicroBlaze生成时钟信号

并提供中断。MicroBlaze可使用这些

信号,但不能影响或对其修改。PS和

PL共用PS的IOP模块、DDR存储器与

控制器以及常见的双端口BRAM。

从地址映射角度看,IOP地址固定

在硬件中,不能修改。MicroBlaze和

Cortex-A9必须对外设使用相同的地

址。技术参考手册在这方面做了详细说

还可通过其它方法将基于PL的外

设连接到DDR存储器,比如采用DM

A控制器,同样也可采用HP端口。虽

然这种连接机制更复杂,但能提高大

数据块的传输性能。

25 赛灵思中国通讯 47期 2013年春季刊

专 家 园 地

BRAM控制器。此外还有两个连接:

一个是到S_AXI_GP0的连接,用于实

现PS内部外设的寻址;另一个到高性

能端口的连接,可让MicroBlaze访问D

DR存储器部分。

图5 - 独立软件域和重叠项

在PS中启用UART和三重定时

器/计数器(TTC)。M_AXI_GP0连接

的BRAM控制器位于PL中,但从概念

上说是PS设计的组成部分(实际上也

是PS设计的一部分)。

MicroBlaze作为设计的另一部分

采用BRAM提供64KB的整合代码和数

据空间,供MicroBlaze专用。显然,

我们能连接这些端口到PS的HP端口

以访问DDR存储器,不过这样做会让

实现工作变得更复杂。

有3个连接到MicroBlaze的标准

外设:一个是负责接收TTC的PWM

波形输入并将其解释为中断源和接收

的UART字符中断的中断控制器;一

个是负责驱动ZC702开发板上8个

LED的GPIO,第三个是用于连接到

PS所连接的同一BRAM的B侧的

外设、数据模块和同步

到PS S_AXI_GP0 端口的连接是

访问可编程系统IOP模块的关键(图中

的②)。S代表这是一个从端口,也

就是接受 P L中的组件启动的事务

处理。在MicroBlaze和S_AXI_GP0端

口之间建立连接时, IOP模块可从

0xE000_0000扩展到0xE02F_FFFF,

这意味着MicroBlaze 地址空间中的其

它外设都不能重叠于这段地址,而这

段地址将供处理器共享。

与 此 同 时 , 许 多 机 制 均 支 持

MicroBlaze和PS之间的数据块传输。

往返DMA和DDR以及DMA和片上存

储器 (OCM)就是两个可能性。另一

种就是在设计实例中实现的机制,

其使用双端口BRAM(图中的③)。

PS为BRAM控制器一侧主设备,而

Page 26: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

专 家 园 地

2013年春季刊 赛灵思中国通讯47期 26

明,非常具有参考价值。技术参考手

册分两部分对解决设计中的外设问题

进行了阐述,见涉及特定外设的章节

(如第8节:定时器和第19节:UART

控制器)以及列出每个外设所有寄存

器的附件B。这部分中的所有寄存器

都列出了地址和简介,管理两个处理

器之间的资源则是用户要开展的一项

任务,要避免数据冲突,避免资源不

足等。

采用DDR存储器及其控制器比较

简单,因为DDR存储器控制器能管理

冲突问题,而且提供适当的启发避免

任何请求方无法获得数据。由于这不

在用户控制下,时延可能会有些难以

预见。

常见的BRAM采用相同的较低地

址位,不过针对该模块的每个处理器

存 储 器 空 间 的 位 置 可 用 X i l i n x

Platform Studio的地址标签来选择。

跟以前一样,数据冲突、同步和存储

器分配也是读者要完成的工作。

我们的软件设计实例更主要的目

的 是 演 示 连 接 C o r t e x - A 9 和

MicroBlaze的过程,而不是要做任何

实际的工作。一些方法将演示这方面

的可能性。

图 6左侧所示的 Z y n q - 7 0 0 0

应用是一款简单的设计,其采用赛灵

思单机版板支持包。它运行的程序很

大程度上让处理器保持空闲状态,只

是周期性地通过串行端口发出T字符

表明自己仍在工作。此外,它会计算

T的次数并将计数统计保存在BRAM

中,与MicroBlaze共享。

MicroBlaze应用也运行单机版板

支持套件。这样就能支持中断,每次

串行端口上出现字符,MicroBlaze就

把字符缓存起来,并发送对应的Hex-

ASCII到PS IOP模块的串行端口。此

外,它会构建接收字符串,每收到一

个字符都保存在DDR存储器中。收到

回车后,将计算校验和,并在字符串

后直接添加到DDR存储器。BRAM预

先设定的位置处设置标记,当Cortex

代码“看到”标记时就从DDR存储器

读取字符串,并验证校验和。如果校

验和准确,MicroBlaze发出“+”,

否则发出“X”。

简 而 言 之 , 设 计 实 例 证 明

MicroBlaze 和Zynq7000 PS 完全能

和平共处。AXI 连接点数量很多,使

MicroBlaze(或PL中的任何组件)能

方便地访问IOP模块中的外设、OCM

和DDR。可编程逻辑能方便地访问

IOP模块的中断,而PL中能生成一系

列中断并发送给PS。软件协调和定义

良好的行为是避免争抢情况和寻址冲

突的关键。

图6 - Cortex-A9应用和MicroBlaze应用流程图

Page 27: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

27 赛灵思中国通讯 47期 2013年春季刊

手 把 手课 堂 :FPGA 101

调试高速存储器调试高速存储器

作者:David J. EastonDesignVerify 公司创始人[email protected]

Page 28: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

现代 F P G A通 常 连 接 高 速

SRAM和SDRAM存储器。

要确保这种器件无差错运

行,调试起来可能比较困难。我们必

须 确 保 包 括 电 路 板 布 局 、 电 源 和

FPGA中存储器接口电路等诸多因素

准确无误,才能实现一款切实可行的

存储器设计。

您在调试SRAM和SDRAM存储

器 时 可 能 会 遇 到 一 些 问 题 , 而 这 些

问 题 有 可 能 会 让 您 头 疼 好 几 天 。 设

计 和 调 试 高 速 存 储 器 接 口 时 必 须 确

保 采 用 适 当 的 调 试 方 法 。 下 面 我 将

介绍的高效设计流程模型采用的是赛

灵思Virtex®-4和Virtex-5 FPGA,然

而Virtex-6和7系列器件也同样存在问

题和相应的解决方案。我和同事采用

赛灵思存储器接口生成器(MIG)工具来

生成所有的存储器IP核,并通过赛灵

思ISE®工具来进行设计的综合和布局

布线。

在 详 细 分 析 特 定 设 计 的 特 性 之

前 , 我 们 不 妨 先 来 看 看 赛 灵 思MIG

工具、针对赛灵思FPGA的存储器校

准过程以及我们用来验证存储器接口

设计的内建自测试(BIST)电路。

赛灵思存储器接口生成器

赛灵思提供存储器接口生成器工

具为其FPGA器件生成存储器接口内

核。从赛灵思CORE Generator™调

用的MIG工具可为DDR-II SRAM、

DDR2 SDRAM和QDR-II SRAM等各

种类型存储器生成接口。图1显示了赛

灵思CORE Generator屏幕截图,详

细介绍了MIG3.6.1中支持的赛灵思器

件系列和存储器。此外,还有一款7系

列MIG工具可支持赛灵思最新器件。

MIG通过图形用户界面(GUI)输入

存储器和FPGA类型的详细信息,最后

生成VHDL语言或Verilog语言的寄存

器传输级(RTL)文件,以及有关存储器

接口的用户约束文件(UCF)。您可将这

两类文件与设计方案的其它部分进行

综合。此外,MIG还可生成基础架构

模块,为存储器接口提供所需的时钟

和复位。此外,该工具还提供测试平

台电路,可用来生成存储器器件的读

写 操 作 , 以 验 证 正 常 运 行 。 您 可 从

赛灵思网站下载MIG工具及其支持的

FPGA和存储器的完整介绍。

校准注意事项

为了确保从存储器准确捕获数据

到FPGA中,存储器接口内核应在使用

读取数据路径前对其进行校准。校准

过程在加电时自动进行。基本而言,

数据训练模式被写入到存储器中,随

后不断读回。这是过程分三个阶段:

第一阶段要让读取数据窗口相对于数

2013年春季刊 赛灵思中国通讯 47期 28

手 把 手 课 堂 : F P G A 1 0 1

许多FPGA设计都采用高速存储器接口,可能调试比较困难,不过只要采用正确的方法就能成功进行调试。

Page 29: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

少信号之间的串扰,为所有器件提供适

当的去耦。FPGA和存储器有许多电

源,通常采用开关稳压器和线性稳压器

的组合方式进行供电,应根据制造商的

产品使用指南确保所有这些器件正常运

行。您虽然需要花时间研究FPGA和存

储器的电源的原理图及布局方面的详细

信息,但会显著缩短调试时间,可谓磨

刀不误砍柴工。

下面,我们来进一步分析使用前述

BIST电路测试中出现误码的三个存储器

实例。全部实例均出现类似的症状,也

就是在存储器成功校准后出现误码。然

而每个实例中的出错的原因各异。我们

通过反复运行BIST测试器发现了这些误

码。还有一点需要指出的是,所有电路

板都成功通过了JTAG测试。

实例1:连接 DDR-II SRAM 的VIRTEX-4 电路板

该电路板采用的Virtex-4 FPGA连

接了一个运行频率为 200 MHz 的

DDR-II SRAM存储器。在存储器接口

成 功 校 准 后 , 并 开 始 进 行BIST测 试

时,出现了单误码。这种错误出现在

不同的存储器位置和数据字中的不同

比特位置。

据选通信号居中,对进入FPGA的数

据进行计时;第二阶段要确保居中的

数据和时钟同步于FPGA时钟域,从

而使数据能在输入触发器和FPGA架

构中的触发器之间传输;第三阶段则

提供读取验证信号。赛灵思MIG文档

全面介绍了各种不同类型的存储器校

准过程。

时 钟 生 成 器 和 内 建 自 测 试 电 路(BIST)

我们采用赛灵思MIG工具生成所有

存储器接口设计。不过在一些设计实

例中我们则不用MIG工作流程。我们使

用的FPGA所在的电路板是针对各种用

户和应用设计的。因此我们要设计一

个定制时钟生成器与复位模块,提供

用户应用所需的所有时钟和复位。这

意味着应移除MIG生成的基础架构模块

并从我们的定制模块为存储器接口提

供时钟和复位。

此外,我们还设计自己的定制BIS

T模块,用来对存储器进行全面的测

试 , 这 就 要 通 过 使 用 各 种 数 据 模 式

读/写每个存储器的位置,包括0、F、

29 赛灵思中国通讯 47期 2013年春季刊

手 把 手 课 堂 : F P G A 1 0 1

A、5、walking 0、walking 1、顺序

数据和伪随机二进制序列(PRBS)数据

等。BIST电路在主机接口控制下运行

并报告所发现的任何错误。BIST电路

可 存 储 所 发 现 的 任 何 数 据 错 误 的 地

址,并发出哪个或哪些数据位是错误

的信号。图2显示了通用设计的方框

图,MIG内核对应于电路板上特定的

DDR-II SRAM、DDR2 SDRAM或

QDR-II SRAM存储器。

需要反复强调的是,任何FPGA存

储 器 接 口 要 正 常 运 行 , 就 必 须 遵 循

FPGA和存储器的PCB布局建议。必须

让器件之间的轨道长度相匹配,尽可能

地减少歪斜,同时也有必要尽可能地减

MIGBIST

FPGA

图1- CORE Generator MIG工具支持多代赛灵思FPGA。

图2 - 该存储器接口方框图中的MIG内核对应于电路板上特定的存储器。

Page 30: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

手 把 手 课 堂 : F P G A 1 0 1

2013年春季刊 赛灵思中国通讯 47期 30

我们所做的第一件事就是测量所有

FPGA和存储器的电源,发现其都在正

确的电压规范内运行。我们再检查电路

板上的振荡器,其频率也正确,信号也

没有过多的抖动。接下来我们决定在进

行BIST测试时使用示波器再次检查

电压。

存储器电源电压VDD采用1.8V稳

压 器 供 电 , 我 们 发 现 稳 压 器 的 输 出

电 压 出 现 过 多 的 纹 波 , 超 出 了 存 储

器的电压规范要求。我们检查稳压器

电路,发现其输出平滑电容的值不准

确 , 仅 为 要 求 的10%。 我 们 用 准 确

的 值 加 以 替 代 , 纹 波 下 降 至 可 接 受

的水平,这样输出电压就在规范要求

以内,误码也消失了。

实例2:连接 DDR2 SDRAM 的VIRTEX-5 电路板

我们第二个实例中的电路板采用的

Virtex-5 FPGA连接了一个运行频率为

250 MHz 的 DDR2 SDRAM 存储器。

该存储器接口成功进行校准后,并在开

始进行BIST测试时,出现单误码。这

种错误出现在不同的存储器位置和数据

字中的不同比特位置,随后数据字中的

每个比特都出错。

跟第一个实例一样,我们也检查

了所有电路板上的电源和时钟,发现

其都符合规范要求。我们决定再检查

BIST运行时的所有电源电压。存储器

的电压参考输入VREF,由稳压器供

电 。 该 稳 压 器 还 给 其 它 一 些 电 路 供

电。在所有电路工作的情况下,稳压

器有些超载,VREF上的电压降到电压

规范以下。我们修改稳压器电路,用

不同电源为其供电,这样VREF电压符

合电压规范,且误码也消失了。

实例3:连接 QDR-II SRAM 的

VIRTEX-5 电路板

第 三 个 电 路 板 采 用 的V i r t e x - 5

F P G A 连 接 了 一 个 工 作 频 率 为

250 MHz 的QDR-II SRAM存储器。这

里出现了两个故障机制。第一个故障

是有时存储器接口无法进行校准。存

储 器 接 口 在 校 准 完 成 时 被 断 言 输

出cal_done状态位,用户需要通过

监测这个过程来确定存储器接口是否

可用。

第二个故障是我们发现即便存储器

接口完成校准阶段,重复BIST测试都报

告出现误码。这里我们还是检查电路板

上的电压和时钟,再检查FPGA RTL

设计。由于校准失败,这说明加电后不

久或FPGA复位后出了问题,因为这之

后马上就要进行校准。

赛 灵 思 M I G 工 具 生 成 的

QDR- I I存 储 器 接 口 为S IM_ONLY

generic,当设计实例化时在顶层模块

对该接口进行设置。其目的是避免仿真

过程中200微秒的加电延迟,从而加速

仿真。存储器接口用在硬件中时,我们

必须把 SIM generic 设为0,这样才能

支持200微秒的延迟,而在仿真时则应

设为1来避免延迟。

QDR - I I存 储 器 的 输 入 时 钟 为

K/K#,由存储器接口提供;输出时钟为

CQ/CQ#, 由 存 储 器 的 内 部 锁 相 环

(PLL)生成,也可参考于K/K#时钟。CQ

/CQ#输出时钟可用作对进入FPGA的数

据计时。PLL需要准确锁定,这通常需

要大约20微秒的稳定K/K#时钟。

我们发现SIM_ONLY generic设置

不准确,因此在系统复位后马上进行校

准,这时我们刚刚开始输出K/K#时钟。

校准过程在PLL锁定前就运行了,而C

Q/CQ#输出时钟则不会稳定。校准有时

会通过,有时会失败,不过即便校准通

过了,也不能达到最佳结果;因此会在

随 后B IST运 行 时 出 现 误 码 。 校 准

SIM_ONLY generic能为K/K#时钟提供

200微秒的时间让其达到稳定。一旦我

们校准了SIM_ONLY generic,我们的

校准和误码问题也就消失了。

29 赛灵思中国通讯 47期 2013年春季刊

JTAG

FPGA

FPGA

BIST

BIST

图3 -类似于此的典型调试流程会发现硬件和固件中

的问题。

Page 31: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

存储器的FPGA设计中,硬件和固件都可能出问题。

图3给出了通常应采用的调试方法。不幸的是,有时在调试新硬件情况下我们往往面临很大的压力,情况会变糟,可能发生各种各样的问题,特别是SIM_ONLY generic!

DesignVerify公司是一家总部位于苏格兰的咨询公司,专门从事FPGA和CPLD器件设计和验证工作。如欲了解 更 多 详 情 , 敬 请 访 问 :www.designandverify.com。

我 不 得 不 尴 尬 地 承 认 , 这 个

SIM_ONLY问题曾绊住我不止一次,

这也让不少同事感到有趣。为了避免

出现相同的问题,请确保顶层设计将-

generic设为始终支持加电延迟,而且

仿真测试平台应始终在仿真时避免延

迟。设计时要避免让工程师总是必须

记着要在仿真或构建硬件测试设计之

前修改SIM_ONLY generic,因为保不

齐工程师就会忘记。

31 赛灵思中国通讯 47期 2013年春季刊

手 把 手 课 堂 : F P G A 1 0 1

方法小窍门

当设计和调试高速存储器接口时,

一个很好的方法即是采用电路板布局正

确的PCB。此外,我们还让时序约束

FPGA设计准确应用于完整的设计,确

保采用ISE工具实现时序收敛。必须重

点强调的是,如果没有实现时序收敛,

就可能出现各种各样的时序错误,而且

会掩盖住潜在的问题。

我们这3个实例中发现的问题相对比较直观,比较好发现和纠正,但有时候情况并不这么简单。在涉及高速

2013年1月31日,中国北京-All

Programmable技术和器件的全球领先

企业赛灵思公司(Xilinx, Inc. (NAS-

D A Q : X L N X ) ) 今 天 宣 布 下 一 代

20nm All Programmable器件推出的三

大里程碑事件。赛灵思20nm产品系列

建立在其业经验证的28nm突破性技术

基础之上,在系统性能、低功耗和可

编程系统集成方面拥有着领先一代的

优势。其20nm产品系列不仅能满足下

一代各种各样系统的广泛需求,而且

还可为ASIC与ASSP提供极具吸引力

的可编程替代方案。

赛灵思公司可编程平台产品部高级

副总裁Victor Peng指出:“在28nm技

术 节 点 上 , 赛 灵 思 全 力 以 赴 让 我

们 的 产 品 和 技 术 实 现 了 领 先 一 代 的

优势。在20nm技术节点,我们要同样

继续领先一代。 我们正在积极地行动

着,致力于尽快把我们的新一代设计工

具和器件交付到我们的客户手中”。

第一个针对20nm器件的设计工具

赛灵思Vivado™设计套件是第一

个针对可编程器件的SoC增强型设计工

具套件,具有强大的功能,将为即将

在2013年3月推出的首批20nm器件提

供支持。在20nm技术节点上,该设计

套件将进一步加快设计进程,可将集

成和实现速度提高4倍,而且功耗降低

多达一半,性能提升3个速度等级。

第一个20nm产品流片

2013年第二季度,赛灵思将试产

其首款采用台积电20SoC制造工艺的

20nm产品。届时,赛灵思将为战略客

户提供产品样片,使他们可以率先启

动部署下一代应用。同时,赛灵思对

其20nm All Programmable产品系列进

行了优化,可满足有线/无线网络、数

据中心、视觉系统及其它高性能应用

领域更智能、高度集成、高带宽需求

系统的各项要求。

第一批10家早期试用客户

赛灵思目前正同首批10家客户合

作开展20nm架构评估与实现工作。自

2012年11月有关技术文档发布以来,

赛灵思同越来越多的战略客户紧密合

作,进行早期设计工作。随着本季度

设计工具的推出,设计工作将得到大

幅推进。

如需进一步了解赛灵思在20nm

技 术 上 如 何 继 续 保 持 领 先 一 代 的 优

势 , 欢 迎 访 问 以 下 网 址 :

http://www.xilinx.com/cn/about/gen

eration-ahead-20nm/index.htm。

Xilinx推出多项20nm第一继续保持领先一代优势

第一个20nm设计工具、第一个产品流片,以及第一批10家20nm客户合作

Page 32: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

32 赛灵思中国通讯 47期 2013年春季刊

手把手课堂:FPGA 101

在硬件设计中采用FPGA的基本要点作者:Adam Taylor首席工程师EADS Astrium公司[email protected]

Page 33: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

对于许多工程师和项目经理

来说,在FPGA中实现功能

并实现时序收敛是主要目

标,但实际上在印刷电路板上设计

FPGA的硬件级工作也会出现很多有

趣的挑战,只有解决了这些挑战才能

实现成功设计。

一切的起点均在于架构。硬件开

发第一步就是定义解决方案的架构。

架构应该对应于系统要求,并具体明

确它们如何在硬件中得到实现。虽然

不同系统的架构各有差异,而且每个

系统的具体应用也大相径庭,但很多

系统均包含类似的架构模块。您能够

同时也应该对经常需要的硬件模块进

行重复利用,就好像您重利用常用的

HDL模块一样。

图1和图2分别给出了整体架构和

电源架构的实例,而两侧则列出了

设计FPGA系统时通常需要考虑的

问题。

器件选择

您一开始面临最重要的选择就是

在大量可用FPGA中找到最合适的。

FPGA器件的选择涉及许多因素。首

要因素就是该FPGA提供什么可用资

源,是否足够用来以所需的工作频率

实现您想要的功能。

根据这些参数,您可以很快将选

择范围细化到有限数量的器件,这样

您就能再进一步细化选择标准,找到

适当的FPGA。另一个重要因素就是

您系统可能需要的其它资源,比方说

DSP slice或乘法器、嵌入式处理器或

高速串行链路等。是否提供这些资

源,可以进一步缩小器件选择的范

围。在许多情况下,根据具体资源需

求,您会进一步寻找器件的子系列,

比方说如果需要逻辑或高速串行链

路,则应选择赛灵思S p a r t a n ® - 6

LX或Spartan-6 LXT。

器件所需的输入输出数量会同时

影响到器件选择和封装选择,因为

一款器件可能提供几种不同的封装选

择,每种选择还提供不同数量的用户

I/O。这里通常需要注意的是,您应当

考虑今后如何升级,而且要考虑所选

系列的各种器件是否具有通用的封装

尺寸。

此外,选择器件时您还应考虑工

作环境。举例来说,是不是商业组件

就够了,是否需要工业、医疗或汽车

级的部件?某些情况下您的系统可能

2013年春季刊 赛灵思中国通讯 47期 33

手 把 手 课 堂 :F P G A 1 0 1

许多工程师认为,只要定义了FPGA的功能,工作就算完成了。但实际上将FPGA插入PCB时也会面临一系列挑战。

Page 34: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

间。相对于高性能FPGA而言,这种器

件需要的静态电流可能很高,而且器

件完成配置并开始计时后的动态电流

也很大。

设计中的功耗估算非常重要,需

要在项目早期进行,以准确评估电源

架构。赛灵思提供功耗估算电子数据

表 , 您 可 在 以 下 网 址 下 载 :

http://www.origin.xilinx.com/prod-

ucts/design_tools/logic_design/xpe.

htm。在电子数据表中,您可根据选定

器件的环境参数选择FPGA资源的时钟

速率和翻转率。如果您不确定,宁可

做出更谨慎的选择,也就是要对估算

做出悲观考虑而不是过于乐观。一旦

明确了FPGA的电源要求,就能将其整

合到系统的整体功耗预算中,并在此

基础上明确电源架构。

有的系统需要较大电流,我们建议

采用开关DC/DC转换器保持整体效率,

需要军用或航天级的组件。

此外,您还必须要考虑到配置架

构问题。基于SRAM的FPGA能否满

足应用需求?或者说赛灵思Spartan-

3AN系列这样的非易失性解决方案是

否更好一些?设计的安全性同样也是

一大重要考虑因素。如果应用需要设

计安全性,就应考虑避免读回并对数

据流进行加密。

无论应用是进行量产或是作为一

次性的定制航天设计,组件成本当然

也始终是一个重要因素。您应制定目

标成本预算,并努力确保在成本限度

内完成任务。

上述许多参数在系统中其它器

件的选择上也很重要。特别重要的

一个标准就是选择的组件要能够在

相同的电压轨上工作,这样就能简

化电源架构。

34 赛灵思中国通讯 47期 2013年春季刊

手 把 手 课 堂 :F P G A 1 0 1

您还应考虑在设计中是否有组件

标准降低的问题。所有制造商的组件

数据手册都给出了器件的最大额定值

和最大工作电应力。如果我们选用的

器件刚好在最大额定值以下的电应力

工作,那么设计的可靠性就会大幅下

降,因为系统一直是在推荐工作条件

以外工作的。根据最终应用的不同,

故障可能会导致各种后果,包括导致

人员伤亡,破坏工作任务,公司质量

声誉下挫等。为了生产出可靠的设

备,您必须在设计中减少电应力。因

此在选择应用器件时,您必须考虑到

器件所承受的电应力。

电源架构

器件选择好之后,下一步影响项

目成败最关键的部分就是电源架构

了。这个因素往往被忽视。现代FPGA

的核心电压通常介于 0.9 V 到 1.5 V 之

FPGA

配置存储器 NVRAM

电源

内核电压

I/O电压其它电压

地址

数据

控制

配置

CANIF

收发器数据

发射器数据

复位

时钟

时钟[7:0]

显示IF

同步

红色

绿色

蓝色

JTAG 连接器

JTAG

像素时钟

图1 - 典型的整体系统架构

Page 35: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

手 把 手 课 堂 :F P G A 1 0 1

2013年春季刊 赛灵思中国通讯 47期 35

确保单元散热设计不是很复杂。如果需

要的电流较低,而且系统必须特别注意

避免噪声,也就是说为高速串行链路或

敏感型 ADC、DAC 组件提供电源的

话,那么您可采用线性稳压器和额外的

滤波机制。在所有情况下,您都应该仔

细阅读具体器件的数据手册。

一旦完成FPGA设计,您就应

该使用赛灵思 I S E ®设计套件中的

XPower Analyzer获得详细的功耗估

算。这一步骤将帮助您完成电源架构

的设计工作。

此外,您还应考虑板上器件的电

源去耦问题。现代器件的开关速度比

调节电压的电源快很多倍。如果不采

用去耦电容,这种局面就会导致当稳

压器上升时电源轨下降。理想情况

下,应让去耦电容的值在结合PCB层

间电容时的阻抗曲线低于0.1Ω,而且

可能的话应在 100 kHz 到 1 GHz 之

间。要实现这样的性能,应采用一系

列去耦电容值,每个值都有不同的自

谐振频率。这种方法可让电源抑制比

(PSRR)值不佳的器件也能实现最佳性

能,而PSRR在某些器件上会随工作

频率的上升而下降。

最后,要尽可能减少额外电压轨

的数量,这有助于降低解决方案的复

杂性。此外,您还应注意到任何电源

轨排序或斜坡速率,并确保您的解决

方案能够满足这些要求。

时钟和复位树

您的系统需要至少一个时钟工

作。通常让逻辑级振荡器在所需频率

上工作。考虑振荡器时,要注意一系

列问题。其中振荡器所需的输出频

率和稳定性是关键参数。振荡器稳定

性单位为PPM(百万分之一),通常

为+/-50 PPM或+/-100 PPM。

驱动高速串行链路或为ADC/DAC

提供时钟的振荡器通常还需要低相位

噪声和低抖动。保持低噪声和低抖动

非常重要,因为低噪声有助于降低高

速链路的误码率,而高噪声和高抖动

则会增加ADC和DAC上的噪声水平,

从而降低信噪比。

您还应考虑输出信号标准。LVDS

或LVPECL等差分信号的抗噪性比单

端LVCMOS或LVTTL输出要好。此

外,差分信号还能减少EMI问题,加

速上升和下降时间。不过,差分信号

的相位噪声性能比单端输出要差。高

性能系统将采用正弦波振荡器作为主

时钟源以减少相位噪声和抖动的影

响,这在ADC和DAC计时情况下尤其

如此。

由于FPGA可在内部支持多个时

钟域,因此目前系统通常采用一个

以上的时钟域。如果不能通过DLL、

34 赛灵思中国通讯 47期 2013年春季刊

隔离DC/DC

IP电压 开关稳压器

开关稳压器

开关稳压器

中间电压

核心电压

I/O 电压

其它电压线性电压

复位 复位

图2 - 典型的电源架构

Page 36: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

成了原理图设计或采用类似于Mentor

Graphics I/O Designer的工具成功规

划器件 I /O之后,您就能使用赛灵思

PlanAhead™等工具拉入引脚分配并

检查I/O bank分配规则与布局合规性

了。当采用高速串行链路时这项工作

尤其有用,因为您必须确保电源引脚

旁用于HSSL的用户I/O未被使用,否

则意外的噪声可能耦合到电源轨上,

从而影响链路性能。

您还应考虑信号完整性(记住,

不是信号频率,而是决定迹线到多长

应该端接的边缘速率)。大多数FPGA

支持片上端接,从而减少对分立组件

的需求。当然,这种方法只有在您将

DCM或PLL等内部时钟资源实现所需

的分频,那么设计人员往往会采用高

速时钟和低速率时钟相结合。此外,

不同的协议或算法也会需要不同的时

钟频率,从而在设计中创建多个时钟

和时钟域。图3给出了典型的时钟树。

许多FPGA设计都需要可连接到

各种器件的复位,确保其能在系统加

电后或执行命令时通过一个按钮正确

初始化。复位可能导致许多难以控制

的设计问题,因为这些问题可能会随

机出现。电源轨一旦达到工作范围,

板上振荡器将开始工作,但稳定下来

需要一定的时间。因此,确保板上的

复位被断言,直到电压轨上升并且振

荡器稳定下来不失为一个好办法。

由于信号将受到FPGA潜在的高

扇出影响,因此最好对信号进行大幅

滤波,确保假信号和EMI不会导致系

统意外复位。

此外,在FPGA设计中您还必须

要注意确保只有在真正需要时才连接

复位(请记住,就SRAM而言,FPGA

寄存器和RAM可作为配置的一部分进

行初始化)。此外,在FPGA中要注

意确保复位的移除不能导致亚稳定事

件,也就是说时钟边缘的复位移除可

能导致亚稳定性。因此,我们应当对

复位和所有时钟域进行准确同步。

36 赛灵思中国通讯 47期 2013年春季刊

手 把 手 课 堂 :F P G A 1 0 1

请确保将时钟和复位分配到正确

的输入风格。时钟可被分配到全局或

局部时钟资源,而硬件工程师必须与

FPGA工程师紧密合作,确保采用正确

的全局资源。

I/O 标准和信号完整性

FPGA能支持一系列单端和差分

I/O标准。器件的I/O规划和确保bank

分配规则的实施是一个重大挑战。这

部分设计工作需要FPGA工程师和硬件

设计人员之间的密切配合。

尽可能减少电压轨和接口类型的

优势在这里就可体现出来了。一旦完

时钟选择

主时钟

冗余时钟

时钟扇出

Clock[0]

Clock[1]

Clock[2]

Clock[3]

Clock[4]

Clock[5]

Clock[6]

Clock[7]

像素时钟

像素时钟

图3 - 典型的时钟树

许多FPGA设计都需要可连接到各种器件的复位,

确保其能正确初始化。

复位可能导致难以控制的问题,

因为这些问题可能会随机出现。

Page 37: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

手 把 手 课 堂 :F P G A 1 0 1

2013年春季刊 赛灵思中国通讯 47期 37

印刷电路板协议栈定义为可控阻抗时

才能正确发挥作用。

机械和散热注意事项

此外,硬件工程师还应同参与项

目的机械工程师紧密合作,明确物理

板的外形、连接器位置等。现代FPG

A会变得很热,需要注意散热。这会

影响机械设计,可能需要强制气流

(风扇)或散热带和散热片等以实现

所需的工作环境。

如果应用要在严苛或恶劣的环境

中工作,机械设计会对PCB布局提出

更多约束,因为您还要考虑到冲击

和振动水平等因素。根据所用的工

具集,机械和PCB工程师应能在CAD

系统之间以DXF文件格式传输信息,

并确保电路板外形、保留区和轮廓线

之间不发生冲突。

PCB 布局

印刷电路板布局是实现系统所需

设计性能的最重要领域之一。对于任

何高性能系统而言,电路板都必须采

用可控阻抗的多层PCB布局。为实现

这个要求,PCB布局工程师和PCB供

应商之间应进行磋商,明确电路板的

协议栈。协议栈以及相应的迹线宽度

和分离对于实现可控阻抗电路板而言

至关重要。在大多数高性能系统中,

您必须准确计算微带线和带状线,从

而分别为单端信号提供50Ω的可控阻

抗,以及为差分信号提供100Ω的可

控阻抗。这能帮助硬件工程师使用片

上或分立端接正确端接出现的任何传

输线路。

协议栈中还有一点非常重要,就

是确保电压层和返回层彼此靠近,从

而支持电容耦合。这种设置使得两层

之间的PCB基板能作为去耦电容,提

升了去耦效果。图4显示了典型的阻抗

可控多层PCB协议栈。

您在这一阶段还必须为布局工程

师设定一系列约束条件,这能引导

组件布局,将模拟和数字组件进行

分离。这份清单还应指定设计中总线

和信号的分组和长度匹配约束。为了

协助开展这个任务,比较有用的是为

信号指定渡越时间。

1. FPGA本身:系统要求和功能决定大小、技术和速度等级,而其它参数

(高速串行连接、嵌入式处理器等)将决定FPGA选择。

2. 电源架构:在评估电源架构时,一定要考虑所需的众多电压轨、整体解

决方案效率以及电压轨上的噪声,最后一点对敏感性更高的应用尤其重

要。

3. 配置:现代FPGA需要大容量非易失性存储器来存储配置数据。这种器

件可选择不同的配置方法,您应选择对于设计最理想的配置方法。

4. JTAG端口和链:这可以用来配置FPGA和配置存储器,也支持制成后的

硬件边界扫描测试,发现制造问题。

5. 时钟和复位树:提供FPGA设计所需的各种时钟和复位树可帮助确保设

计正确复位。

6. 特定应用接口:根据设计不同,特定应用接口可能包括通信链路(如以

太网、PCI Express™、CAN以及RS422或RS232等),能支持解决方案

与系统其它组件进行通信。

7. 特定应用器件:通常大多数设计都使用连接到FPGA的分立器件,常用

器件包括模数转换器和数模转换器。

8. 特定应用存储器:特定应用存储器存储处理期间的大量数据或应用配置

数据,比方说图像系统的图像覆盖层。这种特定应用存储器包括高容量存

储器(DDR或QDR SRAM)以及非易失性存储器(如闪存或FRAM器件,

用于存储系统断电后必须保存的数据)。

9. 工作环境:应注意工作环境,确保选择适当级别的组件。

设计硬件时要考虑的九大问题

Page 38: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

此外,不要忘了考虑PCB中信号

之间的串扰问题,应正确分开信号迹

线,减少同层信号,并确保带状线结

构内层上或层下的信号不要并行运行

较长,因为这也会造成串扰。如果可

能,比较好的办法是将层间阻抗可控

层断言为垂直或水平路由,从而确保

不同层的轨迹不会并行运行太长。

PCB上两迹线之间的间距拉大也有助

于降低串扰,一个比较好的经验是让

迹线间隔至少有3个轨迹那么宽。不

过,对于更关键的信号而言,间距应

达到5个乃至7个轨迹宽度。

注意模拟和数字信号要尽可能彼

此分开,只要有可能,就要使用分开

的模拟返回和电源。数字信号和模拟

信号路由都不应参考对方的层,因为

38 赛灵思中国通讯 47期 2013年春季刊

手 把 手 课 堂 :F P G A 1 0 1

电压/接地层

电压/接地层

电压/接地层

电压/接地层

微孔和分支点

顶层(组件贴装)第1层

第2层

第3层

第4层

第5层

第6层

第7层

第8层

第9层

第10层

第11层

第12层

第13层

第14层

微孔和分支点

底层(组件贴装)

50Ω的单端信号

50Ω的单端信号

100Ω的差分信号

图4 - 典型的14层阻抗可控型PCB协议栈

图5 - 宇航级Virtex-5器件的DC电源下降分析结果

Page 39: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

手 把 手 课 堂 :F P G A 1 0 1

2013年春季刊 赛灵思中国通讯 47期 39

这会让返回电流路径更加复杂,影响

系统性能。

层问题处理好之后,布局最后阶

段最重要的步骤之一就是验证已完成

设计的信号完整性和电源完整性,这

就要用到类似于Mentor Graphics旗下

HyperLynx SI和PI的工具。验证可能

是一个迭代过程,电源完整性更是如

此,因为FPGA核心需要的高电流可

能要对更多层做调整,才能实现所需

的层的电压性能。图5显示了大型高

性能FPGA的PI仿真结果。

测试问题

此外,工程师还必须考虑如何验

证电路板及其性能满足所有要求。您

可使用JTAG控制器和边界扫描测试

来检测基础架构和大多数数字器件及

驱动器的互连。不过,您也必须考虑

电源、时钟和复位电路的性能。连接

到电压轨输出的测试报头或测试点能

快速方便地检验电源架构。(注意使

用串联电阻限制电流,避免测试点无

意中短接。)您应使用值非常低的电

阻(毫欧姆级)来确定FPGA和支持器

件的电流下游。同样,如果设计使用

时钟缓冲且有备用输出,那么比较明

智的办法是对该输出正确端接,从而

能够测试时钟。

调试LED显示了FPGA Done线路

的状态,加上应用可能用到的其它

LED,这些LED对电路板调试起到重

要辅助作用。

电路板可能还要添加逻辑分析器

或模式生成器报头,要注意这些报头

不仅在开放层测试中便于使用,而且

在系统测试、当单元在封装中时也一

样方便使用。

类似于赛灵思ChipScope™的工

具将帮助您调试FPGA功能和接口,同

时也能明确高速串行链路上的误

码率。

在系统硬件中进行FPGA设计会为

工程师提出很多有趣的挑战。许多工

具能帮助您完成这项工作,同时大量

数据手册和用户指南也能提供有效帮

助。不过,最重要的一点是要真正了

解系统的基本硬件组件。

Xilinx宣布Zynq-7000 AllProgrammable SoC

系列全线量产

拥有业经验证的高性能、最低功耗和

无与伦比生产力的最智能的解决方案

2013年2月26日,中国北京- AllProgrammable技术和器件的全球领先企业赛灵思公司(Xilinx, Inc. (NAS-DAQ:XLNX))今天宣布其Zynq™-7000All Programmable片上系统(SoC)器件系列全线量产,实现了又一个重大里程碑。Zynq-7000 All ProgrammableSoC的市场需求非常强劲,目前已有350家不同客户采用该产品进行设计开发,自2011年12月以来赛灵思和安富利(Avnet)已经发货20,000多个器件和4000多个开发板。各项设计方案广泛应用于包括汽车、工业、通信、数据中心等众多领域。

赛灵思公司处理平台副总裁LarryGetman指出:“很明显,赛灵思在规范制定、设计支持、生态系统开发、客户设计和生产交付等各个方面都领先于竞争对手整整一代的水平。随着对于可以提供软/硬件和I/O可编程功能的高度集成智能与安全SoC器件的需求不断增长,Zynq-7000平台的应用势头也在不断加速。”

Zynq-7000系列支持客户为其系统提供更先进的软件智能,包括控制、通信、安全、系统管理与分析等,并与高性能、硬件化数据、数据包和/或像素处理紧密结合。设计人员还可以充分享受业界最广泛的生态系统 所 带 来 的 卓 越 体 验 - A R M ®Connected Community®和赛灵思联盟计划(Xilinx Alliance Program)的完美组合,能为大多数常见的免费和商用嵌入式操作系统和RTOS提供支持,并有多种免费和商用开发工具、20多种开发板、设计服务、培训及其它产品与服务等可供选择。

层问题处理好之后,布局最后阶段最重要的步骤之一就是验证已完成设计的

信号完整性和电源完整性,这就要用到类似于Mentor Graphics旗下HyperLynx SI和PI的工具。

验证可能是一个迭代过程。

Page 40: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

40 赛灵思中国通讯 47期 2013年春季刊

出色的工具

利用并行FFT实现GHz级FPGA信号处理

Page 41: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

2013年春季刊 赛灵思中国通讯47期 41

超高 速 快 速 傅 里 叶 变 换

(FFT)内核是任何实时频谱监测系统

的必要组成部分。随着各频段无线设

备数量的迅速增长,系统必须相应加强对带宽的

监测。因此,这些系统需要以更快的速度将时域

转换为频域,这就要求进行更加快速的FFT运算。实际上,大多数现代监测系统往往需要使用

并行FFT,实现数倍于尖端FPGA(例如赛灵思

V i r t e x ® - 7) 最 高 时 钟 频 率 的 采 样 吞 吐

量,充分发挥宽带A/D转换器的优势,其可轻松

获得12.5Gsps甚至更高的采样率。[1]

同时,随着通信协议日益数据包化,监测信

号的占空比在不断降低。这种情况要求大幅度

降低扫描重复时间,这就需要使用低时延FFT内核。并行FFT也能在这方面有所裨益,因为时延

会随着采样率与时钟速度之比成比例下降。

鉴于所有这些原因,本文将深入介绍可在运

行中配置转换长度的并行FFT(PFFT)设计,并说

明使用并行FFT可实现的吞吐量和利用率。

FFT的硬件并行化

由于在逻辑中直接实现FFT较为复杂,因此

大量硬件设计人员使用各个厂商提供的现成FFT内核。 [2 ]但是,大多数现成的FFT内核使用

“流”或者“模块”架构,每个时钟周期只能处

理一个或者几个采样,这就会把吞吐量限制在

FPGA或者ASIC器件所能提供的最大时钟速度

内。PFFT能够提供速度更快的架构。PFFT每个

时钟周期可接受多个采样,进行并行处理,并在

每个时钟周期内输出多个采样。这种架构可让吞

吐量达到器件最大时钟速度的数倍,但代价是增

大了占位面积并提高了复杂性。因此,要使用

PFFT,必须在吞吐量和面积之间进行权衡。典

型Virtex-7 FPGA 设计所需的权衡方案见图1和表1。

从权衡的角度,可从表中看出一些普遍特点:

1. 随 着 并 行 吞 吐 量 的 增 加 , 乘 法 器 ( 面

积)的使用也在增加,但增加的速度稍低

(好于线性关系)。

出色的工具

作者:Chris EddingtonSynopsys公司高级技术市场营销经理[email protected]

Baijayanta RaySynopsys公司Synphony模型编译器企业级应用工程师[email protected]

Page 42: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

2. 随着并行量的增加,系统时钟速度

和时序收敛速度的下降会导致吞吐

量的提升低于线性关系。不过在现

代FPGA上这种劣化现象正在减轻。

3. 鉴于上述两个原因,吞吐量增长与

面积增长的比率总体上要高于线性

关系。

4. 时延随着并行化的增大而降低。

请注意表1中的测量值只适用于特

定的对象和FFT配置。这种情况针对的

是长度为1024的情况,且具有16位输

入、动态长度可编程(最小可编程长度

为4)和流控制。流控制对频谱监测这

样的应用而言非常重要,因为,这类应

用往往需要在进行采集等其它操作

时,使用旁通道信息来改变FFT大小

(以改变分辨带宽)或暂停FFT的运

行。从理论上说,您可以通过在转换

操作前插入缓存的方式来实现流控

制。但是对于频谱监测这样的采集驱

动型操作而言,难以提前计算出所需

要的缓存大小,这样就必须采用容量

大、速度快的高成本内存条。

实现架构

虽然实现FFT的方法多种多样,

但并行版本的Radix2多路径延迟换向

器内核 ( R ad i x 2 -MDC ) [ 3 ]作为一

个模块化方案在这里非常适用,可用

于创建在先进FPGA器件中具有良好

扩展能力的可配置并行FFT内核。

Radix2-MDC是一种用于创建各种长

度流水线FFT的典型方法,图2a是长

度为16的FFT。它将输入序列分解为

两个并行数据流,并在数据流向前流

入蝴蝶算法单元(FFT算法的一个子

元)的过程中采用恰当的延迟对数据

元进行调度,以确保数据元之间保持

恰当的“间距”。如图2b所示,使用

较宽的数据路径和矢量运算,Radix2-MDC的并行化就会相对容易。MDC的结构还便于实现流控制和动态长度重

配置,相反,单路径延迟反馈(SDF)结构因为加入了流控制(停止)信

号,会显著降低最大吞吐量。

另一个会影响可扩展性的因素是

复杂乘法器的选择,即选择4乘(4M)还是3乘(3M)结构。选择3M复杂乘法

器可以减少设计的占位面积,但代价

是会降低时钟速度。[4]这方面的权衡

也主要依赖于FPGA器件的DSP硬件

部分。下面是我们即将介绍的案例研

究所使用的最重要的参数和选择:

• 长度= 1024

• 输入精度=16位

• 使 用 4 乘 5 加 复 杂 乘 法 器 的

Radix2-MDC架构

出色的工具

图1 - 并行FFT一次可处理多个采样,使吞吐量超过目标器件可实现的系统时钟速率。可选特性包括流控制、同步和动态长度可编程功能。

表1 - 面积的增加因硬件乘法器的使用造成。吞吐量提升与占位面积之比略高于线性关系,总体而言非常适用于将吞吐量增加至数千兆赫兹采样率。

在Virtex-7器件上实现并行FFT的典型性能和面积权衡

42 赛灵思中国通讯 47期 2013年春季刊

Page 43: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

• 数据路径精度 = 每级增加1位(对

1024长度为10级/位)

• 包含动态长度可编程功能

• 启用可选的流程控制和同步功能

案例研究:1024长度的并行FFT

案例研究中,我们使用Synopsys

提供的Synphony模型编译器(Synpho

ny MC或SMC)高层次综合工具[5]

研究针对赛灵思Virtex-7和 Virtex-5

FPGA实现的一组并行FFT结果。

Synphony MC拥有一个并行FFT

IP模块,专门用于为Virtex-7等高级

FPGA器件实现具有高质量结果(QoR)

的DSP映射。该定制IP模块将算法原

语在底层子系统中进行实例化,以便

根据长度、精度、流控制和动态可编

程功能等用户特定选项来创建架构。

在Synphony MC中利用向量支持

和定制模块方法,可以构建出简明的

可参数化并行Radix2-MDC模块,用于

在各种不同配置下迅速对并行FFT进行实例化。图3即为使用这些定制模块

(名为PR2MDC)实现的1024x16PFFT数据路径子集。每个模块输入和

输出一个长度为32、用于代表16个真

实值和虚拟值复杂采样的向量,以及

一个长度和旋转因子地址参数。定点

字长度每级增加一位,但为了便于调

整进行了参数化。这个模块的底部

是图2b所示的实现过程,采用的是

SynphonyMC算术运算符(乘、加、

移位寄存器等)。

虽然SMC是一种高级设计环境,

但也可以用它来实现针对多种目标技

术的特定映射。本例中,我们选择将

一个4M复杂乘法器映射到采用18x25乘法模式的DSP48E单元中。设计该

模块的目的是以菊花链的方式进行旋

转因子查找,以满足性能要求和实现

流控制功能(请注意图3没有显示流

控制)。SMC并行FFT内核在开启或

者关闭流控制,或使用动态长度可配

置功能的时候,没有发生显著的时序

劣化。当构建实时频谱监测应用时,

高级FPGA器件上实现的吞吐量可扩

展功能非常有用。

我们使用Synphony MC生成针对

Virtex-5和Virtex-7目标器件进行优化

的RTL,然后利用Synphony模型编译

器2012.09版和Synplify Pro以及赛灵

思的 ISE® 14.2 工具套件完成布局布

线。表2是布局布线后的面积和时

序结果。观察到的性能扩展结果与

理论预期和FPGA系列的功能十分匹

配,我们使用x16并行配置实现了超

过7Gsps的采样率,而且占用的资源

仅为1x配置的约6.3倍。面积增长曲线

出色的工具

2013年春季刊 赛灵思中国通讯47期 43

C2

8 4 2 1

BF2 BF2 BF2

4

C2 C2 C2BF2

2 1

K parallelcomplexinputs 2K

2K Delay line

Delay line

+

-

Butterfly #P

2KMux

2K 2KTwiddlefactor mult

K parallelcomplexinputs

K parallelcomplexoutputs

K parallelcomplexinputs

Butterfly#1

Butterfly#2

Butterfly#2

Butterfly#log2(N)-k

K pointAll Parallel FFT

图2 - Radix2-MDC内核(上部的a)可有效实现并行化并以模块化的方式使用,以创建并行FFT设计(b)。

42 赛灵思中国通讯 47期 2013年春季刊

Page 44: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

优于线性增长的原因是这些乘法运算

会随着并行数量的增加而变成固定系

数,因此在逻辑中的实现比在DSP单元中进行完整乘法运算效率更高。

这主要发生在最后的K点FFT(见图

2b)。

更高的吞吐量

并行FFT主要用于高吞吐量的千

兆采样应用,如频谱监测。本文的PFFT硬件设计对赛灵思高级FPGA器件

的吞吐量扩展性进行了深入揭示并提

供指导。案例研究展示了使用并行Radix2-MDC架构的并行FFT能够有效地

在x16并行配置下为FPGA器件实现超

过7GHz的吞吐量。我们在高级设计

流程中使用Synphony模型编译器开发

PFFT模块,可通过精细调试将DSP硬件映射到各种不同的赛灵思器件上。

[5]Synopsys目前将该模块免费提供给

所有的Synphony模型编译器用户。

如需了解有关Synphony模型编译

器 的 更 多 情 况 , 敬 请 访 问 :

http://www.synopsys.com/cgibin/sld/pdfdla/pdfr1.cgi?file=synphony_model_comp_ds.pdf?cmp=FPGA-SMC-xcell。

参考资料:

1. 泰克组件解决方案网页:http://com-

ponent-solutions.tek.com/services

/data-converter/

2. 赛灵思FFT内核数据手册 http://www.

xilinx.com/support/documentation/ip_d

ocumentation/ds808_xfft.pdf

3. Shousheng He; Torkelson, M.;

《流水线FFT处理器的新方法》,并行

处理研讨会,1996年,1996年举办的第

十 届 并 行 处 理 研 讨 会 会 议 纪 要 ,

1996年4月

4. 赛灵思复杂乘法器第5版模块数据手

册:http://www.xilinx.com/support/doc-

umentation/ip_documentation/cmpy/v5

_0/ds793_cmpy.pdf

5. Synphony模型编译器产品说明书:

http:/ /www.synopsys.com/cgi-bin/

sld/pdfdla/pdfr1.cgi?file=synphony

44 赛灵思中国通讯 47期 2013年春季刊

出色的工具

表2 - 在Virtex-7 485T: -3和Virtex-5 SX95T: -2上实现的卓越结果证明了PFFT模块的可移植性

图3 - 并行FFT IP模块用户界面(左侧)提供一个基于用户特定配置的微架构

Page 45: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

45 赛灵思中国通讯 47期 2013年春季刊

全全新新OZ745平平台台可可简简化化实实时时专专业业广广播播及及其其它它应应用用的的设设计计。。

出色的工具

作作者者::Mike Santarini发行人:Xcell杂志赛灵思公司[email protected]

XXiilliinnxx和和OmniTek共共同同推推出出Zynq-7000视视频频开开发发套套件件

Page 46: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

2013年春季刊 赛灵思中国通讯47期 46

赛灵 思 及 其 联 盟 成 员

OmniTek公司本月将推出

一款实时视频处理平台,

旨在帮助企业创建各种电影产业所需

的高带宽设备。

名为 OmniTek OZ745 Zynq™-

7000 SoC 视频开发套件的最新平台可

提供帮助OEM厂商提高系统性能、降

低材料清单(BOM)成本、加速产品上

市进程所需的全部关键组件,并能支

持创新型显示器、摄影棚用摄像机、

制作切换器以及需要先进视频技术的

医疗、汽车、航空航天产业领域中愈

来愈多的其它产品应用。

该平台以赛灵思 Zynq-7045 All

Programmable SoC 为核心,含有硬

件、设计工具、IP、操作系统和预验

证的参考设计。该器件集成了高速收

发器,能够支持未压缩的高清视频

(如SD/HD 3G-SDI 等)。OmniTek

公司总经理Roger Fawcett指出:“利

用该平台,广播和专业音频/视频产业

首次拥有了一款完全可编程的器件,

从而能够很好地将软硬件紧密结合在

一起。”

Fawcett 表示,Zynq-7000 SoC

能帮助系统架构师以两种方式实现视

频和音频处理算法,既可在板载双核

ARM 处理器上用软件实现,同时如果

应用需要加速以满足实时要求时也可

移植到FPGA 硬件中实现。FPGA 解

决方案对于多通道 HD、4K、更高帧

速率及其它高级视频需求尤其有用。

此外,软件处理器和FPGA 硬件的紧

密结合也使得在这两大领域内开发编

解码器算法成为可能。

Fawcett指出:“同样值得注意的

是,每个ARM® Cortex™-A9处理器

都含有一个NEON单∕双高精度浮点

单元(FPU)。结合富含DSP的FPGA架

构,这款FPU可为DSP设计人员提供

了一款高度灵活的平台,在该平台上

设计人员不仅能够设计各种信号处理

算法,此外还能够从收发器通过FPGA

硬件传输和处理未压缩的视频流,同

时用软件监控视频流以及实现整个系

统的控制,这意味着我们拥有无尽的

创新可能性。”此外,他还表示,基

于Zynq的解决方案“还能通过集成多

个ASSP 显著降低功耗和成本”。

OmniTek 开发板(见图1)通过5

组SD/HD 3G-SDI输入/输出、HDMI

输 入 / 输 出 对 以 及 复 合 视 频 、

VGA 和S 端子输入可为各种信号类型

出色的工具

USB Comms

LEDs

S Video + VGA Input

USB x 2

1G EthernetUSB x 2

CompIn

SFP+Cage

SDI I/OSD, HD, 3G PCB Dimensions: 190 mm x 140 mm

HDMIIn/Out

DIPSwitch

Genlock andClock Synthesis

HPC FMC

XilinxZynq-7045FFG900

2GB x 64-bit DDR3 PL

512MB x 32-bit DDR3 PS

16MB + 256MB QSPI FLASH

ARM PJTAG

SD Card Slot

Analog + DigitalAudio I/O

XADC

SerialPorts

FPD Power

JTAG

10 x LVDS I/O

图1 - OmniTek OZ745 Zynq视频开发套件的开发板

作者:Mike Santarini发行人:Xcell杂志赛灵思公司[email protected]

Page 47: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

提供支持,从而进一步扩展 Zynq 器

件的功能。此外,该开发板还可提供

模拟/数字音频 I/O、多达 4 个 USB

端口、1 个串行端口、1 个 1Gbps

以太网端口以及 10 个双向 LVDS

端口(例如用于 LCD 平板显示器连

接)。此外还包括 LCD 平板电源、

HPC FMC 扩展连接器和SD 卡插槽

以及 FPGA 和ARM JTAG调试端口

等。设计人员还能通过SFP+ 接线盒

添加10Gbps以太网功能,以支持因

特网视频协议网络的新兴标准。

两个参考设计

Fawcett 表示:“OZ745 开发板

配套提供的板支持包和硬件同样重

要。”除了基于Qt图形和开发板上内

置自测试 ( B I S T )构建的 L i n u x之

外,“支持包还可提供两个参考设

计,可作为用户自身设计的基础”。

首个参考设计可为设计团队提供支持

ARM处理器访问和控制开发板上所

有 I /O和外设所需的固件、驱动程序

和其它元件。简单的控制应用使得设

计 人 员 能 在 开 发 板 上 执 行

I / O, 并 了 解 和 试 用 I / O和 板 载

SDRAM。

与此同时,第二个参考设计则是

最新版赛灵思多通道实时视频引

擎(RTVE 2.1)。该参考设计在 Zynq-

7045 SoC 的FPGA 架构中实现一系

列视频IP 模块,可为设计团队评估图

像质量提供切实可行的FPGA设计

(见图2)。

现成的视频流水线

Fawcett 指出,OmniTek 公司的

新型 OSVP IP 模块是 RTVE 2.1

的关键组件,它能提供在单个IP 模块

中处理多格式转换和合成所需的所有

固件。OSVP 模块可处理的功能包括

多达10个SDI通道的视频去隔行扫描

和缩放、色度重采样以及视频输入多

通道合成到多达 10个视频输出等,可

帮助实现画中画、四分显示等效果。

此外, IP模块还可支持视频图形叠

加、3:2 和2:2电影节奏检测与处理、

细节功能增强以及帧同步等,甚至能

满足视频标准的全面改变。

Fawcett 指出,公司专门针对赛

灵思FPGA 技术对OSVP 模块进行了

47 赛灵思中国通讯 47期 2013年春季刊

出色的工具

SDI Rx

SDI Rx

SDI Rx

SDI Rx

SDI Rx

SDI Rx

SDI Rx

SDI Rx

HDMIRx

AXI MIG SDRAM Controller

AXI Interconnect

ARM Cortex-A9

InterruptController

1GEthernet

ChromaResample

CCM

OmniTek OSVPScalable Video

Processor

SDI Tx

HDMITx

图2 - RTVE 2.1参考设计的外形结构

第二个参考设计在Zynq-7045 SoC的FPGA架构中实现一系列视频IP模块,

可为评估图像质量提供一款切实可行的FPGA设计。

Page 48: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

精心优化。他说:“模块的所有接口

都符合 AXI4 议标准,此外也支持

赛灵思 CORE Generator™ 系统和

EDK集成,因此该模块能方便地连

接面向赛灵思技术实现的其它IP。”

该平台的应用包括平板显示控制

器、视频格式转换器、多画面显示和

视频图案信号发生器等。该平台可支

持所有 SD、HD 和 3Gbps 的 SDI

格式,同时也能连接分辨率高达4K

及以上的平板显示器。

一系列IP模块

除了提供类似于新型 Zynq 开发板的

开发平台之外,OmniTek 公司还不

断推出一系列视频处理相关 IP模块,

许多 IP模块专门针对赛灵思技术进行

了优化。有关功能包括视频去隔行扫

描和缩放、SDI音频嵌入和提取、视

频和音频监控、视频和音频测试图案

生成、音频编解码器、608/708/OP-

47 和 PAL 封闭字幕和图文电视解

码、SDI眼图和抖动监视以及数字效

果等。

此外,OmniTek公司还专门针对

广播、医疗成像、工业和国防市场领

域视频与图像处理用的FPGA、电子

和软件设计提供IP和设计咨询服务。

采用赛灵思 Zynq-7000 All Pro-grammable SoC 的 OmniTekOZ745视频开发套件现已全面供货。

如需了解更多信息,欢迎访问赛灵思

的广播页面(http://www.xilinx.com/applications/broadcast/index.htm)或OmniTek 网站:

http://www.omnitek.tv。

47 赛灵思中国通讯 47期 2013年春季刊

出色的工具

2013年春季刊 赛灵思中国通讯47期 48

赛灵思针对大批量应用大幅提升设计生产力

赛灵思面向大批量应用设计的Artix-7 FPGA AC701

评估套件现已推出,将满足更高系统性能、

小型化和最低总功耗等设计要求

All Programmable技术和器件

的全球领先企业赛灵思公司(Xil inx,

Inc. (NASDAQ:XLNX) )今天宣布

Artix™-7 FPGA AC701评估套件正

式推出,专门支持开发满足低成本、

低功耗应用需求的高性能系统。这款

最 新 评 估 套 件 配 套 提 供 A l l

Programmable Artix-7 200T器件,并

包括设计人员所需的工具、 IP和参

考设计,不仅可以帮助他们快速启

动开发工作,同时又能使其充分利

用业界领先FPGA的单位功耗系统

性能优势。

All Programmable Artix-7 FPGA

为低端远程射频前端、移动回程、

软件无线电、马达控制以及需要高性

能、小型化的其它多种不同应用带

来了功耗效率、小型化、低成本和更

高。系统性能等众多优势。Art ix-7

FPGA具有灵活混合信号 (AMS)、

DDR3、DSP资源、并行和串行I/O以

及其它系统级功能,是设计人员通过

可编程系统集成降低材料清单(BOM)

成本的最佳选择。

该评估套件包括针对业界首款功

能强大的SoC设计环境 — 赛灵思

Vivado™ 设计套件设计版本的器件专

用许可证。该评估套件还提供了10余

款参考设计,包括功能强大的PCIe®

和DDR3子系统,以及公司完整版

DMA Back-End Core 的IP许可证,便

于客户设计使用。AMS 101评估卡搭

配AMS参考设计是评估如何用AMS降

低材料清单(BOM)成本的完美工具,

适合从简单系统监控到更复杂模拟功

能的各种求。

供货情况

Artix-7 FPGA AC701评估套件定

价为1,295美元,现已通过以下网址接

受预订:www.xilinx.com/cn/ac701。

Page 49: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

49 赛灵思中国通讯 47期 2013年春季刊

XAPP744:面向ZYNQ-7000 ALLPROGRAMMABLE SOC的硬件在环路(HIL)仿真

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp744-HIL-Zynq-7000.pdf

赛灵思Zynq™-7000 All Programmable SoC没有提

供仿真模型,这给设计人员带来了一个难题。该应用指南

介绍一种方法——借助Z y n q - 7 0 0 0平台硬件在环路

(HIL)仿真技术,把MPCore处理器子系统集成到ISE®设计

套件仿真器(ISim)的仿真环境中。作者Umang Parekh解释

了如何将Zynq-7000 AP SoC设计中的处理系统集成到仿真

环境,并引导用户对HIL仿真的系统环境进行设置。

Zynq-7000 All Programmable SoC是赛灵思的最新

系 列 产 品 , 其 将 业 界 标 准 A R M ®双 核 C o r t e x ™

A9MPCore处理器子系统(PS)与赛灵思28nm可编程逻

辑 ( P L )完美结合在一起。传统上,赛灵思已提供有

MicroBlaze™嵌入式处理器。设计人员能够基于RTL采用

FPGA逻辑创建外设IP,并用RTL仿真器仿真整个系统。赛

灵思为仿真器提供MicroBlaze仿真RTL模型。

HIL技术可用于仿真、调试和测试Zynq-7000SoC 设计

的PS和PL部分。所有通过主/从通用高性能接口或者加速器

一致性端口(ACP)接口连接到PS的 AXI IP 均可在 ISim 中仿

真,而PS则可在硬件中仿真(ZC702评估板)。用测试平台

时钟为AXIPL接口提供时钟信号,这样就可在PL中实现周期

精度的IP仿真。PS和DDR存储器在自由运行模式下工作。

这种方法不仅对处理器系统IP非常适用,而且还对IP

驱动程序的开发以及软件调试非常有效。赛灵思ISE设计工

具14.2版本提供对Zynq-7000 HIL的软件支持。HIL仿真速

度远远高于RTL仿真,可确保软硬件设计快速实现。

XAPP892:用VIRTEX-7 GTX收发器实现SMPTE SDI接口

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp892-smpte-sdi-if-v7-gtx-transceivers.pdf

电影电视工程师协会(SMPTE)串行数字接口系列标准

为众多专业广播视频设备奠定了基础。播音室和视频制作

中心使用这些SDI接口传输未经压缩的数字视频以及多路

音频通道等嵌入式辅助数据。赛灵思 SMPTE SD/HD/3G-

SDI LogiCORE™ IP是一种通用SDI接收/发送数据路径,

没有任何器件专用控制功能。该应用指南介绍了一款包含

控制逻辑的模块,可用于将SMPTE SDI LogiCORE IP与

Virtex®-7 GTX 收发器进行耦合,从而构成完整的 SDI 接

口。作者 John Snow 还列举几个运行于赛灵思 Virtex-7

FPGA VC707评估板上的SD/HD/3G-SDI设计实例。

设计人员可将赛灵思SDI核连接到 Virtex-7 GTX

收发器,以实现能够支持SMPTE SD-SDI、HD-SDI

和 3G-SDI 标准的SDI接口。要实现全功能SDI接口,

需要使用额外的逻辑将SD I核与GTX收发器连接在

一起。该应用指南对这个额外的控制和接口逻辑进行

了介绍,并提供采用Verilog和VHDL源代码的必要控制

和接口模块。

另外还提供一个封装件,该文件包含GTX收发器控制

模块实例、SMPTE SDI 核实例以及两个实例之间的必要连

接。该封装文件能够简化SDI接口的创建。两个SDI演示应

用详细演示了如何在Virtex-7 FPGA设计中实现SDI。

实例..

应用指南如果您希望进一步了解我们的FPGA在众多应用中的使用情况,建议您阅读下列应用指南。

Page 50: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

2013年春季刊 赛灵思中国通讯 47期 50

XAPP794:1080P60照相机图像处理参考设计

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp794-1080p60-camera.pdf

赛灵思 Zynq-7000 All Programmable SoC 视频和

成像套件(ZVIK)以ZC702评估套件为基础,并增加了硬件、

软件和IP组件,以便开发定制视频应用。视频参考设计、

WUXGA彩色图像传感器和配备HDMI输入输出功能的视频

I/O FPGA夹层卡(FMC),能够让用户立即开始视频系统软

件、固件和硬件设计的开发工作。

Mario Bergeron(Avnet公司)和赛灵思的Steve Elzinga、

Gabor Szedo、Greg Jewett和Tom Hill共同编著的本应

用指南介绍了如何使用ZVIK设置和运行1080p60照相机图

像处理参考设计。作者还就如何构建软硬件组件以及如何

创建SD卡引导镜像提供了指导意见。

安森美半导体推出的V ITA -2000图像传感器产品

针对1080p60分辨率进行配置,用于生成视频输出。使用

LogiCORE IP视频内核实现的图像处理流水线可将原始的

Bayer二次采样图像转换为RGB图像。这些IP核能够去除瑕

疵像素和马赛克,并对图像进行色彩校正。系统的DDR3内

存 中 有 一 个 视 频 帧 缓 存 器 , 便 于 图 像 通 过 A X I

视频直接内存访问(VDMA)功能进入ARM处理器内核。视频

帧缓存器并非针对图像处理流水线的运行而提供,但集成

在设计中,用以采集输入视频图像,以供分析使用。

XAPP524:串行LVDS高速ADC接口

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp524-serial-lvds-adc-interface.pdf

Marc Defossezb编辑的本应用指南介绍了如何利用7

系列FPGA中的专用SelectIO™串并转换器(ISERDESE2

原语)连接可输出串行低压差分信号(LVDS)的模数转换

器 (ADC)。相关参考设计介绍了一种基本LVDS接口,

可将Kintex™-7 FPGA连接到具有高速串行LVDS输出的

ADC。目前采用的高速ADC其精度主要为12位、14位

或16位,而且单个封装内可包含多个转换器。封装中的每

个转换器既可独立运行,也可交错运行,从而将转换

(采样)速度提升两倍或四倍。

不管是独立模式还是交错模式,设计人员都可以使

用一个或者两个物理串行输出连接接口设备。一组差分

输出集合称为数据通道。使用一个数据通道时,转换器

工作在单线模式下;使用两个数据通道时,则工作在双

线模式。对于每一种可能的数据输出组合,一般都提供

一个高速数位时钟和一个采样率帧时钟。单线模式在单

数据速率和双数据速率配置下使用,而双线模式则仅在

DDR模式下使用。

FPGA的SelectIO串并转换器被配置为ISERDESE2

原语。该应用指南使用两个SDR模式下的ISERDESE2

采集DDR信号。一个ISERDESE2用数位时钟的上升沿

触发,另一个用数位时钟的下降沿触发。这种方法最大

可以采集16位信号,因为每一个ISERDESE2都可以采

集8位。

XAPP743:用MICROBLAZE处理器

MCS实现眼图扫描

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp743-eye-scan-mb-mcs.pdf

Mike Jenkins和David Mahashin共同编著的本应

用指南介绍了一种在内部MicroBlaze处理器上执行的

代 码 , 用 于 实 现 相 应 算 法 以 测 量 7系 列 F P G A

GTX收发器中接收器内的后均衡数据采样点统计眼图

(比特错误率与时间和电压偏移的关系)。逐点测得的

数据被存储在 Block RAM 中,供外部主控 PC 机猝发读

取。有了这种以软件为主的统计眼图测量方法,设计人

员就可以灵活地将眼图扫描功能集成到现有的设计中。

随着线路速率和通道衰减的增加,经常需要使用接

收器均衡器来克服通道衰减问题。这会给系统启动带来

难题,因为只通过测量接收器引脚上的远端眼图张开度

无法判断线路的质量。在高线路速率下,印刷电路板上

测得的接收眼图可能表现为完全闭合,但此时接收器均

Page 51: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

51 赛灵思中国通讯 47期 2013年春季刊

衡器的内部眼图却是张开的。7系列FPGA的GTH、GTX和

GTP收发器中提供的RX眼图扫描功能可在均衡器阶段完成

后测量和显示接收器眼图开启度。另外还提供几种附加模

式,用于实现几种判断和诊断均衡设置效果的其他

方法。

XAPP792:用ZYNQ-7000 ALLPROGRAMMABLE SOC设计高性能视频系统

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp792-high-performance-video-zynq.pdf

在使用赛灵思Zynq-7000 All Programmable SoC这样

的高端处理系统时,客户希望能够充分利用器件的处理系

统(PS)和定制外设。比如通过多个视频流水线将实时视频

流写入内存(输入),并在处理器访问内存时读取并发出

实时视频流(输出)。James Lucero和 Ygal Arbel合著的

本应用指南内容涵盖为目标客户提供的设计原则,帮助他

们利用Zynq-7000 SoC存储器接口、可编程逻辑(PL)中实

现的 AXI 主机接口,以及 ARM Cortex-A9 处理器等实现高

性能。

传输这类设计的视频流需要对最差情况时延进行限

制,以确保不出现丢帧或帧损坏。要实现较低时延的PL高

速AXI主机接口和对器件存储器接口的直接访问功能,就必

须采用高性能(HP)接口。Zynq-7000 AP SoC内置四个HP

链路,采用 64 位或 32 位 AXI3 从接口,以实现高吞吐量

性能。

该设计利用三个AXI视频直接存储器访问(VDMA)引擎

同时传输六个视频流(三个发送、三个接收),每个视频

流都是1,920x1,080p格式,刷新率60Hz,每像素32数据

位。每个VDMA都通过视频测试图生成器驱动,同时使用

视频时序控制器(VTC)内核设置必要的视频时序信号。每个

由 AXI VDMA 读取的数据都被发送到通用屏幕显示(OSD)

内核,以便将多视频流复用或交叠成单个输出视频流。

OSD内核的输出用于驱动板载HDMI视频的显示接口。

另外还加入了用于采集性能数据的性能检测器内核。

三个AXI VDMA通过AXI互联技术连接到三个单独的HP接

口,并通过Cortex-A9处理器进行控制。这种设计占用70%

的存储控制器带宽。该参考系统针对的是Zynq-7000

ZC702评估板。

XAPP586:将SPI闪存与7系列FPGA搭配使用

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp586-spi-flash.pdf

Arthur Yang编写的本应用指南介绍了将串行外设接

口(SPI)闪存作为赛灵思7系列FPGA配置存储器的优势。此

外,还详细介绍了FPGA与SPI闪存存储器之间要求的连接

以及如何选择合适的SPI闪存。

SPI闪存是一种用于配置7系列FPGA的简单低引脚数

解决方案。它的间接编程功能支持通过重复使用配置解决

方案所要求的连接功能来完成系统内的编程更新,从而增

强了易用性。虽然某些其他的配置选项可实现更快的配置

时间或者更大的密度,但SPI闪存解决方案能更好地在速度

和简易性之间进行平衡。

XAPP733:应用MULTIBOOT和LOGICORE IP软错误缓解控制器

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp733-multiboot-sem-controller.pdf

本 文 和 本 文 的 六 个 支 持 参 考 设 计 详 细 介 绍 了

Multiboot 功能和面向Spartan®-6、Virtex-6和7系列FPGA

的 LogiCore IP 软错误缓解(SEM)控制器的实现方法。

Multiboot支持可靠的设计管理和现场升级功能。设计人员

通过发送指令让FPGA使用替代比特流(通常经内部配置

访问端口(ICAP))进行完全重配置,从而初始化Multiboot

事件。

作者 Eric Crabill 表示,典型情况下 SEM 控制器能对

ICAP进行互斥控制,以满足其功能和性能规格要求。因

此,为了应用Multiboot和SEM控制器,用户必须协调ICAP

共享,另外,除组织多个FPGA配置数据集外,用户可能

还需要组织多个SEM控制器数据集。该应用指南介绍了如

实例..

Page 52: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

2013年春季刊 赛灵思中国通讯 47期 52

何进行协调,同时阐述了应如何对多个SEM控制器数据集

进行组织。该支持参考设计为SP605、ML605和KC705评

估套件上的硬件评估提供了实现方法。

XAPP523:使用7系列FPGA实现LVDS 4X异步过采样

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp523-lvds-4x-asynchronous-oversam-

pling.pdf

赛灵思7系列FPGA可使用SelectIO™接口资源进

行异步通信,因而能够保留GT收发器用于其他用途。

Marc Defossez编写的本应用指南介绍了一种通过LVDS

和SelectIO接口原语实现的异步通信采集法。这种方法可

在不同时钟相位采集多个数据样本,以便获得最理想点

上的样本,从而以相似的时钟频率(±100 ppm)完成数据过

采样。

7系列FPGA的SelectIO接口能够使用ISERDESE2原

语完成1.25Gb/秒的4x异步超采样。时钟由混合模式时钟

管理器(MMCME2_ADV)通过组件之间的专用高性能路径

生成。这种技术还允许在设计中使用较小的FPGA,从而

有助于降低成本。

XAPP538:利用优先必要数位实现软错误缓解

http://www.xilinx.com/support/documentation/applica-

tion_notes/xapp538-soft-error-mitigation-essential-

bits.pdf

配置存储器中的软错误会破坏设计。不过加载到赛灵

思FPGA中的典型设计运行只占用配置存储器单元总数的

一小部分。本应用指南介绍了如何利用13.4或更高版本的

ISE设计工具确定设计的重点区域分层,并鉴别与设定用

户逻辑相关联的优先必要数位。作者 Robert Le 还介绍

了如何利用 LogiCore IP软错误缓解(SEM)控制器和优

先必要数位来检测和纠正赛灵思 7系列和V i r t e x - 6

FPGA配置存储器中的软错误。该方法可有效降低故障率

(FIT),并提高设计可用性。

Xilinx Zynq-7000 All Programmable SoC入围2012电子成就奖

之年度最具潜力新技术奖All Programmable 技术和器件的全球领先企业赛灵思公司(NASDAQ: XLNX)宣布,其业界首款Zynq™-7000 AllProgrammable SoC获得《电子工程专辑》2012年电子成就奖(ACE Awards)之年度最具潜力新技术奖提名。这是继2013年1月 Zynq-7000 在美国相继获得《Electronic ProductsMagazine》年度产品奖提名以及《Microprocessor Report》分析师推荐奖之后所获得的又一殊荣。

“新年伊始,非常荣幸我们的Zynq-7000 All ProgrammableSoC获得了多项行业大奖。这是对我们Zynq-7000 AllProgrammable SoC团队成功推出这款芯片的充分肯定,”赛灵思处理器平台营销副总裁Lawrence Getman表示,“这些奖项不仅见证了Zynq-7000 All Programmable SoC芯片在创新方面的成就,同时也是对过去一年中这款芯片巨大市场成功的充分肯定。2012年,Zynq-7000需求的增长态势令人难以置信,我们不断收到来自各个应用领域的客户需求。”

ACE Awards旨在表彰那些在中国促进创新电子设计发展的公司、设计团队和个人,以及为中国电子工程师的设计创造显著效益的产品。所有提名产品将通过网友投票决出年度最佳奖项, 并在2013年3月的IIC上举行隆重的颁奖仪式。

赛灵思Zynq-7000 All Programmable SoC系列完美地实现了硬件、软件以及I/O全面可编程,为系统设计人员提供了无与伦比的系统及程度、高性能以及更高的灵活度。Zynq-7000重新定义了嵌入式系统的各项功能,为系统架构师和开发人员推出全新解决方案提供了一种灵活的开发平台,从而帮助客户降低系统功耗,缩减物料成本并实现更快的产品上市时间。在可编程技术势在必行的今天,Zynq-7000 All Programmable SoC为传统的ASIC和ASSP用户向可编程技术的过渡铺平了道路。全新的All Programmable SoC为客户带来了六大价值:

•可编程系统集成:All Programmable平台,硬件、软件以及IO全面可编程。

•提升系统性能:1 GHz ARM®双核Cortex™-A9 MPCore™处理器,使用可编程逻辑实现10倍于软件加速的处理速度。

•消减BOM成本:集成平台可节约40% BOM成本。•降低总功耗:处理器低功耗模式、28nm HPL工艺和高集成度可降低50%的系统总功耗。

•加速设计生产力:灵活而可扩展的平台和包括工具、操作系统以及IP在内的生态系统加快产品上市时间。

Page 53: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

VIVADO WEBPACK版本简介

Vivado WebPACK™ 工具可帮

助您仿真、综合和实现设计,而且针

对特定器件的设计是免费的。Vivado设计套件WebPACK版本支持Artix™-7(7A100T、7A200T)和Kintex™-7(7K70T、7K160T)器件。您现可立

即从以下网址下载WebPACK:www.xilinx.com/cn/download。

VIVADO 2012.4的器件支持

以下器件量产准备就绪,可全面

支持VIVADO 2012.4:

Virtex®-7 2000T(包括低压)

Artix-7 100T和200T

Virtex-7 X1140T器件目前处于一

般工程样片阶段。

逻辑仿真

Vivado现可为GTHE2原语提供

更快速的仿真模型,相对于当前模型

而言速度可提升达5至6倍,该仿真器

在 c o m p i l e _ s i m l i b 中现可支持

Aldec Riviera-PRO。

VIVADO高层次综合(HLS)

赛灵思扩展了寄存器传输级

(RTL)协仿真支持,包括了4款最新

仿真器:Cadence的Incisive和Aldec的Riviera-PRO以及赛灵思的Vivado和ISE仿真器。

现已添加了对浮点单/双高精度-

t a n、a t a n、s i n h、c o s h和指数

cmath.h函数的支持。

此外,Pcore格式导出IP现可支

持全部或部分综合网表,从而当IP用于Xilinx Platform Studio 时可显著

缩短整体综合时间。Vivado现支持在

图形用户界面(GUI)中对赛灵思开发

板进行综合。Vivado HLS库包含

面向视频和OpenCV I/O接口的31个β函数

SYSTEM GENERATORFOR DSP(DSP 系统生成器)

最新模型升级特性在使用最新版

取代模块时提供无缝移植。此外,

DSP 系统生成器提供一些新的浮点模

块,包括乘加、累加和指数。最新版

工具可将DSP48宏单元模块的仿真速

度提高5倍。采用多个DSP48宏单元

模块的模型将大幅缩短仿真时间。

赛灵思的IP核

如 需 了 解 赛 灵 思 I P 核 的 详

细列表,敬请参阅 IP版本说明指南

(XTP025)。

如需了解有关V i v a d o最新版

本的更多信息,敬请登录以下网

址,阅读Vivado 2012.4 版本说明:

http://www.xilinx.com/cn/support/docu-mentation/sw_manuals/xil-inx2012_4/irn.pdf。

问:V I V A D O 设计套件是

什么?

答:它 是 提 升 设 计 人 员

生 产 力 的 工 具 。 这

款 全 新 的 工 具 套 件 旨 在 提 高 设

53 赛灵思中国通讯 47期 2013年春季刊

Vivado 2012.4版本的最新消息Vivado™设计套件2012.4现已向目前所有有效期内的赛灵思ISE®设计套件用户免费提供。Vivado设计套件提供了高度集成的设计环境和全新一代系统到IC工具,其中包括高层次综合、分析布局布线和高级时序引擎等。这些工具能帮助开发人员提高设计集成度以及实现速度。

号外,号外

Page 54: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

53 赛灵思中国通讯 47期 2013年春季刊

计 、 集 成 和 实 现 赛 灵 思 2 8 n mA l l P r o g r a m m a b l e 系列器件

的 整 体 生 产 效 率 。 采 用 2 8 n m工 艺 制 造 的 赛 灵 思 器 件 更 大 ,

并提供了堆叠硅片互联 (S S I )、运行速度高达 2 8 G b p s 的高速

I / O 接口、更强大的微处理器和

外设以及模拟 /混合信号等多种

新 技 术 。 但 这 种 更 大 型 、 更 复

杂 的 器 件 也 给 开 发 人 员 带 来 了

多 重 设 计 挑 战 , 有 可 能 会 妨 碍

其 向 市 场 推 出 产 品 , 不 利 于 生

产力的提高。

Vivado设计套件可完全替代现有

的赛灵思ISE设计套件工具。ISE设

计套件工具的所有功能现在都直接内

置在Vivado集成开发环境(IDE)中,

从而充分利用了共享、可扩展的数据

模型。有了Vivado设计套件,开发人

员就可以利用布局布线功能同时针对

时序、阻塞、走线总长度、利用率和

功耗等多种设计指标进行分析优化,

并通过高层次综合和实现来加速设计

创建。由于建立在Vivado的共享、可

扩展的数据模型基础上,因此整个设

计流程可以在存储器中执行且无需编

写或转换任何中间文件格式,从而有

助于加速运行时、调试和实现速度,

同时能够降低对存储器的要求。

Vivado为用户提供了预测指标,

可让用户在设计流程的早期阶段进

行设计和工具设置修改,从而减少

对整体工作进度的影响。这一功能

减少了设计迭代,并提高了生产力。

用户既可以借助Vivado IDE的FlowNavigator功能通过简单的按钮方式

管理整个设计进程,也可使用Tcl脚本进行手动控制。

件专用WebPACK版本。有效期内的

ISE设计套件逻辑版本和嵌入式版本

用户可获得新的 V i v a d o 设计版

本。而ISE设计套件DSP版本和系统

版本用户则可获得新的Vivado系统

版本。欢迎到以下网址立即下载:

www.xilinx.com/cn/download。

赛灵思建议开始启动新设计的用户垂询当地的现场应用工程师,以确定Vivado是否适用于该设计。如果当前项目正采用ISE设计套件进行 设 计 , 赛 灵 思 建 议 不 要 转 用Vivado,因为两种环境的设计约束和脚本并不兼容。

更多信息请阅读 ISE 14.4 和

Vivado 2012.4版本说明。

问:VIVADO的注册码条款

是什么?

答:免费下载的Vivado设计

套 件 W e b P A C K 版

本可支持Artix-7 100T 和200T 以及

Kintex-7 70T和160T器件。目前所

有在有效期内的ISE设计套件逻辑版

本和嵌入式版本用户可免费获得

Vivado设计套件设计版本,而ISE设计套件DSP版本和系统版本用户则

可免费获得包含高层次综合功能的

Vivado设计套件系统版本。

如果用户在2012年2月2日以后

生成的ISE设计套件13或14版本许

可证,那么当前的许可证仍适用于

Vivado。如果用户仍在有效期内,

但生成许可证的日期早于2月2日,

那么就需要重新生成注册码方可使

用Vivado套件。

注册码生成信息,敬请访问:

www.xilinx.com/cn/getlicense。

问:我是该继续使用ISE设计套

件还是应该转用VIVADO?

答: I S E设计套件是一款业

经验证的解决方案,适

用 于 赛 灵 思 各 代 A l lP rog rammab le器件。赛灵思 ISE设计套件继续为广大开发人员带来

创新支持,并扩展了大家熟悉的7系列和赛灵思 Zynq™-7000 A l lProgrammable SoC 项目的设计

流程。 I S E 1 4 . 4能带来最新的创

新以及器件支持,现可立即下载。

赛 灵 思 的 新 一 代 设 计 环 境

V i v a d o设计套件2 0 1 2 . 4支持包括

V i r t e x - 7 、 K i n t e x - 7 和 A r t i x - 7FPGA在内的7系列器件,提供了增强

型工具性能,特别适用于大型设计或

密集型设计。

问:是否提供VIVADO设计套

件培训?

答:全新的Vivado充分利用

了强大的互动Tcl脚本、

Synopsys设计约束、SystemVerilog等业界标准。为帮助您缩短学习时

间,赛灵思推出了全新教师指导培训

课程,帮助您了解如何使用Vivado工具。如需了解更多信息,欢迎访问以下

网址:www.xilinx.com/cn/training。我

们也鼓励观看以下网址提供的Vivado快速入门视频:www.xilinx.com/cn/training/vivado。

问:VIVADO设计套件是否提

供不同版本?

答:Vivado设计套件提供三种

不 同 版 本 : 设 计 版

本、系统版本和现在推出的免费的器

2013年春季刊 赛灵思中国通讯47期 54

Page 55: 赛灵思中国通讯第四十七期 - 用PlanAhead启动并运行Zynq SoC设计

了解更多

硬件、软件及I/O可编程SoC领先一代