From d94bf35fe7f2c30c5ea333eb0c97c20f29da089a Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 20 Nov 2012 01:52:36 -0600 Subject: [PATCH] Add initial untested support for Spartan 6 devices --- .../programmer/bit2svf/templates/DEVICES | 5 +- .../bit2svf/templates/alg_Spartan_6.svft | 80 +++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 fpga/xilinx/programmer/bit2svf/templates/alg_Spartan_6.svft diff --git a/fpga/xilinx/programmer/bit2svf/templates/DEVICES b/fpga/xilinx/programmer/bit2svf/templates/DEVICES index 86f53a9..1e1eb63 100644 --- a/fpga/xilinx/programmer/bit2svf/templates/DEVICES +++ b/fpga/xilinx/programmer/bit2svf/templates/DEVICES @@ -36,7 +36,10 @@ XC3S4000, f1448093, 0fffffff, alg_Spartan_3, VOID , 0l XC3S5000, f1450093, 0fffffff, alg_Spartan_3, VOID , 0l // Virtex 4 family (10 bits IR) -XC4VLX25, f167c093, 0fffffff, alg_Virtex_4, VOID, 0l +XC4VLX25, f167c093, 0fffffff, alg_Virtex_4 , VOID , 0l + +// Spartan 6 family +XC6SLX16, f4002093, 0fffffff, alg_Spartan_6, VOID , 0l //EOF diff --git a/fpga/xilinx/programmer/bit2svf/templates/alg_Spartan_6.svft b/fpga/xilinx/programmer/bit2svf/templates/alg_Spartan_6.svft new file mode 100644 index 0000000..5e64c24 --- /dev/null +++ b/fpga/xilinx/programmer/bit2svf/templates/alg_Spartan_6.svft @@ -0,0 +1,80 @@ +//Info: Sample template for programming XILINX Spartan 6 FPGA +//Info: Created with output from Impact + +--LITERAL START +TRST OFF; +ENDIR IDLE; +ENDDR IDLE; +STATE RESET; +STATE IDLE; +FREQUENCY 1E6 HZ; +//Operation: Program -p 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) SMASK (3f) ; +SDR 32 TDI (00000000) SMASK (ffffffff) TDO (f4002093) MASK (0fffffff) ; +//Boundary Scan Chain Contents +//Position 1: xc6slx16 +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 (f4002093) ; +//Loading device with 'bypass' instruction. +SIR 6 TDI (3f) ; +// Loading device with a `jprogram` instruction. +SIR 6 TDI (0b) ; +// Loading device with a `cfg_in` instruction. +SIR 6 TDI (05) ; +RUNTEST 10000 TCK; +STATE RESET; +// Loading device with a `cfg_in` instruction. +SIR 6 TDI (05) ; +SDR 32 TDI (00000000) SMASK (ffffffff) ; +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 24 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 24 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