add new urjtag-based code, fjmem
[fleet.git] / misc / bsdl / xcf32p.bsd
diff --git a/misc/bsdl/xcf32p.bsd b/misc/bsdl/xcf32p.bsd
new file mode 100644 (file)
index 0000000..5e4e97d
--- /dev/null
@@ -0,0 +1,259 @@
+--$ XILINX$RCSfile: xcf32p.bsd,v $
+--  XILINX Revision: 1.3  
+-------------------------------------------------------------------------------
+-- Copyright (c) 2006 Xilinx, Inc.
+-- This design is confidential and proprietary of Xilinx, All Rights Reserved.
+-------------------------------------------------------------------------------
+--   ____  ____
+--  /   /\/   /
+-- /___/  \  /  Vendor:         Xilinx
+-- \   \   \/   Version:        v1.0 (PROM BSDL template version)
+--  \   \       Application:    Generate_Prom_Bsdl_Files.pl, 1.00
+--  /   /       Filename:       xcf32p.bsd
+-- /___/   /\   Generated:      Wed Oct 11 19:34:15 2006
+-- \   \  /  \  State:           State: PRELIMINARY  
+--  \___\/\___\                  
+--
+-- Device:      XCF32P
+-- Package:     GENERIC (using VO48 package as basis)
+-- Purpose:     IEEE 1149.1 BSDL file
+-- Reference:   None
+-- Revisions:   
+--
+------------------------------------------------------------------------------
+-- Technical Support:
+--
+-- Find the latest version of this BSDL file, find technical support answers, 
+--  or find contact information at:  http://www.support.xilinx.com
+--
+------------------------------------------------------------------------------
+-- Special Instructions:
+--
+-- This BSDL file reflects the pre-configuration behavior. To reflect
+--  the post-configuration JTAG behavior (if any), edit this file as 
+--  described below:
+--      1. Rename file and entity if necessary to avoid name collisions.
+--      2. Modify USERCODE value in USERCODE_REGISTER declaration.
+------------------------------------------------------------------------------
+-- BSDL Silicon Validation Information
+--  None.
+------------------------------------------------------------------------------
+entity XCF32P is
+
+generic (PHYSICAL_PIN_MAP : string := "VO48");
+
+port (
+    BUSY:       in      bit;
+    CE:         in      bit;
+    CEO:        out     bit;
+    CF:         inout   bit;
+    CLK:        in      bit;
+    CLKOUT:     out     bit;
+    D0:         out     bit;
+    D1:         out     bit;
+    D2:         out     bit;
+    D3:         out     bit;
+    D4:         out     bit;
+    D5:         out     bit;
+    D6:         out     bit;
+    D7:         out     bit;
+    EN_EXT_SEL: in      bit;
+    GND:        linkage bit_vector (1 to 7);
+    OE_RESET:   inout   bit;
+    REV_SEL0:   in      bit;
+    REV_SEL1:   in      bit;
+    TCK:        in      bit;
+    TDI:        in      bit;
+    TDO:        out     bit;
+    TMS:        in      bit;
+    VCCINT:     linkage bit_vector (1 to 3);
+    VCCJ:       linkage bit;
+    VCCO:       linkage bit_vector (1 to 4);
+    DNC:        linkage bit_vector (1 to 11)
+); --end port list
+
+use STD_1149_1_2001.all;
+
+attribute COMPONENT_CONFORMANCE of XCF32P : entity is 
+    "STD_1149_1_2001";
+
+attribute PIN_MAP of XCF32P : entity is 
+    PHYSICAL_PIN_MAP;
+
+constant VO48: PIN_MAP_STRING:=
+    "BUSY       : 5," &
+    "CE         : 13," &
+    "CEO        : 10," &
+    "CF         : 6," &
+    "CLK        : 12," &
+    "CLKOUT     : 9," &
+    "D0         : 28," &
+    "D1         : 29," &
+    "D2         : 32," &
+    "D3         : 33," &
+    "D4         : 43," &
+    "D5         : 44," &
+    "D6         : 47," &
+    "D7         : 48," &
+    "EN_EXT_SEL : 25," &
+    "OE_RESET   : 11," &
+    "REV_SEL0   : 26," &
+    "REV_SEL1   : 27," &
+    "TCK        : 20," &
+    "TDI        : 19," &
+    "TDO        : 22," &
+    "TMS        : 21," &
+    "GND        : (2,7,17,23,31,36,46)," &
+    "VCCINT     : (4,15,34)," &
+    "VCCJ       : 24," &
+    "VCCO       : (8,30,38,45)," &
+    "DNC        : (1,3,14,16,18,35,37,39,40,41,42)";
+
+attribute TAP_SCAN_IN    of TDI : signal is true;
+attribute TAP_SCAN_MODE  of TMS : signal is true;
+attribute TAP_SCAN_OUT   of TDO : signal is true;
+attribute TAP_SCAN_CLOCK of TCK : signal is (15.00e+06, BOTH);
+
+attribute INSTRUCTION_LENGTH of XCF32P : entity is 
+    16;
+
+attribute INSTRUCTION_OPCODE of XCF32P : entity is
+    "BYPASS             (1111111111111111)," &
+    "SAMPLE             (0000000000000001)," &
+    "PRELOAD            (0000000000000001)," &
+    "EXTEST             (0000000000000000)," &
+    "IDCODE             (0000000011111110)," &
+    "USERCODE           (0000000011111101)," &
+    "HIGHZ              (0000000011111100)," &
+    "CLAMP              (0000000011111010)," &
+    "ISC_ENABLE         (0000000011101000)," &
+    "XSC_ENABLEC        (0000000011101001)," &
+    "ISC_PROGRAM        (0000000011101010)," &
+    "ISC_ADDRESS_SHIFT  (0000000011101011)," &
+    "ISC_READ           (0000000011111000)," &
+    "ISC_ERASE          (0000000011101100)," &
+    "ISC_DATA_SHIFT     (0000000011101101)," &
+    "XSC_READ           (0000000011101111)," &
+    "XSC_BLANK_CHECK    (0000000000001101)," &
+    "ISC_DISABLE        (0000000011110000)," &
+    "ISC_NOOP           (0000000011100000)," &
+    "XSC_CONFIG         (0000000011101110)," &
+    "XSC_CLR_STATUS     (0000000011110100)," &
+    "XSC_OP_STATUS      (0000000011100011)," &
+    "XSC_MFG_READ       (0000000011110001)," &
+    "XSC_CONFIG_PLUS    (0000000011110110)," &
+    "XSC_UNLOCK         (1010101001010101)," &
+    "XSC_DATA_BTC       (0000000011110010)," &
+    "XSC_DATA_WRPT      (0000000011110111)," &
+    "XSC_DATA_RDPT      (0000000000000100)," &
+    "XSC_DATA_UC        (0000000000000110)," &
+    "XSC_DATA_CC        (0000000000000111)," &
+    "XSC_DATA_DONE      (0000000000001001)," &
+    "XSC_DATA_CCB       (0000000000001100)," &
+    "XSC_DATA_BLANK     (0000000011110101)," &
+    "XSC_DATA_SUCR      (0000000000001110)," &
+    "XSC_ADDRESS_DUMP   (0000000011100110)";
+                        
+attribute INSTRUCTION_CAPTURE of XCF32P: entity is 
+    "XXXXXXXXXXXXXX01";
+-- IR[15:9] = 0000000 (Not used)
+-- IR[8:7]  = Previous ISC Operation Result (10=success; 01=fail; 00/11=N/A)
+-- IR[6:5]  = Erase/Program Result (10=success; 01=fail; 00/11=N/A)
+-- IR[4]    = Erase/Program Status (1=ready; 0=busy)
+-- IR[3]    = ISC/Normal Mode (1=ISC mode; 0=normal download mode)
+-- IR[2]    = 1532 DONE Status For Selected Revision (1 = DONE; 0 = Not DONE)
+-- IR[1:0]  = 01 as defined by IEEE STD 1149.1
+
+attribute IDCODE_REGISTER of XCF32P: entity is
+    "XXXX" &                -- version
+    "0101000001011001" &    -- part number
+    "00001001001" &         -- manufacturer's id
+    "1";                    -- required by IEEE STD 1149.1
+
+attribute USERCODE_REGISTER of XCF32P: entity is
+    "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
+
+
+attribute REGISTER_ACCESS of XCF32P : entity is
+    "BOUNDARY           (EXTEST, SAMPLE, PRELOAD),"&
+    "BYPASS             (BYPASS, HIGHZ, CLAMP, ISC_DISABLE, XSC_CONFIG, XSC_CONFIG_PLUS)," &
+    "DEVICE_ID          (IDCODE, USERCODE),"&
+    "ISPENABLE[8]       (ISC_ENABLE, XSC_ENABLEC),"&
+    "DATA0[256]         (ISC_DATA_SHIFT)," &
+    "ISC_RDATA[256]     (ISC_READ),"&
+       "DATA1[8388608]     (XSC_READ),"&
+    "ADDRESS[24]        (ISC_ADDRESS_SHIFT),"&
+    "ISC_SECTOR[24]     (ISC_ERASE, XSC_UNLOCK),"&
+    "DATA_UC[32]        (XSC_DATA_UC)," &
+       "ISC_DEFAULT[8]     (ISC_PROGRAM, ISC_NOOP, XSC_OP_STATUS, XSC_CLR_STATUS),"&
+       "XSC_MFG[8]         (XSC_MFG_READ),"&
+       "BLANK[8]           (XSC_BLANK_CHECK, XSC_DATA_BLANK),"&
+       "DATA_BTC[32]       (XSC_DATA_BTC),"&
+       "DATA_WRPT[16]      (XSC_DATA_WRPT),"&
+       "DATA_RDPT[16]      (XSC_DATA_RDPT),"&
+       "DATA_CC[256]       (XSC_DATA_CC),"&
+       "DONE[8]            (XSC_DATA_DONE),"&
+       "DATA_CCB[16]       (XSC_DATA_CCB),"&
+       "DATA_SUCR[16]      (XSC_DATA_SUCR),"&
+       "ADDR_DUMP[16]      (XSC_ADDRESS_DUMP)";
+
+attribute BOUNDARY_LENGTH of XCF32P : entity is 
+    32;
+
+attribute BOUNDARY_REGISTER of XCF32P : entity is
+--  cellnum (type, port,        function,   safe[,  ccell,  disval, disrslt])
+        " 0 (BC_1, CE ,         input,      X                           )," &
+        " 1 (BC_1, CLK,         input,      X                           )," &
+        " 2 (BC_1, *,           controlr,   0                           )," &
+        " 3 (BC_1, OE_RESET,    output3,    X,      2,      0,      Z   )," &
+        " 4 (BC_1, OE_RESET,    input,      X                           )," &
+        " 5 (BC_1, *,           controlr,   0                           )," &
+        " 6 (BC_1, CEO,         output3,    X,      5,      0,      Z   )," &
+        " 7 (BC_1, *,           controlr,   0                           )," &
+        " 8 (BC_1, CLKOUT,      output3,    X,      7,      0,      Z   )," &
+        " 9 (BC_1, *,           controlr,   0                           )," &
+        "10 (BC_1, CF ,         output3,    X,      9,      0,      Z   )," &
+        "11 (BC_1, CF ,         input,      X                           )," &
+        "12 (BC_1, BUSY,        input,      X                           )," &
+        "13 (BC_1, *,           controlr,   0                           )," &
+        "14 (BC_1, D7,          output3,    X,      13,     0,      Z   )," &
+        "15 (BC_1, *,           controlr,   0                           )," &
+        "16 (BC_1, D6,          output3,    X,      15,     0,      Z   )," &
+        "17 (BC_1, *,           controlr,   0                           )," &
+        "18 (BC_1, D5,          output3,    X,      17,     0,      Z   )," &
+        "19 (BC_1, *,           controlr,   0                           )," &
+        "20 (BC_1, D4,          output3,    X,      19,     0,      Z   )," &
+        "21 (BC_1, *,           controlr,   0                           )," &
+        "22 (BC_1, D3,          output3,    X,      21,     0,      Z   )," &
+        "23 (BC_1, *,           controlr,   0                           )," &
+        "24 (BC_1, D2,          output3,    X,      23,     0,      Z   )," &
+        "25 (BC_1, *,           controlr,   0                           )," &
+        "26 (BC_1, D1,          output3,    X,      25,     0,      Z   )," &
+        "27 (BC_1, *,           controlr,   0                           )," &
+        "28 (BC_1, D0,          output3,    X,      27,     0,      Z   )," &
+        "29 (BC_1, REV_SEL1,    input,      X                           )," &
+        "30 (BC_1, REV_SEL0,    input,      X                           )," &
+        "31 (BC_1, EN_EXT_SEL,  input,      X                           )";
+
+attribute DESIGN_WARNING of XCF32P : entity is
+    "The XCF32P TAP PAUSE states are not " &
+        "fully compliant with the IEEE 1149.1 specification. The active instruction " &
+        "or data shift register re-captures new values when the TAP is transitioned " &
+        "from a PAUSE state, through the corresponding EXIT2 state, and back to the " &
+        "original SHIFT state. The following are potential methods that can be used " &
+        "to avoid this issue: " &
+            "1. Avoid using the TAP PAUSE-IR or PAUSE-DR state to temporarily pause " &
+                "a shift operation. " &
+            "2. Stop (gate) the TCK within the SHIFT-IR or SHIFT-DR state to pause " &
+                "a the shift operation instead of parking the TAP in the corresponding " &
+                "PAUSE state. " &
+            "3. Put this XCF32P device on a separate " &
+                "boundary-scan chain that does not encounter the TAP PAUSE states. " &
+    "Do not drive CF low when CF is connected to the PROGRAM/PROG_B pin of " &
+        "a Virtex, Virtex-E, Virtex-4, Spartan-II, Spartan-IIE FPGA and when " &
+        "the FPGA is in the same boundary-scan chain as this XCF32P. " &
+        "A Low applied to the PROGRAM/PROG_B pin of these FPGAs resets the TAP " &
+        "in these FPGAs.";
+
+end XCF32P;
+