Old Content - visit altium.com/documentation

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 FPGA Constants
Nexus enumerated types
Nexus Control Bits
Nexus Instruction Registers
Nexus Memory Access Bits
TBitValue
TCellFunction
TCellKind
TDeviceIOStandardDriveStrength
TDeviceIOStandardSlewType
TDeviceIOStandardType
TDevicePinType
TDeviceState
TDisableResult
TEdgePolarity
TFlowRunResult
TMemoryElement
TMemoryKind
TNexusAction
TNexusActionTarget
TNexusBreakPointKind
TNexusCoreKind
TNexusNotification
TProcessFlowState
TRegisterValue
TScanClockHaltMode
TScanPinKind
TTapState
TTargetBoardKind
Bit Constants
Nexus Notification Codes
Nexus parameter names
Other constants

 

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';

You are reporting an issue with the following selected text and/or image within the active document:
Altium Designer 免费试用
Altium Designer Free Trial
我们开始吧!首先,您或者您的公司已经在使用Altium Designer了吗?

如果您有任何需求,请点击这里联系获取当地办公室销售代表联系方式。.
Copyright © 2019 Altium Limited

既然您在使用Altium Designer,为何仍需要试用?

如果您有任何需求,请点击这里联系获取当地办公室销售代表联系方式。.
Copyright © 2019 Altium Limited

好的,实际上您无需下载一个试用版本。

点击下方按钮下载最新版本的Altium Designer安装包

下载Altium Designer 安装包

如果您有任何需求,请点击这里联系获取当地办公室销售代表联系方式。.
Copyright © 2019 Altium Limited

填写下方表格,获取Altium Designer最新报价。

点击[获取免费试用],并同意我们的隐私政策。您会接收到来自Altium的资讯,并允许其改变您的通知首选项。

如果您是Altium维保期内客户,您不需要下载试用版本。

如果您不是Altium维保客户,请填写下方表格免费试用。

点击[获取免费试用],并同意我们的隐私政策。您会接收到来自Altium的资讯,并允许其改变您的通知首选项。

您为何想要试用Altium Designer?

如果您有任何需求,请点击这里联系获取当地办公室销售代表联系方式。.
Copyright © 2019 Altium Limited

那您来对地方了!请填写下方表格申请试用吧。

点击[获取免费试用],并同意我们的隐私政策。您会接收到来自Altium的资讯,并允许其改变您的通知首选项。

听上去很棒!您知道我们为学生提供了特殊折扣么?欲知详情,请点击这里。.

同时,请填写下方表格申请免费试用吧。

点击[获取免费试用],并同意我们的隐私政策。您会接收到来自Altium的资讯,并允许其改变您的通知首选项。

好的,您可以下载免费的Altium Designer Viewer查看文档,有效期6个月。

请填写下方表格申请。

点击[获取免费试用],并同意我们的隐私政策。您会接收到来自Altium的资讯,并允许其改变您的通知首选项。

好棒!创作是一件超酷的事情,我们可以为您提供完美的设计软件。

Upverter是一个社区导向的交流平台,专为您这样的创客量身定做。

点击这里看看吧!

如果您有任何需求,请点击这里联系获取当地办公室销售代表联系方式。.
Copyright © 2019 Altium Limited

好的,您可以下载免费的Altium Designer Viewer查看文档,有效期6个月。

请填写下方表格申请。

点击[获取免费试用],并同意我们的隐私政策。您会接收到来自Altium的资讯,并允许其改变您的通知首选项。