Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Scroll Title
titleSystem integration block scheme

 

Image AddedImage Removed

The XPS_NPI_DMA has 4 interfaces:

...

Scroll Title
titleXPS_NPI_DMA Core Design Parameters
Feature/DescriptionParameter Name Allowable ValuesDefault ValueVHDL Type
System Parameters
Target FPGA familyC_FAMILY spartan3, spartan3e,
spartan3a,
spartan3adsp,
spartan3an, virtex2p,
virtex4, qvirtex4,
qrvirtex4, virtex5
virtex5string
PLB Parameters
PLB base addressC_BASEADDRValid AddressNonestd_logic_vector
PLB high addressC_HIGHADDRValid AddressNonestd_logic_vector
PLB least significant
address bus width
C_SPLB_AWIDTH3232integer
PLB data widthC_SPLB_DWIDTH32, 64, 12832integer
Shared bus topologyC_SPLB_P2P 0 = Shared bus
topology

0integer
PLB master ID bus
Width
C_SPLB_MID_WIDTH log2(C_SPLB_NUM_
MASTERS) with a
minimum value of 1

1integer
Number of PLB mastersC_SPLB_NUM_MASTERS1 - 161integer
Width of the slave data
bus
C_SPLB_NATIVE_DWIDTH3232integer
Burst supportC_SPLB_SUPPORT_BURSTS0 = No burst support0integer
XPS_NPI_DMA Parameters
NPI bus data widthC_NPI_DATA_WIDTH32, 6432integer
Byte swap input dataC_SWAP_INPUT0, 10integer
Byte swap output dataC_SWAP_OUTPUT0, 10integer
Writing padding value
if number of bytes does
not match multiple of
packet size
C_PADDING_BE0, 1 (zeros, ones)0integer

XPS_NPI_DMA I/O Signal Descriptions

Scroll Title
titleXPS_NPI_DMA I/O Signal Descriptions
Name

InterfaceI/OInitial StateDescription
NPI_Clk-I-Memory clock
ChipScope[0:63]-O-Debug port
IP2INTC_IrptInterrupt request
LEVEL_HIGH
Capture_data[(C_NPI_DATA_WIDTH-1):0]DMA_INI-Sync DMA Input data
Capture_validDMA_INSync DMA Input valid strobe
Capture_readyDMA_IN DMA Input is ready flag
Output_data[(C_NPI_DATA_WIDTH-1):0]DMA_OUT 

DMA Output data,
Sync to NPI_Clk

Output_validDMA_OUT DMA Output valid strobe,
sync to NPI_Clk
Output_readyDMA_OUTExternal Output ready
NPI_Addr[31:0]MPMC_PIMOzerosNPI address data
NPI_AddrReqMPMC_PIMO0NPI address request
NPI_AddrAckMPMC_PIM NPI address acknowledge
NPI_RNWMPMC_PIMO0NPI read now write
NPI_Size[3:0]MPMC_PIM NPI packet size
See below for info
NPI_RdModWrMPMC_PIM ONPI read mod write
(not used)
NPI_WrFIFO_Data[(C_NPI_DATA_WIDTH-1):0]MPMC_PIM zeros NPI write FIFO data vector
NPI_WrFIFO_BE[(C_NPI_DATA_WIDTH/8-1):0]MPMC_PIM ones NPI write FIFO byte enable mask
(alway ones)
NPI_WrFIFO_PushMPMC_PIM NPI write FIFO data valid strobe
NPI_RdFIFO_Data[(C_NPI_DATA_WIDTH-1):0]MPMC_PIMNPI read FIFO data vector
NPI_RdFIFO_PopMPMC_PIM NPI read FIFO data read strobe
NPI_RdFIFO_RdWdAddr[3:0]MPMC_PIM NPI read FIFO read write addr
(not used)
NPI_WrFIFO_EmptyMPMC_PIM NPI write FIFO empty flag
NPI_WrFIFO_AlmostFullMPMC_PIMI-NPI write FIFO almost full flag
NPI_WrFIFO_FlushMPMC_PIMO0NPI write FIFO reset
NPI_RdFIFO_EmptyMPMC_PIM NPI read FIFO empty flag
NPI_RdFIFO_FlushMPMC_PIMO0NPI read FIFO reset
NPI_RdFIFO_Latency[1:0]MPMC_PIM ‘’01’’ NPI read FIFO latency
NPI_InitDoneMPMC_PIMI-MPMC init done flag
OTHERS ARE PLBv4.6 SIGNALSPLBv4.6---

