Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
17268 Discussions

Issues with Avalon burst adapter in SOPC

Altera_Forum
Honored Contributor II
1,680 Views

I have an Avalon master with a 32-bit data bus connected to an Avalon slave with a 64-bit data bus. SOPC builder allows me to do this, and automatically inserts a sopc_system_burst module between these two interfaces. 

 

When the master issues a burst write command, the auto generated SOPC module breaks up the burst into individual 1-word accesses, severely reducing the throughput. Is this the expected behavior? Or should the module correctly convert my 32-bit burst into an equivalent 64-bit burst? 

 

I did notice that burst reads are converted without a problem. Anyone have any ideas why the burst writes are not working across different data-widths?
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
945 Views

This behavior is expected, there is no packing logic built into the fabric. The reason why you see it for reads is that it is just as easy to perform a wide read than two narrow ones, but this is not the case for writes. 

 

If you need high bandwidth I would either increase the master width or use a half-rate bridge (which does the packing that you are looking for).
0 Kudos
Altera_Forum
Honored Contributor II
945 Views

Thanks for your response. 

The half-rate bridge isn't quite what I want - it converts single accesses into half-wide bursts, and cannot convert burst accesses into wider burst accesses. 

 

I'd be curious to know if the Qsys Merlin Burst Adapter can deal with this situation (the documentation suggests that it can).
0 Kudos
Altera_Forum
Honored Contributor II
945 Views

Oops I meant 2x rate bridge (narrow to wide). 

 

It's been a while but last time I checked Qsys didn't support transaction packing. That may have changed by now but I haven't seen it yet.
0 Kudos
Altera_Forum
Honored Contributor II
945 Views

What is the 2x rate bridge? Is that a standard Altera SOPC component? I don't see any reference to it in the documentation or in the Altera library of memory mapped components.

0 Kudos
Altera_Forum
Honored Contributor II
945 Views

There isn't one shipped in the ACDS but I think there was one floating around somewhere (hopefully not in the old Nios II forum that crashed....) Building a 2x bridge is pretty easy to do manually though. You just store multiple beats inside the bridge and glue them together into a single wide access. The tricky part is to implement a timeout mechanism in case the additional beats never arrive (don't want to stall forever).

0 Kudos
Altera_Forum
Honored Contributor II
945 Views

I put together a simple test system in Qsys and I can confirm that the burst adapter it uses *does* perform the proper narrow-to-wide burst conversion. It does not break up the bursts into single accesses like it does in SOPC.

0 Kudos
Altera_Forum
Honored Contributor II
945 Views

Thanks for the update, I was unaware that it was added.

0 Kudos
Reply