HSJTAGStreams Class Reference

Class to manage the jtag vectors, both IR and DR. More...

#include <HSJTAGStreams.h>

List of all members.

Public Member Functions

 HSJTAGStreams (void)
 ~HSJTAGStreams (void)
UInt32 GetModeSel (void)
 returns mode sel (I need to ask Iavan what is this ModeSel)
void SetModeSel (UInt32 Mode)
 method to set the ModeSel
UInt8 GetJTOperation (void)
 Returns the current jtag operation (IR or DR).
void SetJTOperation (UInt8 OperTemp)
 Sets the current JTAG operation (IR or DR).
UInt8 GetSkipMode (void)
 gets the current skip mode in the mcm for this scan
void SetSkipMode (UInt8 Mode)
 set the current skip mode of this mcm for this scan
void SetScanVector (UInt8 SelVector)
 sets one instruction for an IR scan
UInt32IRGenerator (void)
 generates the IR vector to send to router jtag player
UInt32DRGenerator (UInt32 *DataIn, bool ConstValue)
 generates the DR vector to send to the router player
UInt32 ** DecodeJTStream (UInt32 *DRVect)
 decodes a DR vector comming from the routers's jtag player
UInt32 ** SetJTSPixelDAC (UInt8 *DACn, UInt8 *DACValues, UInt32 ChipSelect, bool All, UInt32 pixInChain=1023)
 function to generate the jtag vectors to set one pixel dac
UInt32 ** SetJTSPixelAllDAC (UInt32 ChipSelect, UInt8 *DACVect, UInt32 pixInChain=1023)
 Function get the jtag vectors to set all pixel 44*10 dacs in one halfstave.
UInt32 ** SetJTSPixelMatrix (UInt32 ChipSelect, UInt32 *Matrix, bool All, bool TP, UInt32 pixInChain=1023)
 Function to get the jtag vectors to set a pixel matrix i nthe pixel chips, test pulse or mask.
UInt32 ** SetJTSApiDAC (UInt8 *ApiDac, UInt32 pixInChain=1023)
 function to get the jtag vectors to set the analog pilot dacs
UInt32 ** SetJTSApiADCStartConv (UInt32 pixInChain=1023)
 function to get the jtag vectors to send the start conversion of the API ADC
UInt32 ** SetJTSDpiConfReg (UInt32 *DpiReg, UInt32 pixInChain=1023)
 method to get the vectors for digital pilot registers
UInt32 ** SetJTSDpiInternalReg (UInt32 *DpiReg, UInt32 pixInChain=1023)
 method to get the vectors for setting the internal dpi register
UInt32 ** GetJTSApiDAC (UInt32 pixInChain=1023)
 method to get the vectors to read the analog pilot dacs
UInt32 ** GetJTSApiADC (UInt32 pixInChain=1023)
 method to get the vectors to read the analog pilot ADCs
UInt32 ** GetJTSDpiConfReg (UInt32 pixInChain=1023)
 method to get the vectors to read the digital pilot registers
UInt32 ** GetJTSDpiInternalReg (UInt32 pixInChain=1023)
 method to get the vec tors to read the DPI internal registers
UInt32GetJTSResetPixel (UInt32 ChipSelect, UInt32 pixInChain=1023)
 method to get the vector to send IR reset to the pixels

Private Member Functions

UInt32 GetInstruction (UInt8 position)
 method to get the IR instruction of a certain position in the JTAG chain
UInt32 AppendData (UInt32 *Stream, UInt32 bitNum, UInt32 *Data)
 method to append a certain ammount of bits from one array to another
UInt32ExtractData (UInt32 *Stream, UInt32 StartPosition, UInt32 Type)
 method to extract data from an array

Private Attributes

UInt32 IRIstrucVect [NInstructions][13]
UInt32 bitNumber
UInt32 ModeSel
UInt32ScanVector
UInt8 JTOperation
UInt8 SkipMode
 skip mode in the mc
