VHDL中fpga的中断处理

VHDL中fpga的中断处理,vhdl,interrupt,fpga,interrupt-handling,Vhdl,Interrupt,Fpga,Interrupt Handling,我正在为fpga和dsp编写interput,需要与vhdl中的双端口内存共享dpram控件交互。 我有一个从SPI总线到fpag的外部IO与dsp通信,另一方面有一个摄像头到dsp。 因此,我的INTRUP就像每次FSM使用dsp读取和写入INTRRPTS后,FIFO被重置一样 现在我的问题是 我想一次启用一些特定的中断,然后禁用其他中断 当使用逻辑异或函数进行屏蔽时,来自UART的其他中断将超时 完成此操作后,摄像头会收到信号,但无法控制 我使用以下算法处理所有异步输入: 在event2re

我正在为fpga和dsp编写interput,需要与vhdl中的双端口内存共享dpram控件交互。 我有一个从SPI总线到fpag的外部IO与dsp通信,另一方面有一个摄像头到dsp。 因此,我的INTRUP就像每次FSM使用dsp读取和写入INTRRPTS后,FIFO被重置一样

现在我的问题是

  • 我想一次启用一些特定的中断,然后禁用其他中断
  • 当使用逻辑异或函数进行屏蔽时,来自UART的其他中断将超时
  • 完成此操作后,摄像头会收到信号,但无法控制
  • 我使用以下算法处理所有异步输入:

  • 在event2reg_array_proc:将所有输入保存到并行缓冲区“fifo_data_input_array”中,每个输入(标志)都应放入单独的缓冲区
  • 在reg_array2fifo_proc2中:串行读取每个缓冲区并将其保存在fifo“fifo320x32”中
  • 在主FSM从fifo读取输出并做适当的处理,每个周期只读取一个值,它应该是一个标志
  • 如果您得到一些即使在处理后仍保留在寄存器中的标志,原因可能是:

  • 在event2reg_array_proc:和reg_array2fifo_proc2:中,如果fifo中写入了一个标志(在缓冲区中),则应从缓冲区中清除该标志。我用“先进先出”来控制这一点。您可以使用模拟来检查
  • Line Camera发送的帧\有效信号与Line \有效信号相同,因此可以使用Line Camera获得许多CAM2DSP\ U帧\同步\标志

  • 因此,当摄像机仍在与DSP通信时,任何人都可以提出任何算法来启用特定的中断。

    您的问题措辞不清楚,无法给出正确的答案。 但有一点很清楚:XOR并不是中断掩码的好选择!
    根据中断处理程序的逻辑,AND或or是更好的选择。

    您的问题措辞不够清晰,无法给出正确的答案。 但有一点很清楚:XOR并不是中断掩码的好选择! 根据中断处理程序的逻辑,AND或or是更好的选择