HDLで記述したOR回路をFPGAボードで動作させたところ、なぜかANDで動作した......。その原因について詳しく解説する。EDX-002」で動作させたところANDで動作した。それはなぜか”という問題でした。皆さん解けましたでしょうか?解けた方も解けなかった方も答え合わせをして、次項の解説までぜひ読んでみてください。毎週コツコツ問題を解いて、ハードウェア記述言語によるデジタル回路設計の基礎知識を身に付けましょう。【問題3】は実際にFPGAボードで動作させるときに注意すること、すなわち「ハードウェアとHDLの接点」に関する問題です。EDX-002」で動作させます。その際の回路は図1のようになります。【問題3】のハードウェア構成はじめに、スイッチ入力から考えてみましょう。スイッチ入力回路の働きは、図2のようになります。スイッチ入力回路の働きスイッチがOFFのときFPGAの端子に“1”が、スイッチがONのときFPGAの端子に“0”が入力されます。このように、スイッチのON/OFFと、その論理値が逆転しているため、このスイッチ入力回路は「負論理」です。続いて、LED出力回路の働きはどうでしょうか。電子回路ドリル」の【問題11】の解説で紹介したとおりです。LEDはFPGAの端子が“0”のとき点灯し、FPGAの端子が“1”のとき消灯する、すなわち「負論理」です。HDLでは「正論理」を想定していたが、実際の入出力回路は「負論理」であったため、誤動作が起きていたという結論が導き出せます。実は答えは簡単で、入力と出力にNOTを設け、論理を逆転するだけでよいのです(図3)。HDLでNOTはチルダ(“~”)で示します。HDLで、きちんと動作するはずです。SNSfacebooktwitterITmediaはアイティメディア株式会社の登録商標です。