02.08.2013 Views

高性能画像信号処理における ザイリンクス XtremeDSP ... - Xilinx

高性能画像信号処理における ザイリンクス XtremeDSP ... - Xilinx

高性能画像信号処理における ザイリンクス XtremeDSP ... - Xilinx

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>高性能画像信号処理における</strong><br />

<strong>ザイリンクス</strong><br />

<strong>XtremeDSP</strong> ソリューションと<br />

その設計手法について<br />

<strong>ザイリンクス</strong>株式会社


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 2<br />

アジェンダ<br />

• 医療画像処理における DSP の需要<br />

• <strong>ザイリンクス</strong> FPGA<br />

– 超高性能 DSP を搭載したプログラマブル プラットフォーム<br />

– DSP48E スライス<br />

– 基本的な DSP 機能ブロック<br />

• 医用・医療機器における画像処理アルゴリズム<br />

– デジタル ビームフォーミング (DBF)<br />

– フィルタ付きバック プロジェクション (FBP)<br />

• <strong>ザイリンクス</strong><strong>XtremeDSP</strong>開発ツール<br />

• まとめ


最初の CT スキャナは<br />

1970 年代に導入<br />

-1 画像のスキャンに約 4 分<br />

- シングル ビームと検出器<br />

- 広い切断面間隔<br />

最新の CT スキャナ<br />

-64画像を 1 秒以下で処理<br />

- マルチスライス スパイラル<br />

スキャン<br />

- デュアル ソース<br />

- より狭い切断面間隔<br />

(0.5mm 以下)<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 3<br />

医療技術の略史 –CT スキャナ<br />

Images Courtesy of Metropolitan Diagnostic Imaging<br />

-2D 画像<br />

- 小さな画像サイズ<br />

-2D & 3D 画像<br />

- 大きな画像サイズ<br />

- より高品質<br />

傾向 : より多くのデータがさらに高速処理されるようになった


医療技術の略史 – ウルトラサウンド<br />

最初のウルトラサウンドは<br />

50 年半ばに導入<br />

- アナログ処理チェーン<br />

- 周波数が低い<br />

最新のウルトラサウンド<br />

- デジタル処理チェーン<br />

- より高い周波数 (50Hz)<br />

- 移動可能<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 4<br />

Photo courtesy of Dynamic Imaging Limited, and Siemens Medical<br />

機器 画像<br />

-2D 画像<br />

- 小さな画像サイズ<br />

-2D、3D、4D<br />

- 大きな画像サイズ<br />

- より高品質<br />

傾向 : より多くのデータがさらに高速処理されるようになった


<strong>ザイリンクス</strong> FPGA<br />

「高性能 DSP を搭載した<br />

プログラマブル プラットフォーム」


Virtex-5 SXTデバイス<br />

5VSX35T 2,720 CLB 84 BRAM 192 DSP48E<br />

Largest device - 5VSX95T 7,360 CLB 244 BRAM 640 DSP48E<br />

8 PCIe Lanes<br />

8 PCIe Lanes


B<br />

A<br />

C<br />

BCOUT<br />

18<br />

25<br />

48<br />

BCIN<br />

0<br />

1<br />

ACOUT<br />

0<br />

1<br />

ACIN<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 7<br />

Virtex-5 DSP48E スライス<br />

B REG<br />

CE<br />

D Q<br />

2-Deep<br />

A REG<br />

CE<br />

D Q<br />

2-Deep<br />

C REG<br />

CE<br />

D Q<br />

18<br />

25<br />

48<br />

A:B<br />

M REG<br />

CE<br />

D Q<br />

遅いスピード グレードでも 450MHz で動作<br />

72<br />

36<br />

0<br />

36 0<br />

1<br />

0<br />

17-bit shift<br />

17-bit shift<br />

X<br />

Y<br />

Z<br />

7<br />

OpMode<br />

48<br />

ALU Mode<br />

4<br />

CarryIn<br />

48<br />

48<br />

PCIN<br />

P REG<br />

CE<br />

D Q<br />

48<br />

PCOUT<br />

= PATTERN<br />

DETECT<br />

C or MC<br />

P


DSP 設計に必要な共通ファンクション<br />

A<br />

B<br />

C<br />

• これらは、DSP に必要な主要演算ファンクションの構築ブロックを形成する<br />

• 乗算加算、累積乗算、および加算器チェーンのカスケード接続機能はデザイ<br />

ンのパフォーマンスを上げるために必要<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 8<br />

DSP48E は DSP の重要なファンクションを提供<br />

乗算器<br />

opmode = 0000101<br />

P<br />

P<br />

