You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
4.7 KiB
209 lines
4.7 KiB
//Info: Sample template for programming XILINX XCFxxP PROMS
|
|
//Info: Created with output from Impact
|
|
|
|
--LITERAL START
|
|
TRST OFF;
|
|
ENDIR IDLE;
|
|
ENDDR IDLE;
|
|
STATE RESET;
|
|
STATE IDLE;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 16 TDI (00e8) SMASK (ffff) ;
|
|
SDR 8 TDI (03) SMASK (ff) ;
|
|
//Loading device with 'idcode' instruction.
|
|
SIR 16 TDI (00fe) ;
|
|
SDR 32 TDI (00000000) SMASK (ffffffff) TDO ($ID$) MASK ($IDMASK$) ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
STATE RESET;
|
|
// Loading devices with 'ispen' or 'bypass' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (d0) SMASK (ff) ;
|
|
// Loading device with a 'XSC_UNLOCK' instruction.
|
|
SIR 16 TDI (aa55) ;
|
|
SDR 24 TDI (00003f) SMASK (ffffff) ;
|
|
// Loading device witha 'ISC_ERASE' instruction.
|
|
ENDIR IRPAUSE;
|
|
SIR 16 TDI (00ec) ;
|
|
SDR 24 TDI (00003f) ;
|
|
ENDIR IDLE;
|
|
RUNTEST 140000000 TCK;
|
|
// Loading devices with 'conld' or 'bypass' instruction.
|
|
SIR 16 TDI (00f0) ;
|
|
RUNTEST 50 TCK;
|
|
STATE RESET;
|
|
// Loading devices with 'ispen' or 'bypass' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (d0) SMASK (ff) ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (03) ;
|
|
// Loading device with 'XSC_DATA_BTC' instruction.
|
|
SIR 16 TDI (00f2) ;
|
|
SDR 32 TDI (ffffffe0) SMASK (ffffffff) TDO (00000000) MASK (00000000) ;
|
|
// Loading device with a 'ISC_PROGRAM' instruction.
|
|
SIR 16 TDI (00ea) ;
|
|
RUNTEST 120 TCK;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
STATE RESET;
|
|
// Loading devices with 'ispen' or 'bypass' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (d0) SMASK (ff) ;
|
|
--END
|
|
|
|
$CUTLINES(0)$
|
|
|
|
--LITERAL START
|
|
// Loading device with a 'ISC_DATA_SHIFT' instruction.
|
|
SIR 16 TDI (00ed) ;
|
|
SDR 256 TDI ($DATA_INV(32)$) SMASK ($FILL(0xFF,32)$) ;
|
|
// Loading device with a 'ISC_ADDRESS_SHIFT' instruction.
|
|
SIR 16 TDI (00eb) ;
|
|
SDR 24 TDI (000000) SMASK (ffffff) ;
|
|
// Loading device with a 'ISC_PROGRAM' instruction.
|
|
SIR 16 TDI (00ea) ;
|
|
RUNTEST 1000 TCK;
|
|
// Loading device with a 'ISC_DATA_SHIFT' instruction.
|
|
SIR 16 TDI (00ed) ;
|
|
SDR 256 TDI ($DATA_INV(32)$) SMASK ($FILL(0xFF,32)$) ;
|
|
// Loading device with a 'ISC_PROGRAM' instruction.
|
|
SIR 16 TDI (00ea) ;
|
|
RUNTEST 1000 TCK;
|
|
--END
|
|
|
|
--REPEAT START
|
|
// Loading device with a 'ISC_DATA_SHIFT' instruction.
|
|
SIR 16 TDI (00ed) ;
|
|
SDR 256 TDI ($DATA_INV(32)$) ;
|
|
// Loading device with a 'ISC_PROGRAM' instruction.
|
|
SIR 16 TDI (00ea) ;
|
|
RUNTEST 1000 TCK;
|
|
--END
|
|
|
|
$CUTLINES(1)$
|
|
|
|
--LITERAL START
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (03) SMASK (ff) ;
|
|
// Loading device with a 'XSC_DATA_SUCR' instruction.
|
|
SIR 16 TDI (000e) ;
|
|
SDR 16 TDI (fffc) SMASK (ffff) TDO (0000) MASK (0000) ;
|
|
// Loading device with a 'ISC_PROGRAM' instruction.
|
|
SIR 16 TDI (00ea) ;
|
|
RUNTEST 60 TCK;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (03) SMASK (ff) ;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (03) ;
|
|
// Loading device witha 'XSC_DATA_CCB' instruction.
|
|
SIR 16 TDI (000c) ;
|
|
SDR 16 TDI (fff9) SMASK (ffff) TDO (0000) MASK (0000) ;
|
|
// Loading device with a 'ISC_PROGRAM' instruction.
|
|
SIR 16 TDI (00ea) ;
|
|
RUNTEST 60 TCK;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
// Loading devices with 'conld' or 'bypass' instruction.
|
|
SIR 16 TDI (00f0) ;
|
|
RUNTEST 50 TCK;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (03) SMASK (ff) ;
|
|
// Loading device with 'XSC_DATA_DONE' instruction.
|
|
SIR 16 TDI (0009) ;
|
|
SDR 8 TDI (ce) TDO (00) MASK (00) ;
|
|
// Loading device with a 'ISC_PROGRAM' instruction.
|
|
SIR 16 TDI (00ea) ;
|
|
RUNTEST 60 TCK;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (03) ;
|
|
--END
|
|
|
|
$REWIND$
|
|
$ADDRESS(0x0000)$
|
|
$STEP(0x0400)$
|
|
|
|
--REPEAT START
|
|
// Loading device with a 'ISC_ADDRESS_SHIFT' instruction.
|
|
SIR 16 TDI (00eb) ;
|
|
SDR 24 TDI ($ADDRESS$) SMASK (ffffff) ;
|
|
// Loading device with a 'XSC_READ' instruction.
|
|
SIR 16 TDI (00ef) ;
|
|
RUNTEST 15 TCK;
|
|
SDR $BSIZE$ TDI ($FILL(0x00,BSIZEB)$) SMASK ($FILL(0xFF,BSIZEB)$) TDO ($DATA_INV(BSIZEB)$) MASK ($FILL(0xFF,BSIZEB)$) ;
|
|
--END
|
|
|
|
--LITERAL START
|
|
// Check Device status.
|
|
SIR 16 TDI (00e3) ;
|
|
SDR 8 TDI (00) SMASK (ff) TDO (36) MASK (7f) ;
|
|
//Loading device with 'conld' instruction.
|
|
SIR 16 TDI (00f0) ;
|
|
RUNTEST 50 TCK;
|
|
//Loading device with 'ispen' instruction.
|
|
SIR 16 TDI (00e8) ;
|
|
SDR 8 TDI (03) ;
|
|
//Loading device with 'conld' instruction.
|
|
SIR 16 TDI (00f0) ;
|
|
RUNTEST 50 TCK;
|
|
// Loading device with a 'config' instruction.
|
|
SIR 16 TDI (00ee) TDO (0000) MASK (0000) ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
HDR 0 ;
|
|
TDR 0 ;
|
|
TIR 0 ;
|
|
HIR 0 ;
|
|
TDR 0 ;
|
|
HDR 0 ;
|
|
SIR 16 TDI (ffff) ;
|
|
SDR 1 TDI (00) SMASK (01) ;
|
|
--END
|