Forum Discussion
Altera_Forum
Honored Contributor
16 years agoHi Ian,
I'm wrapping up a new SGDMA architecture that implements this (slightly differently where you program the length field to the maximum packet size you want to support). I allow you to set interrupts for these cases which I call 'early termination' that way you'll know when it occurs. The functionality isn't perfect since it has a slight issue where an extra word can potentially go out to memory. So for example if you want to limit your packets to say 1500 bytes, you might see 1501, 1502, or 1503 bytes written to memory if the incoming packet was larger than 1500 bytes. This overshoot has to do with the buffer alignment in memory and the transfer length. If you use aligned locations and you set the packet limit to a multiple of the word size I don't think you'll see this issue. So if you want to take this new SGDMA out for a spin go ahead and send me a PM with your email address and I'll mail you my MM to MM test design. The catch is that I haven't documented it so you may have a little bit of digging around to do. Also it doesn't support descriptor pre-fetching yet as that's another component that needs to be developed and bolted up (this SGDMA is micro-core based). If you have ever used the DMA (non scatter gather) in SOPC Builder you'll find that this one is fairly similar only it buffers descriptors and supports a bunch of additional features. Cheers, JCJB