加算器 / アキュームレータ 乗算加算<br />

opmode = 0110010<br />

A<br />

B<br />

A<br />

B<br />

C<br />

累積乗算<br />

opmode = 0100101<br />

opmode = 0110101<br />

P<br />

P


Average Power (mW)<br />

DSP48E スライスでの消費電力削減<br />

70.0<br />

60.0<br />

50.0<br />

40.0<br />

30.0<br />

20.0<br />

10.0<br />

0.0<br />

0 200 400 600<br />

Frequency (MHz)<br />

Conditions: 25C, nominal Vcc, Fully pipelined, (50% input toggle rate)<br />

based on HW test results, dynamic power consumption<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 9<br />

Virtex-4 –25x25:14.3mW/100MHz<br />

ダイナミック電力の削減 :<br />

各 DSP48E スライスで 40%<br />

各 25 x 25 乗算器で 70%<br />

Virtex-5 –25x25: 3.6mW/100MHz<br />

Virtex-4 –18x18: 3.0mW/100MHz<br />

Virtex-5 –25x18:1.8mW/100MHz


基本的な DSP機能ブロック


Sample Rate (Mhz)<br />

Log Scale<br />

500<br />

400<br />

300<br />

200<br />

100<br />

50<br />

10<br />

0.5<br />

5<br />

1<br />

1<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 11<br />

5<br />

Parallel FIR Filters<br />

Sequential FIR Filters<br />

10<br />

高性能フィルタ<br />

20 50<br />

100<br />

Number of Coefficients (N)<br />

Log Scale<br />

Semi-Parallel<br />

FIR Filters<br />

200 500<br />

1000<br />

• FPGA は、DSP48E を使用して<br />

性能の異なる、すべての範囲の<br />

フィルタをインプリメント可能<br />

• 医療画像処理では、サンプル<br />

レートが 50MHz 以上の高性能<br />

フィルタが最も重要<br />

• 高性能ストラクチャでは、複数の<br />

DSP48E を同時に使用して<br />

ターゲットの演算速度を達成する


パラレル接続されたシストリック FIR フィルタ<br />

x(n)<br />

18<br />

係数は左から<br />

右に行くに従って<br />

大きくなるため、<br />

係数が増加するに<br />

したがって、レイテ<br />

ンシも増加する<br />

K0 K1 K2 K29<br />

K30<br />

0<br />

DSP48E Slice<br />

opmode = 0000101<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 12<br />

フィルタ仕様 : サンプリング周波数 = 450MHz、係数 = 31<br />

入力時間の一連の遅延は、係数の数と<br />

無関係に、パフォーマンスを最大にする<br />

ために DSP スライス内部で生じる<br />

DSP48E Slice<br />

opmode = 0010101<br />

最大サンプル レート = クロック レート<br />

シストリック FIR フィルタと言われる、この<br />

フィルタ 構造は、実際に 1 段階多くパイプ<br />

ライン化されている Direct Form である<br />

パフォーマンスを最大にするために<br />

専用のカスケード接続 (PCOUT と<br />

PCIN) を使用<br />

41<br />

y(n)<br />

フィルタ サイズ :<br />

DSP48E スライス 31 個


x(n) 16<br />

K0<br />

K1<br />

K2<br />

K3<br />

4 つの乗算器をパラレル接続した FIR<br />

K4<br />

K5<br />

K6<br />

K7<br />

CE<br />

0 D Q<br />

DSP48E Slice<br />

opmode = 0000101<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 13<br />

フィルタ仕様 : サンプリング周波数 = 100MHz、係数 = 16<br />

各エンジンを駆動する入力セットの格納には<br />

SRL16E が必要なため、入力時間の一連の<br />

遅延は、Xtreme DSP スライス外部で生じる<br />

18 18 18 18<br />

18 18 18 18<br />

DSP48E Slice<br />

opmode = 0010101<br />

メモリのアドレス指定で加算器チェーンのパイプ<br />

ライン レジスタのバランスが取られるため、各バッ<br />

ファ アドレスは 1 クロック サイクルずつ遅れる<br />

最大サンプル レート =<br />

クロック レート x 乗算器数<br />

タップ数<br />

K8<br />

K9<br />

K10<br />

K11<br />

アドレス指定で重要なことは、各 SRL16E および<br />

係数メモリ バッファでその方法が同じ<br />

K12<br />

K13<br />

K14<br />

K15<br />

より低速なキャプチャ レジスタで<br />

最終的な出力が取得される前に<br />

必要となる、 4 クロック サイクル<br />

分の結果を累積するため、追加の<br />

