et2010 dsp fpga - paltek.co.jp · デザインエントリーはhdl (vhdl, verilog-hdl)、回路図...

51
Proprietary to PALTEK CORPORATION 株式会社パルテック DSP スペシャリスト 東崎 周平 デジタル信号処理開発における デジタル信号処理開発における DSP DSP FPGA FPGA の役割と協調設計 の役割と協調設計

Upload: others

Post on 27-Feb-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Proprietary to PALTEK CORPORATION

株式会社パルテック

DSP スペシャリスト 東崎 周平

デジタル信号処理開発におけるデジタル信号処理開発における

DSPDSPととFPGAFPGAの役割と協調設計の役割と協調設計

Agenda

1 最新DSP市場の動向– 1-1要求スペック– 1-2実現例と問題点

2 最新のDSP/FPGA構成– 2-1DSPの最新事情– 2-2FPGAの最新事情

3 DSPとFPGAの協調設計による利点– 車載アプリケーション事例2 画像処理システム

4 DSP/FPGプラットフォームによる問題解決手法– 4-1演算スペックの解決手法– 4-2接続性の解決手法

5 まとめ

Agenda

1 最新DSP市場の動向– 1-1要求スペック– 1-2実現例と問題点

2 最新のDSP/FPGA構成– 2-1DSPの最新事情– 2-2FPGAの最新事情

3 DSPとFPGAの協調設計による利点– 車載アプリケーション事例2 画像処理システム

4 DSP/FPGプラットフォームによる問題解決手法– 4-1演算スペックの解決手法– 4-2接続性の解決手法

5 まとめ

最新DSP市場の動向

処理スペックの増加– アプリケーション特化のアクセラレータ

• 画像エンコーダ、コーデック

• 通信向け符号/復号

– 動作周波数の増加

インターフェースにおける帯域増加– 高速シリアルインターフェースによる接続

– 広帯域メモリバンド幅

高速なアナログインターフェースとの接続性– Gbps級のマルチチャンネルADC/DAC

<100MMACS,19.3%

100-600MMACS,24.3%

600-1,000MMACS,

11.5%

1,000-6,000MMACS,

21.6%

6,000-10,000MMACS,

9.2%

>10,000MMACS,14.3%

要求スペックは益々増加する傾向にある要求スペックは益々増加する傾向にある

**GGMACS : Giga Multiply Accumulate / SecMACS : Giga Multiply Accumulate / Sec

11秒当りの積和演算回数秒当りの積和演算回数

Source : Forward ConceptsSource : Forward Concepts

処理スペックの増加

増大するDSPパフォーマンスギャップ

1960 1970 1980 1990 2000 1960 1970 1980 1990 2000 20102010

DSP/GPP*Traditional Traditional Processor Processor

ArchitecturesArchitectures

SD/HD VideoSD/HD Video

RadarRadarImagingImaging3G3G

4G4G

SDRSDR

Perf

orm

ance

Pe

rfor

man

ce

(Alg

orith

mic

& P

roce

ssor

For

ecas

t)(A

lgor

ithm

ic &

Pro

cess

or F

orec

ast)

Algorithm Complexity

Algorithm Complexity

要求パフォーマンスに対して、従来のDSP Processorでは追従出来ない

要求パフォーマンスに対して、要求パフォーマンスに対して、従来の従来のDSP ProcessorDSP Processorでは追従出来ないでは追従出来ない

LTELTE

実際のスペック差

実際のパフォーマンス

0

200000

400000

600000

800000

1000000

1200000

1400000

2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011

YEAR

MM

AC

S

DSP

FPGA

実際のパフォーマンス

0

5000

10000

15000

20000

25000

30000

35000

40000

2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011

YEAR

MM

AC

S

DSP

DSPもパフォーマンスは年々増加している FPGAは高集積化によりさらに上をいく

