組み込み型
幅指定可能な4値データ型
logic
は4値(0
、1
、x
、z
)のデータ型です。幅は logic
のあとの <>
で指定できます。<X, Y, Z,,,>
のように多次元指定も可能です。
module ModuleA {
let _a: logic = 1;
let _b: logic<10> = 1;
let _c: logic<10, 10> = 1;
}
幅指定可能な2値データ型
bit
は2値(0
、1
)のデータ型です。幅は logic
のあとの <>
で指定できます。<X, Y, Z,,,>
のように多次元指定も可能です。
module ModuleA {
let _a: bit = 1;
let _b: bit<10> = 1;
let _c: bit<10, 10> = 1;
}
型修飾子
logic
と bit
型には以下の型修飾子を付けることができます。
signed
: MSBは符号ビットとして扱われるtri
: トライステート型
module ModuleA {
let _a: signed logic<10> = 1;
let _b: tri logic <10> = 1;
let _c: signed bit <10> = 1;
let _d: tri bit <10> = 1;
}
整数型
整数型にはいくつかの種類があります。
u8
:8ビットの符号なし整数u16
:16ビットの符号なし整数u32
:32ビットの符号なし整数u64
:64ビットの符号なし整数i8
:8ビットの符号付き整数i16
:16ビットの符号付き整数i32
:32ビットの符号付き整数i64
:64ビットの符号付き整数
module ModuleA {
let _a: u8 = 1;
let _b: u16 = 1;
let _c: u32 = 1;
let _d: u64 = 1;
let _e: i8 = 1;
let _f: i16 = 1;
let _g: i32 = 1;
let _h: i64 = 1;
}
浮動小数点数型
浮動小数点数型にもいくつかの種類があります。
f32
:32ビット浮動小数点数f64
:64ビット浮動小数点数
いずれも IEEE Std 754 準拠の表現です。
module ModuleA {
let _a: f32 = 1.0;
let _b: f64 = 1.0;
}
文字列型
string
は文字列を表す型です。
module ModuleA {
let _a: string = "";
}
Type型
type
は型の種類を表す型です。type
型の変数は param
か const
としてのみ定義可能です。
module ModuleA {
const a: type = logic;
const b: type = logic<10>;
const c: type = u32;
}
ブーリアン型
bool
は ブーリアンを表す logic<1>
の型エイリアスです。1'b1
と 1'b0
を表す true
と false
も使用できます。
module ModuleA {
const a: bool = true;
const b: bool = false;
}