VHDL: el convertidor de número binario firmado más rápido-más barato-más rápido

1

Sabemos que para convertir sin signo a firmado (precisamente, quiero convertir un binario puro en número de CA2) debemos negar la suma del número sin firmar, luego, 1. En VHDL puedo implementar un inversor y un sumador que administra El acarreo. Tengo dos números de 32 bits. ¿Hay otra manera de implementar la suma + 1 usando algo más barato? ¿Existe una solución para administrar el transporte utilizando solo puertas lógicas?

    
pregunta Anth

2 respuestas

4

Realmente no vale la pena preocuparse demasiado por este detalle. Agregar 1 a un número es un lenguaje tan común en HDL que las herramientas de síntesis tienen métodos altamente evolucionados para lidiar con eso. Además, la mayoría de los FPGA modernos tienen una lógica de transporte rápida y dedicada que no consume celdas lógicas, y que las herramientas de síntesis saben cómo aprovechar.

    
respondido por el Dave Tweed
2

Si no está firmado, es positivo por definición, por lo tanto, el equivalente de complemento a 2 también es positivo, por lo que la representación del patrón de bits es la misma.

La única dificultad surge si su MSB ya está configurada: entonces es un signo sin signo demasiado grande para representarlo como un número firmado del mismo tamaño. Por lo tanto, la respuesta completamente general es extenderla en un número de complemento de 2 al menos 1 bit más amplio:

my_signed <= '0' & my_unsigned;

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas