Este tipo de datos sirven para modelar tanto nodos lógicos
combinacionales como secuenciales, aunque normalmente se
asocia con aquellos que mantienen su valor hasta la siguiente asignación
y aparecen en el lado izquierdo de las expresiones en procedimientos
initial
y always
, o function
.
Un reg
* es el tipo de datos que debe utilizarse para latches,
flip-flops y memorias, sin embargo a menudo se sintetiza también como
conductor ("combinacional") en lugar de almacenamiento.
En los registros de varios bits (vectores), los datos se almacenan por defecto como números sin signo y no se realiza ninguna extensión de signo, por lo que deberá tener en cuenta si se necesita operar en complemento a 2.
Sintaxis
reg [msb:lsb] reg_variable_list;
Ejemplo
reg a; // variable registro de 1-bit
reg [7:0] tom; // un vector de 8-bit; un banco de 8 registros de 1-bit
reg [5:0] b, c; // dos variables de 6-bit