Embedded Peripherals IP User Guide

ID 683130
Date 10/24/2025
Public
Document Table of Contents
1. Introduction 2. Avalon® -ST Serial Peripheral Interface Core 3. SPI Core 4. SPI Agent/JTAG to Avalon® Host Bridge Cores 5. Intel eSPI Agent Core 6. eSPI to LPC Bridge Core 7. Ethernet MDIO Core 8. Intel FPGA 16550 Compatible UART Core 9. UART Core 10. Lightweight UART Core 11. JTAG UART Core 12. Intel FPGA Avalon® Mailbox Core 13. Intel FPGA Avalon® Mutex Core 14. Intel FPGA Avalon® I2C (Host) Core 15. Intel FPGA I2C Agent to Avalon® -MM Host Bridge Core 16. EPCS/EPCQA Serial Flash Controller Core 17. Intel FPGA Serial Flash Controller Core 18. Intel FPGA Serial Flash Controller II Core 19. Intel FPGA Generic QUAD SPI Controller Core 20. Intel FPGA Generic QUAD SPI Controller II Core 21. Interval Timer Core 22. Intel FPGA Avalon FIFO Memory Core 23. On-Chip Memory (RAM and ROM) Intel FPGA IP 24. On-Chip Memory II (RAM or ROM) Intel FPGA IP 25. PIO Core 26. PLL Cores 27. DMA Controller Core 28. Modular Scatter-Gather DMA Core 29. Scatter-Gather DMA Controller Core 30. Video Sync Generator and Pixel Converter Cores 31. Intel FPGA Interrupt Latency Counter Core 32. Performance Counter Unit Core 33. Vectored Interrupt Controller Core 34. System ID Peripheral Core 35. Intel FPGA GMII to RGMII Converter Core 36. HPS GMII to RGMII Adapter IP 37. Intel FPGA MII to RMII Converter Core 38. HPS GMII to TSE 1000BASE-X/SGMII PCS Bridge Core IP 39. Intel FPGA HPS EMAC to Multi-rate PHY GMII Adapter Core 40. Intel FPGA MSI to GIC Generator Core 41. Cache Coherency Translator IP 42. Altera ACE5-Lite Cache Coherency Translator

28.14.3.2. Descriptor Fields Definition

Read and Write Address Fields

The read and write address fields correspond to the source and destination address for each buffer transfer. Depending on the transfer type, you do not need to provide the read or write address. When performing memory-mapped to streaming transfers, the write address must not be written as there is no destination address. There is no destination address since the data is being transferred to a streaming port. Likewise, when performing streaming to memory-mapped transfers, the read address must not be written as the data source is a streaming port.

If a read or write address descriptor is written in a configuration that does not require it, the mSGDMA ignores the unnecessary address. If a standard descriptor is used and an attempt to write a 64-bit address is made, the upper 32 bits are lost and can cause the hardware to alias a lower address space. 64-bit addressing requires the use of the extended descriptor format.

Length Field

The length field is used to specify the number of bytes to transfer per descriptor. The length field is also used for streaming to memory-mapped packet transfers. This limits the number of bytes that can be transferred before the end-of-packet (EOP) arrives. As a result, you must always program the length field. If you do not wish to limit packet-based transfers in the case of Avalon® -ST to Avalon® -MM transfers, program the length field with the largest possible value of 0xFFFF_FFFF. This method allows you to specify a maximum packet size for each descriptor that has packet support enabled.

Sequence Number Field

The sequence number field is available only when using extended descriptors. The sequence number is an arbitrary value that you assign to a descriptor, so that you can determine which descriptor is being operated on by the read and write hosts. When performing memory-mapped to memory-mapped transfers, this value is tracked independently for hosts since each can be operating on a different descriptor. To use this functionality, program the descriptors with unique sequence numbers. Then, access the dispatcher CSR agent port to determine which descriptor is operated on.

Read and Write Burst Count Fields

The programmable read and write burst counts are only available when using the extended descriptor format and with Programmable Burst Enable parameter enabled in mSGDMA Read Master IP and Write Master IP. The programmable burst count is optional and can be disabled in the read and write hosts. Because the programmable burst count is an 8-bit field for each host, the maximum that you can program burst counts of 1 to 128, with a power of 2.

The maximum programmable burst count is 128, even when you instantiate the mSGDMA Read Master IP and Write Master IP with Maximum Burst Count parameter to different selections up to 1024. Programing to 0 or burst count greater than the parameter value of Maximum Burst Count, gets the maximum burst count from the Maximum Burst Count parameter selected during instantiation time. Refer to the Maximum Burst Count parameter of mSGDMA Read Master IP and Write Master IP.

Programmable burst counts are only recommended for modular SGDMA transfers between slave ports that specify different maximum burst counts. For example if the modular SGDMA is used to transfer data to slave ports that specify maximum burst counts of 2, 64, and 128, you would set the maximum burst count to 128 and program the burst counts of 2, 64, and 128 for the transfers to each slave port. Since burst transfers lock the arbitration posting large bursts to slave ports that can’t handle large bursts may not be beneficial which the programmable burst count serves to address. To learn more about bursting and the arbitration logic created by SOPC Builder, refer to the Avalon® -MM Design Optimizations Guide.

Read and Write Stride Fields

