つながるワイヤレス通信機器の開発手法(16) ――デバッグを行う
しかし,抽象度が高いレベルでシナリオを作ったとしても,そこからハンド・コーディング(手入力)でテスト・パターン(またはシミュレーション・パターン)を作っていたのでは効率が悪く,またミスが生じやすい.この手間ひまとミスを減らすために,シナリオまたはシナリオに近い記述(簡易スクリプト)から自動的にテスト・パターンを作る方法を筆者は推奨している.具体的には,自動的にテスト・パターンを作成するためにソフトウェア・エンコーダを準備する.ソフトウェア・エンコーダを利用することで,ターゲットごとに生成するファイルを切り替える機能を持たせることができる.
このようなテストを行う場合,いきなり最終ターゲットに対してすべてのテストを行うのではなく,例えば,最初にVerilog HDLシミュレータで動作を確認し,次にFPGAなどのプロトタイプで,そして最後に最終ターゲット・システムで,というように段階的に動作を確認する.しかし,テスト環境やターゲットが変わるたびに新たにシナリオやテスト・パターンを作り直しているようでは,不ぐあいや作業の手戻りが多くなる.
最終的な回路やシステムではVerilog HDLシミュレータによるテストベンチやプロトタイプの場合ほど多くの内部信号の情報を得ることができず,デバッグが困難になる.その場合,プロトタイプと1対1に近い形で動作を検証できるモニタ環境を構築しておけば,最終システムで観察しにくい内部の状態を把握しやすくなる.
Verilog HDLシミュレータやプロトタイプで実現する回路動作と最終回路についても,論理合成の部分を切り替えるだけで同じ回路データからそれぞれの回路が生成されるようにしておく.こうすることで,シミュレータやプロトタイプで実現する回路動作と最終回路の動作はほとんど同一のものになり,不ぐあいの特定が容易になる.最終回路とプロトタイプで異なる部分は,UART(universal asynchronous receiver-transmitter)バスなど,外部回路とのインターフェースの部分である.