Software Drivers

xtrafgen.h File Reference

#include <string.h>
#include "xstatus.h"
#include "xil_assert.h"
#include "xtrafgen_hw.h"

Classes

struct  XTrafGen_CRamCmd
struct  XTrafGen_PRamCmd
struct  XTrafGen_Cmd
struct  XTrafGen_CmdEntry
struct  XTrafGen_Config
struct  XTrafGen_CmdInfo
struct  XTrafGen

Defines

#define XTRAFGEN_H
#define MAX_NUM_ENTRIES   256
#define NUM_BLOCKS   2
#define XTG_WRITE   1
#define XTG_READ   0
#define XTG_MODE_FULL   0
#define XTG_MODE_BASIC   1
#define XTG_MODE_STATIC   2
#define XTG_MODE_STREAMING   3
#define XTG_MODE_SYS_INIT   4
#define XTG_MWIDTH_32   0
#define XTG_MWIDTH_64   1
#define XTG_SWIDTH_32   0
#define XTG_SWIDTH_64   1
#define XTG_PRM_RAM_BLOCK_SIZE   0x400
#define XTG_CMD_RAM_BLOCK_SIZE   0x1000
#define XTG_PARAM_RAM_SIZE   0x800
#define XTG_COMMAND_RAM_SIZE   0x2000
#define XTG_MASTER_RAM_SIZE   0x2000
#define XTrafGen_ReadCoreRevision(InstancePtr)
#define XTrafGen_ReadIdWidth(InstancePtr)
#define XTrafGen_StartMasterLogic(InstancePtr)
#define XTrafGen_IsMasterLogicDone(InstancePtr)
#define XTrafGen_LoopEnable(InstancePtr)
#define XTrafGen_LoopDisable(InstancePtr)
#define XTrafGen_WriteSlaveControlReg(InstancePtr, Value)
#define XTrafGen_CheckforMasterComplete(InstancePtr)
#define XTrafGen_ReadErrors(InstancePtr)
#define XTrafGen_EnableMasterCmpInterrupt(InstancePtr)
#define XTrafGen_ClearMasterCmpInterrupt(InstancePtr)
#define XTrafGen_ClearErrors(InstancePtr, Mask)
#define XTrafGen_EnableErrors(InstancePtr, Mask)
#define XTrafGen_MasterErrIntrEnable(InstancePtr)
#define XTrafGen_MasterErrIntrDisable(InstancePtr)
#define XTrafGen_SlaveErrIntrEnable(InstancePtr)
#define XTrafGen_SlaveErrIntrDisable(InstancePtr)
#define XTrafGen_ReadConfigStatus(InstancePtr)
#define XTrafGen_StaticEnable(InstancePtr)
#define XTrafGen_StaticDisable(InstancePtr)
#define XTrafGen_StaticVersion(InstancePtr)
#define XTrafGen_SetStaticBurstLen(InstancePtr, Value)
#define XTrafGen_GetStaticBurstLen(InstancePtr)
#define XTrafGen_GetStaticTransferDone(InstancePtr)
#define XTrafGen_SetStaticTransferDone(InstancePtr)
#define XTrafGen_IsStaticTransferDone(InstancePtr)
#define XTrafGen_StreamEnable(InstancePtr)
#define XTrafGen_StreamDisable(InstancePtr)
#define XTrafGen_StreamVersion(InstancePtr)
#define XTrafGen_SetStreamingTransLen(InstancePtr, Value)
#define XTrafGen_GetStreamingTransLen(InstancePtr)
#define XTrafGen_GetStreamingTransCnt(InstancePtr)
#define XTrafGen_SetStreamingRandomLen(InstancePtr, Value)
#define XTrafGen_GetStreamingProgDelay(InstancePtr)
#define XTrafGen_SetStreamingTransCnt(InstancePtr, Value)
#define XTrafGen_SetStreamingProgDelay(InstancePtr, Value)
#define XTrafGen_SetStreamingTdestPort(InstancePtr, Value)
#define XTrafGen_SetStreamingTransferDone(InstancePtr)
#define XTrafGen_IsStreamingTransferDone(InstancePtr)
#define XTrafGen_ResetStreamingRandomLen(InstancePtr)

Functions