The read and write stride fields are optional and only available when using the extended descriptor format with Stride Addressing Enable parameter enabled in mSGDMA Read Master IP and Write Master IP. The stride value determines how the read and write hosts increment the address when accessing memory. The stride value is in terms of words, so the address incrementing is dependent on the host data width.

When stride is enabled, the host defaults to sequential accesses, which is the equivalent to a stride distance of one. A stride of zero instructs the host to continuously access the same address. A stride of two instructs the host to skip every other word in a sequential transfer. You can use this feature to perform interleaved data accesses, or to perform a frame buffer row and column transpose. The read and write stride distances are stored independently, allowing you to use different address incrementing for read and write accesses in memory-to-memory transfers. For example, to perform a 2:1 data decimation transfer, you would simply configure the read host for a stride distance of two and the write host for a stride distance of one. To complete the decimation operation, you could also insert a filter between the two hosts.

Control Field

The control field is available for both the standard and extended descriptor formats. This field can be programmed to configure parked descriptors, error handling, and interrupt masks. The interrupt masks are programmed into the descriptor so that interrupt enables are unique for each transfer.

Table 416.  Descriptor Control Field Bit Definition
Bit Sub-Field Name Definition
31 Go

Commits all the descriptor information into the descriptor FIFO.

As the host writes different fields in the descriptor, FIFO byte enables are asserted to transfer the write data to appropriate byte locations in the FIFO.

However, the data written is not committed until the go bit has been written.

As a result, ensure that the go bit is the last bit written for each descriptor.

Note: Writing '1' to the go bit commits the entire descriptor into the descriptor FIFO(s).
30:26 <reserved> Reserved
25 Wait for write responses When set, on completion of the DMA transfer, the host is only notified when all the outstanding writes have been responded. Those outstanding writes include writes transfer initiated by previous descriptor.

This field is valid only when Enable Write Response parameter is set. Enabling this bit resulted in longer time for write response host to move into the next descriptor. Therefore, it is recommended to set this field on the last descriptor of the transfer.

Note: This field is applicable only for Avalon® -MM to Avalon® -MM or Avalon® -ST to Avalon® -MM transfer.
24 Early done enable

Hides the latency between read descriptors.

When the read host is set, it does not wait for pending reads to return before requesting another descriptor.

Typically this bit is set for all descriptors except the last one. This bit is most effective for hiding high read latency. For example, it reads from SDRAM, PCIe, and SRIO.

Note: This field is applicable only for Avalon® -MM to Avalon® -MM or Avalon® -MM to Avalon® -ST transfer.
Note: Early done enable cannot be used for unaligned data or when packet support is enabled.
23:16 Transmit Error / Error IRQ Enable

For for Avalon® -MM to Avalon® -ST transfers, this field is used to specify a transmit error.

This field is commonly used for transmitting error information downstream to streaming components, such as an Ethernet MAC.

In this mode, these control bits control the error bits on the streaming output of the read host.

For Avalon® -ST to Avalon® -MM transfers, this field is used as an error interrupt mask.

As errors arrive at the write host streaming sink port, they are held persistently. When the transfer completes, if any error bits were set at any time during the transfer and the error interrupt mask bits are set, then the host receives an interrupt.

In this mode, these control bits are used as an error encountered interrupt enable.

Note: This field is not applicable only for Avalon® -MM to Avalon® -MM transfer.
Note: This field is applicable only when Error Enable parameter is enabled.
15 Early Termination IRQ Enable

Signals an interrupt to the host when a Avalon® -ST to Avalon® -MM transfer completes early.

For example, if you set this bit and set the length field to 1MB for Avalon® -ST to Avalon® -MM transfers, this interrupt asserts when more than 1MB of data arrives to the write host without the end of packet being seen.

14 Transfer Complete IRQ Enable

Signals an interrupt to the host when a transfer completes.

In the case of Avalon® -MM to Avalon® -ST transfers, this interrupt is based on the read host completing a transfer.

In the case of Avalon® -ST to Avalon® -MM or Avalon® -MM to Avalon® -MM transfers, this interrupt is based on the write host completing a transfer.

13 <reserved> Reserved
12 End on EOP

End on end of packet allows the write host to continuously transfer data during Avalon® -ST to Avalon® -MM transfers without knowing how much data is arriving ahead of time.

This bit is commonly set for packet-based traffic such as Ethernet.

11 Park Writes

When set, the dispatcher continues to reissue the same descriptor to the write host when no other descriptors are buffered.

Note: This field is applicable only for Avalon® -MM to Avalon® -MM or Avalon® -ST to Avalon® -MM transfer.
10 Park Reads

When set, the dispatcher continues to reissue the same descriptor to the read host when no other descriptors are buffered. This is commonly used for video frame buffering.

Note: This field is applicable only for Avalon® -MM to Avalon® -MM or Avalon® -MM to Avalon® -ST transfer.
9 Generate EOP

Emits an end of packet on last beat of a Avalon® -MM to Avlaon-ST transfer.

Note: Applicable only when Packet Support Enable parameter is enabled.
8 Generate SOP

Emits a start of packet on the first beat of a Avalon® -MM to Avalon® -ST transfer.

Note: Applicable only when Packet Support Enable parameter is enabled.
7:0 Transmit Channel

Emits a channel number during Avalon® -MM to Avalon® -ST transfers.

Note: Applicable only when Channel Enable parameter is enabled.