VHDL中使用fpga的中断处理

问题描述 投票:1回答:1

我正在编写fpga和dsp的交互,它们需要与vhdl中的双端口内存共享dpram控件进行交互。我的外部IO一方面从SPI总线到达fpag,以便与dsp进行通信,另一方面有一个摄像机与dsp进行通信。因此,我的入侵就像Havinf一样,每次FSM用dsp读写Interrpts之后,FIFO都会重置。

现在我的问题是

  1. 我想一次启用某些特定的中断,而禁用其他中断。
  2. 使用逻辑XOR功能进行屏蔽时,来自UART的其他中断会超时。
  3. 完成后,相机会收到信号,但无法控制。

我使用以下算法处理所有异步输入:

  1. 在event2reg_array_proc:将所有输入保存到并行缓冲区“ fifo_data_input_array”中,每个输入(标志)应放在单独的缓冲区中。
  2. 在reg_array2fifo_proc2中:依次读取每个缓冲区,并将它们保存在fifo“ fifo320x32”中。
  3. 在主FSM中读取fifo的输出并进行适当的处​​理,每个周期仅读取一个值,它应该是一个标志。

如果在处理后仍获得一些保留在寄存器中的标志,则原因可能是:

  1. 在event2reg_array_proc:和reg_array2fifo_proc2:中,如果已在fifo中写入一个标志(在缓冲区中),则应将其从缓冲区中清除。我使用“ fifo_cnt”进行控制。您可以使用模拟进行检查。
  2. Line Camera发送的FRAME_VALID信号与LINE_VALID信号相同,因此使用Line Camera可以获得很多CAM2DSP_FRAME_SYNC_FLAG。

所以在摄像机仍与DSP通讯时,任何人都可以建议任何算法来启用特定的中断。

vhdl interrupt fpga interrupt-handling
1个回答
1
投票

您的问题措词不够清楚,无法提供正确的答案。但是有一点很明确:对于中断屏蔽,XOR不是一个好的选择!根据中断处理程序的逻辑,AND或OR会是更好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.