Integer と Real
CoddyのVerilogジャーニー「基礎」セクションの一部 — レッスン 8/90。
wire や reg に加えて、Verilogには異なる目的を持つ数値用のその他のデータ型があります。
Integer
integer は、カウントや計算に使用される汎用的な variable です。
- デフォルトのサイズは32 bitです
- signed(negative numbersをstoreできます)
- 主にテストベンチやforループで使用されます
integerの宣言:
integer i; // 32ビット符号付き変数
integer count; // 負の数を格納できるinteger の使用:
integer i;
initial begin
i = 0; // 0から開始
i = i + 1; // カウントアップ
i = -5; // 負の値を格納可能
$display("i = %d", i); // 出力: i = -5
endReal
real は floating-point numbers(小数を持つ数値)用です。
- 小数値を保持します
- 計算用のテストベンチで使用されます
- ハードウェアに論理合成することはできません
realの宣言:
real pi; // 浮動小数点変数
real voltage;real の使用例:
real pi;
initial begin
pi = 3.14159; // 10進数の値
pi = 22.0 / 7.0; // 除算結果
$display("pi = %f", pi); // 出力: pi = 3.142857
end使用する場所
テストベンチ内: integer や real は、ループの counter や計算、期待値の確認などに一般的に使用されます。これらを使用することで、テストコードの記述や理解が容易になります。
ハードウェアにおいて: これらの型は通常、論理合成可能ではありません。つまり、実際の回路に変換することはできません。FPGAやチップ上に実装するハードウェアの場合は、代わりに reg や wire を使用します。
チャレンジ
テストベンチを正常に動作させるためにコードを完成させてください。
作業内容:
- i という名前の integer を宣言する (ループカウンタ用)
- value という名前の real を宣言する (計算用)
自分で試してみよう
module test;
// 整数 i を宣言する
// 実数 value を宣言する
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
endmoduleこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。