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

AVMM transparent bridge

UserID4331231
New Contributor I
3,001 Views

Hi all 

 

I am experimenting with PCIe example designs. In example design there in AVMM master in one of the IP block which is connected to a AVMM agent port on on chip memory IP. I understand that during RTL compilation Quartus inserts necessary logic to make AVMM connection between these ports. 

For a design specific need i am interested in getting a copy of all AVMM signals at AVMM agent port.  Purpose is to monitor all WR and READ activities and take action based on specific reads or writes.

 

what will be the best way to achieve this? is there any IPs or capabilities available via Quartus?

I am trying to avoid writing  RTL for "AVMM middle man" module, which take request on its agent port and forwards using its master port and, when response is received it forwards that to original Master/requester. 

UserID4331231_0-1755030022880.png

 

0 Kudos
12 Replies
Wincent_Altera
Employee
2,952 Views

Hi,


May I know which device you are targeted ? Because each device and spec might be different.

Generally if you wish to monitor the write and read activities without involving any RTL changing activity , I would suggest you can use below method


  1. Using Signal Tap Logic Analyzer
    1. 2.1. Signal Tap Logic Analyzer Introduction
    2. You can monitor the write and read signal - those signal naming might be slightly different depends on the device.
    3. I would suggest to refer to respective user guide on your targeted device
      1. Add a Signal Tap instance.
      2. Tap all AVMM signals at the agent port (command name will be address, writedata, readdata, write, read, chipselect, waitrequest, etc.).
      3. Use complex triggers to capture specific accesses. Export captured data for analysis.
  2. Using the System Console / In-System Sources and Probes
    1. 7.5.4. Using the In-System Sources and Probes Service
    2. Can read/write signals at runtime., BUT not a real-time HW response


Hope that clarfied.


Regards,

Wincent_Altera


0 Kudos
UserID4331231
New Contributor I
2,882 Views

thank you Wincent for your reply,  

 

I am using Agilex7 FPGA.

 

the AVMM master port is part of PCIe ip  -  and agent port at memory is intel onchip memory ip . Both are altera IP from ip catalog. the memory is mapped BAR0.  in my application BAR 0 is acting as config area and based on read writes accesses to particular offsets some internal logic need to change FSM states.  

for this purpose i need to a copy of all AVMM agent port signal,  Once I have copy of this signals, I can write my own RTL to monitor activities interesting to us and change internal FSM states as I wish.

once the logic is developed I will need to do signal tap analysis to make sure my logic is working as intended, So your response regarding signal tap definitely helps, but I still need help on how can i get AVMM agent port signal copy so that I can write my own logic based on AVMM activities.

 

thanks

 

0 Kudos
Wincent_Altera
Employee
2,834 Views

Hi ,


May I know which device that you targeted ? because for Agilex 7 we have F-tile for higher bandwidth , P-tile and R-tile for Gen5.
At the same time for Agilex 7, we only provided AVST and MCDMA IP design example. For AVMM implementation , I assume this is your own custom design right ?

About AVMM port signal information, I found some description in MCDMA user guide. 

If you are asking about the naming of write and read signal

You can try to navigate it under the AVST user guide based on the tile that you are using 
https://www.intel.com/content/www/us/en/support/programmable/support-resources/design-guidance/pcie-support.html

Wincent_Altera_0-1755133299102.png

 


Not sure if this is something that you looking at or not ? If not please let me know

Regards,

Wincent

0 Kudos
UserID4331231
New Contributor I
2,816 Views

I am using MCDMA R-Tile Design Examples for Endpoint.  https://www.intel.com/content/www/us/en/docs/programmable/683517/22-4/mcdma-r-tile-design-examples-for-endpoint.html

 

on https://www.intel.com/content/www/us/en/docs/programmable/683517/25-1/avalon-mm-pio-using-mcdma-bypass-mode.html  

 

