動作合成とC/C++/SystemC/SystemVerilogの協調設計 ―― Cynthesizerの活用事例

渋谷 貴利,内海 功朗,森 義一

tag: 半導体

技術解説 2009年7月14日

6. 適用事例

 筆者らは本稿で説明したフローに従って,顔認識エンジンFSE(Face Sensing Engine)の顔検出・追跡アルゴリズムに対してIPコア化を実施しました(3).

 図7にIPコアの構成を示します.IPコアとしてアルゴリズムに対応する演算部のほかに,制御レジスタ,DMAコントローラ,バッファ・メモリから構成されています.図中の顔検出処理部が,顔検出・追跡アルゴリズムの演算部分を動作合成してハードウェア化した部分です.インターフェースとしてAHBバスを採用し,CPUとはAHBバスを経由してアクセスします.DMAコントローラはメモリからバッファ・メモリへの転送に用います.


図7 画像処理IPコアのブロック図

 

 写真1に顔検出を実施した例を示します.顔検出のIPコアでは,画像データを解析し,解析したデータと顔判定辞書とのマッチングで,顔と判定した一つまたは複数のく矩形領域の座標を出力します.写真1は顔と判定された領域の矩形図を入力データに対して重ね合わせたものです.今回はARM926とFPGAを搭載したボードを使用しました.FPGAにはハードウェア化したモデルを実装し,ハードウェア化の対象にならなかったアルゴリズムのフロントエンド部分はソフトウェアとしてARM926上で動作させました.


写真1 FSE実行結果の例

ARM926とFPGAを搭載したボードを利用した.

 

 図8に協調検証の階層からFPGA検証での階層への変換を示します.協調検証では,前章で説明したようにDPIを介してソフトウェアからハードウェア・モデルにアクセスを実施します.FPGA検証ではDPIの代わりにシステム・コールを用いて,ソフトウェアからFPGA上のハードウェア・モデルへアクセスするようにします.


図8 協調検証とFPGA検証との階層関係

 

 このように介在する層を変えるだけで協調検証からFPGA検証へ持っていくことができますので,上位のソフトウェアや下位のハードウェアの変更をする必要がなくなります.このため協調検証シミュレーション環境からFPGA環境への展開や,FPGA検証から協調検証へのフィードバックなどが容易かつ,短期間にできるようになりました.
 

 このようなハードウェア化を行うことで,ソフトウェア単体だけの場合に比べ,動作周波数を低下させてもリアルタイムに顔を検出できました.

参考・引用*文献
(1 ) 桜井至;SystemCによるビヘイビア合成入門,Design Wave Magazine,2004年11月号~2005年9月号.
(2 ) 宮下晴信;続・SystemVerilogで簡易CPUバス・モデルを記述,Design Wave Magazine,2004年12月号.
(3 ) 顔認識エンジンFSE紹介サイト,沖電気工業.
http://www.oki.com/jp/fse/

 

しぶや・たかとし
うつみ・いさお
もり・よしかず
(株)沖ネットワークエルエスアイ

 

<筆者プロフィール>
渋谷貴利
.1992年沖電気工業入社.2002年沖ネットワークエルエスアイ設立と同時に移籍.入社以来,LSI設計,SOC設計に携わる.日ごろ思うことは「何事も勉強しておいて損は無い」.心掛けていることは「Simple is best」.  

内海功朗.1986年沖電気工業入社.2002年沖ネットワークエルエスアイ設立と同時に移籍.入社以来,LSI設計,SOC設計に携わる.顔識別機能でなにか低価格のおもちゃができないか思案中.最近,環境存在論に興味を持っている.

森 義一.1981年沖電気工業入社.2002年沖ネットワークエルエスアイ設立と同時に移籍.入社以来,プロセッサ開発,SOC設計に携わる.顔画像処理技術の登場で,SF映画の世界であるロボコップやターミネーターの実現に向けて1歩を踏むと思うとワクワクしている.
 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日