-- ********************************************************************
-- * ispLSI5128VE 128 pin TQFP BSDL Model                             *
-- *                                                                  *
-- * File Version:      1.05                                          *
-- * File Date:         02/18/05                                      *
-- *                                                                  *
-- * Standard Test Access Port and Boundary-Scan Architecture         *
-- * VHDL Description File                                            *
-- *                                                                  *
-- * This BSDL can be used for Boundary-Scan Test as well as          *
-- * ISC 1532 Programming support.                                    *
-- *                                                                  *
-- * This BSDL file is created according to:                          *
-- * - IEEE 1532 2001 spec.                                           *
-- * - IEEE 1149.1 1994 spec.                                         *
-- *                                                                  *
-- * IEEE 1149.1 compliance and syntax verified by:                   *
-- * - Lattice BSDL Syntax Checker                                    *
-- * - Agilent BSDL Syntax Checker                                    *
-- * - JTAG Technologies BSDL Verifier                                *
-- * - Goepel BSDL Syntax Checker V3.0.1                              *
-- *                                                                  *
-- *  Copyright 2000 - 2005                                           *
-- *  Lattice Semiconductor Corporation                               *
-- *  5555 NE Moore Ct.                                               *
-- *  Hillsboro, OR 97124                                             *
-- *                                                                  *
-- *  All rights reserved.  No part of this program or publication    *
-- *  may be reproduced, transmitted, transcribed, stored in a        *
-- *  retrieval system, or translated into any language or            *
-- *  computer language, in any form or by any means without this     *
-- *  notice appearing within.                                        *
-- ********************************************************************
-- *                                                                  *
-- *                           IMPORTANT                              *
-- *                                                                  *
-- * The following is a BSDL file that tests all of the I/O pins      *
-- * as bidirectional pins.  The functionality of the BSCAN register  *
-- * for this device is independent of the pattern programmed         *
-- * into the device.  An additional programming step is not          *
-- * required to configure the I/O pins prior to BSCAN test.          *
-- *                                                                  *
-- * This file contains additional information that may cause a BSDL  *
-- * parser to reject or error if your parser does not contain the    *
-- * 1532 library. BSDL files without ISC extensions are available    *
-- * on the Lattice website at www.latticesemi.com.                   *
-- *                                                                  *
-- * For Further assistance, please contact Tech Support at           *
-- *       1-800-LATTICE or techsupport@latticesemi.com               *
-- ********************************************************************
-- *                                                                  *
-- *                          REVISION HISTORY                        *
-- *                                                                  *
-- * Rev 1.05: 02/18/2005                                             *
-- *  - rcs: Changed ISC_PROGRAM to ISC_PROGRAM, and it's             *
-- *         REGISTER_ACCESS to ISC_PDATA.                            *
-- *  - rcs: Changed proc_program(security) to proc_program(security) *
-- *  - rcs: Changed proc_program(array) to proprietary.              *
-- *  - rcs: Changed proc_program(usercode) to proprietary.           *
-- * Rev 1.04: 11/29/2001                                             *
-- *  - Updated header.                                               *
-- * Rev 1.03: 09/20/2001                                             *
-- *  - Changed ISC_READ from 0x12 to 0x0A.                           *
-- *  - Added address shift to ISC_PROGRAM in flow_program.           *
-- * Rev 1.02: 08/07/2001                                             *
-- *  - Rename ISC_PROGRAM and LSC_PROGRAM_USERCODE to                *
-- *    ISC_PROGRAM and LSC_PROGRAM_USERCODE and move them to Lattice *
-- *    specific instruction section.                                 *
-- *  - Make proc_verify(idcode) mandatory.                           *
-- *  - Modified ISC_NOOP opcode from 11111 to 11001 and remove 11001 *
-- *    from PRIVATE instruction list.                                *
-- * Rev 1.01: 7/10/2001                                              *
-- *  - Take ISC Instructions out from the PRIVATE instruction list   *
-- *  - Changes ISC Erase instruction to "00011".                     *
-- *  - Moved HIGHZ instruction from Lattice Specific instruction to  *
-- *    1149.1 instruction list.                                      *
-- *  - Remove ISC_SECURITY attribute.                                *
-- *  - Simplify verify and read flow from ISC_READ & ISC_DATA_SHIFT  *
-- *    to ISC_READ only.                                             *
-- *  - Move UBE instruction to Private instruction list.             *
-- * Rev 1.00:                                                        *
-- *  - Initial version.                                              *
-- *                                                                  *
-- ********************************************************************

   -- The Overall Structure of the Entity Description
   entity ispLSI5128VE_XXLT128 is

   -- Generic Parameter Statement
   generic (PHYSICAL_PIN_MAP : string := "TQFP_128");

   -- Logical Port Description Statement
   port ( TDI: in bit;                          -- JTAG input pin
          TMS: in bit;                          -- JTAG input pin
          TCK: in bit;                          -- JTAG input pin
          TDO: out bit;                         -- JTAG output pin
          RESET: in bit;                        -- Active low RESET pin
          GOE: in bit_vector (0 to 1);          -- Global Output Enable
          Clk: in bit_vector (0 to 1);          -- Clock input pins
          BIp: inout bit_vector (0 to 95);      -- Bi-Directional pins
          VCC: linkage bit_vector (0 to 11);    -- VCC pins
          GND: linkage bit_vector (0 to 10)     -- GND pins
          );

   -- Version Control
   use STD_1149_1_1994.all;                   -- 1149.1-1994 attributes
   use STD_1532_2001.all;

   -- Component Conformance Statement
   attribute COMPONENT_CONFORMANCE of ispLSI5128VE_XXLT128 : entity is
   "STD_1149_1_1993";

   -- Device Package Pin Mapping
   attribute PIN_MAP of ispLSI5128VE_XXLT128 : entity is PHYSICAL_PIN_MAP;

   constant TQFP_128: PIN_MAP_STRING:=

   "TDI:20, "&                                  -- JTAG (TDI) input pin
   "TMS:18, "&                                  -- JTAG (TMS) input pin
   "TCK:19, "&                                  -- JTAG (TCK) input pin
   "TDO:83, "&                                  -- JTAG (TDO) output pin
   "RESET:85, "&                                -- RESET input pin
   "GOE:(   51,   52),                       "& -- Global OE pins
   "Clk:(  113,  114),                       "& -- Clock pins
   "BIp:(   22,   23,   24,   25,   26,   28,   30,  "& -- I/O pins
   "        31,   32,   33,   34,   35,   36,   38,  "& -- I/O pins
   "        39,   41,   42,   43,   44,   45,   46,  "& -- I/O pins
   "        47,   48,   49,   54,   55,   56,   57,  "& -- I/O pins
   "        58,   59,   60,   61,   62,   63,   64,  "& -- I/O pins
   "        66,   68,   69,   70,   71,   72,   74,  "& -- I/O pins
   "        76,   77,   78,   79,   80,   81,   87,  "& -- I/O pins
   "        88,   89,   90,   91,   92,   93,   94,  "& -- I/O pins
   "        95,   97,   98,   99,  101,  102,  103,  "& -- I/O pins
   "       104,  105,  106,  107,  108,  109,  111,  "& -- I/O pins
   "       112,  116,  117,  118,  119,  120,  121,  "& -- I/O pins
   "       122,  124,  126,  127,  128,    1,    2,  "& -- I/O pins
   "         3,    4,    5,    6,    8,   10,   11,  "& -- I/O pins
   "        12,   13,   14,   15,   16),             "& -- I/O pins
   "VCC:(    9,   21,   29,   40,   53,   65,   75,  "& -- VCC pins
   "        86,   96,  115,  125,   84),             "& -- VCC pins
   "GND:(    7,   17,   27,   37,   50,   67,   73,  "& -- GND pins
   "        82,  100,  110,  123)                   "; -- GND pins

   -- Scan Port Identification
   attribute TAP_SCAN_CLOCK of TCK : Signal is (10.0e6, BOTH);
   attribute TAP_SCAN_IN of TDI : Signal is True;
   attribute TAP_SCAN_OUT of TDO : Signal is True;
   attribute TAP_SCAN_MODE of TMS : Signal is True;

   -- Instruction Register Description
   attribute INSTRUCTION_LENGTH of ispLSI5128VE_XXLT128 : entity is 5;
   attribute INSTRUCTION_OPCODE of ispLSI5128VE_XXLT128 : entity is

