Forum Discussion
16 Replies
- Altera_Forum
Honored Contributor
Qsys will insert data width adapters when necessary to adapt wide masters to narrow slaves or narrow masters to wide slaves. Depending on the topology of your design you might end up with a bunch of adapters in your design like Steffen said so to control that what you can do is place the 128-bit slaves behind a 128-bit memory mapped bridge and connect the 256-bit master to the bridge. That way the only adapter that is needed is between the 256-bit master and the 128-bit bridge slave port. If the master was only connected to these 128-bit slaves I think Qsys is smart enough to adapt on the master side thereby giving you the same effect (only one adapter).
The idea with Avalon is as long as you design masters and slaves within the spec, then you don't have to worry about the glue that connects them. Qsys will adapt data widths, burst sizes, burst capabilities, signal polarity, pipelined read capabiliities, etc... for you. - Altera_Forum
Honored Contributor
--- Quote Start --- Qsys will insert data width adapters when necessary to adapt wide masters to narrow slaves or narrow masters to wide slaves. Depending on the topology of your design you might end up with a bunch of adapters in your design like Steffen said so to control that what you can do is place the 128-bit slaves behind a 128-bit memory mapped bridge and connect the 256-bit master to the bridge. That way the only adapter that is needed is between the 256-bit master and the 128-bit bridge slave port. If the master was only connected to these 128-bit slaves I think Qsys is smart enough to adapt on the master side thereby giving you the same effect (only one adapter). The idea with Avalon is as long as you design masters and slaves within the spec, then you don't have to worry about the glue that connects them. Qsys will adapt data widths, burst sizes, burst capabilities, signal polarity, pipelined read capabiliities, etc... for you. --- Quote End --- Hi BadOmen, Did you mean Qsys will add those width adapters automatically? User doesn't need to involve it? - Altera_Forum
Honored Contributor
Sorry was out on vacation. Yes Qsys will perform many types of adaptation between masters and slaves. When you design a master or slave you design it using the Avalon/AXI spec and not worrying about other IP connecting to it.
- Altera_Forum
Honored Contributor
--- Quote Start --- Sorry was out on vacation. Yes Qsys will perform many types of adaptation between masters and slaves. When you design a master or slave you design it using the Avalon/AXI spec and not worrying about other IP connecting to it. --- Quote End --- Hi BadOmen, It's ok! I'm designing my logic to put/take data to/from my Qsys system, which include PCIe interface. So this is why i posted this question. - Altera_Forum
Honored Contributor
Can someone help me this: http://www.alteraforum.com/forum/showthread.php?t=47763&p=196511
- Altera_Forum
Honored Contributor
--- Quote Start --- I didn't read the entire thread but sounds like you want to expose the write master streaming port to logic outside of Qsys. You can do that by clicking on the write master data streaming port twice in the export column and it should allow you to assign a name to this port which will show up at the top level of the Qsys system. The issue mentioned at the top sounds a either a mismatch in data widths or a mismatch with symbol widths. The mSGDMA deals with symbols of 8-bit since the symbols have to land in byte lanes in memory after the symbols get reversed. So if you had a 32-bit write master and the streaming data comes in as D[31:0] = 32'hDEADBEEF you will see the symbols get reversed and written as 32'hEFBEADDE out to memory. Avalon-MM uses little endian byte ordering while Avalon-ST uses network order (a.k.a. big endian) so that's why the symbols get shuffled around internally. If you are connecting a FIFO with a different symbol size I would just create a little gasket that has an Avalon-ST source and sync pair with the source using 8-bit symbols and the sink using whatever your FIFO uses as a symbol size to adapt between the symbol sizes. This gasket is just wires so you are simply tricking Qsys into letting you integrate these blocks together. I have been keeping the mSGDMA up to date on the wiki but I recommend using the cores that appear in Qsys starting in 14.0. --- Quote End --- Hi BadOmen, I don't understand this - I want to connect my streaming PCIe port to a msgdma, and I can't, because the PCIe has 64 bits width, the msgdma has 64 bits width but only shows 8, because it has to do byte reordering (if I understand you correctly). Why? Can't it just assume that if you wanted byte reordering you'd do that, and it can just connect two 64 bit buses together? Equally, I don't really understand your "gasket" - doesn't one clock have to run 8 times faster if it's swapping from 64 bits in to 8 bits out? Thanks, Simon