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