回路の設計自体は課題の図18のとおりに入力すればよい。検証用モジュールについて、作成例を図1 に示す。行 "// Initialize Inputs" より前は Wizard が作成したひな型をそのまま使用すればよく、図1中では省略している。
// Initialize Inputs initial begin A = 0; B = 0; C = 0; #10 A = 0; B = 0; C = 1; #10 A = 0; B = 1; C = 0; #10 A = 0; B = 1; C = 1; #10 A = 1; B = 0; C = 0; #10 A = 1; B = 0; C = 1; #10 A = 1; B = 1; C = 0; #10 A = 1; B = 1; C = 1; #10 $finish; end endmodule |
いきないひっかけ問題であった。回路設計においては、論理値1は何を意味するか、論理値0は何を意味するか、これらの意味が直感と反対になっていることは少なくないので、十分注意すること。
発光ダイオードはアノード(陽極)とカソード(陰極)を持ち、アノードに高い電圧、カソードに低い電圧をかけたときのみ電流が流れ発光する。アノードコモン7セグメントレジスタは図2に示すようにアノードが共通となっている。使用時には共通アノードに常時高い電圧をかける。カソードは各ダイオード毎別々になっており、カソード側(カソードに接続する抵抗)にかける電圧によって、ダイオードが発光するかどうか決まる。カソード側に共通アノードと同じく高い電圧をかけたとき、電圧が等しいため、電流は流れない、つまり発光しない。カソード側に低い電圧をかけたとき、電流が流れ、ダイオードが発光する。以上より、7セグメントデコーダは発光させたいダイオードに対応する出力の電圧を低くする(つまり、論理値0にする)必要がある。
図2. 発光ダイオードと電圧
表1に7セグメントデコーダの真理値表を示す。また、真理値表に基づいて作成したカルノー図を図3に示す。
表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 |
図3. 7セグメントデコーダのカルノー図
カルノー図に基づいて作成した7セグメントデコーダを図4に示す。
図4. 7セグメントデコーダの回路図
難波 一輝 (助教・伊藤・北神・難波研究室)
工学部1号棟4階409号室、内線3255、043-290-3255、namba@ieee.org