Tipos de datos

Tipos de datos Verilog

Conjunto de valores

Verilog consta de sólo cuatro valores básicos. Casi todos los tipos de datos de Verilog almacenan todos estos valores:

  • 0 (cero lógico, o condición falsa)
  • 1 (uno lógico, o condición verdadera)
  • x (valor lógico desconocido)
  • z (estado de alta impedancia)

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 bits
  • 32'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 bits
  • 10'bZ      Número de 10 bits, todos ellos en tercer estado
  • -4'b11    Número binario de 4 bits, complemento a 2 de 00111101
  • 'h8FF      Número hexadecimal de 32 bits

Los 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:

  • cada bit
  • partes del vector
  • vector completo`

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

Sintaxis