Xtreme DSP スライスが必要<br />

DSP48 Slice<br />

opmode = 0010010<br />

40<br />

40<br />

y(n)<br />

フィルタ サイズ :<br />

DSP48E スライス 5 個<br />

LUT6-FF ペア 208 個<br />

(24 個は制御用)


FIR Compiler v3.0<br />

「ボタン操作のみで最大パフォーマンスの FIR を作成」<br />

シンプルなウィザードに従うだけで、最大パフォーマンスと最小エリアの FIR を作成<br />

[Resource Estimation] パネルを使用すると、迅速なリソース解析が可能<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 14<br />

FIR フィルタ アルゴリズムの<br />

仕様すべてを設定可能<br />

- タップ数<br />

- チャネル数<br />

- フィルタ タイプ –Single、<br />

Multi または Fractional Rate<br />

- ビット幅<br />

クロック周波数が指定できるため<br />

パフォーマンスとエリアの<br />

トレードオフが可能<br />

インプリメントするために<br />

システム仕様を検証


医療画像における標準的な FFT<br />

• 下の表は、医療画像処理システムに適切な標準的な FFT および<br />

ハードウェアにインプリメントする際の要件<br />

• 非常に高性能な機能が実装されることに注目<br />

ポイント数 1,024<br />

4,096<br />

サンプル レート<br />

300MHz<br />

300MHz<br />

バッファ サイズ (ワード数) 2,048<br />

2,048<br />

ステージ数<br />

10 12<br />

バタフライ数/ステージ<br />

512 2,048<br />

バタフライ総数<br />

5,120<br />

24,576<br />

乗算数<br />

クロック サイクル (300MHz)<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 15<br />

20,480<br />

98,304<br />

1,024 4,096<br />

必要な乗算器数 16 20<br />

メモ : FFT では最後の Complex Mult は 1 倍、0 倍、-1 倍の乗算で<br />

あるため削除されます。また、必要な乗算器数は 4 つ減ります。


ストリーミング FFT のインプリメント<br />

• 医療画像処理のデータ レート (特に CT スキャナ) をサポートする FFT は、<br />

下図に示すような、高性能ストリーミング アーキテクチャでなければならない<br />

Stage 1 Stage 2 Stage 3 Stage 4 Stage 9 Stage 10<br />

N/2<br />

BF<br />

N/4<br />

BF<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 16<br />

e -j2pk/N<br />

N/8<br />

BF<br />

N/16<br />

BF<br />

大きなバッファには BRAM が最良。<br />

FFT が大きいほど、BRAM が適している<br />

ストリーミング データ入力<br />

サンプル レート = クロック レート<br />

e -j2pk/N<br />

N/512<br />

BF<br />

N/1024<br />

BF<br />

ポイント数 1,024 4,096<br />

ステージ数<br />

乗算器数<br />

10 12<br />

16 20


DSP48E SIMD により高性能を実現<br />

• バタフライで 450MHz のパフォーマンスを実現、<br />

DSP48 加算器を活用し、使用 DSP48 スライス数を削減<br />

RXm<br />

IXm<br />

16 ビットを超える<br />

大きな加算器では、<br />

最大のクロック<br />

スピードは実現されない<br />

RXn<br />

IXn<br />

DSP48E の SIMD モードでは、<br />

コスト効率を向上させるために<br />

バタフライで最高速度が実現できる<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 17<br />

24<br />

24<br />

24<br />

24<br />

DSP48E Slice<br />

opmode = 0010011<br />

ALU Mode = 0000<br />

DSP48E Slice<br />

opmode = 0010011<br />

ALU Mode = 0011<br />

25<br />

25<br />

25<br />

25<br />

RYm<br />

IYm<br />

RYn<br />

IYn<br />

FFT バタフライの<br />

サイズおよびパフォーマンス :<br />

DSP48E スライス 2 個<br />

450MHz


A<br />

jB<br />

C<br />

jD<br />

18<br />

18<br />

18<br />

18<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 18<br />

DSP48E Slice<br />

opmode = 0010101<br />

DSP48E Slice<br />

opmode = 0000101<br />

0<br />

DSP48E Slice<br />

opmode = 0010101<br />

DSP48E Slice<br />

opmode = 0000101<br />

0<br />

高性能で複雑な乗算器<br />

37<br />

37<br />

real<br />

2 つのレジスタ入力を使用して、<br />

カスケード接続したパイプラインの<br />

バランスをとっていることに注目<br />

imag<br />

通常の計算式<br />

(a+jb).(c+jd) = [a.c - b.d] + j[b.c + a.d]<br />

real imag<br />

