C言語スクリプト機能
MITOUJTAG Proに内蔵されたアドバンスド・JTAG・ファンクション・ジェネレータ(以下、AJFGと略す)は、あらかじめ作りこんだ出順でFPGAの端子を操作することができる機能です。AJFGで使用する言語を、JTAGスクリプトと呼びます。JTAGスクリプトはC言語(C++言語)とVHDL言語をあわせたような言語で、端子を動作させたい手順を記述したものです。制御構文はC言語風に、代入文はVHDL風に記述します。
C言語のプログラム中に登場したJTAG信号型(JSSignal型)の変数に対して値を代入したり、値を読み出すことによって、実際のハードウェアが動作したり、ハードウェアから読み込んだ値をプログラム中で参照することができます。
次のリストはJTAGスクリプトの記述例です。LEDと、PUSH_SWと、DIPSWというものがJSSignal型の変数で、この型の変数に信号を代入(<=演算子を用いる)することによって、バウンダリスキャンが行われ、実際のハードウェアから信号が出力されます。
for文やif文などの制御構文はC言語のままであることがわかると思います。
|
int sub(int param1) { for(int i = 0 ; i < 10000 ; i++) { LED <= i; // LEDにバイナリ値を表示 if(PUSHSW_IN != 0) break; // 押されたらbreak } MessageBoxA(NULL,"検査完了","",MB_OK); // WindowsAPIの呼び出しも可能 return DIPSW; // DIP SWの値を返す }
※ LEDという変数とPUSHSW_INという変数がJSSignal型である |
JTAGスクリプトのメリットには以下のとおりです。
- 汎用かつ標準的なCコンパイラ(Borland C++、Visual C、GNU Cなど)でコンパイルするため、出力コードの信頼性と品質が高く、安心して使うことができます。
- C言語風の独自仕様言語や独自開発のコンパイラ/インタプリタではないこと。
- 特異な言語仕様がなく、言語を覚えるための時間が無駄になりません。
- C言語が使用できるエンジニアであれば、誰でもすぐに使うことができます。
- 検査の「成功/失敗」の判定を、C言語のプログラム制御構文(IF~ELSE、SWITCH~CASEなど)を用いて記述できるので、複雑な判定条件が簡単に記述できます。
- JTAGスクリプトはWindowsでの標準的なC++プログラムです。WindowsAPIの呼び出しや各種ライブラリ(MatlabやNidaqなど)を直接呼び出すことができ、ラボに既に存在するシステムとの連携が容易です
