Seeking information on real-world PSSI performance
Hello All,
I'd be glad to hear from someone who has used PSSI in a high-bandwidth application. I'm interested
in hard numbers on sustained throughput with/without flow-control. My intended application is to interface
some member of the STM32 product line (H7,L4,U5) with an FPGA. The intended clock rate is about 15Mhz
at a width of 16bits, and to stream the data to onchip SRAM via DMA. In terms of execution profile, the STM32 application would simply way until the capture a single long burst of data finishes, then post-process the data "offline". The CPU could therefore be sleeping during capture and I don't expect any other significant activity on the bus during capture.
Specific concerns are:
1. The PSSI peripheral contains a FIFO, so I'm confident the peripheral itself can keep up with a 15Mhz clock
with an HCLK of 100Mhz+, but I'm worried about the possibility of a FIFO overrun due to limited bandwidth
on the AHB bus, so that the FIFO fills up because DMA can't drain it quickly enough into SRAM.
2. Using a smaller device package (<144 pins) means (generally) that only 8-bit wide PSSI is available. But, those parts
may cheaper and take up less board space. On the FPGA side, It would be easy to switch to an 8-bits bus, but of course this would double the necessary clock rate. I'm wondering whether this is feasible. Basically, I'm looking for a reassurance that as long as the AHB frequency is a least "M times" the PSSI_CLK frequency, for some known M, DMA to SRAM can keep the FIFO from filling up.
3. Finally, can I avoid flow-control altogether and just rely on the peripheral (and FIFO) to be ready? It would not be difficult for the FPGA to consider a PSSI_RDY signal from the PSSI peripheral, but It would easier still not to use Control-Flow signals.
Your experienced advice and any related war-stories would be much appreciated,