従来のツリーではなく、加算器チェーンが<br />

どのように活用されるかに注意。これは<br />

DSP48 内部にファンクションを保つための<br />

基本的要素である<br />

複雑な乗算器の<br />

サイズおよびパフォーマンス :<br />

DSP48E スライス 4 個<br />

450MHz


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 19<br />

FFT v4.1<br />

「ボタン操作のみで完全な FFT を作成」<br />

シンプルなウィザードに従うだけで、最大パフォーマンスと最小エリアの FIR を作成<br />

[Resource Estimation] パネルを使用すると、迅速なリソース解析が可能<br />

FFT アルゴリズムの<br />

仕様すべてを設定可能<br />

- 変換長<br />

- チャネル数<br />

- 丸め込みおよびスケーリング<br />

- ビット幅<br />

クロック周波数が指定できるため<br />

パフォーマンスとエリアの<br />

トレードオフが可能


浮動小数点を使用するアルゴリズム<br />

• 適応システム<br />

– ビーム フォーミング<br />

– MIMO 処理 (マトリックスの反転)<br />

– レーダー システム (QRD)<br />

• 高度な通信システム<br />

– 4G<br />

– TDS-CDMA (JDR Cholesky)<br />

– JTRS スペース<br />

• スーパー コンヒューティング<br />

必要性 : より高いダイナミック範囲に対する需要、そして<br />

より低コストでの浮動小数点のインプリメントに対する需要<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 20<br />

• インダストリアル<br />

– ロボット (工学)<br />

– 外観検査<br />

• グラフィック/画像処理<br />

– 画像拡張/圧縮<br />

– ボリューム レンダリング<br />

– フィルタ付きバック プロジェクション<br />

– 3-D & 4-D 画像処理<br />

• オーディオ


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 21<br />

Virtex-4 vs Virtex-5 浮動小数点<br />

使用リソース ( LUT-FF ペア / DSP48E)<br />

177 / 3 375 / 2 80 / 0 226 / 0 237 / 0 1370 / 0 787 / 0<br />

235 / 5<br />

466 / 4 94 / 0 233 / 0 238 / 0 1370 / 0 787 / 0<br />

654 / 13 967 / 3 142 / 0 504 / 0 446 / 0 6002 / 0 3234/ 0<br />

759 / 17 1220 / 4 161 / 0 565 / 0 523 / 0 6002 / 0 3234/ 0<br />

メモ : レイテンシが最大のコアを使用<br />

Single Precision V-5<br />

Single Precision V-4<br />

Double Precision V-5<br />

Double Precision V-4<br />

Performance Goal<br />

Single Precision V-5<br />

22% Faster!<br />

Single Precision V-4<br />

Double Precision V-5<br />

28% Faster!<br />

Double Precision V-4


DSP Algorithm<br />

FIR Filter<br />

450 MSPS, 31 Tap,18-Bit<br />

FIR Filter<br />

100 MSPS, 16 Tap,18-Bit<br />

FFT<br />

300 MSPS, 1K Pt,18-Bit<br />

FFT<br />

300 MSPS, 4K Pt,18-Bit<br />

Floating Point Operators<br />

Mult / Add Single Precision<br />

Floating Point Operators<br />

Complete Set of Operators, Single Precision<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 22<br />

構築ブロックの一覧<br />

Area<br />

31 DSP48E Slices<br />

0 BRAM<br />

0 LUT6-FF Pairs<br />

5 DSP48E Slices<br />

0 BRAM<br />

208 LUT6-FF Pairs<br />

36 DSP48E Slices<br />

7 BRAM<br />

3,742 LUT6-FF Pairs<br />

44 DSP48E Slices<br />

19 BRAM<br />

4,560 LUT6-FF Pairs<br />

5 DSP48E Slices<br />

0 BRAM<br />

552 LUT6-FF Pairs<br />

5 DSP48E Slices<br />

0 BRAM<br />

1436 LUT6-FF Pairs<br />

Clock Performance<br />

450MHZ<br />

450MHZ<br />

305MHZ<br />

280MHZ<br />

410MHZ<br />

365MHZ


医療・医用機器における<br />

画像処理アルゴリズム


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 24<br />

モダリティとアルゴリズム<br />

• CT スキャナ<br />

– フィルタ付きバック プロジェクション (FBP)<br />

– Feldkamp アルゴリズム<br />

– 畳み込みエンジン<br />

– ART、SART<br />

• MRI<br />

– デジタル アップ/ダウン変換<br />

– 2-D FFT<br />

• ウルトラサウンド<br />

– デジタル ビームフォーミング (DBF)<br />

