333 lines
15 KiB
Plaintext
Executable File
333 lines
15 KiB
Plaintext
Executable File
const
|
|
|
|
IDROMSize = 256;
|
|
IDROMHeaderSize = 16;
|
|
MaxModules = 32;
|
|
MaxPins = 144;
|
|
IDROMStyle0 = 2;
|
|
IDROMStyle1 = 3;
|
|
Boards = 16;
|
|
MaxConns = 6;
|
|
|
|
type
|
|
|
|
IDROMAsArrayType = Array[0 ..IDROMSize-1] of longint;
|
|
IDROMHeaderAsArrayType = Array[0 ..IDROMHeaderSize-1] of longint;
|
|
|
|
ModulesAsArrayType = array[0.. MaxModules*3-1] of longint;
|
|
ModuleType = array[0 .. MaxModules-1] of record
|
|
GTag : byte;
|
|
Version : byte;
|
|
Clock : byte;
|
|
NumInstances : byte;
|
|
BaseAddr : word;
|
|
NumRegisters : byte;
|
|
Strides : byte;
|
|
MultRegs : longint;
|
|
end;
|
|
|
|
PinDescType = array[1..MaxPins] of record
|
|
PNumber : byte;
|
|
GTag : byte;
|
|
Chan : byte;
|
|
PTag : byte;
|
|
end;
|
|
|
|
PinDescAsArrayType = array[0..MaxPins-1] of longint;
|
|
|
|
FNameType = record
|
|
FName : string[40];
|
|
FTag : byte;
|
|
end;
|
|
|
|
PinNameType = record
|
|
FTag : byte;
|
|
Names : array[1..10] of string[20];
|
|
end;
|
|
|
|
IDROMHeaderType = record
|
|
IDROMType : longint;
|
|
ModulePointer : longint;
|
|
PinDescPointer : longint;
|
|
BoardNameLow : longint;
|
|
BoardNameHigh : longint;
|
|
FPGASize : longint;
|
|
FPGAPins : longint;
|
|
IOPorts : longint;
|
|
IOWidth : longint;
|
|
PortWidth : longint;
|
|
ClockLow : longint;
|
|
ClockHigh : longint;
|
|
InstStride0 : longint;
|
|
InstStride1 : longint;
|
|
RegStride0 : longint;
|
|
RegStride1 : longint;
|
|
end;
|
|
|
|
ConnectorNamesType = array[1..Boards] of record
|
|
BoardName : longint;
|
|
ConName : array[1..MaxConns] of string[20];
|
|
end;
|
|
|
|
const
|
|
HM2Cookie : longint = $55AACAFE;
|
|
HostMotName = 'HOSTMOT2';
|
|
|
|
IDOffset = $100;
|
|
HM2CookieOffset = IDOffset + 0;
|
|
HostMotNameLowOffset = IDOffset+4;
|
|
HostMotNameHighOffset = IDOffset+8;
|
|
IDROMPointer = IDOffset+ 12;
|
|
|
|
HostMotClockLowOffset = $428;
|
|
HostMotClockHighOffset = $42C;
|
|
|
|
ClockLowTag= $01;
|
|
ClockHighTag= $02;
|
|
|
|
MaxTags = 33;
|
|
NullTag = $00;
|
|
IRQLogicTag = $01;
|
|
WatchDogTag = $02;
|
|
IOPortTag = $03;
|
|
QCountTag = $04;
|
|
StepGenTag = $05;
|
|
PWMTag = $06;
|
|
SPITag = $07;
|
|
SSITag = $08;
|
|
UARTTXTag = $09;
|
|
UARTRXTag = $0A;
|
|
AddrXTag = $0B;
|
|
MuxedQCountTag = $0C;
|
|
MuxedQCountSelTag =$0D;
|
|
BSPITag = $0E;
|
|
DBSPITag = $0F;
|
|
MuxedQCountMIMTag = $11;
|
|
MuxedQCountSelMIMTag =$12;
|
|
TPPWMTag = $13;
|
|
WaveGenTag = $14;
|
|
DAQFIFOTag =$15;
|
|
BinOscTag =$16;
|
|
DMDMATag =$17;
|
|
BISSTag =$18;
|
|
FAbsTag =$19;
|
|
DPLLTag = $1A;
|
|
PktUARTTXTag = $1B;
|
|
PktUARTRXTag = $1C;
|
|
SSDATag = $1E;
|
|
ResModTag = $C0;
|
|
SSerialTag = $C1;
|
|
TwiddlerTag = $C2;
|
|
|
|
LEDTag = $80;
|
|
|
|
BoardName4I65 = $35364934; { 4I65 }
|
|
BoardName4I74 = $34374934; { 4I74 }
|
|
BoardName4I68 = $38364934; { 4I68 }
|
|
BoardName4I69 = $39364934; { 4I69 }
|
|
BoardName5I20 = $30324935; { 5I20 }
|
|
BoardName5I22 = $32324935; { 5I22 }
|
|
BoardName5I23 = $33324935; { 5I23 }
|
|
BoardName5I24 = $34324935; { 5I24 }
|
|
BoardName5I25 = $35324935; { 5I25 }
|
|
BoardName6I25 = $35324936; { 6I25 }
|
|
BoardName7I43 = $33344937; { 7I43 }
|
|
BoardName7I90 = $30394937; { 7I90 }
|
|
BoardName7I80 = $30384937; { 7I80 }
|
|
BoardName7I76 = $36374937; { 7I76 }
|
|
BoardName7I60 = $30364937; { 7I60 }
|
|
BoardName3X20 = $30325833; { 3X20 }
|
|
|
|
OutputMarker = $80;
|
|
GlobalMarker = $80;
|
|
OutputMask = $7F;
|
|
|
|
FNames : array[1..MaxTags] of FNameType =
|
|
(
|
|
(FName : 'Null'; Ftag : NullTag),
|
|
(FName : 'IRQLogic'; Ftag : IRQLogicTag),
|
|
(FName : 'WatchDog'; Ftag : WatchDogTag),
|
|
(FName : 'IOPort'; Ftag : IOPortTag),
|
|
(FName : 'QCount'; Ftag : QCountTag),
|
|
(FName : 'StepGen'; Ftag : StepGenTag),
|
|
(FName : 'PWMGen'; Ftag : PWMTag),
|
|
(FName : 'SPI'; Ftag : SPITag),
|
|
(FName : 'SSI'; Ftag : SSITag),
|
|
(FName : 'UARTTX'; Ftag : UARTTXTag),
|
|
(FName : 'UARTRX'; Ftag : UARTRXTag),
|
|
(FName : 'AddrX'; Ftag : AddrXTag),
|
|
(FName : 'MuxedQCount'; Ftag : MuxedQCountTag),
|
|
(FName : 'MuxedQCountSel'; Ftag : MuxedQCountSelTag),
|
|
(FName : 'BufSPI'; Ftag : BSPITag),
|
|
(FName : 'DBufSPI'; Ftag : DBSPITag),
|
|
(FName : 'DPLL'; Ftag : DPLLTag),
|
|
(FName : 'PktUARTTX'; Ftag : PktUARTTXTag),
|
|
(FName : 'PktUARTRX'; Ftag : PktUARTRXTag),
|
|
(FName : 'MuxQCntM'; Ftag : MuxedQCountMIMTag),
|
|
(FName : 'MuxQSelM'; Ftag : MuxedQCountSelMIMTag),
|
|
(FName : 'TPPWM'; Ftag : TPPWMTag),
|
|
(FName : 'WaveGen'; Ftag : WaveGenTag),
|
|
(FName : 'DAQFIFO'; Ftag : DAQFIFOTag),
|
|
(FName : 'SSDA'; Ftag : SSDATag),
|
|
(FName : 'BinOsc'; Ftag : BinOscTag),
|
|
(FName : 'DMDMA'; Ftag : DMDMATag),
|
|
(FName : 'BISS'; Ftag : BISSTag),
|
|
(FName : 'FanucAbs'; Ftag : FAbsTag),
|
|
(FName : 'ResolverMod'; Ftag : ResModTag),
|
|
(FName : 'SSerial'; Ftag : SSerialTag),
|
|
(FName : 'Twiddler'; Ftag : TwiddlerTag),
|
|
(FName : 'LED'; Ftag : LEDTag)
|
|
);
|
|
|
|
FNamesX : array[1..MaxTags] of FNameType =
|
|
(
|
|
(FName : 'Null'; Ftag : NullTag),
|
|
(FName : 'IRQLogic'; Ftag : IRQLogicTag),
|
|
(FName : 'Watchdog'; Ftag : WatchDogTag),
|
|
(FName : 'IOPort'; Ftag : IOPortTag),
|
|
(FName : 'Encoder'; Ftag : QCountTag),
|
|
(FName : 'StepGen'; Ftag : StepGenTag),
|
|
(FName : 'PWMGen'; Ftag : PWMTag),
|
|
(FName : 'SPI'; Ftag : SPITag),
|
|
(FName : 'SSI'; Ftag : SSITag),
|
|
(FName : 'UARTTX'; Ftag : UARTTXTag),
|
|
(FName : 'UARTRX'; Ftag : UARTRXTag),
|
|
(FName : 'AddrX'; Ftag : AddrXTag),
|
|
(FName : 'MuxedQCount'; Ftag : MuxedQCountTag),
|
|
(FName : 'MuxedQCountSel'; Ftag : MuxedQCountSelTag),
|
|
(FName : 'BufSPI'; Ftag : BSPITag),
|
|
(FName : 'DBufSPI'; Ftag : DBSPITag),
|
|
(FName : 'DPLL'; Ftag : DPLLTag),
|
|
(FName : 'PktUARTTX'; Ftag : PktUARTTXTag),
|
|
(FName : 'PktUARTRX'; Ftag : PktUARTRXTag),
|
|
(FName : 'MuxQCntM'; Ftag : MuxedQCountMIMTag),
|
|
(FName : 'MuxQSelM'; Ftag : MuxedQCountSelMIMTag),
|
|
(FName : 'TPPWM'; Ftag : TPPWMTag),
|
|
(FName : 'WaveGen'; Ftag : WaveGenTag),
|
|
(FName : 'DAQFIFO'; Ftag : DAQFIFOTag),
|
|
(FName : 'SSDA'; Ftag : SSDATag),
|
|
(FName : 'BinOsc'; Ftag : BinOscTag),
|
|
(FName : 'DMDMA'; Ftag : DMDMATag),
|
|
(FName : 'BISS'; Ftag : BISSTag),
|
|
(FName : 'FanucAbs'; Ftag : FAbsTag),
|
|
(FName : 'ResolverMod'; Ftag : ResModTag),
|
|
(FName : 'SSerial'; Ftag : SSerialTag),
|
|
(FName : 'Twiddler'; Ftag : TwiddlerTag),
|
|
(FName : 'LED'; Ftag : LEDTag)
|
|
);
|
|
|
|
PNames : array[1..MaxTags] of PinNameType =
|
|
(
|
|
(FTag : NullTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : IRQLogicTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : WatchdogTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : IOPortTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : QCountTag; Names : ('Quad-A','Quad-B','Quad-IDX','Quad-IDXM','Quad-Probe','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : MuxedQCountTag; Names : ('MuxQ-A','MuxQ-B','MuxQ-IDX','MuxQ-IDXM','Quad-ProbeM','Null6','Null7','Null8'
|
|
,'Null9','Null10')),
|
|
(FTag : MuxedQCountSelTag; Names : ('MuxSel0','MuxSel1','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : MuxedQCountMIMTag; Names : ('MuxQ-A','MuxQ-B','MuxQ-IDX','MuxQ-IDXM','Quad-ProbeM','Null6','Null7','Null8'
|
|
,'Null9','Null10')),
|
|
(FTag : MuxedQCountSelMIMTag; Names : ('MuxSel0','MuxSel1','Null3','Null4','Null5','Null6','Null7','Null8'
|
|
,'Null9','Null10')),
|
|
(FTag : StepGenTag; Names : ('Step','Dir','Table3','Table4','Table5','Table6','SGindex','SGProbe'
|
|
,'Null9','Null10')),
|
|
(FTag : PWMTag; Names : ('PWM','Dir','/Enable','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : TPPWMTag; Names : ('PWMA','PWMB','PWMC','NPWMA','NPWMB','NPWMC','/ENA','FAULT','Null9','Null10')),
|
|
(FTag : WaveGenTag; Names : ('PDMA','PDMB','Trig0','Trig1','Trig2','Trig3','Null7','Null8','Null9','Null10')),
|
|
(FTag : DAQFIFOTag; Names : ('Data','Strobe','Full','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : SSDATag; Names : ('ICK','DI','ILD','SY','SClk','SData','Null7','Null8','Null9','Null10')),
|
|
(FTag : BinOscTag; Names : ('OscOut','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : DMDMATag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : BISSTag; Names : ('Clock','ClockEn','Data','DAv','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : FAbsTag; Names : ('Req','ReqEn','Data','DAv','TestClk','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : ResModTag; Names : ('PwrEn','PDMP','PDMM','ADChan0','ADChan1','ADChan2','SPICS','SPIClk','SPIDI0','SPIDI1')),
|
|
(FTag : SSerialTag; Names : ('RXData','TXData','TXEn','TestPin','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : TwiddlerTag; Names : ('InBit','IOBit','OutBit','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : SPITag; Names : ('/Frame','DOut','SClk','DIn','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : BSPITag; Names : ('/Frame','DOut','SClk','DIn','CS0','CS1','CS2','CS3','Null9','Null10')),
|
|
(FTag : DBSPITag; Names : ('Null1','DOut','SClk','DIn','/CS-FRM0','/CS-FRM1','/CS-FRM2','/CS-FRM3','Null9','Null10')),
|
|
(FTag : DPLLTag; Names : ('Syncin','RefOut','Timer1','Timer2','Timer3','Timer4','Null7','Null8','Null9','Null10')),
|
|
(FTag : SSITag; Names : ('SClk','SClkEn','Data','DAv','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : UARTTXTag; Names : ('TXData','TXEna','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : UARTRXTag; Names : ('RXData','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : PktUARTTXTag; Names : ('TXData','TXEna','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : PktUARTRXTag; Names : ('RXData','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : AddrxTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : LEDTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')));
|
|
|
|
PNamesXML : array[1..MaxTags] of PinNameType =
|
|
(
|
|
(FTag : NullTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : IRQLogicTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : WatchdogTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : IOPortTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : QCountTag; Names : ('Phase A','Phase B','Index','Quad-IDXM','Quad-Probe','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : MuxedQCountTag; Names : ('Muxed Phase A','Muxed Phase B','Muxed Index','MuxQ-IDXM',
|
|
'Quad-ProbeM','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : MuxedQCountSelTag; Names : ('Muxed Encoder Select 0','Muxed Encoder select 1','Null3','Null4',
|
|
'Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : MuxedQCountMIMTag; Names : ('MuxQ-A','MuxQ-B','MuxQ-IDX','MuxQ-IDXM','Quad-ProbeM','Null6','Null7','Null8'
|
|
,'Null9','Null10')),
|
|
(FTag : MuxedQCountSelMIMTag; Names : ('MuxSel0','MuxSel1','Null3','Null4','Null5','Null6','Null7','Null8'
|
|
,'Null9','Null10')),
|
|
(FTag : StepGenTag; Names : ('Step','Dir','Table3','Table4','Table5','Table6','SGindex','SGProbe'
|
|
,'Null9','Null10')),
|
|
(FTag : PWMTag; Names : ('PWM/Up','Dir/Down','/Enable','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : TPPWMTag; Names : ('PWMA','PWMB','PWMC','NPWMA','NPWMB','NPWMC','/ENA','FAULT','Null9','Null10')),
|
|
(FTag : WaveGenTag; Names : ('PDMA','PDMB','Trig0','Trig1','Trig2','Trig3','Null7','Null8','Null9','Null10')),
|
|
(FTag : DAQFIFOTag; Names : ('Data','Strobe','Full','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : SSDATag; Names : ('ICK','DI','ILD','SY','SClk','SData','Null7','Null8','Null9','Null10')),
|
|
(FTag : BinOscTag; Names : ('OscOut','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : DMDMATag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : BISSTag; Names : ('Clock','ClockEn','Data','DAv','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : FAbsTag; Names : ('Req','ReqEn','Data','DAv','TestClk','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : ResModTag; Names : ('PwrEn','PDMP','PDMM','ADChan0','ADChan1','ADChan2','SPICS','SPIClk','SPIDI0','SPIDI1')),
|
|
(FTag : SSerialTag; Names : ('RXData','TXData','TXEn','TestPin','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : TwiddlerTag; Names : ('InBit','IOBit','OutBit','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : SPITag; Names : ('/Frame','DOut','SClk','DIn','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : BSPITag; Names : ('/Frame','DOut','SClk','DIn','CS0','CS1','CS2','CS3','Null9','Null10')),
|
|
(FTag : DBSPITag; Names : ('Null1','DOut','SClk','DIn','/CS-FRM0','/CS-FRM1','/CS-FRM2','/CS-FRM3','Null9','Null10')),
|
|
(FTag : DPLLTag; Names : ('Syncin','RefOut','Timer1','Timer2','Timer3','Timer4','Null7','Null8','Null9','Null10')),
|
|
(FTag : SSITag; Names : ('SClk','SClkEn','DIn','DAv','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : UARTTXTag; Names : ('TXData','TXEna','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : UARTRXTag; Names : ('RXData','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : PktUARTTXTag; Names : ('TXData','TXEna','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : PktUARTRXTag; Names : ('RXData','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : AddrxTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')),
|
|
(FTag : LEDTag; Names : ('Null1','Null2','Null3','Null4','Null5','Null6','Null7','Null8','Null9','Null10')));
|
|
|
|
ConnectorNames : ConnectorNamesType =
|
|
(
|
|
(BoardName : BoardName4I65; ConName : ('P1','P3','P4','Null1','Null2','Null3')),
|
|
(BoardName : BoardName4I68; ConName : ('P1','P2','P3','Null1','Null2','Null3')),
|
|
(BoardName : BoardName4I69; ConName : ('P1','P3','P4','Null1','Null2','Null3')),
|
|
(BoardName : BoardName4I74; ConName : ('PX','PY','PZ','Null1','Null2','Null3')),
|
|
(BoardName : BoardName5I20; ConName : ('P2','P3','P4','Null1','Null2','Null3')),
|
|
(BoardName : BoardName5I22; ConName : ('P2','P3','P4','P5','Null1','Null2')),
|
|
(BoardName : BoardName5I23; ConName : ('P2','P3','P4','Null1','Null2','Null3')),
|
|
(BoardName : BoardName5I24; ConName : ('P2','P3','P4','Null1','Null2','Null3')),
|
|
(BoardName : BoardName5I25; ConName : ('P3','P2','Null1','Null2','Null3','Null4')),
|
|
(BoardName : BoardName6I25; ConName : ('P3','P2','Null1','Null2','Null3','Null4')),
|
|
(BoardName : BoardName7I43; ConName : ('P4','P3','Null1','Null2','Null3','Null4')),
|
|
(BoardName : BoardName7I90; ConName : ('P1','P2','P3','Null2','Null3','Null4')),
|
|
(BoardName : BoardName7I80; ConName : ('P1','P2','P3','Null2','Null3','Null4')),
|
|
(BoardName : BoardName7I80; ConName : ('P1','P2','P3','P4','Null3','Null4')),
|
|
(BoardName : BoardName7I60; ConName : ('P7','P8','P5','P4','Null1','Null3')),
|
|
(BoardName : BoardName3X20; ConName : ('P4','P5','P6','P9','P8','P7')));
|
|
|
|
var
|
|
Modules : ModuleType;
|
|
PinDescs : PinDescType;
|
|
PinDescsAsArray : PinDescAsArrayType;
|
|
IDROMOffset : longint;
|
|
ModuleOffset : longint;
|
|
PinDescOffset : longint;
|
|
IDROMAsArray : IDROMAsArrayType;
|
|
IDROMHeaderAsArray : IDROMHeaderAsArrayType;
|
|
ModulesAsArray : ModulesAsArrayType;
|
|
IDROMHeader : IDROMHeaderType;
|
|
ClockLow : longint;
|
|
ClockHigh : longint;
|
|
Outputmasks : array[0..MaxConns-1] of longint;
|