int XTrafGen_CfgInitialize (XTrafGen *InstancePtr, XTrafGen_Config *Config, u32 EffectiveAddress)
XTrafGen_ConfigXTrafGen_LookupConfig (u32 DeviceId)
int XTrafGen_AddCommand (XTrafGen *InstancePtr, XTrafGen_Cmd *CmdPtr)
int XTrafGen_GetLastValidIndex (XTrafGen *InstancePtr, u32 RdWrFlag)
int XTrafGen_WriteCmdsToHw (XTrafGen *InstancePtr)
void XTrafGen_AccessMasterRam (XTrafGen *InstancePtr, u32 Offset, int Length, u8 Write, u32 *Data)
void XTrafGen_PrintCmds (XTrafGen *InstancePtr)
int XTrafGen_EraseAllCommands (XTrafGen *InstancePtr)

Detailed Description


Define Documentation

#define MAX_NUM_ENTRIES   256

Number of command entries per region

#define NUM_BLOCKS   2

Number of Read and write regions

#define XTG_CMD_RAM_BLOCK_SIZE   0x1000

Cmd RAM Block Size (4KB)

#define XTG_COMMAND_RAM_SIZE   0x2000

Command RAM (8KB)

#define XTG_MASTER_RAM_SIZE   0x2000

Master RAM (8KB)

#define XTG_MODE_BASIC   1

Basic Mode

#define XTG_MODE_FULL   0

Full Mode

#define XTG_MODE_STATIC   2

Static Mode

#define XTG_MODE_STREAMING   3

Streaming Mode

#define XTG_MODE_SYS_INIT   4

System Init Mode

#define XTG_MWIDTH_32   0

Master Width - 32

#define XTG_MWIDTH_64   1

Master Width - 64

#define XTG_PARAM_RAM_SIZE   0x800

Parameter RAM (2KB)

#define XTG_PRM_RAM_BLOCK_SIZE   0x400

PARAM Block Size (1KB)

#define XTG_READ   0

Read Direction Flag

#define XTG_SWIDTH_32   0

Slave Width - 32

#define XTG_SWIDTH_64   1

Slave Width - 64

#define XTG_WRITE   1

Write Direction Flag

#define XTrafGen_CheckforMasterComplete ( InstancePtr   ) 
Value:
((XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,   \
                XTG_ERR_STS_OFFSET) & XTG_ERR_MSTCMP_MASK) ? TRUE : FALSE)

XTrafGen_CheckforMasterComplete checks for master complete.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
TRUE if master complete bit is set. FALSE if master complete bit is not set.
Note:
C-style signature: u8 XTrafGen_CheckforMasterComplete(XTrafGen *InstancePtr)
#define XTrafGen_ClearErrors ( InstancePtr,
Mask   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,    \
                XTG_ERR_STS_OFFSET,     \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                        XTG_ERR_STS_OFFSET) | Mask))

XTrafGen_ClearErrors clear errors specified in Mask. The corresponding error for each bit set to 1 in Mask, will be enabled.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Mask contains a bit mask of the errors to clear. The mask can be formed using a set of bit wise or'd values from the definitions in xtrafgen_hw.h file.
Returns:
None.
Note:
C-style signature: void XTrafGen_ClearErrors(XTrafGen *InstancePtr, u32 Mask)
#define XTrafGen_ClearMasterCmpInterrupt ( InstancePtr   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,    \
                XTG_ERR_STS_OFFSET,     \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                        XTG_ERR_STS_OFFSET) |   \
                        XTG_ERR_MSTCMP_MASK))

XTrafGen_ClearMasterCmpInterrupt clear Master logic complete interrupt bit.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None.
Note:
C-style signature: u8 XTrafGen_ClearMasterCmpInterrupt(XTrafGen *InstancePtr)
#define XTrafGen_EnableErrors ( InstancePtr,
Mask   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,    \
                XTG_ERR_EN_OFFSET,      \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                        XTG_ERR_EN_OFFSET) | Mask))

XTrafGen_EnableErrors enable errors specified in Mask. The corresponding error for each bit set to 1 in Mask, will be enabled.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Mask contains a bit mask of the errors to enable. The mask can be formed using a set of bit wise or'd values from the definitions in xtrafgen_hw.h file.
Returns:
None.
Note:
C-style signature: void XTrafGen_EnableErrors(XTrafGen *InstancePtr, u32 Mask)
#define XTrafGen_EnableMasterCmpInterrupt ( InstancePtr   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,    \
                XTG_ERR_EN_OFFSET,      \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                        XTG_ERR_EN_OFFSET) |    \
                        XTG_ERR_MSTCMP_MASK))