– 2-D ノイズ フィルタ<br />

– 3-D & 4-D 画像処理<br />

すべてのモダリティで、<br />

再構成後に<br />

3-D 画像処理が必要


基本的な画像処理 – スケーリング<br />

• ターゲットの表示解像度と一致するよう、入力データ ストリームを<br />

部分的に拡大<br />

• 画像入力中、フレーム バッファを使用せず、オンザフライで<br />

ピクセル処理を実行<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 25


リアルタイムでの画像リサイズ<br />

低いメモリ要件、<br />

2D アーキテクチャを 2 でアップスケーリング、4 でダウンスケーリング<br />

• 例 : 512 x 512 x 8 @ 60 f/s<br />

– 2 でアップスケーリング、4 でダウンスケーリング<br />

– 解像度は 16 ピクセル<br />

– ライン バッファおよび係数バンクに 8 個の BRAM<br />

– 垂直方向に 4 個の乗算器<br />

– 水平方向に 4 個の乗算器<br />

– 加算器ツリー<br />

– 制御ブロック<br />

http://japan.xilinx.com/products/logicore/dsp/rotation_resize.pdf<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 26<br />

Input Image<br />

Line<br />

Line<br />

1<br />

1<br />

Line<br />

Line<br />

2<br />

2<br />

Line<br />

Line<br />

n<br />

n<br />

中間バッファリングなし<br />

= フレーム レイテンシなし<br />

Vertical<br />

Vertical<br />

Horizontal<br />

Horizontal<br />

Resized<br />

Image


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 27<br />

リアルタイムでの画像回転<br />

• 非リアルタイムの画像回転には、通常、プロセッサおよびフレーム ストアが<br />

使用される<br />

• リアルタイムでの画像回転は、FPGA のバイキュービック ファンクションを<br />

使用して実行される<br />

– ピクセルが回転された配置座標に再マップされる


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 28<br />

リアルタイムでの画像回転<br />

• 医療画像処理の例<br />

• 1024 x 1024 x 12 @ 30f/s<br />

• 40MHz ピクセル クロック<br />

• 160MHz コア クロック<br />

– <strong>ザイリンクス</strong> XC2S300E FPGA<br />

• ライン バッファ用に 12 個の BRAM<br />

• RC LUT 用に 2 個の BRAM<br />

• 5 個の乗算器でピクセル算出<br />

• Sine/Cosine、2 個の BRAM<br />

• Dx、Dy 算出<br />

• Sx、Sy 算出<br />

• 制御<br />

http://japan.xilinx.com/products/logicore/dsp/rotation_resize.pdf<br />

Input Image<br />

θ<br />

Line<br />

Line<br />

1<br />

1<br />

Line<br />

Line<br />

2<br />

2<br />

Line<br />

Line<br />

3<br />

3<br />

Line<br />

Line<br />

4<br />

4<br />

Index<br />

Index<br />

Generato<br />

Generato<br />

r<br />

r<br />

Sx = Dxcos(θ) + Dysin(θ) Sy = -Dxsin(θ) + Dycos(θ) Bi-cubic<br />

Bi-cubic<br />

Calculat<br />

Calculat<br />

or<br />

or<br />

Destinati<br />

Destinati<br />

on<br />

on<br />

Generato<br />

Generato<br />

r<br />

r<br />

SRC<br />

SRC<br />

Generato<br />

Generato<br />

r<br />

r<br />

Rotated Image<br />

Destination Address<br />

H V<br />

Rc<br />

Rc<br />

Generato<br />

Generato<br />

r<br />

r


Input Image Enhanced image<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 29<br />

奥行きがある画質の実現<br />

• 画質を向上させるアルゴリズム<br />

– スパイラル フィルタによる<br />

アンシャープ マスキング<br />

– Digital Max-Detail<br />

– ガウス フィルタのラプラシアン<br />

– 適応型のヒストグラム均等化<br />

– 時間変化するものに使用する<br />

適応型のカルマン フィルタ<br />

– 非線型メディアン フィルタ<br />

– 非線型ファジー フィルタ<br />

Enhanced 1D Signal<br />

Gaussian<br />

Enhanceme<br />

nt<br />

• または、デザインにより適した<br />

アルゴリズムを自分で用意<br />

– 自分のアイディアを実現できる<br />

ASSP があるか?<br />

• FPGA は再プログラムできるため、<br />

研究開発における試行錯誤を可能に<br />

する<br />

– 製品における差別化を直接もたらす


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 30<br />

CT スキャナ システムの<br />

概要 (データ フロー)<br />

切断画像数や画像サイズの増加など、高くなる<br />

