Cambio de tamaño de bit usando Verilog [duplicado]

0

Quiero escribir un registro de 32 bits a un registro de 22 bits mientras se conserva el número y su signo.

reg [31:0] test_dat0; //test_dat0 <= -4 (binaire)
reg [22:0] test_dat1;
test_dat1 <= test_dat0 ; ??? //what is the value of test_dat1 here

es correcto? gracias

    
pregunta user8254046

1 respuesta

1

Si sabe que el número está entre -2097152 y 2097151, simplemente trunca los 10 MSB ( test_dat1 <= test_dat0[21:0] ).

De lo contrario, no puede incluir un número de 32 bits en un registro de 22 bits mientras mantiene el valor. Sería equivalente a tratar de colocar 2 litros de refresco en una botella de 1 litro sin perder ninguno.

    
respondido por el Tom Carpenter

Lea otras preguntas en las etiquetas