在信号下降沿后做一个延迟,然后在 VHDL 中做一些事情
Make a delay after falling edge of signal and then do something in VHDL
我想知道如何按顺序执行以下操作:
首先检测输入信号的下降沿(rd
),然后等待15 ns
最后 对变量进行必要的更改,例如将 db_input
8 位向量存储到 db_output
8 位向量中。
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity ent1 is
port
(
-- Input ports
rd : in std_logic;
db_input : in std_logic_vector (7 downto 0);
-- Output ports
db_output : out std_logic_vector (7 downto 0) := (others => '0')
);
end ent1;
architecture arch1 of ent1 is
begin
process(rd)
begin
if (falling_edge(rd)) then
-- Wait for 15 ns
-- After the 15 ns save db_input into db_output
end if;
end process;
end arch1;
以下内容满足您的要求:
process
begin
wait until falling_edge(rd);
wait for 15 ns;
db_output <= db_input;
end process;
我想知道如何按顺序执行以下操作:
首先检测输入信号的下降沿(rd
),然后等待15 ns
最后 对变量进行必要的更改,例如将 db_input
8 位向量存储到 db_output
8 位向量中。
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity ent1 is
port
(
-- Input ports
rd : in std_logic;
db_input : in std_logic_vector (7 downto 0);
-- Output ports
db_output : out std_logic_vector (7 downto 0) := (others => '0')
);
end ent1;
architecture arch1 of ent1 is
begin
process(rd)
begin
if (falling_edge(rd)) then
-- Wait for 15 ns
-- After the 15 ns save db_input into db_output
end if;
end process;
end arch1;
以下内容满足您的要求:
process
begin
wait until falling_edge(rd);
wait for 15 ns;
db_output <= db_input;
end process;