マイコン&FPGA開発の流れと開発ツール ―― 組み込みシステム開発の基礎知識(前編)

内座 浩文,大池弘泰

マイコンで動作させるソフトウェアの開発や,FPGAに実装する回路の設計では,さまざまなツールを利用します.ここでは,組み込みシステムの開発の流れと,各工程で利用する開発ツールについて整理します. (編集部)

 今では家庭用電化製品や産業用機器,医療用機器など,あらゆる電子機器に,マイクロコンピュータ(マイコン)が搭載されるようになりました.これらの機器のように,コンピュータにより制御される専用システムを総称して「組み込みシステム」といいます(図1).



図1 さまざまな組み込みシステム(*クリックすると拡大します)
ひとくちに組み込みシステムといっても,単体で機能する小型の装置から,ネットワーク化された巨大なシステムの中に組み込まれるものまでさまざま.

 

 組み込みシステムが普及した背景には,マイコンによるソフトウェア処理性能の向上と,FPGAに代表されるハードウェア技術の進歩が深く関わっています.

 汎用の電子部品を組み合わせた回路で実現してきた機能をマイコンに置き換えると,機器の小型化やコストダウンを図ることができます.また,より複雑で高度な制御を実現しやすくなります.さらに,検証やテストを効率化できる上,機能の変更も容易になります.マイコンで実現できない機能は,FPGAのようなプログラマブルなLSIで実現することにより,マイコンの利用と同様の効果が得られます.マイコンとFPGAを利用した組み込みシステムは,開発コストや品質,拡張性などの面で,多くの利点があるといえます.

 マイコンやFPGAを使用して機器を開発する際には,さまざまな開発ツールを活用します.かつて開発ツールは高価なものでしたが,今では安価で,しかも使いやすくなっています.さらに,開発効率や品質の向上に役立つツールも数多く提供されています.

 この章では,マイコンとFPGAを利用した組み込みシステムの開発の工程と,それぞれの工程で使用するツールの概要を説明します.

1.組み込みシステム開発の流れと開発ツール

 組み込みシステムの開発フローの例を図2に示します.






図2 組み込みシステムの開発フローの例(*クリックすると拡大します)
システム設計でハードウェアとソフトウェアの切り分けなどが行われた後,それぞれの詳細な設計が行われる.ハードウェアの設計は,部品を組み合わせて木野を実現するボード・レベルの設計や,FPGA/ASICといった部品の内部回路の設計に大きく分けられる.いずれも回路設計ではあるが,作業内容が大きく異なる.電子回路設計ではないが,機器の筐体を作るのも機器設計の一部である.

 

●要求仕様を作成する

 組み込みシステムの開発は,要求仕様書を作成することから始まります.

 要求仕様は,「何を作りたいのか」,「どう動くのか」というイメージを具体化したものです.要求仕様書には,開発しようとする機器の機能や性能,外形寸法や形状,外部との接続方法,納期などを記述します.

●要求仕様を分析して詳細な仕様を作成する

 要求仕様書に基づいて,機器の仕組みや必要な要素技術,目標性能,開発工程などの実現方法を検討します.これがシステム設計です.

 機器を使う側に対しては,外部仕様を作成します.機器を作る側に対しては,機能ブロック図やハードウェア要求仕様,ソフトウェア要求仕様などの詳細な仕様を作成します.そしてこれらを,図3に示すような内容のシステム仕様書としてまとめます.



図3 システム仕様書の主な内容
設計を進めるために必要な詳細な仕様をまとめる.

 

 「まとめます」というと簡単そうですが,仕様書に至るまでにはさまざまな検討事項があります.例えば,どのような開発であっても,性能や機能,形状,アナログとディジタルの切り分け,ソフトウェアとハードウェアの切り分け,開発工数,コストなどの複数の要素がトレードオフの関係にあります.これらをスッキリと,最適にまとめ上げることは簡単ではありません.システム仕様書の完成度は製品の品質や開発工数に強く影響するので非常に重要です.

(1)アナログとディジタルの切り分け
 アナログと比較したディジタルの特徴は,正確な記憶や遅延と,バラツキや劣化に左右されない演算性能です.

 多くの場合,図4のように,ディジタルの特徴が必要となる機能の入り口で,アナログ情報をディジタル情報に変換します.そしてアナログ情報が必要になるまではできるだけ多くの機能をディジタルで処理します.



図4 アナログとディジタルの切り分け(*クリックすると拡大します)
ディジタルの特徴が必要となる機能の入り口で,アナログ情報をディジタル情報に変換してディジタルで処理する.

 

(2)ソフトウェアとハードウェアの切り分け
 ディジタルで処理する機能の中で,高速性や並列性が必要な部分はハードウェアで,複雑性と柔軟性が必要な部分はソフトウェアで処理するのが一般的です(表1).

表1 ソフトウェアとハードウェアの切り分け

 プロセッサを内蔵するASICの開発では,ハードウェアとソフトウェアの最適な切り分けのために,Cadence Design Systems社の「Incisive Palladium」のようなハードウェア・ソフトウェア協調設計/検証ツールも使われています.

(3)ハードウェアの実現方法
 ハードウェアの実現方法には,いくつかの方法があります.

 ディジタル回路の場合,比較的小規模であれば,ディスクリート部品や標準ICを組み合わせて構成したり,SPLDを使います.大量生産品であればASIC化します.少~中量生産品で,中~大回路規模であればFPGAやCPLDを活用します.

 標準品として大量生産されて種類が多く,高速で自由度が高い入出力を持ち,開発現場で何度でも回路を書き換えられる特徴を持つFPGAは,組み込みシステム開発に広く応用されています.

(4)マイコンの選定
 ソフトウェアが動作するマイクロコンピュータには,大規模処理であればマイクロプロセッサ,高速演算処理であればDSP,小~中規模で低~中速な処理であればマイクロコントローラといった棲み分けがあります.

 マイクロプロセッサやDSPは,複雑で高速な処理のために演算性能を追求したLSIです.このため,使用に当たっては,大容量かつ高速なメモリや高速I/O,不揮発性メモリなどの周辺回路が必要となります.

 これに対し,周辺機能が内蔵されているマイクロコントローラがあります.ディジタル回路のみならず,アナログ回路とのインターフェース機能であるA-DコンバータやD-Aコンバータを内蔵するものもあります.多くの制御用途において周辺回路がほとんど必要なく,設計者にとって使いやすいことが特徴です.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日