システム パフォーマンス要件を満たすには、<br />

高性能なシリアル リンクが不可欠<br />

システムにおいて非常に重要な DSP セクション :<br />

非反復および反復法などの<br />

高性能な画像再構成テクニック<br />

<strong>ザイリンクス</strong> PCI Express ソリューションは<br />

FPGA に組み込まれた唯一のソリューションで、<br />

低コストかつ低消費電力で PCI Express へ移行可能<br />

高い画像品質を維持するには、通常、<br />

ボリューム レンダリングおよび画像ポスト プロセス<br />

での浮動小数点の使用が不可欠


検出器信号からの<br />

画像線積分<br />

Input<br />

Source<br />

フィルタ付きのバック プロジェクション<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 31<br />

1-D 2-D<br />

Smear Data<br />

16 Projection<br />

Frequency Domain<br />

Ramp Filter<br />

Memory<br />

Controller<br />

DDR<br />

Memory<br />

Combiner<br />

16<br />

2-D Image


高性能な畳み込みエンジンの設計に最適な<br />

266 MHz<br />

24<br />

実数のみの<br />

入力データ<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 32<br />

FFT v4.1<br />

512 – 4K<br />

Virtex-5 SXT<br />

Programmable<br />

Ramp Filter<br />

IFFT v4.1<br />

512 – 4K<br />

畳み込みエンジンの<br />

サイズおよびパフォーマンス :<br />

SP48E スライス 164 個 5VSX35T の 85%<br />

BRAM 50 個<br />

5VSX35T の 60%<br />

LUT6-FF ペア 13,483 個 5VSX35T の 62%


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 33<br />

CT 画像処理プラットフォーム<br />

• CT 画像の再構成に重要なアルゴリズムのインプリメントに必要<br />

- 次を使用するフィルタ付きバック プロジェクション<br />

DDR2<br />

SDRAM<br />

Virtex-5<br />

SX95T<br />

FPGA<br />

PCI Express<br />

DDR2<br />

SDRAM<br />

- Feldkamp アルゴリズム<br />

- 逆 Radon 変換<br />

- 畳み込みエンジン<br />

-ART、SART<br />

Virtex-5<br />

SX95T<br />

FPGA<br />

DDR2<br />

SDRAM<br />

Virtex-5<br />

SX95T<br />

FPGA<br />

DDR2<br />

SDRAM<br />

Virtex-5<br />

SX95T<br />

FPGA<br />

12 個の畳み込みエンジンを並列使用<br />

(4 個の SX95T vs 12 個の Virtex-4 FX140)<br />

コストを大幅に削減!


<strong>ザイリンクス</strong><strong>XtremeDSP</strong>開発ツール


FPGA を使用した DSP 設計の課題<br />

• DSP アルゴリズムを FPGA に移行する<br />

場合に、設計者が最も難しいと考える<br />

課題はいくつかに均等に分かれている<br />

• ソフトウェア ベースの設計フローに<br />

精通した DSP 設計者は、RTL 設計法を<br />

身に付けることが FPGA を使用した<br />

設計での最大の課題だと考える<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 35<br />

Floating to Fixed<br />

25%<br />

RTL Creation<br />

17%<br />

37% 21%<br />

Test Bench Development<br />

IP / Core Integration<br />

* Source: AccelChip Survey


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 37<br />

<strong>ザイリンクス</strong> DSP 開発環境<br />

• <strong>ザイリンクス</strong>は、Mathworks 社の<br />

MATLABSimulink モデル ベースの<br />

設計環境により、完全な DSP デザイン<br />

フローを提供<br />

– AccelDSP 合成ツール<br />

• MATLAB から FPGA へ<br />

• MATLAB アルゴリズムの加速<br />

AccelDSP MATLAB からゲート<br />

– System Generator for DSP System Generator Simulink からゲート<br />

• Simulink から FPGA へ<br />

• Simulink アルゴリズムの加速<br />

• DSP システム設計<br />

• RTL 検証<br />

– DSP IP およびリファレンス デザイン<br />

– ハードウェア プラットフォーム


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 38<br />

System Generator for DSP<br />

• GUI で確認できるデータ<br />

フロー<br />

• Polymorphic ブロック<br />

ライブラリ<br />

• ビットおよびサイクル ツルー<br />

モデリング<br />

• Simulink および MATLAB と<br />

シームレスな相互動作性<br />

– テストベンチおよび<br />

データ解析<br />

• 自動コード生成<br />

– 合成可能な VHDL<br />

– IP コア<br />

– HDL テストベンチ<br />

