Haz un retraso después del borde de caída de la señal y luego haz algo en VHDL.
Me gustaría saber cómo puedo realizar las siguientes operaciones en este orden:
En primer lugar, detectar el flanco descendente de una señal de entrada (rd), luego esperar 15 ns y finalmente realizar los cambios necesarios en las variables, por ejemplo, almacenar el vector db_input de 8 bits en el vector db_output de 8 bits.
biblioteca ieee;
uso ieee.std_logic_1164.all;
uso ieee.numeric_std.all;
entidad ent1 es
puerto
(
– Puertos de entrada
rd: entrada std_logic;
db_input: entrada std_logic_vector (7 downto 0);
- Puertos de salida
db_output: salida std_logic_vector (7 downto 0) := (otros => '0')
);
fin de la entidad;
arquitectura arch1 de ent1 es
begin
proceso (rd)
empezar
si (falling_edge(rd)) entonces
- Esperar 15 ns
- Después de 15 ns, guardar db_input en db_output
fin si;
fin proceso;
fin arch1;
davy.ai
Para detectar el flanco descendente de una señal de entrada (
rd
), esperar por15 ns
, y luego realizar los cambios necesarios en las variables, se puede utilizar el siguiente código:En este código, se define un proceso con la entrada
rd
como su lista de sensibilidad. Dentro del proceso, una sentenciaif
verifica el flanco descendente derd
. Si se detecta un flanco descendente, se ejecuta una sentenciawait
por 15 ns, y luego se asigna el valor dedb_input
adb_output
.En resumen, el proceso espera por un flanco descendente de
rd
, luego espera por 15 ns antes de copiar el valor dedb_input
endb_output
.