Asignar resultado de comparación a std_logic

1

Estoy tratando de diseñar un restador de ocho bits. Los operandos se declaran como \ $ \ mathtt {std \ _logic \ _vector} \ $ y el préstamo es \ $ \ mathtt {std \ _logic} \ $ type. ¿Hay alguna forma de asignar directamente la comparación de los operandos al préstamo, como tal?

borrowOut <= unsigned(r1) < unsigned(r2);

Cuando analizo el archivo, se produce el siguiente error:

eightBitSubtractor.vhd:24:29: no function declarations for operator "<"
    
pregunta Sean Haugh

1 respuesta

1

El tipo de retorno de una operación de comparación es boolean .

Para std_logic de salida, intente esto:

borrowOut <= '1' when unsigned(r1) < unsigned(r2) else '0';

Si planea usar esto con frecuencia, puede sobrecargar el operador <

function "<"(L: STD_LOGIC_VECTOR; R: STD_LOGIC_VECTOR) return STD_LOGIC is
 variable result : std_logic;
begin
    result <= '1' when unsigned(r1) < unsigned(r2) else '0';
    return result; 
end;
    
respondido por el nidhin

Lea otras preguntas en las etiquetas