-- 1149.1 instructions
      "BYPASS                  (11111), "&
      "SAMPLE                  (11100), "&
      "EXTEST                  (00000), "&
      "HIGHZ                   (11000), "&
      "IDCODE                  (10110), "&
      "USERCODE                (10111), "&

-- ISC instructions
      "ISC_NOOP                (11001),"&
      "ISC_READ                (01010),"&
      "ISC_ERASE               (00011),"&
      "ISC_ENABLE              (10101),"&
      "ISC_DISABLE             (11110),"&
      "ISC_DISCHARGE           (10100),"&
      "ISC_PROGRAM_SECURITY    (01001),"&
      "ISC_DATA_SHIFT          (00010),"&
      "ISC_ADDRESS_SHIFT       (00001),"&
      "ISC_PROGRAM             (00111),"&

   -- Lattice Specific and Private instructions
      "LSC_PROGRAM_USERCODE    (11010),"&
      "PRIVATE     (00100,00101,00110,01000,10010,"&
                   "01100,01110,01111,10001,10011,"&
                   "01011,11011,11101,10000)";

   attribute INSTRUCTION_CAPTURE of 
                   ispLSI5128VE_XXLT128 : entity is "11001";
   attribute INSTRUCTION_PRIVATE of 
                   ispLSI5128VE_XXLT128 : entity is "PRIVATE";

   -- IDCODE Definition
   attribute IDCODE_REGISTER of ispLSI5128VE_XXLT128: entity is
   "0000"&                               -- version 
   "0000001101101100"&                   -- part number (036C)
   "00000100001"&                        -- manufacturer's identity 
   "1";                                  -- required by 1149.1

   -- USERCODE Definition
   attribute USERCODE_REGISTER of ispLSI5128VE_XXLT128: entity is
   "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

   -- Register Access Description
   attribute REGISTER_ACCESS of ispLSI5128VE_XXLT128 : entity is
      "BOUNDARY         (SAMPLE, EXTEST), "&
      "BYPASS           (BYPASS, HIGHZ), "&
      "DEVICE_ID        (USERCODE, IDCODE), "&
      "ISC_ADDRESS[318]       (ISC_ADDRESS_SHIFT), "&
      "ISC_PDATA[318]         (ISC_PROGRAM),"&
      "ISC_DATA[326]    (ISC_DATA_SHIFT), "&
      "ISC_Rdata[326]   (ISC_READ), "&
      "ISC_DEFAULT[1]   (LSC_PROGRAM_USERCODE, ISC_PROGRAM_SECURITY, "&
      "                  ISC_DISCHARGE, ISC_DISABLE, ISC_ENABLE, "&
      "                  ISC_ERASE, ISC_NOOP)";

   -- *****************************************************************
   -- Boundary Scan Register Description, Cell 0 is the closest to TDO 
   -- *****************************************************************
   attribute BOUNDARY_LENGTH of ispLSI5128VE_XXLT128 : entity is 293;
   attribute BOUNDARY_REGISTER of ispLSI5128VE_XXLT128 : entity is 

   -- num   cell    port        function  safe  [ccell  disval  rslt] 
   "0292   (BC_1,   *,          control,  0), "&
   "0291   (BC_1,   BIp(0),     output3,  X,      292,  0,      Z), "&
   "0290   (BC_1,   BIp(0),     input,    X), "&
   "0289   (BC_1,   *,          control,  0), "&
   "0288   (BC_1,   BIp(1),     output3,  X,      289,  0,      Z), "&
   "0287   (BC_1,   BIp(1),     input,    X), "&
   "0286   (BC_1,   *,          control,  0), "&
   "0285   (BC_1,   BIp(2),     output3,  X,      286,  0,      Z), "&
   "0284   (BC_1,   BIp(2),     input,    X), "&
   "0283   (BC_1,   *,          control,  0), "&
   "0282   (BC_1,   BIp(3),     output3,  X,      283,  0,      Z), "&
   "0281   (BC_1,   BIp(3),     input,    X), "&
   "0280   (BC_1,   *,          control,  0), "&
   "0279   (BC_1,   BIp(4),     output3,  X,      280,  0,      Z), "&
   "0278   (BC_1,   BIp(4),     input,    X), "&
   "0277   (BC_1,   *,          control,  0), "&
   "0276   (BC_1,   BIp(5),     output3,  X,      277,  0,      Z), "&
   "0275   (BC_1,   BIp(5),     input,    X), "&
   "0274   (BC_1,   *,          control,  0), "&
   "0273   (BC_1,   BIp(6),     output3,  X,      274,  0,      Z), "&
   "0272   (BC_1,   BIp(6),     input,    X), "&
   "0271   (BC_1,   *,          control,  0), "&
   "0270   (BC_1,   BIp(7),     output3,  X,      271,  0,      Z), "&
   "0269   (BC_1,   BIp(7),     input,    X), "&
   "0268   (BC_1,   *,          control,  0), "&
   "0267   (BC_1,   BIp(8),     output3,  X,      268,  0,      Z), "&
   "0266   (BC_1,   BIp(8),     input,    X), "&
   "0265   (BC_1,   *,          control,  0), "&
   "0264   (BC_1,   BIp(9),     output3,  X,      265,  0,      Z), "&
   "0263   (BC_1,   BIp(9),     input,    X), "&
   "0262   (BC_1,   *,          control,  0), "&
   "0261   (BC_1,   BIp(10),    output3,  X,      262,  0,      Z), "&
   "0260   (BC_1,   BIp(10),    input,    X), "&
   "0259   (BC_1,   *,          control,  0), "&
   "0258   (BC_1,   BIp(11),    output3,  X,      259,  0,      Z), "&
   "0257   (BC_1,   BIp(11),    input,    X), "&
   "0256   (BC_1,   *,          control,  0), "&
   "0255   (BC_1,   BIp(12),    output3,  X,      256,  0,      Z), "&
   "0254   (BC_1,   BIp(12),    input,    X), "&
   "0253   (BC_1,   *,          control,  0), "&
   "0252   (BC_1,   BIp(13),    output3,  X,      253,  0,      Z), "&
   "0251   (BC_1,   BIp(13),    input,    X), "&
   "0250   (BC_1,   *,          control,  0), "&
   "0249   (BC_1,   BIp(14),    output3,  X,      250,  0,      Z), "&
   "0248   (BC_1,   BIp(14),    input,    X), "&
   "0247   (BC_1,   *,          control,  0), "&
   "0246   (BC_1,   BIp(15),    output3,  X,      247,  0,      Z), "&
   "0245   (BC_1,   BIp(15),    input,    X), "&
   "0244   (BC_1,   *,          control,  0), "&
   "0243   (BC_1,   BIp(16),    output3,  X,      244,  0,      Z), "&
   "0242   (BC_1,   BIp(16),    input,    X), "&
   "0241   (BC_1,   *,          control,  0), "&
   "0240   (BC_1,   BIp(17),    output3,  X,      241,  0,      Z), "&
   "0239   (BC_1,   BIp(17),    input,    X), "&
   "0238   (BC_1,   *,          control,  0), "&
   "0237   (BC_1,   BIp(18),    output3,  X,      238,  0,      Z), "&
   "0236   (BC_1,   BIp(18),    input,    X), "&
   "0235   (BC_1,   *,          control,  0), "&
   "0234   (BC_1,   BIp(19),    output3,  X,      235,  0,      Z), "&
   "0233   (BC_1,   BIp(19),    input,    X), "&
   "0232   (BC_1,   *,          control,  0), "&
   "0231   (BC_1,   BIp(20),    output3,  X,      232,  0,      Z), "&
   "0230   (BC_1,   BIp(20),    input,    X), "&
   "0229   (BC_1,   *,          control,  0), "&
   "0228   (BC_1,   BIp(21),    output3,  X,      229,  0,      Z), "&
   "0227   (BC_1,   BIp(21),    input,    X), "&
   "0226   (BC_1,   *,          control,  0), "&
   "0225   (BC_1,   BIp(22),    output3,  X,      226,  0,      Z), "&
   "0224   (BC_1,   BIp(22),    input,    X), "&
   "0223   (BC_1,   *,          control,  0), "&
   "0222   (BC_1,   BIp(23),    output3,  X,      223,  0,      Z), "&
   "0221   (BC_1,   BIp(23),    input,    X), "&
   "0220   (BC_1,   GOE(0),     input,    X), "&
   "0219   (BC_1,   GOE(1),     input,    X), "&
   "0218   (BC_1,   *,          control,  0), "&
   "0217   (BC_1,   BIp(24),    output3,  X,      218,  0,      Z), "&
   "0216   (BC_1,   BIp(24),    input,    X), "&
   "0215   (BC_1,   *,          control,  0), "&
   "0214   (BC_1,   BIp(25),    output3,  X,      215,  0,      Z), "&
   "0213   (BC_1,   BIp(25),    input,    X), "&
   "0212   (BC_1,   *,          control,  0), "&
   "0211   (BC_1,   BIp(26),    output3,  X,      212,  0,      Z), "&
   "0210   (BC_1,   BIp(26),    input,    X), "&
   "0209   (BC_1,   *,          control,  0), "&
   "0208   (BC_1,   BIp(27),    output3,  X,      209,  0,      Z), "&
   "0207   (BC_1,   BIp(27),    input,    X), "&
   "0206   (BC_1,   *,          control,  0), "&
   "0205   (BC_1,   BIp(28),    output3,  X,      206,  0,      Z), "&
   "0204   (BC_1,   BIp(28),    input,    X), "&
   "0203   (BC_1,   *,          control,  0), "&
   "0202   (BC_1,   BIp(29),    output3,  X,      203,  0,      Z), "&
   "0201   (BC_1,   BIp(29),    input,    X), "&
   "0200   (BC_1,   *,          control,  0), "&
   "0199   (BC_1,   BIp(30),    output3,  X,      200,  0,      Z), "&
   "0198   (BC_1,   BIp(30),    input,    X), "&
   "0197   (BC_1,   *,          control,  0), "&
   "0196   (BC_1,   BIp(31),    output3,  X,      197,  0,      Z), "&
   "0195   (BC_1,   BIp(31),    input,    X), "&
   "0194   (BC_1,   *,          control,  0), "&
   "0193   (BC_1,   BIp(32),    output3,  X,      194,  0,      Z), "&
   "0192   (BC_1,   BIp(32),    input,    X), "&
   "0191   (BC_1,   *,          control,  0), "&
   "0190   (BC_1,   BIp(33),    output3,  X,      191,  0,      Z), "&
   "0189   (BC_1,   BIp(33),    input,    X), "&
   "0188   (BC_1,   *,          control,  0), "&
   "0187   (BC_1,   BIp(34),    output3,  X,      188,  0,      Z), "&
   "0186   (BC_1,   BIp(34),    input,    X), "&
   "0185   (BC_1,   *,          control,  0), "&
   "0184   (BC_1,   BIp(35),    output3,  X,      185,  0,      Z), "&
   "0183   (BC_1,   BIp(35),    input,    X), "&
   "0182   (BC_1,   *,          control,  0), "&
   "0181   (BC_1,   BIp(36),    output3,  X,      182,  0,      Z), "&
   "0180   (BC_1,   BIp(36),    input,    X), "&
   "0179   (BC_1,   *,          control,  0), "&
   "0178   (BC_1,   BIp(37),    output3,  X,      179,  0,      Z), "&
   "0177   (BC_1,   BIp(37),    input,    X), "&
   "0176   (BC_1,   *,          control,  0), "&
   "0175   (BC_1,   BIp(38),    output3,  X,      176,  0,      Z), "&
   "0174   (BC_1,   BIp(38),    input,    X), "&
   "0173   (BC_1,   *,          control,  0), "&
   "0172   (BC_1,   BIp(39),    output3,  X,      173,  0,      Z), "&
   "0171   (BC_1,   BIp(39),    input,    X), "&
   "0170   (BC_1,   *,          control,  0), "&
   "0169   (BC_1,   BIp(40),    output3,  X,      170,  0,      Z), "&
   "0168   (BC_1,   BIp(40),    input,    X), "&
   "0167   (BC_1,   *,          control,  0), "&
   "0166   (BC_1,   BIp(41),    output3,  X,      167,  0,      Z), "&
   "0165   (BC_1,   BIp(41),    input,    X), "&
   "0164   (BC_1,   *,          control,  0), "&
   "0163   (BC_1,   BIp(42),    output3,  X,      164,  0,      Z), "&
   "0162   (BC_1,   BIp(42),    input,    X), "&
   "0161   (BC_1,   *,          control,  0), "&
   "0160   (BC_1,   BIp(43),    output3,  X,      161,  0,      Z), "&
   "0159   (BC_1,   BIp(43),    input,    X), "&
   "0158   (BC_1,   *,          control,  0), "&
   "0157   (BC_1,   BIp(44),    output3,  X,      158,  0,      Z), "&
   "0156   (BC_1,   BIp(44),    input,    X), "&
   "0155   (BC_1,   *,          control,  0), "&
   "0154   (BC_1,   BIp(45),    output3,  X,      155,  0,      Z), "&
   "0153   (BC_1,   BIp(45),    input,    X), "&
   "0152   (BC_1,   *,          control,  0), "&
   "0151   (BC_1,   BIp(46),    output3,  X,      152,  0,      Z), "&
   "0150   (BC_1,   BIp(46),    input,    X), "&
   "0149   (BC_1,   *,          control,  0), "&
   "0148   (BC_1,   BIp(47),    output3,  X,      149,  0,      Z), "&
   "0147   (BC_1,   BIp(47),    input,    X), "&
   "0146   (BC_1,   RESET,      input,    X), "&
   "0145   (BC_1,   *,          control,  0), "&
   "0144   (BC_1,   BIp(95),    output3,  X,      145,  0,      Z), "&
   "0143   (BC_1,   BIp(95),    input,    X), "&
   "0142   (BC_1,   *,          control,  0), "&
   "0141   (BC_1,   BIp(94),    output3,  X,      142,  0,      Z), "&
   "0140   (BC_1,   BIp(94),    input,    X), "&
   "0139   (BC_1,   *,          control,  0), "&
   "0138   (BC_1,   BIp(93),    output3,  X,      139,  0,      Z), "&
   "0137   (BC_1,   BIp(93),    input,    X), "&
   "0136   (BC_1,   *,          control,  0), "&
   "0135   (BC_1,   BIp(92),    output3,  X,      136,  0,      Z), "&
   "0134   (BC_1,   BIp(92),    input,    X), "&
   "0133   (BC_1,   *,          control,  0), "&
   "0132   (BC_1,   BIp(91),    output3,  X,      133,  0,      Z), "&
   "0131   (BC_1,   BIp(91),    input,    X), "&
   "0130   (BC_1,   *,          control,  0), "&
   "0129   (BC_1,   BIp(90),    output3,  X,      130,  0,      Z), "&
   "0128   (BC_1,   BIp(90),    input,    X), "&
   "0127   (BC_1,   *,          control,  0), "&
   "0126   (BC_1,   BIp(89),    output3,  X,      127,  0,      Z), "&
   "0125   (BC_1,   BIp(89),    input,    X), "&
   "0124   (BC_1,   *,          control,  0), "&
   "0123   (BC_1,   BIp(88),    output3,  X,      124,  0,      Z), "&
   "0122   (BC_1,   BIp(88),    input,    X), "&
   "0121   (BC_1,   *,          control,  0), "&
   "0120   (BC_1,   BIp(87),    output3,  X,      121,  0,      Z), "&
   "0119   (BC_1,   BIp(87),    input,    X), "&
   "0118   (BC_1,   *,          control,  0), "&
   "0117   (BC_1,   BIp(86),    output3,  X,      118,  0,      Z), "&
   "0116   (BC_1,   BIp(86),    input,    X), "&
   "0115   (BC_1,   *,          control,  0), "&
   "0114   (BC_1,   BIp(85),    output3,  X,      115,  0,      Z), "&
   "0113   (BC_1,   BIp(85),    input,    X), "&
   "0112   (BC_1,   *,          control,  0), "&
   "0111   (BC_1,   BIp(84),    output3,  X,      112,  0,      Z), "&
   "0110   (BC_1,   BIp(84),    input,    X), "&
   "0109   (BC_1,   *,          control,  0), "&
   "0108   (BC_1,   BIp(83),    output3,  X,      109,  0,      Z), "&
   "0107   (BC_1,   BIp(83),    input,    X), "&
   "0106   (BC_1,   *,          control,  0), "&
   "0105   (BC_1,   BIp(82),    output3,  X,      106,  0,      Z), "&
   "0104   (BC_1,   BIp(82),    input,    X), "&
   "0103   (BC_1,   *,          control,  0), "&
   "0102   (BC_1,   BIp(81),    output3,  X,      103,  0,      Z), "&
   "0101   (BC_1,   BIp(81),    input,    X), "&
   "0100   (BC_1,   *,          control,  0), "&
   "0099   (BC_1,   BIp(80),    output3,  X,      100,   0,      Z), "&
   "0098   (BC_1,   BIp(80),    input,    X), "&
   "0097   (BC_1,   *,          control,  0), "&
   "0096   (BC_1,   BIp(79),    output3,  X,      97,   0,      Z), "&
   "0095   (BC_1,   BIp(79),    input,    X), "&
   "0094   (BC_1,   *,          control,  0), "&
   "0093   (BC_1,   BIp(78),    output3,  X,      94,   0,      Z), "&
   "0092   (BC_1,   BIp(78),    input,    X), "&
   "0091   (BC_1,   *,          control,  0), "&
   "0090   (BC_1,   BIp(77),    output3,  X,      91,   0,      Z), "&
   "0089   (BC_1,   BIp(77),    input,    X), "&
   "0088   (BC_1,   *,          control,  0), "&
   "0087   (BC_1,   BIp(76),    output3,  X,      88,   0,      Z), "&
   "0086   (BC_1,   BIp(76),    input,    X), "&
   "0085   (BC_1,   *,          control,  0), "&
   "0084   (BC_1,   BIp(75),    output3,  X,      85,   0,      Z), "&
   "0083   (BC_1,   BIp(75),    input,    X), "&
   "0082   (BC_1,   *,          control,  0), "&
   "0081   (BC_1,   BIp(74),    output3,  X,      82,   0,      Z), "&
   "0080   (BC_1,   BIp(74),    input,    X), "&
   "0079   (BC_1,   *,          control,  0), "&
   "0078   (BC_1,   BIp(73),    output3,  X,      79,   0,      Z), "&
   "0077   (BC_1,   BIp(73),    input,    X), "&
   "0076   (BC_1,   *,          control,  0), "&
   "0075   (BC_1,   BIp(72),    output3,  X,      76,   0,      Z), "&
   "0074   (BC_1,   BIp(72),    input,    X), "&
   "0073   (BC_1,   CLK(0),     input,    X), "&
   "0072   (BC_1,   CLK(1),     input,    X), "&
   "0071   (BC_1,   *,          control,  0), "&
   "0070   (BC_1,   BIp(71),    output3,  X,      71,   0,      Z), "&
   "0069   (BC_1,   BIp(71),    input,    X), "&
   "0068   (BC_1,   *,          control,  0), "&
   "0067   (BC_1,   BIp(70),    output3,  X,      68,   0,      Z), "&
   "0066   (BC_1,   BIp(70),    input,    X), "&
   "0065   (BC_1,   *,          control,  0), "&
   "0064   (BC_1,   BIp(69),    output3,  X,      65,   0,      Z), "&
   "0063   (BC_1,   BIp(69),    input,    X), "&
   "0062   (BC_1,   *,          control,  0), "&
   "0061   (BC_1,   BIp(68),    output3,  X,      62,   0,      Z), "&
   "0060   (BC_1,   BIp(68),    input,    X), "&
   "0059   (BC_1,   *,          control,  0), "&
   "0058   (BC_1,   BIp(67),    output3,  X,      59,   0,      Z), "&
   "0057   (BC_1,   BIp(67),    input,    X), "&
   "0056   (BC_1,   *,          control,  0), "&
   "0055   (BC_1,   BIp(66),    output3,  X,      56,   0,      Z), "&
   "0054   (BC_1,   BIp(66),    input,    X), "&
   "0053   (BC_1,   *,          control,  0), "&
   "0052   (BC_1,   BIp(65),    output3,  X,      53,   0,      Z), "&
   "0051   (BC_1,   BIp(65),    input,    X), "&
   "0050   (BC_1,   *,          control,  0), "&
   "0049   (BC_1,   BIp(64),    output3,  X,      50,   0,      Z), "&
   "0048   (BC_1,   BIp(64),    input,    X), "&
   "0047   (BC_1,   *,          control,  0), "&
   "0046   (BC_1,   BIp(63),    output3,  X,      47,   0,      Z), "&
   "0045   (BC_1,   BIp(63),    input,    X), "&
   "0044   (BC_1,   *,          control,  0), "&
   "0043   (BC_1,   BIp(62),    output3,  X,      44,   0,      Z), "&
   "0042   (BC_1,   BIp(62),    input,    X), "&
   "0041   (BC_1,   *,          control,  0), "&
   "0040   (BC_1,   BIp(61),    output3,  X,      41,   0,      Z), "&
   "0039   (BC_1,   BIp(61),    input,    X), "&
   "0038   (BC_1,   *,          control,  0), "&
   "0037   (BC_1,   BIp(60),    output3,  X,      38,   0,      Z), "&
   "0036   (BC_1,   BIp(60),    input,    X), "&
   "0035   (BC_1,   *,          control,  0), "&
   "0034   (BC_1,   BIp(59),    output3,  X,      35,   0,      Z), "&
   "0033   (BC_1,   BIp(59),    input,    X), "&
   "0032   (BC_1,   *,          control,  0), "&
   "0031   (BC_1,   BIp(58),    output3,  X,      32,   0,      Z), "&
   "0030   (BC_1,   BIp(58),    input,    X), "&
   "0029   (BC_1,   *,          control,  0), "&
   "0028   (BC_1,   BIp(57),    output3,  X,      29,   0,      Z), "&
   "0027   (BC_1,   BIp(57),    input,    X), "&
   "0026   (BC_1,   *,          control,  0), "&
   "0025   (BC_1,   BIp(56),    output3,  X,      26,   0,      Z), "&
   "0024   (BC_1,   BIp(56),    input,    X), "&
   "0023   (BC_1,   *,          control,  0), "&
   "0022   (BC_1,   BIp(55),    output3,  X,      23,   0,      Z), "&
   "0021   (BC_1,   BIp(55),    input,    X), "&
   "0020   (BC_1,   *,          control,  0), "&
   "0019   (BC_1,   BIp(54),    output3,  X,      20,   0,      Z), "&
   "0018   (BC_1,   BIp(54),    input,    X), "&
   "0017   (BC_1,   *,          control,  0), "&
   "0016   (BC_1,   BIp(53),    output3,  X,      17,   0,      Z), "&
   "0015   (BC_1,   BIp(53),    input,    X), "&
   "0014   (BC_1,   *,          control,  0), "&
   "0013   (BC_1,   BIp(52),    output3,  X,      14,   0,      Z), "&
   "0012   (BC_1,   BIp(52),    input,    X), "&
   "0011   (BC_1,   *,          control,  0), "&
   "0010   (BC_1,   BIp(51),    output3,  X,      11,   0,      Z), "&
   "0009   (BC_1,   BIp(51),    input,    X), "&
   "0008   (BC_1,   *,          control,  0), "&
   "0007   (BC_1,   BIp(50),    output3,  X,      8,    0,      Z), "&
   "0006   (BC_1,   BIp(50),    input,    X), "&
   "0005   (BC_1,   *,          control,  0), "&
   "0004   (BC_1,   BIp(49),    output3,  X,      5,    0,      Z), "&
   "0003   (BC_1,   BIp(49),    input,    X), "&
   "0002   (BC_1,   *,          control,  0), "&
   "0001   (BC_1,   BIp(48),    output3,  X,      2,    0,      Z), "&
   "0000   (BC_1,   BIp(48),    input,    X)";

