PISO buffer for the MachXO2

by Cal-linux   Last Updated September 13, 2019 15:25 PM

I'm trying to design a "double-buffer" structure similar to that used in UARTs (for receiving). In my case, it is for samples from an ADC. I shift them in, and at some point my logic detects a condition that tells me that I want to "save" the block I currently have; thus, a second buffer of type PISO works (serial-out is fine, since the microprocessor can always read the samples from the FPGA sequentially).

A pure HDL solution (using PFUs/LUTs) does not work, because the buffer is too large (I get the "Design does not fit in device selected" error at the mapping stage. Even with the XO2-7000, my required size is slightly larger)

IPExpress only offers FIFO (including dual-clock) and RAMs (including dual-port). But ideally, I would need to copy in parallel to the second buffer.

Any suggestions, or pointers to any additional IPs that could do the trick? (doesn't have to be free). The IPs I see through Lattice's website don't seem to match .



Related Questions


How to initialise a shift register in VHDL?

Updated September 14, 2017 08:25 AM

Why do we like LFSR and PN-sequence in FPGA?

Updated September 26, 2019 09:25 AM

VHDL Knight Rider

Updated July 19, 2017 08:25 AM

PN sequence verifier

Updated November 21, 2018 17:25 PM