– プロジェクトおよび制約<br />

ファイル


ハードウェア シミュレーションの加速化<br />

• System Generator は広範囲の<br />

市販ボードに対して、自動化された<br />

HIL フローをサポートする<br />

– シミュレーションのパフォーマンスは<br />

最大 1000 倍向上<br />

• データ効率解析のアルゴリズムを<br />

加速化を容易にする<br />

– Simulink から自動的に FPGA ビット<br />

ストリームを生成<br />

– FPGA インプリメンテーション<br />

ツールを透過的に使用<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 39


エンベデッド プロセッサ デザイン<br />

• DSP ソフトウェアのコンポーネントは、エンベデッド プロセッサへの<br />

インプリメントが容易<br />

– <strong>ザイリンクス</strong>の Platform Studio に統合<br />

– 共有のメモリ インターフェイスにより、System Generator の<br />

インターフェイスの詳細は簡潔化される<br />

System Generator<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 40<br />

Platform Studio pcore<br />

Platform Studio


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 41<br />

システム統合プラットフォーム<br />

• System Generator は DSP<br />

システムの RTL、アルゴリズム、<br />

ソフトウェア、インターフェイスおよび<br />

プロセッサ コンポーネントを統合する<br />

ための共通プラットフォームを提供<br />

– DSP モデリング環境で<br />

コシミュレーション<br />

– インプリメンテーション フローは 1 つ<br />

VHDL / Verilog<br />

C/C++ Models<br />

Models<br />

Echo Data<br />

DRAM<br />

Signal Data<br />

DRAM<br />

Interface<br />

Page Buffer<br />

Page Buffer<br />

ulaw/Alaw<br />

Conversion<br />

Echo Data<br />

Estimates<br />

Estimates<br />

Coefficient<br />

Signal Data<br />

ulaw/Alaw<br />

Conversion<br />

Signal Data<br />

Echo Data<br />

ulaw/Alaw<br />

Conversion<br />

Echo Data<br />

Page Buffer<br />

Speech<br />

and Tone<br />

Detection<br />

Echo Canceller<br />

MATLAB Models<br />

Disable<br />

Adaptive Algorithm<br />

and<br />

Echo Estimation<br />

Adapt<br />

System<br />

Control<br />

ulaw/Alaw<br />

Conversion<br />

Cancelled Data<br />

System Generator<br />

NLP<br />

Disable<br />

System Generator Models


AccelDSP + AccelWare デザイン フロー<br />

MATLAB での標準的な DSP デザイン フロー<br />

Floating-Pt.<br />

Algorithm<br />

Floating-Pt.<br />

Algorithm<br />

Fixed-Point<br />

Conversion<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 42<br />

AccelDSP で<br />

実行されるステップ<br />

AccelDSP /<br />

AccelWare<br />

AccelDSP デザイン フロー<br />

生産性の向上 - 最大 20 倍!<br />

Architecture<br />

Definition<br />

RTL<br />

Synthesis<br />

Create / Integrate<br />

IP Blocks<br />

Create RTL<br />

Design<br />

Refine<br />

Architecture<br />

Verify<br />

RTL<br />

• 手動設計ステップをツールが実行<br />

• 統合されたデザイン フロー<br />

RTL<br />

Synthesis<br />

「設計サイクル時間が 30% 短縮することが確認されました。<br />

これは、プロジェクト全体の 15% を削減することに等しく、<br />

2 つの大きなメリットをもたらします。1 つは、製品をより短時間<br />

で市場に投入できること、そして、もう 1 つは設計者が 1 つの<br />

プロジェクトに拘束される時間が短くなることです。」<br />

Dr. Paul Turner<br />

Principal Systems Engineer<br />

Powerwave Technologies


浮動小数点から固定小数点への変換<br />

• 浮動小数点の MATLAB モデルは<br />

自動的に固定小数点に変換<br />

– 固定小数点ビット幅<br />

– バイナリ ポイントの変換<br />

– 飽和および丸め込みロジック<br />

– プロセスはユーザー制御可能な<br />

インタラクティブ方式<br />

• 固定小数点ハードを自動的に生成<br />

• 解析機能は、精度が低下したことによる<br />

演算エラーの修正に役立つ<br />

– 信号のプローブ、固定小数点レポート、<br />

棒グラフ<br />

– オーバーフローおよびアンダーフローの<br />

レポート<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 43<br />

Accel プローブ


• MATLAB のファンクション<br />

およびオペレータから推論<br />

された IP を自動的に挿入<br />

– MATLAB コードの<br />

修正は不要<br />

• 複数のハードウェア<br />