XTrafGen_EnableMasterCmpInterrupt enables Master logic complete bit.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None.
Note:
C-style signature: void XTrafGen_EnableMasterCmpInterrupt(XTrafGen *InstancePtr)
#define XTrafGen_GetStaticBurstLen ( InstancePtr   ) 
Value:
(XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                XTG_STATIC_LEN_OFFSET))

XTrafGen_GetStaticBurstLen Gets the Burst Length for AxiTrafGen in StaticMode

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Burst length value.
Note:
C-style signature: u32 XTrafGen_GetStaticBurstLen(XTrafGen *InstancePtr)
#define XTrafGen_GetStaticTransferDone ( InstancePtr   ) 
Value:
((XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,   \
                        XTG_STATIC_CNTL_OFFSET)) & XTG_STATIC_CNTL_TD_MASK)

XTrafGen_GetStaticTransferDone gets the state of Transfer done bit in Control register When the TraficGen is configured in Static Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Value of the Tranfer Done bit.
Note:
C-style signature: u32 XTrafGen_GetStaticTransferDone(XTrafGen *InstancePtr)
#define XTrafGen_GetStreamingProgDelay ( InstancePtr   ) 
Value:

XTrafGen_GetStreamingProgDelay Gets the Programmable Delay for AxiTrafGen in Streaming Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Propagation Delay Value
Note:
C-style signature: u16 XTrafGen_GetProgDelay(XTrafGen *InstancePtr)
#define XTrafGen_GetStreamingTransCnt ( InstancePtr   ) 
Value:

XTrafGen_GetStreamingTransCnt Gets the transfer count for AxiTrafGen in Streaming Mode

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Transfer Count value.
Note:
C-style signature: u16 XTrafGen_GetStreamingTransCnt(XTrafGen *InstancePtr)
#define XTrafGen_GetStreamingTransLen ( InstancePtr   ) 
Value:
(XTrafGen_ReadReg(InstancePtr->Config.BaseAddress,      \
                XTG_STREAM_TL_OFFSET)& XTG_STREAM_TL_TLEN_MASK)

XTrafGen_GetStreamingTransLen Gets the length of transaction for AxiTrafGen in Streaming Mode

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Transfer Length value.
Note:
C-style signature: u16 XTrafGen_GetStreamingTransLen(XTrafGen *InstancePtr)
#define XTRAFGEN_H
#define XTrafGen_IsMasterLogicDone ( InstancePtr   ) 
Value:
((XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,   \
                XTG_MCNTL_OFFSET) & XTG_MCNTL_MSTEN_MASK) ? \
                FALSE : TRUE)

XTrafGen_IsMasterLogicDone checks for traffic generator master logic completed bit.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
TRUE if master logic completed. FALSE if master logic not completed.
Note:
C-style signature: u8 XTrafGen_IsMasterLogicDone(XTrafGen *InstancePtr)
#define XTrafGen_IsStaticTransferDone ( InstancePtr   ) 
Value:
(((XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,  \
                XTG_STATIC_CNTL_OFFSET) & XTG_STATIC_CNTL_TD_MASK) == \
                XTG_STATIC_CNTL_RESET_MASK) ? \
                TRUE : FALSE)

XTrafGen_IsStaticTransferDone checks for reset value When Static Traffic genration Completed by reading Control Register.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
TRUE if reset Success full FALSE if failed to reset
Note:
C-style signature: u8 XTrafGen_IsStaticTransferDone(XTrafGen *InstancePtr)
#define XTrafGen_IsStreamingTransferDone ( InstancePtr   ) 
Value:
(((XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,  \
                XTG_STREAM_CNTL_OFFSET) & XTG_STREAM_CNTL_TD_MASK) == \
                XTG_STREAM_CNTL_RESET_MASK) ? \
                TRUE : FALSE)