TypeGP Fixed-Point DSP 116GP Floating-Point DSP 71FPGA for stand-alone DSP 60Proprietary DSP core 51DSP w/ FPGA algorithm accelerator 50Media Processor / Video Processor 49RISC/DSP Chip : single vendor 48Licensed DSP core 38FPGA DSP Engine w/ soft RISC 36GP MPU for DSP (e.g.,Pentium) 35Hardwired DSP Chip 34FPGA DSP Engine w/ hard RISC 31Licensed RISC core 27Dynamic. Reconfigurable Processor 26DSP/DSP Chip Comb 24Massively Parallel Processor 15RISC/RISC Chip Combo 12Don't Know 19

DSPDSPややFPGAFPGAを単体で使用しているケースを単体で使用しているケース

(5(5GMMACSGMMACS以下の要求スペック以下の要求スペック))

専用の専用のH/WH/Wを使用しているケースを使用しているケース

(ASIC(ASICややASSPASSP等の固定のアーキティクチャ等の固定のアーキティクチャ))

複数の複数のDSP/RISCDSP/RISCを使用しているケースを使用しているケース

FPGAFPGAを積和演算のアクセラレータとして使用を積和演算のアクセラレータとして使用

Source : Forward ConceptsSource : Forward Concepts

構成例

シングルDSP or シングルFPGAメリット

システムがシンプル

デメリット

アプリケーションによっては仕様を満たすことが可能

柔軟性 (I/Fや演算手法)が限られている

パフォーマン不足

マルチDSP /RISC構成メリット

ソフトウェア設計のみでパフォーマンスネックを解消

デメリット

基板面積の増加

消費電力の増加

システムコストの増加

シングルDSP + シングルFPGAメリット

パフォーマンスメリットと柔軟性を兼ねる

パフォーマンス当りのコスト低減が可能

ユーザ独自機能 (差別化要因)を取り入れやすい

デメリット

システムの切り分けが必要 (パーティショニング)

FPGA / DSPのインターフェースの検討

ASIC / ASSPメリット

低コスト

デメリット

アーキティクチャーが固定

開発費に対するリスク増加

差別化要因を作り難い

1.1.システムの切り分けシステムの切り分け

信号処理の観点から信号処理の観点からS/WS/W、、H/WH/Wの処理の切り分けの処理の切り分け

単純な積和演算単純な積和演算 : H/W: H/W

複雑な制御演算複雑な制御演算 : S/W: S/W

2.2.アプリケーションによる切り分けアプリケーションによる切り分け

専用アクセラレータの有無専用アクセラレータの有無

3.DSP3.DSP--FPGAFPGA間インターフェース間インターフェース

アプリケーションの観点から最適なインターフェースの選択アプリケーションの観点から最適なインターフェースの選択

要求実現の方法と問題

問題点

DSPの問題点

– 処理スペック不足

– 広帯域外部メモリインターフェースが無い

– デバイスとの高速通信

– ソフトウェアオーバヘッドによる遅延時間の増加

FPGAの問題点– ホストCPUが無い柔軟性不足

– 設計期間 (コンパイルやシミュレーション時間)– 回路設計のコスト

• 画像コーデックを行うためには専用IPコアの購入費用や追加の設計費用が発生

問題点の解決

DSPとFPGAの問題点に共通している点が少ない

一方の問題点が、もう一方の利点となっているケースが多い

最適なDSPによる実現

最適なFPGAによる実現

DSP + FPGAによる実現 → 柔軟性 + パフォーマンスバランス

Agenda

1 最新DSP市場の動向– 1-1要求スペック– 1-2実現例と問題点

2 最新のDSP/FPGA構成– 2-1DSPの最新事情– 2-2FPGAの最新事情

3 DSPとFPGAの協調設計による利点– 車載アプリケーション事例2 画像処理システム

4 DSP/FPGプラットフォームによる問題解決手法– 4-1演算スペックの解決手法– 4-2接続性の解決手法

5 まとめ

Code Composer Studio TM v4テキサス・インスツルメンツ社DSPの統合開発環境

コンパイラコンパイラ

TI C

ode

Com

pose

r Stu

dio

TI C

ode

Com

pose

r Stu

dio

アセンブラアセンブラ//リンカリンカ

デバッグデバッグ

最適化最適化

1.1. デザインエントリーはデザインエントリーはC/C++C/C++2.2. コードエディタからコンパイラ、アセンブラ、リンカのコード生成ツールコードエディタからコンパイラ、アセンブラ、リンカのコード生成ツール

