diff options
Diffstat (limited to 'fpga/xilinx/programmer/bit2svf/templates/alg_XCF.svft')
| -rw-r--r-- | fpga/xilinx/programmer/bit2svf/templates/alg_XCF.svft | 190 | 
1 files changed, 190 insertions, 0 deletions
| diff --git a/fpga/xilinx/programmer/bit2svf/templates/alg_XCF.svft b/fpga/xilinx/programmer/bit2svf/templates/alg_XCF.svft new file mode 100644 index 0000000..73138c3 --- /dev/null +++ b/fpga/xilinx/programmer/bit2svf/templates/alg_XCF.svft @@ -0,0 +1,190 @@ +//Info: Sample template for programming XILINX XCFxx 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 'idcode' instruction. +SIR 8 TDI (fe) SMASK (ff) ; +SDR 32 TDI (00000000) SMASK (ffffffff) TDO ($ID$) MASK ($IDMASK$) ; +//Loading device with 'conld' instruction. +SIR 8 TDI (f0) ; +RUNTEST 110000 TCK; +//Check for Read/Write Protect. +SIR 8 TDI (ff) TDO (01) MASK (07) ; +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 8 TDI (e8) ; +SDR 6 TDI (34) SMASK (3f) ; +// Loading device with 'faddr' instruction. +SIR 8 TDI (eb) ; +SDR 16 TDI (0001) SMASK (ffff) ; +RUNTEST 1 TCK; +RUNTEST 1 TCK; +// Loading device with 'ferase' instruction. +SIR 8 TDI (ec) ; +RUNTEST 1 TCK; +RUNTEST 15000000 TCK; +// Loading devices with 'conld' or 'bypass' instruction. +SIR 8 TDI (f0) ; +RUNTEST 110000 TCK; +STATE RESET; +// Loading devices with 'ispen' or 'bypass'  instruction. +SIR 8 TDI (e8) ; +SDR 6 TDI (34) SMASK (3f) ; +--END + +$ADDRESS(0x0000)$ +$STEP(0x0020)$ + +--REPEAT START +// Loading device with a 'fdata0' instruction. +SIR 8 TDI (ed) ; +SDR $BSIZE$ TDI ($DATA_INV(BSIZEB)$) SMASK ($FILL(0xFF,BSIZEB)$) ; +ENDIR IDLE; +RUNTEST 1 TCK; +RUNTEST 1 TCK; +// Loading device with a 'faddr' instruction. +SIR 8 TDI (eb) ; +SDR 16 TDI ($ADDRESS$) SMASK (ffff) ; +RUNTEST 1 TCK; +RUNTEST 1 TCK; +// Loading device with a 'fpgm' instruction. +ENDIR IRPAUSE; +SIR 8 TDI (ea) ; +RUNTEST 1 TCK; +RUNTEST 14000 TCK; +--END + +--LITERAL START +// Loading device with a 'faddr' instruction.  +SIR 8 TDI (eb) ; +SDR 16 TDI (0001) ; +ENDIR IDLE; +RUNTEST 1 TCK; +// Loading device with 'serase' instruction. +SIR 8 TDI (0a) ; +RUNTEST 37000 TCK; +// Loading devices with 'conld' or 'bypass' instruction. +SIR 8 TDI (f0) ; +RUNTEST 110000 TCK; +TIR 0 ; +HIR 0 ; +HDR 0 ; +TDR 0 ; +//Loading device with 'ispen' instruction. +SIR 8 TDI (e8) ; +SDR 6 TDI (34) SMASK (3f) ; +//Loading device with 'conld' instruction. +SIR 8 TDI (f0) ; +RUNTEST 110000 TCK; +//Loading device with 'ispen' instruction. +SIR 8 TDI (e8) ; +SDR 6 TDI (34) ; +--END + +$REWIND$ +$ADDRESS(0x0000)$ +$STEP(0x0040)$ + +--REPEAT START +// Loading device with a 'faddr' instruction.  +SIR 8 TDI (eb) ; +SDR 16 TDI ($ADDRESS$) SMASK (ffff) ; +RUNTEST 1 TCK; +RUNTEST 1 TCK; +// Loading device with a 'fvfy0' instruction.  +SIR 8 TDI (ef) ; +RUNTEST 1 TCK; +RUNTEST 50 TCK; +SDR $BSIZE2$ TDI ($FILL(0x00,BSIZEB2)$) SMASK ($FILL(0xFF,BSIZEB2)$) TDO ($DATA_INV(BSIZEB2)$) MASK ($FILL(0xFF,BSIZEB2)$) ; +--END + +--REPEAT UNTIL MSIZE +// Loading device with a 'faddr' instruction.  +SIR 8 TDI (eb) ; +SDR 16 TDI ($ADDRESS$) SMASK (ffff) ; +RUNTEST 1 TCK; +RUNTEST 1 TCK; +// Loading device with a 'fvfy0' instruction.  +SIR 8 TDI (ef) ; +RUNTEST 1 TCK; +RUNTEST 50 TCK; +SDR $BSIZE2$ TDI ($FILL(0xFF,BSIZEB2)$) SMASK ($FILL(0xFF,BSIZEB2)$) TDO ($FILL(0xFF,BSIZEB2)$) MASK ($FILL(0xFF,BSIZEB2)$) ; +--END + +--LITERAL START +//Loading device with 'conld' instruction. +SIR 8 TDI (f0) ; +RUNTEST 110000 TCK; +//Loading device with 'ispen' instruction. +SIR 8 TDI (e8) ; +SDR 6 TDI (34) SMASK (3f) ; +//Loading device with 'ispen' instruction. +SIR 8 TDI (e8) ; +SDR 6 TDI (34) ; +// Loading device with a 'faddr' instruction.  +SIR 8 TDI (eb) TDO (00) MASK (00) ; +SDR 16 TDI (8000) SMASK (ffff) ; +RUNTEST 1 TCK; +RUNTEST 1 TCK; +// Loading device with a 'fdata3' instruction.  +SIR 8 TDI (f3) TDO (00) ; +SDR 3 TDI (07) SMASK (07) TDO (00) MASK (00) ; +// Loading device with a 'fpgm' instruction.  +SIR 8 TDI (ea) TDO (00) ; +RUNTEST 1 TCK; +RUNTEST 14000 TCK; +// Loading device with a 'fvfy3' instruction.  +SIR 8 TDI (e2) TDO (00) ; +RUNTEST 1 TCK; +RUNTEST 50 TCK; +SDR 3 TDI (07) TDO (07) ; +//Loading device with 'conld' instruction. +SIR 8 TDI (f0) ; +RUNTEST 110000 TCK; +//Loading device with 'ispen' instruction. +SIR 8 TDI (e8) ; +SDR 6 TDI (34) SMASK (3f) ; +//Loading device with 'conld' instruction. +SIR 8 TDI (f0) ; +RUNTEST 110000 TCK; +// Loading device with a 'config' instruction.  +SIR 8 TDI (ee) TDO (00) ; +RUNTEST 50 TCK; +//Loading device with 'bypass' instruction. +SIR 8 TDI (ff) ; +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 8 TDI (ff) ; +SDR 1 TDI (00) SMASK (01) ; +--END | 
