FPGA エミュレーションによる組込み S/W のテスト効率化と品質向上

FPGA エミュレーションによる組込み S/W のテスト効率化と品質向上
三原 拓也，佐藤 亨，徳田 伸矢
1. まえがき筆者の所属する部門では，衛星通信システム向け通信機器製品(モデム，衛星ルータ，等)のソフトウエア（以下，S/W）を設計・製作している。本稿では，衛星通信モデム
S/W 向けのテスト環境として FPGA エミュレーターを開発した取組みについて報告する。
（FPGA：Field Programmable
Gate Array）
FPGA エミュレーターの適用により，衛星通信モデム S/Wのテスト効率化と品質向上を実現した。また，S/W とハードウエア(以下，H/W)の並行開発が可能になり，製品全体の工期短縮にもつながった。
本稿では，S/W のテストフェーズの呼称を，表 1 のとおり定義して使用する。
表 1．テストフェーズ呼称■結合テスト

図 1．衛星通信モデム構成図

モジュール全体を組み合わせた S/W を，製品実機のトすることができない。その場合の主な対応は，以下のもH/W とは異なる環境（例：PC 上の仮想環境）でテストのである。
総合テストで実施する（結合テストでの実施をあきらする。H/W の構成要素（筐体，FPGA，DSP など）や周辺機器は，S/W シミュレーター等で模擬する。

める）■総合テストFPGA へのアクセスを模擬する仕組みを構築する
次節以降で，それぞれの対応について詳しく述べる。

モジュール全体を組み合わせた S/W を，製品実機（実機相当）の H/W 上でテストする。FPGA 等も実物を使用

2.1.1 総合テストで実施する場合する。周辺機器は，基本的には模擬とするが，実機をFPGA へのアクセスや，FPGA 経由で実現する通信機能の使用する場合もある。

テストについて，結合テストでの実施をあきらめ，総合テ

2. 組込み S/W 開発の課題

ストで実施するとした場合，コスト超過や工程遅延のリス

2.1 S/W・H/W 構成と S/W テスト

クが発生する問題がある。
S/W の開発フェーズの下流にいくほど，不具合が発生し典型的な衛星通信モデムについて，S/W・H/W の構成図た際の上流フェーズへの手戻り作業が多くなるため，不具を図 1 に示す。

合 1 件あたりの改修コストは高くなる。FPGA 関連のテス

衛星通信モデムの特徴として，S/W は，メモリー・マッ

プド・I/O を介して，FPGA のレジスターにアクセスする。 トを，総合テストで初めて実施した場合，本来は結合テス
FPGA は, S/W からの要求に従い，モデム H/W 自身の監視 トで検出するはずであった誤りを総合テストで検出する制御に加え，周辺機器（図 1 の装置 B，装置 C）との通信ことになり，工数・コストが計画から増加してしまう可能や，衛星回線経由で対向局（図 1 の対向局）とのデータ送性がある。

受信を中継する役割を担う。そのため，FPGA が無い環境

加えて，テストで FPGA 関連のインターフェースに齟齬で行う結合テストでは，FPGA とのインターフェースのみが検出されると，不具合が解決するまでの期間，他のテスならず，周辺機器や対向局との通信も，そのままではテス

ト項目が実施できない場合が多い。その場合，テスト再開
1

FPGA エミュレーションによる組込み S/W のテスト効率化と品質向上までに時間を要し，コスト超過や工程遅延となる。

されておらず，実施したいテスト内容に合わせて製品ごとまた，昨今の衛星通信モデム製品の開発においては，S/Wに機能を作り込んでいた。このような従来手法には，以下と H/W が並行で開発されることが多く，H/W 製造工程の影響を S/W が受けやすい。仮に，総合テストを開始するタイのような問題があった。
周辺機器との間のさまざまなシーケンスをテストす

ミングで H/W がまだ完成していない状況が発生すると，総るためには，テスト項目ごとに決められた動作をする合テストが開始できず，S/W の工期にも遅延が発生する。

スタブを作成する必要があり，効率が悪い。
テスト用コード自体のテストを実施しないため，誤りを含むスタブでテストを実施してしまう可能性があ

2.1.2 FPGA へのアクセスを模擬する場合る。

衛星通信モデム S/W の開発において，結合テストは PC上の仮想環境で実施している。結合テスト環境としての理スタブに置き替えた部分の S/W は，結合テストで動作