3.3. 高機能なプロファイラ、ウォッチウィンド、シンボルブラウザまたはデータ高機能なプロファイラ、ウォッチウィンド、シンボルブラウザまたはデータのグラフ化のグラフ化

4.4. CCライクなスクリプト言語ライクなスクリプト言語(GEL)(GEL)による機能のカスタマイズによる機能のカスタマイズ

5.5. プラグインツールにより機能を拡張プラグインツールにより機能を拡張

6.6. DSP/BIOSDSP/BIOSをバンドルをバンドル

DSPの設計フロー と設計環境

DSPによる解決手段(例 : TI社 Processor シリーズ)

市場要求による製品の選択性

選択例

DSP Processor : 600MHz以上H.264 MP/HP1080 i/pホスト I/F : 10/100/1000イーサネット

Low price for high definition video

ARM Subsystem

ARM926EJ-S CPU

DMA Data & Configuration Bus

Peripherals

NAND/ECC

(EMIF)

MMC/SDIO

x2

mDDR/DDR2EMIF

Program/Data Storage

System

PWMx4

Timerx6

Connectivity

SPI x3

I2CSerial Interfaces

UART x3ASP

CCD Controller Video Interface

PreviewHistogram/3A

Resizer

EnhancedOn-Screen

Display

10b DACVideoEnc

Video Processing Subsystem

Back End

Front End

USB 2.0HS OTG

EDMA WDT

MJCP Co-Processor

MPEG-4

JPEG

DM3xx

Video doorbell and networked video/ imaging applications

USB 2.0 HS OTG device and mini-host w/ PHY

MPEG-4 & JPEG Coprocessor (MJCP)

External memory interface (EMIF)- Mobile DDR/DDR2

Volume Production Now!

ASP, I2C, SPI x3, UARTx3

Video: SD and HD (720p)

ARM: 16KB I-Cache, 8KB D-Cache; 8KB ROM; 32KB program/data

ARM926EJ-S CPU135, 216 or 270 MHz

DM355

専用アクセラレータ内蔵DSP

10/100MAC & PHY

CMOS Sensor

Video AmpTHS7315 / 16

PoETPS23750

WLAN

TPS62050 TPS62200 TPS62050

5V

1.3VCore Pwr

1.8VMem Pwr

3.3VI/O & System Pwr

DM355DDR2EMIF Video

Out

Video In

EMIF

ASP

Temp SensorTMP100

Audio Codec

TLVAIC33

ClockingCDCE949

DDRMemory

SDIOGPIO

DM355 video doorbell system diagram – capture

McASP, I2C, CAN, UART (2), SPI

VLYNQ/ EMAC, HPI or EMIF

Video Out:none

Video In: 1VP 16b VPSS

DDR2-266 (32b)

L2 128KB*L1P 32KB*L1D 80KB*

C64x+DSP Core/600 MHz

DM6435

PCI or VLYNQ/ EMAC, HPI or EMIF

PCI or VLYNQ/ EMAC, HPI or EMIF

EMAC or EMIF

McBSP or McASP, I2C, CAN, UART (2), SPI

McASP, I2C, UART, SPI

McASP, I2C, CAN, UART, SPI

Video Out: VPSS: w/OSD 4 10b DACs

Video Out: VPSS: w/OSD 4 10b DACs

Video Out:none

Video In: 1VP 16b VPSS

Video In:none

Video In:1 VP 10b

DDR2-266 (32b)

DDR2-266 (32b)

DDR2-266 (16b)

L2 128KB*L1P 32KB*L1D 80KB*

L2 128KB*L1P 32KB*L1D 80KB*

L2 64KB*L1P 32K*L1D 32K*

C64x+DSP Core/600 MHz

C64x+ DSP Core/600 MHz

C64x+DSP Core/300 MHz

DM6437DM6433DM6431

Pin-for-pin compatibleAEC-Q100 auto qual

Encode Encode/ DecodeDecode Encode

* Cache/RAM reconfigurable Please check user guide for MUXing options