UInt32 GOLConfTemp
 temporary pointer/keeper of data
UInt8APIConfTemp
 temporary pointer/keeper of data CAUTION: dangerous
UInt32DPIConfTemp
 temporary pointer/keeper of data CAUTION: dangerous


Detailed Description

Class to manage the jtag vectors, both IR and DR.

This class keeps in memory all IR vectors for all operations in the detector, generates the DR vectors acording to the elements included in the chain, checking also the IR instruction. If a device is put in bypass it puts automatically the 1 bit cell IRIstrucVect[i][j]: [i] select the environment and the operation to do: 0 is used for default load HS default. first step where you select the global register. 1 is used for write in the proper selected register. second step for load register. 2 for mask or set TP 3 ID code 4 Bypass 5 user define vector 6 read vector


Constructor & Destructor Documentation

HSJTAGStreams::HSJTAGStreams ( void   ) 

HSJTAGStreams::~HSJTAGStreams ( void   ) 


Member Function Documentation

UInt32 HSJTAGStreams::GetInstruction ( UInt8  position  )  [private]

method to get the IR instruction of a certain position in the JTAG chain

Parameters:
position position in the jtag chain : 0-gol, 1-api 2..11-pixel chip, 12-DPI
Returns:
IR instruction for the device in this jtag scan

UInt32 HSJTAGStreams::AppendData ( UInt32 Stream,
UInt32  bitNum,
UInt32 Data 
) [private]

method to append a certain ammount of bits from one array to another

it uses bitNumber internal variable to know where to start to append the data

Parameters:
Stream data output, where de data will be appended
bitNum number of bits to append
Data input data, data to be appended to the first array
Returns:
returns always zero for the moment

UInt32 * HSJTAGStreams::ExtractData ( UInt32 Stream,
UInt32  StartPosition,
UInt32  Type 
) [private]

method to extract data from an array

It know the ammount of bits to extract by the Type of IR instruction supplied

Parameters:
Stream input data
StartPositon position to start taking data
Type type of jtag instruction, this tells the ammount of bits to extract from the data

UInt32 HSJTAGStreams::GetModeSel ( void   )  [inline]

returns mode sel (I need to ask Iavan what is this ModeSel)

void HSJTAGStreams::SetModeSel ( UInt32  Mode  )  [inline]

method to set the ModeSel

UInt8 HSJTAGStreams::GetJTOperation ( void   )  [inline]

Returns the current jtag operation (IR or DR).

void HSJTAGStreams::SetJTOperation ( UInt8  OperTemp  )  [inline]

Sets the current JTAG operation (IR or DR).

UInt8 HSJTAGStreams::GetSkipMode ( void   )  [inline]

gets the current skip mode in the mcm for this scan

void HSJTAGStreams::SetSkipMode ( UInt8  Mode  )  [inline]

set the current skip mode of this mcm for this scan

void HSJTAGStreams::SetScanVector ( UInt8  SelVector  )  [inline]

sets one instruction for an IR scan

UInt32 * HSJTAGStreams::IRGenerator ( void   ) 

generates the IR vector to send to router jtag player

UInt32 * HSJTAGStreams::DRGenerator ( UInt32 DataIn,
bool  ConstValue 
)

generates the DR vector to send to the router player

UInt32 ** HSJTAGStreams::DecodeJTStream ( UInt32 DRVect  ) 

decodes a DR vector comming from the routers's jtag player

Parameters:
DRVect array with the DR data
Returns:
returns a double dimmension array with the decoded data this depends of the type of scan made

UInt32 ** HSJTAGStreams::SetJTSPixelDAC ( UInt8 DACn,
UInt8 DACValues,
UInt32  ChipSelect,
bool  All,
UInt32  pixInChain = 1023 
)

function to generate the jtag vectors to set one pixel dac

