赛灵思 第
五
十
期
2 0 1 3
年
冬
Xilinx UltraFast 设计方法:实现生产力 领先竞争对手整整一代 水平的秘籍
季
刊
中 国 通 讯 Xilinx News I s s u e 5 0
W i n t e r
2 0 1 3
采用 Xilinx Zynq SoC 为云计算提 速 用 Zynq SoC 实 现 Red Pitaya 开 源仪器 如何设计用于插值和抽取的 IIR 滤 波器 利用中间件将 Zynq SoC 转变为 动态可再分配处理平台
第
30 页
未扩展时钟揭秘
请即浏览 网络版的全部精彩内容 www.xilinx.com/cn/xcell50
目
录
XCELLENCE BY DESIGN APPLICATION FEATURES 应用领域的出色表现 采用 Xilinx Zynq SoC 为云计算提速 ...12 无线通信领域的出色表现
23 20
12
Zynq SoC 构建 LTE 小型 蜂窝基站的设计基础 ... 18 出色表现 用 Zynq SoC 实现 Red Pitaya 开源仪器 ... 22
封面专题
6 Xinlinx UltraFast 设计方法:实现 生产力领先竞争 对手整整一代水 平的秘籍
22
2013 年第四季度
THE XILINX XPERIENCE FEATURES ASK FAE-X 未扩展时钟揭秘 ... 28 专家园地
如何设计用于插值和 抽取的 IIR 滤波器 ... 34
手把手课堂:FPGA101 在 Zynq SoC 上 实现模拟混合信号 ... 40
应用领域的出色表现:FPGA 101
28
让硬件设计轻松自如 ... 46
50 XTRA READING 出色的工具 利用中间件可将 Zynq SoC 转变为 动态再分配处理平台 ... 50 利用云计算简化 FPGA 设计 ... 56
号外,号外 Vivado 2013.3 版本的最新消息 ... 60
46
实例…… 应用指南 ... 62
Excellence in Magazine & Journal Writing Excellence in Magazine & Journal Design 2010, 2011 and Layout 2010, 2011, 2012
封面专题
Xinlinx UltraFast 设计方法:实现生产力 领先竞争对手整整一代 水平的秘籍 作者:Mike Santarini 赛灵思中国通讯杂志发行人 mike.santarini@xilinx.com
6
赛灵思中国通讯
2013 年第四季度
Vivado 设计套件新增手把 手的方法,确保可预测且 可重复设计的结果。
T 过去 40 年来,IC 工艺技术飞速发展,带动电子 企业推出丰富的产品,让当今的人们乐享其中。
然而芯片工艺技术的发展对电子创新至关重要, 而如果没有学术界和电子设计自动化 (EDA) 产业
同时快速推出工具的支持,芯片技术也是无法取 得如此顺利的发展。从二十世纪七十年代的晶体 管级 SPICE 模拟发展到当今的数十亿门系统级集 成设计环境,如此进步确实神速。但对电子技术 革新做出重大贡献的设计方法,同样令人惊叹却 往往被人们忽略。 设计团队能够借助全球最先进的芯片和最出 色的工具,但如果他们不能建立起有效的设计方 法,也无法在适当的时间内推出产品、进而也难 以获得商业成功。好的设计方法不仅能缩短设计 时间,让设计团队按时交付高质量产品,而且还 能让他们以可预测、可重复的方式开展工作,而 这正是长期商业成功的关键所在。就此而言,设 计方法应不断发展完善,以充分发挥芯片和设计 工具的改进。
2013 年第四季度
赛灵思中国通讯
7
封面专题
Ң䆒䅵⌕ࠡッᓔྟᬊᬯ – ࡴᖿ䗁ҷ – ᇍ㒧ᵰ䋼䞣(QoR)ᏺᴹᕅડ
ᇍ QoRⱘᕅડ 100ס 10ס
1.2ס
1.1ס
PCB / 㾘ߦ ఼ӊ/IP 䗝ᢽ
IP䲚៤ǃRTL䆒䅵 偠䆕
ᅲ⦄ǃᬊᬯ
䜡㕂ǃਃࡼǃ䇗䆩
㓽ⷁ䆒䅵ᯊ䯈ˈ䰡Ԣ䆒䅵៤ᴀ 图 1 - 流程开始就实现收敛能大幅提高结果质量并缩短设计时间
为了帮助客户进一步提高生产
计套件和赛灵思 All Programmable 器
添加了新的设计规则检查 (DRC rule
力,成功实现新一代创新技术,赛灵
件的先进技术,以提高生产力,并不
decks), 题 为“Methodology” 和
思针对其屡获殊荣的 Vivado 设计套
断缩短设计时间,准确预测设计进度,
“Timing”。新版 Vivado 设计套件还
件 推 出 了 UltraFast ™ 设 计 方 法, 帮
进而加速产品上市进程。”
提供硬件描述语言 (HDL) 和赛灵思设
®
助使用 Vivado 的设计团队加快在赛灵
UltraFast 设计方法的推出是赛灵
计约束 (XDC) 模板,有助于优化综合
思 28nm 7 系列器件以及即将推出的
思如何保持领先于竞争对手整整一代
和实现的结果质量 (QoR)。赛灵思还
20nm/16nm UtraScale ™产品系列上
水平的又一例证。赛灵思不仅推出最
提供一系列免费的在线自学视频,并
成功实现设计。
佳器件和最先进的工具套件,而且还
在全球不同地区提供官方培训课程。
Vivado 设计套件的高级产品市场
提供了业界最全面的设计方法。
总监 Ramine Roane 指出,这款新的
为 了 加 速 推 广 UtraFast 设 计 方
设计方法并不是完全另立门户,而是
法,赛灵思发行了免费的设计方法手
Roane 指出,UltraFast 设计方法的主
公司根据业界专家的提议精选了数项
册《Vivado 设 计 套 件 的 UltraFast 设
旨就是把设计收敛提到设计流程的前
最佳实例并将其精简为一套有效方法,
计方法指南》(UG949),帮助读者一
端, 也 是 QoR 影 响 较 大 的 地 方( 见
以推动设计团队走向可预测的成功,
步步了解设计方法,包括开发板的选
图 1)。这样,设计团队就能快速组
该方法统称为 UltraFast 设计方法。这
择、RTL 设 计 乃 至 实 现 和 最 终 调 试
建出一个“设计期正确”(correct-by-
些最佳实例涵盖开发板规划、设计创
等。 该 手 册 提 供 了 全 面 的 检 查 清 单
construction) 的设计方案上。 Roane 说:
建、设计实现与收敛、编程和硬件调
(checklist), 引 导 工 程 师 完 成 整 个 设
“如果能在设计流程早期阶段全面了
试等各个方面。
计 流 程。 此 外,Vivado Design Suite
解情况并做出决策,就能有效避免实
Roane 指出:“UltraFast 设计方
2013.3 版 本 还 将 设 计 方 法 的 许 多 元
现阶段耗时过长。”
法将帮助设计团队充分利用 Vivado 设
素实现了自动化(包括 linting),并
8
赛灵思中国通讯
加速收敛的设计方法
Roane 指出,Vivado 设计套件是 2013 年第四季度
封面专题
可编程行业唯一一款在流程的每个环
或许,能反映 UltraFast 设计方法
间 对 齐 的 DDR I/O 约 束 等 提 供 XDC
节(从设计输入到 IP 集成、RTL 综合、
加快设计收敛的最好例证就是“基线
模板。如果需要,我们可用时序特例
实现(优化、布局、物理优化、布线)
(Baselining)”概念。
来微调约束,或者进行一定的布局规
乃至启动)均支持交互设计分析和源
划。不过重要的是应当记住,如果相
文件交叉探测的设计套件。Roane 说:
通过 Baselining 快速时序收敛
应路径不是关键路径,那最好不要采
“采用传统工具时设计者只有到设计
“ 基 线 (Baselining) 是 一 种 用 于 加 速
用时序特例。同样,设计过度布局规
流程结束时、在规划全面实现后才能
设计收敛的技术,它着重于解决内部
划造成的问题远比带来的作用要多。”
发现问题,如果设计方案不能达到预
Fmax, 这 是 最 大 问 题,10 次 有 9 次
Roane 指出,基线法并不能替代
期效果,唯一的办法就是从头再来,
收敛所出现的问题就是它。这能避免
签署约束 (sign-off constraint):“仍然
而且根本不清楚问题的原因,不得不
由于复杂的、极易出错的 I/O 约束和
要在完备的约束的基础上验证设计方
进行多次长时间迭代循环。”
时序特例而耽误时间,防止用户和工
案。”
实现交叉探测和分析功能的主要
具被引导至错误的方向。采用基线技
UltraFast 设计方法还给出了获得
因素在于 Vivado 设计套件的统一数据
术,设计团队能用最简单的约束启动
原始签署约束的详细步骤。Vivado 通
模型。Roane 说:“统一数据模型使
收敛进程,集中精力于触发器路径。
过大量批处理和图形界面程序使这一
设计团队能够在整个流程中采用相同
随后,根据问题是出在时钟路径或数
任务自动化,分析时序路径、时钟网络、
的分析和收敛程序。这相对于老式设
据路径上,还是连线延迟或逻辑延迟,
时钟之间的交互等。新的时序 DRC 规
计套件而言是一大优势,能帮助工程
我们可采取有文档记录的修改措施,
则也可用于检查设计的约束及时钟网
师在多个环节上(甚至在尚未保存设
并重新运行分析。”
络。
计修改的临时记忆中)修改设计方案,
一旦设计团队用基线 XDC 收敛了
通过交叉探测到源文件或者其他设计
时序,就基本完工。随后就需要添加
VIVADO 设 计 套 件 的 ULTRAFAST 设
视图。赛灵思设计的这款统一数据模
I/O 接口约束。Roane 指出:“必须确
计方法指南
型能扩展运用到包含数百万个逻辑单
保这些约束的正确性,这样才能避免
要熟悉 UltraFast 设计方法,可从阅读
元的高端器件,而同类竞争工具刚刚
出现‘假的’时序问题。”
《Vivado 设计套件的 UltraFast 设计方
开始满足中端器件的要求。”
“正由于此,我们为源同步,中
法指南》开始。该指南分为 6 章,前
㒓⊩(Baselining):⫼Ѣᖿ䗳䆒䅵ᬊᬯⱘᡔᴃ Ӭ࣪ݙ䚼䏃ᕘ
㒓 XDC (ݙ䚼Fmax)
Ӭ࣪ᭈϾ㢃⠛
ܼ䚼 XDC (ࣙᣀI/O)
ᣝ䳔ᖂ䇗
Sign-off XDC ܼ䚼㑺ᴳ া䳔㽕ᚙމϟᠡ䞛⫼՟ǃᏗሔ㾘ߦ
图 2 - 基线法帮助设计团队快速实现时序收敛。
2013 年第四季度
赛灵思中国通讯
9
封面专题
两章介绍本指南内容和设计流程建议, 第三章到第六章深入分析 UltraFast 设 计方法的最佳实践。 第三章分析开发板和器件规划, 对 PCB 布局、时钟资源规划与分配、 I/O 规划设计流程、FPGA 功耗因素和
“ 编写 HDL 的方式对综合如何推理逻 辑有很大影响。良好的编码风格使得 设计使用架构中的固有资源,进而提 高工作频率。”
系统依赖性给出了明智的建议。为了 避免开发板改版,该设计方法概括介
的编码风格使得设计使用架构中的固有
不应该做什么的很好建议。本章还讨
绍如何利用赛灵思功耗估计器 (XPE)
资源,进而提高工作频率。为帮助客户
论了时序对功耗的可能影响。
探索并找到满足功耗预算分配要求的
充分利用这些资源,加速整体设计进
本指南的最后一章也就是第六章
架构。
程,我们提供了模板,指导这些组件推
介绍了配置和调试问题。这一章的前
这一章还强调了用良好的 I/O 规
理,特别是 RAM、移位寄存器和 DSP
半部分一步步引导读者了解生成比特
划启动设计的重要性,给出了配合开
资源的使用。这些模板内置于 Vivado
流和配置赛灵思 All Programmable 器
发板规划进行 I/O 规划的建议,至少
Design Suite 2013.3 版本中。”
件中的最佳方法。后半部分主要介绍
二者应当进行适当的协调。如果 I/O
本章还分三节着重介绍了提高可
了设计流程中多个阶段调试设计的最
规划和开发板规划二者不协调,就会
靠性、性能和功耗优化的有关编码技
佳实践。这部分探讨了如何实现 HDL
在流程后期出现系统级的时序和配电
术。每节都给出了约束建议,以充分
实例化调试探测点流程,以及如何在
问题。本章还讨论了各种用电模式,
发挥 Vivado 设计套件统一数据模型的
网表中插入调试探测点流程。本章还
对功率和散热分析给出建议,并介绍
优势。
讨论了设计载入目标器件之后的设计
了有关 PCB 的制冷考虑事项。此外,
“实现高可靠性的编码风格”这
调试策略。
该章还给出了设计项目中实现赛灵思
一节给出了时钟域交叉(同步和异步)、
All Programmable 3D IC 时的相关 I/O
未约束的复位和避免组合逻辑环路的
丰 富 资 源, 或 许 最 重 要 的 资 源 就 是
建议,因为连接多芯片器件的插入器
建议。“提高性能的编码风格”这一
UltraFast 设计方法检查清单,列出了
有着独特的要求。
节给出了有关关键路径上的高扇出和
设计团队在设计周期中每个阶段应考虑
第四章《设计创建》首先介绍了
寄存器复制的建议,以及设计中实现
的事项,从最初的设计规划到最后的硬
创建可靠的设计层次以及选择合适的
流水线应注意的事项。“优化功耗的
件调试。Roane 指出:“它给出了长
IP 等方面的策略和技巧,接下来的几
编码风格”这一节介绍了您在设计中
长的问题清单,重点指出可能对下游工
个部分介绍了实用的 RTL 编码指南。
可能用到的多种不同节省功耗技术,
序造成影响的设计决策典型方面。”
本章内容还涉及控制信号集合 (control
囊括了经过检验且可靠的数据路径和
检查清单不仅可可让读者链接至指南中
signals and sets)、RAM 和 ROM 推断、
门控时钟等方法,以及最大化门控元
的有关方面介绍,还给出外部链接,介
形成正确的 DSP 和算术推断的代码、
素、限制控制信号等一些微妙的建议。
绍特定的设计问题。赛灵思的这个检查
移位寄存器和延迟线编码,以及所有
第五章重点介绍了从综合到布线
推断的寄存器、SRL 和存储器的初始
整个实现流程。本章首先概括介绍了
化。本章还包括“参数、属性与约束“,
实现、综合属性和自下而上设计流程
对 ULTRAFAST 设计方法的支持
“时钟”以及“实例化、推断两种方
的优势。如前所述,本章深入介绍了
除了将所有最佳实践编译到极其有用
法的选择”等内容。
时序分析,并给出了时序收敛的基线
的《Vivado 设计套件的 UltraFast 设计
Roane 指出:“编写 HDL 的方式
法理念。此外,时序收敛这一节还给
方法指南》之外,赛灵思还在 Vivado
对综合如何推断逻辑有很大影响。良好
出了面对各种时序问题应该做什么、
Design Suite 2013.3 版本中融合了有
10
赛灵思中国通讯
本指南的附录部分给出了更多
清单还提供可下载的电子数据表。
2013 年第四季度
封面专题
关 UltraFast 设 计 方 法 的 众 多 建 议。 Vivado Design Suite2013.3 版本目前 支 持 UltraFast 设 计 方 法 和 时 序 DRC
Get on Target
规则,能更好地指导用户一步步完成 设计工作,而且提供了非常方便的硬 件描述语言 (HDL) 和约束模板,支持 自动建构校正。 此外,赛灵思的全球培训人员和 联盟成员生态系统也都正在积极支持 UltraFast 设计方法的使用。 举 例 来 说,Blue Pearl Software 公 司 将 赛 灵 思 UltraFast 设 计 规 则 添 加 到 其 Analyze RTL linting 工 具 中。 Roane 指 出:“Blue Pearl 实 现 了 UltraFast 设计方法中有关 RTL 指南的 自动化。除了执行语言 linting 之外, 它还强制采用特定的编码风格,确保 赛灵思器件的最佳结果质量,包括使 用适当复位类型、RAM 或 MAC 编码 方式能最佳推理出赛灵思器件的内置 固有模块等。”
Is your marketing message reaching the right people?
除 了 第 三 方 EDA 支 持 之 外, 赛 灵思还积极测试其 IP 核,确保其符合 UltraFast 方 法 和 DRC 要 求, 并 积 极 鼓励所有联盟成员 IP 厂商同样确保符 合指南要求。 最后同样重要的是,赛灵思公司 正在推出赛灵思及其全球合作伙伴共 同提供的一系列培训课程,发布全新 的 UltraFast 设计方法 QuickTake 视频。 此外,所有赛灵思最新视频均融合了 UltraFast 指南内容。 如 需 下 载《Vivado 设 计 套 件 的
Hit your target by advertising your product or service in the Xilinx Xcell Journal , you’ll reach thousands of qualified engineers, designers, and engineering managers worldwide. The Xilinx Xcell Journal is an award-winning publication, dedicated specifically to helping programmable logic users – and it works. We offer affordable advertising rates and a variety of advertisement sizes to meet any budget! Call today: (800) 493-5551 or e-mail us at xcelladsales@aol.com
UltraFast 设 计 方 法 指 南 》(UG949) PDF 版 本 并 了 解 关 于 UltraFast 设 计 方法的更多信息,敬请访问以下网址: china.xilinx.com/cn/ultrafast。
See all the new publications on our website.
www.xilinx.com/xcell 2013 年第四季度
赛灵思中国通讯
11
应用领域的出色表现
采用 Xilinx Zynq SoC 为云计算提速 新颖的可重配置硬件加速器可加速基于 MapReduce 编程框架的应用处理。
12
赛灵思中国通讯
2013 年第四季度
应用领域的出色表现
作者:Christoforos Kachris 塞萨斯德谟克里特大学研究员 ckachris@ee.duth.gr Georgios Sirakoulis 塞萨斯德谟克里特大学教授 gsirak@ee.duth.gr Dimitrios Soudris 雅典国家技术大学 (NTUA) 教授 dsoudris@microlab.ntua.gr
2013 年第四季度
视 频、 社 交 网 络 和 云 计 算 等 新 兴 Web 应 用 亟 需能容纳数千台服务器 的仓库规模的数据中 心。 在 数 据 中 心 和 其 它 计 算 机 集 群 中,用于处理大数据集的主要编程框 架 之 一 即 为 MapReduce 框 架 [1]。 MapReduce 是一种运用大量节点来处 理大数据集的编程模型。用户负责设 定“Map”和“Reduce”功能,然后 由 MapReduce 调度器将任务分配给 处理器。 MapReduce 框架的主要优势之一 在于,其能托管在由不同类型处理器 构成的多个异构集群中。大部分数据 中心都纷纷采用高性能的通用型器件, 如 英 特 尔 至 强 (Intel Xeon)、AMD 皓 龙 (AMD Opteron) 和 IBM Power 处理 器等。但是,即使在应用不属于高计 算密集型而属于高 I/O 密集型的时候, 这些处理器也会消耗大量的电力。 为 了 降 低 数 据 中 心 的 功 耗, 微 服务器作为一种替代性平台近期倍受 关注。这类低成本服务器通常采用嵌 入式系统中使用的低功耗处理器,如 ARM® 处理器等。微服务器主要针对 轻量级或并行应用,处理此类应用最 行之有效的方法是使用在节点间拥有 充足 I/O(而非拥有高性能处理器)的 单个服务器。微服务器方案具有众多 优势,如可减少购置成本、缩小占用 面积,并能降低特定应用类型的功耗。 在 过 去 的 几 年 里,SeaMicro 和 Calxeda 等 几 家 厂 商 已 开 发 出 基 于 嵌 入 式 处 理 器 的 微 服 务 器。 但 是, MapReduce 框架会占用嵌入式处理器 的多种资源,从而会降低运行在这些 平台上的云计算应用的总体性能。 为 了 克 服 这 个 问 题, 我 们 的 团 队已为 MapReduce 框架 开发出一种 能在全面可编程平台上与 ARM IP 核 实 现 高 效 整 合 的 硬 件 加 速 单 元。 为 了开发并评估所提议的方案,我们选 用了开发板上集成有双核 Cortex-A9 处 理 器 的 赛 灵 思 Zynq®-7000 All Programmable SoC。
流
赛灵思中国通讯
13
应用领域的出色表现
图 1 - MapReduce 硬件加速器的方框图
MapReduce 硬件加速器单元 MapReduce 加 速 单 元 负 责 处 理 Reduce 任 务 的 高 效 实 现。 其 主 要 工作是合并来自各个处理器的中间 键 / 值对,并为插入新键和更新(累 计)键 / 值对提供快速途径。我们将 MapReduce 加速器作为协处理器来实 现,可通过共享总线作为多核处理器 的扩充。图 1 为多核 SoC 中加速器方 框图。 如 图 所 示, 我 们 已 在 配 备 有 一 对 ARM Cortex ™ - A9 IP 核 的 Zynq SoC 中整合了硬件加速器单元。每个 14
赛灵思中国通讯
内核都有其自己的指令和数据高速缓 存,而每种高速缓存都可使用共享互 连网络与外设进行通信。该加速器通 过连接到互连网络的高性能总线实现 与处理器的通信。处理器通过访问加 速器的特定寄存器,给出需要更新到 MapReduce 加 速 器 的 键 和 值。Map 任务结束后,加速器即累加了所有键 的值。处理器仅需将该键发送给加速 器并读取寄存器中的最终值,即可检 索该键的最终值。通过这种方法,所 提议的架构就能向包含需要更新的 键 / 值对发送无阻塞交易,从而加速
MapReduce 处理。 编程框架 图 2 为使用硬件加速器的 MapReduce 应用编程框架。在原始代码中,Map 级 发 射 键 / 值 对, 而 Reduce 级 则 搜 索 该 键 并 消 耗 若 干 CPU 时 钟 周 期 的 时 间 来 更 新( 累 加) 新 值。 使 用 MapReduce 加 速 器 的 情 况 则 与 此 相 反,Map 级 仅 发 射 键 / 值 对, 而 MapReduce 加速器则合并所有的键 / 值对并更新相关条目,因而无需采用 Reduce 功能。 2013 年第四季度
应用领域的出色表现
Hash 函数可加速键的索引进程, 但若两个键具有相同的 Hash 值, 则可能造成冲突。我们选择了 Cuckoo Hashing 作为解决 Hash 冲突的最佳途径。 运行在 Linux 之下的应用层与硬
些标签用于标示存储器线路是否为空
于存储该值。在当前的配置中,最大
件加速器之间的通信通过使用存储器
以及是否有效。为了加速键的索引进
键值为 64 位,Hash 函数用于将键(64
映射 (mmap) 系统调用来进行。mmap
程,可用 Hash 模块将初始键转换为
位)映射到存储器地址(12 位)。
系统调用能将指定的内核存储器区域
存储器模块的地址。
映射到用户层,因而用户能根据存储
在当前配置中,我们设计的存储
器映射过程中提供的属性对其进行读
器结构可容纳 2 千个键 / 值对。每个
Hash 函数能加速键的索引进程,但在
取或写入操作。
键的长度可达到 64 位(8 个字符),
两个不同的键有着相同 Hash 值的情
我们使用控制单元来访问这些寄
值的长度达 32 位。存储器结构的总体
况下,也可能造成冲突。为了解决这
存器和串行化键 / 值组件的更新。键 /
大小为 2K x 104 位。第一个 64 位存
一问题,我们选择了 Cuckoo Hashing
值对存储在能根据应用要求进行配置
储的键用于比较使用 Hash 函数时我
作 为 解 决 Hash 冲 突 的 最 佳 途 径。
的存储器单元中。该存储器模块包含
们究竟是命中还是错失;接下来的 8
Cuckoo Hashing[2] 使用两个(而非一
键、值和可用作标签的部分数位。这
位用于存储标签;再之后的 32 位则用
个)Hash 函数。在插入新的条目时,
Cuckoo Hashing
这个条目就会存储在第一个 Hash 键
Original Code: Map{ Emit_Intermediate(key, value); } Reduce(key, value){ search(key); update(key, value); } Accelerator code: Map{ Emit_Intermediate_Accel(key,value); } … Emit_Intermediate_Accel(key,value) { mmapped_addr = mmap(MapReduce_Accel); send(mmapped_addr + 0x4, key); send(mmapped_addr + 0x8, value); }
的位置。如果该位置被占用,就会将 旧条目移到自己的第二个 Hash 地址。 这个过程会循环往复,直到找到空闲 地址为止。该算法可提供恒定的查找 时间 O(1)(查找只要求检查 Hash 表 中的两个位置),而插入时间则取决 于高速缓存的大小 O(n)。如果该流程 应进入无限循环,Hash 表就进行重建。 使 用 T1 和 T2 两 个 表 能 实 现 Cuckoo Hashing 算法。TI 和 T2 分别 对应一种 Hash 函数,每种大小为 r。 每个表均使用不同的 Hash 函数(分 别为 h1 和 h2)来创建 T1 和 T2 的地址。 每 个 组 件 x 分 别 经 Hash 函 数 h1 或 h2 运算后,存储在 T1 或 T2 中,即有 T1[h1(x)] 或 T2[h2(x)]。这样的查找方 法简单明了。对每一个我们需要查找 的组件 x,我们仅需分别使用 Hash 函 数 h1 和 h2 检查 T1 和 T2 表中的两个 可能位置。
图 2 - 编程框架
2013 年第四季度
要 插 入 组 件 x, 我 们 需 要 检 查 赛灵思中国通讯
15
应用领域的出色表现
䌘⑤
为了评估本系统的性能,我们使用了
᠔ऴⱒߚ↨
᭄䞣
Slice ᆘᄬ఼
843
< 1%
Slice LUTs
903
< 1%
Block RAMs
29
21%
Phoenix 框架提供的三种应用,经修 改后利用硬件加速器运行。这三种应 用分别是字数统计、线性回归和直方 图。 所 提 议 的 方 案 具 有 可 配 置 性, 能根据应用需求进行微调。为了评估
表 1 - 可编程逻辑资源分配
Phoenix MapReduce 框 架 应 用 的 性 能,我们已为加速器配置了 4K 容量的
T1[h1(x)] 是 否 为 空。 如 果 为 空, 就
器的访问。我们将控制单元实现为可
可以把组件 x 存储在这个位置。如果
执 行 Cuckoo Hashing 的 有 限 状 态 机
不 为 空, 我 们 就 用 x 替 换 T1[h1(x)]
(FSM)。
存储器单元(可存储 4,096 个键 / 值对, 每 个 BRAM 存 储 容 量 为 2K)。 每 个 键的大小最大可为 8 字节。 表 1 显 示 了 MapReduce 加 速 器
中 已 经 存 在 的 组 件 y。 然 后 再 检 查
的可编程逻辑资源。正如您能看到的,
T2[h2(y)] 是否为空。如果为空,我们
性能评估
将组件 y 存储在这个位置。如果不为空,
我们已在 Zynq SoC 中实现了所提议
就用 y 替换 T2[h2(y)] 中的组件 z。然
的架构。具体而言,我们将 Phoenix
后我们再尝试把 z 存储到 T1[h1(z)] 中,
MapReduce 框 架 映 射 到 Linux 3 下
如此往复,直至找到一个空闲位置。
的嵌入式 ARM IP 核中。每当处理器
根 据 原 始 Cuckoo Hashing 文 章
需要更新键 / 值对的时候,它们就会
[2] 的说明,如果在一定次数的尝试之
通过特定的函数调用功能发送信息。
加速器基本上由存储器组成,而控制 单元则用于有限状态机,Hash 功能只 占据器件的一小部分。 图 3 将 原 始 应 用 和 采 用 MapReduce 加 速 器 应 用 的 执 行 时 间 进行了比较。这两次测量均以赛灵思
后未能找到空闲位置,则建议对表中 前实现的软件中,每当运算进入这种 环路时,软件就会停止运行并将 0 返
存储器结构中添加特定的键。
值和标签。在标签字段中使用 1 位用 于标示特定的列是否有效。使用两个 基于简单 XOR 函数的 Hash 函数将键 映射到 BRAM 的地址。每次需要访问 BRAM 地 址 时, 就 需 要 使 用 Hash 表
ࡴ䗳↨՟ 2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0
0.25 ᠻ㸠ᯊ䯈
两个表的条目。这些 BRAM 可存储键、
ࡴ䗳ৢ
0.3
择像原始代码中的做法一样,向软件
用了两个 Block RAM 来存储 T1 和 T2
7
6 5
0.35
会发起重新 Hash 处理,或者可能选
1 所示的 MapReduce 加速器。我们使
7
ॳྟ
回给函数调用。然后该函数调用可能
我 们 将 Cuckoo Hashing 用 于 图
MapReduceᑨ⫼ⱘᠻ㸠ᯊ䯈 8 7
0.2 0.15 0.1 0.05 0 ᄫ᭄㒳䅵
Ⳉᮍᑨ⫼
ࡴ䗳
Original Reduce
的所有组件进行重新处理。在我们当
㒓ᗻಲᔦ
来创建地址,然后根据两个比较器的 指示来判断能否命中 BRAM(即创建 的键与 RAM 中存储的键一样,且有
图 3 - 根据应用的不同,系统总体速度提升 1.23 倍到 1.8 倍不等
效位为 1)。控制单元可协调对存储 16
赛灵思中国通讯
2013 年第四季度
应用领域的出色表现
Zynq SoC 设计为基础。
多核 SoC 和云计算应用的编程框架。
在字数统计应用中,原始应用里
对于赛灵思 Zynq SoC 等多核 SoC 平
Map 的任务是对字进行识别,然后提
台 以 及 基 于 MapReduce 框 架 的 云 计
交给 Reduce 任务。Reduce 任务随即
算应用来说,我们提议的硬件加速器
收集所有的键 / 值对,并累积每个键的
能通过为这些应用的 Reduce 任务加
值。在加速器应用中,Map 的任务是
速来降低总体执行时间。如欲了解有
识别字,然后通过高性能 AXI 总线将
关如何运用 Zynq SoC 平台为云计算
数据提交给 MapReduce 加速器单元。
加速的更多详细,敬请联系首席作者
将键 / 值对存储在寄存器(每个处理器
Christoforos Kachris 博士,也可访问
均不相同)中,然后加速器通过访问
www.green-center.weebly.com。
存储器结构来累积每个键的值。 参考文献: 为处理器减负 执行时间缩短的原因在于,在原始代 码中,Reduce 任务必须首先加载键 / 值表,再在全表范围内搜索需要的键。 然 后, 在 完 成 值 的 累 积 后,Reduce
1. 作 者:J. Dean 和 S. Ghemawat, 《MapReduce:大型集群的简化数据 处理》,美国计算机协会 (ACM) 通讯, 第 51 卷 第 1 号 第 107-113 页,2008 年 1 月;
任 务 必 须 将 键 存 回 存 储 器。 在 使 用 MapReduce 加速器后,我们可将该处 理器从这项任务中释放出来,从而缩 短 MapReduce 应用的总体执行时间。 Cuckoo Hashing(O(1)) 让键的搜索工 作在加速器中完成,同时处理器在键 / 值对的更新过程中通畅无阻。
2.
作 者:R. Pagh 和 E.F.Rodler,
《Cuckoo Hashing》,美国工程师和 科 学 家 协 会(ESA)2001 年 会 议 记 录,《计算机科学讲义》第 2161 卷, 2001 年; 3.
作
者:C. Ranger、R.
如图 3 所示,系统的总体速度提
Raghuraman、A. Penmetsa、G.
升了 1.23 倍到 1.8 倍不等。具体加速
Bradski 和 C. Kozyrakis,《评估多核
情况取决于每项应用的特征。在映射
和 多 处 理 器 系 统 的 MapReduce》,
函数较为复杂的情况下,MapReduce
2007 年电气与电子工程师协会 (IEEE)
加速器的加速性能就不那么明显了。
第 13 届高性能计算机架构国际学术研
在映射函数较为简单且占用的总体执
讨会会议记录 (HPCA ’07),第 13 到
行时间较少的应用中,加速性能比较
24 页,2007 年。
显著,因为有大量总体执行时间可用 于 Map 和 Reduce 功能之间的通信。 因此在这种情况下,MapReduce 加速 器能提供非常明显的加速效果。此外, MapReduce 加速器还能在处理器中创 建较少的新线程,从而减少环境切换 次数和执行时间。例如,在字数统计 应用中,平均环境切换次数就从 88 次 降到 60 次。
鸣谢
作者谨在此对赛灵思大学计划热心捐 赠 的 赛 灵 思 EDA 工 具 表 示 衷 心 的 感 谢。本研究项目属于“教育和终生学习” 运营计划“支持博士后研究员”行动 框架范围(行动受益人:GSRT),并 获得欧洲社会基金 (ESF) 和希腊政府 的联合资助。
MapReduce 框 架 能 广 泛 应 用 于 2013 年第四季度
赛灵思中国通讯
17
无线通信领域的出色表现
Zynq SoC 构建 LTE 小型 蜂窝基站的设计基础 采用赛灵思 Zynq-7000 All Programmalbe SoC 能让毫微微、微微以及其他小型蜂窝 基站设计的集成度、灵活性和低功耗达到 全新的高度。
18
赛灵思中国通讯
2013 年第四季度
无线通信领域的出色表现
型蜂窝属于低功率无线基站,运行于
小
授权频谱范围内,并由移动网络运营
作者:Wai Shun Wong 赛灵思公司高级产品营销经理 waishun@xilinx.com George Wang 赛灵思 DSP 技术专家 hwang@xilinx.com
商进行管理。小型蜂窝基站的类型囊 括毫微微 (Femtocell)、微微 (Picocell)、 微 蜂 窝 (Microcell) 和 多 载 波 基 站
(Metrocell),覆盖范围从一百米到数百米不等。如今, 小型蜂窝系统的电子核心组件包括 FPGA、DSP 器件以 及网络和主机处理器,这些组件都要满足不断发展演进 的无线标准要求。然而,新一代小型蜂窝系统正在快速 高度集成化,将以上这些元件集成到单个片上系统 (SoC) 内。 电信运营商可利用小型蜂窝扩大家庭、企业以及城 市和乡村公共场所的蜂窝网络的覆盖范围和容量。无论 在家还是单位,越来越多的客户希望随时随地使用移动 电话,即便有固网的情况下也是如此。另外他们还希望 覆盖范围能够无处不在,并通过足够的带宽享受创新的 移动数据服务。 大部分而且是越来越多的数据使用都发生在室内, 但宏蜂窝在室内的覆盖效果却很差。因此,小型蜂窝在 弥补覆盖范围和容量需求方面能够起到重要作用。小型 蜂窝不仅能减少断线次数,提高数据速率,改善最终用 户的使用体验,同时还能降低运营商的资本支出和运营 支出,进而减少场地租金、维护和用电成本。 赛灵思 Zynq®-7000 All Programmable SoC 将处理 器的软件可编程性与 FPGA 的硬件可编程性完美结合在 一起,实现了无与伦比的系统性能、灵活性与可扩展性, 并在降低功耗、削减成本和加快上市进程方面获得了显 著的系统优势。由于 Zynq SoC 同时具备软 / 硬可编程 功能,因此与传统的 SoC 处理方案相比,能够为客户提 供无与伦比的可编程功能和差异化能力。标准 SoC 仅具 有软件可编程性,极大地限制了设计灵活性和差异化, 而且不利于有效地适应不断发展演进的无线标准。 ZYNQ SoC 是 LTE 小型蜂窝基站的理想选择 Zynq SoC 的高性能可编程逻辑和 ARM 处理器可让客 户打造出能够满足当前及新一代无线设备不断提高的传 输带宽需求的设计方案。设计团队可在 Zynq SoC 的处 理系统中实现协议栈,并观察其运行情况。如果太过缓
2013 年第四季度
赛灵思中国通讯
19
无线通信领域的出色表现
很多小型蜂窝基站必须在无制冷风扇的条件下 运行,因此对散热提出了较高要求。 Zynq SoC 的功耗极低,这样不仅可在系统中 避免使用风扇,而且也不必安装昂贵的散热片。 慢,可利用 Vivado® 设计套件高层次
能代码的运行速度提高 700 倍,同时
很多小型蜂窝基站必须在无制冷
综合 (HLS) 工具将代码转换为 Verilog
释放处理器以更快地执行其他任务,
风扇的条件下运行,因此对散热提出
或 VHDL 格 式, 以 便 在 Zynq SoC 可
从而提升整体系统性能。
了较高要求。Zynq SoC 的功耗极低,
编程逻辑中运行。这样可以将一些功
这样不仅可在系统中避免使用风扇, 而且也不必安装昂贵的散热片。赛灵
Memory
Multicore SoC + DFE
思还提供用来提高功率放大器效率的 无线 IP,这种 IP 有助于设计团队进一
DUC
CFR
DPD
步降低小型蜂窝基站的耗电量。
Memory interface
DFE
异构网路 (HetNet) 需要连接大量
Ethernet Switch
DDC
采用不同操作系统和协议的计算机和
CPRI Serdes CPRI Serdes
PP & IPSEC Accel
ASSP
L1 Accel
FPGA
设备,为此,赛灵思推出了极富吸引 力的 All Programmable 器件组合。这 些产品具备最大的设计灵活性,仅单
DSP DSP DSP DSP
个可重配置器件即可满足 HetNet 的多
Multicore SoC
标准与多频带需求。无论客户设计的 是小型蜂窝还是传统的宏蜂窝架构, 都可以找到合适的赛灵思器件。赛灵 思的 Zynq SoC 器件相对于任何其他 器件而言,能够提供更高的系统集成 度,因此特别适用于小型蜂窝 HetNet
Integrated Design in Zynq
系 统。 双 核 ARM® Cortex™-A9 处 理 器 能 够 实 时 处 理 任 务。 其 中 的 一 个 Memory
Memory interface
GbE
GbE
Dual-Core A9 Processor (L2/L3 stack) L1 w/ L2 offload (IPSec, Crypto, etc.)
DPD
CFR
Cortex-A9 处理器运行实时操作系统
DDC
DUC
并负责处理 L1 控制任务,而另一个 Cortex-A9 则运行部分或全部更高层功
JESD204 Serdes JESD204 Serdes
Zynq 7045 SoC
能。 重负荷用户层处理任务最好在硬 件中完成。与多核 SoC 相比,结合使 用赛灵思丰富的最佳 LTE 基带功能集, 集成的 7 系列 FPGA 架构能够以更低
图 1 - 以前使用三颗芯片(多核 SoC、ASSP 和小型 FPGA,见上图)的 小型蜂窝基站设计现在可以在单个 Zynq-7000 SoC 中实现。 20
赛灵思中国通讯
的功耗实现卓越的实时性能。FPGA 2013 年第四季度
无线通信领域的出色表现
架构还可用来加速 L2 用户层功能,从
化(这是与同类竞争产品拉开距离的
而减轻 ARM 处理器的负载,这样设计
重要因素)。Zynq SoC 系列通过单芯
人员就能够灵活地加速架构中的硬件,
片实现方案可满足多种部署情况。
从而提高更高层的性能。该架构还允
考虑到目前 Zynq SoC 系列的处
许 集 成 数 字 上 变 频 和 下 变 频 (DUC/
理能力,对于很高容量的小型蜂窝基
DDC)、可选峰值因数抑制 (CFR) 以及
站而言,赛灵思建议在可编程逻辑中
数字预失真 (DPD) 等数字前端 (DFE)
实现无线电 +L1 基带,在处理系统中
功能。这种高集成度可进一步降低功
实现相关时序与控制。可以采用辅助
耗,并有助于减少 LTE 基站设计中非
处理器来处理更高层协议栈和回程传
常重要的整体端对端时延问题。
输管理任务。 图 1 中 的 上 图 是 典 型 的 2X2
小型蜂窝基站的灵活性
(2T2R) LTE 小型蜂窝基站设计。此类
赛灵思提供一个与赛灵思 LET 基带配
设 计 的 典 型 材 料 清 单 (BOM) 一 般 包
套的基于 Zynq SoC 的 LTE 小型蜂窝
含 三 颗 芯 片: 多 核 SoC、ASSP( 用
基站参考设计,当然客户也可以集成
于数字前端)和小型 FPGA(用于剩
自己的 LET 基带。另外,赛灵思还提
余 的 逻 辑 和 存 储 器)。 下 图 将 这 些
供包括 LTE 协议栈、RAN 安全、回程
芯片都集中到了单个 Zynq SoC 器件
IPSec、时序与同步以及稳健报头压缩
中( 例 如 Z-7045), 其 中 双 核 ARM
(RoHC) 等在内的综合而全面的软件解
Cortex-A9 负 责 运 行 LTE L2/L3 协
决方案。
议 栈。LTE L1 被 集 成 到 FPGA 架 构
Zynq SoC 支 持 PCIe® 协 议, 这
中, 并 为 L2 提 供 硬 件 加 速, 以 分 担
样设计人员就能够在基于 SoC 的 LET
IPSec、 加 密 和 RoHC 等 处 理 任 务。
小型蜂窝基站设计中轻松集成 Wi-Fi
FPGA 架 构 还 包 含 数 字 前 端 (DPD、
功能。Zynq SoC 的高性能处理功能和
DUC、DDC、CFR)。 采 用 单 芯 片 设
I/O,让其理想适合用于带集成无线回
计不仅能降低芯片间时延,实现最佳
程的高性能小型蜂窝基站设计。此外,
包处理能力,而且还可将材料成本降
对 JESD204B 的 支 持 使 基 于 SoC 的
低 25%,系统性能提高一倍,总功耗
LET 小型蜂窝基站可以轻松连接到任
降低 35%。
何业界领先的 RF 收发器。
LTE 小 型 蜂 窝 基 站 设 计 要 求 实
针对低容量和中等容量的小型蜂
现低成本、低功耗、高集成度和高可
窝基站,赛灵思采用 Zynq SoC 实现
靠性。全集成、可扩展性和灵活性是
了一款具备集成物理层的高集成度解
实现上述目标的关键。Zynq-7000 All
决方案。该物理层包括在可编程逻辑
Programmable SoC 具备双核 ARM 处
(PL) 中实现的无线电 +L1 基带,以及
理器子系统、高系统性能和低功耗可
在处理系统 (PS) 中实现的更高层协议
编程逻辑,是一款能够满足当前及未
栈、回程传输管理和物理层时序与控
来小型蜂窝基站需求的低成本解决方
制。可编程逻辑还可以为一些更高层
案。
功能提供硬件加速,从而使容量最大 2013 年第四季度
赛灵思中国通讯
21
出色表现
用 Zynq SoC 实现 Red Pitaya 开源仪器
最新 Red Pitaya 计划有助于从一个平台轻松、 低成本地开发出众多不同版本的仪器。
22
赛灵思中国通讯
2013 年第四季度
出色表现
作者: Aleˇs Bardorfer,理学博士 Red Pitaya LLC 公司 ales.bardorfer@redpitaya.com Matej Oblak 在读理学硕士 Instrumentation Technologies, d.d. 公司 matej.oblak@i-tech.si Borut Baricˇevicˇ Red Pitaya LLC 公司 borut.baricevic@redpitaya.com Rok Urˇsicˇ Red Pitaya LLC 公司 rok.ursic@redpitaya.com
电子工业的早期,
在
示波器、信号发生 器等测试测量设备 功能固定,只能执 行少量明确的任
务。过去数十年里,制造商运用 DSP 的可编程功能为特定应用量身定制了 较丰富的功能集。但只有制造商在产 品出厂之前才能为这些仪器编程并确 定其最终的功能集。 虽然现今市场上大多数仪器具有 较丰富的功能集,但并不能满足客户 特定项目所需的精确功能,这对世界 各地科研机构和大专院校中那些致力 于用仪器等较小型子系统构建大型复 杂系统的跨学科研究小组而言尤为如 此。在科研工作中,往往需要比厂商 设计提供的功能更精细的设备。一般 来说,高速反馈系统涉及两个(或多个) 需要极低抖动、硬实时响应的仪器子 系统,通常会出现集成方面的问题。 往往仪器的接口难以实现所需的总体 集成系统性能。封闭源码且面向 DSP 的仪器不允许此类集成。 Instrumentation Technologies 公 司的工程师一直想知道,如果开发出 一种用户可编程、用户可定制的开源 仪器(或信号处理平台)会怎样?为 此,我们开发出一块得到开源开发生 态系统支持的“Red Pitaya”小型测 试板。Red Pitaya 系统有望通过单个 可重配置的器件,以明显低得多的价 格,取代众多标准测试测量仪器。图 1 为 Red Pitaya 的系统架构图。这是 一款具有多个模拟 / 数字输入输出的 新型仪器(信号处理系统)。
2013 年第四季度
赛灵思中国通讯
23
出色表现
USB
ᢳࠡッ + ADCs
ҹ㔥
Ѣ䅵ㅫᴎ(Linux OS) ⱘ㋏㒳 ᅮࠊࠊ ˄C++݊Ҫ˅
DACs + ᢳৢッ
FPGA ㋏㒳 RF ADC
RF DAC ᅲᯊࠊㅫ⊩ ˄ᅮࠊ乘ᅮНഫ˅
RF ADC
RF DAC
㦞㢅䫒
㦞㢅䫒
图 1 - Red Pitaya 系统架构
系统架构
在模拟前端尽量采用通用电子设备,
的带宽和数字域的计算资源(主要是
理想的仪器一般要求在模拟域和数字
在处理链上尽量采用高速 ADC 进行信
FPGA 和 CPU 资源)的限制。
域表现出卓越的性能。频率日益提高
号采样。数字侧倾向于先处理信号,
从速度的角度来看,Red Pitaya
的模拟域仍然对仪器的本底噪声和测
然后尽可能晚地将它们发送到处理链
上主要有两类处理链。一类处理链是
量性能有着严格的要求。而数字域由
中的 DAC。模拟后端也尽量采用通用
利 用 FPGA 的 极 高 速 度、 极 低 抖 动
于稳定性好、抗噪能力强、时不变性、
电子设备。采用这种架构,处理 / 测
硬 实 时 处 理 功 能 实 现 的、 带 宽 约 为
能够执行高度复杂的处理且能够与标
量系统的所有特性都集中在数字域,
50MHz 的信号处理链;另一类处理链
准连接功能相结合,正蓄势待发。因
模拟电子技术保持简单、通用。这种
是通过 CPU 实现的,可能用于运行硬
此信号处理正日渐从模拟域向数字域
以数字为主的新型架构为通过硬件定
实时操作系统的带宽约为 50KHz 的信
过渡。
制执行多个应用领域内的一系列任务
号处理链。
新型信号处理系统的基本方法是 24
赛灵思中国通讯
提供了契机,可能仅受模拟前端后端 2013 年第四季度
出色表现
仪器中的嵌入式数字信号处理功能的 主要负责减少从仪器输入到 处理结果输出之间的数据。 根据我们的经验,在可重配置仪
典型的测试结果示例包括示波器
把 FPGA 和 CPU 同 时 嵌 入 在 信
器 中 将 FPGA 和 CPU 当 作 信 号 处 理
的信号图、频率分析仪的频域图或通
号 处 理 系 统 中, 使 开 发 人 员 能 够 自
系统的基本模块,一直是一种成功的
过处理吊顶摄像头输出得到的篮球运
由 决 定 如 何 在 FPGA 和 CPU 之 间 分
组合方式。这种组合为高性能 FPGA
动员位置坐标轨迹图等。所有这些测
配 DSP 处 理 任 务。 就 处 理 的 适 用 性
和易于编程的 CPU 之间的信号处理
量输出所代表的数据均远少于仪器的
来 说, 这 两 者 之 间 稍 有 区 别, 但 两
部分分区提供了很大的自由度。特别
原始信号输入数据。输入数据是在极
种都能够完成数字信号处理。一般来
是几乎所有仪器都面临着从原始采样
高频率下采样得到的。从仪器的输入
说 FPGA 适 合 处 理 超 高 速 但 简 单 的
点到仪器输出点减少大量输入数据的
到处理结果输出这个过程中的数据减
DSP 运算,但不太适合复杂的程序运
难题。例如一幅示波器图只需要保持
少就是嵌入在仪器中的数字信号处理
算 (procedural operations)。 而 CPU
1,000 个点。
功能的主要工作。
则擅长处理速度较慢较为复杂的程序
DSP2: FFT
CPU
㓧ᄬ
DSP1: 䖛ⒸϢᢑপ
DSP3: PID ࠊ
ADC
FPGA DAC
ࠊ㋏㒳
ⳳᅲϪ⬠
图 2 - FPGA 与 CPU 之间的 DSP 算法分配
2013 年第四季度
赛灵思中国通讯
25
出色表现
运 算。 此 外,CPU 还 擅 长 于 运 行 诸 如 Web 服务器等标准交互接口。虽然
催䗳ᢳ䕧ܹ (2䗮䘧、↣䗮䘧125 MS/s、14ԡ)
FPGA 开发工具近年来有大幅改进, 一般而言与 FPGA 中的 RTL 编码和数 字结构综合相比,编写运行于 CPU 上
᭄ᄫֵোᠽሩ䖲఼˖ 16Ͼ FPGA GPIOs
催䗳ᢳ䕧ܹ (2䗮䘧、↣䗮䘧125 MS/s、14ԡ)
的程序软件依然相对简单。 FPGA 与 CPU 之 间 的 DSP 处 理 自由分配还能带来另一大优势,即能 够快速对性能有限但功能齐全的系统
䖰䆓䯂 (ҹ㔥1Gb/s)
进行原型设计。在 CPU 上执行大部分 DSP 处理工作,不仅可以在项目开发 早期阶段进行原型演示,适用于市场 营销目的,同时在项目开发后期阶段,
Ϣ䮾ᄬ偅ࡼ఼ǃWi-Fi䗖䜡఼ ᨘڣ༈(USB OTG)ㄝ ݊ҪUSB䆒䖲
使用这种方法可以把 DSP 的关键性能 部分平滑移植到 FPGA 上,打造出功 能相同但性能完备的最终产品。 图 2 就 是 在 FPGA 和 CPU 之 间 分配 DSP 算法的实例。在开发过程中, FPGA 和 CPU 间的分区界限可以变化。 由于 DSP 处理被分割开,部分处理过 ᢳֵোᠽሩ 䖲఼Ԣ䗳ADC (4䗮䘧、100KS/s、12ԡ) Ԣ䗳DAC (4䗮䘧、100KS/s、12ԡ)
的 数 据 必 须 在 FPGA 和 CPU 之 间 来 回传输。因此,两者间的总线速度极 为重要,以防止造成额外的处理时延。
Red Pitaya 如 图 3 所 示 的 Red Pitaya 系 统 在 赛 灵 思 Zynq®-7010 All Programmable SoC 基础上构建而成。Red Pitaya 拥
⬉⑤ (Micro USB)
ঠḌ ARM Cortex A9 FPGA (Zynq SoC)
有高速双通道 125Msps 的信号采集和 信号生成能力,与位于其间的 FPGA
ࠊৄ (Micro USB)
DDR3 RAM (4Gb)
DSP 处 理 功 能 相 结 合, 即 构 成 硬 实 时 反 馈 环 路。 除 了 高 速 信 号 处 理 功
㋏㒳FPGA䬰ڣ (Micro SDव)
㦞㢅䫒䖲఼
能,该系统还拥有数个速度较慢(约 100KHz)、采用赛灵思模拟混合信号 (AMS) 技术(图 4)的 I/O 通道和多个
图 3 - 通用 Red Pitaya 仪器平台
数字 I/O。如果用户使用高速串行菊花
26
赛灵思中国通讯
2013 年第四季度
出色表现
链连接器将多个 Red Pitaya 模块以菊
CLK
花链方式连接起来,就能够实现分布 式处理。采用这种方法,用户就可以 通过将多个 Red Pitaya 子系统互连,
PLL
构建出具有更多输入输出端口的复杂 系 统。CPU 负 责 运 行 Linux 操 作 系
XADC
统, 并 为 1000Base-T 以 太 网、USB
DSP
PWM
OTG、Micro SD 存 储 和 USB 串 行 控 制台提供支持。 图 4 - 赛灵思 AMS 技术 (XADC) 与基于 PWM 的输出相结合
Red Pitaya 仪器的初始应用包括 双通道 125Msps 示波器、频谱分析仪、 信 号 处 理 器 和 PID 控 制 器 等。Red Pitaya 仪器及配套的应用程序和生态 系统将于 2013 年 12 月推出。其开放
源码性的魅力在于爱好者可以根据自
也有机会使用改进的或全新的仪器或
己特定的需求开发出定制应用。和任
应用。预计 Red Pitaya 生态系统将不
何开放源码定制的情况一样,其他人
断发展和完善更多其他应用。
Debugging Xilinx's Zynq TM -7000 family with ARM CoreSight ► RTOS support, including Linux kernel and process debugging ► SMP/AMP multicore Cortex TMA9 MPCore TMs debugging ► Up to 4 GByte realtime trace including PTM/ITM ► Profiling, performance and statistical analysis of Zynq's multicore Cortex TM -A9 MPCore TM
2013 年第四季度
赛灵思中国通讯
27
A S K FA E - X
未扩展 时钟揭秘 作者:John Bleker 赛灵思公司工具及方法战略应用 工程师 John.Bieker@xilinx.com
28
赛灵思中国通讯
2013 年第四季度
A S K F A E - X
时钟扩展对使用赛灵思 Vivado 设计套件的工程 师来说是一个很大的挑 战,但不是一个不可逾 越的障碍。
着越来越多的赛灵思用户开始使用 Vivado® 设计
随
套件,部分用户对未扩展时钟表示困惑。那么什 么是未扩展时钟呢?他们是如何进行关联和计时
的?应对未扩展时钟的标准方法又是什么呢?下面让我们 来详细探讨一下这个问题,重点是探讨确保设计人员使用正 确的同步技术安全地穿越未扩展时钟之间的跨时钟域 (clock domain crossing) 的方法。 随着 Vivado 工具的推出,赛灵思现在能够支持采用业 界标准 Synopsys 设计约束 (SDC) 格式的时序约束。这是 ISE 设计套件工具处理时序方式上的重大转变。Vivado 套 件最根本的区别在于所有时钟在默认条件下都彼此关联。这 样在 ISE 中处于无约束状态的时序路径在 Vivado 设计套件 中则处于受约束状态。如果两个时钟之间不存在周期性关 系,这种约束会造成非常严格的时序要求。 未扩展时钟是指在 1,000 个时钟周期内与另一个时钟 之间不存在周期性关系的时钟。Vivado BFT 内核范例设计 即是体现未扩展时钟工作方式的良好途径。
发起和捕获 时序路径从发起事件开始,由捕获事件终止。发起事件发生 在同步单元的时钟从非工作状态转入工作状态的时候。捕获 事件发生在下游的或者负责捕获的同步单元的时钟从非工 作状态转入工作状态的时候。从发起事件到捕获事件之间所 需的时间被称为“路径要求”,它代表自事件发起后到捕获 单元引脚处出现有效数据之间所需的时间。 如果发起时钟和捕获时钟同时位于同一物理时钟网中, 路径要求仅指时钟周期。以 250MHz 时钟为例,如果发起 单元和捕获单元的工作沿相同(上升沿对上升沿或下降沿对 下降沿),那么发起事件和捕获事件之间的时间间隔则恰好 为 4 纳秒。如果发起单元和捕获单元的工作沿不同,路径 就必须按一半的时钟频率进行时间计算。这就是时钟的上升 沿对下降沿或下降沿对上升沿转换的情况,对一个 250MHz 的时钟来说,对应的就是 2 纳秒的路径要求。 在 时 钟 源 (source clock) 和 时 钟 目 标 端 (destination clock) 非同一个时钟的情况下,时序问题就变得更加复杂。 具有不同时钟源和时钟目标端的时序路径被称为跨时钟域 (CDC) 路径。 2013 年第四季度
赛灵思中国通讯
29
A S K F A E - X
图 1 - 扩展时钟的 TCL 脚本
如果发起时钟和捕获时钟之间的相位关系未知,就无
Vivado 设计套件使用的实际限制条件是 1,000 个时钟周期,
法计算路径要求。由于不确定相位关系,则无法准确确定路
以两个时钟中较小的时钟周期为测量标准。如果在扩展两个
径时序。不安全时钟在 Vivado 设计套件生成的时钟交互报
时钟到超过 1,000 个时钟周期后没出现周期性关系,那么这
告中会突出显示。在发起时钟和捕获时钟之间的相位关系已
两个时钟就被称为“未扩展”时钟。
知的情况下,只要两个时钟之间存在周期性关系,就可以用
Vivado 设计套件对两个未扩展时钟之间的路径要求为
数学方法推导出路径要求。用于判断给定发起时钟和捕获时
发起时钟和捕获时钟相邻工作沿之间相隔的最少时间。但需
钟之间最低路径要求的方法称为时钟扩展。不过确定两个时
要注意的是对超过 1,000 个时钟周期的情况有更加严格的路
钟之间是否存在周期性关系需要用实际限制加以约束,因为
径要求,这就是 Vivado 设计套件将这种类型的两个时钟之
一般情况下两个不同时钟之间不存在共同的周期性特征。
间的关系称之为未扩展的原因。
图 2 - 125MHz 和 156.25MHz 时钟的时钟扩展
30
赛灵思中国通讯
2013 年第四季度
A S K F A E - X
Vivado BFT 内核可为测试不同时钟速率 提供理想设置,从而判定两个时钟是否为扩展时钟 为更好地理解 Vivado 设计套件计算未扩展时钟的方法,
序约束可将 wbClk 和 bftClk 的频率分别设置为 100MHz 和
先以图 1 中的 TCL 脚本来对扩展任意两个时钟速率之间的
200MHz。用户可可对任意两个时钟速率的此类约束进行修
上升沿对上升沿路径要求的方法进行详细说明。图 2 是这
改,以便确定由 Vivado 时序引擎判别的扩展关系。图 3 是
个脚本的输出,即两个分别运行在 125MHz 和 156.25MHz
将 bftClk 设置为 125MHz,将 wbClk 设置为 156.25MHz 时
的时钟的扩展。
所显示的结果,并提供了相关的时序 (report_timing –from
为确认上述 TCL 脚本得出的结果,我们来观察一下 Vivado BFT 内核范例设计。BFT 内核可为测试不同时钟速 率提供理想设置,从而判定两个时钟是否为扩展时钟。该内 核有两个独立的时钟源,分别命名为 wbClk 和 bftClk。时
[get_clocks bftClk] -to [get_clocks wbClk])。请注意,由发 起沿、捕获沿和时序要求共同确认 TCL 脚本的预测结果。 表 1 是使用图 4 中的 TCL 脚本获得的几种时钟速率的 发起沿、捕获沿和路径要求。
图 3 - 125MHz 发起时钟到 156.25MHz 捕获时钟的时钟扩展
থ䍋ᯊ䩳
থ䍋ᯊ䩳⊓ (ns)
ᤩ㦋ᯊ䩳
ᤩ㦋ᯊ䩳⊓ (ns)
䏃ᕘ㽕∖ (ns)
乥⥛ (MHz)
਼ᳳ (ns)
乥⥛ (MHz)
਼ᳳ (ns)
100.000 200.000
10.000 5.000
200.000 100.000
5.000 10.000
0.000 5.000
5.000 10.000
5.000 5.000
100.000 155.520
10.000 6.430
155.520 100.000
6.430 10.000
3260.000 3169.990
3260.010 3170.000
0.010 0.010
156.250 200.000
6.400 5.000
200.000 156.250
5.000 6.400
44.800 115.000
45.000 115.200
0.200 0.200
200.000 250.000
5.000 4.000
250.000 200.000
4.000 5.000
15.000 4.000
16.000 5.000
1.000 1.000
200.000 333.333
5.000 3.000
333.333 200.000
3.000 5.000
5.000 9.000
6.000 10.000
1.000 1.000
表 1 - 时钟扩展实例
2013 年第四季度
赛灵思中国通讯
31
A S K F A E - X
图 4 - 时钟扩展 Tcl 脚本
32
赛灵思中国通讯
2013 年第四季度
A S K F A E - X
处理未扩展时钟
在加入赛灵思之前,John Bieker 曾在 Tellabs 公
人们常常把未扩展时钟视为异步时钟,并通过 FIFO、边沿
司担任 ASIC 设计师长达四年之久。John 于 90
检测器或同步器电路等适当的同步技巧来进行处理。如果用
年代后期转为从事 FPGA 开发工作,主要负责
户使用此类技巧,应在约束中使用时序例外来处理未扩展时
RTL 设计、仿真、综合和布局规划等。在从事七年的 FPGA
钟(一般使用 set_false_path 或 set_max_delay 例外)。
设计工作后,John 加入赛灵思的 SAE 团队,并从事各类客
理解和说明未扩展时钟具有重要的意义,因为时钟之
户设计工作长达七年,期间主要负责时序收敛与器件适配。
间的边沿关系将决定 Vivado 设计套件中时序引擎所使用的
大约两年前 John 加入赛灵思工具与方法团队,负责 Vivado
路径要求。赛灵思希望对设计中的所有未扩展时钟进行详查,
设计套件的客户推广工作。John 毕业于伊利诺伊大学香槟
以确保使用适当的同步技巧安全地穿越未扩展时钟之间的跨
分校 (University of Illinois at Champaign-Urbana),获电气
时钟域。
工程学硕士学位 (MSEE)。他热衷于指导客户使用赛灵思工
如需了解更多信息,请参阅 Vivado 用户指南中有关工
具,从而帮助他们达成自己的设计目标。
具和设计方法的介绍。
2013 年第四季度
赛灵思中国通讯
33
专家园地
如何设计用于 插值和抽取的 IIR 滤波器 在占用极低资源的情况下轻松创建适合 在 DSP48E1 Slice 或逻辑中实现的 高阶多相 IIR 滤波器。
34
赛灵思中国通讯
作者:David Wheeler 博士 EnSilica 公司技术总监 david.wheeler@ensilica.com
2013 年第四季度
专家园地
计人员常常为自己的应用选
低阶滤波器选用的是双二阶段 (SOS),
用于多相分解的 IIR 滤波器
择有限脉冲响应 (FIR) 滤波
其采用的是直接型 1 结构。每个 SOS
本文介绍的滤波器采用图 1 中所示的
器,因为此类滤波器易于理
需要完成四次相乘、三次相加和部分
并联滤波器分解架构。在并联方式下,
解掌握且得到出色的设计与 IP 实现工
舍入,以减少进入级联中用于下一个
每个分支上的滤波器依次比上一分支
具的支持。赛灵思 FIR 编译器是一种
滤波器的位宽。对于定点实现一般还
多延迟 1。此外每个分支中的滤波器限
需要增加一个乘法器来实现段间缩放。
制为 N 带。每个分支的延迟数由输入
不过级联分解法对插值器或者抽
/ 输出采样率决定,但每个 A n (z N ) 滤波
不过在大幅降低 FPGA 资源占用的情
取器来说并非是一种有效的架构,因
器的项只涉及 z N 幂数,就是说差分方
况下设计出能够满足特定滤波规范要
为它没有发挥多相分解的作用。例如
程式只对每第 N 个输入 / 输出样本进
求的无限脉冲响应 (IIR) 滤波器是可行
在插值过程中,在将输入数据应用到
行计算,而对之间的全部样本忽略不
的。选用 IIR 滤波器的主要弊端就是使
滤波器之前,需要先在样本之间插入
计。
用设计工具时需要掌握一些专业知识,
N-1 个零,实现输入数据上采样并将
通常后续还需要手动编写 RTL 代码。
输入采样率提高到与输出采样率相等。
不过只要您完成滤波器的架构设计并
但级联 IIR 滤波器由于每个 SOS 内存
以定点方式表达出来,利用像赛灵思
在的反馈路径,就无法通过插入零来
System Generator 这样的新型工具就
降低计算量。
设
®
用于将 MATLAB 生成的系数映射到 DSP 和 FPGA 逻辑资源中的理想工具。
传输函数为被延迟的 N 带全通滤 波器 A n (z N ) 之和。即:
此外还可以把每一个全通滤波
能自动为您生成 HDL。赛灵思的一篇
器表达为基本全通段的级联,如图 1
相关白皮书中全面介绍了各种传统 IIR 滤波器 [1]。 现在我们来了解一下如何在占用 极低 FPGA 资源的情况下实现高性能 A0(zN)
多相 IIR 滤波器。这些滤波器结构特 点在于 NK+1 阶的滤波器仅用 K 次相
1/N
乘就能实现。此类滤波器对系数量化
现。此外滤波器级上任何节点的最大
X(z)
用架构,适合于实现流水线化并映射
fs
X
Y(z)
...
增益都是有界的,即中间计算只需要 1 位余量。这里我们提供的是一种通
+
A1(zN)
z-1
敏感度低,故可有效地以定点方式实
z-(N-1)
AN-1(zN)
fs
到 赛 灵 思 7 系 列 器 件 中 的 DSP48E1 Slice 中。该架构包括一定数量的无乘
An(zN)
法器五阶椭圆滤波器设计,适合在少 量 FPGA 逻辑片中高效完成多相插值
An,0(zN)
An,1(zN)
...
An,K-1(zN)
和抽取处理。 MATLAB 能够将 IIR 滤波器设计 分解成较低阶级联。这种较低阶级联
图 1 - 上面是 IIR 滤波器的并联形式; 下面是由级联的基本滤波器组成的每个分支。
与直接实现高阶差分方程的做法相比, 拥有更加理想的数值特性。一般来说 2013 年第四季度
赛灵思中国通讯
35
专家园地
x(n)
换组成的级联。分解为质因数 [2] 可以
+ -
+
简化系数优化问题,因为自由变量的 数量较少,且得到的滤波器级联十分 接近理想状态。在许多应用中,需要
z-N
X +
an,k
的采样率转换为 2 的幂,可通过反复
z-N
隔 2 插值或抽取来实现。为不失普遍 性,我们先来验证 N=2 时的特例。
+
+
y(n)
根据图 3 所示,N=2 时低通滤波 器总阶数为 5,虽然它由两个二阶全通 段和一个延迟元组成。现在应该明确
图 2 - 基本全通段
的是,与使用 SOS 实现该五阶 IIR 滤 波器所需的十个乘法器和八个加法器 相比,在理想情况下本例只需要两个 所示。假设全通段的总段数为 K,则
用标准的乘法器,使用直接型 1 还有
H(z) 的阶数为 NK+1。即有:
其他优势。它能够高效地映射到 DSP Slice 中 并 在 级 联 条 件 下 共 享 延 迟 资 源。
乘法器和五个加法器。如果考虑到是 隔 2 抽取,即对每个输入样本只有一 个分支处于活跃状态,那么还可以有 更大程度的节省。这相当于把输入序 列分为两个半采样率序列,分别为奇
插值和抽取
次样本和偶次样本。然后将这些样本
这种滤波器架构可以自然地映射为图 3 所示的抽取和插值结构中。这里用 换向开关在更高采样率下切换到每个 样本,取代了图 1 中所采用的延迟元。 图 2 是在直接型 1 中实现的基本
对隔 N 插值和抽取的操作,我们
全 通 段。 它 由 两 个 N- 样 本 延 迟 元 和
既可以围绕图 3 提供的理想结构开展
一个单系数乘法器组成。除了便于使
设计,也可以设计由质因数采样率转
应用到全通分支并加总。此外每个基 本段内的延迟元可以在较低速率下运 行 ,从而让存储需求减半。这个设计 可以高效地实现流水线化并映射到一 个 DSP Slice,因为两个分支的输出滤 波器可使用外部加法器进行累加。所
A0(zN)
A0(zN) 1/N A1(zN) X(z)
+
X
X(zN)
... AN-1(zN)
fs
A1(zN)
Y(zN)
fs/N
fs/N
... AN-1(zN)
Y(z)
fs
图 3 - 抽取(左图)与插值(右图)
36
赛灵思中国通讯
2013 年第四季度
专家园地
以实现一个如图 4 所示的五阶隔 2 抽
个分支滤波器依次提供一个交织器的
A、B、C、D 和 P 端 口 依 据 赛 灵
取 IIR 滤波器,只需要一个 DSP48E1
的样本。另外,支持隔 2 插值也只需
思 7 系列命名法 [3]。您可以级联 DSP
Slice。插值也存在类似的情况,由每
要一个 DSP Slice。
Slice 来实现更高阶的滤波器,而且由 于采用双分支结构,每个分支的流水线 延迟相等。需要注意的是因为反馈路径
x(n)
只能延迟 2,需要使用三个内部寄存器 的 DSP Slice 无法完全实现流水线化且。
a1 a0
与在输入端寄存相比,使用 M 寄存器 可以在更高频率下运行且功耗更小。当
z-3 18
24
24
B
D
A
N=3 或者更大的数时,既可以采用让 DSP Slice 在最大频率下运行的做法,
C C
B1
也可以采用让 DSP Slice 最大限度地实 现流水线化的做法。后者可以通过让滤
D
波器在双通道TDM模式下工作来实现,
x(n-4)
x(n-1)
y0(n-3)
+
+ -
此时延迟元数量翻倍,A 输入反馈路径
X
C 输入之前的延迟就从 3 增加到 5。
使用 Slice 中的寄存器 A1 和 A2,这样
量化和裕量
M
+
此类 N 带结构已被命名为波数字滤波器 (WDF),因为它们可以模拟经典模拟滤
+
+
波器中的双端无损梯形网络。文献中对 此类含有椭圆响应的滤波器设计有全面
48
的介绍。这种设计与用于模拟、数字域 间转换的双线性变换相结合,为设计数
P DSP48E1
字椭圆滤波器和巴特沃斯滤波器提供了
P
有力的方法。使用梯形滤波器的另一个 优势在于此类结构沿袭了对系数量化低 敏感度的特性。这意味着要在不含劣化 -1
z
+
等纹波特性的情况下实现能满足 100dB 阻带需求的滤波器,系数使用 18 位的 字长度绰绰有余。对基本段 [4] 稳态增 益特性的分析,发现增益最低的算术节 点的最大增益为 2.0,且发生在预加法
y(n-3)
器的输出处。这对定点设计而言有着显 著的意义,因为它意味着我们只需要在
图 4 - 隔 2 抽取,映射到赛灵思 DSP48E1
2013 年第四季度
预加法器输出增加 1 位即可。在赛灵思
赛灵思中国通讯
37
专家园地
-5
WDF Ϣ FIRᇍ↨
10
1
WDF FIR
0
0.6
-20
0.4
-30
0.2
-40
0
dB
dB
WDF FIR
0.8
-10
-50
-0.2
-60
-0.4
-70
-0.6
-80
-0.8
-90 -100
WDFϢFIR 䗮ᏺ䍙㑻ؐ
x 10
0
0.05
0.1
0.15
0.25 0.3 0.2 乱ᅮ乥⥛
0.35
0.4
0.45
-1
0.5
0
0.05 乱ᅮ乥⥛
0.1
0.15
图 5 - 满足相同阻带(左图)和通带(右图)规范的 21 阶 FIR 滤波器和五阶 WDF
DSP48E1 Slice 内的预加法器输出没有
滤波器相比,它能够满足相同的通带纹
饱和逻辑存在,故将 A 和 D 的输出限
波和阻带衰减指标。结果表明滤波器阶
接下来我们来验证一下如果不使
制为 24 位可以防止滤波器的运行发生
数通常下降到原来的 1/4,且与 FIR 所
用 DSP48E1,而是通过高度量化系数
数字溢出,以及更为重要的是,让运行
用的 11 个乘法器相比(考虑对称因素),
在部分 LE 中实现滤波器情况会得到什
达到 DSP Slice 的最大内部精度。虽然
WDF 只需要两个乘法器。
么。回顾一下,由于 WDF 滤波器以模
稳态增益被限制在 2.0,阶梯响应下的
纹波来帮助满足阻带需求。
在半带 WDF 中,阻带和通带纹
拟梯形滤波器原型为基础,那么针对
瞬态会超过 2.0,因此建议只使用 23 位,
波并非互不相干。不过通过合理设置
特定的通带我们应该能够找到低位密
为安全运行留出裕量。对某些数据源,
阻带衰减就能得到可忽略不计的通带
度的系数。比特应尽量以标准分解方
比如说 24 位音乐而言,您可利用预先
纹波。例如图 5 中的滤波器的通带纹
法写入,从而最大程度地减少加法器
知晓的信号特性,应用完全的动态范围。
波为 10-6dB。FIR 的优势在于能够单
的数量,如表 1 所示。
如果输入数据不足 24 位,应在字
独设定这两个设计参数,这样在给定
虽 然 0.19 通 带 的 五 阶 滤 波 器 的
中左对齐,因此会产生部分分数位。例
阶数的情况下,可以设定较高的通带
阻带衰减已经不错了,但是将两个这
如,对于 16 位输入数据而言,理想的 选择是留出 1 位保护位、16 位数据位和
乱ᅮ䗮ᏺ
㋏᭄
䰏ᏺ㹄(ޣdB)
7 位分数位。与浮点相比,一般只需要 3到4位分数位就足以实现理想的精度。
0.1
生成滤波器系数 R.A. Valenzuela和A.G. Constantinides[5]
0.175
a0 = 1/8 a1 = 9/16 = 1/2+1/16 a0 = 3/16 = 1/8+1/16 a1 = 21/32 = 1/2+1/8+1/32
69
44
的专著中已充分介绍了采用双分支结构 实现为任何阶数椭圆滤波器生成系数的 方法。图 5 所示的是一种标准化通带为
0.19
a0 = 7/32 = 1/4-1/32 a1 = 89/128 = 1/2+1/8+1/16+1/128
39
0.125 的五阶(两个系数 a0=0.1380, a1=0.5847)WDF 滤波器,与使用帕克
表 1 - 三种样本通带的量化系数
斯 - 麦克莱伦算法设计的 22 抽头 FIR
38
赛灵思中国通讯
2013 年第四季度
专家园地
样的滤波器简单级联就可以得到阻带 为 -78 dB 的 10 阶滤波器。例如表 1 module wdf5_deci #(parameter WIDTH = 16, FRAC = 3, GUARD = 2) ( input
的少许几行 Verilog 代码来实现。
clk,
input
中的第一个抽取器可以用图 6 中给出
reset,
input
signed [WIDTH-1:0]
data_in,
有效资源
input
enable,
output reg signed [WIDTH:0]
data_out,
我们已经展示了自然而然映射到插值
output reg
valid_out
和抽取中的 IIR 滤波器构建。该结构比
); reg
IIR 二阶段甚至 FIR 都拥有更多有效资
state;
reg
signed [GUARD+WIDTH+FRAC-1:0] x, x_1r, x_2r, sum_1r, sum_2r;
wire signed [GUARD+WIDTH+FRAC-1:0] p, p0, p1, sum, diff, dec;
源。它能充分映射到 DSP48E1Slice 的 预加法器 / 乘法器 / 后加法器中,且对
always @(posedge clk)
于 18 位系数的定点量化效应十分稳健,
begin
从而给出可控制的 100 dB 阻带。一些
if (reset)
无乘法器五阶设计可允许用于特定通带
begin x <= 0;
宽,可将其映射到一些逻辑寄存器和加
x_1r <= 0;
法器中以降低 DSP 资源占用。
x_2r <= 0; sum_1r <= 0; sum_2r <= 0;
参考文献:
state <= 0; data_out <= 0;
1. 赛 灵 思 白 皮 书 WP330,《 赛 灵 思
valid_out <= 0;
FPGA 中 的 无 限 脉 冲 响 应 滤 波 器 结
end
构》,2009 年 8 月;
else if (enable) begin x <= data_in <<< FRAC;
2. 作 者:P.P. Vaidyanathan,《 多 速
x_1r <= x;
率 系 统 和 滤 波 器 组》,Prentice-Hall
x_2r <= x_1r;
出 版 社, 纽 约 州 Englewood Cliffs,
sum_1r <= sum;
1993 年;
sum_2r <= sum_1r; state <= ~state; data_out <= (dec >>> FRAC+1);
3. 《赛灵思 7 系列 DSP48E1 Slice 用
valid_out <= state;
户指南》,1.5 版本,2013 年 4 月 3 日;
end
4. 作 者:Artur Krukowski,Richard
end
Morling,Izzet Kale,《 多 相 位 N 路
assign diff = x - sum_2r; assign p0 = diff >>> 3;
// 0.125 = 1/8
径 IIR 结构量化效应》,IEEE 仪器测
assign p1 = (diff >>> 1) + (diff >>> 4);
// 0.5625 = 1/2+1/16
量汇刊,第 51 卷第 6 号,2002 年 12 月;
assign p = state ? p1 : p0; assign sum = p + x_2r; assign dec = sum_1r + sum_2r; endmodule
5.
作 者:R.A. Valenzuela 和 A.G.
Constantinides,《高效率插值抽取数 字信号处理方案》,电子电路和系统, IEEE 会议记录第 G 部分第 130 卷第 6
图 6 - 实现表 1 中第一个抽取滤波器的 Verilog 代码
2013 年第四季度
号,1983 年。
赛灵思中国通讯
39
手把手课堂:FPGA101
在 Zynq SoC 上 实现模拟 混合信号
40
赛灵思中国通讯
2013 年第四季度
手把手课堂:FPGA101
在 Zynq SoC 内部使用 XADC 可以极大提高系统集成度,而 且实现起来非常简单直观。
本 文 是 Adam Taylor 计 划 编 写 的 Zynq-7000 All Programmable SoC 系列实际操作教程的第四篇。前 三篇已分别发表在《赛灵思中国通讯》的第 47、48 和 49 期。Adam 是《赛灵思中国通讯》的长期撰稿人, 本期杂志中还有他的一篇有关设计调试的文章。另外 Adam 还在 All Programmable 星球社区上撰写博客 (www.programmableplanet.com)。 灵 思 Zynq®-7000 All Programmable SoC
赛
配套提供一个带有 2 个 12 位模数转换器 (ADC) 的 XADC 模 块。 这 两 个 ADC 的 采
作者:Adam Taylor, 特许工程师, aptaylor@theiet.org
样率可高达每秒百万次采样 (1MSPS),具有理想的 500kHz 有效输入信号带宽(辅助输入端信号带宽为 250kHz)。XADC 多路复用 17 个输入信号并测量一 系列内部电压与温度。如果您的设计无法为外部信号 提供足够的模拟输入引脚,那么应对 XADC 加以配置, 以驱动外部模拟多路复用器并按照要求的顺序对所有 输入进行排序。 XADC 能够实现单极或双极测量,因此器件的输 入均为差分输入。17 个差分输入被划分为一个专用 对(称为 VP/VN)和 16 个辅助输入(可以是模拟或 数字 I/O,被称为 VAUXP 和 VAUXN)。有效输入信 号带宽视所用的差分输入类型而定,如果使用专用对, 则信号带宽为 500kHz,如果使用辅助输入,则信号 带宽为 250kHz。 XADC 的混合信号性能非常好,根据数据手册显 示,其具有 60dB 的最低信噪比 (SNR) 和 70dB 的总 谐波失真 (THD)。根据器件所处温度范围(-55ºC 至 125ºC 或 -40ºC 至 100ºC)的不同,XADC 的分辨率 可以是 10 位或 12 位。这样根据下面的等式计算得出 的 XADC 有效位数是 9.67。
ENOB = (SNR–1.76/6.02) (参考《赛灵思中国通讯》第 45 期中《ADC 和 DAC 的 FPGA 工程师使用指南》,了解这些器件的更多理 论详情。) XADC 具 有 16、64 和 256 个 采 样 的 平 均 计 算 法可供用户选择,用以降低输入端噪声。用户还可以 为每个所测量的内部器件参数设置最大和最小告警等 级。 2013 年第四季度
赛灵思中国通讯
41
手把手课堂:FPGA101
XADC 适合哪些应用?
• VCCAUX:可编程逻辑的辅助电压
考《赛灵思中国通讯》第 47 期的封面
设计人员可将这种 ADC 用于从简单的
• VREFP:XADC 正参考电压
专题文章)。选择您所创建的处理器
板载参数(电压、电流和温度)内务 处理遥测,到对触摸传感器、马达控
• VREFN:XADC 负参考电压
制或简单的无线通信协议的支持等一
• VCCBRAM:可编程逻辑的 BRAM
系列应用。此外,还可以将其用在军 事或其他重要系统中,以检测设备篡 改。
电压 • VCCPINT:处理系统的内部核心 电压
XADC 的重要优势之一是用来监 控一系列系统内部参数,验证设计方 案的良好程度。此外,为了简化设计 初期的验证工作,您可以在基于 Zynq-
• VCCPAUX:处理系统的辅助电压 • VCCDDR:处理系统的双倍数据 速率 RAM 电压
7000 All Programmable SoC 的 系 统
子 系 统, 并 双 击 打 开 Xilinx Platform Studio (XPS)。您可以在 XPS 中修改 处理系统。 XPS 打开后,选择项目窗口左侧 的 IP Catalog 标签,并选择模拟菜单 下的 AXI XADC。这时会出现提示, 问您是否要向设计中添加 IP。点击是, 显示 IP 配置窗口,如图 1 所示。这里 没有太多需要配置的内容,除非您想 对复杂的 AXI 总线接口进行优化。 用 户 标 签 是 主 要 的 操 控 区 域。
中使用 XADC 来测量由片上温度传感
硬件实现
您可以通过该标签为处理器添加中
器记录的温度以及后续的其他参数。
要想使用 XADC,首先需要打开包含
断,启用温度总线。您可以将启用后
Zynq SoC 实 现 方 案 的 PlanAhead ™
的温度总线连接至储存器接口生成器
项目(如果您不知道如何操作,请参
(Memory Interface Generator), 用 以
• VCCINT:可编程逻辑的内部核心 电压
图 1 - 在 XPS 中添加 XADC
42
赛灵思中国通讯
2013 年第四季度
手把手课堂:FPGA101
图 2 - XPS 中的外部连接
提供影响时序的温度信息。在 ISim 中
个辅助模拟输入,同时提供四个 XADC
如果您查看一下综合结果,就会发现
仿真 XADC 时使用的是仿真监视文件。
专用的 GPIO。您可以根据需要将这些
资源列表中已含有 XADC。
如果您对 XADC 的配置比较满意,
GPIO 连接到告警输出或多路复用器输
就可以关闭 IP 配置窗口,同时 XADC
出。可在 XPS 内选择下拉菜单中的“不
编写软件
将被添加到处理系统中。如果您点击
连接外部端口”选项来断开外部 I/O。
硬件设计已经完成,此时您需要将硬
System Assembly 查看器的地址标签,
如果您希望使一些辅助输入仍处
件再次导入到软件开发套件 (SDK) 中,
就会看到分配给 XADC 的地址范围,
于连接状态(例如添加两个 ZedBoard
以便升级板支持包。在 PlanAhead 中
然后通过勾选来锁定地址范围。
输 入), 可 在 系 统 内 部 保 留 VAUXP
选择文件 -> 导出 -> 导出硬件到 SDK
下一步是设置连接到 XADC 的外
和 VAUXN 信道,同时在 RTL 设计的
选项。这时会出现提示,警告我们将
部端口数。在默认情况下,XADC 可
顶层只连接信道 0 和信道 8。如果希
覆盖已有的硬件定义。点击“是”并
支持 1 个外部多路复用器、16 个辅助
望连接辅助输入但移除其他外部端口,
覆盖。
模拟输入、8 个告警输出和 1 个转换
需要右击特定的 I/O,然后选择“无连
开始,如图 2 所示。
接”选项,如图 3 所示。
如果 SDK 打开,您会收到一个提 示介绍硬件规范文件的变更情况。如
必要时您可以移除这些端口,只
外部连接设置好后,运行设计规
为 ADC 保 留 专 用 的 模 拟 输 入 Vp 和
则 检 查(DRC)。 如 果 DRC 未 显 示
Vn,以及连接监视器的内部信道。例如,
任 何 错 误, 即 可 退 出 XPS 并 返 回 到
点击 SDK 提示中的“是”选项,
ZedBoard 只能在信道 0 和 8 上支持两
PlanAhead 中,并在此生成比特流。
硬件定义就会被更新,同时您的项目
2013 年第四季度
果 SDK 没有打开,那么会在下次打开 的时候收到此提示。
赛灵思中国通讯
43
手把手课堂:FPGA101
图 3 - 自定义外部连接
将被重建。假设设计没有错误,那么
#include "xadcps.h"
初始化流程的下一步是使用此前获取
您将开始执行代码修改工作。 打开 system.xml 或 xparameters.
该文件包含对于 XADC 寄存器、
h 文件,您不仅会看到设计中所有其
采样平均选项、信道顺序选项和省电
他外设的地址范围,还能看到刚刚添
模式等内容的定义。另外还包含一系
加到 XPS 内的 XADC 的地址范围。
列可在系统中使用的类型定义、宏命
打开 system.mss 文件会显示板支
和 XADC 的基地址)存储在指针内。
令和函数。
并存储在配置指针中的信息,该步骤 需要一个 XAdcPs 类型的指针。
Status_ADC = XAdcPs_CfgInitialize (XADCInstPtr,ConfigPtr,ConfigPtr>BaseAddress)
持包 (BSP) 的整体细节。这里我们真 正感兴趣的是外设驱动程序,此处您
集中在一起
可以看到 xai_adc_0(或您在 XPS 中
举一个简单的实例:我将读取系统的
对 XADC 的任意命名)。接下来,您
内部温度和电压参数,并通过 RS232
会看到用于打开文档和实例的热链接。
链路将它们输出。
我将配置指针命名为 ConfigPtr, 将 实 例 化 指 针 命 名 为 XADCInstPtr。 XADC 的初始化完成后,按照实例要 求对其进行配置。以下是配置流程:
为了缩短开发时间,赛灵思在报
在编写代码时首先要做的是查询
头文件中提供了一系列驱动程序,便于
将要进行初始化的 XADC 的配置,这
我们使用这些器件。您需要在代码中访
里要用到 XAdcPs_Config 类型的指针。
运行自测试,以确认器件没有
问这些驱动程序。为此需要添加 BSP
利用 XAdcPs_LookupConfig() 函数调
问题。
更新过程中所生成的以下报头文件。
用 以 及 从 更 新 的 xparameters.h 文 件 中获得的器件 ID 将配置信息(器件 ID
44
赛灵思中国通讯
1. 采 用 XAdcPs_SelfTest() 函 数
2. 利用 XAdcPs_
2013 年第四季度
手把手课堂:FPGA101
All Programmable FPGA and SoC modules form
4
x
factor
5
图 4 - 来自 XADC 的初始温度采样
SetSequencerMode() 函数将 定序器设置为单通道,从而停 止定序器当前操作。 3. 利用 XAdcPs_ SetAlarmEnables() 函数禁用 所有告警。 4. 利用 XAdcPs_ SetSeqInputMode() 函数重启 定序器并让其按我所要求的顺 序排序。 5. 利用 XAdcPs_ SetSeqChEnables() 函数配置信 道,使之能根据我的要求采样。
当我将采样范围扩大至内部电源
ADC 并 从 XADC 接 收 数 据。 只 需 调 用 XAdcPs_GetAdcData() 函 数 即 可 从 XADC 读取采样。对于内部温度和电 压参数,然后我使用两个提供的宏命 令(XAdcPs_ 原 始 ToTemperature() 和 XAdcPs_ 原 始 ToVoltage()) 将 原 始 的 XADC 数值转换为实际的温度或电压值。 实际值和原始数据随后都通过 RS232 链路输出。图 4 给出了仅器件 温度进行采样的初始结果。 2013 年第四季度
Available SoMs:
轨和温度时,会返回如下结果: • 原始温度 40696, 实际温度 39.805603 • 原始 VccInt 21677, 实际 VccInt 0.992294 • 原始 VccAux 39431, 实际 VccAux 1.805008 • 原始 VccBram 21691,
Platform Features • 4×5 cm compatible footprint • up to 8 Gbit DDR3 SDRAM • 256 Mbit SPI Flash • Gigabit Ethernet • USB option
实际 VccBram 0.992935 • 原始 VccPInt 21649, 实际 VccPInt 0.991013 • 原始 VccPAux 39402,
完成以上步骤后就可以使用
rugged for harsh environments extended device life cycle
实际 VccPAux 1.803680 • 原始 VccDDR 32014,
Design Services • Module customization • Carrier board customization • Custom project development
实际 VccDDR 1.465485 所有这些参数都在 Zynq SoC 运 行可接受的限值内,但需要 Zynq SoC 在实验室条件下工作。 正如您所看到的,在 Zynq SoC 中 实现和使用模拟混合信号非常简单直 观。XADC 可以提高 All Programmable 系统的集成度和功能性。
difference by design www.trenz-electronic.de 赛灵思中国通讯
45
应用领域的出色表现:FPGA 101
让硬件设计 轻松自如 调试数字硬件设计可能压力大、耗时长, 但我们有办法来缓解压力。
46
赛灵思中国通讯
2013 年第四季度
应用领域的出色表现:FPGA101
作者:Adam Taylor 特许工程师 aptaylor@theiet.org
工
程设计项目中最令人振
求)。文档(图 1)可能还涉及哪些
奋的时刻之一就是第一
测试需用于设计验证,以及哪些用于
次将硬件移到实验室准
生产运行。在项目阶段早期即完成上
备开始集成测试的时
述文档,可确保系统设计团队和测试
候。开发过程中的这个阶段通常需要
设备的设计团队获得明确的基本方法。
很长时间,也会对所有的项目工程师
但是,在进行功能性测试之前,
造成很大的压力。不过,现有的工具
设计工程师还必须确保底层硬件的正
和方法能减轻压力,帮助推进项目进
确性。他们通常需要包含电源、性能
展。
和硬件基本验证等内容的硬件级测试 让我们来看一下,如何在将设计
推进到更高层面的过程中最大限度地 减少可能发生的任何问题,以及如何 快速顺利地通过调试阶段。
规范,而硬件基本验证需在功能测试 之前进行。 明确需要何种测试设备以及什么 样的性能非常重要,例如需要分析信 号发生器和逻辑分析器是否能提供足
从第一天起就要设想如何进行测试
够的存储深度和工作频率?此外,还
所有工程师都知道,随着开发进程的
需明确是否需要更专业化的测试设备,
推进,修改问题的成本也会相应增加。
如任意波形生成器、高稳定性频率参
一旦设计方案最终定型并投产,再修
考等。
改引脚输出错误的成本必然高于早期
2013 年第四季度
设计评估时修改的成本。此外,在测
设计阶段应包括的内容
试与集成方面也同样存在成本问题,
在硬件的设计过程中,或许应包括几
越早考虑硬件、FPGA、系统等的测试
项设计特性和功能,以使电路板的测
问题并编写测试规范,就越便于工程
试能够更方便。相关要求可能比较简
设计团队考虑到必要的测试点、连接
单,也可能较有深度。
和功能性。测试的目的是确保能推出
最简单也是最常见的测试规定是
可满足用户具体要求的安全系统。因
在所有电压源上放置测试点,这避免
此,我们必须确保测试能体现所有要
了探询焊接点时造成损坏的可能性。
求,而功能测试则要求应能实现流程
不过,还有一种比较好的办法,是让
传递并可跟踪设计要求(即每个测试
连接接地 (0V) 返回的焊盘靠近电压测
均应满足其所对应的需求)。
试点,从而简化测试工作。若采用高
此外,对设计验证模型进行编辑
值电阻来保护这个测试点,就能限制
也是一种非常好的做法,能详细说明
测试中意外短路情况下的电流。我们
测试每项功能要求的方法,如具体的
也可考虑给这些焊盘添加测试引脚,
测试、分析或读取方法(条件是在另
使其连接到可随后在生产运行期间记
一个项目上较早明确或测试了相关要
录结果的自动测试系统上。 赛灵思中国通讯
47
应用领域的出色表现:FPGA101
此外,监控时钟和复位输出的功 能至关重要。因此,在复位线路上放 置测试点不矢为一种好办法。另外,
边界扫描测试对在测试阶段早期减少 硬件设计风险非常有用。
还应确保正确端接不使用的时钟缓冲 器并添加测试点,从而便于对时钟进 行探询。此外还可考虑添加测试端口,
减少硬件设计风险非常有用,同时也
建选项的组件。要确保所有组件都适
通过信号发生器、逻辑分析仪或其他
要求对设计方案进行优化,以确保最
当就位,明确是否符合设计方案的要
测试工具来实现信号的注入和提取。
大限度地覆盖边界扫描器件。
求,特别是如果只有一个上拉或下拉
为了帮助原型设计达到功耗要求,
众多 FPGA 器件也都能提供采用
如果可能,通常比较好的做法是在电
温度二极管监控芯片温度的方法。需
压调整器的输出端串联低值电阻(10
要想办法为二极管提供恒定电流。测
电阻应就位并选择配置模式时更是如 此。 检查完印刷电路板上的各组件之 后,下一步就是首次给电路板加电。
㽕∖᭄䞣
㽕∖ৡ⿄
ߚᵤ
Ẕ偠
⌟䆩
ⓨ⼎
对于任何工程师来说,这都是非常紧 张的时刻。但是,在设计阶段(测试点、
FPGA ⬉य़䔼 FPGA ⬉य़䔼乎ᑣ FPGA ԡ䞞ᬒ FPGA ԡᮁ㿔 FPGA ᤃ㤵఼ᆍ䰤+/-100 ppm
电流感测电阻等)编制的测试规定将 在这时发挥很大的协助作用。第一步 是确保负载点和其他稳压器的功率输
ഫ䞡䞣
出不发生短路返回。您可能会在带载
ࠡ䴶ᵓLED
器件(具有高电流要求)的电源轨上
图 1 - 非常实用的工具:用验证表详细列出测试每个功能要求的方法
发现低阻抗,不过阻抗应大于 1 欧姆。 如果您确定所有电源轨都没有
毫欧、100 毫欧等),以便精确测量
定芯片温度有助于我们确保结温不超
短路,那么下一步就该加电了。初次
电源轨上的电流。
出额定值。
加电时,我倾向于采用分两个阶段进 行的方案。第一个阶段是采用低电压
对于业界率先实现的同类型设计 (即新产品首次进行实际构建)而言,
明确硬件特性
(0.5V) 和低电流,以确保不错过信号
我们或许应该制定更深入的设计决策,
系统第一次到达实验室时,您要做的
层或电压轨之间的任何短路情况;第
例如将电源与下游电子器件进行分离
第一件事情就是确定硬件底层模块是
二个阶段是用正确的工作电压在设定
处理。这样,我们就能确保电源和上
否适合做进一步的测试。相关检查包
的电流限值内加电,看看是否获得预
电顺序都能正常工作,从而避免下游
括模块的初步通电测试,这是个紧张
期电流(不要忘了突入电流问题)。
组件的应力过大或损坏。更详尽的前
的过程。刚拿到模块,您希望确保其
成功给设计方案加电后,下一步
端设计阶段有助于测试工作的例子还
准确投产,能够成功实现首次通电启
就是确定电源上电的排序、复位以及
有一个,那就是确保 JTAG 端口除了
动。第一步就是确保所有的组件都各
时钟是否能按设想的工作。切记,要
在系统中对所有 FPGA 或处理器进行
就其位,引脚“1”正确定位,而且任
确保复位时长超过所有时钟,并在释
编程之外还能有更多用处,例如通过
何带极性的组件都准确放置。设计中
放之前处于稳定状态。
边界扫描测试来进行初始的硬件验证
通常可能包含众多无需检查定位的组
明确硬件特性的下一步就是确保
等。边界扫描测试对在测试阶段早期
件,例如那些适合不同版本或不同构
能通过 JTAG 链看到硬件,这使我们
48
赛灵思中国通讯
2013 年第四季度
应用领域的出色表现:FPGA101
不 仅 能 对 FPGA 编 程, 而 且 还 能 执
获数据,以及预载了数据模式的 Block
温度,这对环境测试以及芯片温度的
行边界扫描测试。边界扫描测试能帮
BRAM 来发挥激励作用。这种方法对
功耗关联等都有帮助。
助我们快速测试器件之间的互连,通
采 用 ADC 和 DAC 连 接 FPGA 的 情
多数情况下,简化 RTL 设计并采
过测试存储器可确保其正常工作,如
况尤其有用。在此情况下,您应发挥
用 FPGA 提供的资源对精确定位未按
开发回环接插件也可回转输入输出。
FPGA 的可再编程特性来最大限度地
预期工作的区域都有极大的帮助。
JTAG 和边界扫描测试可在进一步详细
进行设计开发,实现 ADC 和 DAC 的
的测试之前消除设计风险。
参数测试,比如噪声 / 功率比、无杂
遇到问题怎么办?
散动态范围和有效比特位数 (effective-
在一步步推进测试计划的过程中,您
number-of-bit) 计算等。
可能会遇到一两个问题,如未能实现
致力于简化 RTL 如果您的设计在硬件和 FPGA 层面上
此外,您还应该充分利用 FPGA
预期的功能,或在功能方面无法满足
都很复杂,那么简化版的 RTL 将有助
提 供 的 资 源, 尤 其 是 赛 灵 思 System
所需的性能水平。不要担心,我们能
于测试开发板以及 FPGA 和外设(图
Monitor 和 XADC,非常有利于监控芯
通过许多调查方法来确定问题根源和
2)之间的接口。对高速接口设计而言,
片上的电压轨,进而还能有助于验证
所需的纠正措施。
更 是 如 此。 我 们 可 结 合 采 用 优 化 的
在设计阶段所执行的电源完整性分析。
RTL 和赛灵思 ChipScope ™工具来捕
此外,上述技术还能方便地报告芯片
在上述情况下,不要急于马上做 出修改。首先,要重新检查设计方案, 特别是原理图和数据手册等设计信息。 如果问题与 FPGA 有关,则应检查引 脚约束文件是否适合设计需要,因为 有可能文件与设计不同步。 如果一时找不出什么明显错误, 则不妨发挥一下互联网的优势,去网 上看看其他工程师是否也遇到过跟 您 同 样 的 问 题。 网 上 有 很 多 论 坛, 您 可 在 那 里 向 其 他 设 计 人 员 提 问。 Programmable Planet 和 赛 灵 思 论 坛 都可为基于 FPGA 的设计提供广泛的 支持。 说 到 底, 硬 件 调 试 是 工 程 设 计 中极富挑战,但又极具收获的组成部 分。若在设计早期阶段即考虑到测试 问 题, 并 在 设 计 中 包 含 测 试 所 需 的 各元素,就能显著简化调试工作。采 用 ChipScope、System Monitor 和 XADC 等所有可用的资源来调试系统,
图 2 - 这里的优化代码是从连接输出的简单 DAC 接口到已知状态的代码片段, 能够生成 Fs/2 的正弦波。此类代码的标准版可能有数百行的长度。 2013 年第四季度
外加合理利用传统测试设备,我们就 能成功完成开发工作。 赛灵思中国通讯
49
出色的工具
利用中间件可将 Zynq SoC 转变为 动态再分配处理平台 TOPIC 的 Dyplo IP 不仅能有效弥补软硬件设计 之间的缺口,而且还能自动 实现 FPGA 部分重配置。
50
赛灵思中国通讯
2013 年第四季度
出色的工具
作者: Dirk van de Heuvel TOPIC Embedded Systems 公司硬件架构师 dirk.van.den.heuvel@topic.nl
过
去三十多年来,FPGA 技术已从最初带有少量寄 存器的可编程逻辑阵列演变为如今我们所看到的 高级集成式系统器件。大约在十多年前,各大
厂商首次开始在他们的 FPGA 器件中采用 8 位、16 位和 René Zenden TOPIC Embedded Systems 公司系统架构师 rene.zenden@topic.nl
32 位的软核处理器,以提高处理与可编程逻辑之间的集 成度与功能性。随后他们开始实现这些处理器的硬化版本 (hardened version),为客户带来了更多系统优势。赛灵思 的 Zynq®-7000 All Programmable SoC 就是此类器件中的 佼佼者。 Zynq SoC 在 单 个 器 件 中 集 成 ARM® 双 核 Cortex ™ -A9 MPCore 处理系统、FPGA 架构和外设,这 样软 / 硬件实现了前所未有的紧密连接,从而将系统级集 成和功能提升到了全新的高度。但是这种更加紧密的集成 也模糊了软硬件设计之间的界限,因为它将 FPGA 设计引 入到了软件领域,同时又将应用软件开发引入到了 FPGA 领域。 我们 TOPIC Embedded Systems 公司开发的 IP 模块 能显著缩减在 Zynq SoC 上进行系统开发所需的时间和成 本。Dyplo 系统的中间件能有效弥补软硬件设计之间的缺 口,有助于实现一套完整的基于软件的开发流程。Dyplo 具有自动部分重配置功能。这是一种高级设计技术,可即 时修改 FPGA 布局的硬件配置,让 FPGA 针对特定应用 发挥出最佳性能。用户可利用图形化工具将功能拖到各个 分区,然后判断它们是否在逻辑或处理器上达到最佳运行 效果。 DYPLO:动态流程载入程序 Dyplo 是一种中间件 IP 模块。该模块通过标准 AXI 接口可 连接各个 FPGA 流程与处理器执行的软件流程之间的可扩 展数据流。 从开发角度可以最好地阐述 Dyplo 的原理。当启动一 个设计项目时,首先必须确定设计要求,将客户需求定义 为抽象条款)。在此阶段,修改设计要求相对来说不会造 成太大影响。下一步您需要将设计要求转化为设计规范, 此时要制定一个架构实现蓝图。在此架构制定过程中,您 需要确定哪些功能应在硬件中实现哪些在软件中实现,并 设定时间目标。在很多情况下会有多种架构可供选择,但 由于预算和时间方面的制约,通常只能对一种架构方案进 行研究(如果您运气好的话,可以是两个)。在这个阶段 修改设计要求会带来较大的成本损失。
2013 年第四季度
赛灵思中国通讯
51
出色的工具
完成架构定义后,就要开始设计 各种功能。在设计环节您通常会发现 一些疏漏,即需要在软硬件之间互换 实现内容。这种互换通常会增加开发 工作量,因为您要开始解决 DSP 类型 数据流程中的突破性控制功能等原本 不属于这些相关领域的问题。随着客 户对设计复杂性理解的深入,他们的 洞察力也在增强,因此这种情况就变 得相当普遍。因此,设计人员需要一 种有效的机制以便在硬件与软件之间 进行功能互换。 图 1 所示的是一种把流程映射到 FPGA 硬件和软件的常见任意调度情 景。图 (a) 未采用通用分配方案。因此, (a)
需要在软件与硬件之间建立一种更加 结构化和可预测的基础结构。Dyplo 实 现了这种基础结构,如图 (b) 图所示。 Dyplo 为用户提供了用于连接硬 件与软件流程的数据流接口。既可以 采取软件流程之间的通信,也可以是 硬件流程之间的通信,还可以是软硬 件流程混合通信。您可以利用 Dyplo 在可重配置分区内定义硬件流程。要 实现给定的硬件功能,需要在某个可 重配置分区上激活它,然后对通往该 分区的输入输出数据流进行初始化, 并将这些数据流连接到软件流程或其 他硬件流程。除了同步数据流外,还 可以对帧边界、离散样本矩和软件任 务对齐等事件进行流程同步。 软件流程的数量取决于设计所针
(b) 图 1 – (a) 图中有两个独立的流程,即硬件设计人员将 HDL 输入 Zynq SOC 的逻 辑模块,软件设计人员将软件输入处理器。与此不同的是,Dyplo 为硬件和软件 功能创建了一个统一的代码输入点,如 (b) 图所示,这样便于在 Linux 环境下实 现系统级协同设计与验证。 52
赛灵思中国通讯
对的操作系统以及流程通信的组织方 式。硬件流程的数量则取决于 FPGA 上所保留的可重配置分区的数量。可 重配置分区的数量、大小和位置可以 2013 年第四季度
出色的工具
由用户定义,也可以自动选择。
您可以在设计过程中即时停止执
这样,Dyplo 在软件环境中融入
行软件和硬件流程,在替换流程功能
硬件流程的执行,同时为软件编程人
硬件通信背板来处理流程通信与同步。
后继续执行。对于软件流程这并不重
员无缝提供 FPGA 的功能优势。Zynq
例如,默认配置下允许四个 HDMI 视
要,设计人员可以加强代码(仅受到
SoC 能带来硬件系统级集成度方面的
频流同时处于工作状态,同时利用处
设计人员针对项目所选操作系统的功
诸多优势。所有功能都能用于全软件
理器保持完全的数据交换功能。
能限制)。对于硬件流程,需通过执
式可编程平台。然而从应用角度出发,
Dyplo 基础架构、映射到可重配置
行部分重配置来取代部分 FPGA 的功
需要一个中间件才能获得这种架构优
分区上的功能以及完整 Linux 分布的生
能,同时不会影响其他可编程逻辑或
势。这就是 Dyplo 作用所在。
成都通过兼容于标准 Vivado® 设计套
外部物理接口的执行。同时自动正确
件项目流程的图形工具流程来实现。
加载和验证逻辑模块。
Dyplo 通过具有可扩展性能的软
图 2 – 球形、 方块和金字塔代表能够在 FPGA 硬件或软件中运行的功能或流程。 各个流程都被密封在 Dyplo 盖布(图形四周的方框)中。 箭头代表从输入端经不同流程流到输出端的数据流。Dyplo 界面负责管理整个流程。 2013 年第四季度
赛灵思中国通讯
53
出色的工具
利用部分重配置的价值
可重配置分区的逻辑复杂性等配置参
为硬件工程师带来的好处
Dyplo 可充分利用 FPGA 的部分重配置
数来保留可重配置分区的默认区域。
集 成 Dyplo 架 构 能 为 FPGA 设 计 工
功能。 部分重配置对于设计人员来说绝
在提供可重配置模块等 HDL 功能描述
程师带来哪些优势?它可以实现与处
不是微不足道的工作,原因在于加载和
后 , Dyplo 可自动生成部分比特文件。
理器环境的集成,同时将底层软件的
管理部分比特流文件的复杂性高,而且
作为软件应用的一部分,可重配
支 持 需 求 降 到 最 低, 从 而 使 设 计 工
需要在更改 PFGA 元件的时候保持设计
置模块通过发出简单的软件指令来获
作变得更轻松。这意味着您可以集中
的连续性。此外,物理元件的布局布线
取功能。Dyplo 负责完成执行硬件功
精力实现设计功能。FPGA 的优势在
问题需要相当高的 FPGA 设计经验。
能所需的所有步骤,例如终止当前正
高速接口设计、高数据带宽电路和加
在执行的功能、编写新的功能、数据
速算法处理这些应用中的作用尤为明
流连接、模块配置以及功能激活。
显。设计接口与高带宽电路时需要手
Dyplo 提供直接可用的集成式部 分重配置支持。根据所需分区数量和
䚼ߚ䞡䜡㕂ߚऎ CPUᘏ㒓ੑҸ
ৃ䜡㕂 খ᭄࣪ᇕ㺙ᑣ ᷛ࣪ޚষ
ᄬ఼ټᇘⱘCPUষ
ৃ䜡㕂ⱘFIFO ⏅ᑺ᭄⌕᭄䞣
ৃ䜡㕂ⱘFIFO ⏅ᑺ᭄⌕᭄䞣
⫼᠋䘏䕥ߑ᭄
fifoᑣ߫1
fifoᑣ߫1
ࡼ㓪ⱘݭVHDL/Verilog Verilog HLS ⫳៤ⱘIP System Generator(㋏㒳থ⫳఼)⫳៤ⱘIP
stimuli files
ϝᮍIP
fifoᑣ߫m
Dyploࠊ䘏䕥 ᯊ䩳/ԡ/໘⧚ৠℹ 䞡䜡㕂/ਃࡼ/ذℶ
乘ᳳⱘ㒧ᵰ᭛ӊ
fifoᑣ߫n
ޚ 㞾ࡼ⫳៤ ⱘݙᘏ㒓ࡳ㛑ൟ˄᭄⌕ᘏ㒓џࡵ˅ ⬅䕃ӊࡳ㛑ൟ⫳៤ⱘࠎ▔㒧ᵰ᭛ӊ
图 3 – 采用功能测试模板实现数据流输入与输出,同时由总线功能模型实现 CPU 接口。
54
赛灵思中国通讯
2013 年第四季度
出色的工具
动参与,并要求对于 FPGA 器件的技
这种方法还能带来动态性能扩展,
此功能是确定与解决接口和动态问题
术优势有深刻理解。对于加速算法处
因为可根据系统执行环境实现相同功能
的关键。
理应用来说,系统级综合工具(例如
的多个实例。这样做的结果是使 GPU
Vivado HLS)将扮演越来越重要的角
加速流程的执行更灵活,而且具备更高
填补缺口
色。然而,在使用高层次综合时,需
性能。这种技术还可以让 FPGA 更多
总 部 位 于 荷 兰 的 TOPIC Embedded
要具备一定设计经验来确保实现效果。
地为软件工程师所用,原因在于接口协
Systems 公司多年来一直开发嵌入式系
有了 Dyplo 基础架构,很容易嵌
议比较简单而且可将复杂设计拆分为复
统,所涉及的项目通常集成有各种类型
入算法处理模块,这样为算法处理模
杂程度可控的多个模块。更为重要的是,
的 FPGA 和处理器。日积月累,我们已
块、I/O 模块和处理器执行功能之间通
由于接口兼容,使得 Dyplo 与 Vivado
经成为高级 FPGA 设计技术(包括部分
信搭建了一个高速可配置的流程间通
HLS 能实现完美匹配,这种方式非常
重配置)方面的专家。Zynq SoC 作为
信网络。这些处理模块经过精心架构,
适用于基于软件的开发流程。
一种采用嵌入式 FPGA 技术的多核平
非常适用于部分重配置。模块有明确
采用 Dyplo 后测试工作也更加简
的 接 口, 例 如 符 合 AXI4 接 口 标 准 的
单。将流向和来自 HDL 模块的数据流
但很多设计团队面前的挑战是如何根据
流数据接口,采用高速互联结构和简
存储在 HDL 测试平台用来生成模式的
软硬件工程设计人员的专业技术情况最
化的处理器总线,可直接连接处理系
文件中。这意味着验证过程中开发团
充分发挥 Zynq SoC 丰富功能集的作用。
统。到其他 FPGA 逻辑或器件 I/O 的
队可以集中对所需功能进行测试。
链路则通过专用的可扩展接口来实现。
台,可以显著提高嵌入式系统设计效率。
我们的 Dyplo 中间件可以填补这 一缺口。可在 FPGA 架构上实现面向
Dyplo 的性能足以支持多个 1080p 输
测试与调试环境
GPU 设备的应用,所需的工作量相同,
入和输出视频流,而且只需简单配置
复杂的系统集成非常耗时,而且验证
而且灵活性更高。充分利用重配置技术
就可实现视频流连接。
工作的难度更大。我们开发了 Dyplo
使得 FPGA 架构的重用从软件应用角
基础架构后,都知道设计的测试与集
度来说变得非常简单,而且有助于降低
FPGA 为软件工程师带来的优势
成 工 作 占 用 了 大 部 分 开 发 时 间, 而
产品成本。在开发 FPGA 设计和软件
设 计 团 队 利 用 Dyplo 可 以 显 著 简 化
且是开发流程中最枯燥的环节。在配
设计过程中自动执行很多底层设计、集
HDL 编码工作,而在系统软件设计方
置 过 程 中, 基 本 Dyplo 环 境 会 生 成
成与测试任务,可以有效简化设计流程。
面也能获得更多的优势。Dyplo 使设计
验 证 所 用 的 测 试 平 台 模 板。 例 如,
简而言之,由 Dyplo 中间件系统所实现
团队能够在硬件实现过程中分离软件
Dyplo 环境为架构中的每个可重配置
的生产力、灵活性和性能优化效果能帮
功能,在软件中完成原型设计,再将
模 块 生 成 一 个 功 能 测 试 平 台 模 板,
助设计团队将 Zynq SoC 的性能发挥到
它们转换到硬件中,并保持相同的接
实现文件或正规表达式的流输入与输
极致并且更快速地将创新系统设计推向
口行为。反过来,不同功能可在软件
出以及用以实现 CPU 接口的总线功
市场。2013 年 12 月 1 日将推出面向限
控制下共享相同的 FPGA 架构。这种
能模型(见图 3)。这样,设计人员
定用户的试用版 (beta 版 )。如果您希
方案所需的器件更小,能降低 FPGA
就可以采用基于测试的设计方法。这
望参与试用项目,请与我们联系。商用
成本,效果可与软件线程相媲美。
种基础架构允许设计团队对设计方案
版将于 2014 年 3 月 1 日推出。
从软件系统的角度来看,可将单
采取单步调试以找出问题,并执行背
如 需 了 解 Dyplo 与 Zynq SoC
个流程与连接之间的相关性看作是具
板性能分析,以便实现结构中所有相
结 合 使 用 方 面 的 详 细 信 息, 敬 请 访
有数据与事件同步机制的流程网络。
关状态信息的可视化。该理念非常灵
问 www.topic.nl/en/dyplo 或 致 电 +31
图 2 给出了软件和硬件流程与 Dyplo
活, 以 至 于 停 止 Dyplo 基 础 架 构 的
(0)499 33 69 79 , 或 发 电 子 邮 件 至
基础架构之间的关联方式。
HDL 逻 辑 将 会 自 动 同 步 软 件 执 行。
dyplo@topic.nl。
2013 年第四季度
赛灵思中国通讯
55
出色的工具
利用云计算 简化 FPGA 设计
作者: J.P. Naude 科学与工业研究理事会 (CSIR) 硬件与 FPGA 设计师 scineric@csir.co.za 作者:Harnhua Ng Plunify 公司 工程设计团队主管 harnhua@plunify.com
科学与工业研究理事会 (CSIR) 和 Plunify 公司的工 程师们告诉您,他们是如何用 云计算来分析大型 Virtex-6 设 计的实现选项和用户约束的。
56
赛灵思中国通讯
2013 年第四季度
出色的工具
A
最近,我们在南非的科学与工业
件尺寸过小,不能满足系统需求。
研究理事会 (CSIR) 完成了这样一个分
我们已经拥有了运行新型开发板
析过程。我们采用 Plunify 公司的云加
所需的大部分 RTL 代码,因此在这方
速芯片设计方法为我们的设计找到了
面占有绝对优势,从而可对在 PCB 电
既能提供最短实现运行时间又能得到
路图设计的管脚分配阶段做出的决策进
最佳时序评分的各项参数。在深入探
行分析。由于 FPGA 设计的实现运行时
讨我们的分析细节以及我们所使用的
间较长,我们不得不限制在 PCB 设计
工具前,让我们先来了解一些背景资
阶段中执行的构建次数,从而做出决策。
料。
随着 FPGA 器件尺寸的增大及其内部
在设计的硬件测试阶段,我们增 加了一些原 Virtex-5 开发板没有的功
设计密度的提高,时序收敛面临着前
开发板升级
能。不出所料,这为布局布线工具创
所未有的挑战。由于各种实现工具都
在最近的一个项目中,我们需要将驻
建了更多的工作,因而我们进行了详
竞相满足这种更高复杂性需求,把不
存的赛灵思 Virtex-5 FPGA 更换为新
细的布局规划演练,同时完成了大量
同的实现转入量产时间越来越长 [1]。
一代 Virtex-6 器件,从而升级现有的
运行,以找到最佳种子布局 (placement
为了加快速度,有些设计人员希望能
开发板。第一块开发板出现了几大问
seed)。我们决定使用 Plunify 公司的云
通过云计算来比较分析使用不同实现
题,其中最重要的就是对于目标应用
实现服务来管理我们所需的大量运行。
选项和用户约束决策的效果。
来说其管脚并不是最理想的,而且器
图 1 – 将我们的项目上传后的 Scineric Workspace
2013 年第四季度
赛灵思中国通讯
57
出色的工具
FPGAAccel 是一种软件应用程序界面 (API), 有助于您在远程服务器上同时定义、 分配和执行 FPGA 综合及布局布线构建。 四个约束集
所用工具
在 后 端,Plunify 的 FPGA-Accel
由于 Plunify 服务所提供的处理功能,
对于 FPGA 设计软件,我们在设计人 ®
客户端是一种软件 API,工程师们可
我们决定用四个不同的约束集分析我
员的局部环境中采用赛灵思 ISE 设计
通过它在远程服务器上同时定义、分
们的最终设计。
套件逻辑版本 14.4 来完成现有工作流
配和执行 FPGA 综合以及布局布线构
程中的各项任务;在云端,我们用它
建,并在完成所有构建后对结果进行
来完成综合与布局布线任务。
分析。本例中,我们采用一个云计算
前两个约束集共享同一管脚,其 中第一个约束集不包括布局规划,第
在
端,CSIR 的 Scineric
服务器群来处理 400 次构建。Scineric
这两个约束集选择的管脚能够重现我
Workspace( 见 图 1) 是 一 种 用 于
Workspace 支 持 包 括 FPGAAccel 客
们在第一版开发板上所遇到的管脚分
FPGA 设计管理的基于 IP-XACT 的全
户端在内的多种配置。
配不当造成的后果。而另外两个约束
新、快速、轻量级集成开发环境。该
集则采用新版开发板上器件的管脚;
工具采用全新“文件管理器”方法来
同样,其中一个约束集不包括布局规
进行设计管理,有助于设计人员随时
划,另一个包括详细的布局规划。
全局预览设计的各个方面。它具有设
二个则包括详细的布局规划。我们为
前
我们需要用这些约束集来验证
计融合功能,可将 Scineric 整合到现
对 FPGA 管脚的更改是否真的会影响
有工作流程中,以提供用户偏好的特
时序收敛,以及仅在第一版开发板上
定设计环境。我们可使用载入 ISE 项
改变种子布局是不是并不足以达到时
目的 Scineric Workspace 图形界面向
序规范要求。我们为每个约束集运行
云端配置、提交并从云端检索构建。
100 次构建,且在 1-100 次中采用不
然 而, 这 个 前 端 并 不 是 硬 性 要 求;
同的种子布局。
Plunify 客户端还能平滑集成到 ISE 和
图 2 显示了设计人员在工作中如 何使用这些工具。具体流程如下: 1. 打开 Scineric Workspace。 2. 导入 ISE 项目。 3. 为每个 ISE 项目限定 100 次 实验。 Scineric Workspace 允 许 用 户 导 入赛灵思 ISE 和 Vivado 项目以及 IPXACT 组件定义文件等各种来源的设 计。每个设计都可以有多种构建配置,
Vivado® 流程中。
ᣛᅮᵘᓎˈ ㅵ⧚᭛ӊ 㒧ᵰ
SCINERIC
ᇚᵘᓎথ䗕㟇 ѥッᑊߚᵤ 㒧ᵰ
PLUNIFY
ࡴᆚ䆒䅵 ᭄
䕧ߎ᭛ӊ Ϣਞ
᳡ࡵ఼
ISE Vivado 图 2 – 用户端和云端之间的数据流
58
赛灵思中国通讯
2013 年第四季度
出色的工具
5. 构建完成后,您会收到一封电
包括允许您对可随后上传至 Plunify 的
子邮件通知。
Plunify 实验进行定义的配置。
6. 用您的工作 ID 登陆至 http://
4. 上传构建请求。
解决方案的时序评分,这也是最重要 的。图 3 显示了四个约束集的时序评 分分析结果。 通过我们的四个约束集,我们得
www.plunify.com 查看报告
Plunify 插件首先会对设计人员的
以再次证明,目标应用的无效管脚会
身份进行认证,然后再对 ISE 项目中
7. 对各个 ISE 项目重复以上步
的所有设计文件进行加密。接下来,
骤。
它会将文件与构建参数一起安全传输
严重影响设计的时序评分。另外,我 们可为该设计确定最佳种子布局,并 且在这个特定案例中,我们意识到实
至远程服务器群。
并行完成 400 次构建
在 云 端,Plunify 软 件 会 生 成 所
我们将这 400 次构建的结果用于多个
需的构建,分配 400 台服务器并运行
标准测试,包括平均运行时间、不可
ISE,从而在每台服务器上为各个不同
布线的解决方案数量,以及可布线的
的实验进行综合与布局布线。
现工具在不受布局规划引导的情况下 表现最佳。 图 4 显示了四个约束集的运行时 间。 以前,这样的运行需要 30 多天才 能完成,但通过我们所说的方法,我们
ᯊᑣ䆘ߚ
只需一天便能得到结果和分析。该方 法的另一优势是全部数据都由 Plunify 管理,而这项优势是当我们看到这 400
ᯊᑣ䆘ߚ
次运行到底生成了多少数据时(200 千兆字节)才发现到的。我们只需要 下载自己感兴趣的特定运行结果。 最佳时序评分 在任何 FPGA 设计中,时序收敛都是 重要的一环,我们已经证明,很多参 图 3 – 时序评分与种子布局对比
数都会对您的时序评分产生影响。借 助全新的工具以及云计算技术,我们 对这些影响的分析速度与以往相比明
䖤㸠ᯊ䯈
显加快。 我们能够确定哪种约束集以及种
䖤㸠ᯊ䯈˄ߚ䩳˅
子布局能为我们的设计带来最佳时序 评分。通过使用最佳参数,我们可以 继续下一阶段的系统开发,因为我们 的构建能够达到其时序规范要求。 参考文献
1.
作 者:P. J. Hazewindus, “ 管
理 FPGA 设 计 复 杂 性: 软 件 概 述” Synopsys 公司 2012 FPGA 世界主题 图 4 – 运行时间与种子布局对比
2013 年第四季度
报告。
赛灵思中国通讯
59
号外,号外
Vivado 2013.3 版本的最新消息 赛灵思不断改进其产品、IP 和设计工具,努力帮助设计人员提高工作效率。本文将介绍赛灵思设计工具的当前最新更新情况, 其中包括为加速赛灵思 All Programmable 器件设计而构建的以 IP 及系统为中心的全新一代革命性创新性设计环境 Vivado 设计套件。如需了解有关 Vivado 设计套件的更多信息,敬请访问 china.xilinx.com/vivado。 通过产品升级,赛灵思设计工具的功能将得到显著增强并新增一些新特性。保持及时更新升级是确保实现最佳设计结果的 简单方式。 Vivado 设计套件 2013.3 版本可从赛灵思下载中心 china.xilinx.com/download 上下载。
VIVADO 设计套件: 设计版本升级 VIVADO 设计套件 2013.3 版本亮点: • IP 流增强
互动设计环境
• 将 UltraFast 设计方法引入 Vivado 设计套件
Vivado 现包括一个简便易用的对话框,
• 支持部分重配置
借助比特流生成功能,可对器件属性
• 硬件调试增强
进行设置、查看与编辑。例如,约束
• 实现工具增强
编辑器 (Constraint Editor) 现在可检测 并报告无效的时序约束,而文本编辑
器件支持
器 (Text Editor) 现在则增添了文件比
• 支持新器件:Zynq®-7000 7Z015
较功能,用户在选择两份文件之后,
• 支持以下正准备投产的器件:
可直观地查看二者之间的差异。
• Artix®-7 XC7A75T • 采用 SBG485 封装的 Zynq-7000 XC7Z030、XC7Z015
功耗 无论是输入无矢量功耗估算所需的各 项设计范畴功耗约束,还是将分层设 计 信 息 从 Vivado 导 入 XPE,Vivado
VIVADO 设计套件的 ULTRAFAST 设计方法
版本中。例如,该版本集成了两种新
赛 灵 思 在 发 布 Vivado 设 计 套 件
个设计周期更好地指导用户。此外,
Vivado IP 流
2013.3 版 本 的 同 时, 还 推 出 了 针
为 实 现 自 动 建 构 校 正 (Correct-by-
“ 自下而上 (Bottom-up)” 综合流程目前
对 该 套 件 的 UltraFast 设 计 方 法。
Construction)设计,该版本还集成
被 默 认 为 设 IP 流。 除 7 系 列 MIG、
《Vivado 设 计 套 件 的 UltraFast 设
了 简 便 易 用 的 HDL 和 XDC 约 束 模
IBERT、 ILA、 VIO、 PCI32、PCI64、
计方法指南》(见封面专题)的最新
板。《Vivado 设计套件的 UltraFast
图像稳定器 (Image Stabilization)、 对
最佳实践手册中对该方法作了详细介
设 计 方 法 指 南,(UG949)》 可 在
象分割、 AXI BFM、Zynq BFM 外,默
绍。赛灵思将该指南中的许多流程都
china.xilinx.com/ultrafast 免 费 下
认情况下,都会为所有 IP 创建一个综
整 合 到 了 Vivado 设 计 套 件 2013.3
载。
合设计检查点 (.dcp)。
60
赛灵思中国通讯
2013.3 版均可简化其操作。
的规则检查:方法与时序,以便在整
2013 年第四季度
用与 ISE® 设计套件相同的许可码进行
VIVADO 设计套件: 系统版本升级
VHDL 库,从而提高了简便易用性。
Vivado 高层次综合
IP 流增强
阅《部分重配置用户指南 (UG909)》与
Vivado HLS 现 在 新 增 了 C 语 言 FFT
Vivado 设 计 套 件 2013.3 版 本 引 入 了
《部分重配置教程 (UG947)》。
和 FIR 函数库,可提高系统集成度并
新一代即插即用型 IP, 并具有以下主要
提供业界一流的实现方案。这些函数
增强特性。
激活启用。 如需了解更多信息,敬请参
库可让用户使用 C 语言函数快速开发
VIVADO 物理实现工具 与之前发布的版本相比,赛灵思此次
系统,并在赛灵思高性能 IP 中进行实
自下而上综合
发布的 Vivado 设计套件 2013.3 版本在
现。Vivado HLS 进 一 步 支 持 C 语 言
目前 IP 已自下而上得到全面综合,从
布局布线运行时间方面提升了 11%。
数学库,可提供常见正弦、余弦和开
而加速了设计进程。
2013.3 版本中实现工具的其它增强功
方函数的全新定点实现方法。此外, Vivado HLS 还全面支持 DSP 系统生 成 器 (System Generator for DSP)IP 的 AXI4 接口。由于生成的软件驱动程 序目前包含在 IP 封装中,因此软件集 成也变得更加简单。目前针对封装 IP 增添了 Vivado 设计检查点格式 (.dsp) 支持。用户可利用单一优化指令来指
借助流量与 IP,现在可完全支持第三 方仿真器 IES 12.20.016 版本与 VCS H-2013.06-3 版本。此外,还可支持所 有 IP 的单语言仿真器。同时还引入了 版本控制友好型指令选项(参见 get_ files);所有 IP 都配备有详细的变更 日志。所有 IP 都可升级至新版本,并
IP 增强 赛灵思利用 DSP 系统生成器 (System Generator for DSP) 中的 DDS 与复数 乘法器模块来提高设计仿真速度。该
作为新型 IP 配置向导的一部分,设计 人员可在一个 IP 核的多个实例之间共 享时钟复位资源。为方便 GT 调试,GT 调试端口也可选择性地接至 IP 接口。
工 具 现 在 完 全 支 持 AXI4-Lite 接 口, DSP 系统集成器可自动生成,并提供 单或双时钟支持。AXI4-Lite 地址偏移 可自动生成,也可通过明确定义来实
后优化关键路径时序的;移位寄存器优 化选项,用于在布线后优化 SRL 原语 等关键路径时序;Block RAM 激活优化 选项,用于优化功耗优化型 BRAM 的 时序,以及结果质量优化选项,用于实 现 phys_opt_design 指令探索。
在升级过程中生成升级日志。
示工具如何综合 AX14-Stream 接口。 DSP 系统生成器
能还包括:布局优化选项,用于在布局
赛 灵 思 PCI EXPRESS IP 的 串 联配置 串 联 配 置 (Tandem Configuration) 是 赛 灵思针对 PCIe® 设计的快速配置而打 造的解决方案,能够满足开放式 PCIe 系统内部的各项枚举需求。2013.3 版 本 新 增 了 XC7K160T、C7K325T、
需要注意的是,在 2013.3 版本进行 IP 升级时,这些接口层面的修改可能需 要返工。
XC7VX485T 与 XC7VX690T 等特性。 该套件支持各种封装以及在这些器件 的 IP 目录中进行 PCIe 模块定位。
现。 该 工 具 可 为 AXI4-Lite 接 口 自 动 创建软件驱动文件。用户现在可以将 具 备 AXI4 接 口 的 Vivado HLS IP 直 接集成到 DSP 系统生成器中。该工具 现在还支持将 Vivado 设计检查点格式 (.dsp) 用作一种输出格式,同时还支 持进出接口的所有网关接口文档。 借助新型 MAT-LAB® API 框架可轻松 实现编译目标的定制化。与此同时, 通过查看当前设计层中的信号并对整 个仿真过程中的波形观测仪设置进行 保 存, 还 可 简 化 验 证 与 调 试 工 作。 代码生成功能现可支持用户自定义 2013 年第四季度
部分重配置 在生产过程中现在可将部分重配置 (PR) 作为附加选项加入 Vivado 设计套件。 2013.3 版 本 支 持 基 于 Tcl 的 非 项 目 流 程,但只针对特定的 7 系列 FPGA 器 件, 例 如 Kintex®-7、 Virtex®-7 T、XT ( 包括 7V2000T 和 7VX1140T) 、 Zynq
Vivado QuickTake 教程 Vivado 设计套件 QuickTake 视频教程 是介绍 Vivado 设计套件内在功能的示 范视频。主要内容包括高层次综合、 仿真与 IP 生成器等并定期更新。如需 了解更多信息,敬请登录 http://china. xilinx.com/ training/vivado。
7Z045 和 7Z030 SoC。大多数标准实 施与比特流功能现已就位,包括包括 PR 验 证、 重 配 置 后 复 位 (Reset After Reconfiguration)、比特流压缩与加密、 黑盒子得到的比特流等(每帧的 CRC
Vivado 培训 如 需 了 解 有 关 Vivado 设 计 套 件 的 讲 师 指 导 培 训 课 程, 敬 请 访 问:china. xilinx.com/training。
校验尚不可用)。部分重配置流程可使 赛灵思中国通讯
61
实例……
应用指南 如果您希望进一步了解我们的 FPGA 如何适用于众多应用, 建议您阅读以下应用指南。 XAPP1086:通过隔离设计流程用赛灵思 7 系列 FPGA 开
7000 All Programmable SoC 将其连接至 ARM® CPU 的加
发安全可靠的单 FPGA 设计方案
速器一致性端口 (ACP)。Vivado HLS 可通过用 C/C++ 代码
http://china.xilinx.com/support/documentation/applica-
建模的方式快速实现加速器,并可对其进行优化生成 RTL
tion_notes/xapp1086-secure-single-fpga-using-7s-idf.pdf
设计。然后将解决方案作为一个 pcore 导出,该 pcore 通过
本 应 用 指 南 面 向 的 是 采 用 赛 灵 思 隔 离 设 计 流 程 (IDF) 进 行安全或关键安全设计(尤其是单芯片加密 (single-chip cryptography、汽车与工业应用)的 FPGA 设计人员。作者 Ed Hallett 将阐述如何通过 IDF 在单个赛灵思 7 系列 FPGA 或 Zynq®-7000 All Programmable SoC 中实现各项隔离功 能。这些功能可能包括红色 / 黑色逻辑、冗余 I 型加密模块 或处理多种安全级别的逻辑。此外设计人员也可了解如何通
自动创建的 AXI4-Stream 接口连接至 ACP。 作 者 Daniele Bagni、Juanjo Noguera 和 Fernando Martinez Vallina 曾使用 Xilinx Platform Studio (XPS) 设计 矩阵乘法器外设、DMA 引擎和 AXI 定时器等可编程逻辑 硬件。此外,他们还使用软件开发套件 (SDK) 设计用于管 理外设的处理系统软件。该驱动应用程序就是使用 Vivado HLS 并针对 32 位浮点精度优化的 32x32 矩阵乘法内核。
过赛灵思隔离验证工具 (IVT) 来验证隔离。 赛灵思开发的隔离设计流程允许在单芯片上运行各项
XAPP1160: AXI CHIP2CHIP 实时视频应用参考设计
独立功能。利用赛灵思分区技术能够开发出一款安全可靠且
http://china.xilinx.com/support/documentation/applica-
支持多种隔离功能的单芯片解决方案。SCC_ISOLATED 等
tion_notes/xapp1160-c2c-real-time-video.pdf
特殊属性通过控制可实现有效隔离,从而满足认证机构要
LogiCORE ™ IP AXI Chip2Chip 是 赛 灵 思 开 发 的 一 款 软
求。本应用指南可帮助设计人员开发能够满足高级别高安全
核,用于桥接多器件片上系统解决方案的各个 AXI 系统。
性应用所有安全要求的自动防故障单芯片解决方案。
由 Saambhavi Vajjiravelu Baskaran 和 Vamsi Krishna 共同
®
Kintex -7 FPGA 系 列 目 前 支 持 IDF。 如 需 进 一 步 了
撰写的这篇应用指南中所介绍的设置,可演示通过 Kintex-7
解隔离设计流程,敬请参阅 XAPP1085(http://china.xilinx.
FPGA 和 Zynq-7000 All Programmable SoC 开发板的实时
com/support/documentation/application_notes/xapp1085-
视频流量。AXI Chip2Chip 内核通过 FMC 连接器电缆为赛
7s-isolation-design- flow-ise-14-4.pdf )。
灵思开发板提供两种连接方案 本 参 考 设 计 包 括 采 用 Xilinx Platform Studio (XPS)
XAPP1170:利用 VIVADO HLS 实现 ZYNQ-7000 ALL
v14.5 工具创建的两种嵌入式系统,其属于 ISE® 设计套件:
PROGRAMMABLE SOC 浮点矩阵乘法加速器
系统版本的一部分。axi_chip2chip_v3_00_a 内核实现了一
http://china.xilinx.com/support/documentation/applica-
种便于测试模式发生器 (TPG) 在其中创建测试模式的视频
tion_notes/xapp1170-zynq-hls.pdf
系统。这种内核的两个实例已被实例化,一个为主,一个为
矩阵乘法可用于几乎所有应用数学领域。例如,矩阵乘法
从。同时还提供了完整的 XPS 和 SDK 项目文件。
对波束形成是必不可少的,在现代雷达系统中担负着计算 机运算所执行的接收天线数字同步处理的任务。本应用指南 将介绍如何使用 Vivado® 高层次综合 (HLS) 开发带有 AXI4Stream 接口的浮点矩阵乘法加速器,以及如何使用 Zynq62
赛灵思中国通讯
XAPP1164: 使用 VIVADO IP 集成器工具的 7 系列 FPGA AXI 多端口存储器控制器
http://china.xilinx.com/support/documentation/application_ 2013 年第四季度
n otes/xapp1164.pdf 许多视频、嵌入式应用与通信应用通常需要结合使用一个 多端口存储器控制器 (MPMC) 和通用存储器设备(通常是 DDR3 SDRAM)来移动多个不同来源的数据。作者 Khang Dao、Sikta Pany 和 Ricky Su 在本应用指南中将阐述如何 通过使用 Vivado 设计套件中的赛灵思 7 系列 FPGA 与 IP
编程方法进行了说明。作者 Lester Sanders 将演示如何在 QSPI 和 SD 模式下安全启动 Zynq SoC 器件。同时他还介 绍了针对不同安全要求 RSA 认证与 AES 加密的最佳使用 方法,以及安全地处理 RSA 密钥的方法。多重启动实例则 演示了在引导映像失败的情况下如何引导黄金映像。此外, 还举例说明了如何创建和对密钥编程。
集成器工具,并结合 Vivado 工具中的存储器接口发生器 (MIG) 内核和 AXI 互联 IP,来创建基本的 DDR3 MPMC 设计。 基本视频系统配套提供的参考设计一般采用 AXI4、
XAPP1165: 结合使用版本控制系统和 VIVADO 设计套件
http://china.xilinx.com/support/documentation/applica-
AXI4-Lite 和 AXI4-Stream 接口。这些接口为创建系统提供
tion_notes/xapp1165.pdf
了通用的 IP 接口协议框架。本应用指南中的实例设计是一
本应用指南针对非项目模式和项目模式下如何结合使用
个在 Kintex-7 FPGA KC705 评估套件的 KC705 评估板上
Vivado 设计套件与版本控制系统提出了相关建议。作者
运行的完整硬件系统。 AXI VDMA IP 核通过 DDR3 存储器
Jim Wu 建议使用 Vivado 的管理 IP 功能进行 IP 管理,而且
将视频帧从视频测试模式发生器 IP 模块移到 HDMI 显示 IP
始终将设计源作为远程文件。他还主张用工具命令语言 (Tcl)
模块。
脚本来管理设计源、设计运行与项目创建。随附的范例设计 就是遵循这种方法实现了寄存器传输级到比特流的转换。在
XAPP1178: DISPLAYPORT 传输参考设计
非项目模式与项目模式下均采用 Git 版本管理工具,并收录
http://china.xilinx.com/support/documentation/applica-
了用于创建初始设计资源库的 Tcl 脚本。
tion_notes/xapp1178-displayport-transmit.pdf Vamsi Krishna 和 Saambhavi Baskaran 撰写的这篇应用指 南将介绍如何实现内含 Policy Maker 功能和 DisplayPort 控
XAPP1093: 简单的 AMP 机制:通过 MicroBlaze 处理器运 行 ZYNQ SOC CORTEX-A9 裸机系统
制器的 LogiCORE IP DisplayPort 系统。使用 Vivado 设计
http://china.xilinx.com/support/documentation/applica-
套件 2013.2 版本创建的参考设计采用音频和视频模式发生
tion_notes/xapp1093-amp-bare-metal-microblaze.pdf
器来生成测试用流量。该文档针对如何用提供的 C 源代码
Zynq-7000 All Programmable SoC 包含两个 Cortex ™ -A9
在开发板上构建硬件以及设计测试进行了说明,同时还提供
处理器,两个处理器经配置后可同时运行独立的软件协议
了完整的 Vivado 和 SDK 项目文件。
栈或可执行文件。此外,Zynq SoC 中的可编程逻辑也可包
该设计展示了一个从赛灵思 DisplayPort 传输内核将视
含 MicroBlaze 嵌入式处理器。John McDougall 撰写的这篇
频与音频数据传输至支持 DisplayPort 功能的显示器上的系
应用指南介绍了 Cortex-A9 处理器和 MicroBlaze 处理器的
统。DisplayPort Source Policy Maker 在 KC705 评估板上
启动方法,能够让每个处理器分别运行其各自的裸机软件应
实现,包括 MicroBlaze ™处理器、DisplayPort 内核、以及
用,而且能够以非对称多处理 (AMP) 的方式通过共享存储
视频与音频模式生成器。
器相互通信。 AMP 这种机制允许多个处理器运行其各自的操作系统
XAPP1175: ZYNQ-7000 ALL PROGRAMMABLE SOC 的
或裸机应用程序,而且通过共享资源能够松散耦合这些应
安全启动
用。该参考设计包含在 AMP 配置下运行一个 Cortex-A9 处
http://china.xilinx.com/support/documentation/application_
理器和一个 MicroBlaze 处理器所必需的硬件与软件。本设
n otes/xapp1175_zynq_secure_boot.pdf
计并未采用另一个 Cortex-A9 处理器 (CPU1)。每个 CPU
Zynq-7000 All Programmable SoC 同时集成了基于处理器 的片上系统 (SoC) 和可编程逻辑。与赛灵思以往的器件不同, 该系统的启动机制是由处理器驱动。本应用指南介绍了实 现安全启动的概念、工具与方法。本文档将阐述如何创建安 全的嵌入式系统,同时还对公共与私人密钥的创建、管理及 2013 年第四季度
都在各自独立的环境中运行裸机应用程序。该设计需要采 取一些措施以避免 CPU 与共享硬件资源发生冲突。本应用 指南还介绍了如何创建可启动的解决方案以及如何对两个 CPU 进行调试。本设计是通过 Xilinx Platform Studio (XPS) 14.5 进行创建的。 赛灵思中国通讯
63
实例……
XAPP1172: 使用 ZYNQ-7000 处理系统 (PS) 到赛灵思模数
ALL PROGRAMMABLE SOC 加速 OPENCV 应用
转换器 (XADC) 的专用接口来实现系统监控与外部通道测
http://china.xilinx.com/support/documentation/applica-
量
tion_notes/xapp1167.pdf
http://china.xilinx.com/support/documentation/applica-
计算机视觉领域非常广泛,涵盖众多有趣的应用,从检测
tion_notes/xapp1172_zynq_ps_xadc.pdf
不合格制品的工业监测系统到驱动汽车的汽车系统无所不
XADC-PS 接 口 是 Zynq-7000 All Programmable SoC 的
有。其中许多系统的构建或原型设计均采用了 OpenCV 库。
专用链路,无需生成硬件比特流即可实现器件处理系统和
OpenCV 库包含许多针对桌面处理器和 GPU 的常见计算
XADC 模块之间的互连。在系统监控应用中,设计人员可
机视觉功能最佳实现方案。正如 Stephen Neuendorffer、
让 CPU 通过该接口来监控片上电压与温度,以及外部电压
Thomas Li 和 Devin Wang 在本应用指南中所述,OpenCV
或电流通道。XADC 可根据用户预先设定的参数值对告警
应用可针对 ARM 架构进行重新编译并能够在 Zynq-7000
事件进行设置。温度过高时,警报器会触发系统级操作(如
All Programmable SoC 中执行,从而可运用于嵌入式系统
关断)。
中。
Pallav Joshi、Srinivasa Attili 和 Mrinal J. Sarmah 三
设计人员可将 OpenCV 库用在从算法原型设计到在系
位作者在本应用指南中对 XADC-PS 专用接口在系统监控以
统执行等许多设计环节中。此外,使用与 Vivado 高层次综
及事件编程与监控方面的作用进行了探索。他们在设计中还
合 (HLS) 一同发布的视频库,也可将 OpenCV 代码移植到
探讨了通过 XADC-PS 接口使用外部辅助通道的可能性以并
可综合的 C++ 代码。将这些综合模块集成到 Zynq SoC 设
描述了用该接口可监控的最大信号频率特征。设计人员可通
计中时,还可实现高分辨率、高帧率计算机视觉算法。
过外部辅助通道来监控内部传感器未捕获到的外部电压和 电流。本应用指南中给出的时延是设计通过该接口能实现的
XAPP1082: ZYNQ-7000 ALL PROGRAMMABLE SOC 中
最佳值,但可能会随 CPU 负载条件变化而变化。
的 PL 以太网方案:PS 和 PL 以太网性能以及巨型帧支持
http://china.xilinx.com/support/documentation/applicaXAPP 1081: 针对 FPGA 设计远程更新的 QUICKBOOT 解 决方案
tion_notes/xapp1082-zynq-eth.pdf 本 应 用 指 南 将 重 点 介 绍 Zynq-7000 All Programmable
http://china.xilinx.com/support/documentation/applica-
SoC 中 的 以 太 网 外 设。Srinivasa Attili、 Sunita Jain 与
tion_notes/xapp1081-quickboot-remote-update.pdf
Sumanranjan Mitra 三位作者阐述了如何在可编程逻辑 (PL)
All Programmable FPGA 的一大优势在于它的远程更新能
中使用高速串行收发器通过带有 1000BASE-X 物理接口的
力,它可以通过设计补丁或增强功能来更新已部署的系统。
可扩展多路复用 I/O (EMIO) 接口来使用基于处理系统 (PS)
Randal Kuramoto 撰写的这篇应用指南中介绍了一种可靠
的千兆比特以太网 MAC。此外,该文档还介绍了如何实现
的现场更新方法 QuickBoot 解决方案,即通过结合快、稳
基于 PL 且支持巨型帧的以太网。随附的参考设计支持使用
健可靠的配置方法和基于 HDL 的高效在系统可编程参考设
多个以太网端口,并提供内核模式 Linux 器件驱动程序。此
计进行更新。
外,本应用指南还包含在校验和 (checksum offload) 支持在
QuickBoot 解决方案通过简单调整比特流更新流程的编 程算法即可将编程错误 / 中断恢复的任务放到编程操作上。
启用和禁用情况下测得的以太网性能数据。测量结果表明, 随数据包尺寸的不断增大,吞吐量呈明显上升趋势。
QuickBoot 方案将编程方法和基于特殊配置报头的配置方法 整合在一起,打造出了一款远程更新解决方案。该解决方案
XAPP1176: 使用 VIVADO IP 集成器实现
不仅稳健可靠、可兼容多种配置设置,而且在所有情况下都
AXI QUAD SPI 就地执行 (XIP)
能够快速配置。
http://china.xilinx.com/support/documentation/application_notes/xapp1176-xip-axi-quad-spi-ipi.pdf
XAAPP1167: 通过 VIVADO HLS 视频库使用 ZYNQ-7000
64
赛灵思中国通讯
Sanjay Kulkarni 和 Prasad Gutti 撰写的这篇应用指南主要 2013 年第四季度
介绍 Vivado 设计套件 2013.2 版本中推出的 AXI Quad SPI
LogiCORE IP 三倍速率 SDI 内核来接收输入的 SDI 视频
v3.0 IP 核的就地执行 (XIP) 功能。本文详述了有关从 SPI
流。SMPTE 2022-5/6 IP 视频传输发射器内核采用多路传
串行闪存设备配置 FPGA 的必备连接,和 SPI 模式配置流
输的方式传输其中三个 SDI 流,并将其封装在固定大小的
程的信息
数 据 报 中, 然 后 通 过 LogiCORE IP 10Gbps 以 太 网 MAC
XIP 是指应用程序可直接在长期储存空间运行,而无需
(10GEMAC) 将其发送出去。用 JPEG2000 编码器对第四个
先拷贝到 BRAM 中。由于这个原因,闪存存储器在嵌入式
SDI 流进行压缩,将其封装在固定大小的数据报中,然后通
系统中比 DDR 更为可取。此外,闪存存储器还具有功耗低、
过 LogiCORE IP 三模以太网 MAC (TEMAC) 将其发送给标
引脚接口数少等其他优点。对于“从闪存引导”操作来说,
准 Cat.5e 电缆。
基于 SPI 的闪存存储器是最佳选择。驻留在 SPI 闪存中的
在接收器平台上,未压缩数据流的以太网数据报包在
可执行代码通过 XIP 配置的 Quad SPI IP 核被加载到 DDR
10GEMAC 处进行收集。 IP 视频传输接收器内核对数据包
内,从而体现已实现的 XIP 模式的存储 - 加载特性。
进行过滤,然后进行解封和多路分用成各个独立数据流, 最后通过三倍速率 SDI 内核输出为 SDI 视频。压缩数据
XAPP1092: 用 ZYNQ-7000 ALL PROGRAMMABLE SOC
流的以太网数据报在 TEMAC 处收集,经过解封后发送给
GTX 收发器实现 SMPTE SDI 接口
JPEG2000 解码器。其输出的视频会被转换为 SDI 并被发
http://china.xilinx.com/cn/support/documentation/applica-
送给三倍速率 SDI 内核。所有的以太网数据报均在发射器
tion_notes/xapp1092-smpte-sdi-zynq-gtx-transceivers.pdf
和接收器的 DDR3 SDRAM 中进行缓冲。MicroBlaze 处理
电 影 电 视 工 程 师 协 会 (SMPTE) 串 行 数 字 接 口 (SDI) 标 准
器开始进行内核初始化,并读取状态。
系列广泛应用于专业广播视频设备。播音室和视频制作中 心使用这些 SDI 接口传输未压缩的数字视频以及多路音
XAPP1096: 使用 7 系列 FPGAS GTX 收发器实现直流耦合
频 通 道 等 嵌 入 式 辅 助 数 据。 赛 灵 思 SMPTE SD/HD/3G-
http://china.xilinx.com/cn/support/documentation/applica-
SDI LogiCORE IP 是一种通用 SDI 接收 / 发送数据路径,
tion_notes/xapp1096-dc-coupling-gtx-transceivers.pdf
并无任何特定器件控制功能。John Snow 撰写的这篇应用 指南介绍了一款包含控制逻辑的模块,该控制逻辑可用于 将 Zynq-7000 All Programmable SoC GTX 收 发 器 与 赛 灵 思 SMPTE SD/HD/3G-SDI LogiCORE IP 相耦合,形成完 整的 SDI 接口。本文还包含在 SDI 应用中使用收发器必备 的 GTX 特定器件控制逻辑,以及 Zynq SoC 设计采用的两 个详细的 SDI 演示应用实例。在 ZC706 评估板上运行 SD/ HD/3G-SDI 范例设计。
收发器在电子产品设计中的使用一般会涉及发射器与接收 器之间的交流耦合连接。但是交流耦合连接也有缺点,如因 交流耦合电容器连接而造成的间断与布线拥挤;因交流电容 器放置问题而造成的电路板面积增加;流经电容器后的交流 摆幅损失等。此外,游程也受交流耦合限制,同时这项技术 还可能会降低低频信号的质量。. 设计人员可通过在发射器与接收器之间使用直流连接 来弥补这些缺点。Vaibhav Kamdar、Mustansir Fanaswalla 和 Santiago Asuncion 三位作者在本应用指南中阐述了如何
XAPP1169: 采用 JPEG2000 的 VIDEO-OVER-IP 参考设计
使用赛灵思 7 系列 FPGA GTX 收发器来达到这一目的。本
http://china.xilinx.com/cn/support/documentation/applica-
文档对 GTX 收发器用作一个接收器和一个发射器这一应用
tion_notes/xapp1169-VOIP-JPEG2000-ref-design.pdf
进行了探讨。同时还阐述了两个 GTX 收发器之间的通信。
本 应 用 指 南 主 要 介 绍 集 成 赛 灵 思 SMPTE 2022-5/6
对于交流耦合系统中带有端接电阻 (on-die termination) 的
LogiCORE IP 核与 Barco-Silex JPEG2000 编码器与解码
典型电流型逻辑电路 (CML) 收发器来说,RX 输入的共用模
器 IP 核的 IP 视频传输 (video-over-IP) 参考设计。该设计
式由 RX 端接电压决定,与此同时 TX 的共用模式由 TX 端
基于发射器和接收器这两个平台构建而成,多支持多达 4
接电压和输出摆幅决定。在直流耦合系统中,连接的共模电
个 SD/HD-SDI 流。 根 据 作 者 Jean-François Marbehant
压通常是由 TX 端接电压、输出摆幅和 RX 端接电压决定。
和 Virginie Brodeoux 所 述, 发 射 器 平 台 设 计 采 用 了 四 个 2013 年第四季度
赛灵思中国通讯
65
赛灵思推出 Vivado® 设计套件的 UltraFastTM 设计方法
赛灵思的 UltraFastTM 设计方法可加速设计进程并 可预测设计周期。