検索
連載

モデルベースデザイン手法を使ったProgrammable SoCの協調設計【準備編】画像トラッキングアルゴリズムを手戻りなく実装するために(2/4 ページ)

今回から数回にわたり「モデルベースデザイン手法を使ったProgrammable SoCの協調設計」とはどのようなものか、実践を交えて解説していきます。第1回は、CPUコアを備えたFPGAであり、ソフトとハードを協調動作できるProgrammable SoCにモデルベースデザイン手法を用いる利点を中心に紹介します。

Share
Tweet
LINE
Hatena

モデルベースデザイン手法を採用する理由

 モデルベースデザインとは、開発対象のアルゴリズムだけでなく、システム全体において影響を与える機器、環境、外乱(例えば制御系におけるプラント[制御対象]、信号処理システムにおけるセンサー、通信システムにおける通信路など)などを、解析データや理論式から導出した「モデル」で表現し、それを使用して実装前の早期段階において、シミュレーションによる検証を入念に行いながら開発を進めていく設計手法です。モデルベースデザインは、制御対象を含めたシミュレーションが必要不可欠な制御系設計において特に普及が進んでいます。また、画像処理、通信、信号処理システムの開発においても徐々に浸透*1)しつつあります。

*1)日立製作所が通信システムの開発にモデルベースデザインを提供した技術記事はこちらのページで読むことができます。

 現在の開発現場では次のような課題を抱えています。

  • 仕様書の情報不足、曖昧な表現、誤解が発生する
  • C/C++やVHDL/Verilogなどの設計資産が再利用できていない(他人の書いたコードは理解し難いため)
  • 複雑化する処理に伴い開発期間が増大し、手戻りによる納期遅延

 モデルベースデザインを導入すると、理論式や物理特性から導出した「モデル」を使って機能仕様を定義しシミュレーションを行うことで、次のようなメリットがあります。

  1. 理論的な解析、論理的な設計ができる
  2. 仕様が明確になる
  3. モデルを使うことで、分野違いのエンジニア間で共通理解が得られる
  4. 設計資産の再利用性が向上する
  5. モデルからコード生成することによる品質向上、品質が属人的にならず安定

 「1.」に関して、MATLAB環境は分野ごとにさまざまな解析機能を提供しています。例えばフィルターや制御系の応答解析や固定小数点モデルのオーバーフロー解析などがあります。プロトタイプではたまたま正しく動いていたものが、製品になるとバラツキにより正常動作しなくなるといった不具合を回避できます。

 「2.」に関して、いきなり実機用のプログラムを書いて開発を行うと、機能的な問題があったときに、仕様に問題があるのか、実機のコードに問題があるのか、原因を発見するのが困難になります。モデルがあれば、アルゴリズムの計算過程の信号をトレースしたり、入力を変えたり制御対象がバラついた時にどのような応答になるのかを容易に試すことができます。

 「3.」に関して、機能仕様の変更や不具合があった際に、ソフト/ハード両方のエンジニアはお互いの処理内容を、コードを見ても把握することができません。しかし、モデルは共通理解のプラットフォームとして役立ちます。これは「4.」にも影響します。属人的になりがちなコードと比べて、他人が書いたモデルでも理解しやすく再利用しやすい設計資産になります。

 最後の「5.」に関して、モデルからは安定した品質でコードが生成されます。モデルベースデザインを導入している企業では、モデルの記述ルールを定めることで、モデルの品質を高める取り組みを行っています。Simulinkの製品ドキュメントに含まれるモデリングガイドラインの他にもJMAAB*2)の制御系のモデリングガイドラインや、MathWorksとユーザーが作成したHDL Coder Modeling Guidelineなど、コミュニティーが作成して配布しているガイドラインもあります。

*2:JMAAB(Japan MBD Automotive Advisory Board)は、日本の自動車業界が中心になって設立されたモデルベースデザインを推進するコミュニティーです。【JMAAB Webサイト


図2:ARMとFPGAの機能配分イメージ

 今回の題材であるProgrammable SoCで、ソフトウェアとハードウェアが協調動作するアルゴリズムを手戻り少なく開発するには、ソフトウェアとハードウェアの機能的連携を事前に検討することが重要です。Programmable SoCでは処理性能、バス帯域、消費電力、回路規模などさまざまな制約がある中で、ARMプロセッサとFPGAの最適な機能配分を探索する必要があります。開発環境における機能配分(パーティショニング)の柔軟性と、再配分の容易性は、機能仕様が明確に決まっていないような状況で、アルゴリズムの初期検討をする際の開発効率に大きく影響を与えます。初期検討ではハードウェア・ソフトウェアを意識することなく機能仕様を考え、機能仕様が固まったら、最適なアーキテクチャを探索するためにハードウェア・ソフトウェアの機能配分を決めていくというトップダウン設計のアプローチを取るには、モデルベースデザインが適しています。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る