-- ************************************************************************
-- *                    IEEE 1532 EXTENSION INFORMATION                   *
-- ************************************************************************
attribute ISC_PIN_BEHAVIOR of ispLSI5128VE_XXLT128 : entity is 
  "CLAMP" ;

attribute ISC_STATUS of ispLSI5128VE_XXLT128 : entity is "Not Implemented";

attribute ISC_BLANK_USERCODE of ispLSI5128VE_XXLT128 : entity is
    "11111111111111111111111111111111";

attribute ISC_FLOW of ispLSI5128VE_XXLT128 : entity is

  "flow_verify(idcode) "&
    "initialize "&
      "(IDCODE           WAIT TCK 1 32:0036C043), "&

  "flow_enable "&
    "initialize "&
      "(ISC_ENABLE       WAIT TCK 3, 1.0e-4), "&

  "flow_erase "&
    "initialize "&
      "(ISC_ERASE        WAIT TCK 3, 2.2e-1), "&

  "flow_preload "&
    "initialize "&
      "(SAMPLE 293:0     WAIT TCK 1), "&

  "flow_program(array) "&
    "initialize "&
      "(ISC_ADDRESS_SHIFT 318:$addr=20000000000000000000000000000000"&
      "000000000000000000000000000000000000000000000000 WAIT TCK 1) "&
    "repeat 318 "&
      "(ISC_DATA_SHIFT    326:?        WAIT TCK 1) "&
      "(ISC_PROGRAM       318:$addr    WAIT TCK 3, 12.0e-3) "&
      "(ISC_ADDRESS_SHIFT 318:$addr>>1 WAIT TCK 1), "&

  "flow_verify(array) "&
    "initialize "&
      "(ISC_ADDRESS_SHIFT 318:$addr=20000000000000000000000000000000"&
      "000000000000000000000000000000000000000000000000 WAIT TCK 1) "&
    "repeat 318 "&
      "(ISC_READ                       WAIT TCK 3, 30.0e-6 326:?:CRC)"&
      "(ISC_ADDRESS_SHIFT 318:$addr>>1 WAIT TCK 1), "&

  "flow_read(array) "&
    "initialize "&
      "(ISC_ADDRESS_SHIFT 318:$addr=20000000000000000000000000000000"&
      "000000000000000000000000000000000000000000000000 WAIT TCK 1) "&
    "repeat 318 "&
      "(ISC_READ                       WAIT TCK 3, 30.0e-6 326:!:CRC)"&
      "(ISC_ADDRESS_SHIFT 318:$addr>>1 WAIT TCK 1), "&

  "flow_program(usercode) "&
    "initialize "&
      "(USERCODE 32:? WAIT TCK 1) "&
      "(LSC_PROGRAM_USERCODE WAIT TCK 3, 12.0e-3), "&

  "flow_verify(usercode) "&
    "initialize "&
      "(USERCODE WAIT TCK 3 32:?), "&

  "flow_read(usercode) "&
    "initialize "&
      "(USERCODE WAIT TCK 3 32:!), "&

  "flow_program_security "&
    "initialize "&
      "(ISC_PROGRAM_SECURITY  WAIT TCK 3, 12.0e-3), "&

  "flow_disable "&
    "initialize "&
      "(ISC_DISABLE       WAIT TCK 3, 1.0e-3), "&

  "flow_program_done "&
    "initialize "&
      "(ISC_NOOP       WAIT TCK 1)";

