つながるワイヤレス通信機器の開発手法(16) ――デバッグを行う
4.検証の一元化とシナリオ・ジェネレータ
図8のように,システムLSIができ上がる前にFPGAと汎用CPUを搭載したプロトタイプを作るケースは多い.このとき,システムLSIに組み込むCPU(コア)とプロタイプに使用する汎用CPUが異なり,ユーザ論理のCPUインターフェースの部分を調整しなければならない場合がある.このような場合,Verilog HDLのソース・コード内に`ifdefでインターフェースを切り替えられるようなしくみを埋め込んでおき,論理合成を行うときに切り替えて使用する.
例えば,以下のように記述しておけば,システムLSIの論理合成を行う際にコンパイル・オプションにSYSTEM_LSIを付けることでシステムLSI用のCPUインターフェース回路が生成される.プロトタイプ用回路を生成する際はコンパイル・オプションを付けずにコンパイルすればよい.
`ifdef SYSTEM_LSI //システムLSI用
`else //プロトタイプ用
`endif
プロトタイプと最終回路の間で,`ifdefで切り替える部分は,インターフェース,信号モニタ用に引き出した信号線,ピン配置,クロック入力方式などである.これらの部分はシミュレーションでしか動作を確認できないので,入念なチェックが必要になる.この手法はCプログラムでも使用できる.モニタ・プログラムを介してつないだパソコン上でプログラムを開発した場合,コンパイル・オプションを使ってターゲットであるシステムLSI内のCPU用に切り替えてオブジェクト・コードを生成する(図10).