2012-02-17 7 views

Respuesta

6

Si se declara la reg como signed, $display mostrará el signo menos:

module tb; 

reg signed [7:0] acc; 

initial begin 
    acc = 8'hf0; 
    $display("acc : %d", acc); 
end 

endmodule 

/* 

Prints out: 

acc :   -16 

*/ 
4

encontré con este problema también y se veía a través de la norma SystemVerilog 2012, pero no vi ninguna mención de signo en la sección sobre especificadores de formato. Aquí está una alternativa de solución (básicamente equivalente) que también funciona:

$display("acc : %d", $signed(acc)) 

La función "$ firmado" convierte el valor de entrada en un tipo firmado con el mismo ancho de bits.

Cuestiones relacionadas