es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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;

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para detectar el flanco descendente de una señal de entrada (rd), esperar por 15 ns, y luego realizar los cambios necesarios en las variables, se puede utilizar el siguiente código:

    process(rd)
    begin
        if (falling_edge(rd)) then
            wait for 15 ns;
            db_output <= db_input; -- Almacenar db_input en db_output
        end if;
    end process;
    

    En este código, se define un proceso con la entrada rd como su lista de sensibilidad. Dentro del proceso, una sentencia if verifica el flanco descendente de rd. Si se detecta un flanco descendente, se ejecuta una sentencia wait por 15 ns, y luego se asigna el valor de db_input a db_output.

    En resumen, el proceso espera por un flanco descendente de rd, luego espera por 15 ns antes de copiar el valor de db_input en db_output.

Comments are closed.