Scalable Scatter-Gather DMA FPGA IP Design Example User Guide

ID 823179
Date 9/22/2025
Public
Document Table of Contents

3.7.1.2. Programming the Example Design into the Development Board

To program example design into the FPGA and to run your application, use Quartus® Prime Programmer tool.
  1. Download the .sof file into the board.
  2. Run juart-terminal to print the output of the Nios® V/m processor system.
  3. Download the .elf using the niosv-download <elf file> command
[niosv-shell] ~ $ juart-terminal
juart-terminal: connected to hardware target using JTAG UART on cable
juart-terminal: "Agilex_5E MDK Carrier on 10.244.216.212 [USB-1]", device 1, instance 0
juart-terminal: (Use the IDE stop button or Ctrl-C to terminate)

INFO: ********************************************************************************
INFO: Altera sSGDMA multiport AXI-ST loopback & AXI4-MM memory access soc-mode example
INFO: ********************************************************************************
INFO: Enabling prefetcher!
INFO: Enable prefetcher: ret 0, enable 1
INFO: Dev csr base: 0x400000. total port 2
INFO: *******************************************************************************
INFO: Streaming Interface -- start loopback transfer for  H2D-ST0-->>>>>>--D2H-ST0 
INFO: *******************************************************************************
INFO: Fill H2D ST ret 0, length 192 bytes
INFO: Fill H2D ST ret 0, length 192 bytes
INFO: Fill H2D ST ret 0, length 192 bytes
INFO: Creating descriptors below for non-contiguous memory transfer => Scatter-Gather operation..!!!
INFO: Fill H2D ST ret 0, length 320 bytes, src_adr mem loc {[start => 0x27560 ~~~ end => 0x2769f]}
INFO: Fill H2D ST ret 0, length 640 bytes, src_adr mem loc {[start => 0x27880 ~~~ end => 0x27aff]}
INFO: Fill H2D ST ret 0, length 480 bytes, src_adr mem loc {[start => 0x276a0 ~~~ end => 0x2787f]}
INFO: H2D_ST update insert ptr ret 0.
INFO: H2D_ST insert ptr ret 0, val 7
INFO: Interrupt D2H_ST before: 0.
INFO: Creating multiple descriptors (maximum payload/data length 96 bytes for each descriptors)..
INFO: Fill D2H ST ret 0, length 576 bytes
INFO: Number of D2H-ST descriptors created for length 576 bytes based on configured MAX_DESC_LENGTH == 6 
INFO: Fill D2H ST ret 0, length 320 bytes, dest_adr mem loc {[start => 0x27d40 ~~~ end => 0x27e7f]}
INFO: Fill D2H ST ret 0, length 640 bytes, dest_adr mem loc {[start => 0x28060 ~~~ end => 0x282df]}
INFO: Fill D2H ST ret 0, length 480 bytes, dest_adr mem loc {[start => 0x27e80 ~~~ end => 0x2805f]}
INFO: D2H_ST update insert ptr ret 0.
INFO: D2H_ST insert ptr ret 0, val 10
INFO: check H2D_ST for complete.
INFO: H2D_ST resp before poll for completion called..
INFO: resp format 0x13, Idx 2, length 192 bytes, status 0x80
INFO: resp format 0x13, Idx 3, length 192 bytes, status 0x80
INFO: resp format 0x13, Idx 4, length 192 bytes, status 0x81
INFO: resp format 0x13, Idx 5, length 320 bytes, status 0x80
INFO: resp format 0x13, Idx 6, length 640 bytes, status 0x80
INFO: resp format 0x13, Idx 7, length 480 bytes, status 0x81
INFO: HW Extract pointer after H2D_ST 7, ret 0
INFO: H2D_ST complete ret 0, last idx 7
INFO: H2D_ST resp after poll for completion called..
INFO: resp format 0x13, Idx 2, length 192 bytes, status 0x0
INFO: resp format 0x13, Idx 3, length 192 bytes, status 0x0
INFO: resp format 0x13, Idx 4, length 192 bytes, status 0x1
INFO: resp format 0x13, Idx 5, length 320 bytes, status 0x0
INFO: resp format 0x13, Idx 6, length 640 bytes, status 0x0
INFO: resp format 0x13, Idx 7, length 480 bytes, status 0x1
INFO: D2H_ST status before interrupt.
INFO: gcsr status: val 0x80000000
INFO: gcsr irq status: val 0x1
INFO: type 0, status: ret 0, val 0x90000014
INFO: interrupt cnt 0, completed desc 0
INFO: D2H_ST resp before interrupt enabled.
INFO: resp format 0x17, Idx 2, length 96 bytes, status 0x80
INFO: resp format 0x17, Idx 3, length 96 bytes, status 0x80
INFO: resp format 0x17, Idx 4, length 96 bytes, status 0x80
INFO: resp format 0x17, Idx 5, length 96 bytes, status 0x80
INFO: resp format 0x17, Idx 6, length 96 bytes, status 0x80
INFO: resp format 0x17, Idx 7, length 96 bytes, status 0x81
INFO: resp format 0x17, Idx 8, length 320 bytes, status 0x80
INFO: resp format 0x17, Idx 9, length 640 bytes, status 0x80
INFO: resp format 0x17, Idx 10, length 480 bytes, status 0x85
INFO: D2H_ST status after interrupt enabled.
INFO: gcsr status: val 0x0
INFO: gcsr irq status: val 0x0
INFO: type 0, status: ret 0, val 0x14
INFO: interrupt cnt 1, completed desc 9
INFO: HW Extract pointer after D2H_ST 10, ret 0
INFO: D2H_ST resp after interrupt.
INFO: resp format 0x17, Idx 2, length 96 bytes, status 0x0
INFO: resp format 0x17, Idx 3, length 96 bytes, status 0x0
INFO: resp format 0x17, Idx 4, length 96 bytes, status 0x0
INFO: resp format 0x17, Idx 5, length 96 bytes, status 0x0
INFO: resp format 0x17, Idx 6, length 96 bytes, status 0x0
INFO: resp format 0x17, Idx 7, length 96 bytes, status 0x1
INFO: resp format 0x17, Idx 8, length 320 bytes, status 0x0
INFO: resp format 0x17, Idx 9, length 640 bytes, status 0x0
INFO: resp format 0x17, Idx 10, length 480 bytes, status 0x5
INFO: Transferred data matches with received data..!!!
INFO: Total streamed transfer length = 2016 bytes
INFO: Free resources!
INFO: Reset Ports!
INFO: Memory copy over DMA sucessfully completed..!!! End of sSGDMA soc-mode ED.