
グランドの弱いH社のFPGAボード(A社のFPGA搭載)をあきらめ、
X社のFPGAボードにプラットホームを変更して、サンプル回路を実装中であるが、
これがまた全く思ったように動作せず、ずっと対策を検討していた。
A社は無償ツールのCDROM掲載の返事が遅く、結局CDROMには収録をしないことにしたので、
私としてはAでもXでもどちらでもかまわなくなったのである(笑)
X社の無償ツールはA社のと異なり、細かな情報が見えないので
なぜ動かないのかが不明なまま、アドホックに論理を変更しては
試すという作業を昨日から散々していた。
FPGA合成ツールでコンパイルして、ボードにダウンロードして試す作業を
何回やったか分からないが、全く動く気配がない。
CPUを回路から削り、シンプルにしたバージョンを別のディレクトリに作成し、
そちらで試すと思ったように動いている。
う~ん、このCPU記述がX社のつぼにはまったか?などと考えながら、
問題点を推定しようと考えるのであるが、合成メッセージをいくら眺めても
おかしそうなところは見当たらない。
CPUのシミュレーションだけでは、問題点が見つからないのかと、
実装用の周辺回路まで含んだシミュレーション環境を新たに作成し、
検証するけれど、どう考えてもシミュレーション上は思ったように動いている。
行き詰って、ベッドで横になっているうちに、いつの間にか寝ていた。
夜中におきて、コーヒーを飲んで、再度トライしていたが変わらず、
ふと、合成ツールのファイル一覧を見ると、「あれ?ピン配置ファイルが読まれていない!」
ことに気が付く。
ピン配置を自動にしたら、プリント基板上の配線とは全く関係なく
信号ピンがアサインされるから、これは動くわけがない。
Makefileのワークディレクトリへの転送指示にもれがあったので、
それを修正し、再度合成。
う~ん、やっぱりピン配置ファイルが読み込まれない?
動いている別ディレクトリのバージョンとつき合わせて考えると、
プロジェクトファイルの中でピン配置を指定する行の上に
スペース行が一行入っている以外の違いはない。
普段のプログラム言語等の感覚だとスペース行は無視するのが普通なのだが、
これはもしかして、と考えてスペース行を削除。
再度、ワークディレクトリをすべて削除した後、コンパイル・ダウンロード
な~んだ、ちゃんと動くじゃないか~
ということで、めでたしなのであるが、本日中に記事を作成しなくては・・
実は、動いたばかりで、LEDにはデバッグ用にCPUの命令アドレスを
出しているだけなので、これから記事用に微調整が必要である。