FPGA API Types and Constants
Parent page: Technical Reference - FPGA API
FPGA API: Enumerated Types and Constants Reference
The FPGA API Types and Constants reference includes the following sections and content:
FPGA Enumerated Types
Nexus enumerated types
The enumerated types are used for many of the FPGA interfaces methods which are covered in this section. For example the INexusCore interface has a Function GetCoreKind : TNexusCoreKind;. You can use this Enumerated Types section to check what the range is for the TNexusCoreKind type.
Nexus Control Bits
Nexus_Control_StepCounterBreakpointEnable = Bit_D7;
Nexus_Control_ExternalAccess = Bit_D6;
Nexus_Control_PeripheralClockEnable = Bit_D6;
Nexus_Control_Reset = Bit_D5;
Nexus_Control_DebugEnable = Bit_D4;
Nexus_Control_DebugAcknowledge = Bit_D3;
Nexus_Control_DebugRequest = Bit_D2;
Nexus_Control_DebugStep = Bit_D1;
Nexus_Control_DebuggerProgramSelect = Bit_D0;
Nexus Instruction Registers
JTAG_ExTest = $00;
JTAG_IdCode = $01;
JTAG_Reset = $02;
JTAG_Memac = $0A;
JTAG_NexusEnable = $0B;
JTAG_Bypass = $0F;
Nexus Memory Access Bits
Nexus_MemAccess_MemoryRead = Bit_D2;
Nexus_MemAccess_MemoryWrite = Bit_D1;
Nexus_MemAccess_Data = 0;
Nexus_MemAccess_Program = Bit_D0;
Nexus_MemAccess_ReadData = Nexus_MemAccess_MemoryRead Or Nexus_MemAccess_Data;
Nexus_MemAccess_ReadProgram = Nexus_MemAccess_MemoryRead Or Nexus_MemAccess_Program;
Nexus_MemAccess_WriteData = Nexus_MemAccess_MemoryWrite Or Nexus_MemAccess_Data;
Nexus_MemAccess_WriteProgram= Nexus_MemAccess_MemoryWrite Or Nexus_MemAccess_Program;
Nexus_MemAccess_Inactive = 0;
TBitValue
TBitValue = (eBit_Undefined,eBit_0,eBit_1,eBit_X);
TCellFunction
TCellFunction =
(
eCellFunction_Undefined,
eCellFunction_Input,
eCellFunction_Clock,
eCellFunction_Output2,
eCellFunction_Output3,
eCellFunction_Control,
eCellFunction_ControlR,
eCellFunction_Internal,
eCellFunction_BiDir,
eCellFunction_ObserveOnly
);
TCellKind
TCellKind =
(
eCellKind_Undefined,
eCellKind_BC_0,
eCellKind_BC_1,
eCellKind_BC_2,
eCellKind_BC_3,
eCellKind_BC_4,
eCellKind_BC_5,
eCellKind_BC_6,
eCellKind_BC_7,
eCellKind_BC_8,
eCellKind_BC_9,
eCellKind_BC_10
);
TDeviceIOStandardDriveStrength
TDeviceIOStandardDriveStrength = (e2m, e3m, e4m, e6m, e7m, e8m, e10m, e12m, e14m, e16m, e18m, e20m, e24m);
TDeviceIOStandardSlewType
TDeviceIOStandardSlewType = (eSlow, eFast);
TDeviceIOStandardType
TDeviceIOStandardType =
(eLVTTL15,
eLVTTL18,
eLVTTL25,
eLVTTL33,
eLVCMOS15,
eLVCMOS18,
eLVCMOS25,
eLVCMOS33,
eLVCMOS5,
ePCI33_3,
ePCI33_5,
ePCI66,
ePCIX_3,
eCOMPACTPCI_3,
eSSTL3I,
eSSTL3II,
eSSTL2I,
eSSTL2II,
eSSTL18I,
eSSTL18II,
eGTL,
eGTLP,
eHSTLI,
eHSTLII,
eHSTLIII,
eHSTLIV,
eHSTLI_18,
eHSTLII_18,
eHSTLIII_18,
eHSTLIV_18,
eCTT,
eAGP1x,
eAGP2x,
eTTL,
eLVCMOS12,
eGTL_DCI,
eGTLP_DCI,
eHSTLI_DCI,
eHSTLII_DCI,
eHSTLIII_DCI,
eHSTLIV_DCI,
eHSTLI_18_DCI,
eHSTLII_18_DCI,
eHSTLIII_18_DCI,
eHSTLIV_18_DCI,
eDHSTLI,
eDHSTLII,
eDHSTLIII,
eDHSTL18I,
eDHSTL18II,
eDHSTL18III,
eHTT,
ePCML,
ePCML15,
eSSTL18I_DCI,
eSSTL18II_DCI,
eSSTL2I_DCI,
eSSTL2II_DCI,
eSSTL3I_DCI,
eSSTL3II_DCI,
eLVCMOS15_DCI,
eLVCMOS18_DCI,
eLVCMOS25_DCI,
eLVCMOS33_DCI,
eLVCMOS15_DCI_DV2,
eLVCMOS18_DCI_DV2,
eLVCMOS25_DCI_DV2,
eLVCMOS33_DCI_DV2,
eLVDS,
eLVPECL,
eDSSTL18I,
eDSSTL18II,
eDSSTL2I,
eDSSTL2II,
eDSSTL3I,
eDSSTL3II,
eBLVDS25,
eLVPECL25,
eRSDS25,
eLVDS33,
eLVDS25_DCI,
eLVDS33_DCI,
eLVDSEXT25,
eLVDSEXT33,
eLVDSEXT25_DCI,
eLVDSEXT33_DCI,
eLDT,
eULVDS25,
eLDT_DT,
eLVDS_DT,
eLVDSEXT25_DT,
eULVDS25_DT,
eLVCMOS33_1,
eLVCMOS33_2
);
TDevicePinType
TDevicePinType = (eIOPin, eVREFPin, eCLKPin, eSpecialPin);
TDeviceState
TDeviceState = (eDeviceState_Unknown,
eDeviceState_Reset,
eDeviceState_Programmed,
eDeviceState_Programmed_ReadProtected,
eDeviceState_Programmed_WriteProtected,
eDeviceState_Programmed_ReadWriteProtected);
TDisableResult
TDisableResult =
(
eDisableResult_Undefined,
eDisableResult_HiZ,
eDisableResult_Weak0,
eDisableResult_Weak1,
eDisableResult_Pull0,
eDisableResult_Pull1,
eDisableResult_Keeper
);
TEdgePolarity
TEdgePolarity = (eEdgeRising,eEdgeFalling);
TFlowRunResult
TFlowRunResult = (eFlowRun_DidNotRun, eFlowRun_Cancelled, eFlowRun_Failure, eFlowRun_Success);
TMemoryElement
TMemoryElement = LongWord;
TMemoryKind
TMemoryKind = (
eMemoryKind_Program,
eMemoryKind_Data
);
TNexusAction
TNexusAction =
(
eNexusAction_None,
eNexusAction_ProcessorPause,
eNexusAction_ProcessorContinue,
eNexusAction_ProcessorReset,
eNexusAction_ProcessorSingleStep,
eNexusAction_ProgramCompile,
eNexusAction_ProgramDownload,
eNexusAction_ProgramDebug,
eNexusAction_ShowAboutDialog,
eNexusAction_DeviceReset,
eNexusAction_DeviceDownload,
eNexusAction_ShowViewer,
eNexusAction_ChooseFileAndDownload,
eNexusAction_ProcessorMenu,
eNexusAction_ConfigureJTAGIdMapping,
eNexusAction_Flash_DeviceReset,
eNexusAction_Flash_ChooseFileAndDownload
);
TNexusActionTarget
TNexusActionTarget =( eNexusActionTarget_None,
eNexusActionTarget_SoftDevice,
eNexusActionTarget_HardDevice,
eNexusActionTarget_SoftChain,
eNexusActionTarget_HardChain,
eNexusActionTarget_BoardDevice,
eNexusActionTarget_BoardChain
);
TNexusBreakPointKind
TNexusBreakpointKind =
(
eBreakpointKind_Program_FetchAnyOpcode,
eBreakpointKind_Program_FetchSpecificOpcode,
eBreakpointKind_DataAtAddress_AnyValue,
eBreakpointKind_DataAtAddress_SpecificValue
);
TNexusCoreKind
TNexusCoreKind = (eNexusCoreKind_None,
eNexusCoreKind_Processor_OCDS,
eNexusCoreKind_Processor_Standard,
eNexusCoreKind_Memory_Program,
eNexusCoreKind_Memory_Data,
eNexusCoreKind_Instrument,
eNexusCoreKind_ClockManager);
TNexusNotification
TNexusNotification = Class(TNotificationWithCode, INexusNotification);
TProcessFlowState
TProcessFlowState = (eFlowState_UpToDate, eFlowState_OutOfDate, eFlowState_Missing, eFlowState_None);
TRegisterValue
TRegisterValue = LongWord;
TScanClockHaltMode
TScanClockHaltMode = (eScanClockHaltMode_None,eScanClockHaltMode_Low,eScanClockHaltMode_Both);
TScanPinKind
TScanPinKind = (eScanPinKind_Normal,
eScanPinKind_TRST,
eScanPinKind_TCK,
eScanPinKind_TDO,
eScanPinKind_TDI,
eScanPinKind_TMS,
eScanPinKind_Power,
eScanPinKind_Ground);
TTapState
TTapState =
(
TapState_Undefined,
TEST_LOGIC_RESET,
RUN_TEST_IDLE,
SELECT_DR,
CAPTURE_DR,
SHIFT_DR,
EXIT1_DR,
PAUSE_DR,
EXIT2_DR,
UPDATE_DR,
SELECT_IR,
CAPTURE_IR,
SHIFT_IR,
EXIT1_IR,
PAUSE_IR,
EXIT2_IR,
UPDATE_IR
);
TTargetBoardKind
TTargetBoardKind= (eTargetBoardKind_Unknown,
eTargetBoardKind_Xilinx,
eTargetBoardKind_Altera,
eTargetBoardKind_NanoBoard_NB1_Rev1,
eTargetBoardKind_NanoBoard_NB1_Rev2,
eTargetBoardKind_BurchBoard);
FPGA Constants
Bit Constants
Bit31 = $80000000;
Bit30 = $40000000;
Bit29 = $20000000;
Bit28 = $10000000;
Bit27 = $08000000;
Bit26 = $04000000;
Bit25 = $02000000;
Bit24 = $01000000;
Bit23 = $00800000;
Bit22 = $00400000;
Bit21 = $00200000;
Bit20 = $00100000;
Bit19 = $00080000;
Bit18 = $00040000;
Bit17 = $00020000;
Bit16 = $00010000;
Bit15 = $00008000;
Bit14 = $00004000;
Bit13 = $00002000;
Bit12 = $00001000;
Bit11 = $00000800;
Bit10 = $00000400;
Bit9 = $00000200;
Bit8 = $00000100;
Bit7 = $00000080;
Bit6 = $00000040;
Bit5 = $00000020;
Bit4 = $00000010;
Bit3 = $00000008;
Bit2 = $00000004;
Bit1 = $00000002;
Bit0 = $00000001;
Nexus Notification Codes
cNexusDeviceStatusesChanged = 0;
cNexusHardDeviceChainChanged = 1;
cNexusSoftDeviceChainChanged = 2;
cNexusCurrentHardDeviceChanged = 3;
cNexusCurrentSoftDeviceChanged = 4;
cNexusProjectCoreTreeChanged = 5;
cNexusProcessFlowStatusChanged = 6;
cNexusConnectionStatusChanged = 7;
cNexusCurrentBoardDeviceChanged = 8;
cNexusBoardDeviceChainChanged = 9;
cNexusProjectListChanged = 10;
cNexusOnIdle = 11;
cNexusBeginUpdate = 12;
cNexusEndUpdate = 13;
Nexus parameter names
Device Names
cNexusParameterName_Device = 'NEXUS_JTAG_DEVICE';
cNexusParameterName_Connector = 'NEXUS_JTAG_CONNECTOR';
cNexusParameterName_Order = 'NEXUS_JTAG_ORDER';
cNexusParameterName_Index = 'NEXUS_JTAG_INDEX';
cNexusParameterName_Core = 'NEXUS_CORE';
cNexusParameterName_FPGA = 'NEXUS_FPGA_DEVICE';
Memory Parameter Names
cNexusParameterName_MemoryDepth = 'Memory_Depth';
cNexusParameterName_MemoryWidth = 'Memory_Width';
cNexusParameterName_MemoryDepthA = 'Memory_DepthA';
cNexusParameterName_MemoryWidthA = 'Memory_WidthA';
cNexusParameterName_MemoryDepthB = 'Memory_DepthB';
cNexusParameterName_MemoryWidthB = 'Memory_WidthB';
cNexusParameterName_MemoryType = 'Memory_Type';
cNexusParameterName_MemoryUse = 'Memory_Use';
cNexusParameterName_MemoryClockEdge = 'Memory_ClockEdge';
cNexusParameterName_MemoryEnablePin = 'Memory_EnablePin';
cNexusParameterName_MemoryContentFile = 'Memory_ContentFile';
cNexusParameterName_MemoryProgramFile = 'Memory_ProgramFile';
cNexusParameterName_MemoryResetPin = 'Memory_ResetPin';
cNexusParameterName_MemoryByteIndex = 'Memory_ByteIndex';
cNexusParameterName_MemoryHalfIndex = 'Memory_HalfIndex';
cNexusParameterName_MemoryByteWrites = 'Memory_ByteWrites';
Clock Names
cNexusParameterName_ClockCount = 'Clk_Count';
cNexusParameterName_ClockInputFrequency = 'Clk_InputFreq_MHz';
cNexusParameterName_ClockAOperation = 'ClkA_Operation';
cNexusParameterName_ClockBOperation = 'ClkB_Operation';
cNexusParameterName_ClockCOperation = 'ClkC_Operation';
cNexusParameterName_ClockDOperation = 'ClkD_Operation';
Other constants
cMemoryElementZero = 0;
cMemoryAddressZero = 0;
cStandardDriveStrengths : Array[TDeviceIOStandardDriveStrength] Of TDynamicString =
('2mA', '3mA', '4mA', '6mA', '7mA', '8mA', '10mA', '12mA', '14mA', '16mA', '18mA', '20mA', '24mA');
cSupportsCPLDDevice = 'CPLD';
cSupportsFPGADevice = 'FPGA';
cSupportsPROMDevice = 'PROM';