我正在为fpga和dsp编写插件需要与vhdl中的双端口内存共享dpram控件进行交互。
我有外部IO来自SPI总线,一端到fpag与dsp通信,另一方面有一个摄像头到dsp。
因此,我的intrups就像Havinf一样,每当FSM读取和写入带有dsp的接口时,FIFO就会复位。
现在我的问题是
- 我想一次启用一些特定的interupts并禁用其他的。
- 使用逻辑XOR功能进行屏蔽时,来自UART的其他中断将暂停。
- 完成此操作后,相机会收到信号,但无法控制。
醇>
我使用以下算法来处理所有异步输入:
- 在event2reg_array_proc中:将所有输入保存到并行缓冲区“fifo_data_input_array”,每个输入(标志)应放入单独的缓冲区。
- 在reg_array2fifo_proc2中:按顺序读取每个缓冲区并将其保存在fifo“fifo320x32”中。
- 在主FSM中读取fifo的输出并进行适当的处理,每个周期只读出一个值,它应该是一个标志。
醇>
如果你得到一些标志,即使在处理后仍然保持登记状态,原因可能是:
- 在event2reg_array_proc:和reg_array2fifo_proc2:中,如果在fifo中写入了一个标志(在缓冲区中),则应该从缓冲区中清除它。我使用“fifo_cnt”来控制它。您可以使用模拟进行检查。
- Line Camera发送FRAME_VALID信号与LINE_VALID信号相同,因此您可以使用Line Camera获得大量CAM2DSP_FRAME_SYNC_FLAG。
醇>
当相机仍在与DSP通信时,任何人都可以建议任何算法来启用特定的中断。