以下代码创建一个称为sys_reset 的新复位信号,其已经与我们的系统时钟 sys_clk 同步化。在异步逻辑采样时会产生亚稳定性问题。我们应该明白无法直接将异步信号馈送到我们的同步逻辑中。然而,我们可以采用与阶梯的前几级进行了‘与’运算的梯形采样降低此问题的发生几率。 data_proc : PROCESS (sys_clk) BEGIN
if rising_edge(sys_clk) then
reset_1 <= reset;
reset_2 <= reset_1 and reset;
sys_reset <= reset_2 and reset_1
and reset;
end if;
if rising_edge(sys_clk) then
if (sys_reset = '1') then
data_in <= '0';
else
data_in <= serial_in;
end if;
end if;
END PROCESS data_proc; |