Forum Discussion

JFrye7's avatar
JFrye7
Icon for New Contributor rankNew Contributor
5 years ago

Cyclone V SoC F2SDRAM Read Interface Ready cmd_ready_0 Not Asserting

Hello, I am trying to develop a simple design with an Altera DMA Controlelr Core IP (https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/nios2/n2cpu_nii51006.pdf) that reads from the HPS SDRAM, then writes back to another location in the SDRAM.

I have enabled a 32-bit wide AXI SDRAM interface in the Platform Designer menu for the IP.

It seems in the generated RTL, the DMA has a master Avalon interface, that is then connected to an interconnect that converts it to AXI, then the AXI signals are packed an unpacked and wired directly to the SDRAM interface primitive.

It seems the SDRAM interface primitive has signals, whose naming convention would suggest they map to two interfaces, one for read, which is connected to the AXI read signals and one for write, which is connected to AXI write signals.

The AXI ARREADY siganal is connected to a port on the primitive called cmd_ready_0. This signal never asserts.

During my test, I program the DMA core over the H2F_LW_AXI_MASTER . I see the AXI_ARVALID signal assert. This signal is connected to the primitive signal cmd_valid_0 (read valid). The transaction then stalls since the ready is not asserting.

Why is the ready never asserting?

6 Replies

    • JFrye7's avatar
      JFrye7
      Icon for New Contributor rankNew Contributor

      HPS AXI has already been verified. I have software that can read and write the registers in my address map. I can write the DMA registers with my Linux user space application and read them back.

      That offset in my software is 0xFF200000. I use /dev/mem to open and read the HPS AXI register space.

      As far as FPGA2SDRAM bridge goes, I do have an update. By performing these two writes in U-Boot, I can at least get the address address ready signals for ports 0 and 1 (read and write ports for AXI) to assert.

      # fpga-sdram bridge
      mw FFC25080 00000311
      mw FFC2505C 00000004

      After the interface appears to accept the read address requests coming from the DMA master interface, it never asserts the signal on the port that corresponds to AXI RVALID and the kernel freezes, then the thing reboots.

      Not sure what this might be. My guess is one of two things

      1. Interface registers are still not configured correctly

      2. Platform Design HPS block has wrong DDR timing configurations.

      If the HPS is set up with the wrong DDR timing parameters, would the ARM still be able to perform load/store instructions (because it obviously since it is successfully able to run u-boot and the OS)?

      • JFrye7's avatar
        JFrye7
        Icon for New Contributor rankNew Contributor

        Also worth noting my board is DE1-SoC, so it might have different timing parameters than your board for the DDR.