宿題の課題で7セグメントデコーダの回路をVerilog HDLというもので設計してきてくださいと言われて宿題をやったのですが、正直よくわからなくて教科書のものを映して提出してしまいました。
よくわからなかったというのは、Verilog HDL文の動作レベルでの記述で何が何のことを言っているのかわかりませんでした。だれか下の動作レベルでの記述はここではこうなんだよと教えてくれると助かります。
`define SEG_OUT_0 7'b011_1111
`define SEG_OUT_1 7'b000_0110
`define SEG_OUT_2 7'b101_1011
`define SEG_OUT_3 7'b100_1111
`define SEG_OUT_4 7'b110_0110
`define SEG_OUT_5 7'b110_1101
`define SEG_OUT_6 7'b111_1101
`define SEG_OUT_7 7'b010_0111
`define SEG_OUT_8 7'b111_1111
`define SEG_OUT_9 7'b110_1111
`define SEG_OUT_ERR 7'b111_1001
/*7SEG_DECODER*/
module SEG7_DEC (IN,OUT);
input [3:0] IN;
output [6:0] OUT;
assign OUT = FUNC_SEG7_DEC (IN);
function[6:0] FUNC_SEG7_DEC ;
input [3:0] IN;
case(IN)
0: FUNC_SEG7_DEC = `SEG_OUT_0;
1: FUNC_SEG7_DEC = `SEG_OUT_1;
2: FUNC_SEG7_DEC = `SEG_OUT_2;
3: FUNC_SEG7_DEC = `SEG_OUT_3;
4: FUNC_SEG7_DEC = `SEG_OUT_4;
5: FUNC_SEG7_DEC = `SEG_OUT_5;
6: FUNC_SEG7_DEC = `SEG_OUT_6;
7: FUNC_SEG7_DEC = `SEG_OUT_7;
8: FUNC_SEG7_DEC = `SEG_OUT_8;
9: FUNC_SEG7_DEC = `SEG_OUT_9;
default: FUNC_SEG7_DEC = `SEG_OUT_ERR;
endcase
endfunction
endmodule
No.1ベストアンサー
- 回答日時:
> `define SEG_OUT_0 7'b011_1111
これは、SEG_OUT_0という変数に011_1111という値を割り当てている(数値内で使われるアンダースコアはVerilogでは無視されるので、7'b011_1111は0111111と等価)。これは、後々011_1111を引用するときに、011_1111という意味不明の数字を使うのではなく、SEG_OUT_0という変数を使うことにより、コードが読みやすくなるため。
> module SEG7_DEC(IN, OUT);
ブロック名の宣言.
> input [3:0] IN;
> output [6:0] OUT;
ポートの宣言。入力ポートINは4ビット、出力ポートOUTは7ビット。
functionとendfunctionで挟まれた部分はいわばサブルーチンのようなもので、、
INが0000であれば、FUNC_SEG7_DECにSEG_OUT_0、つまり011_1111を代入、INが0001であればFUNC_SEG7_DECにSEG_OUT_1,つまり000_0110を代入、INが0010であればFUNC_SEG7_DECにSEG_OUT_2を代入,,.....というサブルーチン処理を定義してると考えればよい。
最後のdefaultはINが0から9のどれにも一致しなかった場合に実行されるブロックで、論理合成をするときにラッチを作るのを避けるためのもの。
でそのfunctionを呼び出しているのが、
assign OUT = FUNC_SEG7_DEC (IN);
このブロック全体で行っている処理は、
IN=0000ならOUT=0111111
IN=0001ならOUT=0000110
IN=0010ならOUT=1011011
...
..
返事が遅れてしまいすみませんでした。
凄く詳しい回答ありがとうございました。どこがどういう機能か前よりも理解することができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 楽器・演奏 cubaseのオーディオ出力について。 cubaseのオーディオ出力でstereo outを選択しな 1 2023/08/21 07:15
- 英語 文の構造をご教示ください 2 2023/01/01 18:03
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- C言語・C++・C# [至急]Project Euler:#17Number letter countsコード入力出力解説 2 2022/09/24 02:46
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- 英語 out front の品詞を教えてください。 You have the flowers out fr 3 2022/12/19 18:35
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- 英語 home where you've rented one out for a week? 4 2022/08/06 09:13
- 洋楽 killer Queenの歌詞 3 2023/07/17 16:47
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
恒等的に正しいとはどういう意...
-
SPIの問題
-
「Access」のフォームで、同じ...
-
数Bの数列の問題です。 正の奇...
-
恐らく2変数テイラー展開だと...
-
FX:指定した時間の高値・安値を...
-
平衡定数の求め方について、ΔG=...
-
数学の質問(ⅠA)
-
ユーザー名「hoge」について
-
ライニプッツの公式に関してで...
-
連想配列の初期化
-
円の方程式
-
xの2n乗 を積分するとどうなり...
-
整数係数の2次方程式
-
連立方程式の利用について
-
整数の問題です。(10^n)+1は素...
-
e^ixを1次の項までテイラー展開...
-
余弦定理「a>0 だから a=√31...
-
エクセル 2/3乗
-
次の関数の組が線形独立である...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
恒等的に正しいとはどういう意...
-
SPIの問題
-
数Bの数列の問題です。 正の奇...
-
数学の質問です。 3で割ると2余...
-
高2数学 軌跡
-
平衡定数の求め方について、ΔG=...
-
次の関数の組が線形独立である...
-
計算問題
-
数Ⅰ 2X-3>a+8Xについて次の問い...
-
「Access」のフォームで、同じ...
-
ライニプッツの公式に関してで...
-
3で割ると2余り,5で割ると3余...
-
TextBox1とTextBox2の数値の大...
-
エクセル 2/3乗
-
7で割ると2余り、11で割ると3余...
-
w=1/z−iのときz平面上の図形は...
-
円の方程式
-
A,Bをn次正方行列とする場合、...
-
Excel VBAで1行に2つのコードを...
-
4元連立方程式の解き方を教えて...
おすすめ情報