XTrafGen_IsStreamingTransferDone checks for reset value When Streaming Traffic genration is Completed by reading Stream Control Register.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
TRUE if reset Success full FALSE if failed to reset
Note:
C-style signature: u8 XTrafGen_IsStreamingTransferDone(XTrafGen *InstancePtr)
#define XTrafGen_LoopDisable ( InstancePtr   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,    \
                XTG_MCNTL_OFFSET,       \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                        XTG_MCNTL_OFFSET) & ~XTG_MCNTL_LOOPEN_MASK))

XTrafGen_LoopDisable Disbales the loop bit in Master control regiset in Advanced mode/Basic mode of ATG.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None
Note:
C-style signature: void XTrafGen_LoopDisable(XTrafGen *InstancePtr)
#define XTrafGen_LoopEnable ( InstancePtr   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,    \
                XTG_MCNTL_OFFSET,       \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                        XTG_MCNTL_OFFSET) | XTG_MCNTL_LOOPEN_MASK))

XTrafGen_LoopEnable loops through the command set created using CMDRAM and PARAMRAM indefinitely in Advanced mode/Basic mode of ATG.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None
Note:
C-style signature: void XTrafGen_LoopEnable(XTrafGen *InstancePtr)
#define XTrafGen_MasterErrIntrDisable ( InstancePtr   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,  \
                XTG_MSTERR_INTR_OFFSET, \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress, \
                        XTG_MSTERR_INTR_OFFSET) &       \
                        ~XTG_MSTERR_INTR_MINTREN_MASK))

XTrafGen_MasterErrIntrDisable disables Global Master error bit.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None
Note:
C-style signature: void XTrafGen_MasterErrIntrDisable(XTrafGen *InstancePtr)
#define XTrafGen_MasterErrIntrEnable ( InstancePtr   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,  \
                XTG_MSTERR_INTR_OFFSET, \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress, \
                        XTG_MSTERR_INTR_OFFSET) |       \
                        XTG_MSTERR_INTR_MINTREN_MASK))

XTrafGen_MasterErrIntrEnable enables Global Master error bit.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None
Note:
C-style signature: void XTrafGen_MasterErrIntrEnable(XTrafGen *InstancePtr)
#define XTrafGen_ReadConfigStatus ( InstancePtr   ) 
Value:
(XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,  \
        XTG_CFG_STS_OFFSET))

XTrafGen_ReadConfigStatus reads Config status register.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Config Status Register value
Note:
C-style signature: u32 XTrafGen_ReadConfigStatus(XTrafGen *InstancePtr)
#define XTrafGen_ReadCoreRevision ( InstancePtr   ) 
Value:
((XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,   \
                XTG_MCNTL_OFFSET) & XTG_MCNTL_REV_MASK) >> \
                XTG_MCNTL_REV_SHIFT)

XTrafGen_ReadCoreRevision reads revision of core.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Core Revision Value
Note:
C-style signature: u8 XTrafGen_ReadCoreRevision(XTrafGen *InstancePtr)
#define XTrafGen_ReadErrors ( InstancePtr   ) 
Value:
(XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                XTG_ERR_STS_OFFSET) & XTG_ERR_ALL_ERR_MASK)

XTrafGen_ReadErrors read master and slave errors.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Both Master and Slave error value.
Note:
C-style signature: u32 XTrafGen_ReadErrors(XTrafGen *InstancePtr)
#define XTrafGen_ReadIdWidth ( InstancePtr   ) 
Value:
((XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,   \
                XTG_MCNTL_OFFSET) & XTG_MCNTL_MSTID_MASK) >>    \
                XTG_MCNTL_MSTID_SHIFT)

XTrafGen_ReadIdWidth reads M_ID_WIDTH.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Value of M_ID_WIDTH
Note:
C-style signature: u8 XTrafGen_ReadIdWidth(XTrafGen *InstancePtr)
#define XTrafGen_ResetStreamingRandomLen ( InstancePtr   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,           \
                XTG_STREAM_CFG_OFFSET,                                  \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                XTG_STREAM_CFG_OFFSET) & ~XTG_STREAM_CFG_RANDL_MASK)))

XTrafGen_ResetStreamingRandomLen resets the random transaction length for AxiTrafGen in Streaming Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None.
Note:
C-style signature: void XTrafGen_ResetStreamingRandomLen(XTrafGen *InstancePtr)
#define XTrafGen_SetStaticBurstLen ( InstancePtr,
Value   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,   \
                XTG_STATIC_LEN_OFFSET,Value))