in figure 2 below Mem_PIO is mapped to BAR0. in my design since BAR0 is used as config area I need to write an RTL to monitor RD/WR traffic to "MEM_PIO"; and  to do that I need access to AVMM agent port`s copy.  

 

for example 

  1. BAR 0  offset  0x0 to 0x10h  is my config area.
  2. Host copies "input data" at  BAR0 offset 0x100h to 0x200h.
  3. host writes 0x1h to BAR0 offset 0x0h (part of config area) this means that data between offset 0x100h and 0x200h is valid and my design can use these input data to generate output data. 
  4. Output data is copies to unique offset in BAR0.

as you can see at step number my RTL design need to monitor accesses to BAR0, I can only write my RTL if i have access to AVMM agent port activities.  I need to know

  1. What BAR0 offset is accessed by host?
  2. is it read or write access?
  3. if its write what value is being written?

My RTL design can only work I have copy of all accesses. My RTL design is not trying to intercept AVMM traffic or modify AVMM request or responses by any means. Its just looking at the activities and take action for internal logic when needed.

So how do i get access to AVMM agent port?

UserID4331231_0-1755138563600.png

 

0 Kudos
Wincent_Altera
Employee
2,749 Views

Hi,

Thanks for such clear and detail clarification.
So you might need to check the AVMM agent port signal copy in order to take action for internal logic when needed.
If that is the cases, perhaps you can check on 

3.7. Avalon® -MM Agent Addressing

 

Let me know if it is not clear, And I am happy to provide better clarification on that.

Regards,

Wincent

0 Kudos
UserID4331231
New Contributor I
2,680 Views

Attaching the Qsys screenshot here. This project is example design generated by quartus. there is no medication done yet.

the highlighted connection is between PIO0 IP`s PIO_master port(AVMM Host) and MEM0`s S1 port(AVMM agent)

MEM 0 is mapped to BAR 0.  In your response you mention "So you might need to check the AVMM agent port signal copy"

Where can I find this option to get MEM0.S1 port copy ? can you provide me steps to find this option?

 

I checked in Parameters tab for Mem0 IP but dont see such option.

I also checked Parameters tab for PIO IP but dont see such option.

 

I reviewed the link https://www.intel.com/content/www/us/en/docs/programmable/683091/22-3/mm-agent-addressing.html which you have mentioned.  I understood the address alignment information provided and find it useful in writing my own monitoring logic once I get copy of AVMM agent port signals.

thanks

 

 

UserID4331231_0-1755187071401.png

 

0 Kudos
Wincent_Altera
Employee
2,375 Views

Hi ,

You can try to export the master and slave in the top level and check the connection
re-wire the connection with the module via qsys (normally qsys will perform auto-assignation on the wire) , but you may need to check the connection well. 
If you not sure how to connect it , I suggest to file a new thread , so that our Quartus Software specialist can take a look and guide you accordingly on the connection.

You can try to perform the application test and check if the read/write is working as expectation or not.

Regards,

Wincent_Altera
 

0 Kudos
FvM
Honored Contributor II
2,741 Views

Hi,

there should be a link to design example files respectively a reference to development kit where it's shipped with

0 Kudos
FvM
Honored Contributor II
2,661 Views

Hi,

possible solution, implement the AVMM agent as HDL component, e.g. by copying the IP implementation. Add code to tap AVMM interface signals.

AVMM to internal RAM is quite simple design, I've implemented various FIFO memories with special features. 

0 Kudos
Wincent_Altera
Employee
2,129 Views

Hi,


I saw the question been address by our Quartus Software specialist under

https://community.intel.com/t5/forums/forumtopicpage/board-id/fpga-intellectual-property/message-id/30831#M30831

Is there issue related to PCIe that I can further address ?


Regards,

Wincent_Altera


0 Kudos
UserID4331231
New Contributor I
1,978 Views

The response on other thread was satisfactory.

 

for this thread as user FvM mentioned I am trying to copy RAM HDP instances and save them as custom memory IP generated by me. 

I think this idea can work. I will update later on my findings. 

0 Kudos
Wincent_Altera
Employee
572 Views

Hi Ankit,


Thanks for your reply, glad that the other specialist able to address your question, also thanks community expert - FVM who provide some valuable feedback.

If there is a further question, please do file a new forum thread , we will be there to assist.


Regards,

Wincent


0 Kudos
Reply