VHDL如何在设定的时间段内检查一致性

VHDL如何在设定的时间段内检查一致性,vhdl,Vhdl,我正在尝试使用VHDL对预设时间段内进入FPGA的信号进行符合性检查,我担心我可能正在尝试发明一些已经做了很多次的非常基本的东西 所需的模块功能性: 记住,其中一个输入上有一个信号,在预设时间段后,将这些记住的信号视为同步信号,并将其发送到电路中 示例:在2个输入端口(A、B)上侦听,如果在输入端上检测到至少一个10 ns长的信号,则将其存储,并在500 ns周期内进一步发送存储的信号并重置 到目前为止,我得出了以下结论: 存储输入: memory_A <= A when ( memory

我正在尝试使用VHDL对预设时间段内进入FPGA的信号进行符合性检查,我担心我可能正在尝试发明一些已经做了很多次的非常基本的东西

所需的模块功能性:

记住,其中一个输入上有一个信号,在预设时间段后,将这些记住的信号视为同步信号,并将其发送到电路中

示例:在2个输入端口(A、B)上侦听,如果在输入端上检测到至少一个10 ns长的信号,则将其存储,并在500 ns周期内进一步发送存储的信号并重置

到目前为止,我得出了以下结论:

存储输入:

memory_A <= A when ( memory_A = '0' );
memory_B <= B when ( memory_B = '0' );

内存A看起来内存A和内存B上有多个驱动程序。
您应该只在流程中分配它们

另外,我不确定在非时钟信号上使用信号事件是否是良好的设计实践。 可能取决于您的合成工具。我将使用时钟进程,并通过移位寄存器获得上升沿。 或者它们不应该是时钟寄存器输出

此外,我丢失了重置和时钟信号;)

process(pulse)
  begin
     if(pulse'event and pulse='1') then
                                          -- generate output signals
        modified_output_A <= memory_A
        modified_output_B <= memory_B
                                          -- reset the storage
        memory_A <= '0'
        memory_B <= '0'
     end if;

  end process;