Peripherals

DSP Subsystem

C64x+TM DSP 600-MHz

Core

L2128 KBCache

L1P 32KB

L1D 80KB

WDTimer

System

PWM×3

Timer64-bit×2

Connectivity

Serial InterfacesUART ×2

or

SPI

I2C

CANMcASP

McBSP ×2or

Switch Fabric

PreviewHistogram/3A

Resizer

On-ScreenDisplay (OSD)

10b DAC10b DAC10b DAC10b DACVideo

Enc(VENC)

Video Processing Subsystem

Back End

Front End

DDR2Controller

(32b)

Program/Data StorageEMIF(8b)

EDMA PCI33 HPIor

DDRPLL

PLL

JTAG

OSC

VLYNQEMAC

CCD Controller Video Interface

DM6437

DM6431

DM6435

DM643x

Low-end IP Netcam

画像インターフェース内蔵DSP

CMOS/CCD Sensor

Bayer/RAW

16

PTZ

Control 3

DM6435

DDR2 SDRAM266 32-Bit

32

DDR2EMIF Video OutVideo In

PWM (x3)

EthernetPHY

(802.3)

10/100EMAC

CLKIN

Crystal/OSC27 MHz

MSP430(optional)

Monitor(NTSC/PAL)

optional with DM6437

Composite

Real-TimeClock(optional)

RTC

AudioCODEC

UART

I2CMcBSP

Low cost, scalable camera solution

Programmable DSP core enables embedded video analytics

DM6435 processors address security IP Netcam application needs

マルチコアDSP x3

C64x+TM

Core

L1P

L1DL2 Cache/RAM

C64x+TM

Core

L1P

L1DL2 Cache/RAM

C64x+TM

Core

L1P

L1DL2 Cache/RAM

Switched Central Resource

VCP2

TCP2

EDMA3.0SRIO

Antenna I/F

Frame Sync

GEMAC DDR2-667

PLL

McBSP

I2C

GPIO

Timer

Semaphore

Boot ROM

最新DSP事情まとめ

最新設計環境 Code Composer v4.0 アプリケーションターゲットのデバイスラインナップ

– アプリケーション依存のペリフェラル

– 専用アクセラレータ

パフォーマンス問題の解決– マルチコア化

• x3コア、x6コア

– 専用アクセラレータ

• 画像コーデック、誤り訂正

– 高速シリアルインターフェースの採用

• SRIO、OBSAI、CPRI (携帯基地局向け)

アルゴリズムの検討アルゴリズムの検討

HDLHDL記述や記述やIPIPの利用の利用XILI

NX

ISE

XILI

NX

ISE

論理合成論理合成

配置配線配置配線

デバッグデバッグ

1.1. デザインエントリーはデザインエントリーはHDL (VHDL, HDL (VHDL, VerilogVerilog--HDL)HDL)、回路図、回路図

2.2. コードエディタから、コードエディタから、論理合成、配置配線まで全てをサポート論理合成、配置配線まで全てをサポート

3.3. ISEISEシミュレータを使ったシミュレータを使ったHDLHDLシミュレーションシミュレーション

4.4. タイミング解析ツール及び、消費電力解析環境タイミング解析ツール及び、消費電力解析環境

5.5. オプションツールオプションツール (ChipScope Pro)(ChipScope Pro)による実機デバッグ環境による実機デバッグ環境

ISETM FoundationザイリンクスFPGAの統合開発環境

FPGAの設計フロー と設計環境

FPGAによる解決手段(例 : ザイリンクス社 Virtex-6の場合)

信号処理・画像処理に関して

– 信号処理ブロック(最大2016個)搭載の専用デバイスの選択

– ホストとのインターフェースが確立されているデバイス

• 10/100/1000イーサネットMAC専用ブロック

• PCI Express インターフェース専用ブロック

– Gen1 : 2.5Gbps– Gen2 : 5Gbps

– 大容量画像データ等の広帯域外部メモリとのインターフェース

• DDR3 / DDR2 等の広帯域メモリインターフェース

– 広帯域なデータ転送

• 1ブロックで10Gbpsのトランシーバーブロックを複数搭載

