24年間、不具合の相手をしているけれど、原因は、VHDLやC言語等のプログラムミス「バグ」がほとんど。

FPGAのプログラム(VHDL記述)が正しいが、誤動作するのが3回有った。このときは、記述方法(回路)を変えたら、不具合現象が消えた。

だから、不具合が起こるべくして起っている、論理的に説明できるはずだ、と考えたほうが解決に近い。

Aという不具合現象が発生している。Aが発生するためには、Bが発生しなければならない。Bが発生するためには、Cが発生しなければならない。と論理的にさかのぼっていく。

でも、本人はCが発生するようには、プログラミングしたつもりはない。Cが発生したら、LEDを点灯したり、PRINT文でコンソールに「C発生」メッセージを表示させるような仕掛けを作って、連続運転する。

LED点灯したり、メッセージが表示されたら、ゴールは近い。