#ifndef _QuietPLDH_
#define _QuietPLDH_
#include "xc95144xl_100.h"
class CM_QuietPLD : public TModule {
public:
CB_JTAG JTAG;
port VCC;
port GND;
port SOFTRESET_N;
port QD;
port QA;
port QWR_N;
port QSTB_N;
port IRCLK;
port ISCLK;
port ITCLK;
port DERIVED_BASE;
port MuxA_RCLK;
port MuxA_SCLK;
port MuxA_TCLK;
port MuxA_DCLK;
port MuxA_DC_CLK;
port MuxA_DX_CLK;
port MuxA_HPU_CLK;
port MuxA_SYN_BASE;
port SMuxA_RCLK;
port SMuxA_TCLK;
port MpyFS_IRCLK;
port MpyFS_ISCLK;
port MpyFS_ITCLK;
port DrvSCK_IRCLK;
port DrvSCK_ISCLK;
port DrvSCK_ITCLK;
port DrvSCK_SYN_BASE;
port SynSCK_RCLK;
port SynSCK_SCLK;
port SynSCK_TCLK;
port SynSCK_DCLK;
port SynSCK_DC_CLK;
port SynSCK_DX_CLK;
port SynSCK_HPU_CLK;
port SynSCK_DPU_CLK;
port SynSCK_DXINT_CLK;
port SynSEL_CD;
port SD;
port OscOE_HPU;
CP_XC95144XL_100 Cpld;
enum { vc_cdc_count = 4,
vc_tdc_count = 1 };
CP_CDC_POS VC_CDC[ vc_cdc_count ];
CP_TDC_POS VC_TDC[ vc_tdc_count ];
virtual void Register() {
reg( JTAG );
reg( VCC );
reg( GND );
reg( SOFTRESET_N );
regb( QD, 7, 0 );
reg( QA );
reg( QWR_N );
reg( QSTB_N );
reg( IRCLK );
reg( ISCLK );
reg( ITCLK );
reg( DERIVED_BASE );
regb( MuxA_RCLK, 1, 0 );
regb( MuxA_SCLK, 1, 0 );
regb( MuxA_TCLK, 1, 0 );
regb( MuxA_DCLK, 1, 0 );
regb( MuxA_DC_CLK, 1, 0 );
regb( MuxA_DX_CLK, 1, 0 );
reg( MuxA_HPU_CLK );
reg( MuxA_SYN_BASE );
regb( SMuxA_RCLK, 1, 0 );
regb( SMuxA_TCLK, 1, 0 );
regb( MpyFS_IRCLK, 1, 0 );
regb( MpyFS_ISCLK, 1, 0 );
regb( MpyFS_ITCLK, 1, 0 );
reg( DrvSCK_IRCLK );
reg( DrvSCK_ISCLK );
reg( DrvSCK_ITCLK );
reg( DrvSCK_SYN_BASE );
reg( SynSCK_RCLK );
reg( SynSCK_SCLK );
reg( SynSCK_TCLK );
reg( SynSCK_DCLK );
reg( SynSCK_DC_CLK );
reg( SynSCK_DX_CLK );
reg( SynSCK_HPU_CLK );
reg( SynSCK_DPU_CLK );
reg( SynSCK_DXINT_CLK );
reg( SynSEL_CD );
reg( SD );
reg( OscOE_HPU );
reg( Cpld );
rega( VC_CDC, vc_cdc_count );
rega( VC_TDC, vc_tdc_count );
}
virtual void Connect() {
wireall( GND );
wire( VCC );
VCC << Cpld.VCCIO;
for ( int i = 0; i < vc_cdc_count; ++ i ) VCC << VC_CDC[ i ].POS;
for ( int i = 0; i < vc_tdc_count; ++ i ) VCC << VC_TDC[ i ].POS;
wire( JTAG, Cpld );
"/NC" << Cpld.IO1_GTS3;
"/NC" << Cpld.IO2_GTS4;
"QGTS" << Cpld.IO3_GTS1;
"QGTS" << Cpld.IO4_GTS2;
"/NC" << Cpld.IO6;
"/NC" << Cpld.IO7;
IRCLK << Cpld.IO8;
ISCLK << Cpld.IO9;
ITCLK << Cpld.IO10;
"/NC" << Cpld.IO11;
OscOE_HPU << Cpld.IO12;
"/NC" << Cpld.IO13;
"/NC" << Cpld.IO14;
"/NC" << Cpld.IO15;
DERIVED_BASE << Cpld.IO16;
"/NC" << Cpld.IO17;
"/NC" << Cpld.IO18;
SynSEL_CD << Cpld.IO19;
"/NC" << Cpld.IO20;
"/NC" << Cpld.IO22_GCK1;
QSTB_N << Cpld.IO23_GCK2;
"/NC" << Cpld.IO24;
"/NC" << Cpld.IO25;
"DERIVED_OUT" << Cpld.IO27_GCK3;
"DERIVED_OUT" << Cpld.IO28;
"/NC" << Cpld.IO29;
"/NC" << Cpld.IO30;
SD << Cpld.IO32;
MuxA_RCLK( 0 ) << Cpld.IO33;
MuxA_RCLK( 1 ) << Cpld.IO34;
MuxA_SCLK( 0 ) << Cpld.IO35;
MuxA_SCLK( 1 ) << Cpld.IO36;
MuxA_TCLK( 0 ) << Cpld.IO37;
MuxA_TCLK( 1 ) << Cpld.IO39;
MuxA_DCLK( 0 ) << Cpld.IO40;
MuxA_DCLK( 1 ) << Cpld.IO41;
MuxA_DC_CLK( 0 ) << Cpld.IO42;
MuxA_DC_CLK( 1 ) << Cpld.IO43;
MuxA_DX_CLK( 0 ) << Cpld.IO46;
MuxA_DX_CLK( 1 ) << Cpld.IO49;
MuxA_HPU_CLK << Cpld.IO50;
MuxA_SYN_BASE << Cpld.IO52;
SMuxA_RCLK( 0 ) << Cpld.IO53;
SMuxA_RCLK( 1 ) << Cpld.IO54;
SMuxA_TCLK( 0 ) << Cpld.IO55;
SMuxA_TCLK( 1 ) << Cpld.IO56;
"/NC" << Cpld.IO58;
"/NC" << Cpld.IO59;
MpyFS_IRCLK( 0 ) << Cpld.IO60;
MpyFS_IRCLK( 1 ) << Cpld.IO61;
MpyFS_ISCLK( 0 ) << Cpld.IO63;
MpyFS_ISCLK( 1 ) << Cpld.IO64;
MpyFS_ITCLK( 0 ) << Cpld.IO65;
MpyFS_ITCLK( 1 ) << Cpld.IO66;
DrvSCK_IRCLK << Cpld.IO67;
DrvSCK_ISCLK << Cpld.IO68;
DrvSCK_ITCLK << Cpld.IO70;
DrvSCK_SYN_BASE << Cpld.IO71;
SynSCK_RCLK << Cpld.IO72;
SynSCK_SCLK << Cpld.IO73;
SynSCK_TCLK << Cpld.IO74;
SynSCK_DCLK << Cpld.IO76;
SynSCK_DC_CLK << Cpld.IO77;
SynSCK_DX_CLK << Cpld.IO78;
SynSCK_HPU_CLK << Cpld.IO79;
SynSCK_DPU_CLK << Cpld.IO80;
SynSCK_DXINT_CLK << Cpld.IO81;
"/NC" << Cpld.IO82;
"/NC" << Cpld.IO85;
int i = 0;
QD( i++ ) << Cpld.IO86;
QD( i++ ) << Cpld.IO87;
QD( i++ ) << Cpld.IO89;
QD( i++ ) << Cpld.IO90;
QD( i++ ) << Cpld.IO91;
QD( i++ ) << Cpld.IO92;
QD( i++ ) << Cpld.IO93;
QD( i++ ) << Cpld.IO94;
QA << Cpld.IO95;
QSTB_N << Cpld.IO96;
QWR_N << Cpld.IO97;
SOFTRESET_N << Cpld.IO99_GSR;
}
};
#endif