Programación de claves VHDL
Archivo inferior 1 (contador 1-9)
Biblioteca ieee
Utilice IEEE.STD_logic_1164.all;
Utilice IEEE.STD_logic_unsigned.all;
La entidad cnt es
port(clk: en STD _ logic; p>
clr: in std_logic;
q: out STD _ logic _ vector(3 hasta 0));
Entidad final cnt
El comportamiento estructural de los nanotubos de carbono es
Recuento de señales: STD _ logic _ vector (3 hasta 0
Inicio
Proceso(reloj)
Inicio
Proceso(reloj)
p>
Iniciar
if(clr lt;='0') y luego contar lt="0000";
elsif(clk' evento y clk='1 ') entonces
si (cuenta lt; 9) entonces
cuenta lt= cuenta 1
si no cuenta lt="0001 ";
>Finalizar si;
Finalizar si;
Finalizar proceso;
q lt=count;
Finalizar comportamiento;
Archivo inferior 2 (antirrebote de clave)
Biblioteca ieee
Utilice IEEE.STD_logic_1164.all;
Utilice IEEE .STD_logic_unsigned .all;
La entidad debounce_low es
puerto(clk: en STD_logic;
key_in: en std_logic;
key_out: fuera de STD_logic);
fin debounce_low;
arquitectura debounce_low Uno es
Señal dout1, dout2, dout3, buff: STD_logic;
Inicio
Proceso (reloj)
Iniciar
IF (clk'event y clk='1') luego
dout 1 lt;= key _ in
dout2 lt= dout 1;
p>
dout3 lt= dout2
buff lt=not(dout1 o dout2 o dout3) y buff
Finalizar si;
Finalizar proceso;
key _ out lt=dout1 o dout2 o dout3
Finalizar uno;
Archivo de nivel superior
Biblioteca ieee
Usar IEEE.STD_logic_1164.all;
Usar IEEE.STD_logic_unsigned.all;
Entidad cnt_9 es
Puerto ( clkk: en std_logic;
clave: en std_logic;
cq: vector lógico estándar de salida (3 cae a 0)
);
Entidad terminal CNT_9;
Las características estructurales del nanotubo de carbono 9 son
Componente Qudu
Sí
puerto(clk: en STD_logic;
key_in: en std_logic;
key_out: fuera de STD_logic);
Fin del componente;
El componente cnt es
port(clk: in STD_logic;
clr: in std_logic;
q: out STD_logic_vector(3 hasta 0));
Fin del componente;
Señal a: STD_logic;
Inicio
u1: asignación de puerto qudou (clk = gtclkk, key_in = gtkey, key_out = gta);
u2: mapeo de puerto cnt (clk = gtclkk, clr = gta, q = gtCQ);
Finalizar comportamiento; p>