Verilog consta de sólo cuatro valores básicos. Casi todos los tipos de datos de Verilog almacenan todos estos valores:
Estos dos últimos valores x y z tienen un uso limitado para la síntesis.
La representación numérica de valores en las distintas bases de numeración responde a las siguientes reglas que permite los siguientes caracteres:
Sintaxis valor
<size> ' <base format> <number>
Tipo | Prefijo | Caracteres permitidos |
---|---|---|
binario | 'b | 01xXzZ_? |
octal | 'o | 0-7xXzZ_? |
decimal | 'd | 0-9_ |
hexadecimal | 'h | 0-9a-fA-FxXzZ_? |
Ejemplos
334
Número decimal de 32 bits32'b101
Número binario en 32 bits (ceros a la izquierda)3'b11
Número binario de 3 bits (es decir, 011
)20'hf_ffff
Número hexadecimal de 20 bits10'bZ
Número de 10 bits, todos ellos en tercer estado-4'b11
Número binario de 4 bits, complemento a 2 de 0011
= 1101
'h8FF
Número hexadecimal de 32 bitsLos tipos de datos que tienen valores asociados como los indicados anteriormente necesitan declararse y responden a la siguiente sintaxis:
Sintaxis definición dato
<data_type> [<msb>:<lsb>] <list_of_identifiers>;
Después de declarar un vector, puede ser referenciado:
Sintaxis selección de bit o parte de vector
<variable_name>[index]
<variable_name>[msb:lsb]
Ejemplos
wire [7:0] result;
reg [0:3] cuenta;
reg [23:16] rega, regb;
reg [7:0] a, b;
reg [3:0] ls;
reg c; c = a[7] & b[7]; // selecciones de bit
ls = a[7:4] + b[3:0]; // selección de parte de vector