Skip to content

Data types

SystemVerilog provides several integer data type:

Two-state data types

Data Type Signed (default) Size Value Range States Default Value
bit No 1 bit 0 to 1 2 0
byte Yes 8 bits -128 to 127 2 0
byte unsigned No 8 bits 0 to 255 2 0
shortint Yes 16 bits -32,768 to 32,767 2 0
shortint unsigned No 16 bits 0 to 65,535 2 0
int Yes 32 bits -2,147,483,648 to 2,147,483,647 2 0
int unsigned No 32 bits 0 to 4,294,967,295 2 0
longint Yes 64 bits -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 2 0
longint unsigned No 64 bits 0 to 18,446,744,073,709,551,615 2 0

Four-state data types

Data Type Signed (default) Size Value Range States Default Value
logic No 1 bit 0, 1, X, Z 4 X
reg No 1 bit 0, 1, X, Z 4 X
integer Yes 32 bits -2,147,483,648 to 2,147,483,647, but it can encode the X, and Z states 4 X

Non-integer types

Data Type Signed (default) Size Value Range States Default Value
time No 64 bits 0 to 2^64 − 1 4 0
shortreal Yes 32 bits IEEE-754 float Continuous 0.0
real Yes 64 bits IEEE-754 double Continuous 0.0
realtime Yes 64 bits IEEE-754 double Continuous 0.0

Reference Material

LRM

Websites