Aunque el indicador de tipo puede ser hexadecimal o decimal, el indicador de tamaño siempre se mide en bits.
8'h81
Dado que 81
es un número de 8 bits en binario ( 1000 0001
), requiere 8 bits. Por esta razón, el tamaño es 8, aunque el número se expresa en hexadecimal.
Además, el tamaño puede ser el tamaño del bus que está impulsando la señal (o parte de ella), aunque el valor en sí puede requerir menos bits.
Esto se muestra aquí:
16'd5
El decimal 5
solo necesita 3 bits ( 101
), sin embargo, este valor se puede desglosar para un bus de 16 bits:
wire [15:0] test;
assign test = 16'd5;
Mientras que verilog sí rellena tamaños más pequeños, a veces si estás concatenando, debes especificar cada longitud:
wire [31:0] test;
assign test = {16'd5,16'd5};
En el último caso:
32'h8f_32_ab_f7
Se requieren 32 bits para almacenar el número hexadecimal, que es 1000 1111 0011 0010 1010 1011 1111 0111
en binario.
El hexadecimal es solo una forma breve de escribir el número, pero el tamaño sigue siendo de 32 bits.