– 最大100Gbps以上

FPGAによる解決手段(例 : ザイリンクス社 Spartan-6の場合)

信号処理・画像処理に関して

– 信号処理ブロック(最大180個)搭載

– ホストとのインターフェースが確立されているデバイス

• 10/100/1000イーサネットMAC専用ブロック

• PCI Express インターフェース専用ブロック

– Gen1 : 2.5Gbps– 大容量画像データ等の広帯域外部メモリとのインターフェース

• DDR3 / DDR2 等の広帯域メモリインターフェース

– 広帯域なデータ転送

• 1ブロックで3.125Gbpsのトランシーバーブロックを複数搭載

最新FPGAのMAC構造

=

XX+/+/--

AD

B

C

P

25bit Pre-adder

25x18 Multiplier ALU-like Second Stage

Pattern Detector

最大2016個@600MHz = 1.2TMACS

高速トランシーバーブロック

Virtex-6 は6.5Gbps対応

トランシーバが標準搭載

VirtexVirtex--66 はは6.5Gbps6.5Gbps対応対応

トランシーバが標準搭載トランシーバが標準搭載

PhyInterface

Statistics Interface

RxStats Mx

RxStats Mx

TxStats Mx

TxStats Mx

RxStats Mx

RxStats Mx

TxStats Mx

TxStats Mx

EMAC CoreEMAC Core

EMAC CoreEMAC Core

Host InterfaceHost Interface

Statistics Interface

Clien

t Int

erfa

ce

PhyInterface

Clien

t Int

erfa

ce

Host Bus

DCR Bus

ProcessorInterface

ProcessorInterface

FabricInterfaceFabric

Interface

FPGAにおけるI/Fの柔軟性 ~Virtex-6/Spartan-6の例~

400 Mbps*LP DDR

400 Mbps*DDR SDRAM

800 Mbps*DDR2 SDRAM

800 Mbps*DDR3 SDRAM

Spartan-6Interface

*All frequencies quoted are for all speedgrades except -1L

500 MHz (1000 Mbps)*RLDRAM II

400 MHz (2x 800 Mbps)*QDR II+

1066+ Mbps*DDR3 SDRAM

800 Mbps*DDR2 SDRAM

Virtex-6 FPGAMemory Interface

FPGAにおけるMemory I/Fの柔軟性

最新FPGA事情まとめ

高集積化– 最大2016個のDSPブロック

– 高速シリアルトランシーバーの充実

– 広帯域の外部メモリインターフェース

アプリケーションに特化した機能ではなく、あらゆる機能を高性能にしてきている

Agenda

1 最新DSP市場の動向– 1-1要求スペック– 1-2実現例と問題点

2 最新のDSP/FPGA構成– 2-1DSPの最新事情– 2-2FPGAの最新事情

3 DSPとFPGAの協調設計による利点– 車載アプリケーション事例 画像処理システム

4 DSP/FPGプラットフォームによる問題解決手法– 4-1演算スペックの解決手法– 4-2接続性の解決手法

5 まとめ

Driver Assistance Feature

死角検出

標識認識

駐車場アシスト

レーン変更アシスト

夜間走行

レーン離脱警告

前方衝突警告

後退時の警告

歩行者への警告

居眠り警告

位置修正

自動コース修正制御

自動駐車システム

安全停止

自動ブレーキ

レーンキープ

緊急ブレーキアシスト

衝突前センサー

歩行者保護システム

横衝突検知

認識 警告 補正制御 パフォーマンス拡張

1つの処理を行う為に複数のスレッドが同時に実行

リアルタイム性が要求される

ドライバー・アシスタントシステムの例

Pentium III@1GHz

各機能ブロック CPU負荷率(%)mv_search.c 67.31

block.c 8.19refbuf.c 6.95

macroblock.c 3.48rdopt.c 3.37

biariencode.c 3.21cabac.c 2.98

memcpy.asm 2.91abs.c 0.57

image.c 0.54rdopt_coding_state.c 0.46

loopFilter.c 0.03

NextFrame 動き予測 バッファ

Intra予測

スイッチ

動き補正

デブロックフィルター

