TDM over Aurora

Guys

I'm trying to Time Division Multiplex virtual channels onto a rocketio system that is allready using Aurora.

Everything is easy untill I come to add flow control, the receiving end saying it can't accept any more data (preferably on a clock by clock basis). This is easily done with the Aurora as standard but with TDM some of the virtual channels do have valid data in them so I can't stop the Aurora, I need the transmitting end to stop putting data into its time slice.

The problem is the time delay between the receiving end saying stop and the transmitting end stopping. The only solution I have at the moment uses an awfull lot of FIFOs

Any thoughts appreciated.

Katherine

Reply to
katherine
Loading thread data ...

I had a similar problem once.

If you must have flow control, and there's latency in the feedback, then you need FIFOs. I know of no way of avoiding them.

The trick is to have one multichannel FIFO controller that controls the addresses to a single large RAM, with all the virtual FIFOs for the TDM channels using (different parts of) the same RAM, rather than having a bazillion independent FIFOs. Only one virtual FIFO needs to be writen at any time (this being the nature of TDM), which means you can TDM at least the write side logic of the FIFO controller. All state variables in the FIFO controller will be held in small rams (CLB ram is good for this, if you don't have more than 32 channels) rather than flip flops.

Regards, Allan P.S. If anyone has missed me recently, it's because my news server has been down. :(

Reply to
allanherriman

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.