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