第1回補足資料・テストベクタを作ると言うこと

LSIの動作が正しいかどうかを検証するために、LSIの端子に入力するデータや、その結果LSIから出力される出力期待値を合わせてテストベクタと呼んでいます。入力データだけをテストベクタと呼んでいる場合もあるようです。

Verilog-HDLやVHDLなどのハードウエア記述言語では、LSIの端子に入力するデータはイベント形式、つまり、ある基準時刻からの経過時間とレベル変化で表現することがあります。

たとえば、起点時刻から初期状態0から1000単位時間後に1に端子入力レベルを変化させる、と言った具合です。
 イベント形式

ハードウエア記述言語のシミュレーションの世界だけで閉じているのであれば、それで問題はないのですが、世の中にあるLSIテスターの構造は、ほとんどのテスターがタイミングジェネレーターとテストパターンメモリーの構造となっていて、信号変化のタイミングとテストパターンで表される論理値で波形を定義するので、ある周期で割り切れる動作しか表現できません。
 パターン形式

これで表現できないテストベクタはLSIテスターに持って行くことが出来ず、テストエンジニアにはどうすることも出来ないので、テストベンチ自体の見直しと再作成をしなければならないのです。

テストベンチ作成に波形エディタを使う場合は、この辺のトラブルを回避できるような仕掛けがツール側にあると思いますが、手書きで波形を作るような場合は注意が必要です

もう一つテストベクタがらみの話でよくあるトラブルが、内部ノードの固定です。

論理設計の場面では、色々な事情からLSI内部の特定のノード(配線やセルの端子)を強制的にレベル固定してシミュレーションを実施することがあります。このレベル固定を解除するのを忘れてテストベクタを作成すると、当然ながら出来上がったLSIの回路と異なる回路の動作結果がテストベクタとなるので、絶対にパスさせることのできないテストベクタになってしまいます。