Desbordamiento y síntesis de adición sin firmar

3

Supongamos que tenemos el siguiente código donde a , b y c tienen un ancho de 3 bits que representa números sin signo:

a <= (b + c);

El diseñador espera un desbordamiento en este caso. Por ejemplo, si b y c son iguales a 3'd7 , entonces el resultado esperado es 3'd6 ). El código en sí es bastante similar al de un contador binario, excepto que los anchos de los operandos son mayores que 1 bit.

La pregunta es si es seguro asumir que las herramientas de síntesis crearán un hardware que se encargue del caso anterior según lo previsto por el diseñador o si se debe tener un cuidado especial.

    
pregunta

1 respuesta

0

La síntesis le dará un resultado truncado pero por lo demás exacto, asumiendo que todos los registros / cables mencionados están sin firmar (es decir, no se declaran con reg signed ). El herramental del mapa probablemente advertirá sobre una línea 'carry' que no tiene carga, si la puede encontrar en los registros. Es posible que pueda suprimir la advertencia con una selección de bits explícita en el resultado o una máscara:

a <= (b + c) & 0x7;
    
respondido por el shuckc

Lea otras preguntas en las etiquetas