Writing and reading to/from DMA_IN and DMA_OUT ports

...

Scroll Title
titleXPS_NPI_DMA I/O Signal Descriptions
BUSDMA_INDMA_OUT
 Bus width 32 or 64 bit 32 or 64 bit
 Clock synchronous toNPI_ClkNPI_Clk 
“valid” widthMultiple cycles possibleMultiple cycles possible
Scroll Title
titleDMA high speed communication ports principle of operation

...

Scroll Title
titleXPS_NPI_DMA Core Registers

Base Address +

Offset (hex)

Register Name

Access Type

Default Value (hex)

Description
NPI_DMA_CORE IP Core Grouping

C_BASEADDR + 00

CRR/W0x00000000Control Register
C_BASEADDR + 04WSAR/W0x00000000Write Start Address Register
C_BASEADDR + 08WBRR/W0x00000000Write Bytes Register
C_BASEADDR + 0CRSAR/W0x00000000Read Start Address Register
C_BASEADDR + 10RBRR/W0x00000000Read Bytes Register
C_BASEADDR + 14RJRR/W0x00000000Read Jumps Register
C_BASEADDR + 18SRRead0x00000000Status Register
C_BASEADDR + 1CWCRReadWSA

Write Address Counter Register

C_BASEADDR + 20

RCRReadWBR

Read Address Counter Register

IPIF Interrupt Controller Core Grouping

C_BASEADDR + 200

INTR_DISRRead0x00000000interrupt status register

C_BASEADDR + 204

INTR_DIPRRead0x00000000interrupt pending register

C_BASEADDR + 208

INTR_DIERWrite0x00000000interrupt enable register

C_BASEADDR + 218

INTR_DIIRWrite0x00000000interrupt id (priority encoder) register

C_BASEADDR + 21C

INTR_DGIERWrite0x00000000global interrupt enable register

C_BASEADDR + 220

INTR_IPISRRead0x00000000ip (user logic) interrupt status register
C_BASEADDR + 228INTR_IPIERWrite0x00000000ip (user logic) interrupt enable register
Note
The First (LSB) interrupt from user_logic is masked on the left!!

...

Scroll Title
titleControl Register bits

BitsNameDescription ResetValue

31

rst

Peripheral soft reset (not self resettable)

 

0
30

wr_fifo_rst

 

Write FIFO reset (not self resettable)0
29rd_fifo_rstRead FIFO reset (not self resettable)0
28wr_loopWrite loop – continuous transfer0
27rd_loopRead loop – continuous transfer0

26

wr_test

 

Write test – writes 32bit counter to memory0
25xfer_writeWrite data flag (starts/stops xfer)0
24xfer_readRead data flag (starts/stops xfer)0
20-23wr_block_sizeWrite block size0x0
16-19rd_block_sizeRead block size0x0
15use_rd_jumpEnables transpose0
Write Start Address Register (WSA)

...

Scroll Title
titleStatus Register (SR)

BitsNameDescriptionReset Value
31wr_xfer_done

Write xfer done flag (always 0 if wr_loop = '1')

1
30rd_xfer_done

Read xfer done flag (always 0 if wr_loop = 1)

1
24-27xfer_statusWrite xfer status (bit 27 = wr_fifo_full)0
Write Address Counter Register (WCR)

...

Scroll Title
titleWrite block size available
Write block sizewr_block_sizeC_NPI_DATA_WIDTHtype of transferImplemented
4 bytes   X”0”321 word xfer(error)
8 bytes  X”0”642 words xfer(error)
16 bytesX”1”32-644-word cache-line burst(tick)
32 bytesX”2”32-648-word cache-line burst(tick)
64 bytesX”3”32-6416-word burst(tick)
128 bytesX”4”32-6432-word burst(tick)
256 bytesX”5”6464-word burst(tick)
Scroll Title
titleRead block size available
Read block sizerd_block_sizeC_NPI_DATA_WIDTHtype of transferImplemented
4 bytes   X”0”321 word xfer(tick)
8 bytes  X”0”642 words xfer(tick)
16 bytesX”1”32-644-word cache-line burst(warning), not tested
32 bytesX”2”32-648-word cache-line burst(warning), not tested
64 bytesX”3”32-6416-word burst(tick)
128 bytesX”4”32-6432-word burst(tick)
256 bytesX”5”6464-word burst(tick)

Example 1

Example of single write transfer from address 0x1C000000 to 0x1C00FFFF using 32-word burst

...