XTrafGen_SetStaticBurstLen Configures the Burst Length for AxiTrafGen In Static Mode

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Value is the Burst length to set in the Static length register.
Returns:
None.
Note:
C-style signature: void XTrafGen_SetStaticBurstLen(XTrafGen *InstancePtr, u32 Value)
#define XTrafGen_SetStaticTransferDone ( InstancePtr   ) 
Value:
XTrafGen_WriteReg(InstancePtr->Config.BaseAddress,              \
                XTG_STATIC_CNTL_OFFSET,                                 \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                XTG_STATIC_CNTL_OFFSET) | XTG_STATIC_CNTL_TD_MASK))

XTrafGen_SetStaticTransferDone sets the Transfer done bit in Control register When AxiTrafGen is Configured in Static Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None.
Note:
C-style signature: void XTrafGen_SetStaticTransferDone(XTrafGen *InstancePtr)
#define XTrafGen_SetStreamingProgDelay ( InstancePtr,
Value   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,   \
                XTG_STREAM_CFG_OFFSET,  \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress, \
                 XTG_STREAM_CFG_OFFSET)|(Value << XTG_STREAM_CFG_PDLY_SHIFT)) \
                 & XTG_STREAM_CFG_PDLY_MASK))

XTrafGen_SetStreamingProgDelay Configures the Programmable Delay for AxiTrafGen in Streaming Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Value is the value that's need to be configure in the Stream Config Register.
Returns:
None.
Note:
C-style signature: void XTrafGen_SetStreamingProgDelay(XTrafGen *InstancePtr, u32 Value)
#define XTrafGen_SetStreamingRandomLen ( InstancePtr,
Value   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,           \
                XTG_STREAM_CFG_OFFSET,                                  \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                XTG_STREAM_CFG_OFFSET) | Value)))

XTrafGen_SetStreamingRandomLen Configures the random transaction length for AxiTrafGen in Streaming Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Value is the random length that's need to be Configure in the Streaming Config register.
Returns:
None.
Note:
C-style signature: void XTrafGen_SetStreamingRandomLen(XTrafGen *InstancePtr, u32 Value)
#define XTrafGen_SetStreamingTdestPort ( InstancePtr,
Value   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,  \
                XTG_STREAM_CFG_OFFSET,  \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress, \
                XTG_STREAM_CFG_OFFSET)|(Value << XTG_STREAM_CFG_TDEST_SHIFT)) \
                & XTG_STREAM_CFG_TDEST_MASK))

XTrafGen_SetStreamingTdestPort Configures the Value to drive on TDEST port for Axi TrafGen in Streaming Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Value is the Port value that's need to be set.
Returns:
None.
Note:
C-style signature: void XTrafGen_SetStreamingTdestPort(XTrafGen *InstancePtr, u8 Value)
#define XTrafGen_SetStreamingTransCnt ( InstancePtr,
Value   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,   \
                XTG_STREAM_TL_OFFSET,   \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                 XTG_STREAM_TL_OFFSET) |((Value << XTG_STREAM_TL_TCNT_SHIFT) \
                 & XTG_STREAM_TL_TCNT_MASK))))

XTrafGen_SetStreamingTransCnt Configures the transfer count for AxiTrafGen in Streaming Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Value is the transfer length that needs to be configured in Transfer length register.
Returns:
None.
Note:
C-style signature: void XTrafGen_SetStreamingTransCnt(XTrafGen *InstancePtr, u32 Value)
#define XTrafGen_SetStreamingTransferDone ( InstancePtr   ) 
Value:
XTrafGen_WriteReg(InstancePtr->Config.BaseAddress,   \
                XTG_STREAM_CNTL_OFFSET,                         \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress, \
                XTG_STREAM_CNTL_OFFSET) | XTG_STREAM_CNTL_TD_MASK))

XTrafGen_SetTransferDone sets the Transfer done bit in Control register When AxiTrafGen is Configured in Streaming Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None.
Note:
C-style signature: void XTrafGen_SetStreamingTransferDone(XTrafGen *InstancePtr)
#define XTrafGen_SetStreamingTransLen ( InstancePtr,
Value   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,           \
                XTG_STREAM_TL_OFFSET,                                   \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                XTG_STREAM_TL_OFFSET) | Value)))

