Red de conocimiento informático - Aprendizaje de código fuente - Curso de diseño de reloj electrónico digital.

Curso de diseño de reloj electrónico digital.

biblioteca ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

el código de entidad es

p>

port( clk: en std_logic;--La señal del reloj cuando el circuito está funcionando

clk1: en std_logic;--La señal del reloj requerida para la generación de alarma

k: in std_logic;--El nivel alto indica entrada 1

led: out std_logic;--Se ilumina cuando la entrada es correcta

led1: out std_logic; --Se ilumina cuando la entrada es incorrecta

restablecer: en std_logic; restablecer cuando se presiona

desea: en std_logic - si se debe cambiar la contraseña

alarma: out std_logic; -- sonido de alarma de salida

show: out std_logic_vector(3 downto 0));--función de aviso

end;

arquitectura un código es

temperatura de señal: std_logic_vector(3 hasta 0);--Ingrese un dígito más 1

código de señal: std_logic_vector(7 hasta 0);--Guardar contraseña

obtener código de señal: std_logic_vector(7 hasta 0);--Guardar la contraseña modificada

contador de señal: std_logic_vector(3 hasta 0);--Contar

señal permitir: std_logic;--Si se permite cambiar la contraseña

timbre de señal: std_logic;--si se activa la alarma

comenzar

proceso (clk)

comenzar

si ring='1' entonces

alarmlt;=clk1;--La alarma está activada

else

alarmlt;='0';- -La alarma finaliza

end if;

if reset='1' then--Después de presionar reset, el la contraseña se devuelve a la contraseña inicial

getcodelt;= "00000000";--Contraseña inicial

counterlt;="0000";--Recuento interno

codelt;="11001000";--Contraseña

ledlt;='0';

led1lt;='0';

allowlt;='0 ';

elsif clk'event and clk=' 1' luego--Ingrese el pulso clk, luego reciba la contraseña de 1 dígito

getcodelt;=getcode(6 downto 0)amp; k;--Incorpore esta contraseña de 1 dígito en el último dígito en getcode

si contador="1000" entonces--cuando la entrada sea un número de 8 dígitos

Compara

si code=getcode entonces

ledlt;='1';--la luz correcta está encendida

led1lt;='0';

ringlt;='0';

allowlt;='1';--Permitir modificación de contraseña

elsif enable='1' and want='1' entonces-- Si se permite la entrada y desea ingresar

codelt;=getcode;--Ingrese la nueva contraseña

ledlt;='0';

led1lt;='0' ;

else

allowlt;='0';

ledlt;='0';

led1lt;='1' ;--La luz de error está encendida

ringlt;='1';--La alarma está sonando

end if;

counterlt;="0000";-- Recuento

else

counterlt;=counter 1; --Acumular

templt;=temp 1;- -Especialmente configurado para evitar la fuga de contraseñas

p>

end if

end if

show lt = temp; p> finalizar proceso;

finalizar