summaryrefslogtreecommitdiffstats
path: root/fpga/xilinx/programmer/bit2svf/templates/alg_XCFP.svft
diff options
context:
space:
mode:
Diffstat (limited to 'fpga/xilinx/programmer/bit2svf/templates/alg_XCFP.svft')
-rw-r--r--fpga/xilinx/programmer/bit2svf/templates/alg_XCFP.svft208
1 files changed, 208 insertions, 0 deletions
diff --git a/fpga/xilinx/programmer/bit2svf/templates/alg_XCFP.svft b/fpga/xilinx/programmer/bit2svf/templates/alg_XCFP.svft
new file mode 100644
index 0000000..214fa4a
--- /dev/null
+++ b/fpga/xilinx/programmer/bit2svf/templates/alg_XCFP.svft
@@ -0,0 +1,208 @@
+//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