XTrafGen_SetStreamingTransLen Configures the length of transaction for AxiTrafGen in Streaming Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Value is the transfer length to set in the transfer length Register.
Returns:
None.
Note:
C-style signature: void XTrafGen_SetStreamingTransLen(XTrafGen *InstancePtr, u32 Value)
#define XTrafGen_SlaveErrIntrDisable ( InstancePtr   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,  \
                XTG_SCNTL_OFFSET, \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress, \
                        XTG_SCNTL_OFFSET) &     \
                        ~XTG_SCNTL_ERREN_MASK))

XTrafGen_SlaveErrIntrDisable disables Global Slave error bit.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None
Note:
C-style signature: void XTrafGen_SlaveErrIntrDisable(XTrafGen *InstancePtr)
#define XTrafGen_SlaveErrIntrEnable ( InstancePtr   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,  \
                XTG_SCNTL_OFFSET, \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress, \
                        XTG_SCNTL_OFFSET) | XTG_SCNTL_ERREN_MASK))

XTrafGen_SlaveErrIntrEnable enables Global Slave error bit.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None
Note:
C-style signature: void XTrafGen_SlaveErrIntrEnable(XTrafGen *InstancePtr)
#define XTrafGen_StartMasterLogic ( InstancePtr   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,    \
                XTG_MCNTL_OFFSET,       \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                        XTG_MCNTL_OFFSET) | XTG_MCNTL_MSTEN_MASK))

XTrafGen_StartMasterLogic starts traffic generator master logic.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None
Note:
C-style signature: void XTrafGen_StartMasterLogic(XTrafGen *InstancePtr)
#define XTrafGen_StaticDisable ( InstancePtr   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,           \
                XTG_STATIC_CNTL_OFFSET,                                 \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                 XTG_STATIC_CNTL_OFFSET) & XTG_STATIC_CNTL_RESET_MASK)))

XTrafGen_StaticDisable disables the traffic genration on the Axi TrafGen when the core is configured in Static Mode

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None.
Note:
C-style signature: void XTrafGen_StaticDisable(XTrafGen *InstancePtr)
#define XTrafGen_StaticEnable ( InstancePtr   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,           \
                XTG_STATIC_CNTL_OFFSET,                                 \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                 XTG_STATIC_CNTL_OFFSET) | XTG_STATIC_CNTL_STEN_MASK)))

XTrafGen_StaticEnable enable the traffic genration when the core is configured Static Mode.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None.
Note:
C-style signature: void XTrafGen_StaticEnable(XTrafGen *InstancePtr)
#define XTrafGen_StaticVersion ( InstancePtr   ) 
Value:

XTrafGen_StaticVersion returns the version value for the Axi TrafGen When configured in Static Mode

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Static version value.
Note:
C-style signature: u32 XTrafGen_StaticVersion(XTrafGen *InstancePtr)
#define XTrafGen_StreamDisable ( InstancePtr   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,   \
                XTG_STREAM_CNTL_OFFSET,                         \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                XTG_STREAM_CNTL_OFFSET) & XTG_STREAM_CNTL_RESET_MASK)))

XTrafGen_StreamDisable Disable the traffic genration on the Axi TrafGen When core is configured in Streaming Mode

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None.
Note:
C-style signature: void XTrafGen_StreamDisable(XTrafGen *InstancePtr)
#define XTrafGen_StreamEnable ( InstancePtr   ) 
Value:
(XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,           \
                XTG_STREAM_CNTL_OFFSET,                                 \
                (XTrafGen_ReadReg((InstancePtr)->Config.BaseAddress,    \
                XTG_STREAM_CNTL_OFFSET) | XTG_STREAM_CNTL_STEN_MASK)))

XTrafGen_StreamEnable enable the traffic genration on the Axi TrafGen When the core is configured in Streaming Mode

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
None.
Note:
C-style signature: void XTrafGen_StreamEnable(XTrafGen *InstancePtr)
#define XTrafGen_StreamVersion ( InstancePtr   ) 
Value:

