Integer And Real
CoddyのVerilogジャーニー「基礎」セクションの一部。レッスン 8/90。
wire と reg に加えて、Verilog には異なる用途の数値用データ型がほかにもあります。
integer
integer は、カウントや計算に使用する汎用変数です。
- デフォルトのサイズは32ビット
- 符号付き(negative numbersをstoreできる)
- 主にtestbenchと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は浮動小数点数(小数を含む数値)を表します。
- 小数値を格納する
- 計算のためにテストベンチで使用される
- ハードウェアに合成できない
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 は、ループカウンター、計算、期待値の確認によく使用されます。これらを使うと、テストコードの記述と理解が容易になります。
ハードウェアでは:これらの型は通常、合成可能ではありません。つまり、実際の回路に変換することはできません。FPGAやチップに実装するハードウェアには、代わりにregとwireを使用してください。
チャレンジ
テストベンチが動作するようにコードを完成させてください。
すること:
- integer 型の i(for ループカウンター)を Declare する
- real 型の value(計算用)を Declare する
自分で試してみよう
module test;
// 整数 i を宣言する
// 実数 value を宣言する
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
endmoduleこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine Logic自分で練習してみよう: Verilogオンラインコンパイラ