FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6480 Discussions

How to chose our PCIe implemenation solutions, Avalon-MM or Avalon-ST?

MinzhiWang
Novice
686 Views

Hello Guys, We are plan to use FPGA devices to realize pice application. I found that ALTERA provided two solutions: Avalon-MM and Avalon-ST. What's the difference between them? Which one should be suitable for us? Our object device is Cyclone 10 GX, and our data rate is not too high, around 1G~2Gbps.

0 Kudos
12 Replies
Wincent_Altera
Employee
570 Views

Hi ,


I am Wincent, Application Engineer from Altera,

We sincerely apologize for the inconvenience caused by the delay in addressing your Forum queries.

Due to an unexpected back-end issue in our system, your Forum case, did not reach us as intended. 


Answering your question,

Here are the key differences between them:

  • Purpose:
    • Avalon-ST: This interface is designed for high-speed data streaming applications. It is typically used for connections that require a continuous flow of data, such as audio or video processing, where data is sent in a stream with a known data rate.
    • Avalon-MM: This interface is used for memory-mapped transactions, where data is read from or written to specific addresses. It is suitable for control and status operations, where a master component communicates with slave components using read and write transactions.
  • Data Transfer:
    • Avalon-ST: Data is transferred in a streaming fashion, often without explicit addressing. The interface usually includes signals for valid data, ready to accept data, and data itself, along with optional channels for sideband information like error or channel identifiers.
    • Avalon-MM: Data transfer is address-based, meaning each data transfer is associated with a specific address. The interface includes signals for read and write operations, address lines, data lines, and handshaking signals like wait request and write acknowledge.
  • Complexity:
    • Avalon-ST: The streaming interface is relatively simple and does not require complex control logic for addressing. It is optimized for low-latency and high-throughput scenarios.
    • Avalon-MM: The memory-mapped interface is more complex due to the need for address decoding and the handling of read/write operations. It is optimized for flexibility and ease of integration with memory-mapped devices.
  • Use Cases:
    • Avalon-ST: Commonly used in digital signal processing (DSP) applications, video processing pipelines, and any scenario where data needs to be processed as it arrives without the need for random access.
    • Avalon-MM: Typically used for interfacing with peripherals, memory devices, and processors where random access to different registers or memory locations is required.
  • PCIe (Peripheral Component Interconnect Express) Integration:
    • Avalon-ST: When integrated with PCIe, Avalon-ST interfaces can be used for streaming data directly to or from the PCIe bus, which is useful for applications like video capture or playback cards.
    • Avalon-MM: When used with PCIe, Avalon-MM interfaces can be used to map the FPGA's internal registers or memory to the PCIe address space, allowing a host CPU to access these resources as if they were part of its own memory space.


In summary, Avalon-ST is optimized for streaming data without the need for addressing, while Avalon-MM is designed for random access read/write operations with specific addresses. The choice between the two depends on the specific requirements of the FPGA application and the nature of the data being transferred.


Hope that clarified and able to help you to proceed further.


Regards,

Wincent_Intel


0 Kudos
Wincent_Altera
Employee
528 Views

Hi,

 

We do apologize for the previous system down issue causing your question been delay in addressing.

Hope my previous response is not too late in order to solve your queries.

I wish to follow up with you about this case. Do you have any further questions on this matter ?

​​​​​​​Else I would like to have your permission to close this forum ticket.

 

Regards,

Wincent_Intel



0 Kudos
MinzhiWang
Novice
522 Views

Hello Wincent,

 

We are in a long holiday in China now, so I can only quick check the website. I want to verify pcie ref-design example in c10gx devkit board. I have download it from Intel website(here:https://www.intel.com/content/www/us/en/design-example/714943/intel-cyclone-10-gx-fpga-pcie-2-0-x4-avalon-streaming-design-example.html ), however, I can't open it on my local computer. It seems  .par file, instead of .qar file. Can you teach me how to use it?

 

BTW, I know  that Altera introduced to user their pcie avst ref-design. If remember correctly, it was named as high performance ref-design. And there is an456 paper. But above c10gx avst ref-design following with an855 document. What's the different between them? And also, high performance ref-design seems not support to c10.

0 Kudos
FvM
Honored Contributor I
463 Views

Hi,
AN855 is old 8 targetting to Quartus 18), but AN456 is much older. This should answer your question which to choose.

.par design archives are not regularly associated with Quartus, but cam be easily opened in Quartus. Start Quartus Prime Pro, go to open project, select respective .par file.

Recent Quartus PCIe IP has major changes to Quartus 18. I remember that it was suggested in some cases to rebuild it from the scratch instead of just upgrading it. But it seems that the design example still compiles in recent versions.

0 Kudos
MinzhiWang
Novice
450 Views

Hi FvM,

 

Thanks for you reply. We prefered to an855 at the beginning. We switched to learn an456 because we can't open the ref-design of an855.

 

Maybe, there are multiple versions QDP in our computer, this may cause our issue. We'll check carefully.

 

 

0 Kudos
Wincent_Altera
Employee
384 Views

Hi Minzhi,

First, thanks Fvm for help to reply on the previous reply.
Minzhi, another method for you to get PCIe reference design is through Quartus IP catalog
you may refer to below step for cyclone10/arria 10 device
https://www.intel.com/content/www/us/en/docs/programmable/683647/18-0/generating-the-design-68524.html

Let me know if you still cannot get it.

Regards,

Wincent_Intel

0 Kudos
MinzhiWang
Novice
368 Views

Hi wchiah,

 

You know, my object device is Cyclone 10 GX, and also we have Cycone 10 GX development kit in hands. So when we generate example design, the target dev-kit still is required to chose Arria 10's kit?

 

BTW, our Quartus Prime Pro version is 23.4

0 Kudos
Wincent_Altera
Employee
341 Views

Hi Minzhi,

Yes, I am aware that your devkit is Cyclone 10. You may select Cyclone10 devkit when generate the design.

wchiah_0-1728457717359.pngwchiah_1-1728457889542.png

Inside it , you can choose the interface type as AVST and HIP mode speed.

Let me know if you still unable to get it.

Regards,

Wincent_Intel

0 Kudos
MinzhiWang
Novice
323 Views

Hello wchiah,

 

Thanks for you reply.

 Yes, now I can get it.  I also found that I can open .par file by using the command "Open Project" from Quarus "file" menu. However, I have to launch Quartus Prime Pro firstly, otherwise, when i double click .par file, i'll get following issue:

MinzhiWang_0-1728465182197.png

As above image shows, the Quartus Prime Standard will be launched automatically when i double click the .par file.

 

Do you know how to switch the default quartus.exe procedure from standard to pro in my computuer?

 

 

0 Kudos
Wincent_Altera
Employee
314 Views
0 Kudos
MinzhiWang
Novice
279 Views

Ok, wchiah, i don't have any concern for this topic. You can close this post now. 

 

Thanks a lot.

0 Kudos
Wincent_Altera
Employee
257 Views

Hi MinZhi,

Thanks for your confirmation, glad that I am able to help you.
Thanks @FvM (community support) help to clarified as well.

If you have any further question, please open a new forum thread. Someone will be there to help out.

If your support experience falls below a 9 out of 10 using our support forum, I kindly request the opportunity to rectify it before concluding our interaction. If the issue cannot be resolved, please inform me via this forum page of the cause so that I can learn from it and strive to enhance the quality of future service experiences.

 

Wincent_Altera

p/s: If any answer from the community or Intel Support is helpful, please feel free to give the best answer or rate 9/10 survey.

0 Kudos
Reply