Xcell journal 8 6 号 2014
ISSUE 85, FOURTH QUARTER 2013
O LL U U TT II O ON N SS SS O
OR R FF O
A A
P R O G R A M M A B B LL E E
Xilinx’s UltraFast ザイリンクス、業界初となる 20nm Methodology: Formula All ProgrammableAデバイスを出荷 for Generation-Ahead Vivado HLS Productivity Median を使用した ビデオ用 フィルターと ソーティング ネットワークのデザイン 最適なテストベンチ作成の ノウハウ
W WO OR R LL D D
Accelerate Cloud Computing with the Zynq SoC Zynq SoC Enables Red Pitaya Open-Source Instruments How to Design IIR Filters for Interpolation and Decimation Middleware Turns Zynq SoC into Dynamically Reallocating Processing Platform
Zynq SoC デザインに RTOS を追加する方法
page 30 Demystifying Kintex-7 レシーバーで テレビの「ホワイト スペース」 Unexpanded Clocks
を新たな通信サービス に活用
ページ
12 www.xilinx.com/xcell/
FPGA / CPLD 評価ボード
LCDモジュール
すぐに使えるFPGAボードで、設計や試作コスト が下げられると思います。 ■ FPGAの動作に必要な最低限の機能を搭載単一電源ですぐに活用できます ■ ACM/XCMシリーズはそれぞれ外形やコネクタ位置が同一で置き換えが可能です ■ 豊富なラインナップで100種類以上の製品をご用意しています
139 x 100 x 10 [mm] (W x H x D)
Kintex -7搭載FPGAボード
UTL-024 シリーズ
XCM-022 シリーズ
■ ユーザI/O
■ 3.3V
MRAM
コントローラ (セイコーエプソン社 S1D13781)
100本
RoHS指令対応品
■ 3.3V単一電源動作、 電源シーケンサ搭載
XCM-022W シリーズ
クレジット カードサイズ
DDR3 SDRAM
Kintex®-7 FBG484 搭載ブレッドボード
XCM-022Z シリーズ
■ XC7K70T-1FBG484C
または XC7K160T-1FBG484Cを搭載 ■ メモリ搭載 ■ ユーザI/O 100本 ■ 3.3V単一電源動作 電源シーケンサ搭載 ■ XCM-022から高速トランシーバ 部分を除いた製品です
RoHS 指令対応品
■ ユーザI/O
128本
UTL-025 シリーズ
■ 3.3V
単一電源動作
■ LCD
コントローラ (セイコーエプソン社 S1D13781)
■ 内蔵圧電ブザーにより発音
可能
5.0
■ プラスチック製ベゼル付き
DDR3 SDRAM
■ XC7K70T-1FBG484C
RoHS指令対応品
タッチパネル付き5″ カラーLCDモジュール
XCM-112 シリーズ Rocket I/O
3.5
■ 黒とグレーの2モデル
Kintex®-7 FBG484 搭載ブレッドボード
ハーフ カードサイズ
可能
■ プラスチック製ベゼル付き
94 x 78 x 9.5 [mm] (W x H x D)
■ XC7K70T-1FBG484C
RoHS 指令対応品
または XC7K160T-1FBG484Cを搭載 ■ シンプル構成 ■ ユーザI/O 100本 ■ 3.3V単一電源動作 電源シーケンサ搭載 ■ XCM-022からメモリと高速トラン シーバ部分を除いた製品です
■ 内蔵圧電ブザーにより発音
■ 外形寸法
クレジット カードサイズ
MRAM
単一電源動作
■ LCD
または XC7K160T-1FBG484Cを搭載
Kintex®-7 FBG484 搭載ブレッドボード
RoHS指令対応品
タッチパネル付き3.5″ カラーLCDモジュール
Kintex®-7 FBG484 搭載ブレッドボード
■トランシーバとメモリ搭載
5.0
■ 黒とグレーの2モデル
®
■ XC7K70T-1FBG484C
可能
■ 外形寸法
■ スピードグレード変更などのカスタマイズもご相談ください
DDR3 SDRAM
単一電源動作
■ 内蔵圧電ブザーにより発音
コネクタはTerasic 社 のディスコン品(TRDB-LTM) に準拠したピンレイアウト
■ 基本的に即納体制で最短翌日からご活用いただけます
SIF40
■ 3.3V
■ I/F
■ 豊富な納入実績で安心してお使いいただけます
Rocket I/O
UTL-021 シリーズ
■ プラスチック製ベゼル付き
■ 回路図、マニュアルは購入前でも自由に参照できます
クレジット カードサイズ
タッチパネル付き5″ カラーLCDモジュール
■ 外形寸法
または XC7K160T-1FBG484Cを搭載
■ 3.3V単一電源動作、 電源シーケンサ搭載
139 x 100 x 10 [mm] (W x H x D)
RoHS指令対応品
RoHS指令対応品
■ 黒とグレーの2モデル
Kintex®-7 搭載 USB-FPGA ボード
EDX-008
クレジット カードサイズ
USB Config
USB Comm
DDR3 SDRAM
MRAM
CameraLink 実験用ボード
HI-SPEED
■ XC7K70T-1FBG484Cを搭載 ■ ユーザI/O
100本 ■ USB経由でFPGAコンフィギュレーション ■ USBポートによりPCとUSB通信が可能 ■ 5V単一電源動作、 電源シーケンサ搭載
RoHS指令対応品
Virtex -5搭載の新製品 ®
Virtex®-5 FFG676 搭載ブレッドボード
XCM-113 シリーズ
ハーフ カードサイズ
DDR2 SDRAM
■ XC5VLX30-1FFG676C、 XC5VLX50-1FFG676C、
XC5VLX85-1FFG676C または XC5VLX110-1FFG676Cを搭載 128本 ■ 3.3V単一電源動作 ■ ユーザI/O
RoHS指令対応品
UTL-023 当社ACM/XCM-2シリーズ にCameraLink用コネクタ を 接 続 す る た め の ボ ード です。 電源付きユニバーサルボー ド Z K B - 1 0 6 を ベ ー スに CameraLink入力用コネク タとC a m e r a L i n k 出 力 用 コネクタおよび、LCD表示モジュールUTL-021用のI/O コネクタを装備しています。
※その他 FPGA Boardやアクセサリを100 種類以上ラインナップしています。詳しくはウエブをご覧ください。
L E T T E R
F R O M
T H E
P U B L I S H E R
ザイリンクス、UltraScale 時代に向けて 一世代先へリードする技術力を強化 今年はザイリンクスと皆様にとって最高の年になると予想しています。過去 6 年にわたり、筆者はザ イリンクスが Moshe Gavrielov(モーシェ ガブリエロフ)CEO のリーダーシップの下で達成してきた 素晴らしい成果を目の当たりにしてきました。多くの成果の中でも特に重要なのは、ザイリンクスがリ リースした 3 世代にわたる製品と、全く新たな最高クラスのデザイン ツール スイートの開発です。さ らに、数年前に 7 シリーズ All Programmable デバイスをリリースし、2013 年 12 月には業界で 初めて 20 ナノメートル デバイスを出荷したザイリンクスは、FPGA テクノロジのリーダーから、半導 体とシステムのイノベーションにおけるリーダーへと成長しています。 筆者にとって、7 シリーズはザイリンクスの飛躍の始まりを示す製品です。7 シリーズでザイリンクス は、28nm で最高の FPGA を市場に供給したばかりでなく、3D IC と Zynq SoC という 2 つの全く 新たなデバイス クラスを開発したのです。 一方、Vivado® Design Suite と UltraFast ™ 設計手法は、ザイリンクスがゼロから開発したツール 群であり、顧客の革新的な製品の迅速な市場投入を支援します。7 シリーズにおけるこれらの進化それ 自体が注目に値しますが、さらに印象的なのは、ザイリンクスの将来の成功に向けた確実なロードマッ プと、顧客に貢献するイノベーションに向けたロードマップが確立されたことです。過去数四半期にわ たり、この成功が外の世界でも疑いのないものになるのを目にすることは、とても実り多い経験でした。 ザイリンクスの 7 シリーズ デバイスは、現在 28 nm FPGA 市場全体の 70% 以上を占有しています。 これらの数字は、 「ザイリンクスが一世代先を行っている」というマーケティングの方向性には真にザイ リンクスの技術力があることを裏付けています。 筆者はジャーナリスト時代に、この業界においてザイリンクスと競合他社との比較で、優位性はどち らが高いかに関する議論をしばしば目にしました。しかし、これに関しては堂々巡りの議論が繰り返さ れるばかりで、どちらの側にも具体的な根拠はほとんどなかったため、あたかも後部座席で 2 人の子 どもが言い合っているのを聞いているように、意味のないものになっていきました。 もちろん、現在ザイリンクスに勤務している筆者が公平な立場にあるとは言えません。しかし筆者は、 ザイリンクスの勢いと一世代先へリードする技術力は、2013 年にはまだ皆様の目に明らかでなかった としても、2014 年にはそうなると断言できます。ザイリンクスが他社に先駆けて出荷してきた過去 2 世代の製品の数を見れば、ザイリンクスが現状に満足せず、競合他社の挑戦を受けて立つ構えである ことは明らかです。本号のカバー ストーリーで説明するように、2013 年後半、ザイリンクスは ( まだ 20nm 製品の出荷に至らない ) 競合他社に数カ月先立つ形で業界初の 20nm FPGA を顧客に供給 し、20nm Kintex® および Virtex® UltraScale ™ デバイスの製品ラインを発表しました。これらの UltraScale 製品には、競合他社の最大のデバイスの 4 倍の容量を備えた Virtex FPGA が含まれて おり、実装密度におけるザイリンクスのまぎれのない優位性は引き続き維持されています。 新しい UltraScale ファミリは ASIC クラスのデバイスであり、未来を形作るイノベーション (1 年 ほど先の技術ではなく、エレクトロニクスの将来を規定するような製品 ) の開発に取り組んでいる皆様 に驚異的な価値をもたらします。さらにエキサイティングなことに、これらのリリースは、これから本格 化するザイリンクスの UltraScale 時代の始まりにすぎないのです。
Mike Santarini 発行人
目次
VIEWPOINTS Letter From the Publisher ザイリンクス、UltraScale 時代に 向けて一世代先へリードする 技術力を強化 … 1
XCELLENCE BY DESIGN APPLICATION FEATURES Profiles in Xcellence Kintex-7 FPGA レシーバーで テレビ放送の「ホワイトスペース」 を新たな通信サービス に活用 … 12
Cover Story
4
ザイリンクス、業界初となる
20nm All Programmable デバイスを出荷
12
86 号
THE XILINX XPERIENCE FEATURES Ask FAE-X Vivado HLS ツールを使用した ビデオ処理用の Median フィルターと ソーティング ネットワーク… 16
16
Xplanation: FPGA 101 最適なテストベンチ作成の ノウハウ… 26
Xplanation: FPGA 101 Zynq SoC デザインに RTOS を 追加する方法 … 32
Xplanation: FPGA 101 ザイリンクス デザイン用の カスタム XBD ファイルの 作成 … 38
44
32 XTRA READING Tools of Xcellence 最適なコンバーターの選択 : JESD204B と LVDS … 44
Tools of Xcellence SMC で生成した ペリフェラルと AXI4-Lite インターフェイスを ザイリンクス環境に統合する方法 … 48
広告索引 有限会社ヒューマンデータ ……… 表 2 Excellence in Magazine & Journal Writing 2010, 2011
Excellence in Magazine & Journal Design 2010, 2011, 2012
COVER STORY
Xilinx Ships Industry’s First 20-nm All Programmable Devices
ザイリンクス、業界初となる
20nm All Programmable デバイスを出荷 Mike Santarini Publisher Xcell Journal Xilinx, Inc.
4 Xcell Journal 86 号
COVER STORY
最新の製品ラインでは、
440 万ロジック セルを搭載した 3D Virtex UltraScale FPGA で 容量の新記録を達成
ザイリンクスは 2013 年 11 月 、業 界 初 の 20 ナノ メ ー ト ル All Programmable FPGA と な る Kintex® UltraScale ™ XCKU040 を、 競 合 他 社 の 20nm デ バイス より 数 カ月 先 に 出 荷し、 一 世 代 先 をリード する 技 術 力の重 要な マイルストーンを 達 成しました。続 いて 12 月には、この成 果 を基 に、すべ ての 20nm Kintex UltraScale お よび Virtex® UltraScale 製 品ライン を 発 表しました。Virtex UltraScale ファミリには Virtex UltraScale VU440 が含まれています。3D IC テクノロ ジをベースとするこの 440 万ロジック セル デバイスは、 ザイリンクスが既に 28nm Virtex-7 2000T で保持して いた FPGA の最大容量および半導体トランジスタの最大 数の世界記録を更新するものです。 ザイリンクスのコーポレート ストラテジおよび マー ケ ティング担当シニア副社長である Steve Glaser は、 「ザ イリンクスは 20nm 製品の販売を始めており、ザイリン クスの多数の 20nm UltraScale デバイスのうち最初の ものを出荷しています」と述べています。 「ザイリンクスは、 大 成 功を収めた 28nm 7 シリーズ All Programmable デバイスで確立した FPGA 市場におけるリーダーシップ を、20nm UltraScale アーキテクチャでさらに拡大して います。現在ザイリンクスは、TSMC 社の 20SoC プロ セス技術で製造した業界初の 20nm デバイスを競合他社 より数カ月早く顧客に供給しているだけでなく、業界で最 も高度なシリコン アーキテクチャを利用したデバイスと、 ASIC クラスの強力なデザイン ツール スイートおよびデザ イン手法を提供しています。 」 20nm Kintex UltraScale および Virtex UltraScale 製品ラインのすべてのデバイスは、ASIC クラスの性能や 機能とともに、大成功を収めたザイリンクスの 7 シリーズ 製品ラインを上回る低消費電力と大容量を実現します ( 図 1)。28nm シリコン製造ノードで製造された 7 シリーズ デバイスは、現在プログラマブル ロジック デバイス市場 の 70% 以上のシェアを占めています。その上、ザイリン
http://japan.xilinx.com/
5
COVER STORY
Logic Cells (LC)
478
1,161
1,995
4,407
Block RAM (BRAM; Mbits)
34
76
68
115
DSP48
1,920
5,520
3,600
2,880
Peak DSP Performance (GMACs)
2,845
8,180
5,335
4,268
32
64
96
104
Peak Transceiver Line Rate (Gbps)
12.5
16.3
28.05
32.75
Peak Transceiver Bandwidth (Gbps)
800
2,086
2,784
5,101
PCI Express Blocks
1
6
4
6
100G Ethernet Blocks
-
1
-
7
150G Interlaken Blocks
-
2
-
9
1,866
2,400
1,866
2,400
500
832
1,200
1,456
Transceiver Count
Memory Interface Performance (Mbps) I/O Pins
図 1 - 20nm Kintex および Virtex UltraScale FPGA は、業界をリードする機能を提供し、 Kintex および Virtex 7 シリーズ デバイスを補完します (最大数を掲載) クスは UltraScale でデバイス アーキテク
を比 較すると、Kintex UltraScale デバイ
ん。ザイリンクスは既に 20nm UltraScale
チャの改良をさらに進め、Vivado Design
スは Kintex-7 デバイスに比べてロジックと
デバイスを供給しており、これによって顧客
Suite には ASIC クラスの機能強化を実現し
DSP 機能が大幅に向上しています。その理
は今すぐ革新的な製品の開発が可能です。ザ
ました。2013 年 10 月、ザイリンクスは、 由は、高い信号処 理帯域 幅を必要とするア
イリンクスは UltraScale FinFET デバイス
UltraFast デザイン手法と呼ばれる合理化さ
プリケーションの大部分が、現在 Kintex ク
を競合他社と同じスケジュールで供給する予
れた手法を発表しました ( 詳細は Xcell Jour-
ラスの価格帯と実装 密度を要求する傾向が
定です。これらのデバイスと、Vivado De-
nal 日本語版 85 号のカバー ストーリーを参
あるからです。実装密度や DSP 機能にそれ
sign Suite および UltraFast 手法の ASIC
照。http://issuu.com/xcell-journal-japa-
ほどの向上を必要としないアプリケーション
クラスの利点により、ザイリンクスは一世代
nese/docs/xcell_85)。今後ザイリンクスは、 では、Kintex-7 は現在でも非常に実用的な
先へリードする技術力を基にさらに進化して
®
デザインインの手段となります。」
いきます。」
に基づいて、20nm UltraScale 製品ライン
Saban によると、マルチノード手法によ
Saban によると、これらの進化は信頼性
に続いて 16nm FinFET UltraScale デバイ
り、ザイリンクスの幅広いユーザーは、業界
の高い製造プロセスを基盤としています。 「ザ
スを展開していきます。
で 最 も 強 力 な All Programmable デバイ
イリンクスは TSMC 社という業界で最も強
ザイリンクスの製品ライン マーケティング
スの選択 肢を利用できると同時に、Vivado
力なファウンドリ パートナーを得ており、同
マ ネ ージャーで あ る Kirk Saban は、 「私
Design Suite と UltraFast 手法による比
社には納期と信 頼性に関する確かな実績が
「マルチノード戦略」と呼ばれる手法 ( 図 2)
たちが今いるのはマルチノードの世界です。 類のない高い生産性が得られます。
あります」と Saban は述べています。 「ファ
そこでは、顧客はザイリンクスの 7 シリー
「現在業界には次の間違った認識が広まっ
ウンドリは TSMC 社の主要業務であり、半
ズ ファミリ、UltraScale 20nm ファミリ、 ており、競合他社はインテルの 14nm Fin-
導体 業 界 の有名企業の大半のデバイスを製
今後の UltraScale 16nm FinFET ファミ
FET シリコン デザイン プロセスが完成して
造しています。しかも、TSMC 社の前 CEO
リのうちシステム 要 件 に 最 も 適したノード
から自社の次世代デバイスの製造に取り掛か
( 現在は顧問 ) である Chenming Hu 氏は
で デバイスの デ ザインイン を 行 います」と
るため、ザイリンクスは一足飛びに追い抜か
FinFET プロセスの事実上の開発者であり、
述 べ ています。 「たとえば、20nm Kintex
れるだろう」と Saban は述べています。 「私
TSMC 社の次世代プロセス用 FinFET の開
UltraScale デバイスと Kintex-7 デバイス
たちも手をこまねいているわけではありませ
発力には非常に感銘を受けました。 」
6 Xcell Journal 86 号
COVER STORY
KINTEX および VIRTEX ULTRASCALE デバイスの トランジスタ数
ました。
イスは、16.3Gbps のバックプレーン動作を
「ザイリンクスによる DSP のイノベーショ
サポートします。Kintex UltraScale ファミ
ンを詳 細に検 討すると、入 力幅を広げた乗
リの 低 速グレードのデバイスも 12.5Gbps
新たなシリコン プ ロセ ス ノードが 登 場
算器に行き着きます。これにより、ファンク
の素晴らしいトランシーバー性能を備えてお
するたびに、業 界 は 製 造とデザインの 新た
ション当たりの使用ブロック数を削減し、あ
り、これはワイヤレス アプリケーションには
な 課 題に直 面します。そ の点 では、20nm
らゆるタイプの DSP アプリケーションで精
特に重要です。一方、Virtex UltraScale 製
ノードも例外ではありません。このジオメト
度を高めることができます」と Saban は述
品には、28Gbps のバックプレーン動作と
リは、配 線 遅 延、クロック スキュー、およ
べています。 「またワイヤレス通信分野の顧
33Gbps のチップ間およびチップ - 光デバイ
び CLB パッキングに関する新たな課題をも
客のために、DSP48 それ自体の中で可能
ス間インターフェイスに対応するトランシー
たらします。しかしザイリンクスは、Kintex
になった FEC、ECC、および CRC インプ
バーが搭載されます。
UltraScale お よ び Virtex UltraScale デ
リメンテーションに関連して、各種の追加機
「UltraScale デバイスには、各 種 の 重 要
バイスでこれらの課題を克服し、全体的な性
能を組み込みました。 」
な統合型ハード IP ブロックを追加しました」
能と使用率を大幅に向上させました ( サイド
ブロック RAM の面では、ザイリンクスは
と Saban は述べています。 「Virtex および
バー「FPGA で ASIC クラスのステータスを
データ カスケード出力をハード化し、ハード
Kintex UltraScale ファミリ デバイスには、
実現する適切な手法」を参照 )。
化された革新的な新機能によって、消費電力
100Gbps イーサネット MAC をハード IP コ
ノードの複雑性に基づいて、ザイリンクス
だけでなく BRAM の性能も向上させました。
アとして追加しました。また、Virtex および
はアーキテクチャをいくつかの点でブロック
ザイリンクス は、20nm Kintex お よ び
Kintex UltraScale 製品ラインに、ハード化
レベルで改善し、すべての改善点を Vivado
Virtex UltraScale 製品ラインに 2 種類の
された 150Gbps Interlaken インターフェ
デザイン ツールと協調最 適化して、最 大限
トランシーバーを採用しています。中速およ
イスと、Gen3x8 までの動作に対応するハー
の帯域幅と最大限の信号処理能力を実現し
び高速グレードの Kintex UltraScale デバ
ド化された PCI Express® Gen3 ブロック
Past
Single Node, Only FPGAs
FPGA 130nm
FPGA 90nm
FPGA 45/40nm
Future
Concurrent Nodes with FPGAs, SoCs and 3D ICs
28nm: Long life with optimal price/performance/watt and SoC integrations Open for business! 20nm: Complements 28nm for new high-performance architectures 20 16nm: Complements 20nm with FinFET, multiprocessing, memory 1
図 2 - ザイリンクスの「一世代先へ」戦略ではマルチノード製品開発が推奨され、顧客の要件に最も適合するノードの FPGA、SoC、および 3D IC の製品ラインが同時にリリースされます。
http://japan.xilinx.com/
7
COVER STORY
FPGA で ASIC クラスの
ステータスを実現する適切な手法 以前 ASIC 設計者が悩んでいた問題に、現在は FPGA 設計者
CLB は再設計されました。ロジック ブロックのデザインはより稠
が直面しています。それは、配線遅延がデザイン性能に決定的な
密にパックされ、その結果、CLB 間の必要な配線リソースは削減
影響を与えるという問題です。長年にわたってトランジスタの速度
されます。また、配線パスも短縮されます。UltraScale アーキテ
はデナードのスケーリング則に従って向上し、トランジスタの 1 平
クチャの CLB 内の変更には、CLB 内の全フリップフロップへの
方ミリメートル当たりの実装密度はムーアの法則に従って向上して
専用入力および出力の追加 ( これにより、フリップフロップを個別
きました。残念なことに、インターコネクトにはこの法則は当ては
に使用できるようになり、使用率が向上 )、フリップフロップ クロッ
まりません。ムーアの法則に従って、ワイヤが薄く、フラットにな
ク イネーブル信号のさらなる追加、CLB のシフト レジスタおよび
るにつれて、伝送速度は遅くなります。最終的には、トランジスタ
分散 RAM コンポーネントに対する個別クロックの追 加が含まれ
遅延は無視できるほどに小さくなり、配線遅延が支配的になりま
ます。改善された CLB の使用率とパッキングの概念図を図 1 に
す。FPGA の実装密度が向上し、ザイリンクスの UltraScale ™
示します。
All Programmable デバイスが ASIC クラス デザインの領域に入
この図の 例では、以前は 16 個の CLB でインプリメントされ
るにつれて、FPGA にも同じ問題が現れます。この問題を克服す
ていた回路ブロックが、現在では 9 個の改良された UltraScale
るために、UltraScale デバイスの再設計が行われてきましたが、
CLB に適合しています。図中の小さな青い正方形と三角形の分布
解決策は簡単ではなく、かなり複雑なものとなりました。ここでは
は CLB 使用率が向上したことを示し、赤い線の減少は必要な配線
その手法について説明します。
量が削減されたことを示しています。
ステップ 1 : ブロックをコンパクトにして信号の 伝送距離を短縮する
ステップ 2 : 配線リソースを追加する
これは当然 のことに思われます。必 要は発 明 の 母と言います
数は N の二乗に比例して増加します ( ここで、N は IC プロセス技
が、UltraScale の実装密度ではこの手法を工夫する必要があり
術のリニア スケーリング係数 )。残念なことに、 FPGA の配線リソー
ました。Vivado ® Design Suite がロジック デザインを CLB に
スは N に直線的に比例して増える傾向があり、CLB 数の増加ペー
より効率的にパックできるように、UltraScale アーキテクチャの
スには追いつけません。何らかの対策を講じて問題を解決しない限
ムーアの法則に基づくトランジスタ密度の上昇に伴って、CLB の
図 1 - UltraScale アーキテクチャでは、CLB の使用率が向上し、必要な配線量が減ります。
Steve Leibson Editor Xcell Daily Blog Xilinx, Inc.
8 Xcell Journal 86 号
COVER STORY
り、この状況では何の見返りも得られません。ULTRASCALE アー キテクチャ用の解決策として、CLB 密度の上昇に追随して配線可能 性がより迅速に向上するように、ローカル配線リソースがさらに追 加されました。図 2 にその結果を示します。 ただし、ハードウェア配線リソースを増やすだけでは不十分です。 これらの新しいリソースを活用できるように、デザイン ツールの配 置配線アルゴリズムを強化する必要があります。この必要に応じて、 ザイリンクス Vivado Design Suite がアップグレードされました。
ステップ 3 : クロック スキューの増加に対処する ご存じないかもしれませんが、FPGA のクロッキングは単純化で きたため、非常に単純なものでした。初期世代の FPGA は中央の クロック分配スパインに依存しており、このスパインがデバイス (IC) の幾何学的中心からファンアウトして、すべてのオンチップ ロジッ クにクロックを供給していました。この種のグローバ ル クロッキ ング方式は、Virtex UltraScale および Kintex UltraScale All Programmable デバイス ファミリなどの ASIC クラスの FPGA では有効に機能しません。この方式では、CLB 密度の上昇とクロッ ク レートの向上に対応できないのです。したがって、UltraScale デバイスは、図 3 に示すような根本的に改良されたクロッキング方 式を採用しています。 UltraScale アーキテクチャのクロック分配ネットワークは、複 数のクロック分配ノードを多数のオンチップ クロック ドメインの幾
図 3 - 根本的に新しいクロッキング方式では、複数のクロック分配ノード を多数のオンチップ クロック ドメインの幾何学的中心に配置できます。
何学的中心に配置できる、リージョン化、セグメント化されたク ロッキング インフラストラクチャで構成されます。個々のクロック 分配ノードは、適切なサイズのインフラストラクチャ セグメントか ら構築された個々のクロック ツリーをドライブします。この手法 には、少なくとも次の 3 つの大きな利点があります。 1. クロック スキューが急速に縮小する。 2. 配線可能なクロッキング リソースが大幅に増える。 3. ただちにタイミング クロージャが容易になる。 しかし、デザイン ツールが新しいクロッキング方式をサポートし ない限り、クロッキング インフラストラクチャを改善するだけでは 不十分です。したがって、Vivado Design Suite は、ステップ 2 で説明した CLB 間の配線の向上に応じてアップグレードされたの と同じように、新たなクロッキング方式に応じてアップグレードさ れました。 ザイリンクスは、上記の 3 つのステップで、ハードウェア アーキ テクチャとデザイン ツールの両方を大きく変更する必要がありま した。ザイリンクスが言う UltraScale アーキテクチャと Vivado Design Suite の協調最適化とは、このようなことを意味してい ます。これには多大な労力が必要 でしたが、ASIC クラスの All
図 2 - 青い線は、トランジスタ密度の上昇に伴う CLB の指数関数的な 増加を示しています。赤い直線は、よりペースが遅い、CLB 間インターコ ネクトの直線的な増加を示しています
(前世代の配線リソースを使用)。
赤い直線と青い曲線の差が急速に広がることに注意してください。赤い 曲線は、UltraScale
アーキテクチャに使用される強化されたローカル
CLB 間インターコネクト方式による配線可能性の向上を示しています。
Programmable デバイス製品ラインを実現するには、どうしても 必要なことでした。 詳細は、ホワイトペーパー『よりスマートで高性能なシステムを実 現するザイリンクスの UltraScale アーキテクチャ』(http://japan. xilinx.com/support/documentation/white_papers/wp434ultrascale-smarter-systems.pdf) を参照してください 。
http://japan.xilinx.com/
9
COVER STORY
も追加しました。 」
ネクト (SSI) テクノロジにより、マルチダイ
セルを搭載した Virtex-7 2000T ではトラ
いずれの UltraScale ファミリも DDR4
テクノロジ全体でダイ間の帯域幅を向上させ
ンジスタ数と FPGA ロジック セル容量の世
メモリをサポートしており、7 シリーズ デバ
る重要な機能強化がなされました。 「SSI は、 界記録を達成しました。Virtex UltraScale
イスで利用できるメモリに比べてデータ レー
非常に大規模なデバイス内で複数のダイがす
XCVU440 では、ザイリンクスは (5,000
トが 40% 向上し、メモリ インターフェイス
べて 1 つのダイとして機能するモノリシック
万 ASIC ゲートに相当する ) プログラミン
の全体的な消費電力は 20% 削減されます。
デバイスの実現を可能にします」と Saban
グ 用 の 440 万ロ ジック セ ル を 搭 載した
Saban に よると、セ キュリティの 面 で は、
は述べています。
20nm デバイスを実現することで、自社の
キーの 保護を強化する機能のほか、より詳
ザイリンクスは、この SSI テクノロジを利
記 録 を 更 新して い ま す。 この デバイス は、
細で高度な認証方式をインプリメントする機
用して、同社が保持していた FPGA の最大
200 億個以上のトランジスタを搭載した世
能が追加されました。また、Vivado ツール
容量と最大 IC トランジスタ数の世界記録を
界で最も高密度の IC でもあります。
スイートはこれらの新しい強化機能をすべて
再び更新しました。
「このレベルの容量のデバイスは、ASIC、
サポートするということです。
ASSP、システム エミュレーションおよび
容量の世界記録を更新 確 か に、20nm UltraScale 製 品 ラ イ
プロトタイプ用に最適であると予想していま
ン の 花 形 と な る の は Virtex UltraScale
トタイプ向け 大 規模 商用ボードの製 造に特
す。 「Kintex UltraScale デバイスは、実際
XCVU440 です。ザイリンクスは、各種の
化したベンダーもありますが、多くの企業は
には性能に関してではなく、実装密度に関し
賞を受賞した 3D スタックド シリコン イン
独自のプロトタイプ システムを構築してお
てのみ「ミッドレンジ FPGA」なのです」と
ターコネクト テクノロジでこのデバイスをイ
り、大 半は自社のプ ロトタイプ用に非 常に
Saban は述べています。
ンプリメントしました。この テクノロジは、 大容量の FPGA を探しています。Virtex-7
最後に、20nm UltraScale デバイスは、
複数のダイを並べて、それぞれのダイが接続
2000T に よ り、 ザイリ ン ク ス は 28nm
ザイリンクスが 7 シリーズで他社に先駆けて
されるシリコン インターポーザー上にインプ
ノード でこの 分 野 の 圧 倒 的 なリー ダー と
採用し、素晴らしい成功を収めた 3D IC テ
リメントします。この手法により、ザイリン
なりました。 「プ ロトタイプ用 途 の 顧 客 は、
クノロジを基盤としています。ザイリンクス
クスは 28nm ノードでムーアの法則を超え
Virtex UltraScale XCVU440 で提供する
の第 2 世代スタックド シリコン インターコ
る容量を実現し、1,954,560 個のロジック
機能をさらに歓迎するはずです」と Saban
Saban は、Virtex UltraScale デバイス と Kintex UltraScale デバイスが同じファ ブリック性 能を共 有してい ると述べていま
す」と Saban は述べています。ASIC プロ
400G OTN Switching
4X4 Mixed-Mode Radio
400G Transponder
100G Traffic Manager NIC
400G MAC-to-Interlaken Bridge
Super-High Vision Processing
2x100G Muxponder
ASIC Prototyping
256-Channel UltraSound
48-Channel T/R Radar Processing
図 3 - ザイリンクス UltraScale デバイスは各種の革新的な次世代 Smarter System に最適です。
10 Xcell Journal 86 号
COVER STORY
は述べています。
じくらい重要なのは、UltraScale デバイス
に、製品の差別化要因となる追加のパケット
が 400G の帯域幅をサポートする能力です。 処理機能にロジックを振り向けることができ
CFP4 を 使 用した 400G 通 信 へ の UltraScale デバイスの利用
次世代の配線方式と ASIC スタイルのクロッ
Saban によると、ザイリンクスは、すべて
る大量のデータ フローをサポートします。 」
のユーザーが次世代の Smarter System を 開発できるように、次世代の機能を提 供す る 20nm UltraScale 製品ラインを入念に 計 画しました ( 図 3)。20nm Kintex およ び Virtex 製品ラインの機能セットは、ネット ワーキング、データ センター、ワイヤレス通 信の各分野の主要アプリケーションに特に適 しています。 現 在、ネットワーキング 業 界には 100G アプリケーションの増設ラッシュが起きてい ます。Saban によると、最 先 端のシステム は既に 100G テクノロジを採用しています。 100G テクノロジは急 速に普及して主 流と
ます」と Saban は述べています。
キングにより、400G システムに必要とされ さらに、Saban によると、Virtex UltraScale デバイスはフラクショナル PLL をサ ポートしているので、デザインに必要とされ る外部電圧制御型発振器の数を減らすこと ができます。 「UltraScale デバイスでは、1 つの VCXO を使用し、ほかの必要な周波数 をすべて内部で生成できます」と Saban は 述べています。 「したがって、 CFP4 光モジュー ルによって得られるコスト削減と省電力効果 以外に、ライン カードそれ自体でシステム統 合による BOM コストと消費電力の削減が可 能です。 」
ワイヤレス通信への UltraScale デバイスの利用 ワイヤレス通信機器業界では、各ベンダー は LTE 機器と LTE Advanced 機器を同時 に展開しながら、より先進的なシステムの開 発にも着手しています。新しいシステムは、 マルチ送信、マルチ受信、およびビームフォー ミング機能を実現する高度なアーキテクチャ の形で登場するに違いありません。 Saban に よ る と、LTE シ ス テム お よ び LTE Advanced システムの中心となる最新 世代のビームフォーミング機器は、一般に 2 個の Virtex-7 X690T FPGA をベースとす るアーキテクチャを利用しています。Virtex-7
に接続するペリフェラル市場にまで拡大して
低コスト、低消費電力の NIC への UltraScale デバイスの利用
います。同時に、ネットワーキング業界の大
現在のクラウド コンピューティング アプリ
せにあります。現在ザイリンクスの顧客は、
手顧客は、既に次世代の 400G 機器やテラ
ケーションの急成長とともに、IT 部門は、さ
Kintex UltraScale デバイスを使って、同じ
ビット機器の開発に取り組んでいます。新し
らに高機能、低消費電力、低コストのデータ
ジョブをより低コストのワンチップ デバイス
い UltraScale デバイスは、現在 100G ソ
センター用コンピューティング リソースを求
で実行できると Saban は述べています。
リューションを 開 発 中 の顧 客にも、先 進 の
めています。x8 Gen3 ブロックを内蔵した
「Kintex UltraScale デバイスは、ミッド
400G テクノロジへの移行を進めている顧
ザイリンクス Virtex-7 XT デバイスは、ほと
レンジのデバイスとして DSP ブロック数が
客にも最適です。
んどの先進データ センター アーキテクチャ
40% 増えています」と Saban は述べてい
ザイリンクスは、第 1 世代の SSI テクノ
の心臓部であるネットワーク インターフェイ
ます。 「またこのデバイスは、前置加算器の二
ロジにより、各種の 賞を 受 賞した Virtex-7
ス カードの中心となる要素として利用されて
乗機能と追加の累算器フィードバック パスを
H580T を開発しました。このデバイスは、
きました。
備えているため、DSP48 の効率向上、式の
CFP2 光モジュールを採用したネットワーク
ネットワ ー ク イン タ ーフェイス カ ード
折り畳み、より効率的な演算が可能です。つ
向けのオンチップ 2x100G トランスポンダ
(NIC) では、PCI Express 側のスループット
まり、UltraScale アーキテクチャでは、2 チッ
の開発に利用されました (Xcell Journal 日
( 出口 ) がイーサネット側のスループット ( 入
プ Virtex クラスのアプリケーションを、48
本語版 79・80 合併号のカバー ストーリー
口 ) に対応している必要があります。 「また、 チャネル処理に対応したワンチップの Kintex
を 参 照。http://issuu.com/xcell-journal-
100G NIC には複数の PCIe® Gen3 統合ブ
KU115 にインプリメントできます」 。Kintex
japanese/docs/xcell_79-80)。
ロックが必要です」と Saban は述べていま
UltraScale KU115 は 5,520 個の DSP ブ
現在では、ザイリンクスの第 2 世代 SSI
す。 「前世代の製品では、これらの要件を満
ロックと 2,160 個の BRAM を備えており、
テ クノ ロ ジ を 利 用 して、 顧 客 は ワ ン チ ッ
たす x8 Gen3 ブロックを内蔵したデバイス
Saban によると「GPU をはるかに上回る業
プ FPGA トランスポンダ ライン カードや
は Virtex-7 XT しかありませんでした。 」
界最高の信号処理性能」を提供します。
CFP4 光モジュールを開発し、さらに素晴ら
現 在 の UltraScale ア ー キ テ ク チ ャで
さらに、ザイリンクスの Vivado Design
しい成果を達成できます。
は、 より 低 コ ストで 低 消 費 電 力 の Kintex
Suite には、クラス最高の高位合成ツールで
「CFP4 モ ジュール へ の 移 行とワン チッ
UltraScale FPGA により、これらと同じ性
ある Vivado HLS ツールが含まれています。
プ FPGA デバイスへ の 400G デザインの
能 要件を 達 成 することが 可能です。Kintex
このツールは、ユーザーがビーム フォーミン
実 装を計画している設 計 者は、いくつか の
UltraScale FPGA は、複数の PCI Express
グやほかの演算量の多いアプリケーション用
理 由 で UltraScale デバイスを 必 要 としま
Gen3 統合ブロックと (7 シリーズではソフ
の複雑なアルゴリズムを効率的にインプリメ
す」と Saban は述べています。 「第 1 に、
ト IP コアで実装されていた ) 統合型 100G
ントできるように協調最適化されています。
UltraScale デバイスは、次世代のチップ間
イーサネット MAC を搭載しています。
ザイリンクスの 20nm UltraScale 製品
インターフェイス (CAUI4) を介して CFP4
「Kintex UltraScale デバイスに NIC をイ
ラインの詳細は、http://japan.xilinx.com/
光モジュールとのインターフェイスをとる多数
ンプリメントすると、ミッドレンジ デバイス
products/technology/ultrascale.html
の 32G トランシーバーを備えています。同
にアプリケーションをインプリメントできる上
をご覧ください。
なっており、デバイスを 100G ネットワーク
X690T FPGA が選ばれた理由は、大量の DSP リソースと BRAM リソースの組み合わ
http://japan.xilinx.com/
11
PROFILES IN XCELLENCE
Kintex-7 FPGA Receiver Mines TV ‘White Space’ for New Comms Services
Kintex-7 FPGA レシーバーで テレビ放送の「ホワイト スペース」を新たな 通信サービスに活用 Mike Santarini Publisher Xcell Journal Xilinx, Inc.
Adaptrum 社は、オープン周波数帯を 利用したサービス向けの完全な伝送 システムを初めて商品化した企業です。 同社の製品はザイリンクス
All Programmable FPGA を 搭載しています。
12 Xcell Journal 86 号
PROFILES IN XCELLENCE
2009 年に米国連邦通信委員会 (FCC) がアナログ テレビ放 送からデジタル放 送へ強制的に移行したことは、多くの人にとっ ては特に重要な出来事ではありませんでしたが、通信サービス プ ロバイダーにとってはビジネスの成長の大きな機会を意味していま した。デジタルへの移行後まもなく、FCC はそれまでデジタル放 送には不要だったアナログ テレビ放送の周波数帯の一部を競売 に付し、通信会社、救急サービスや、ほかの事業体に売却しまし た。しかし競売の実施後、元々 UHF テレビ放送の チャネル 20 以上に割り当てられていた 300MHz 分の無線周波数帯 (400 ~ 700MHz の範囲 ) が売れ残りました。デジタル放送事業者は現 在この帯域のごく一部しか使用していません。 実 に優 良な 周 波 数 帯が 十 分 に 活 用 さ れて い な い という事 実 を 認 識した FCC は、数 年 前から少 数の テクノロジ 業 界大 手 企 業 (Google、Microsoft の Xbox 事 業 部、Samsung、Dell、 Intel、Philips など)と協力して、通信会社とテレビ放送事業者 が 400MHz ~ 700MHz 帯を共有するための現実的な方法の検 討を始めました。この構想は「ホワイト スペース」と呼ばれる周波 数帯、すなわち放送に実際に使用されるチャネルの間の未使用の チャネルを使って、通信会社と放送事業者に新たなモバイル サー ビスを提 供することを促すものでした ( 図 1 を 参照 )。Google や Microsoft などの企業は、このホワイト スペース ( および世界 各国の類似のホワイト スペース周波数帯 ) を使って、Wi-Fi の通 信範囲をより長距離化して電波を安定させたバージョンを実現し、 新たなタイプの通信サービスを提供しようとしています。ザイリン クスの顧客である Adaptrum 社 ( カリフォルニア州サンノゼ ) は、 このような新しいサービスを可能にする完全な商用送信 / 受信シ ステムを初めて発売した機器ベンダーです。 Adaptrum 社の設立者兼 CEO である Haiyun Tang 氏は、 「ホ ワイト スペースは全く新しい市場です」と述べています。「現在の ホワイト スペースは開拓時代の米国西部によく似た状態です。ホワ イト スペースのオープン周波数帯には利用希望者が殺到している 一方、標準はまだ進化の途上にあります。」 この市場が現れたのは比較的最近のことですが、Adaptrum 社 はいち早くそこにチャンスを見出し、長年にわたってホワイト ス ペース通信機器を開発してきました。Tang 氏はカリフォルニア大 学バークレー校でワイヤレス通信の PhD を取得し、コグニティブ 無線テクノロジの開発に専念していた経 歴があります。当初は米 国空軍の SBIR 助成金を受け、2005 年にバークレー校の名誉 教授である Bob Brodersen 氏と共同で Adaptrum 社を設立 しました。それ 以 来、同社はベンチャー資 金を調達しながら目覚 ましい発展を遂げてきました。2008 年から、Adaptrum 社は FCC と協力して TV ホワイト スペースに関するルール制定に参加 し、Google や Microsoft などの各社と協力関係を結びました。 2012 年 4 月、同社は機器ベンダーとして初めて、FCC が承認し た Telcordia データベースと連携して動作する、FCC 認証取得の テレビ周波数帯ホワイト スペース向けの機器を発表しました。現 在同社は、このテクノロジを概念実証から商用化へと進めていま す。2013 年 11 月、Google の TV ホワイト スペース データベー スを使用する Adaptrum 社の ACRS TV ホワイト スペース ソ リューションは、FCC の認証を取得しました。
http://japan.xilinx.com/
13
Amateurs
PROFILES IN XCELLENCE
図 1 – 米国ではホワイト スペースはおおよそ400M~700M の周波数帯に見つかります (上図の青い部分)。 (http://www.ntia.doc.gov/files/ntia/publications/spectrum_wall_chart_aug2011.pdf) このシステムの最 新バージョンは、ザイリ
によると、 「400MHz~700MHz 帯を使用
さはさらに増しました。
ンクス Kintex ® -7 FPGA をベースにしてい
する TV ホワイト スペース機器は、20 メガ
「放送チャネルの数と各チャネルが使用す
ます。
ビットのデータ レートで送信を始めますが、
る周波数は、日ごと、地域ごとに変わります」
ACRS は、ポール、建物の外壁、山などに
数フィート先ではなく数マイル先でもデータ
と Tang 氏は述べています。 「さらに、さま
設置された従 来の基地局クラスターに取り
レートは低下しません。」
ざまな企業がホワイト スペース機器で利用
付け可能 なランチボックス サイズの ベース
Tang 氏の考えでは、Wi-Fi とモバイル サー
できる周波数帯のさまざまな部分を使用して
ユニットと、消費者が自宅に設置する (デス
ビスが利用可能な地域では、サービス プロバ
いるため、機 器には高い柔軟性と確 実性が
クトップ ルーターやモデムとほぼ同じサイズ
イダーが接続を安定させるための追加サービ
求められます。 」
の) 住宅用レシーバーで構成されます (図 2
スとしてこの新しいテクノロジを提供できま
Tang 氏によると、ホワイト スペース機器
を参照)。このシステムにより、サービス プロ
す。一方、農村地域や開発途上国、特に有線
ベンダー各社は、これらの課題に対処するた
バイダーは、6MHz の帯域幅を利用しておよ
ネットワークや衛星ブロードバンド通信の導
め、おもに、次のいずれかの方式を採用した
そ 20 メガビット (1Hz 当たり 3 ビット) の
入が経済的でない地域では、ホワイト スペー
システムを開発しています。データベース ア
接続サービスを提供できます。このサービス
ス方式でメインのデータ サービスを提供する
プローチと呼ばれる第 1 の方式では、プロ
は Wi-Fi ほど高速ではありませんが、通信範
ことも考えられます。
バイダーが ( 米国内のテレビ放送のための )
囲は Wi-Fi よりはるかに長距離です。
伝搬モデルを使用して各放送塔のカバー エ
実用的な商用ソリューションを開発するに
リアの等高線図を決定します。この等高線図
帯域の優れた伝搬特性にあります」と Tang
は、各種規制を遵守した形でホワイト スペー
の外側は、ホワイト スペース通信機器が自由
氏は述べています。「テレビ放 送の電波は樹
スを使 用しながら、現在の消費 者が 期待し
に使用できることになります。
木や 壁 に遮ら れず、山 を 乗り越 えて届 きま
ているコスト水準で 十 分な性 能を保 証しな
センシングと呼ばれる第 2 の方 式 では、
す。従来の Wi-Fi ベースのモバイル サービ
ければなりません。これを実現するために、 どのチャネルが利用可能かを機器がオンザフ
スは、樹 木や壁などの 一 般 的な障害 物に妨
Adaptrum 社は複雑な技術的課題を解決す
げられることがあります。Wi-Fi トランスミッ
る必要がありました。まず Adaptrum 社は、 ホワイト スペース機器はどのチャネルが使用
ターのすぐ近くでは 300 メガビットのデー
同社のシステムが信号の送 受信に使 用する
中でどのチャネルが 使 用されてい ないかを
タ レートを 利 用できますが、トランスミッ
周波数帯が、認可を受けたデジタル放送と全
常に検出し、どのチャネルが通信に利用でき
ターから遠ざかり、数枚の壁で隔てられると、
く干渉しないようにする必要がありました。 るかを判断します。しかし、Tang 氏による
このデータ レートは急 激に数メガビットま
また、放送に使用されていない 400MHz ~
で低下し、接続が途切れることもあります。
700MHz 帯の一部は、スポーツ イベント、 を取得している手法はデータベース方式のみ
400MHz~700MHz 帯の電波ははるかに
教会、ナイトクラブなどで使用されるワイヤ
です。 「FCC はセンシング方式に基づいたホ
安定しています。この帯域の優れた伝搬特性
レス マイクや、MRI のように電波を使用す
ワイト スペース 機器をまだ完全にテストして
により、私たちは通信範囲が最大 5 マイルの
る医療機器など、ほかの機器によってランダ
おらず、100% の信頼性を検証していない
機器を提 供できます。」その結果、Tang 氏
ムに占有されている可能性があるため、複雑
ため、現時点ではデータベース方式がデフォ
波数帯を放送用に選んだ理由の 1 つは、この
FCC からテレビ 放 送データを毎日収 集し、
法令遵守と性能の確保
「放送事業者が 1950 年代にこの無線周
14 Xcell Journal 86 号
ライで自律的に検出します。この方式では、
と、現時点で FCC によって検証され、認証
PROFILES IN XCELLENCE
ルトの手法になっています」と Tang 氏は述
表されているこの標準 の通信 範囲は最小で
軟性に優れた Kintex-7 All Programmable
べています。
も 10 マイル、最大データ レートは 6MHz
FPGA を 使 用しています。刻々と変 化する
Adaptrum 社のシステムはデータベース
の帯域幅で 20 メガビット (1Hz 当たり 3
設計仕様に応じてデバイスのデザインを変更
方 式を採用しており、毎 朝 各 基 地 局は、特
ビット ) です。 」一方、これと競合する IEEE
し、標準が確定した段階でデザインをさらに
定の日に各ローカル局が 放 送に使 用する周
標準 (802.11AF) は、TV ホワイト スペー
調整できる機能は、私たちには本当に有益で
波 数 帯に関する更 新されたデータベースを
スを従来の Wi-Fi 運用に使用しようとするも
す」と Tang 氏は述べています。
( たとえば米国市場向けには FCC から ) ダ
のです。 「まだ初期段階であり、どの標準が
Tang 氏によると、Kintex-7 FPGA では
ウンロードします。
市場に採用されるかを確実に予想できる人は
最大限に再プログラムが可能なため、このデ
FCC は、データベース サービス プロバ
誰もいません」と Tang 氏は述べています。 バイスの柔軟性はサービス プロバイダーに
イダーとして Telcordia (Ericsson)、Spec- 「しかし、ホワイト スペースが提供する通信
システムを売り込む際に役立つはずです。そ
trum Bridge、最近では Google など少数
範囲と、大 都市圏の 外側ではさらに広い周
れは、サービス プロバイダーがホワイト ス
の企業のみを認定しています。Google は、 波 数帯が利用可能であるという事 実のため
ペース 通 信 サービ スを顧 客に販 売した後で
同 社のサービ スを世界 中でより広く利 用で
に、ホワイト スペースへの期待は高まってい
も、この FPGA は再プログラムとアップグ
きるようにする手段として TV ホワイト ス
ます。」
レードが可能であるからです。システムを現
ペースを利用したいようです (http://www.
サービス プロバイダーの形成は初期段階
場でアップグレードできるので、通信事業者
google.org /spectrum /whitespace/
であり、標 準 もまだ 策 定 中であるため、現
は長期にわたってオンザフライでの機能の追
channel/ を参照 )。
時点でホワイト スペース機器 ( トランスミッ
加や強化が可能です。このようにして、通信
また、ホワイト スペースの最 適な使 用方
ターおよびレシーバー ) を 開 発してい る企
事業者は「より高い価値のプランを顧客に販
法を定義する多くの新しい標準が策定され、 業はわずか数社 ( 大半は新興企業 ) にすぎ
売するか、または既存のプランにサービスを
互 い に 競 合 して い ま す。 た と え ば、IEEE
ません。しかし、Adaptrum 社は他社の 一
追 加するか」の機 会を手に入れます。 「この
802.22 はリージョナル エリア ネットワー
歩先をリードしているようです。その理由の
プラットフォームは、固定されたハードウェ
クの標準を定義するものです。 「その目標は、 1 つは、同社がザイリンクスの 7 シリーズ
ア ソリューションよりもはるかに大きな価値
従来の Wi-Fi よりも長距離の接続を提供す
FPGA を採用していることです。 「Adaptrum
をもたらすことを実感しています」と Tang
ることです」と Tang 氏は述べています。 「公
社のトランシーバー ソリューションには、柔
氏は述べています。
図 2 – ACRS 2.0 は、戸外での使用を想定して密閉して耐久性を高めた、アルミニウム製のシェル構造を備えています。 この機器はポールまたは壁に取り付け可能で、イーサネット ケーブルを介して電源が供給されます。
http://japan.xilinx.com/
15
ASK FAE-X
Median Filter and Sorting Network for Video Processing with Vivado HLS
Vivado HLS ツールを使用した ビデオ処理用の Median フィルターと ソーティング ネットワーク Daniele Bagni DSP Specialist Xilinx, Inc. daniele.bagni@xilinx.com
16 Xcell Journal 86 号
ASK FAE-X
Vivado ツールの
自動車からセキュリティ システムやハンドヘルド機器に至るまで、
高位合成機能は、
す。これらの製品は世代ごとに機能の強化と画質の向上が要求さ
エンベデッド ビデオ
はありません。筆者は DSP デザインを専門とするザイリンクスの
アプリケーション用 ソーティング ネット ワークのデザイン向上を 支援します。
内蔵ビデオ機能を採用するアプリケーションの数は増え続けていま れますが、設計チームにとって、優れた画質を実現するのは簡単で フィールド アプリケーション エンジニアとして、 効果的なビデオ フィ ルタリングのための IP コアおよび手法についてしばしば質問を受 けています。新しい Vivado ® Design Suite の高位合成 (HLS) 機 能を使用すれば、ソーティング ネットワークをベースとした非常に 効果的な Median フィルタリング手法を、どのザイリンクス 7 シ リーズ All Programmable デバイスにも簡単にインプリメントでき ることがわかりました。 この手法を詳しく説明する前に、イメージに生じるノイズに関し て設計者が直面する問題と、こうした問題の解決に使われる一般的 なフィルタリング手法について検討します。 デジタル イメージのノイズは、一般的にシステムがイメージの取 り込みまたは送信を実行しているときに発生します。たとえば、ス キャナーまたはデジタル カメラのセンサーや回路が各種のランダム ノイズを発生することがあります。通信チャネルのランダム ビット エラーまたはアナログ デジタル コンバーターのエラーは、 「インパ ルス性ノイズ」と呼ばれる特に厄介なタイプのノイズの原因となりま す。この種のノイズは、イメージの表面のランダムな白または黒の 点としてディスプレイ上に現れ、画質の深刻な低下を招くため、 「ソ ルト&ペッパー ノイズ ( ごま塩ノイズ )」とも呼ばれます ( 図 1)。 ビデオ技術者は、イメージのノイズを軽減するため、通常はデザ インに空間フィルターを適用します。これらのフィルターは、イメー ジ内のレンダリング状態の良くないピクセルを、そのノイズ ピクセ ルの周囲のピクセルの良好な特性または値によって置き換え、また は強化します。 空間フィルターには、 主に線形フィルターと非線形フィ ルターの 2 種類があります。最もよく使用される線形フィルターは、 平均フィルターと呼ばれます。このフィルターは、 各ピクセルの値を、 隣接するピクセルの平均値で置き換えます。この方法では、レンダ リング状態の良くないピクセルは、イメージ内のほかのピクセルの 平均値に基づいて改善されます。平均フィルタリングは、ローパス 手法を使用して非常に迅速にイメージのノイズを除去します。この 処理は高速ですが、しばしばイメージ全体の境界がぼやけるという 副次的効果を伴います。 ほとんどの場合、線 形 平均フィルタリングの 代 替 手段として非 線形フィルタリング手法を使用すると効果的です。非線形フィルタ リングは、インパルス性ノイズの除去に特に優れています。最もよ く使用される非線形フィルターは、順序統計フィルターと呼ばれる ものです。非線 形順 序統 計フィルタリングの最も一 般的な手法が Median フィルターです。 Median フィルターは優れたノイズ リダクション効果を持ち、同 じサイズの線形スムージング フィルターに比べてイメージがぼやけ ることがずっと少ないため、ビデオ / 画像処理に広く使用されてい ます。平均フィルターと同様に、Median フィルターはイメージ内 の各ピクセルを順に検討し、隣接するピクセルを調べて、当該ピク セルが周囲のピクセルを代表しているかどうかを判断します。ただ し Median フィルターは、ピクセルの値を隣接するピクセルの平均
http://japan.xilinx.com/
17
ASK FAE-X
図 1 – インパルス性ノイズの影響を受けた入力イメージ。壊れたピクセルはわずか 2% ですが、画質の深刻な低下を招くには十分です。
図 2 – 3x3 の Median フィルター適用後の同じイメージ。インパルス性ノイズは完全に除去されています。
18 Xcell Journal 86 号
ASK FAE-X
図 3 – 5 つの入力サンプルのソーティング ネットワークのブロック図。 大きなブロックは (1 クロック サイクルのレイテンシを持つ) コンパレータで、小さなブロックは遅延要素です。 値で置き換える代わりに、隣接するピクセル の中央 値で置き換えます。中央 値は必ず隣 接するいずれかのピクセルの値になるため、 Median フィル ター は 境 界 をまたぐときに 新しい非現実的なピクセル 値を生 成しない ので、境界がぼやけるという平均フィルター の副次的効果を回避できます。この理由で、 Median フィル ターは、鋭い 境 界 を維 持す る能力でほかのフィルターよりはるかに優れ ています。Median フィルターは、中央値を 計算する際に、まず周囲のウィンドウから得 られるすべてのピクセルを数値の順に並べ替 え、次に検討中のピクセルを中央ピクセル値 で置き換えます ( 検討中の隣接領域に偶数 のピクセルが含まれる場合は、2 つの中央ピ クセル値の平均を使用します )。 たとえば、次の 値 を持 つ 3x3 ピクセ ル ウィンドウの中心に、値 229 のピクセルが あるとします。 39
83 225
5 229 204 164
61
57
これら のピクセ ル を 値 の 順 に 並 べ ると、 ソートされたリスト 5 39 57 61 83 164 204 225 229 が得られます。 したがって、中央値は中央の値、すなわち 83 です。出力イメージ内では元の値 229 はこの値で置き換えられます。図 1 のノイ ズの多いイメージに 3x3 の Median フィル ターを適用したときの効果を図 2 に示しま す。フィルターが適用されるピクセルの周囲 のウィンドウが大きいほど、フィルタリング の効果は明瞭になります。
#define KMED 3 // KMED can be 3, 5, 7, Ö #define MIN(x,y) ( (x)>(y) ? (y) : (x) ) #define MAX(x,y) ( (x)>(y) ? (x) : (y) ) #ifndef GRAY11 typedef unsigned char pix_t; // 8-bit per pixel #else #include <ap_int.h> typedef ap_int<11> pix_t; // 11-bit per pixel #endif pix_t median(pix_t window[KMED*KMED]) { #pragma HLS PIPELINE II=1 #pragma HLS ARRAY_RESHAPE variable=window complete dim=1 int const N=KMED*KMED; pix_t t[N], z[N]; char i, k, stage; // copy input data locally for (i=0; i<KMED*KMED; i++) z[i] = window[i]; // sorting network loop for (stage = 1; stage <= N; stage++) { if ((stage%2)==1) k=0; if ((stage%2)==0) k=1; for (i = k; i<N-1; i=i+2) { t[i ] = MIN(z[i], z[i+1]); t[i+1] = MAX(z[i], z[i+1]); z[i ] = t[i ]; z[i+1] = t[i+1]; } } // end of sorting network loop // the median value is in location N/2+1, // but in C the address starts from 0 return z[N/2]; } // end of function 図 4 – C で記述されたソーティング ネットワークによる Median フィルターの インプリメンテーション
http://japan.xilinx.com/
19
ASK FAE-X
Median フィルターはノイズ リダクション
計する簡単で効果的な手法を利用できるこ
ソーティング ネットワークとは
機能が優れているため、たとえばインタレー
とをユーザーに伝えています。Vivado HLS
配列の要素を昇順または降順になるよう
ス方 式のビデオ信号でフィールド レートを
ツール [3] を使用すると、Zynq® -7000 All
に並べ替えるプロセスは、ソーティングと呼
50Hz から 100Hz に変換するための動き
Programmable SoC [4] の FPGA ファブ
ばれます。ソーティングは、多くのエンベデッ
補償インターポレーターや、インタレース方
リック上でリアルタイム性能を実現できます。
ド コンピューティング システムで最も重要な
式からプログレッシブ方式への変換時のエッ
次のレッスンでは、イメージ フォーマットは
操作の 1 つです。
ジ指向インターポレーターなど、ビデオ ス
8 bpp ( ピクセル当たりのビット数 )、1 行
ソー ティング は 非 常に多くのアプリケー
キャンレート変換システムの補間段階にも広
当たり 1,920 ピクセル、1 フレーム当たり
ションで重要な役割を果たしているので、バ
く使用されています。Median フィルターの
1,080 行 ( フレーム レート 60Hz) としま
ブルソート、シェルソート、マージソート、ク
詳細な解説をご希望の方は、[1] および [2]
す。したがって、最小ピクセル レートは少な
イックソートなど、よく知られたソーティン
を参照してください。
くとも 124MHz です ( 正 確には、1,920
グ手法の複雑性と速 度を分析した科学論文
Median フィルターの導入で最も重要な手
x 1,080 x 60 = 124.416MHz)。したがっ
は多数存在します。クイックソートは大量の
順は、生成される出力ピクセルごとにソート
て、実際には 124MHz を多少上回るクロッ
データ セットの処理に最適な最も高速のアル
されたピクセルのリストを作成するのに使用
ク レートであれば十分なのですが ( 実際の
ゴリズムであり [5]、バブルソートは最も簡
されるランキング手法です。ソーティング プ
ビデオ信号にはブランキング データも含ま
単なアルゴリズムです。通常、これらのすべ
ロセスには、多くの演算クロック サイクルが
れているため、クロック レートの要件は、ア
ての手法は RISC CPU 上でソフトウェア タ
必要です。
クティブ ピクセルのみによって要求されるク
スクとしての実行が想定され、一度に 1 つ
Vivado Design Suite では高位合成機能
ロック レートよりも高くなります )、ある種
だけの比較演算を実行します。これらのワー
が提供されています。したがって筆者は、ソー
の設計上の課題を確定するために、Vivado
クロードは一定ではなく、入力データが既に
ティング ネットワークと呼 ばれる考え 方に
HLS ツールのターゲット クロック周波数を
どの程度部分的に順序付けられているかに依
基づいて C 言語で Median フィルターを設
200MHz に設定します。
存します。たとえば、N 個のサンプル セット を順序付けるとすると、クイックソートの演
#define MAX_HEIGHT 1080 #define MAX_WIDTH 1920 #define KKMED 1 // KKMED == 1 for 3x3 window void ref_median(pix_t in_pix[MAX_HEIGHT][MAX_WIDTH], pix_t out_pix[MAX_HEIGHT][MAX_WIDTH], short int height, short int width) {
算の複雑性は、ワーストケース、平均的ケー ス、ベストケースのシナリオで、それぞれ N2、 NlogN、NlogN になります。一方、バブルソー トでは、複雑性はそれぞれ N2、N2、N にな ります。複雑性の数値に関する見解が統一さ れていないことは認めざるを得ません。しか
short int r, c; //raw and col index pix_t pix, med, window[KMED*KMED]; signed char x, y;
し、筆者がこのテーマで読んだすべての論文
L1:for(r = 0; r < height; r++) { #pragma HLS LOOP_TRIPCOUNT min=600 max=1080 avg=720
いるようです。このこと自体、代替的な手法
L2:for(c = 0; c < width; c++) { #pragma HLS LOOP_TRIPCOUNT min=800 max=1920 avg=1280 #pragma HLS PIPELINE II=1
if ( (r>=KMED-1)&&(r< height)&& (c>=KMED-1)&&(c<=width) ) { for (y=-2; y<=0; y++) for (x=-2; x<=0; x++) window[(2+y)*KMED+(2+x)]=in_pix[r+y][c+x]; pix = median(window); } else pix = 0; if(r>0 && c>0) out_pix[r-KKMED][c-KKMED] = pix; } // end of L2 } // end of L1
} // end of function
は、ソーティング アルゴリズムの複雑性の計 算は容易ではないという点で意見が一致して を探すべき十分な根拠になりそうです。 イメージ処理中に出力画像を一定のスルー プットで生成するには、ソーティング手法内 で確定的動作が必要です。したがって、上記 のアルゴリズムは、どれも Vivado HLS ツー ルを使用した FPGA デザインの候補として は不適当です。 ソーティング ネットワークは、並列実行を 使 用して実 行時間の高速化を実現する方法 です。ソーティング ネットワークの基本的ビ ルディング ブロックはコンパレータです。コ ンパレータは、2 つの数値 (a および b) を ソートして、最上位の出力に最大値、最下位 の出 力に最小値を出 力し、必要に応じてス ワップを実行する簡単なコンポーネントです。 古典的なソーティング アルゴリズムに対する ソーティング ネットワークの利点は、与えら
図 5 – ビデオ ライン バッファーの動作を考慮に入れない、最初の Vivado HLS コード
20 Xcell Journal 86 号
れた数の入力に対してコンパレータの数が固
ASK FAE-X
定されていることです。したがって、FPGA のハードウェアにソーティング ネットワーク をイン プリメントする の は 簡 単で す。図 3 に、(Xilinx System Generator [6] で 設 計された ) 5 つの入力サンプルのソーティン グ ネットワークを示します。入力サンプルの 値にかかわらず、処理遅 延はちょうど 5 ク ロック サイクルであることに注意してくださ い。また、右側の 5 つの並列出力信号には ソートされたデータが含まれ、最上位の信号 に最 大値、最下位の 信号に最小値が出力さ れていることに注意してください。 図 4 のコードに示すように、ソーティン グ ネットワークを使 用した Median フィル ターを C 言 語でインプリメントするのは簡 単です。Vivado HLS の指示子は C コード それ自体に埋め込まれています (#pragma HLS)。Vivado HLS ツールが最 適な RTL コードを生 成するには、2 つの最 適化指示 子が必要です。第 1 の指示子は、出力ピク セル レートと FPGA のクロック レートを一 致させるために、関数全体をパイプライン化 して初期化インターバル (II) を 1 にします。 図 6 – Vivado HLS ツールによる、基本的なリファレンス Median フィルターの性能の推定値 (実質的にトップレベルの関数として使用した場合)。スループットは最適にはほど遠いレベルです。
第 2 の最適化指示子は、個別のレジスタに 収まるようにピクセ ル ウィンドウを再 構 成 し、一度に並列ですべてのデータにアクセス できるようにして帯域幅を向上させます。
トップレベルの関数
Median フィルターの基本的インプリメン テーションを図 5 のコード セグメントに示 します。このコードをリファレンスとして使 用します。任意のクロック サイクルで 1 つ の出 力ピクセルを生 成 するために、最も内 側 のル ープ はパイプライン化 されます。レ イテンシの 推 定値を 示すレポートを生 成 す るには、ル ープ L1 および L2 の反復の回 数 は「 制 限 さ れて い な い」ため、これら の (TRIPCOUNT 指 示子を使って ) 可能 な反 復の回数を Vivado HLS コンパイラに指示 する必要があります。つまり、このデザイン が実行時に 1,920x1,080 ピクセルの最大 許容解像 度 以下のイメージ解像 度を処理で きるとすると、L1 および L2 ループの上限 が ( コンパイル段階ではわかっていない ) 画 像の高さと幅になります。 この C コードでは、フィルターが適 用さ れるピクセル ウィンドウはイメージ内の異な る複 数の 行にアクセスします。したがって、 図 7 – Vivado HLS ツールによる、トップレベルの Median フィルター関数の性能の 推定値。フレーム レートは 86.4 Hz で、必要な性能を上回っています。
メモリの局 所 性を 利 用して必 要なメモリ帯
http://japan.xilinx.com/
21
ASK FAE-X
域 幅を抑えられるメリットは制限されます。
void top_median(pix_t in_pix[MAX_HEIGHT][MAX_WIDTH], pix_t out_pix[MAX_HEIGHT][MAX_WIDTH], short int height, short int width) { #pragma HLS INTERFACE ap_vld register port=width #pragma HLS INTERFACE ap_vld register port=height #pragma HLS INTERFACE ap_fifo depth=2 port=out_pix #pragma HLS INTERFACE ap_fifo depth=2 port=in_pix short int r, c; //row and col index pix_t pix, med, window[KMED*KMED], pixel[KMED]; static pix_t line_buffer[KMED][MAX_WIDTH]; #pragma HLS ARRAY_PARTITION variable=line_buffer complete dim=1 L1:for(r = 0; r < height; r++) { #pragma HLS LOOP_TRIPCOUNT min=600 max=1080 avg=720 L2:for(c = 0; c < width; c++) { #pragma HLS LOOP_TRIPCOUNT min=800 max=1920 avg=1280 #pragma HLS PIPELINE II=1 // Line Buffers fill for(int i = 0; i < KMED-1; i++) { line_buffer[i][c] = line_buffer[i+1][c]; pixel[i] = line_buffer[i][c]; } pix = in_pix[r][c]; pixel[KMED-1]=line_buffer[KMED-1][c]=pix; // sliding window for(int i = 0; i < KMED; i++) for(int j = 0; j < KMED-1; j++) window[i*KMED+j] = window[i*KMED+j+1]; for(int i = 0; i < KMED; i++) window[i*KMED+KMED-1] = pixel[i]; // Median Filter med = median(window);
if v( (r>=KMED-1)&&(r<height)&& (c>=KMED-1)&&(c<=width) ) pix = med; else pix = 0; if(r>0 && c>0) // KKMED == 1 for 3x3 window // KKMED == 2 for 5x5 window out_pix[r-KKMED][c-KKMED] = pix;
} // end of L2 loop } // end of L1 loop } // end of function
Vivado HLS ツールはこのようなコードの 合成が可能ですが、図 6 に示すように、最 適なスル ープットは得られません。Vivado HLS コンパイラによって自動的に最も内側 のル ープ L2 が 完 全にアンロールされる結 果として、ループ L1_L2 の初期化インター バルは (1 クロック サイクルではなく ) 5 ク ロック サイクルになるため、これによって得 られる出力データ レートではリアルタイム性 能は得られません。このことは関数全体の最 大レイテンシからも明らかです。5 ナノ秒の ターゲット クロック周期では、出力イメージ の計算に必要なサイクル数は 10,368,020 になり、60Hz を大きく下回る 19.2Hz の フレーム レートに相当します。[7] で詳しく 説明しているように、Vivado HLS ツールは 新しいメモリをユーザー コードに自動的には 挿入しません。したがって、 Vivado HLS ツー ルのユーザーは、RTL を生成する C 言語モ デルにビデオ ライン バッファーの動作を明 示的にコーディングする必要があります。 新しいトップレベル関数の C コードを図 8 に示します。現在のピクセルの座標 (row, column) が in_pix[r][c] として示されるとす ると、フィルターが適用される座標 (r-1, c-1) の出力ピクセルの周囲に、スライドするウィ ンドウが作成されます。ウィンドウ サイズが 3x3 の場合、結果は out_pix[r-1][c-1] にな ります。ウィンドウ サイズが 5x5 の場合は出 力ピクセルの座標は (r-2, c-2) になり、7x7 の場合は (r-3, c-3) になることに注意してく ださい。静 的 配 列 line_buffer は、Median フィルター内の垂直サンプルと同じ数 ( この 場合は 3) の KMED ビデオ ラインを格 納 しま す。Vivado HLS コンパイラ は、C の static キーワードがあるため、この配列を 1 つの FPGA デュアルポート ブロック RAM (BRAM) 要素に自動的にマッピングします。 わずかな HLS 指示子を使用するだけでリ アルタイム性能を実現できます。任意のクロッ ク サイクルで 1 つの出力ピクセルを生成する ために、最も内側のループ L2 はパイプライ ン化されます。入力イメージ配列 in_pix と出 力イメージ配列 out_pix は、FIFO ストリー ミング インターフェイスとして RTL にマッピ ングされます。line_buffer 配列は分割され て個別の KMED 配列となり、Vivado HLS コンパイラは各配列を個別のデュアルポート
図 8 – ビデオ ライン バッファーの動作を考慮に入れた、新しいトップレベルの C コード
22 Xcell Journal 86 号
BRAM にマッピングします。これにより、利
ASK FAE-X
用可能なポート数が増えるため、ロード / ス トア操 作 の 数 が増えます ( 各デュアルポー ト BRAM は 1 サイクル当たり 2 つのロー ド またはストア 操 作 を 実 行 可能 )。図 7 に Vivado HLS ツールのパフォーマンス推定レ ポートを示します。今回の最大レイテンシは 2,073,618 クロック サイクルです。5.58ns の推定クロック周期では、86.4Hz のフレー ム レートが得られます。この値は必要なレー トを上回っています。ループ L1_L2 は望んだ とおりに II=1 を示しています。KMED ライ ン バッファー メモリを格納するのに 必要な 2 個の BRAM に注目してください。
高位合成によるアーキテクチャの検討
筆者の意見では、Vivado HLS ツールの 優れた機能の 1 つは、HLS ツールの最 適 化指示子または C コードそれ自体を変更す ることで、さまざまなデザイン アーキテク チャや性能のトレードオフを創造的かつ自由 に検討できることです。どちらの操作も非常 に簡単であり、短時間で行えます。 Median フィルターのウィンドウをもっと 図 9 – Vivado HLS ツールによる、スタンドアロン Median フィルター関数の性能の 推定値の比較 (ウィンドウ サイズが 3x3、5x5、7x7 の場合)
大きくしたい場合は、どうすればいいでしょ う。たとえば、3x3 の 代 わりに 5x5 が必 要な場合は、C コードの KMED の定 義を 「3」から「5」に変更し、Vivado HLS ツー ルをもう一度実行します。図 9 に、Vivado HLS ツールによるスタンドアロン Median フィル ター ル ー チン の 合 成 の 比 較レ ポー ト ( ウィンドウ サイズが 3x3、5x5、およ び 7x7 の 場 合 ) を 示しま す。 どの サイズ でもル ーチンは完 全にパイプライン化され (II=1)、ターゲット クロック周期を満たしま す。一方、ソーティング ネットワークの動作 から予想されるように、レイテンシはそれぞ れ 9、25、および 49 クロック サイクルで す。明らかに、ソートされるデータの量が 9 から 25、さらに 49 に増えるため、それに 従ってリソース使用量 ( フリップフロップお よびルックアップ テーブル ) も増加します。 このスタンドアロン関数は完全にパイプラ イン化されているためトップレベル関数のレ イテンシは変化しませんが、ウィンドウ サイ ズを大きくするとクロック周波数は多少低下 します。 ここまで Zynq-7000 All Programmable SoC をターゲット デバイスとして使用する場 合についてのみ説明してきましたが、Vivado
図 10 – Vivado HLS ツールによる、3x3 のトップレベル関数の比較レポート (7Z02 デバイス上での 11 ビット イメージの処理と 7K325 デバイス上での 8 ビット イメージの処理)
HLS ツールを使用すると、ほかのターゲット
http://japan.xilinx.com/
23
ASK FAE-X
デバイスを同じプロジェクトで簡単に検討で
参考資料
きます。たとえば、Kintex -7 325T を使用
1. “Weighted Median Filters: a Tutorial,” Lin Yin, Ruikang Yang, M. Gabbouj, Y. Nuevo, in IEEE Transactions on Circuits and Systems II, Analog and Digital Signal Processing, Volume 43, Issue 3, March 1996, pp 157-192
®
した場合、同じ 3x3 の Median フィルター デザインを 合成 すると、2 個の BRAM、1 個の DSP48E、1,323 個のフリップフロッ
Get on Target
プ、705 個のルックアップ テーブル (LUT)
2. “Adaptive Window Multistage Median Filter for Image Salt-and-Pepper Denoising,” Weiyang Mul, Jing Jin, Hongqi Feng, Qiang Wang, in Proレートおよびデータ レートは 403MHz にな ceedings of 2013 IEEE International Instrumenります。一方、Zynq SoC を使用した場合は、 tation and Measurement Technology Conference 2 個の BRAM、1 個の DSP48E、751 個 (I2MTC), May 2013, pp 1535-1539
の 配 置 配 線リソース が 使 用され、クロック
のフリップフロップ、653 個の LUT が使用 され、クロック レートおよびデータ レートは 205MHz になります。 最後に、( サンプル当たり 8 ビットの代わ りに ) サンプル当たり11 ビットのグレー イ メージを処理する 3x3 Median フィルター のリソース使 用 量を確 認 するには、任 意の ビット幅の固定小数 点の 数を指 定する ap_ int C++ クラスを適用することにより、pix_ t データ型の定義を変更します。C のプリプ ロセッシング シンボル GRAY11 を有効にし て、このプロジェクトを再コンパイルする必 要があります。この場合、Zynq SoC 上の 推 定リソース使 用量は、4 個の BRAM、1 個の DSP48E、1,156 個のフリップフロッ プ、1,407 個 の LUT に なりま す。 図 10 に後半の 2 つ (11 ビットと 8 ビット ) の合 成例の推定レポートを示します。
作業時間はわずか数日
3. “Vivado Design Suite User Guide: High-Level Synthesis,” UG902 (v2013.2), June 2013 4. “Zynq-7000 All Programmable SoC: Technical Reference Manual,” UG585 (v1.6.1) September 2013 5. S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, W. H. Press, Numerical Recipes in C, the Art of Scientific Computing, Cambridge University Press, 1992, second edition, ISBN 0 521 43108 5 6. “Vivado Design Suite User Guide: Model-Based DSP Design Using System Generator,” UG897 (v2013.2), June 2013 7. F.M. Vallina, “Implementing Memory Structures for Video Processing in the Vivado HLS Tool,” XAPP793 (v1.0), September 2012
Daniele Bagni は DSP のスペシャリストであり、 イタリア、ミラノのザイリ ンクス EMEA に FAE と して勤務しています。ミ ラノ工 科 大 学 で量 子エ
筆者らは、さまざまなウィンドウ サイズお
レ クト ロ ニクスの 学士
よびさまざまな bpp ( ピクセル当たりのビッ
号を取得後、フィリップ
ト数 ) を指定して、Median フィルターのタ
ス研 究 所 に 7 年 間 勤 務し、 リアル タイム
イミングとエリアの推定値をどの程度簡単に
デジタル ビデオ処理 ( 主にフィールドレート
生成できるかを確認してきました。特に 3x3
アップコンバーターの動き推定 ) の研究に携
( または 5x5) Median フィル ター の 場 合、 わりました。次の 9 年間は STMicroelectroVivado HLS ツールによって自動的に生成さ
nics 社の R&D 研究所でプロジェクト リー
れる RTL が消費する Zynq SoC デバイス
ダーを勤め、VLIW アーキテクチャ エンベ
(-1 スピード グレード ) 上のエリアはわずか
デッド DSP プロセッサ向けのビデオコーディ
です。配置配線後の FPGA クロック周波数は
ング アルゴリズムの開発と最適化に取り組む
206MHz (5x5 バージョンでは 188MHz)、 傍ら、ミラノ州立大学の客員教授としてマル
実効データ レートは 206MSPS (5x5 バー
チメディア情報コーディングの講座を担当し
ジョンでは 188MSPS) になります。
ました。2006 年、彼はミラノのザイリンク
これらの 結果を得 るためのデザインの 総
ス セールス オフィスに入社しました。彼の
所要時間はわずか 5 作業日でした。これら
仕事における最も大きなやりがいは、顧客に
の時間の大半は、Vivado HLS ツールそれ
フィージビリティ スタディ ( 実現可能性の研
自体の実 行にではなく、MATLAB ® モデル
究 ) を提供しながら、多岐にわたる DSP の
と C モデルの構築に費やされました。HLS
アプリケーションと問題点を研究することで
ツールの実行にかかった時間は 2 作業日以
す。プライベートな時間はテニスとジョギン
下でした。
グを楽しんでいます。
24 Xcell Journal 86 号
パートナーの皆様 貴社の製品・サービスを Xcell journal 誌上で PR してみませんか? Xcell Journal は
プログラマブル デジタル システム開発者へ ザイリンクスおよびエコシステム製品の最新情報を はじめ、システム/アプリケーションの解説、 サービス/サポート情報、サードパーティー各社の 製品情報などをお届けしています。 現在では日本各地の 10,000 名を超える幅広い
分野のエンジニアの皆様に愛読いただいており ザイリンクスの Webサイトから、無償でダウンロード または iPad 対応デジタル版が購読できます。
貴社製品/ソリューションのプロモーションに 非常に効果的なメディアです。
広告掲載に関するお問い合わせ先 Xcell Journal 日本語版への広告出向に関するお問い合せは E-mail にてご連絡下さい。
有限会社 エイ・シー・シー
sohyama@acc-j.com
Xcell Journal を拡充。 新たに Daily Blog を追加
ザイリンクスは、数々の受賞歴がある Xcell Journal をさらに拡充し、エキサイティングな
Xcell Daily Blog(英文)を始めました。このブログでは、コンテンツを頻繁に更新し、 技術者の皆様がザイリンクスの製品とエコシステムの多岐にわたる機能が活用でき、
All Programmable システムおよび Smarter System の開発に役立つ情報を提供します。
Recent(最近の記事) n
W ant the Real Skinny on Commercial 3D ICs? Xilinx’s Vincent Tong Forecasts The Future on 3DInCites
n
S emiWiki’s Luke Miller: FPGA Training is the Key to Success. Xilinx and the Free University of FPGA
n
F ast-Booting Linux on the Zynq SoC: The 13.5-second Excitement (+/- a hundred msec or so)
n
Z ynq-7100 All Programmable SoC Voted “Best FPGA” by readers of Electronic Engineering & Product World in China
n
Z ynq-based ZedBoard + CMOSIS Super35 Image Sensor + Apertus Engineering = Axiom Open 4K Cinema Camera
ブログ : www.forums.xilinx.com/t5/Xcell-Daily/bg-p/Xcell
X P L A N AT I O N : F P G A 1 0 1
Ins and Outs of Creating the Optimal Testbench
最適なテストベンチ作成の ノウハウ
26 Xcell Journal 86 号
XPLANANTION: FPGA 101
RTL モジュールや FPGA が 要件に適合することを検証するのは 手間がかかりますが、 このプロセスを最適化して確実に 成功させる方法があります。
FPGA や RTL モジュールの検証は時間のかか るプロセスです。検証エンジニアは、仕様の要件 と ( モジュールの不具合を引き起こす可能性のあ る ) コーナー ケースの両方について、デザインが 適切に機能することを確認する必要があります。こ の検証は従来、テストベンチ ( デザインのテスト用 に作成されるファイル ) を使って行われてきました。 しかし、テストベンチは扱い方によって簡単にも複 雑にもなります。本稿では、テストベンチをできる だけ簡単に、最大限に活用する方法について説明 します。
検証とは 検証とは、UUT (Unit Under Test) がデザイン 要件と仕様を満たし、意図した目的に適合すること を確認する作業です。通常、プロジェクトを先入観
Adam P. Taylor Head of Engineering - Systems e2v aptaylor@theiet.org
なく検討できるように、検証は設計チームとは別の チームが行います。したがって、UUT のデザイン と検証は別の技術者が担当するのが普通です。 最近の FPGA デザインは大規模で複雑なため、 UUT の性能が仕様に適合することを確認するには かなりの労力が必要です。したがって、エンジニア リング チームは、プロジェクトの開始時に検証戦 略を決めておく必要があります。選択肢には、次の 戦術の組み合わせが含まれます。 ●
論理シミュレーションのみ : この手法は、デザイ ンが適切に機能するかをチェックします。
●
論理シミュレーションとコード カバレッジ : この 手法は、デザインが適切に機能することと、デザ イン内のすべてのコードがテストされていること をチェックします。
●
ゲートレベルのシミュレーション : この手法は、 上記の手法と同じようにデザインの機能をテス トします。インプリメントされた最終的なデザイ ンからのタイミング情報でバックアノテートされ る場合、このタイプのシミュレーションの実行に は長時間かかることがあります。
●
静的タイミング解析 : この手法は、最終的なデザ インを解析し、モジュールがタイミング性能を達 成していることを確認します。
●
フォーマル等価性チェック : このテクノロジを使 用して、RTL ファイルに対するネットリストの等 価性をチェックします。
検証戦略の選択にかかわらず、エンジニアリン グ チームは、個々のモジュールと最終的な FPGA の検証方法、および対象となるすべての要件を示 すテスト計画を作成する必要があります。
http://japan.xilinx.com/
27
XPLANANTION: FPGA 101
セルフチェック型テストベンチ
ション テストと呼ばれるプロセス ) がはるか
場合であり、コーナー ケースはすべての入力
UUT のシミュレーション用に作成される
に短い時間で完了します。
が 極 端な値になる場合です。これらの 状 況
テストベンチは、セルフチェック型または非
の格好の例として、2 つの値を加算して結果 を生成する簡単な 16 ビット加算器を考えま
チェック型を選んだ場合は、コンピューター
コーナー ケース、境界条件、 ストレス テスト
モニター上でテスト結果を表示して、テスト
テストベンチを使用する際は、モジュール
図 2 に示します。
ベンチが希望どおりに機能することを視覚的
の性能が機能的要件を満たすこと、すべての
図から明らかなように、コーナー ケースは、
に確認する必要があります。セルフチェック
コーナー ケースが検証されていること、( さ
入力が A = 0 かつ B = 0 の場合、A = 0
型テストベンチが従来のテストベンチと異な
らに重要な条件として ) テストベンチによっ
かつ B = 65535 の場合、A = 65535 か
る点は、図 1 に示すように、スティミュラス
て UUT のコードが網羅的にテストされてい
つ B = 65535 の場合、A = 65535 かつ
を適用することだけでなく、予想される結果
ることの 3 点を確認することが目標となり
B = 0 の場合の 4 つです。境界条件はこれ
と対照して UUT からの出力をチェックする
ます。した がって、デ ザイン モジュール の
らのコーナー ケースの間の値です。
ことです。これにより、UUT の合格 / 不合
検証時には、UUT モジュールの内容が既知
アプリケーションによっては、通常動作の
格をカテゴリ別に記 述 で きます。この 機 能
であり観察可能である「ガラス箱テスト」の
上側に、あるいはそれを超えてマージンがあ
と、テキスト ファイルによる制御およびレポー
手法を使用するのが一般的です。対照的に、 ることを確認するために、UUT のストレス
ティングを組み合わせれば、非常に強力な検
UUT が FPGA の場合は、トップレベルで
テストを実行する必要があります。ストレス
証ツールを作成できます。
の検証とシミュレーションの所要時間が長く
テストの内容はモジュールに応じて変わりま
セルフチェック型テストベンチには多くの
なるため、トップレベルのブラックボックス
すが、これにはバッファーと FIFO をオーバー
セルフチェック型のいずれかです。非セルフ
す。この場合の境界条件とコーナー ケースを
フローさせようとする反復 動 作が含まれま
利点があります。慣れないユーザーにとって、 テストを使用します。 シミュレーション波形を視覚的に検証するこ
要件に対 するデザインの 機 能を検 証する
す。デザインのストレス テストで UUT を壊
とは非常に時間のかかる難しい作業です。セ
には、テストベンチは、モジュールが動作中
すのは、検証技術者のささやかな楽しみです。
ルフチェック型テストベンチでは、この労力
に遭遇すると予想されるものと同じ種類のス
を軽減できます。また、セルフチェック型テ
ティミュラスを適用する必要があります。し
コード カバレッジ
ストベンチは全体的な合格 / 不合格レポート
かし、機能が要件に適合することを証明する
検証チームには、テストベンチが UUT を
を生 成できるので、これを保存しておけば、 ためにすべての可能な入力をテストしていた
適切にテストしていることを確認するための
デザイン フローの後半でテストの証拠として
のでは、時間がかかりすぎます。この理由で、 測定基準が必要です。この測定基準は通常、
利用できます。後の段階で UUT の反復デザ
技術者は通常、ある種の標準的な動作値の
コード カバレッジを使って UUT が正しく
インが必要になった場合、従来型のテストベ
テストと、境界条件およびコーナー ケースに
テストされていることを確認することで与え
ンチを使用した場合に比べて、テストベンチ
焦点を絞ります。
られます。コード カバレッジを調べるには、
の 再 実 行と合格 / 不合格 の 判 定 ( リグレッ
境界条件は 1 つの入力が極端な値になる
若干のパラメーターを考慮に入れる必要があ
Stimulus
Stimulus File
UUT
Results
Results
Stimulus
Testbench
図 1 – セルフチェック型のテストベンチ アーキテクチャ
28 Xcell Journal 86 号
Result File
XPLANANTION: FPGA 101
テスト関数とプロシージャ
ります。 ●
各実行可能ステートメントを調べて、何回 実行されるかを確認する。
●
起こり得るすべての IF、CASE、および コード分岐内の条件と下位条件をテストし、 どのような条件でその分岐が真になる
●
●
準化された結果レポート形式。ロギング関
プロジェクトやほかのプロジェクトに利用で
数によって得られる要件の検証の証拠は、
きる、よく使用されるテスト ルーチンのライ
法令遵守の証明にも使用できます。
ブラリがあると、開発作業を迅速化できるだ けでなく、テストベンチから標準化された出 力が得られます。この標準化された出力は、
かを確認する。
モジュールの解析と検証のいずれにも役立ち
HDL を通るすべてのパスを検証し、通過
ます。
しないパスを特定する。
これらの標準的な関数とプロシージャは、
VHDL プロセスのセンシティビティ リス
多くのアプリケーションに使用できます。よ
ト内の信号および wait 文をモニターし、
く使用される手法には、次のものがあります。
起こり得るすべてのトリガー条件がテスト
●
されていることを確認する。
スティミュラス ジェネレーター : たとえば、 リセットの印加およびリリースのテスト、
上記のパラメーターで 100% を達成して も、UUT が機能的要件を満たすことが証明 されたわけではありません。しかし、これに
●
ドのみを対象とすることに注意してください。
●
号属性「stable」 、 「delayed」 、 「last_value」 、 および「last_event」を利用できます。これ らの属性は、メモリに必要なタイミング イン ターフェイスまたはほかのインターフェイスと UUT の適合性を確認する際に非常に重要で す。これらの関数は、UUT のセットアップ / ホールド タイム達成の確認と、未達成の場合 の違反の報告にも便利です。
ビヘイビアー モデル
場合によっては、UUT と同じ機能をイン
関する標準的手法
プリメントした合成不可能なビヘイビアー モ
出力チェック : 予想される結果に対する出
デルに対して、UUT の性能を検証できます
たはファイルによるレポーティング
のセクションを簡単に特定できます。ここで、
質の良い出力チェック関数は、VHDL の信
または通信インターフェイスの駆動などに
力結果のチェックと、トランスクリプトま
よってテストベンチがテストしていない UUT コード カバレッジは UUT 内で使用するコー
ロギング関数 : 解析を簡単にするための標
検証チームは、チームの全メンバーが当該
ブラリを作成する必要があります。このライ
SELECT 分岐を実行する。 ●
●
モデル : FPGA またはモジュールの動作中 にインターフェイスするデバイスの標準化 されたモデル
( 図 3 を参照 )。このモデルと UUT にテス トベンチから同じスティミュラスを与えて、2 つのモジュールの出力をサイクルごとに比較 し、モデルと UUT が同じ挙動を示すことを 確認します。適切な結果の比較ができるよう
B 65535, 65535 Corner Case
Boundary Condition
A 0,0
0,65535 図 2 – 16 ビット加算器の境界条件とコーナー ケース
http://japan.xilinx.com/
29
XPLANANTION: FPGA 101
に、このモデルまたはテストベンチは、UUT
タが VHDL 2008 をサポートしている場合
使用してツールを制御することも検討する必
のレイテンシを補正しなければならない場合
は ) std_logic および std_logic_vector を
要があります。この手法では、GUI 内で設定
があります。
使 用できます。シミュレータがまだ VHDL
されるすべてのオプション、およびシミュレー
2008 をサポートしていない場合は、同様
ションの 各実 行 の間の 変 更 が、シミュレー
TextIO ファイルの使用
のサポートを提供する ( 標準的ではないがよ
ションを制御する Tcl ファイル内で定義され
VHDL を使用してデザインを検証する場合
く使用される ) std_logic_textio パッケージ
るため、プロセスの反復可能性が向上します。
は、TextIO パッケージを使ってテキスト ファ
をいつでも利用できます。Verilog もテキス
また、これらのファイルはセルフ ドキュメン
イルからスティミュラス ベクターを読み出し、 ト ファイルの読み出しと書き込み用の同種の 合格 / 不合格を含む結果を結果テキスト ファ ツールを備えています。
ト ファイルになり、UUT の検証のサポート
イル内に記録できます。検証エンジニアリン
に必要なドキュメントが削減されます。
グ チームは、UUT テスト用の複数のスティ
その他の考慮事項
テスト 計画とインフラストラクチャ
ミュラス テスト ファイルを作成できます。テ
テストベンチには時間に依存しない性質が
デザインの検証は、インプリメント可能な
キスト ファイルを更新するだけで簡単にス
必要です。すなわち、テストベンチは、RTL
デザインそれ自体の作成よりも大きな作業に
ティミュラスを変更できるので、この手法は
またはビヘイビアー UUT のテストと、SDF
なる可能性があり、しばしば実際にそうなり
非常に有益です。これにより、簡単で迅速な
タイミング情報でバックアノテートされる配置
ます。プロジェクト ライフサイクルの初期段
アップデートが可能になり、問題を引き起こ
配線後のネットリストのテストを実行できな
階で検 証戦略を入 念に検 討しておけば、設
す可能性のあるシナリオをラボ内または最終
ければなりません。ゲート レベルでのシミュ
計チームと検証チームは、この重要なプロセ
的なハードウェア上でテストする機能も得ら
レーションは ( 要求される分解能が高いため)
スのサポートに必要なテスト計画とインフラ
れます。
かなりの時間がかかりますが、場合によって
ストラクチャを正しく準備できます。本稿で
VHDL 内では、STD テスト パッケージ
は必要になります。
説明した事項を考慮に入れることで、目前の
がテキスト ファイルの読み出しと書き込 み
また、検証チームは、シミュレーション ツー
作業に十分な柔軟性を備えたテストベンチを
をサポートしており、( ご使 用のシミュレー
ルがテストを実行するとき、Tcl スクリプトを
作成する手助けにできます。
Stimulus
Model
Results
Checking
Stimulus
UUT
Results
Results
Stimulus Stimulus File
Results
Testbench
図 3 — UUT とモデルの対照チェック
30 Xcell Journal 86 号
Result File
ハードウェア、ソフトウェア、I/O がプログラマブルなSoC
詳細はこちら
■東京エレクトロン デバイス(株) TEL(045)443-4016 x2web@teldevice.co.jp ■アヴネット・インターニックス(株) TEL(03)5792-8210 EVAL-KITS-JP@avnet.com ■(株)PALTEK TEL(045)477-2005 nfo_pal@paltek.co.jp ■新光商事 (株) TEL(03)6361-8086 X-Pro@shinko-sj.co.jp
©Copyright 2014 Xilinx, Inc. All rights reserved. ザイリンクスの名称およびロゴは、米国およびその他各国のザイリンクス社の登録商標および商標です。 ARMは、EUおよびその他の国におけるARM Limitedの登録商標です。他のすべての商標はそれぞれの所有者の財産です。
X P L A N AT I O N : F P G A 1 0 1
How to Add an RTOS to Your Zynq SoC Design
Zynq SoC デザインに RTOS を 追加する方法 Adam P. Taylor Head of Engineering—Systems e2v aptaylor@theiet.org
32 Xcell Journal 86 号
XPLANANTION: FPGA 101
ザイリンクス Zynq® -7000 All Programmable SoC 内
Zynq All Programmable SoC を最大限に活用するには、 オペレーティング システムが 必要です。ここではリアルタイム
OS ( 具体的には μC/OS-III) の インストール方法を説明します。
のプロセッシング システムを最大限に活用しようとするとき、 オペレーティング システムは単なるベアメタル ソリューショ ンを超える効果をもたらします。Zynq SoC デザインの開発 者は誰でも、多くのオペレーティング システムの中から最適 な OS を選択できます。最終アプリケーションによっては、 リアルタイム OS を選ぶこともあるでしょう。人身事故の防 止や厳しい性能目標の達成のために高速な応答と高い信頼 性が要求される、産業、軍事、航空宇宙などの苛酷な環境 で Zynq SoC を使用する場合は、RTOS が最善の選択肢 と言えます。 本稿では、Zynq SoC システムに RTOS を上手に追 加 する方法を実際に体験できるように、最も一般的なリアルタ イム オペレーティング システムの 1 つである Micrium 社 の μC/OS-III を使用します。この RTOS またはその旧バー ジョンは、Curiosity 火 星 探 査機 など、さまざまな非常に 興味 深いシステムに採用されてきました。最 新バージョン は 現 在、MISRA-C、DO178B Level A、SIL3/4、 お よ び IEC61508 の各標準の認証審査中であり、多くの Zynq SoC ユーザーに幅広くアピールするはずです。インプリメン テーションの詳細を検討する前に、 リアルタイム オペレーティ ング システムの基本を確認しておきましょう。
リアルタイム オペレーティング システム (RTOS) とは リアルタイム オペレーティング システムと標準的なオペ レーティング システムの違いは何でしょうか。リアルタイム オペレーティング システムは確定的な性質を持っています。 これは、システムが定義済みのデッドラインの範囲内で応答 するという意味です。この確定的な性質は、さまざまな理由 で重要とされます。たとえば産業用制御システムでそうであ るように、最終アプリケーションが産業用プロセスを監視し ており、指定された時間内にイベントに応答しなければなら ない場合は、確定的な性質が必要です。 RTOS は、これらのデッドラインへの対応力に基づいて さらに分 類 さ れま す。RTOS は ハード RTOS、ファーム RTOS、ソフト RTOS の 3 つのタイプに分 類され、それ ぞれが異なる方法でデッドラインの概念を扱います。ハード RTOS では、デッドライン違反はシステムの故障と見なされ ます。これとは異なり、ファーム RTOS では、ときおり発生 するデッドライン違反は許容範囲内とされます。ソフト RTOS では、デッドライン違反があると、結果の有効性は低下しま すが、システム全体としてはこれを許容します。 リアルタイム オペレーティング システムは、複数のタスク ( プロセスとも呼ばれる ) の実行の概念を中心として議論さ れます。それぞれのタスクは要求された機能を実行します。 たとえば、インターフェイスを介してデータを読み出すタスク や、そのデータに操作を実行するタスクがあります。1 つの タスクのみを実行する簡単なシステムもありますが、通常、 プロセッサ上では一度に複数のタスクが実行されます。これ らのタスク間の切り替えは、 「コンテキスト スイッチング」と
http://japan.xilinx.com/
33
XPLANANTION: FPGA 101
呼ばれます。タスクを切り替えるには、各タ
へのアクセスをどのように管理するかは非常
として知られています。プロセスはセマフォを
スクに関連付けられたプロセッサのステート
に重要です。管 理が適切でないと、 「デッド
待機 (WAIT) します。リソースが利用可能な
をタスク スタックに格納し、また追加する必
ロック」や「スタベーション」と呼ばれる問
場合は、このプロセスにはそのリソースの制
要があります。
題が発生し、システムの故障を引き起こすお
御が与えられ、完了するまで実行し、その時
次にどのタスクを実行するかを決めるプロ
それがあります。
点で完了を通知 (SIGNAL) します。しかし、
セスは、カーネル ( ソフトウェアからの入力 /
デッドロックは、あるプロセスが 1 つのリ
プロセスがセマフォを待機 (WAIT) したとき
出力要求を管理し、それらの要求をプロセッ
ソースを保持したまま、そのリソースを解放
にリソースが既に占有されていた場合は、リ
サの中央演算処理装置および機能的要素に対
できないときに発生します。解放しないのは、 ソースが利用可能になるまでプロセスはサス
するデータ処理命令に変換する RTOS のコ
このプロセスが現在ほかのプロセスによって
ペンドされます。現在実行中のプロセスが終
ア ) によって制御されます。タスク スケジュー
保持されている別のリソースを要求している
了すると、リソースはすぐに利用可能になると
リングは、特にデッドロック (2 つ以上のタス
ため、自分のタスクを完了できないからです。 はいえ、このプロセスがより優先順位の高い
クが互いにロックアウトしている状態 ) を避
システムは無期限にこの状態にとどまるため、 プロセスによって先取りされていると、待ち時
けたい場合には複雑になります。これにはタ
アプリケーションはデッドロックに陥ったと言
間が長くなります。優先順位の逆転を防ぐた
イム シェアリングとイベントドリブンの 2 つ
われます。おわかりのように、デッドロックは
めに、mutex (「mutual exclusion ( 相互 排
の基本的手法があります。タイム シェアリン
リアルタイム オペレーティング システムが陥
除 )」に由来する ) と呼ばれる特殊なクラスの
グ方式では、各タスクがプロセッサ上の専用
る不適当な状況です。
バイナリ セマフォがしばしば使用されます。
タイム スロットを取得し、優先順位の高いタ
スタベーションは、あるプロセスが必要と
カウンティング セマフォはバイナリ セマ
スクには複数のタイム スロットが割り当てら
するリソースが常にほかのプロセスに割り当
フォと同じように機能しますが、特定タイプの
れます。このタイム スライシングは、定期的
てられているため、プロセスを実行できない
リソース ( データ ストアなど ) のインスタン
な割り込みまたはタイマーによって制御され、 ときに発生します。
スが 2 つ以上利用可能なときに使用されま
「ラウンドロビン ( 総当たり ) スケジューリン
この問題については、長年にわたって多く
す。各リソースがプロセスに割り当てられるた
グ」とも呼ばれます。イベントドリブン型のソ
の論文が執筆され、デッカーのアルゴリズム
びにカウントが減り、これが利用可能な状態
リューションでは、高い優先順位を持つタス
( 並行プログラミングにおける相互排除問題
で残っているリソースの数を示すことになりま
クの実行が要求されたときにのみ、タスクが
の古典的対 策 ) など多くの解決策が提 案さ
す。カウントがゼロに達すると、利用可能な
切り替えられます。この方式は「プリエンプ
れていることも当然と言えるでしょう。この
リソースはなくなるため、いずれか 1 つのリ
ティブ スケジューリング」とも呼ばれます。
ような状況の解決に最もよく使用される手法
ソースが解放されるまで、要求側のプロセス
はセマフォ ( 手旗信号 ) です。セマフォは、 はサスペンドされます。
デッドロック、リソース シェアリング、 およびスタベーション
通常はバイナリ セマフォとカウンティング セ
複数のプロセスが相互に通信する必要はし
マフォの 2 種類です。
ばしば生じます。プロセス間の相互通信には
2 つ 以 上 の プ ロ セ ス が 同 じ リ ソ ース
通常、各リソースにはバイナリ セマフォが
複 数の手法を利用できますが、最も簡単な
(UART、ADC、または DAC など ) を使用
割り当てられています。要求側のプロセスは、 のは、上述のようにデータ ストアとセマフォ
する必要が生じた場合、各プロセスはこのリ
リソースが利用可能になるのを待って実行さ
を使用する方法です。もう少し複雑な手法に
ソースを同時に要求することがあり得ます。 れます。タスクが完了すると、要求側のプロ
は、メッセージ キューがあります。メッセージ
このような状況では、競合を回避するために
セスはリソースを解放します。これらのセマ
キュー方式では、あるプロセスがほかのプロ
アクセスを制御する必要があります。リソース
フォは、一般に WAIT 操作と SIGNAL 操作
セスに情報を送信したいときは、メッセージ
図 1 – デモ ファイルの場所を示すディレクトリ構造
34 Xcell Journal 86 号
XPLANANTION: FPGA 101
図 2 – オペレーティング システムの選択 をキューに POST します。プロセスがキュー からメッセージを受信したいときは、キュー に PEND します。したがって、メッセージ キューは FIFO (First-In First-Out) メモリの ように機能します。
μC/OS-III オペレーティング システム Micrium 社の μC/OS-III はプリエンプティ ブな RTOS です。つまり、この OS は常に、 実行状態にあるタスクのうち最高の優先順位 を持つものを実行します。この OS を Zynq SoC システム デザインに追加するには、最 初の手順として、Micrium 社のウェブサイト から μC/OS-III RTOS をダウンロードしま す。ダウンロードが完了したら、インストー ルは非常に簡単です。ご使用のコンピュータ 上のザイリンクス インストール フォルダー の下の適切なフォルダー ( ディレクトリ ) に、 ダウンロードした数個の ZIP ファイルを展開 するだけです。 Zynq-7000-ucosiii-bsp.zip という名前 の ZIP ファイル を \<XILINX>\ISE_DS\ EDK\sw\lib\bsp\ フォル ダー に 展 開しま す。このフォル ダー の下には、standalone や xilkernel などほかの複数のオペレーティ ング システム が 格 納 さ れていま す。次に、 図 1 に 示 すように、Zynq-7000-ucosiiidemo.zip と い う 名 前 の ZIP フ ァイル を \<XILINX>\ISE_DS\EDK\sw\lib\sw_ apps\ フォルダーに展開します。このフォル
図 3 – μC/OS-III デモの選択
http://japan.xilinx.com/
35
XPLANANTION: FPGA 101
図 4 – 適切な設定の取得
ダーには、ほかの複数のアプリケーション デ
ります。この XML ファイルを右クリックして、 解決されます。
モが格納されています。
[Properties] を表示します。この画面で、図
これらの 2 組のファイルをインストールし
4 に示すように、このファイルの場所を選択し
たら、ソフトウェア開発キット (SDK) 内で
てコピーできます。
筆 者 がこの「include」ヘッダー ファイル
いつでもプロジェクトの作成を開始できます。 この 場 所をコピーしたら、プ ロジェクト
を 追 加 すると、 プ ロ ジェクトが 構 築 さ れ、
以前に作成したのと同じベース ハードウェア
を右クリックして [Properties] をクリック
ZedBoard 上で期待どおりに実 行されまし
を使用しますが、今回はオペレーティング シ
しま す。 見 出し [C/C++ General] の下 で
た ( 筆 者 の YouTube ビ デ オ http://www.
ステムを組み込むので、新しいアプリケーショ
[Paths] および [Symbol] オプションを選択
youtube.com/watch? v=uRB4La5ijrA
ンおよびボード サポート パッケージ (BSP)
します。次に [Import Settings] をクリック
を参照 )。
が必要です。
し、設定ファイルの場所を貼り付けます。
SDK 内で、ベース ハードウェア デザイン
また、リポジトリは、以前に追加したライ
以外の開いているプロジェクトをすべて閉じ
ブラリを正しく指している必要があります。 この例をアップし稼働させたことで、シス
ます。次に、[File] → [New] → [Application
この設定を確認するには、[Xilinx Tools] →
テムに RTOS が正しくインプリメントされ
Project] オプションをクリックして、新しい
[Repositories] を クリックしま す。 以 前 に
たことに確 信 を持 てたことと 思います。こ
プロジェクトに名前を付け、オペレーティン
μC/OS-III BSP をインストールした場所が表
れ で、Zynq SoC へ の ソ フト ウェ ア デ ザ
グ システム μC/OS-III を選択します ( 図 2
示されるはずです。
インの 適 切 なインプリメントに進 むことが
を参照 )。次に、μC/OS-III 用のデモ アプリ
UART を使 用してデモのステータスを出
できます。ソフトウェア アプリケーション
ケーションを選択します ( 図 3 を参照 )。
力する ( 初 期 化 が 完 了し、タスクを実 行し
が 完 成し、 エ ン ジ ニアリング チ ーム が そ
完了したら、[Finish] ボタンをクリックし
ていることを示す ) には、BSP の設定下で
のソ フト ウェア を ハード ウェア上で テスト
ます。SDK 内でアプリケーションおよびボー
stdin と stdout を UART に設定する必要
する 準 備 が で き たら、 ベ アメタル シス テ
ド サポート パッケージ ( このオプションを選
があります。
ム の 場 合と 全 く同じ 方 法 で プ ロ グ ラミ ン
択した場合 ) が作成されます。[Auto Build]
これらの手順を実行すると、プロジェクト
グ ファイル を 作 成して (Xcell Journal 英
オプションを 選 択していた 場 合、少 数のエ
が構築可能になったことを示すメッセージが
語 版 83 号 の『Zynq SoC ベ アメタル ソ
ラーが報告されるでしょう。これは、すべて
表示されます。しかし、まだ 2、3 の警告が
リューションを構成する方法 』http://issuu.
のプロジェクト リファレンスが適切に設定さ
表示され、ハードウェア上でこのプロジェクト
com/xcelljournal/docs/xcell_ journal_
れている訳ではないからです。これらのプロ
を実行しようとすると、デモに期待している
issue_83/40?e=2232228/2101904
ジェクト リファレンスを適切に設定するには、 ような実行性能は発揮されません。これは未
を参照 )、RTOS のアプリケーションをコン
[Project] → [Src] → [Settings] の下に表示
宣言の関数に関する警告のためです。bsp.c
フィギュレーション メモリからブートし、実行
されるデモの設定をインポートする必要があ
ファイルに次の文を追加すると、この問題は
できます。
36 Xcell Journal 86 号
稼働
ウェブセミナー Web Seminar All Programmable FPGA、SoC、3D IC の世界的なリーディング プロバイダーの ザイリンクスが提供するプログラマブル ロジックからプログラマブル システム インテグレーションのさまざまな機能と活用方法をご紹介します。 コストを抑え、最大のパフォーマンスを実現するための最新情報を手に入れてください。
ニーズに合わせたプログラムを各種取り揃えて好評配信中 !!
New!! 新セミナー登場
Zynq All Programmable SoC を使用した
マルチチャンネル リアルタイム ビデオ プロセッサの設計
FPGA 入門編
FPGA をこれから始める方に FPGA の全体概要を解説した入門編と、ものづくりにチャレンジする経営者、 技術管理者の方へなぜ今 FPGA /CPLD なのかをご説明します。
30分で判る! FPGA入門
15分で判る! FPGA採用理由
ザイリンクス FPGA を使った最先端デザインの設計手法や、さまざまなアプリケーション設計に求められる デザイン チャレンジに対するソリューションをご紹介・解説します。 ∼アクセレータでのソフトウェア
Zynq SoC を使用した最先端 エンベデッド システムの設計 ボトルネックの解消方法∼
FPGA 活用編
システムレベル セキュリティの強化: All Programmable SoC で OS を超える
Zynq-7000 All Programmable SoC での C コードから コプロセッシング アクセラレーター
7 シリーズ ターゲット デザイン プラットフォーム プログラマブルデバイスである FPGA の設計には開発ツールがキーになります。ザイリンクスが提供する ユーザー フレンドリーな開発ツールの特徴や使い方、先端設計メソドロジについて解説します。
開発ツール編
次世代FPGA設計手法セミナー PlanAhead デザイン解析ツール ∼ 第1部、第2部、第3部、デモ ∼
AMBA AXI4 テクニカルセミナー FPGA の世界トップシェアを誇るザイリンクスが提案するソリューションや、ザイリンクスの最先端 FPGA の 詳細を解説します。
FPGA/SoC 概要編
Zynq-7000 SoC アーキテクチャとエコシステム
28nm ザイリンクス 7 シリーズ FPGA のアジャイル ミックスド シグナル テクノロジ
セミナー内容の詳細/ご視聴は今すぐこちらから
http://japan.xilinx.com/webseminar/
X P L A N AT I O N : F P G A 1 0 1
How to Make a Custom XBD File for Xilinx Designs
ザイリンクス デザイン用の カスタム XBD ファイルの作成
独自のザイリンクス ボード記述ファイルを作成すれば、 開発期間の短縮とデザイン プロジェクトの 一貫性の維持が可能となります。 どのようなボードを設計する場合でも、 カスタム XBD ファイルの作成は比較的簡単です。
38 Xcell Journal 86 号
XPLANANTION: FPGA 101
Manish Nalamwar, Scientist “D” Radar Seeker Laboratoryz Research Centre IMARAT Defence Research Development Organization Hyderabad, India nalamwar.manishkumar@rcilab.in
FPGA ベンダーは各種の質の良い評価ボー
ンクスは『Platform Specification Format
ドやアプリケーション固有のボードを提供し
リファレンス マニュアル』で XBD 構文を
ており、それらは FPGA の評価用として、あ
定 義して い ま す (http://japan.xilinx.com/
るいはシステム開発の基盤としてさえ利用で
support/documentation/sw_manuals/
きます。しかしデザイン プロジェクトによっ
xilinx11/psf_rm.pdf を参照 )。
ては、評価ボード上では提供されていない機
通常、カスタム ボードには、シリアル通信
能が必要とされたり、最終システムの小型化
(RS232 および RS422)、アナログ デジタ
が要求されたりする場合があります。このよ
ル コンバーター (ADC)、デジタル アナログ
うな場合、設計チームはカスタム ボードを作
コンバーター (DAC)、RAM およびフラッシュ
成しなければなりません。
メモリが必要です。ザイリンクスと Avnet 社
ザイリンクスの各評価ボードには、ペリフェ
が提供している各種評価ボードも、これらの ラル、ペリフェラル の 構 成、制 御レジスタ、 ペリフェラルを備えています。したがって、同 およびボード上の FPGA とのピン ロックを じコンポーネントを備えたボードを見つけて 記述したザイリンクス ボード記述 (XBD) ファ
関連する XBD ファイルを検討すれば、カス
イルが付属しています。XBD ファイルは、設
タム XBD ファイルを迅速に開発できます。
計チームの統一性を維持するのに非常に便利
各 XBD ファイルにはボードがサポートす
であり、ボード上にインプリメントされる現在
る FPGA インターフェイスを定義するさまざ
のデザインおよび将来のデザインのための最
まなブロックが含まれており、各ブロックに
善の戦略を定義付けする手助けになります。
は属性、パラメーターおよびポートのリスト
もちろん、カスタム ボードを作成する場合
が含まれています。したがって、XBD ファイ
は、ザイリンクスが提供する XBD ファイル
ルの最初のエントリは、グローバル属性コマ
をそのまま利用することはできませんが、独
ンド、ベンダー情報、ボードの名前とリビジョ
自の XBD ファイルの開発に時間をかける価
ン番号、サポート用のウェブ URL、ボードの
値は確かにあります。設計チームは、正しい
短い説明と長い説明で始まります。
方法で準備された XBD ファイルを使用して
XBD ファイル の ロ ーカ ル 属 性 コ マ ンド
プロジェクトを的確に管理し、デバイス ドラ
は BEGIN-END ブロックの間で定 義され、 イバーとファームウェアの開発作業を合理化 『Platform Specification リファレンス マ できます。幸いなことに、多少の検討と労力 ニュアル』で 利 用可能 な特 定のフォーマッ が必要ではありますが、ボード用のカスタム
トで 表 現 さ れます。この 例 で は、コンフィ
XBD ファイルは比較的簡単に作成できます
ギャラブル ロジック セ ルとは 別 に ハード
(Vivado Design Suite を使用するユーザー
PowerPC ® 440 コアを搭載したザイリンク
のために、ザイリンクスは Vivado Design
ス Virtex-5FX30T FPGA をターゲットと
Suite バ ー ジ ョン 2014.1 で 導 入 さ れ た
する、ISE® バージョン 12.4 デザイン ツー
Board Manager と呼ばれる新しいユーティ
ルを使用します。
リティ内で 強 化された XBD 機 能を提 供し
カスタム ボードには、FPGA のほか、デ
ています。詳 細は、 『Vivado Design Suite
ザインの要件に基づいて、シリアル通信イン
ユーザー ガイド』http://japan.xilinx.com/
タ ーフ ェ イ ス (RS232、RS422)、ADC、
support/documentation/sw_manuals/
DAC、SRAM などの各種のペリフェラルが
xilinx2013_3/ug898-vivado-embedded-
搭載されているでしょう。シリアル通信の専
design.pdf を参照 )。
門分野に特化した知的設計資産 (IP) ブロッ
本稿では、カスタム XBD ファイル開発の
クを使用して、複数の UART 要件を実現で
1 つの手法を説明します。このサンプル デザ
きます。たとえば、SRAM と FPGA のイン
®
インの目的で、Virtex -5 FX30T FPGA を
ターフェイスには外部メモリ コントローラー
使用するカスタム ボード用の XBD ファイル
(EMC) IP コアを使用し、ADC および DAC
を作成します。
と FPGA のリンクには汎用 I/O (GPIO) IP
まず、ザイリンクスとディストリビューター
コアを使用できます。
の Avnet 社が提 供しているドキュメントを
このサンプル デザインのために、筆者ら
お 読 みになることをお 勧 めします。独自の
は、デバイス データ シートに記載された機
XBD ファイルを作成するには、XBD 構文で
能的要件およびデバイス要件を満たすカスタ
ファイルを記述する必要があります。ザイリ
ム XBD ファイルを準備しました。FPGA へ
http://japan.xilinx.com/
39
XPLANANTION: FPGA 101
ATTRIBUTE IOTYPE = XIL_CLOCK_V1 PARAMETER CLK_FREQ = 20000000, IO_IS = clk_freq, RANGE = (20000000) # 20 Mhz PORT USER_SYS_CLK = CLK_20MHZ, IO_IS = ext_clk END
TX RX CONTROL
RS422
TX RX CONTROL
RS232
この後に、このファイル内にボードのすべてのペリフェラルを 1 つ ずつ記述する必要があります (各ペリフェラル ブロックのコーディ
A0-A19
FPGA Virtex-5 FX30T
CONTROL D0-D15
ングの詳細は、本稿と組み合わせて使用される PDF 『カスタム ボ
SRAM
ード用の XBD のコーディングの詳細』 (http://www.xilinx.com/ publications/xcellonline/xbd_coding.pdf) を参照)。
A0-A2 CONTROL D0-D13
DAC AD7841
デジタル アナログ コンバーター
まず、Analog Devices 社のデジタル アナログ コンバーター AD7841 から記述します。この DAC は、8 チャネル、3 つのアド
D0-D11 CONTROL
TRANSCEIVER
D0-D11 CONTROL
ADC AD7891
レス ライン、および 14 ビット データ ラインと、デバイスの機能を 扱う数種類の制御信号を備えています。この DAC は、ザイリンク スが提供する GPIO IP コアを使用して FPGA とのインターフェイ スをとります。DAC のアドレス ライン (A0 ~ A2) はプロセッサの アドレス ラインに接続されます。
図 1 – カスタム ハードウェア デザインのブロック図
この DAC は、LDACN、CSN、WRN、CLRN の 4 種 類の制 御信号を備えています。これらの信号は 2 つの方法で構成できます。 すなわち、各信号に 1 ビットを割り当てることも、直接的に 1 つの
の入力クロック信号は 20MHz です。プロセッサは 200 MHz で動 作し、プロセッサ ローカル バス (PLB) は 100MHz で動作します。 この情報に基づいて、ローカル デバイス ドライバーのタイミングが 維持されていることを確認できます。図 1 にカスタム ハードウェアの ブロック図を示します。 このカスタム ファイルから始めましょう。ファイルはグローバル属 性コマンドから始まり、その後にクロック信号が続きます。次のよう に、この情報はすべてのボードに必須です。
ATTRIBUTE VENDOR = Xilinx Board FX30T ATTRIBUTE NAME = Virtex 5 FX30T ATTRIBUTE REVISION = A ATTRIBUTE SPEC_URL = www.xilinx.com ATTRIBUTE CONTACT_INFO_URL = http://www. xilinx.com/support/techsup/tappinfo.htm ATTRIBUTE DESC = Xilinx Virtex 5 FX30T Custom Platform ATTRIBUTE LONG_DESC = ‘The FX30T board is intended to showcase and demonstrate Virtex-5 technology. This board utilizes Xilinx Virtex 5 XC5VFX30T-FF665 device. The board includes ADC, DAC, RS232, RS422, SRAM, PLATFORM FLASH, CPU Debug (JTAG) and CPU Trace connectors. ‘ BEGIN IO_INTERFACE ATTRIBUTE INSTANCE = clk_1
40 Xcell Journal 86 号
4 ビット レジスタで構成することも可能です。どちらの方法を選ぶ かは、ユーザーのアプリケーションでこれらの信号をどのように扱う かによって決まります。この DAC のデータ ラインは 14 ビット (D0 ~ D13) です。 最初のデバイス (DAC) の詳細を XBD ファイル内に記述したら、 次にファームウェアの作成に注意を向ける必要があります。デバイス ドライバーを開発する際は、データシートとタイミング図を入念に 検討する必要があります。タイミング図を図 2 に示します。 デバイスのデータシートには、ユーザーがタイミング図を読み取っ て制御信号を生成する必要があると記載されています。タイミング 情報 t0 ~ t11 は、Analog Devices 社のデータシート (AD7841) に厳密に従っています。最初の手順として、信号の方向を out に設 定し、対応するアドレスに 1 を書き込むことによって信号を High に します。たとえば次の文によって、LDACN 信号は方向が out に設 定され、High にされます。
XGpio_WriteReg(XPAR_DAC_14BIT_CONTROL_ LDACN_BASEADDR,XGPIO_TRI_OFFSET,0x0); //Direction is out XGpio_WriteReg(XPAR_DAC_14BIT_CONTROL_ LDACN_BASEADDR,XGPIO_DATA_OFFSET,1); //Pulled high 各信号間の遅延は、 「for」ループあるいは「NOP」命令を用いて 達成されます。同じくらい重要なのは、各信号のシーケンシングと セットアップ/ ホールド タイミングです。これらの仕様はデバイス デー タシートに記載されています。この例では、プロセッサが 200MHz
XPLANANTION: FPGA 101
t1
t2
A0, A1, A2
t6 CS WR
t6
t3 t4
t8
t7 DATA
t9
VOUT
t10 CLR VOUT
t11 LDAC
図 2 – AD7841 DAC のタイミング図
で動作している場合、1 単位の増加が 5ns に相当します。
通信インターフェイスおよび SRAM インターフェイス
ザイリンクスの XIL UART IP コアを使用
CONVS (0)
t6
して、RS232 お よび RS422 ドライバー IC とザイリンクス Virtex-5 FPGA の イン ターフェイスをとります。筆者らは Maxim 社
ECC (0)
t00NV
の 2 つのデバイスを選び、RS422 通信には MAX3079、RS232 通信には MAX3237 を使用しました。また、GPIO IP コアを使用 して RS422 IC の制御信号を生成しました。
CB (0)
t1
メモリに は Cypress 社 のス タ ティック RAM (CY7C1061BV33 デバイス ) を選び、 ザイリンクス外部メモリ コントローラー IP
t7
t1
t1
t1
WR (1)
コア (XIL_EMC) を使用して FPGA とのイ ンターフェイスをとりました。この IP コアと XBD ファイルのおかげで、メモリのインター フェイスと制御は簡単でした。筆者らは、デ バイス データシート内でこのデバイスのタイ ミング制約を確認し、XBD ファイル内に記述 しました。選択したデバイスによって、XBD ファイル 内で 更 新する必 要 が あるパラメー
RD (1)
t31 t4
DB0 TO DB11 (I/O)
VALID DATA INPUT
t9
t10 VALID DATA OUTPUT
I=INPUT 0=OUTPUT
ターは異なります。このメモリを処理するに はザイリンクスの IP コアで十分であり、別の デバイス ドライバーを用意する必要はありま せんでした。
図 3 – AD7891-1 ADC のタイミング図
http://japan.xilinx.com/
41
XPLANANTION: FPGA 101
ADC のインターフェイス このデザインでは、( さまざまなセンサーから送られる ) すべての 入力アナログ信号の範囲が ±10V であるため、ADC と FPGA の インターフェイスが問題となりました。筆者らは、このサンプル ボー ドの機能的要件を満たすために、Analog Devices 社の AD78911 を選びました。この ADC は、 8 チャネルと 1 つの 12 ビット デー タ バスを備え、オプションでシリアル インターフェイスとパラレル インターフェイスを選択します。このデザインにはパラレル インター フェイスが最適であることがわかりました。 この ADC は 5V 入 力で動作しますが、FPGA の I/O 電圧は
「customboard_RevX_vX_X_0.xbd」は、作成された後、次のディ レクトリ構造に格納されている必要があります。 パスの例 :
C:\Xilinx\12.4\ISE_DS\EDK\board\customboard_ RevX\data\custom\ customboard_RevX_vX_X_0.xbd さらに、どのようなアプリケーションについても、図 4 に示した 特定の手順に従ってハードウェア / ファームウェアの開発を進める 必要があります。
3.3V であるため、このデザインでは FPGA とのインターフェイス をとるのにトランシーバーが必要でした。以後、このトランシーバー をバッファーと呼びます。このバッファーの一方の側は FPGA に接
DESIGN REQUIREMENTS
続され、もう一方の側は ADC に接続されます。FPGA がバッファー の制御信号を処理します。このデバイスの方向ピンと出力イネーブ ル ピンを注意深く取り扱い、FPGA と ADC の間のデータ フロー を制御する必要があります。このデバイスの制御信号は 5 ビット
SELECTION OF COMPONENT
レジスタとしてまとめられます。 このデバイスの変換終了 (EOCN) 信号は重要であるため、カス タム XBD ファイル内で個別に記述する必要があります。EOCN は、 変換が完了し、FPGA が新しいデータを処理できることを示します。
REFER TO DATASHEET
バッファーのインターフェイス
このデザインでは、バッファーとして Texas Instruments 社の レベルシフト トランシーバー (SN74ALVC164245) を選びまし た。このデバイスは 16 ビット非反転バス トランシーバーで、2 つ
CREATE XBD
の個別のポートと電源レールを備えています。このデバイスのポー ト B は 5V ADC と接続され、ポート A は 3.3V FPGA と接続さ れます。この構成により、5V から 3.3V へ、また 3.3V から 5V
WRITE FIRMWARE
へ信号を変換できます。 方向ピンを Low に設定すると、ポート B からポート A へデー タが転送されます。High に設定すると、逆にポート A からポート B へデータが転送されます。ADC からデータを読み出すには、出 力イネーブル (OEN) ピンと方向 (DIR) ピンを Low に設定します。
TEST OF FIRMWARE
書き込み操作の際は、方向ピンを High、出力イネーブル ピンを Low に設定した状態で、FPGA が ADC にコマンドを発行します。 このサンプル デザインでは、バスの競合を避ける目的で、バッファー の出力イネーブル ピンは High にされます。このデザインでは 2
図 4 – ハードウェア/ファームウェアの開発プロセス
個のバッファーと 2 個の ADC を使用しました。 図 3 は、筆者らが制御信号の生成に使用した、パラレル インター フェイス モードのタイミング図です。t 0 ~ t11 の信号タイミングは、
開発期間の短縮
Analog Devices 社のデバイス データシートを基準にしています。
カスタム ハードウェアを開発する組込み機器設計者にとって、独
このファイルの作成や修正には、Notepad や WordPad などの
自のアプリケーション向けのデバイス ドライバーの開発は常に難し
任意のエディター プログラムを使用できます。このファイルは拡張子
い作業です。ザイリンクスは、開発プロセスと開発用の汎用ボード
「.xbd」を付けて保存します。編集の完了時に、このファイルは、新
記述ファイルに関する幅広い資料を用意しています。このボード記
規プロジェクトの作成中に EDK ツールが直接認識できる特定のパス
述ファイルは、独自のカスタム ハードウェアの要件に合わせて簡単
に置かれている必要があります。新規プロジェクトを開始するときは、
にカスタマイズおよび修正できます。ハードウェア構成にどのよう
このファイルをカスタム ボード用に選択する必要があります。
な修正や変更があっても、1 つのファイルだけに注目し、デバイス
た と え ば、 「customboard」 と い う 名 前 の 仮 定 上 の ボ ード を
に関連するすべての変更をそのファイル内に記述するだけで対応で
EDK ツールが認識できるようにするには、特定のディレクトリ構
きます。このようにして、カスタム XBD ファイルは、生産性の向上
造に従う必要があります。これは非常に重要な手順です。この例の
と開発期間の短縮を実現します。
42 Xcell Journal 86 号
基本のFPGAアーキテクチャ E-Learning ・ スライス および I/Oリソース ・ メモリおよび クロッキングリソース ・ Architecture Wizard および Foorplan Editor
開発言語
VHDL 基礎
Verilog 基礎
System Verilog での設計
VHDL 中級
Verilog 中級
System Verilog での検証
Vivado デザインツールフロー VivadoでのFPGA設計導入 VivadoでのFPGA設計実践
7シリーズデザイン Chip Scope Pro ツールを 使用したデバッグ法 FPGA 低消費電力 設計のコツ アナログミックスシグナル (AMS)設計
コネクティビティデザイン 基礎 メモリインターフェイス 設計 マルチギガビット シリアルIO
DSPデザイン 基礎
エンベデッドデザイン 基礎
Simlink基礎 (MathWorks社開催)
Zynq システムアーキテクチャ
SystemGenerator を 使用したDSPデザイン
Zynq エンベデッドシステム開発
Cコードベース設計 : Vivado HLS を使用した高位合成
Zynq エンベデッド システムソフトウェア開発
Vivado でのアドバンスド FPGA設計
エンベデッドマイクロブレーズ Linux開発
パーシャルリコン フィギュレーション オリジナルトレーニングの内容およびスケジュールは、 各社の Web サイトをご覧ください。
ザイリンクス販売代理店 / 認定トレーニングプロバイダ
アヴネット・インターニックス
avnetinternix.co.jp/training.aspx
新光商事
xilinx.shinko-sj.co.jp/training/index.html
東京エレクトロンデバイス
ppg.teldevice.co.jp/
パルテック
www.paltek.co.jp/seminar/index.htm
エッチ・ディー・ラボ
www.hdlab.co.jp/web/x500x/
詳 細 とご 登 録 はこちら か ら
Japan.xilinx.com/training/
TOOLS OF XCELLENCE
Selecting the Right Converter: JESD204B vs. LVDS
最適なコンバーターの選択 : JESD204B と LVDS Ian Beavers Applications Engineer High Speed Converters Team Analog Devices, Inc. Jeff Ugalde Product Engineer Interface Technology Group Analog Devices, Inc.
44 Xcell Journal 86 号
TOOLS OF XCELLENCE
最新の高速 FPGA には、
デ ー タ コンバー ター アー キテクチャと
ションではより高いデータ レートを利用でき
FPGA のジオメトリの高度化と縮小化が進む
るとはいえ、現 在のところ、市販 LVDS コ
新しい JESD204B 標準に
につれて、システム設計者は新しいデータ イ
ンバーターで得られる最 大データ レートは
ンターフェイスの問題に直面します。プロセ
0.8Gbps ~ 1Gbps に す ぎ ません。LVDS
準拠したコンバーターが
ス ジオメトリの縮小により、広帯域化したコ
テクノロジは、コンバーターの帯域幅への要
ンバーターはより高い分解能と速度で動作で
求に追いつけなくなっています。LVDS は、
最適です。
きるようになり、これがデータ スループット
LVDS コア メーカーの業界標準規格である
の向上につながっています。一方、高いシリ
TIA/EIA 644A 仕様によって制御されます。
これらのデバイスを
アル化 / デシリアル化 (SerDes) レートが利
この仕様は、設計者向けのベスト プラクティ
用可能になり、大きなジオメトリでは利用で
ス ガイドとして機能し、さまざまなメーカー
きなかった帯域幅をサポートできるようにな
の LVDS トランスミッターとレシーバーの互
ります。また、実装面積の縮小により、1 つ
換性の 確保を促 進しています。同じように、
のデバイスに組み込めるデータ コンバーター
設計者が LVDS 仕様を完全に遵守せずに開
の数が増えます。したがって、これらのデー
発した製品は、LVDS 仕様に準拠しないので、
タ コンバーター向けのインターフェイス ソ
市場における互換性の確保がより困難になり
リューションには、高いデータ レートへの対
ます。
応、複雑な FPGA デバイスとの互換性の確
LVDS と同様に、JESD204B は、異な
保、公称 I/O 数の維持が求められます。
るメーカーの製品間で相互運用性を確保する
コンバーターの SerDes リンク仕様であ
ための電気的および物理的要件の指 針を提
る JESD204B に準拠したインターフェイス
供する標準化団体である Jedec の管理下に
は、最大 12.5Gbps のデータ転送をサポー
置 かれています。JESD204B の 最 大 デー
トします。この最大データ レートは、65nm
タ レートは 12.5Gbps に規定されており、
以下の高度なプロセッシング ノードを採用し
実際に使われている LVDS に比べてスルー
た、電力効率が向上したコンバーターで実現
プットが 10 倍以上に向上しています。この
可能です。12.5Gbps のチャネル レートに
高性能により、データ コンバーター システム
より、システム設計者は、従来の低電圧差動
の I/O 要件の軽減およびパッケージ サイズ
信号方式 (LVDS) DDR インターフェイスで
の小型化に加え、スタティック消費電力の低
はなく、この新しい SerDes テクノロジの利
減によるシステム コストの大幅な削減が可能
点をフルに活用できます。
となります。
ザイリンクス Virtex -7 ファミリおよび
JESD204B 仕様は AC カップリングを
Kintex® -7 ファミリなどの市販 FPGA モデ
許容しているので、さまざまな電源レベルを
ルは、最 大 12.5Gbps 以 上のデータ レー
使用する各種のテクノロジ ノードとの互換性
トを備えたシリアル トランシーバーを搭載し
をサ ポートします。たとえば、28nm 以下
ています。FPGA は少し前からこの 性 能に
の FPGA プロセッシング ノードは、通常は
達しており、現在ではコンバーターがこれと
ファブリケーション テクノロジの最先端に位
同じ SerDes 性能に追いついています。こ
置付けられます。コンバーター トランジス
れにより、単一の FPGA デバイス内で ( 多
タ ノードは、カスタム アナログ デザインが
くの場合は複数の内部チャネルを使用して )
必要になるため、しばしば最 先端の FPGA
複数のコンバーターの同期化処理が可能とな
に 数 世代 遅 れをとりま す。JESD204B と
ります。
は反対に、LVDS は通常は DC カップリン
使用したデザインでは、
I/O の要因を考慮に入れる 必要があります。
®
グ方式を使用するため、コンバーターから低
アプリケーションに適した コンバーターの選択
消 費 電 力の 電 源を 備えた FPGA へ の イン
データ コンバーター上の高速シリアル伝送
コモンモード 電 圧の 不一致 が大きくなるほ
には、さまざまなアプリケーションに応じて
ど、静止電流は大きくなりますが、これはデー
さまざまな選択 肢があります。データ コン
タ レートとは無関係です。これらの理由で、
ターフェイスをとることはより難しくなります。
バーター メーカーは、10 年以上にわたり、 JESD204B は、高分解能で高速なデータ 主な差動信号方式テクノロジとして LVDS を
コンバーターのメーカーにとって非常に魅力
採用してきました。一部の LVDS アプリケー
的な差動信号処理テクノロジになっています。
http://japan.xilinx.com/
45
TOOLS OF XCELLENCE
図 1 – 12.5Gbps の JESD204B アイ ダイアグラムと LV-OIF-11G-SR 伝送マスク
JESD204B は、電気的仕様以外に、3 種
テゴリを定義する上限レートは、次に示すよ
め、信号品 質に関するシステム設 計 者 の懸
類の物理層についてアイ ダイアグラム性能に
うに、3.125Gbps、6.375Gbps、 お よび
念 が 軽 減 さ れることで す。DC カップリン
関する要件を規定しています。この性能の測
12.5Gbps です。
グ方式では、データ ラインに混入するコモ
定 基 準には、マスクに対 する定 義 済みデー タ アイと合計ジッター バジェットが含まれま
●
312.5Mbps から 3.125Gbps まで
す。OIF (Optical Internetworking Forum) が策定した物理層 (PHY) の仕様とアイ マス
●
クの基準は優れたものですが、JESD204B インターフェイスはこれを同じシリアル デー タ レートに利用します。JESD204B リン クは、OIF の低電圧 11 ギガビット短距離伝
LV-OIF-SxI5 ベースの動作 :
●
ンモード ノイズの影響を受けやすくなります。 AC カップリング方式の 3 つ目の利点は、複 数のベンダーから提供される各種のトランス
LV-OIF-6G-SR ベースの動作 :
ミッター の 終 端 電 圧の 要件 (Vtt ) およびレ
312.5Mbps から 6.375Gbps まで
シーバーの終端電圧の要件が軽 減され、レ
LV-OIF-11G-SR ベースの動作 :
シーバーが最適なコモンモード電圧で動作で
312.5Mbps から 12.5Gbps まで
きることです。これにより、さまざまな電源 電圧に柔軟に対応しているシステム デザイン
送 (LV-OIF-11G-SR) 仕 様 で 許 容 さ れる合
各カテゴリは、広範囲にわたるデータ レー
において、JESD204B トランスミッターお
計ジッター 最 大値 ( すなわち、ユニット イ
トがサポートされているので、それらの相違
よびレシーバーはさまざまな終端電圧で動作
ンターバル (UI) の 30%) を使用します。図
を調整するために、電 気的仕様 の最小値と
できます。
1 に 12.5Gbps での元の JESD204B ア
最大値が多少異なります。図 2 に、LV-OIF-
ま た、JESD204B イ ン タ ーフ ェ イ ス
イ ダイアグラムとアイ マスクを示します。こ
11G-SR 物 理 層 の 電 気 的 仕 様 のパ ラメー
は、1 つ のリンク上で デー タを複 数のコン
のアイ マ スクは、 垂 直 軸 と 水 平 軸 の 両 方
ターを示します。この層は JESD204B の
バーター用に分割できます。リンク レートが
で利用可能な確 定的な量のマージンを許容
最大データ レートである 12.5Gbps で使用
12.5Gbps に上がると、同一リンク上に共存
します。この 12.5Gbps のアイ マスクは、 されます。
できるコンバーターの数が増えます ( ほかの
11.1Gbps の速 度に基づいた LV-OIF-11G-
複数の仕様がある AC カップリング方式
変数がすべて一定の場合でも。図 3 を参照 )。
SR 仕様を満たしていますが、12.5Gbps で
の利点の 1 つは、DC カップリング方式に
2 個、4 個、8 個、および 16 個のコンバー
は、11.1Gbps よりももっと厳しいタイミン
比べて、リンク上ではるかに広い範囲のコモ
ターを 1 つのパッケージに搭載したデバイス
グ要件が課されると考えられます。
ンモード電圧をサポートできることです。必
では、この機能は特に便利であり、LVDS イ
要に応じてレベルをシフトできるため、( 複
ンターフェイスに対する大きなメリットになり
3 種類の PHY
数のベンダーから提供される ) JESD204B
ます。LVDS は、I/O 構造として 1 個のコ
JESD204B はシリアル デ ー タ伝 送 用
トランスミッターおよびレシーバーのシステ
ンバーターに対するダイレクト I/O をサポー
の 3 種類の物理層をサポートします。これ
ム デザイン要件が 軽 減されます。AC カッ
トしますが、I/O 上で複数のコンバーターか
らの 物理 層は LV-OIF 仕様によって定義さ
プリング 方 式 の デー タ レーンの 2 つ目の
らのデータを結合する手法は明示的に定義
れ、JESD204B の 最 大 レ ーン レ ート に
利 点 は、 コ モ ン モ ード ノイ ズ がトラン ス
していません。JESD204B には、複 数の
よって分類されます。3 種類の物理層の各カ
ミッターとレシーバー の間で 分 離 されるた
コンバーターからのデータを結合してシリア
46 Xcell Journal 86 号
TOOLS OF XCELLENCE
図 2 – LV-OIF-11G-SR JESD204B、12.5Gbps トランスミッターの電気的仕様は、 リンク上のコモンモード電圧終端の柔軟性を示しています。
図 3 – さまざまなサンプル レートおよびチャネル数を使用するコンバーターの比較は、 I/O 数の大きな差を示しています。12.5Gbps で動作する JESD204B インターフェイスが使用する ピンの数は、1Gbps で動作する LVDS インターフェイスの 10 分の 1 です。 ル送信し、同じピン上で伝送するための明確
想コンバーターを利用して、JESD204B リ
JESD204B インターフェイスは、これらの
な仕 様 が 存 在します。しか も、それぞ れの
ンク上で複数のコンバーター用のデータを送
課題のいくつかを解決するのに役立ちます。
デバイス データのソースは、実際 の固定的
信できます。
それに対して、LVDS DDR レーンは高いサ
なハードウェア コンバーターである必要はあ
ンプル レートでの帯域幅と性能に追いついて
りません。単一のハードウェア コンバーター
システムに最適なコンバーターの選択
いないため、LVDS インターフェイスでこれ
からの複数のデジタル処理出力の 1 つとし
コンバーター の高 速化に向けた 飽くなき
らの課題に対処しようとすると、レーンの数
て、出力データが 実 数 パスと複素 数 パスの
帯域幅への要求は、省電力化と性能向上の
を増やさなければなりません。コンバーター
2 つに分割される、 「仮想コンバーター」フィ
ために、より高度な CMOS プロセス ノー
のデジタル インターフェイスの ピン I/O、 カッ
ルターからのデータであってもかまいません。 ドへの移行をデザインに促しています。この
プリング、および電源ドメインの要件が、シ
90 度位相サンプリングに実数データと虚数
トレンドは、新しいインターフェイスへの課
ステムに最適なコンバーター選びの判断基準
データ (I&Q) を使用する通信システムも、仮
題をもたらします。最高速度 12.5Gbps の
になることを覚えておきましょう。
http://japan.xilinx.com/ 47
TOOLS OF XCELLENCE
How to Bring an SMC-Generated Peripheral with AXI4-Lite Interface into the Xilinx Environment
SMC で生成した ペリフェラルと AXI4-Lite インターフェイスを
ザイリンクス環境に統合する方法 Sheetal Jain Senior R&D Engineer Synopsys skj@synopsys.com
48 Xcell Journal 86 号
TOOLS OF XCELLENCE
SMC ホスト インターフェイス
Synphony Model Compiler (SMC) は、Simulink® お よび MATLAB® で 作 成 さ れ た デ ザイン を 合 成し
ブロックを使用すれば、
て ASIC および FPGA ターゲット用に最適化された
Synphony Model Compiler で
ルです。SMC には、Simulink 環境で数値演算用、信
作成したデザインをザイリンクス
包括的な高位レベルのモデル ライブラリが含まれてい
エンベデッド プラットフォームに
ス デザイン環境内で、シングルレートまたはマルチレー
簡単に統合できます。
RTL を生成する、Synopsys 社のモデルベース ツー 号処理用、および通信用のデザインを作成するための ます。このライブラリにより、高位レベルのモデルベー トの固定小数点演算 / 浮動小数点演算アルゴリズムを キャプチャして、その機能のデバッグを簡単に行えま す。SMC RTL 生成エンジンは、これらの検証済みモ デルを使用して RTL を自動的に生成します。生成した RTL は、ハードウェア インプリメンテーションや、複 数のアーキテクチャの実装面積、性能、消費電力、お よびスループットのトレードオフの迅速な検討に使用 できます。SMC の高位合成エンジンは、トップレベル のデザインと MATLAB 言語入力を取り込み、選択し たハードウェア ターゲット用に最適化された RTL を 生成します。また、SMC はデザイン用の RTL テスト ベンチとともにビット / サイクルに正確な C モデルおよ び SystemC ラッパーを自動的に生 成し、SystemC シミュレーション環境内での生成されたハードウェアの 検証を可能にします。 多くのアプリケーションでは、設計者は何らかの信 号処 理 機能を実 行するための ペリフェラルを作成し、 ザイリンクス MicroBlaze ™ ソフト プロセッサ コア などのホスト プロセッサを介してこのペリフェラルを 構成する必要があります。ホスト プロセッサは、通常 は AMBA® AXI4 または AXI4-Lite などの標準的な バス インターフェイスを使用してペリフェラルに接続し ます。SMC ライブラリには、ホスト プロセッサにス レーブ インターフェイスをインプリメントするホスト イ ンターフェイス ブロックが含まれています。このホス ト インターフェイス ブロックは、AXI4-Lite、APB、 Generic Interface、 および Avalon-MM バス インター フェイス プロトコル標準をサポートします。またホス ト インターフェイス ブロックは、FIR フィルター係数、 数値制御オシレーター (NCO) の周波数と位相の設定、 可変長 FFT ブロックの FFT 長など、SMC デザイン を構成するのに必要なメモリマップ レジスタをインプ リメントします。ホスト インターフェイス ブロックは、 これらのメモリマップド レジスタを、非同期を含む任 意の希望のサンプル レートでバス インターフェイス ク ロックにインプリメントできます。バス インターフェイ スとメモリ マップの設定値は、ホスト インターフェイス ブロックの UI 内で指定できます。設計者は、ホスト インターフェイス ブロックを使用して、SMC デザイン をバス インターコネクトまたはバス マスターに接続で きます。
http://japan.xilinx.com/
49
TOOLS OF XCELLENCE
図 1 – SMC バス インターフェイス プロトコルの仕様
本 稿 で は、SMC ホスト インターフェイ ス ブロックで設計したペリフェラルをザイリ
インターフェイス ブロックを使用してバス イ ンターフェイス プロトコルとメモリ マップを
ンクス エンベデッド開発キット (EDK) プロ
最初に、SMC ライブラリ ブロックを使用
構成する方法を示します。
ジェクトにインポートし、統合する方法につ
してペリフェラルのアルゴリズムのインプリメ
統 合を容 易にするために、必須 ではあり
いて詳しく説明します。また、標準的なバス
ンテーションを作成し、その機能を検証しま
ませんが、ザイリンクス EDK が要求する命
インターコネクトを介してペリフェラルに接
す。次に、( メモリ マップのパラメーターを
名規則に従って SMC モデル内のバス イン
続される MicroBlaze ホスト プロセッサか
定義する ) アルゴリズム部分のコンフィギュ
ターフェイス ポートの名前を付けることを強
らの AXI4-Lite トランザクションをシミュ
レーション データと ( バス インターフェイス
く推奨します。標準的な AXI4-Lite インター
レートする方法についても検討します。この
のパラメーターを定義する ) システムのイン
フェイスの 信号名に「S_AXI_」を 追 加しま
プロセスには、次の 4 つの主な手順があり
ターコネクト バス プロトコルの 2 つの要因
す。たとえば、AXI アドレス書き込みチャネ
ます。
に基づいて、SMC ホスト インターフェイス
ル (AWADDR) のアドレス 信 号 は S_AXI_
ブロックを構成します。次に、 ホスト インター
AWADDR という名前にします。AXI4-Lite
フェイス ブロックをペリフェラルのアルゴリ
の命名規則に従わない信号については、ペリ
ズム部分に接続します。ホスト インターフェ
フェラルをザイリンクス EDK にインポートす
イス ブロックの一部のパラメーター ( たとえ
るとき、ポート名を AXI4-Lite の信号名に対
ば、バス インターコネクト、アドレス幅、ベー
応付ける機会がもう一度あります。また、ザ
ス アドレスなど ) は、ターゲットとするプラッ
イリンクス EDK は名前に大文字を含むペリ
1. IP コアおよびホスト インターフェイス ブロックと ( デザイン用の最適化された RTL インプリメンテーションを生成する ための ) SMC RTL 生成エンジンを使用 して、Simulink 内でペリフェラルを作成 します。 2. 作成したペリフェラルをザイリンクス EDK プロジェクトにインポートし、デザイ ンのそれ以外の部分と統合します。 3. SDK 内でソフトウェア アプリケーション を開発します。 4. RTL を生成してシミュレーションを行い、 ハードウェアとソフトウェアの機能の正しさ をチェックします。
手順 1 : SMC ライブラリを使用して ペリフェラルを作成する
50 Xcell Journal 86 号
トフォームによって決まります。この例では、 フェラルをサポートしないため、Simulink モ プラットフォームにザイリンクス Virtex® -7
デル名には大文字を使用しないでください。
FPGA を 選 び、 バ ス イン タ ーフェイ ス に
ホスト インターフェイス ブロックの追加、
AXI4-Lite を選びました。このプラットフォー
構成、接続が完了したら、SMC の RTL 生
ムでは、各ペリフェラルのアドレス幅、ベース
成エンジンを使 用してペリフェラル の RTL
アドレス、およびアドレス空間に若干の制限
を 生 成しま す。RTL 生 成 エ ン ジ ン が ター
が課されます。アドレス幅は 32 ビット、ベー
ゲット デバイスに最 適化されたハードウェ
ス アドレスは 4K バイト の倍数でなければ
アを生成するように、SMC の UI 内でター
ならず、利用可能な最小アドレス空間は 4 K
ゲット デバイス、インプリメンテーション パ
バイトになります。図 1 と図 2 に、ホスト
ラメーター、および 最 適 化制 約を指 定しま
TOOLS OF XCELLENCE
す。SMC が生成したトップ RTL 内で、 「C_ BASEADDR」と「C_HIGHADDR」の 2 つ
手順 2 : ペリフェラルをザイリンクス EDK にインポートし、統合する
ウィザードの次のページで、EDK がバス インターフェイスを接続できるように、ペリ
の仮想パラメーター ( トップ RTL が VHDL
次の手順では、ペリフェラル ハードウェア
フェラルの AXI4-Lite ポートを選択し、標
の場合はジェネリック ) を追加します。ご使
を EDK の Xilinx Platform Studio (XPS)
準的な AXI4-Lite ポートにマッピングしま
用の IP コアの仕様に合わせて、これらのパラ
にイン ポートし、システム 内 で必 要 な 接 続
す。SMC モデル内で定義されたバス イン
メーターのデフォルト値を、メモリ マップド
( バス インターフェイス ポートおよびファン
ターフェイス ポートの名前が 標準的なバス
空間のベース アドレスとメモリ マップド空間
クション ポート ) を行います。この例では、 ポート名と一致する場合は、EDK はそれら
の最上位アドレスに割り当てます。EDK がペ
Micro-Blaze プロセッサ、実行ソフトウェア
のポートを自動的にマッピングします ( 図 4
リフェラルのメモリ マップド アドレス空間を
格 納 用のブロック RAM (BRAM)、ローカ
を参照 )。
識 別するには、この手順が必要です。SMC
ル メモリ バス (LMB)、AXI4-Lite インター
たとえば AXI4-Lite クロック (Clk-Div3)
で生成したデザインのトップレベル Verilog
コネクト、および Micro-Blaze デバッグ モ
信号やリセット (GlobalReset) 信号で解る
RTL の例を次に示します。追加する必要のあ
ジュールで構成される基本システムを作成し
ように、ポート名が一致しない場合は、自動
る 2 つのパラメーターがハイライト表示され
ました。
マッピングを無効にして上書きできます。
ています。
XPS GUI の [Hardware] カテゴリで [Cre-
次に、レジスタ空間の ベース アドレスと最
ate or Import Peripheral] オプションを選
上位アドレスを、手順 1 で RTL に挿入され
択しま す。Create and Import Peripheral
た C_BASEADDR および C_HIGHADDR
ウィザードが 開 きま す。この ウィザード で
パラメーターとしてそれぞれ指定します。ホ
(__list_of_ports_will_be_available_
[Import existing peripheral] オプション
スト インターフェイス ブロックはアドレス指
here__
を選択します。次に、ペリフェラルを格納す
定可能なコンフィギュレーション レジスタ空
るパス、デザイン名、およびファイル タイプ
間を持っているため、メモリ空間オプション
(HDL) を指定します。ここで、SMC で生成
をオフにします。しかし、次のページの RTL
module host_inferface_for_edk_top
); parameter C_BASEADDR = 32’h41418000; parameter C_HIGHADDR = 32’h41418fff;
されたすべての RTL ファイルを追加します。 パラメーターのデフォルト属性は変更せずに RTL のコンパイルが正常に終了したら、ペリ
そのまま残し、ホスト インターフェイス ブ
フェラルがサポートするバス インターフェイ
ロック内で指定したパラメーターと確実に一
ス ( すなわち、図 3 に示すように、AXI4-
致するようにします。
Lite スレーブ インターフェイス ) を指定する
次のスクリーン画面は [Port Attributes]
必要があります。
というタイトルです。ここでは、デザイン内
図 2 – SMC ホスト インターフェイス ブロックのメモリ マップ パラメーターの設定
http://japan.xilinx.com/
51
TOOLS OF XCELLENCE
図 3 – ペリフェラルがサポートするバス インターフェイスの指定 (ここでは AXI4-Lite)
図 4 – 該当する AXI4-Lite バス インターフェイス信号への RTL ポートのマッピング
52 Xcell Journal 86 号
TOOLS OF XCELLENCE
図 5 – クロック ポートおよびリセット ポート用に指定された信号タイプを含む *.mpd ファイル
図 6 – AXI4-Lite バスと MicroBlaze プロセッサに接続された、SMC で生成したデザイン の追加のクロックまたはリセットに対するそ
ロセッサ ペリフェラル記述 (*.mpd) ファイル
れらのクロックまたはリセットの属性を指定
と、ペリフェラルのパラメーターおよびポー
する必要があります。次のスクリーン画面で
トに関する情報が含まれます。クロック / リ
[Finish] をクリックして、XPS プロジェクト
セット ポート上で SIGIS = CLK パラメー
にペリフェラルを追 加します。これで SMC
ターと SIGIS = RST パラメーターが定義さ
ペリフェラルは XPS に正しくインポートさ
れていることを確認します。これらのパラメー
れました。このことは <project_working_
ターが定義されていない場合は、*.mpd ファ
directory>/pcores フォル ダー を チェック することで確認できます (XPS はここにペリ
ます。[XPS Core Config] ウィンドウが開 きます。このウィンドウのパラメーターは編 集しないでください。ザイリンクス EDK フ ローに従って、デフォルトの設定値を変更せ ずにそのまま残します。指定されたアドレス 空間を EDK が受け入れない場合は、指定し
たメモリ マップ内でデザイン内のほかの何 イルを編集して手作業で定義を追加します。 らかのペリフェラルと競合していることを示 図 5 に、これらのパラメーターが追 加され します。この場合は、SMC に戻り、新しい
フェラルの名前のディレクトリを作成する )。 た *.mpd ファイルの例を示します。 このディレクトリに移動して、RTL ファイルが
これで、XPS GUI の [IP Catalog] セク
正しくインポートされたことを確認します。
ションの [Project Local PCores] の下の
XPS は、HDL ディレクトリと 並 行して
[USER] サブカテゴリに、インポートされた
data という名前のディレクトリを作成しま
ペリフェラルが表示されます。ペリフェラル
す。この data ディレクトリには、マイクロプ
名を右クリックし、[ADD IP] をクリックし
ベース アドレス値を指定して RTL を再生成 してから、上記の手順を繰り返して SMC ペ リフェラルをインポートする必要があります。 正しいベース アドレス値と最上位アドレス値 が利用可能になったら、[Core Config] ウィ ンドウで [OK] をクリックします。
http://japan.xilinx.com/
53
TOOLS OF XCELLENCE
ここで、XPS GUI の [Project] カテゴリ で [Export hardware design to SDK] オ プションを選択し、ザイリンクス ソフトウェ ア開発キットにハードウェアをエクスポート します。RTL シミュレーションのみを実行す る場合は、ビットストリームを生成する必要 はありません。エクスポートの完了後、XPS は、SDK に対してハードウェアを記述する *.xml ファイルを作成します。このファイル は、通常は <project_ working_directory>/ SDK/SDK_Export/hw フォルダーに作成さ れます。 図 7 – *.mhs ファイルに挿入された、クロック ポートおよびリセット ポートの接続
手順 3 : ザイリンクス SDK を使用して ソフトウェア ドライバーを開発する
統合プロセスの次の手順では、ザイリンク ス SDK を使用してソフトウェア ドライバー を 開 発 し ま す。SDK を 起 動 し、*.xml の ソースとなるハードウェア プラットフォーム 仕様プロジェクトを作成します。EDK 内で [Export and Launch] オプションが選択さ れている場合、プロジェクトは自動的に作成 され、XPS 内の IP ブロックとアドレス マッ プ情報が SDK プロジェクト内で利用可能に なります。 ボード サポート パッケージ (BSP) を作成 する前に、ペリフェラル用のドライバー ファ イルを作成する必要があります。標準的なド ライバー ヘッダー ファイルは、メモリマップ ド レジスタのオフセット アドレスと、これら のレジスタの読み出し / 書き込み用のプロト タイプを定義しなければなりません。 SDK プ ロジェクト リポジトリにドライ バー ファイルをコピーしてドライバーを指定 し、次に BSP プロジェクトを作成します。 図 8 – テストベンチ テンプレートおよびビヘイビアー シミュレーション モデルを生成する プロジェクトのセットアップ
新しい空のアプリケーション プロジェクトを 開き、ペリフェラルとの間でデータの読み出 し / 書き込みを行うためのソフトウェアを作
XPS は [Instantiate and Connect IP]
的に接 続されてい ない 場 合 は、<project_
成します。このプロジェクト内で、この手順
GUI を開きます。利用可能なプロセッサに
working _director y> 内 のマイクロプ ロ
の最初の作業で作成したハードウェア ター
よって駆動されるインターコネクト バスにペ
セッサ ハードウェア仕様ファイル <project_
ゲット プラットフォームと、作成したばかり
リフェラルを自動的にリンクするように XPS
name>.mhs を編集します。図 7 に、クロッ
の BSP を 指 定 し ま す。[BSP Settings]
ツールに指示することも、手作業でペリフェ
ク ポートおよびリセット ポートが追 加され
ウィンドウに、デザイン用のペリフェラル ド
ラルを接続することもできます。接続が完了
た *.mhs ファイルを示します。
ライバー コアが表示されます。
すると、図 6 に示すインターフェイス接続が
次 に、[System Assembly View] ウィン
アプリケーション プロジェクトには、アプ
表示されます。
ドウの [Ports] タブを使用して、デザインの
リケーションのソフトウェア コードが書き込
AXI4-Lite に関 連 するクロックおよびリ
非 AXI4-Lite ポートを接続します。[System
まれる main.cc ファイルが含まれます。こ
セ ット が [Graphical Design View] タ ブ
Assembly View] の [Addresses] タブで、ペ
のファイルが作成されると、SDK は自動的
のバ ス インターフェイス 接 続 内 で 接 続 さ
リフェラルのアドレス空間が表示され、アドレ
にこのコードをコンパイルし、RTL シミュ
れて い ることを 確 認しま す。これらが自動
ス範囲がロックされていることを確認します。
レーション環 境内でソフトウェア コードの
54 Xcell Journal 86 号
TOOLS OF XCELLENCE
シミュレーションに使用される *.elf ファイル
[Choose Simulation Elf file] をクリックし
を作成します。
て、SDK が作成した Elf ファイルのパスを
アプリケーション プロジェクトには、アプ
指定します。このファイルはアプリケーショ
リケーションのソフトウェア コードが書き込
ン プロジェクト フォルダーにあります。テ
まれる main.cc ファイルが含まれます。簡
ストベンチ テンプレートとビヘイビアー シ
用して、SMC で 生 成したペリフェラル を、
単な例として、メモリ マップの最初の 2 つ
ミュレーション モデル ( 図 8 を参照 ) を作
AXI4-Lite スレーブ インターフェイスを 使
の レ ジ ス タ (Status_register と Control_
成するには、GUI の [Project] カテゴリで
用するザイリンクス エンベデッド プラット
register) に値を書き込むプログラムが考えら
[Project Options] の [Design Flow] タブ
フォームに統合するのは簡単です。SMC と
れます。このファイルが作成されると、SDF
の設定値を選択します。
ザイリンクス エンベデッド プラットフォー
は自動 的にコードをコンパイルし、RTL シ
次に、[Generate HDL Files] をクリック
ムの組み合わせは、ホスト プロセッサと統
ミュレーション環境内でソフトウェア コード
して HDL ファイルを 作成し、ISE (ISim)
合される DSP ペリフェラル の 設 計と開 発
のシミュレーションに使用される *.elf ファイ
HDL シミュレータを起動して機能の正しさ
に役立つ強力なツール セットを提供します。
ルを作成します。手順 4 に示すように、この
をチェックします。図 9 に、SDK プロジェク
SMC 内のホスト インターフェイス ブロック
*.elf ファイルを使用して機能を検証できます。
ト内のソフトウェア C コードで MicroBlaze
は、統合をシームレスに完了し、エンベデッ
プ ロ セッ サ が 開 始した AXI4-Lite トラン
ド プラットフォーム用の強力なソリューショ
手順 4 : XPS 内で RTL ファイルを 生成する
ザクションを示します。ペリフェラルの最初
ンを作成するのに必要なインターフェイスを
の 2 つ のレ ジ スタ (Status_ register と
提供します。
最 後 の 手 順 で は、XPS 内 で RTL を 生
Control_register) の 値 が 予 想ど おりに 変
SMC の詳細は、http://www.synopsys.
成し、シミュレーションを行ってハードウェ
化して い ることに注 意してくだ さ い。ペリ
c o m / S ystems / Blo ck D esig n / H L S /
アとソフトウェアの 機 能 の正しさを 検 証し
フェラル の インターフェイス 上 の 対 応 する
P a ges / S y nph o ny - M o del - C o mpile r.
ます。XPS GUI 内で、[Project] カテゴリ
AXI4-Lite 信号は、SMC で作成したペリ
aspx?cmp=fpga-xcell-85-smc をご覧
®
の [Select Elf file] オプションを選択し、 フェラルがエンベデッド プ ロジェクトに正
しく統合されたことを示しています。
強力なツール セット
ホ スト イン ターフェイス ブ ロック を 使
ください。
図 9 – MicroBlaze プロセッサによって開始された AXI4-Lite トランザクション
http://japan.xilinx.com/
55
Xilinx Introduces Vivado Design Suite 向け UltraFast ™ 設計手法 ®
ザイリンクス
UltraFast 設計手法は迅速で予測可能な
設計サイクルを可能にします。
■東京エレクトロン デバイス(株) TEL(045)443-4016 x2web@teldevice.co.jp ■アヴネット・インターニックス(株) TEL(03)5792-8210 EVAL-KITS-JP@avnet.com ■(株)PALTEK TEL(045)477-2005 nfo_pal@paltek.co.jp ■新光商事 (株) TEL(03)6361-8086 X-Pro@shinko-sj.co.jp
©Copyright 2014 Xilinx, Inc. All rights reserved. ザイリンクスの名称およびロゴは、米国およびその他各国のザイリンクス社の登録商標および商標です。
詳細はこちら
: japan.xilinx.com/ultrafast