Al programar en VHDL, cómo escribir un programa que mantenga el estado anterior. Un ejemplo del programa para sumar puntos extra a expertos es el siguiente:
Simplemente configure g en inout directamente al definir la entidad, y luego, en el tercer caso, directamente g<=g;
library?IEEE;
use ?IEEE.STD_LOGIC_1164.ALL;
use?ieee.std_logic_arith.all;
use?IEEE.STD_LOGIC_UNSIGNED.ALL;
entidad?aaa ?is
¿Puerto?(clk?:?in?std_logic;
?x?:in?std_logic_vector(3?downto?0);
? g?: inout?std_logic
);
end?aaa;
arquitectura?Comportamiento?de?aaa?is
comenzar
proceso(clk)
variable?a?:?entero?rango?0?a?20:=10;
variable?b?:?entero?rango ?0?a?20:=5;
variable?c?:?entero?rango?0?a?20:=0;
comenzar
if(clk'?event?and?clk='1')?entonces
c:=conv_integer(x);
if(x>a)?
g<='0';
elsif?(x
g<='1';
else
g<=g;
final?if;
final?if;
final?proceso;
end?Behavioral;
Esta es una captura de pantalla de mi simulación para cumplir con sus requisitos