//Info: Sample template for programming XILINX Spartan 3 FPGA
//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 'idcode' instruction.
SIR 6 TDI (09) SMASK (3f) ;
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 ;
TIR 0 ;
HIR 0 ;
HDR 0 ;
TDR 0 ;
//Loading device with 'idcode' instruction.
SIR 6 TDI (09) ;
SDR 32 TDI (00000000) TDO ($ID$) ;
//Loading device with 'bypass' instruction.
SIR 6 TDI (3f) ;
// Loading device with a `jprogram` instruction. 
SIR 6 TDI (0b) ;
RUNTEST 1 TCK;
// Loading device with a `bypass` instruction. 
SIR 6 TDI (3f) ;
RUNTEST 14000 TCK;
// Loading device with a `cfg_in` instruction. 
SIR 6 TDI (05) ;
SDR 192 TDI (0000000000000000e00000008001000c66aa9955ffffffff) SMASK (ffffffffffffffffffffffffffffffffffffffffffffffff) ;
// Loading device with a `jshutdown` instruction. 
SIR 6 TDI (0d) ;
RUNTEST 12 TCK;
STATE RESET;
// Loading device with a `cfg_in` instruction. 
SIR 6 TDI (05) ;
SDR 64 TDI (0000000000000000) SMASK (ffffffffffffffff) ;
SIR 6 TDI (05) TDO (00) MASK (00) ;
SDR $SBITS$ TDI ($DATA_INV(-1)$) SMASK ($FILL(0xFF,-1)$);
// Loading device with a `jstart` instruction. 
SIR 6 TDI (0c) ;
RUNTEST 12 TCK;
//Loading device with 'bypass' instruction.
SIR 6 TDI (3f) ;
//Loading device with 'bypass' instruction.
SIR 6 TDI (3f) ;
TIR 0 ;
HIR 0 ;
HDR 0 ;
TDR 0 ;
TIR 0 ;
HIR 0 ;
HDR 0 ;
TDR 0 ;
// Loading device with a `jstart` instruction. 
SIR 6 TDI (0c) ;
RUNTEST 12 TCK;
//Checking done pin status.
//Loading device with 'Bypass' instruction.
SIR 6 TDI (3f) TDO (21) MASK (20) ;
TIR 0 ;
HIR 0 ;
TDR 0 ;
HDR 0 ;
SIR 6 TDI (3f) ;
SDR 1 TDI (00) SMASK (01) ;
--END