逆整数変換、Q-1

整数変換、Q エントロピーエンコーダ

+

+_

動き補償ループ

予測ループ

ビットストリーム

画像入力

各機能におけるプロファイル

jiYjiXSADsDefferenceAbsoluteofSumi j

15

0

15

0

アプリケーションによって1サイクル当たり64回の場合もあれば

数千回行うケースもある

SADSADの演算を並列化することが必要の演算を並列化することが必要

車載アプリケーションにおける画像処理

リアルタイム性の壁1 インターフェース仕様

演算効率に対してボトルネックにならないインターフェースの選択– EMIF

• メリット– 全てのFPGA-DSP間で使用可能– FPGAのリソースは少ない

• デメリット– 帯域が低いため、演算スピードに対して低速になる場合がある– 使用するピン数が増えてしまう

– SRIO• メリット

– 高帯域– 少ないピン数で実装可能– 相互接続性試験

• デメリット– SERDESが必要– 基板実装の難易度が高くなる– 使用するデバイスが限られる

– ただし、高速な演算を行うデバイスであればサポートされている

DSPVideo Processing Sub-System / H.264 HD Encoder

DSPVideo Processing Sub-System / H.264 HD Encoder

FPGAPre – Processing 9*9 2D Filtering

FPGAPre – Processing 9*9 2D Filtering

Video IN

FPGA Co-Processor

DSP (Video Front-End / CORDEC)Video OUT

リアルタイム性の壁2 演算性能 ~DaVinciを使用の場合~

例: 9x9 Pixel 2D FIR Filtering (H.264 Encoder前処理)− 1920x1080 Video Resolution (HDTV 1080p)− 24 Bits Per Pixel (YCbCr 4:4:4)− 30 fps

1920*1080*3*30*9*9 = 15.11GMACs1920*1080*3*30*9*9 = 15.11GMACs

DSPH.264 HD Encoder

DSPH.264 HD Encoder

9.6 GMACs@1GHz DSP

H.264 HD EncodingはDaVinci専用エンジンを使用

Single DSPSingle DSPではではFilterFilter処理が処理がEncodeEncode処理に間に合わない処理に間に合わない

DSP+FPGADSP+FPGAの組み合わせでリアルタイムに前処理とエンコードが可能の組み合わせでリアルタイムに前処理とエンコードが可能

FPGAPre – Processing9*9 2D Filtering

FPGAPre – Processing9*9 2D Filtering

Video IN

352GMACs@550MHz FPGA

FPGA Pre-Processor

リアルタイム性の壁3 ~H.264 MEのメモリバンド幅~

ザイリンクス社Motion Estimation IP仕様

BW = NBW = Ntotaltotal * F* Fraterate * 8 * (16*16)* 8 * (16*16)

NNtotaltotal : : マクロフレーム総数マクロフレーム総数

8 : sliding window height8 : sliding window heightFFraterate ::フレームレートフレームレート

HDHD対応のメモリバンド幅はギガ対応のメモリバンド幅はギガbpsbpsのバンド幅が必要になるのバンド幅が必要になる!!!!

*現在は販売されていないので、スペックの参考として

FPGAを使ったコプロセッシングシステムの処理系

TMS320C64xx

TMS320C64xx

アプリケーションに特化したH/Aアクセラレータの実装

ME エンジン(fabric/multipliers)コプロセッシングシステム

DSPDSP I/FI/F

Control Tasks

Bit Rate Analysis

Code Stack

DCT

Quantization

Motion Estimation

Control Tasks

Bit Rate Analysis

MotionEst DCT Quantizer

& VLC

Motion Est Quantization

処理時間

DCT

Co-Processing AdvantageDSP+FPGA Processing

Traditional

特にメモリ転送等を考慮すると特にメモリ転送等を考慮するとMEMEのエンジンをのエンジンをFPGAFPGAへ移行すると効率的へ移行すると効率的

ターゲットデバイス LUTs FFs DSP48Es BRAMs Clock FmaxVirtex-5 2,952 3,040 26 15 275MHzVirtex-4 2,954 3,252 30 19 225MHz

