Forum Discussion

rgkim-intel's avatar
rgkim-intel
Icon for New Contributor rankNew Contributor
5 months ago

Agilex 7 M-series: Issue accessing DDR5 COMP over JTAG

Hello,

I built the EMIF DDR5 COMP example design targeting the Agilex™ 7 FPGA M-Series Development Kit - HBM2e Edition (https://www.intel.com/content/www/us/en/products/details/fpga/development-kits/agilex/agm039.html). I am using Quartus Pro 24.3. DDR5 appears to be working properly, the EMIF AXI-Lite driver is receiving successful calibration and signal tap shows the Test Engine successfully writing and reading from DDR5.

In this design, I added a JTAG path to the DDR5 using a JTAG to Avalon Master bridge -> Address Span Extender (to extend the avalon address range from 32-bit to 44-bit) -> NoC initiator (I've tried reusing the same initiator as the test engine and also two separate initiators) -> EMIF. I am able to successfully read and write addresses 0x0000 - 0x7FFF using system-console over JTAG. However, whenever I try beyond that address range (0x8000 and up) I read only 0's and I've noticed that the rresp signal coming from the NoC initiator shows 0x2 (SLVERR). This only happens with the JTAG path, the test engine still appears to read/write the full DDR range. I've tried adjusting the security settings in Platform Designer, I've tried putting a AXI bridge in-between the address span extender and the NoC initiator, multiple NoC initiators, and the bit-width of these intitiators.

As far as I can see, the JTAG path and the test engine path is very similar both in configuration and in signal tap. I've checked the path in Platform Designer and the NoC assignment values. The major differences being that JTAG starts as a 32-bit Avalon host while the test engine generates a 256-bit AXI4 manager.

Please let me know if you need more information and I am looking forward to any guidance you may provide.

5 Replies

  • AdzimZM_Altera's avatar
    AdzimZM_Altera
    Icon for Regular Contributor rankRegular Contributor

    Hi rgkim-intel,


    Have you trace the signal on SignalTap just in case the signal cannot transfer on JTAG?


    It's looks like the EMIF IP is working well based on your description.

    Can you provide Address Span Extender IP setting?


    Regards,

    Adzim


    • rgkim-intel's avatar
      rgkim-intel
      Icon for New Contributor rankNew Contributor

      Hi Adzim,

      Yes I can trace the signal. I was looking at the AXI4 subordinate on the NoC initiator and I can see the JTAG requests reach that point. For addresses 0x0000-0x7FFF it appears to read just fine, data comes back and rresp is 0x0. However, when reading address 0x8000 rresp changes to 0x2 (SLVERR). Please see address span extender IP configuration in the screenshot below. This should allow me to access 0x0000_0000 - 0x7FFF_FFFF from the JTAG.

      Best,

      Ryan

  • AdzimZM_Altera's avatar
    AdzimZM_Altera
    Icon for Regular Contributor rankRegular Contributor

    Hi Ryan,


    I have a few suggestions for debugging this issue.

    1. Try to change the Datapath width in ASE IP either reduce it or increase it and observe the different.
    2. Can also you capture the signal on AXI4 NoC Manager on NoC Initiator?


    If possible, please share the SS of your SignalTap as well.


    Regards,

    Adzim


  • AdzimZM_Altera's avatar
    AdzimZM_Altera
    Icon for Regular Contributor rankRegular Contributor

    As we do not receive any response from you on the previous reply that we have provided, I now transition this thread to community support. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.