検索
連載

モデルベースデザイン手法を使ったProgrammable SoCの協調設計【実践編I】レファレンスモデルからFPGA用サブシステムの作成まで(1/7 ページ)

「モデルベースデザイン手法を使ったProgrammable SoCの協調設計」とはどのようなものか、実践を交えて解説していく本連載。前回の準備編に続き、今回からは実際にMATLAB/Simulinkを用いたモデルベースデザイン手法により実装を行います。

Share
Tweet
LINE
Hatena

 昨今、さまざまな用途での利用が増えているFPGAとプロセッサを1チップ化した「Programmable SoC」。本連載ではProgrammable SoCの1つである「Zynq」(ザイリンクス製)のプロセッサとFPGAの両方を使ったアルゴリズム、つまりソフトウェア、ハードウェアで協調動作するアルゴリズムを、MATLAB/Simulinkを用いたモデルベースデザイン手法により実装する方法を解説しています。

 前回は、モデルベースデザインを導入する利点を紹介しました。今回はいよいよ実際に実装していきます。実装フローは次の通りであり、このフローに従い解説していきます。


図3:Programmable SoC実装フロー

Programmable SoC実装フロー

1. レファレンスモデル作成
2. 機能配分
3. プロセッサ用サブシステム作成
4. FPGA用サブシステム作成
5. 実装用モデルによる統合シミュレーション
6. HDLコード生成〜FPGA実装
7. Cコード生成〜プロセッサ実装
8. Programmable SoC統合検証

太字部分が今回説明するフローです。


図1(再掲):Zynq搭載ボードによるオブジェクト検出とトラッキング (クリックで拡大)

 前回に引き続き、実装方法を分かりやすく解説するため「シンプルな構成の画像処理アルゴリズムを使った緑色のオブジェクト検出とトラッキングを行いつつ、赤い円形のマーカーを表示するアルゴリズムを実装する方法」を例に挙げて解説していきます。なお、今回使用するボードはAvnet(アヴネット)製の「ZedBoard」と、ザイリンクス製「ZC706」になります。なおZC706は「ZC702」でも代用できるでしょう。

1.レファレンスモデル作成

 機能仕様を表現したレファレンスモデルを作成して、シミュレーションを実行し、機能実現可能性やアルゴリズムを検討します。ここでは、抽象度の高いモデル、すなわち画像処理であればフレームベースの処理を行うモデルを使用します。抽象度の高いモデルを使用することで、作成工数やデバッグ工数を削減でき、またシミュレーション速度も高速になるためパラメーターを変更しての試行錯誤や機能最適化を行いやすいというメリットがあります。また、最初から時間概念を持ったSimulinkでのシミュレーションを行うよりも、必要に応じてコンポーネントごとにMATLABコードで確認しておくことで、モデル作成における手戻り抑制につながります。そのため、1つのレファレンスモデル作成におけるプロセスにおいても、いくつかのモデルが存在することになります。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る