#ifndef _FlashPLDH_
#define _FlashPLDH_
#include "xc95144xl_100.h"
#include "power.h"
#include "backplane.h"
#include "switches.h"
#include "leds.h"
#include "front_panel.h"
class CM_FlashPLD : public TModule {
public:
CB_JTAG JT;
CB_VME_PWR PwrCtrl;
CB_Front_VME FP;
port VCC;
port GND;
port VMEC_GEN;
port VME_FIFO_MRS_N;
port GA_N;
port BOOT_CLK;
port SYSRESET_N;
port SOFTRESET_N;
port HPU_RESET_N;
port LD;
port VFL_A;
port VFL_CE_N;
port VFL_OE_N;
port VFL_WE_N;
port HFL_A;
port HFL_OE_N;
port HFL_WE_N;
port HFL_SPARE;
port HSPDX;
port HSPCLKX;
port HSPCLKR;
port HSPFSX;
port CCLK;
port DIN;
port HEFPRGM_N;
port HEFINIT_N;
port HEFDONE;
port HFPRGM_N;
port HFINIT_N;
port HFDONE;
port FMCE_N;
port FMOE_N;
port FMWE_N;
port FMD;
port FMA;
port BERR_N;
CP_XC95144XL_144 Cpld;
virtual void Register() {
reg( JT );
reg( PwrCtrl );
reg( FP );
reg ( VCC );
reg ( GND );
regb( VMEC_GEN, 1, 0 );
reg( VME_FIFO_MRS_N );
regb( GA_N, 4, 0 );
reg ( BOOT_CLK );
reg ( SYSRESET_N );
reg ( SOFTRESET_N );
reg ( HPU_RESET_N );
regb( LD, 7, 0 );
regb( VFL_A, 4, 0 );
reg ( VFL_CE_N );
reg ( VFL_OE_N );
reg ( VFL_WE_N );
reg ( HFL_A );
reg ( HFL_OE_N );
reg ( HFL_WE_N );
reg ( HFL_SPARE );
reg ( HSPDX );
reg ( HSPCLKX );
reg ( HSPCLKR );
reg ( HSPFSX );
reg ( CCLK );
reg ( DIN );
reg ( HEFPRGM_N );
reg ( HEFINIT_N );
reg ( HEFDONE );
reg ( HFPRGM_N );
reg ( HFINIT_N );
reg ( HFDONE );
reg ( FMCE_N );
reg ( FMOE_N );
reg ( FMWE_N );
regb( FMD, 7, 0 );
regb( FMA, 21, 0 );
reg ( BERR_N );
reg( Cpld );
}
virtual void Connect() {
wire ( JT, Cpld );
wire( VCC );
wire( VCC, "VCCIO" );
wire( GND );
"/NC" << Cpld.IO2_GTS3;
"/NC" << Cpld.IO3_GTS4;
int i = 0;
FP.DIPSW0_( i++ ) << Cpld.IO4;
"/NC" << Cpld.IO5_GTS1;
"/NC" << Cpld.IO6_GTS2;
FP.DIPSW0_( i++ ) << Cpld.IO7;
FP.DIPSW0_( i++ ) << Cpld.IO9;
FP.DIPSW0_( i++ ) << Cpld.IO10;
FP.DIPSW0_( i++ ) << Cpld.IO11;
i = 0;
FP.DIPSW1_( i++ ) << Cpld.IO12;
FP.DIPSW1_( i++ ) << Cpld.IO13;
FP.DIPSW1_( i++ ) << Cpld.IO14;
FP.DIPSW1_( i++ ) << Cpld.IO15;
FP.DIPSW1_( i++ ) << Cpld.IO16;
i = 0;
FP.DIPSW2_( i++ ) << Cpld.IO17;
FP.DIPSW2_( i++ ) << Cpld.IO19;
FP.DIPSW2_( i++ ) << Cpld.IO20;
FP.DIPSW2_( i++ ) << Cpld.IO21;
FP.DIPSW2_( i++ ) << Cpld.IO22;
i = 0;
GA_N( i++ ) << Cpld.IO23;
GA_N( i++ ) << Cpld.IO24;
GA_N( i++ ) << Cpld.IO25;
GA_N( i++ ) << Cpld.IO26;
GA_N( i++ ) << Cpld.IO27;
VME_FIFO_MRS_N << Cpld.IO28;
BOOT_CLK << Cpld.IO30_GCK1;
VMEC_GEN( 0 ) << Cpld.IO31;
"/NC" << Cpld.IO32_GCK2;
VMEC_GEN( 1 ) << Cpld.IO33;
PwrCtrl.ONE_MR_N << Cpld.IO34;
PwrCtrl.ONE_O << Cpld.IO35;
"/NC" << Cpld.IO38_GCK3;
PwrCtrl.PENA << Cpld.IO39;
PwrCtrl.PENC << Cpld.IO40;
PwrCtrl.PENB << Cpld.IO41;
PwrCtrl.PENB_SURGE << Cpld.IO43;
PwrCtrl.DSP_VAOK << Cpld.IO44;
PwrCtrl.VBOK << Cpld.IO45;
PwrCtrl.DSP_VCOK << Cpld.IO46;
VFL_A( 4 ) << Cpld.IO48;
PwrCtrl.HARDRESET_N << Cpld.IO143_GSR;
PwrCtrl.MBPWR_MR_N << Cpld.IO49;
FP.LED_MB_VB << Cpld.IO50;
FP.LED_DSP_VB << Cpld.IO51;
FP.LED_DSP_VA << Cpld.IO52;
FP.LED_HPU0 << Cpld.IO53;
FP.LED_HPU1 << Cpld.IO54;
FP.LED_VME0 << Cpld.IO56;
FP.LED_VME1 << Cpld.IO57;
BERR_N << Cpld.IO58;
SYSRESET_N << Cpld.IO59;
SOFTRESET_N << Cpld.IO60;
HPU_RESET_N << Cpld.IO61;
VFL_A( 3) << Cpld.IO64;
VFL_A( 2) << Cpld.IO66;
VFL_A( 1) << Cpld.IO68;
VFL_A( 0) << Cpld.IO69;
VFL_CE_N << Cpld.IO70;
VFL_OE_N << Cpld.IO71;
VFL_WE_N << Cpld.IO74;
HFL_A << Cpld.IO75;
HFL_OE_N << Cpld.IO76;
HFL_WE_N << Cpld.IO77;
HFL_SPARE << Cpld.IO78;
HFINIT_N << Cpld.IO79;
HFDONE << Cpld.IO80;
HSPDX << Cpld.IO81;
HSPCLKX << Cpld.IO82;
HSPCLKR << Cpld.IO83;
HSPFSX << Cpld.IO85;
LD(0) << Cpld.IO86;
LD(1) << Cpld.IO87;
LD(2) << Cpld.IO88;
LD(3) << Cpld.IO91;
LD(4) << Cpld.IO92;
LD(5) << Cpld.IO93;
LD(6) << Cpld.IO94;
LD(7) << Cpld.IO95;
FMD(7) << Cpld.IO96;
FMD(6) << Cpld.IO97;
FMD(5) << Cpld.IO98;
FMD(4) << Cpld.IO100;
FMD(3) << Cpld.IO101;
FMD(2) << Cpld.IO102;
FMD(1) << Cpld.IO103;
FMD(0) << Cpld.IO104;
FMA(21) << Cpld.IO105;
FMA(20) << Cpld.IO106;
FMA(19) << Cpld.IO107;
FMA(18) << Cpld.IO110;
FMA(17) << Cpld.IO111;
FMA(16) << Cpld.IO112;
FMA(15) << Cpld.IO113;
FMA(14) << Cpld.IO115;
FMA(13) << Cpld.IO116;
FMA(12) << Cpld.IO117;
FMA(11) << Cpld.IO118;
FMA(10) << Cpld.IO119;
FMA(9) << Cpld.IO120;
FMA(8) << Cpld.IO121;
FMA(7) << Cpld.IO124;
FMA(6) << Cpld.IO125;
FMA(5) << Cpld.IO126;
FMA(4) << Cpld.IO128;
FMA(3) << Cpld.IO129;
FMA(2) << Cpld.IO130;
FMA(1) << Cpld.IO131;
FMA(0) << Cpld.IO132;
CCLK << Cpld.IO133;
DIN << Cpld.IO134;
HFPRGM_N << Cpld.IO135;
FMCE_N << Cpld.IO136;
FMOE_N << Cpld.IO137;
FMWE_N << Cpld.IO138;
HEFINIT_N << Cpld.IO139;
HEFDONE << Cpld.IO140;
HEFPRGM_N << Cpld.IO142;
}
};
#endif