¿Cómo definir números con signo en el lenguaje Verilog HDL? ¿No son todos los números definidos por parámetros números sin signo?
Si tuvieras una representación de 8 bits de -2, podrías representarla así
8'h10000010 o 8'h11111110
Ambas representaciones hay no hay problema, pero una cosa a tener en cuenta es que cuando se complete la operación, asegúrese de que la forma del resultado sea la misma y correcta. Si es la primera forma de la expresión -2 + (-2), entonces el resultado sigue siendo de 8 bits, entonces es incorrecto y se convierte en +4, por lo que es necesario compensar el bit más alto. Pero la suma y resta utilizando números en complemento a dos no salen mal y no requieren compensación, por lo que se recomienda utilizar la segunda representación.
Ahora, supongamos que usas la segunda notación para representar números con signo. Entonces, si los parámetros se definen así
Punto adicional: cuando el código en complemento a dos representa la operación de multiplicación, "*" no se puede usar directamente. En este momento, el código en complemento a dos todavía se usa para representar. código original después de la multiplicación, y luego el resultado se convierte al código en complemento a dos. O diseñe directamente un multiplicador de complemento y utilícelo para completar operaciones de multiplicación de complemento.
Parámetro f=8'h11111110
En este momento f es -2, por lo que el parámetro define si el número está con signo o sin signo, dependiendo de cómo lo representes.