Forum Discussion
Altera_Forum
Honored Contributor
10 years agoHi Maik,
Given that you control both ends of the link, why not try using a component that already has alignment working? I believe the Altera SerialLite II component is designed for this. Xilinx used to have one called Aurora. I am sure there is an open-source equivalent. Altera SerialLite II: https://www.altera.com/solutions/technology/transceiver/protocols/pro-seriallite.html Xilinx Aurora: http://www.xilinx.com/products/design_resources/conn_central/grouping/aurora.htm http://www.xilinx.com/products/intellectual-property/aurora8b10b.html (http://www.xilinx.com/products/design_resources/conn_central/grouping/aurora.htm) The 'easiest' way to send data over a serial link is to encode the data using 8/10B. This has the dual feature of ensuring the data can be transported across AC coupled links (ensuring the signal toggles enough to have an average DC of zero), and the data stream has 'patterns' that the receiving end uses to align and recover the bytes in the serial data stream. Keep this in mind: you start with bytes, the transmitter serializes them, the receiver deserializes them, and you get some bytes at the output. Without some way to tell the receiver when to start converting bits to bytes, the data will come out misaligned. Stop trying to debug using SignalTap. Create a Modelsim simulation. You can probably start with the transceiver examples I posted here: https://www.ovro.caltech.edu/~dwh/correlator/cobra_docs.html Cheers, Dave