attribute ISC_PROCEDURE of  ispLSI5128VE_XXLT128: entity is
  "proc_verify(idcode)               = (flow_verify(idcode)), "&
  "proc_enable                       = (flow_enable), "&
  "proc_disable                      = (flow_disable), "&
  "proc_program(array)               = (flow_program(array)), "&
  "proc_verify(array)                = (flow_verify(array)), "&
  "proc_erase                        = (flow_erase), "&
  "proc_read(array)                  = (flow_read(array)), "&
  "proc_program(usercode)            = (flow_program(usercode)), "&
  "proc_verify(usercode)             = (flow_verify(usercode)), "&
  "proc_read(usercode)               = (flow_read(usercode)), "&
  "proc_program_done                 = (flow_program_done), "&
  "proc_error_exit                   = (flow_disable), "&
  "proc_preload                      = (flow_preload), "&
  "proc_program(security)            = (flow_program_security)";

attribute ISC_ACTION of ispLSI5128VE_XXLT128 : entity is
  "erase            = ( proc_verify(idcode), "&
                       "proc_preload recommended, "&
                       "proc_enable, "&
                       "proc_erase, "&
                       "proc_disable), "& 
  "program          = ( proc_verify(idcode), "&
                       "proc_preload recommended, "&
                       "proc_enable, "&
                       "proc_erase, "&
                       "proc_program(array) proprietary, "&
                       "proc_program(usercode) proprietary, "&
                       "proc_verify(array), "&
                       "proc_verify(usercode), "&
                       "proc_program(security) optional, "&
                       "proc_program_done, "&
                       "proc_disable), "&
  "verify           = ( proc_verify(idcode), "&
                       "proc_preload recommended, "&
                       "proc_enable, "&
                       "proc_verify(array), "&
                       "proc_verify(usercode), "&
                       "proc_disable), "&
  "read             = ( proc_verify(idcode), "&
                       "proc_preload recommended, "&
                       "proc_enable, "&
                       "proc_read(array), "&
                       "proc_read(usercode), "&
                       "proc_disable), "&
  "verify_idcode    = ( proc_verify(idcode)), "&
  "secure           = ( proc_verify(idcode), "&
                       "proc_preload recommended, "&
                       "proc_enable, "&
                       "proc_program(security), "&
                       "proc_disable)";

end ispLSI5128VE_XXLT128;