Returns:
2 dimension array with jtag ir, dr,ir,dr vectors to set the dacs
Parameters:
ChN - channel number
DACn - dac number to chane
DACValues - array with the different values for every chip in chain
ChipSelect- 10 bit number saying which chips we want to change in this scan (00000001) means we will put all chips except number 0 in bypass
All - specifies if we are setting all chips with the same value (DACValues[0])
pixInChain - parameter defining the chips in chain (if any chip is being skiped in the chain)

UInt32 ** HSJTAGStreams::SetJTSPixelAllDAC ( UInt32  ChipSelect,
UInt8 DACVect,
UInt32  pixInChain = 1023 
)

Function get the jtag vectors to set all pixel 44*10 dacs in one halfstave.

Returns:
2 dimension array with 90 arrays 0,1 ir vectors for IRSelEnable and IRSelGlobal
Parameters:
ChN - channel number
ChipSelect- 10 bit number saying which chips we want to change in this scan (00000001) means we will put all chips except number 0 in bypass
DACVect - array with the different values 44*10 dac values
pixInChain - parameter defining the chips in chain (if any chip is being skiped in the chain)

UInt32 ** HSJTAGStreams::SetJTSPixelMatrix ( UInt32  ChipSelect,
UInt32 Matrix,
bool  All,
bool  TP,
UInt32  pixInChain = 1023 
)

Function to get the jtag vectors to set a pixel matrix i nthe pixel chips, test pulse or mask.

UInt32 ** HSJTAGStreams::SetJTSApiDAC ( UInt8 ApiDac,
UInt32  pixInChain = 1023 
)

function to get the jtag vectors to set the analog pilot dacs

UInt32 ** HSJTAGStreams::SetJTSApiADCStartConv ( UInt32  pixInChain = 1023  ) 

function to get the jtag vectors to send the start conversion of the API ADC

UInt32 ** HSJTAGStreams::SetJTSDpiConfReg ( UInt32 DpiReg,
UInt32  pixInChain = 1023 
)

method to get the vectors for digital pilot registers

UInt32 ** HSJTAGStreams::SetJTSDpiInternalReg ( UInt32 DpiReg,
UInt32  pixInChain = 1023 
)

method to get the vectors for setting the internal dpi register

UInt32 ** HSJTAGStreams::GetJTSApiDAC ( UInt32  pixInChain = 1023  ) 

method to get the vectors to read the analog pilot dacs

UInt32 ** HSJTAGStreams::GetJTSApiADC ( UInt32  pixInChain = 1023  ) 

method to get the vectors to read the analog pilot ADCs

UInt32 ** HSJTAGStreams::GetJTSDpiConfReg ( UInt32  pixInChain = 1023  ) 

method to get the vectors to read the digital pilot registers

UInt32** HSJTAGStreams::GetJTSDpiInternalReg ( UInt32  pixInChain = 1023  ) 

method to get the vec tors to read the DPI internal registers

UInt32 * HSJTAGStreams::GetJTSResetPixel ( UInt32  ChipSelect,
UInt32  pixInChain = 1023 
)

method to get the vector to send IR reset to the pixels


Member Data Documentation

UInt32 HSJTAGStreams::IRIstrucVect[NInstructions][13] [private]

UInt32 HSJTAGStreams::bitNumber [private]

UInt32 HSJTAGStreams::ModeSel [private]

UInt32* HSJTAGStreams::ScanVector [private]

UInt8 HSJTAGStreams::JTOperation [private]

Jtag operation 0 = DAC operation 1 = DAC with sense on 2 = set TP 3 = setMask

UInt8 HSJTAGStreams::SkipMode [private]

skip mode in the mc

UInt32 HSJTAGStreams::GOLConfTemp [private]

temporary pointer/keeper of data

UInt8* HSJTAGStreams::APIConfTemp [private]

temporary pointer/keeper of data CAUTION: dangerous

UInt32* HSJTAGStreams::DPIConfTemp [private]

temporary pointer/keeper of data CAUTION: dangerous


The documentation for this class was generated from the following files:
Generated on Tue Dec 1 12:09:52 2009 for SPD FED Server by  doxygen 1.5.4