La interfaz de vaporización (por ejemplo, el Avalon ST)
input logic data[255:0] in_data; // a 256 bits input stream data
Las señales locales de datos como esta:
logic[255:0] bit_data; // local signal for the input data
Tengo mensajes comerciales con una longitud máxima = 1500 bytes (12000 bits)
Entonces, tengo que modelar un número entero para representar la longitud del mensaje en BIT:
logic[13:0] msg_bit_len; // 14 bits unsigned int with max value = 16383
Si modelo los datos con BYTE basado:
typedef logic[7:0] logic8x32_t [31:0]; // a 32 bytes structure
logic[7:0] byte_data [31:0]; // local signal for the input data
byte_data = logic8x32_t'(in_data);
con BYTE basado, puedo modelar msg_byte_len (max = 1500) con un número menor de bits.
logic[10:0] msg_byte_len; // 11 bits unsigned integer with max value = 2047
En este caso, se guardan 3 bits en comparación con BIT.
Suena bien, pero me temo que si existe algún problema con el diseño de la base de bytes (por ejemplo, los datos entrantes no están en el byte completado).
Por favor avise.