想は，S/W のインターフェース機能や全体のシーケンス動を確認することができない。

作を確認するための，周辺機器，及び自装置の H/W が揃っ結果として，結合テストでは検出できない誤りや，実施ていることである。特に，実機では発生させにくい H/W のできないテストが発生し，2.1.1 項と同様の問題が発生し異常やクロスシーケンスなどを狙って発生させ，テストすていた。

ることができれば，S/W 品質の向上につながる。

3. FPGA エミュレーター

図 1 に示した構成において，S/W と直接ネットワーク経

3.1 構成由でつながる周辺機器（装置 A）に関しては，シミュレー

2 章で述べた課題を解決するため，
FPGA エミュレーター

ターをホスト PC 上で動作させることで，比較的容易にイを開発した。FPGA エミュレーターを使用した構成を，図 2ンターフェース機能をテスト可能である。に示す。

一方，
図 1 において FPGA 経由で通信を行う周辺機器（装FPGA エミュレーターは，S/W の結合テスト環境にて，置 B，装置 C）や対向局については，FPGA が無い環境では，S/W から見た FPGA 及びその先にある周辺機器や対向局とそのままではテストが実施できない。
FPGA エミュレーター導入以前の衛星モデム製品では，の連接をテストするための仕組み（フレームワーク）とし，S/W のソースコードにテスト用のスタブを記述し，結合テ

S/W と同じOS 上で動作するミドルウエアとして実現した。

スト時には，S/W のうち FPGA とのインターフェースを行FPGA エミュレーター適用のため，
図2 左側に示すように，う機能をコンパイルオプション等でスタブに切り替える

FPGA にアクセスする部分の S/W 機能を FPGA アクセスライことでテストを実施していた。スタブは，特に共通化設計ブラリーとして切り出した構成とした。

図 2．FPGA エミュレーターを使用した構成図

2

FPGA エミュレーションによる組込み S/W のテスト効率化と品質向上

結合テストにおいては，図 2 右側のように，FPGA

表 2. FPGA エミュレーターの主な機能

アクセスライブラリーを，FPGA エミュレーター用に■周辺機器連接機能差し替える。これにより，S/W 本体を改修することな

S/W から見て，FPGA を経由した先に LAN やシリ

く，製品実機環境と FPGA エミュレーター環境を容易

アルで接続される周辺機器（実機又は，シミュに切替え可能となった。

レーター）を接続できる。
■衛星回線・対向局連接機能

3.2 機能3.2.1 S/W テスト向け機能

S/W から見て，FPGA を経由した衛星回線の送受信を LAN で模擬し，さらにその向こうにある対開発した FPGA エミュレーターの機能ブロック図

向局についても，周辺機器と同様にシミュレーを図 3 に示す。

ターとして接続できる。
■FPGA レジスター模擬機能
S/W からの FPGA レジスターアクセス（Read/Write）に対し，それぞれ個別にフック（選択）処理を記述でき，レジスター間の連携や，条件処理も実現できる。
■S/W 割込み模擬機能
衛星モデムにおいては，FPGA から S/W への通知手段として，S/W 割込みが使用される。S/Wは専用のドライバーを介して割込みを検出している。FPGA エミュレーターは，ドライバーの差替えにより，任意のタイミングで S/W 割込みを模擬できる。
■LED 模擬機能
モデム筐体の各種 LED（例：電源 ON/OFF，キャリア ON/OFF，異常発生有無，等）の点灯/消灯を任意のレジスターのビットに割り付け，画面上に模擬表示できる。
■動作ログ出力機能
レジスターのアクセスや周辺機器との通信内容など，動作ログを詳細に出力可能。テストの結果確認やエビデンス記録として使用できる。

図 3．FPGA エミュレーターの機能ブロック図

FPGA エミュレーターは，さまざまな製品向けに活3.2.2 FPGA エミュレーター自体の自動テスト用できるよう，SPL（Software Product Line）の考FPGA エミュレーターを製品に適用する際には，拡え方をもとにアーキテクチャー設計を行った。製品

張部をそれぞれの製品 S/W に合わせて作り込む必要に依存せず完全流用が可能な部分（共通部）と，製があるが，この部分の品質が悪いと，2.1.2 で述べた品ごとに動作が変わるため作り込みが必要な可変部ような問題が発生する。その対策として，この作り分（拡張部）を明確に分けることで，各製品の開発込み部分を含め，FPGA エミュレーター自体のテスト者が FPGA エミュレーターを採用しやすい構成としを容易に実施するための自動テスト機能を，FPGA エた。FPGA エミュレーターの主な機能を表 2 に示す。

