高性能画像信号処理における ザイリンクス XtremeDSP ... - Xilinx
高性能画像信号処理における ザイリンクス XtremeDSP ... - Xilinx
高性能画像信号処理における ザイリンクス XtremeDSP ... - Xilinx
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 デザインを開発