いきないひっかけ問題であった。回路設計においては、論理値1は何を意味するか、論理値0は何を意味するか、これらの意味が直感と反対になっていることは少なくないので、十分注意すること。
発光ダイオードはアノード(陽極)とカソード(陰極)を持ち、アノードに高い電圧、カソードに低い電圧をかけたときのみ電流が流れ発光する。アノードコモン7セグメントレジスタは図1に示すようにアノードが共通となっている。使用時には共通アノードに常時高い電圧をかける。カソードは各ダイオード毎別々になっており、カソード側(カソードに接続する抵抗)にかける電圧によって、ダイオードが発光するかどうか決まる。カソード側に共通アノードと同じく高い電圧をかけたとき、電圧が等しいため、電流は流れない、つまり発光しない。カソード側に低い電圧をかけたとき、電流が流れ、ダイオードが発光する。以上より、7セグメントデコーダは発光させたいダイオードに対応する出力の電圧を低くする(つまり、論理値0にする)必要がある。
図1. 発光ダイオードと電圧
表1に7セグメントデコーダの真理値表を示す。また、真理値表に基づいて作成したカルノー図を図2に示す。
表1. 7セグメントデコーダの真理値表
I3 | I2 | I1 | I0 | A | B | C | D | E | F | G |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
それ以外 | X | X | X | X | X | X | X |
図2. 7セグメントデコーダのカルノー図
カルノー図に基づいて作成した7セグメントデコーダを図3に示す。
図3. 7セグメントデコーダの回路図
押しボタンスイッチもまた発光ダイオード同様、直感とは逆の動作をする。押しボタンスイッチの動作を図4にまとめる。押しボタンスイッチがオフのとき、電源とグラウンドの間に電流が流れないので、FPGA への入力における電圧は、電源と同じ高電圧となる。逆にオンのときは電流は流れない。電源とFPGA への入力の間にある抵抗において電圧が降下するため、FPGA への入力における電圧は低電圧となる。
図4. 押しボタンスイッチと電圧
作成した回路は表2のように動作する。
表1. 7セグメントデコーダの真理値表
スイッチ1 | スイッチ2 | LED |
---|---|---|
オフ | オフ | オフ |
オフ | オン | オン |
オン | オフ | オン |
オン | オン | オン |
課題の図20に示しているように P43〜P46 に 0 を与えないと7セグメントLED は点灯しない。定数 0 はシンボル gnd から得ることができる。課題1で作成した回路から目的の回路は例えば 図5 のように作成することができる。この解答例では、押しボタンからの信号値について、直感的に扱えるように、値を反転させて使用している。
図5. 押しボタンの状態に応じ7セグメントLEDを表示させる回路
難波 一輝 (助教・伊藤・北神・難波研究室)
工学部1号棟4階409号室、内線3255、043-290-3255、namba@ieee.org