I have a piece of custom IP that recovers data from an external part. The data comes in at 312 MHz and is deserialized at 312/8. So bytes come out of the IP at 39 MHz. There is a 'data_valid' signal that is asserted while useful data is being output. I need to get this data processed as fast as possible at the MicroBlaze side. I looked at implementing a FIFO that could be read from on the OPB. However, the number of clocks needed to get data out is rather large. It appears that the FSL could be used in this situation.
Is it possible to interupt the processor using an FSL signal such as the FSL_Has_Data? Then the MicroBlaze could 'get' data while there is useful data in the FSL 'FIFO'. I haven't used the FSL before and so I played with it a bit today. I am pretty sure I haven't connected everything properly, but just wondering if this sounds like a reasonable thing to do or if I am missing something blatant. The Import/Create peripheral wizard allows you to select the number of
32-bit words in the FSL. However, the parameters allow you to specify shorter bit lengths. I would like to just pass bytes up to the MicroBlaze. Anyone have any caveats or recommendations?Thanks!