XTrafGen_StreamVersion returns the version value for the Axi TrafGen When configured in Streaming Mode

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
Streaming Version Value.
Note:
C-style signature: u8 XTrafGen_StreamVersion(XTrafGen *InstancePtr)
#define XTrafGen_WriteSlaveControlReg ( InstancePtr,
Value   ) 
Value:
XTrafGen_WriteReg((InstancePtr)->Config.BaseAddress,    \
                XTG_SCNTL_OFFSET, Value)

XTrafGen_WriteSlaveControlReg enables control bits of Slave Control Register. This API will write the value passed from the user.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Value is the Slave Control Register value to set
Returns:
None
Note:
C-style signature: void XTrafGen_WriteSlaveControlReg(XTrafGen *InstancePtr, u32 Value)

Function Documentation

void XTrafGen_AccessMasterRam ( XTrafGen InstancePtr,
u32  Offset,
int  Length,
u8  RdWrFlag,
u32 *  Data 
)

Write or Read Master RAM

The MSTRAM has 8 KB of internal RAM used for the following:

  • Take data from this RAM for write transactions
  • Store data to this RAM for read transaction
Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Offset is the offset value in Master RAM.
Length is the size of data to write/read.
RdWrFlag specifies whether to write or read
Data is the pointer to array which contains data to write or reads data into.
int XTrafGen_AddCommand ( XTrafGen InstancePtr,
XTrafGen_Cmd CmdPtr 
)

Add a command to the software list of commands.

This function prepares the four Command Words and one Parameter Word from the Command structure passed from the user application. It then adds to a list of commands (maintained in the software). Both CMDRAM and PARAMRAM are divided into two regions, one for reads and one for writes. Each region can hold 256 commands with each entry containing four Command RAM words and one Parameter RAM word.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
CmdPtr is a pointer to Command structure.
Returns:
  • XST_SUCCESS if successful
  • XST_FAILURE if reached max number of command entries
int XTrafGen_CfgInitialize ( XTrafGen InstancePtr,
XTrafGen_Config Config,
u32  EffectiveAddress 
)

This function initializes a AXI Traffic Generator device. This function must be called prior to using a AXI Traffic Generator Device. Initializing a engine includes setting up the register base address, setting up the instance data, and ensuring the hardware is in a quiescent state.

Parameters:
InstancePtr is a pointer to the Axi Traffic Generator instance to be worked on.
CfgPtr references the structure holding the hardware configuration for the Axi Traffic Generator core to initialize.
EffectiveAddr is the device base address in the virtual memory address space. The caller is responsible for keeping the address mapping from EffectiveAddr to the device physical base address unchanged once this function is invoked. Unexpected errors may occur if the address mapping changes after this function is called. If address translation is not used, use Config->BaseAddress for this parameters, passing the physical address instead.
Returns:
  • XST_SUCCESS for successful initialization
  • XST_INVALID_PARAM if pointer to the configuration structure is NULL
int XTrafGen_EraseAllCommands ( XTrafGen InstancePtr  ) 

Erase all Command Entry values

This function erases all the 256 entries of both write and read regions with each entry containing four command words and parameter word.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
  • XST_SUCCESS if successful
  • XST_FAILURE if programming internal RAMs failed
int XTrafGen_GetLastValidIndex ( XTrafGen InstancePtr,
u32  RdWrFlag 
)

Get last Valid Command Index of Write/Read region

The last valid command index is used to set 'my_depend' and 'other_depend' fields of the Command RAM (Word 2).

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
RdWrFlag specifies a Read or Write Region
Returns:
  • Last Valid Command Index
XTrafGen_Config* XTrafGen_LookupConfig ( u32  DeviceId  ) 

Look up the hardware configuration for a device instance

Parameters:
DeviceId is the unique device ID of the device to lookup for
Returns:
The configuration structure for the device. If the device ID is not found,a NULL pointer is returned.
Note:
None
void XTrafGen_PrintCmds ( XTrafGen InstancePtr  ) 

Display Command Entry values

This function prints all the 256 entries of both write and read regions with each entry containing four command words and parameter word.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
int XTrafGen_WriteCmdsToHw ( XTrafGen InstancePtr  ) 

Write Commands to internal Command and Parameter RAMs

This function writes all the prepared commands to hardware.

Parameters:
InstancePtr is a pointer to the Axi TrafGen instance to be worked on.
Returns:
  • XST_SUCCESS if successful
  • XST_FAILURE if programming internal RAMs failed