Spartan3A-DSP 3,297 3,274 30 19 130MHz

•1080i@60 fields per second operation at 275 MHz •1080p@30 frames per second operation at 225 MHz•720p@30 frames per second operation at 130 MHz

HDHD対応の対応のMotion EstimationMotion Estimationを少リソースで実現可能を少リソースで実現可能

*現在は販売されていないので、スペックの参考として

H.264 Motion Estimation Engine (*XILINX社)

Agenda

1 最新DSP市場の動向– 1-1要求スペック– 1-2実現例と問題点

2 最新のDSP/FPGA構成– 2-1DSPの最新事情– 2-2FPGAの最新事情

3 DSPとFPGAの協調設計による利点– 車載アプリケーション事例2 画像処理システム

4 DSP/FPGプラットフォームによる問題解決手法– 4-1演算スペックの解決手法– 4-2接続性の解決手法

5 まとめ

入力データRAM

読み出しアドレスカウンタ

出力データRAM

A1

制御レジスタ

ワードカウンタ

サイクル数計測カウンタ

FIR フィルタコア

EMIF

TMS320C6455@1GHz

XC5VSX50TEMIF

C64x+コア

TMS320C6455DSK PALTEK DSP BoardA0

An

A1A0

An

読み出しアドレスカウンタ

入出力データRAM : EMIFメモリ空間に直接マッピング

演算スペックの解決手法EMIF FIR Co-Processor DEMO

FPGAフィルター仕様

– Taps : 128 (対称係数)– Data bits : 16– Coef bits : 16– H/W オーバーサンプルレート : 5

• 5clockに1回のフィルタサンプル

– 係数リロード : YES– データサンプル数 : 500– 係数データ128ワードはDSPからFPAGへ初期値をロード

500ワード

Taps

= 128ワード

処理対象データ

コア内部レジスタに

保持されていた値

FPGAの処理サイクル数は、

この間のクロックをカウント

波形表示、照合範囲

5 x ((500-1) + 128) + 2 =3137

積和演算

検証デザイン仕様

1.60us10%6296291サイクル (fclk/fs)XC5VSX95T-1@200MHz

9.8us2%3,1373,1375サイクル (fclk/fs)XC5VSX95T-1@200MHz

23.8us100%23,88123,881DSP Lib + -o3 (Opt)TMS320C6455@1GHz

処理時間処理時間積和演算器積和演算器利用効率利用効率

サイクル数サイクル数コンフィグレーションコンフィグレーションターゲットデバイスターゲットデバイス

TMSC320C6455@1GHz– オプティマイズレベル

• -o3 最適化レベル (-o0,-o1,-o2,-o3)– ビルドコンフィグレーション

• Debug– ライブラリ

• DSP LIB (C64xデバイス用のCプログラムのための最適化ライブラリ)– DSP_fir_r8

XC5VSX95T-1– ハードウェアオーバーサンプリング

• 5サイクル(5クロックに1回フィルターサンプル)• 動作周波数200MHz

– (320MHz動作可能)

コプロセッサ デモ結果

シリアルI/OがパラレルI/Oを置換

あらゆるアプリケーションでシリアル・コネクティビティの導入が進展– チップ間、バックプレーン、ケーブル接続、光通信 など

性能とコストの両面で要求条件をクリア

拡張性に優れ、複数世代にまたがるシステム設計が可能

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

2004 2005 2006 2007 2008 2009

Perc

enta

ge o

f Tot

al P

orts

Parallel Serial

Source: Electronic Trend Publications (Source: Electronic Trend Publications (20052005年年99月月))

*1 : Serial RapidIO Physical Layer v4.1

*2 : RapidIO Logical (I/O) and Transport Layer Interface v4.1

XC5VSX95T TMS320C6455

GTP#1

GTP#2

GTP#3

GTP#4

SRIO

PH

Y*1

SRIO

LO

GIC

AL*

2

BR

AM

SERDES#1

SERDES#2

SERDES#3

SERDES#4

C64x+

Core

L2 Cash

SRIO Peripheral

PALTEK DSP Board C6455 Starter Kit

接続性の解決手法SRIO検証構成