アーキテクチャをサポート<br />

– デザイン要件に基づいて<br />

自動的に選択される<br />

– 固定小数点の生成時に<br />

挿入される<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 44<br />

IP-Explorer テクノロジ<br />

y = sqrt(a)/sin(b);<br />

Equivalent Gates<br />

10 7<br />

10 6<br />

10 5<br />

10 4<br />

10 3<br />

10 2<br />

Bipartite Tables<br />

CORDIC<br />

LIL<br />

BT are always the best<br />

choice<br />

BT are<br />

for<br />

always<br />

~12 bits<br />

the<br />

and<br />

best<br />

below,<br />

choice<br />

but<br />

for<br />

size<br />

~12<br />

grows<br />

bits and<br />

faster<br />

below,<br />

than<br />

but<br />

the<br />

size<br />

other<br />

grows<br />

architectures<br />

faster than the other<br />

architectures<br />

CORDIC is best<br />

choice<br />

CORDIC<br />

for<br />

is<br />

“large”<br />

best<br />

input<br />

choice<br />

word<br />

for<br />

lengths<br />

“large”<br />

input word lengths<br />

Linear Interpolated Lookup is<br />

best<br />

Linear<br />

choice<br />

Interpolated<br />

for “medium”<br />

Lookup is<br />

size<br />

best<br />

inputs<br />

choice<br />

– assuming<br />

for “medium”<br />

the<br />

achievable<br />

size inputs<br />

throughput<br />

– assuming<br />

is<br />

the<br />

acceptable<br />

achievable<br />

(and<br />

throughput<br />

assuming<br />

is<br />

multipliers<br />

acceptable<br />

are<br />

(and<br />

available)<br />

assuming<br />

multipliers are available)<br />

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30<br />

System Precision


AccelWare DSP IP ツールキット<br />

AccelWare Advanced<br />

Math Toolkit<br />

Matrix inversion<br />

QR method<br />

Cholesky method<br />

Triangular inversion<br />

Matrix factorization<br />

QR method<br />

Cholesky method<br />

SVD<br />

QRD-RLS<br />

各 IP は、市場別のニーズを満たすように<br />

パラメータ指定された複数のシリコン<br />

アーキテクチャを提供する<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 45<br />

AccelWare Signal<br />

Processing Toolkit<br />

CIC Decimator /<br />

Interpolator<br />

Decimating FIR filter<br />

FFT, IFFT<br />

FIR Filter<br />

Half-Band FIR Filter<br />

Polynomial Evaluation<br />

Polyphase FIR Filter<br />

AccelWare<br />

Communications<br />

Toolkit<br />

A/D Sinc Compensation<br />

Filter<br />

Convolutional Interleaver<br />

/ Deinterleaver<br />

Convolutional Encoder<br />

Direct Digital Synthesizer<br />

Reed-Solomon Enc / Dec<br />

Root-raised Cosine Filter<br />

Viterbi Decoder<br />

BCH Enc / Dec<br />

Scrambler / Descrambler<br />

Direct Digital Synthesizer


固定小数点の検証時間を短縮<br />

• 固定小数点の検証時間を短縮<br />

するため、MATLAB モデルから<br />

C++ モデルが生成される<br />

– シミュレーション パフォーマンスが<br />

大幅に向上<br />

– MATLAB の環境を活用することで<br />

視覚的なわかりやすさを提供<br />

500<br />

400<br />

300<br />

– システム範囲でのアルゴリズム検証の<br />

200<br />

ため、 C/C++ システム モデルに 100<br />

コンパイル 0<br />

<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 46<br />

Run Time (Seconds)<br />

900<br />

800<br />

700<br />

600<br />

1.7<br />

828<br />

6.5<br />

Modeling Format<br />

Floating-point MATLAB<br />

Fixed-point MATLAB<br />

Fixed-point C/C++


<strong>ザイリンクス</strong> <strong>XtremeDSP</strong> 47<br />

まとめ<br />

• <strong>ザイリンクス</strong> <strong>XtremeDSP</strong> は、 デジタル通信、マルチメ<br />

ディア、ビデオ、画像処理用の高性能 DSP アプリケーショ<br />

ンの開発に有効なソリューションです。<br />

• <strong>ザイリンクス</strong>は、アルゴリズム、システム、ハードウェアの<br />

開発者のニーズに最適な DSP 開発フローおよび IP コア<br />

を提供します。<br />

– DSP アプリケーションRTL モデルの検証時間を短縮<br />

– FPGA ハードウェアで MATLAB または Simulink のアルゴリズム<br />

を使用し、より短時間で DSP デザインを開発

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!