ミュレーターに具備した。自動テストの構成を図 4に示す。

3

FPGA エミュレーションによる組込み S/W のテスト効率化と品質向上

FPGA エミュレーター自身の自動テスト機能を活用した。これにより，テスト環境自体の品質確保を効率よく実現することができた。例えば，FPGA エミュ
レーターに仕様変更が発生し改修を行う場合でも，改修部分以外への影響が無いことを自動テストで確認できるため，デグレードの発生を未然に防ぎ，品質を確保することができた。

4.2 改善効果
結合テストに FPGA エミュレーターを適用した衛星モデム S/W について，結合テストと総合テストにおける検出誤り数の割合（計画値/実績値）を図 6 に示す。

図 4．FPGA エミュレーターの自動テスト構成図

4. 製品への適用
4.1 衛星通信モデム S/W
衛星通信システム向けモデム装置の S/W 開発において，結合テストに FPGA エミュレーターを適用し
図 6．検出誤り数の割合(計画値/実績値)た。適用時の構成を図 5 に示す。図の中央，"拡張部"の部分だけが，モデム S/W 向けに FPGA エミュレ

なお，検出誤り数の割合は，結合テストの計画値ーターに新たに追加した機能である。その実装には，を基準（100%）とした割合で示している。計画値は，過去の類似製品の実績値と，衛星モデム S/W の S/W規模から見積もった値であり，FPGA エミュレーターを適用しなかった場合の予測値である。
図 6 の結合テスト実績値の緑色部分は，総合テストで検出する見込みであった誤りを，結合テストで早期検出したものである。また，早期検出した誤りのうち，約 62%は，FPGA 経由で連接する周辺機器とのインターフェース誤りであった。FPGA エミュレーター適用の効果が，狙いどおりに実現できている。
2.1.1 項で述べたとおり，結合テストと総合テス
トとでは，検出した誤り 1 件あたりの調査・改修コストが違ってくる。FPGA エミュレーターの活用により，誤りを上流の結合テストで検出することで，テストの効率化が実現できた。
また，2.1.2 項で述べた，実機では発生が難しい異常系・準正常系のテストについても，特別な仕組み等を追加することなく容易にテスト実施できる環境により，効果的なテストを従来よりも多く実施する

図 5．衛星モデム適用時の構成図

4

FPGA エミュレーションによる組込み S/W のテスト効率化と品質向上ことで，S/W 品質の向上につなげることができた。
一方，FPGA の厳密な動作タイミングや性能についてのテストは，FPGA エミュレーターを用いた結合テストでは実施できず，実機でのテストが必要である。
結合テストと総合テストで，それぞれどのようなテスト項目を実施するのがテスト全体の効率化につながるのか，更なる分析を進め，改善に取り組んでいる。

5. むすび
衛星通信システム向け通信機器 S/W のテストに関する課題に対し，FPGA エミュレーション技術の適用による改善効果を確認した。
FPGA エミュレーターは，衛星通信モデムのシリーズ製品の他，衛星ルータ製品，衛星以外の無線通信モデム機器など，さまざまな製品に適用範囲を広げており，実績を重ねている。
今後は，各製品で作成した FPGA エミュレーターのノウハウを活かし，更なる共通化や，拡張機能のモジュール化の促進によって，より効率的に使えるテストフレームワークに改良していく予定である。

謝

辞

FPGA エミュレーターの実現・製品適用にあたり，ご指導賜った三菱電機（株）通信機製作所 ソフトウェ
ア技術部 ソフトウェア技術第二課の皆様に，深く感謝の意を表する。

執 筆 者 紹 介
三原拓也（みはら たくや）2014 年入社。
衛星・通信に関する組込みソフトウエア開発に従事。
現在，第１事業部 電子通信技術部 技術第４グループに所属。

佐藤亨（さとう とおる）

2003 年入社。
衛星・通信に関する組込みソフトウエア開発に従事。
現在，第１事業部 電子通信技術部に所属。

徳田伸矢（とくだ しんや）2014 年入社。
衛星・通信に関する組込みソフトウエア開発に従事。
現在，第１事業部 電子通信技術部 技術第４グループに所属。

5