C6455 Starter Kit

DSP + FPGAプラットフォーム構成と検証風景

Write LocationとRead Locationを比較し、値が等しいことを確認

TMS320C6455

SERDES#1

SERDES#2

SERDES#3

SERDES#4

C64x+

Core

L2 Cash

SRIO Peripheral 0x00800000

0x00900000

0x009FFFFF

L2 (SRAM)

0x00980000

WRITE_LOC

READ_LOC

WRITE_LOC READ_LOC

SRIOリンクアップ確認方法

EMIF送信データレート(理論値)

SRIO検証値 (source : http://www.rapidio.org/home)

EMIFモード 66MHz 100MHz 133MHz32bit-Asynchronous 53Mbps 80Mbps 106Mbps32bit-Synchronous 264Mbps 400Mbps 532Mbps64bit-Synchronous 528Mbps 800Mbps 1,064Mbps

WRITE 5Cycle必要

転送レート比較

main SRIO Driver C6455 FPGA

電源投入

SrioSWrite Call

Register制御

SRIOフレーム

内部RAMへのWRITE

return

return

SrioInit Call

SrioInit実体

Register制御

return

return

C6455DSK FPGA Evaluation Board

WRITEシーケンス

初期化シーケンス

SrioSWrite実体

転送完了

測定開始Point

測定終了Point

計測時間

SWオーバーヘッド

SWオーバーヘッド

3.125Gbps / 4レーン ペイロードサイズ サイクル数 (平均) 転送レート (平均) / Tx 効率 / 対理論値

ソフトウェアオーバーヘッド有り 256Byte 407 5.0Gbps 53.10%

ソフトウェアオーバーヘッド無し 256Byte 227 9.0Gbps 95.70%

DSP + FPGADSP + FPGAプラットフォームを使ったプラットフォームを使ったSRIOSRIOレート測定方法と結果レート測定方法と結果

Agenda

1 最新DSP市場の動向– 1-1要求スペック– 1-2実現例と問題点

2 最新のDSP/FPGA構成– 2-1DSPの最新事情– 2-2FPGAの最新事情

3 DSPとFPGAの協調設計による利点– 車載アプリケーション事例2 画像処理システム

4 DSP/FPGプラットフォームによる問題解決手法– 4-1演算スペックの解決手法– 4-2接続性の解決手法

5 まとめ

市場要求の理解– DSP市場の拡大に伴うアプリケーションの多様化

• 柔軟性• アプリケーションに特化した構成

– システムアーキティクチャの複雑化• 最適な構成へのコンサルティング• ターゲットのハードウェアの理解

– FPGAのハードマクロの構成及び機能– DSPのソフトウェア処理と専用ハードマクロの機能

– コストパフォーマンス• 最適なシステムパーティショニング

DSP&FPGAプラットフォーム協調設計のすすめ– 製品の多様化に柔軟に対応可能– 設計の注意点

• 処理の切り分け• インターフェースの選択• 設計フロー• 設計環境

まとめ1

H/W,S/Wの切り分けの明確化– ボトルネックとなる処理の並列処理化

• ソフトウェアパイプライン• H/Wリソースを使った並列化 : DSP48スライスの使用

– 制御タスク• DSPのプログラマビリティー性

– 実装性• DSPをサポートするAPI

– 新しい規格、アルゴリズムをサポートしていることが多い• FPGAをサポートするIP

– FPGAのアーキティクチャを利用した並列化処理を施されていることが多い

最適なインターフェースの選択– プロトコルの有無– 必要な帯域– インターフェースに必要なI/O

まとめ2

製品・スペックによる切り分け例

フォーマット

H.264

MPEG4

H.263

MPEG2

JPEG4:2:0

8bit

High

8bit

High

10bit4:4:4

10bit

Enc/Dec

同時

Enc/Dec

Enc

Dec

HD

SD

D1

CIF

QCIF

コーデック

コーディング

解像度

Single DSP

監視カメラ

テレビ会議システム

セット・トップボックス

専用ASSP A

専用線伝送回線装置

IP伝送

番組サーバ

DSP + FPGA

Pro用カメラ

放送局向け装置