整数と実数
CoddyのVerilogジャーニー「基礎」セクションの一部。レッスン 8/90。
wireとregに加えて、Verilogには用途の異なる数値用のデータ型があります。
整数
integerは、カウントや計算に使う汎用変数です。
- デフォルトのサイズは32ビット
- 符号付き(負の数を格納できる)
- 主にテストベンチやforループで使用される
整数の宣言:
integer i; // 32ビットの符号付き変数
integer count; // 負の数を格納できるinteger型の使用:
integer i;
initial begin
i = 0; // 0から始める
i = i + 1; // 1増やす
i = -5; // 負の値も格納できる
$display("i = %d", i); // 表示結果: i = -5
end実数
realは浮動小数点数(小数を含む数値)を表します。
- 小数値を格納する
- テストベンチで計算に使用される
- ハードウェアに合成できない
実数の宣言:
real pi; // 浮動小数点変数
real voltage;realの使用:
real pi;
initial begin
pi = 3.14159; // 小数値
pi = 22.0 / 7.0; // 除算の結果
$display("pi = %f", pi); // 出力: pi = 3.142857
end使用する場面
テストベンチでは:整数型と実数型は、ループカウンター、計算、期待値の確認によく使われます。これらを使うと、テストコードを書きやすく、理解しやすくなります。
ハードウェアでは:real 型は合成できません。つまり、実際の回路に変換できません。integer 型は合成でき、ループカウンターとしてよく使われますが、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このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Verilogオンラインコンパイラ