Commit c9c43f55 authored by Dusan Slavinec's avatar Dusan Slavinec

adding hardware test scripts

parent 54e3b3a7
Test scripts for FTRN AMC hardware test
Use with modified N.A.T. extender for backplane IO tests.
To start tests use command:
./ftrn_test.sh test_list_amc.txt
-- Copyright (C) 1991-2013 Altera Corporation
--
-- BSDL Version : 1.01
-- Device : 5AGXMA3DF27
--
--
-- ***********************************************************************************
-- * IMPORTANT NOTICE *
-- ***********************************************************************************
--
-- Your use of Altera Corporation's design tools, logic functions and
-- other software and tools, and its AMPP partner logic functions,
-- and any output files from any of the foregoing (including
-- device programming or simulation files), and any associated documentation or
-- information are expressly subject to the terms and conditions of
-- the Altera Program License Subscription Agreement, Altera MegaCore Function License
-- Agreement, or other applicable license agreement, including, without limitation, that
-- your use is for the sole purpose of programming logic
-- devices manufactured by Altera and sold by Altera or its
-- authorized distributors. Please refer to the applicable agreement for
-- further details.
--
-- **Testing After Configuration**
-- This file supports boundary scan testing (BST) before device
-- configuration. After configuration, you should use the
-- Quartus II tool to create a post-configuration BSDL file.
--
--
-- ***********************************************************************************
-- * ENTITY DEFINITION WITH PORTS *
-- ***********************************************************************************
entity ARRIA_V_5AGXMA3DF27 is
generic (PHYSICAL_PIN_MAP : string := "FBGA672");
port (
--I/O Pins
IOAA20 , IOAB19 , IOAB21 , IOAC21 , IOY21 , IOAA21 ,
IOAC22 , IOAD22 , IOAD23 , IOAE23 , IOAF22 , IOAF23 ,
IOY20 , IOY19 , IOAE21 , IOAF21 , IOAC20 , IOAD20 ,
IOAF19 , IOAF20 , IOAC19 , IOAD19 , IOAE19 , IOAF18 ,
IOAA18 , IOAB18 , IOAD18 , IOAE18 , IOY17 , IOAA17 ,
IOW18 , IOY18 , IOAC17 , IOAD17 , IOAB16 , IOAC16 ,
IOY16 , IOAA16 , IOV16 , IOW16 , IOAD16 , IOAE16 ,
IOAF15 , IOAF16 , IOAA15 , IOAB15 , IOV15 , IOW15 ,
IOAD15 , IOAE15 , IOAC14 , IOAD14 , IOY14 , IOAA14 ,
IOAF14 , IOAF13 , IOV13 , IOW13 , IOAB13 , IOAC13 ,
IOY13 , IOAA13 , IOAD13 , IOAE13 , IOV12 , IOW12 ,
IOAD12 , IOAE12 , IOAA12 , IOAB12 , IOAF12 , IOAF11 ,
IOAC11 , IOAD11 , IOAC10 , IOAD10 , IOY11 , IOAA11 ,
IOAE10 , IOAF9 , IOAD9 , IOAE9 , IOV10 , IOW10 ,
IOY10 , IOAA10 , IOAB9 , IOAC9 , IOV9 , IOW9 ,
IOAC8 , IOAD8 , IOY9 , IOAA9 , IOAF8 , IOAF7 ,
IOAE6 , IOAF6 , IOAC7 , IOAD7 , IOY8 , IOAA8 ,
IOAF5 , IOAE4 , IOAD6 , IOAC5 , IOAE3 , IOAF3 ,
IOY7 , IOAA7 , IOAD5 , IOAD4 , IOAC3 , IOAD3 ,
IOAB2 , IOAC1 , IOAB6 , IOAC6 , IOAB4 , IOAB3 ,
IOAA1 , IOAB1 , IOY1 , IOAA2 , IOW7 , IOW6 ,
IOAA3 , IOAA4 , IOAA5 , IOAA6 , IOY5 , IOY4 ,
IOV7 , IOV6 , IOW3 , IOW4 , IOW1 , IOV1 ,
IOT7 , IOU7 , IOV4 , IOV5 , IOW2 , IOV2 ,
IOV3 , IOU3 , IOU5 , IOU6 , IOT1 , IOU1 ,
IOT3 , IOT4 , IOT2 , IOR3 , IOT6 , IOR5 ,
IOP1 , IOR2 , IOP3 , IOP4 , ION2 , ION3 ,
IOR6 , IOP6 , IOM1 , ION1 , ION5 , ION6 ,
IOM2 , IOL1 , IOM3 , IOM4 , IOH1 , IOJ1 ,
IOL3 , IOL4 , IOK2 , IOK3 , IOM6 , IOL6 ,
IOJ2 , IOJ3 , IOF1 , IOE1 , IOF2 , IOG2 ,
IOK4 , IOK5 , IOG3 , IOH3 , IOJ4 , IOJ5 ,
IOD1 , IOD2 , IOK6 , IOK7 , IOE3 , IOF3 ,
IOB1 , IOC1 , IOF4 , IOG4 , IOJ6 , IOJ7 ,
IOC3 , IOC2 , IOG6 , IOF6 , IOA2 , IOA3 ,
IOD4 , IOE4 , IOC4 , IOB3 , IOA4 , IOB4 ,
IOD6 , IOE6 , IOJ9 , IOJ8 , IOE7 , IOF7 ,
IOC5 , IOD5 , IOA5 , IOA6 , IOF8 , IOG8 ,
IOB6 , IOC6 , IOB7 , IOC7 , IOG9 , IOH9 ,
IOE10 , IOF10 , IOC8 , IOD8 , IOA8 , IOA9 ,
IOD9 , IOE9 , IOJ10 , IOK10 , IOG10 , IOH10 ,
IOB9 , IOC9 , IOB10 , IOC10 , IOF11 , IOG11 ,
IOJ11 , IOK12 , IOC11 , IOD11 , IOA11 , IOA12 ,
IOF12 , IOG12 , IOH12 , IOJ12 , IOD12 , IOE12 ,
IOB12 , IOC12 , IOG13 , IOH13 , IOA13 , IOB13 ,
IOC14 , IOD14 , IOD13 , IOE13 , IOF14 , IOG14 ,
IOA15 , IOA14 , IOJ13 , IOJ14 , IOG15 , IOH15 ,
IOJ15 , IOK15 , IOB15 , IOC15 , IOD15 , IOE15 ,
IOH16 , IOJ16 , IOF16 , IOG16 , IOA17 , IOA16 ,
IOD16 , IOE16 , IOB16 , IOC17 , IOF17 , IOG17 ,
IOJ17 , IOK17 , IOJ18 , IOK18 , IOD17 , IOC18 ,
IOE18 , IOF18 , IOG18 , IOH18 , IOB18 , IOA19 ,
IOC19 , IOD19 , IOE19 , IOF19 , IOA20 , IOB19 ,
IOA21 , IOA22 , IOB21 , IOC21 , IOF20 , IOG20 ,
IOC20 , IOD20 , IOG21 , IOH21 , IOB22 , IOA23 ,
IOH19 , IOJ19 , IOC23 , IOC22 , IOD21 , IOE21 : inout bit;
--DEVICE_FAMILY Family-Specific Pins
MSEL0 , MSEL1 , MSEL2 , MSEL3 , MSEL4 : in bit;
RREF_TL , DCLK , nCSO , AS_DATA3 , AS_DATA2 , AS_DATA1 ,
AS_DATA0 , RREF_BR , CONF_DONE , nSTATUS , nCE , nCONFIG : linkage bit;
--HSSI Pins
GXB_TX_L8n, GXB_TX_L8p, GXB_RX_L8p, GXB_RX_L8n, GXB_TX_L7n, GXB_TX_L7p,
GXB_RX_L7p, GXB_RX_L7n, GXB_TX_L6n, GXB_TX_L6p, GXB_RX_L6p, GXB_RX_L6n,
REFCLK2Ln , REFCLK2Lp , REFCLK1Ln , REFCLK1Lp , GXB_TX_L5n, GXB_TX_L5p,
GXB_RX_L5p, GXB_RX_L5n, GXB_TX_L4n, GXB_TX_L4p, GXB_RX_L4p, GXB_RX_L4n,
GXB_TX_L3n, GXB_TX_L3p, GXB_RX_L3p, GXB_RX_L3n, GXB_TX_L2n, GXB_TX_L2p,
GXB_RX_L2p, GXB_RX_L2n, GXB_TX_L1n, GXB_TX_L1p, GXB_RX_L1p, GXB_RX_L1n,
GXB_TX_L0n, GXB_TX_L0p, GXB_RX_L0p, GXB_RX_L0n, REFCLK0Ln , REFCLK0Lp : linkage bit;
--JTAG Ports
TMS , TCK , TDI : in bit;
TDO : out bit;
--No Connect Pins
NC : linkage bit_vector (1 to 8);
--Power Pins
VCC : linkage bit_vector (1 to 119);
--Ground Pins
GND : linkage bit_vector (1 to 146)
);
use STD_1149_1_1994.all;
attribute COMPONENT_CONFORMANCE of ARRIA_V_5AGXMA3DF27 :
entity is "STD_1149_1_1993";
-- ***********************************************************************************
-- * PIN MAPPING *
-- ***********************************************************************************
attribute PIN_MAP of ARRIA_V_5AGXMA3DF27 : entity is PHYSICAL_PIN_MAP;
constant FBGA672 : PIN_MAP_STRING :=
--I/O Pins
"IOAA20 : AA20 , IOAB19 : AB19 , IOAB21 : AB21 , IOAC21 : AC21 , "&
"IOY21 : Y21 , IOAA21 : AA21 , IOAC22 : AC22 , IOAD22 : AD22 , "&
"IOAD23 : AD23 , IOAE23 : AE23 , IOAF22 : AF22 , IOAF23 : AF23 , "&
"IOY20 : Y20 , IOY19 : Y19 , IOAE21 : AE21 , IOAF21 : AF21 , "&
"IOAC20 : AC20 , IOAD20 : AD20 , IOAF19 : AF19 , IOAF20 : AF20 , "&
"IOAC19 : AC19 , IOAD19 : AD19 , IOAE19 : AE19 , IOAF18 : AF18 , "&
"IOAA18 : AA18 , IOAB18 : AB18 , IOAD18 : AD18 , IOAE18 : AE18 , "&
"IOY17 : Y17 , IOAA17 : AA17 , IOW18 : W18 , IOY18 : Y18 , "&
"IOAC17 : AC17 , IOAD17 : AD17 , IOAB16 : AB16 , IOAC16 : AC16 , "&
"IOY16 : Y16 , IOAA16 : AA16 , IOV16 : V16 , IOW16 : W16 , "&
"IOAD16 : AD16 , IOAE16 : AE16 , IOAF15 : AF15 , IOAF16 : AF16 , "&
"IOAA15 : AA15 , IOAB15 : AB15 , IOV15 : V15 , IOW15 : W15 , "&
"IOAD15 : AD15 , IOAE15 : AE15 , IOAC14 : AC14 , IOAD14 : AD14 , "&
"IOY14 : Y14 , IOAA14 : AA14 , IOAF14 : AF14 , IOAF13 : AF13 , "&
"IOV13 : V13 , IOW13 : W13 , IOAB13 : AB13 , IOAC13 : AC13 , "&
"IOY13 : Y13 , IOAA13 : AA13 , IOAD13 : AD13 , IOAE13 : AE13 , "&
"IOV12 : V12 , IOW12 : W12 , IOAD12 : AD12 , IOAE12 : AE12 , "&
"IOAA12 : AA12 , IOAB12 : AB12 , IOAF12 : AF12 , IOAF11 : AF11 , "&
"IOAC11 : AC11 , IOAD11 : AD11 , IOAC10 : AC10 , IOAD10 : AD10 , "&
"IOY11 : Y11 , IOAA11 : AA11 , IOAE10 : AE10 , IOAF9 : AF9 , "&
"IOAD9 : AD9 , IOAE9 : AE9 , IOV10 : V10 , IOW10 : W10 , "&
"IOY10 : Y10 , IOAA10 : AA10 , IOAB9 : AB9 , IOAC9 : AC9 , "&
"IOV9 : V9 , IOW9 : W9 , IOAC8 : AC8 , IOAD8 : AD8 , "&
"IOY9 : Y9 , IOAA9 : AA9 , IOAF8 : AF8 , IOAF7 : AF7 , "&
"IOAE6 : AE6 , IOAF6 : AF6 , IOAC7 : AC7 , IOAD7 : AD7 , "&
"IOY8 : Y8 , IOAA8 : AA8 , IOAF5 : AF5 , IOAE4 : AE4 , "&
"IOAD6 : AD6 , IOAC5 : AC5 , IOAE3 : AE3 , IOAF3 : AF3 , "&
"IOY7 : Y7 , IOAA7 : AA7 , IOAD5 : AD5 , IOAD4 : AD4 , "&
"IOAC3 : AC3 , IOAD3 : AD3 , IOAB2 : AB2 , IOAC1 : AC1 , "&
"IOAB6 : AB6 , IOAC6 : AC6 , IOAB4 : AB4 , IOAB3 : AB3 , "&
"IOAA1 : AA1 , IOAB1 : AB1 , IOY1 : Y1 , IOAA2 : AA2 , "&
"IOW7 : W7 , IOW6 : W6 , IOAA3 : AA3 , IOAA4 : AA4 , "&
"IOAA5 : AA5 , IOAA6 : AA6 , IOY5 : Y5 , IOY4 : Y4 , "&
"IOV7 : V7 , IOV6 : V6 , IOW3 : W3 , IOW4 : W4 , "&
"IOW1 : W1 , IOV1 : V1 , IOT7 : T7 , IOU7 : U7 , "&
"IOV4 : V4 , IOV5 : V5 , IOW2 : W2 , IOV2 : V2 , "&
"IOV3 : V3 , IOU3 : U3 , IOU5 : U5 , IOU6 : U6 , "&
"IOT1 : T1 , IOU1 : U1 , IOT3 : T3 , IOT4 : T4 , "&
"IOT2 : T2 , IOR3 : R3 , IOT6 : T6 , IOR5 : R5 , "&
"IOP1 : P1 , IOR2 : R2 , IOP3 : P3 , IOP4 : P4 , "&
"ION2 : N2 , ION3 : N3 , IOR6 : R6 , IOP6 : P6 , "&
"IOM1 : M1 , ION1 : N1 , ION5 : N5 , ION6 : N6 , "&
"IOM2 : M2 , IOL1 : L1 , IOM3 : M3 , IOM4 : M4 , "&
"IOH1 : H1 , IOJ1 : J1 , IOL3 : L3 , IOL4 : L4 , "&
"IOK2 : K2 , IOK3 : K3 , IOM6 : M6 , IOL6 : L6 , "&
"IOJ2 : J2 , IOJ3 : J3 , IOF1 : F1 , IOE1 : E1 , "&
"IOF2 : F2 , IOG2 : G2 , IOK4 : K4 , IOK5 : K5 , "&
"IOG3 : G3 , IOH3 : H3 , IOJ4 : J4 , IOJ5 : J5 , "&
"IOD1 : D1 , IOD2 : D2 , IOK6 : K6 , IOK7 : K7 , "&
"IOE3 : E3 , IOF3 : F3 , IOB1 : B1 , IOC1 : C1 , "&
"IOF4 : F4 , IOG4 : G4 , IOJ6 : J6 , IOJ7 : J7 , "&
"IOC3 : C3 , IOC2 : C2 , IOG6 : G6 , IOF6 : F6 , "&
"IOA2 : A2 , IOA3 : A3 , IOD4 : D4 , IOE4 : E4 , "&
"IOC4 : C4 , IOB3 : B3 , IOA4 : A4 , IOB4 : B4 , "&
"IOD6 : D6 , IOE6 : E6 , IOJ9 : J9 , IOJ8 : J8 , "&
"IOE7 : E7 , IOF7 : F7 , IOC5 : C5 , IOD5 : D5 , "&
"IOA5 : A5 , IOA6 : A6 , IOF8 : F8 , IOG8 : G8 , "&
"IOB6 : B6 , IOC6 : C6 , IOB7 : B7 , IOC7 : C7 , "&
"IOG9 : G9 , IOH9 : H9 , IOE10 : E10 , IOF10 : F10 , "&
"IOC8 : C8 , IOD8 : D8 , IOA8 : A8 , IOA9 : A9 , "&
"IOD9 : D9 , IOE9 : E9 , IOJ10 : J10 , IOK10 : K10 , "&
"IOG10 : G10 , IOH10 : H10 , IOB9 : B9 , IOC9 : C9 , "&
"IOB10 : B10 , IOC10 : C10 , IOF11 : F11 , IOG11 : G11 , "&
"IOJ11 : J11 , IOK12 : K12 , IOC11 : C11 , IOD11 : D11 , "&
"IOA11 : A11 , IOA12 : A12 , IOF12 : F12 , IOG12 : G12 , "&
"IOH12 : H12 , IOJ12 : J12 , IOD12 : D12 , IOE12 : E12 , "&
"IOB12 : B12 , IOC12 : C12 , IOG13 : G13 , IOH13 : H13 , "&
"IOA13 : A13 , IOB13 : B13 , IOC14 : C14 , IOD14 : D14 , "&
"IOD13 : D13 , IOE13 : E13 , IOF14 : F14 , IOG14 : G14 , "&
"IOA15 : A15 , IOA14 : A14 , IOJ13 : J13 , IOJ14 : J14 , "&
"IOG15 : G15 , IOH15 : H15 , IOJ15 : J15 , IOK15 : K15 , "&
"IOB15 : B15 , IOC15 : C15 , IOD15 : D15 , IOE15 : E15 , "&
"IOH16 : H16 , IOJ16 : J16 , IOF16 : F16 , IOG16 : G16 , "&
"IOA17 : A17 , IOA16 : A16 , IOD16 : D16 , IOE16 : E16 , "&
"IOB16 : B16 , IOC17 : C17 , IOF17 : F17 , IOG17 : G17 , "&
"IOJ17 : J17 , IOK17 : K17 , IOJ18 : J18 , IOK18 : K18 , "&
"IOD17 : D17 , IOC18 : C18 , IOE18 : E18 , IOF18 : F18 , "&
"IOG18 : G18 , IOH18 : H18 , IOB18 : B18 , IOA19 : A19 , "&
"IOC19 : C19 , IOD19 : D19 , IOE19 : E19 , IOF19 : F19 , "&
"IOA20 : A20 , IOB19 : B19 , IOA21 : A21 , IOA22 : A22 , "&
"IOB21 : B21 , IOC21 : C21 , IOF20 : F20 , IOG20 : G20 , "&
"IOC20 : C20 , IOD20 : D20 , IOG21 : G21 , IOH21 : H21 , "&
"IOB22 : B22 , IOA23 : A23 , IOH19 : H19 , IOJ19 : J19 , "&
"IOC23 : C23 , IOC22 : C22 , IOD21 : D21 , IOE21 : E21 , "&
--Arria V Family-Specific Pins
"RREF_TL : D26 , DCLK : AC23 , nCSO : AD26 , "&
"AS_DATA3 : AD25 , AS_DATA2 : AF25 , AS_DATA1 : AE25 , "&
"AS_DATA0 : AF24 , RREF_BR : AE1 , MSEL0 : A24 , "&
"MSEL1 : K20 , MSEL2 : A25 , MSEL3 : B24 , "&
"MSEL4 : B25 , CONF_DONE : F22 , nSTATUS : J20 , "&
"nCE : H22 , nCONFIG : C24 , "&
--HSSI Pins
"GXB_TX_L8n: E23 , GXB_TX_L8p: E24 , GXB_RX_L8p: F26 , "&
"GXB_RX_L8n: F25 , GXB_TX_L7n: G23 , GXB_TX_L7p: G24 , "&
"GXB_RX_L7p: H26 , GXB_RX_L7n: H25 , GXB_TX_L6n: J23 , "&
"GXB_TX_L6p: J24 , GXB_RX_L6p: K26 , GXB_RX_L6n: K25 , "&
"REFCLK2Ln : N19 , REFCLK2Lp : N18 , REFCLK1Ln : R19 , "&
"REFCLK1Lp : R18 , GXB_TX_L5n: L23 , GXB_TX_L5p: L24 , "&
"GXB_RX_L5p: M26 , GXB_RX_L5n: M25 , GXB_TX_L4n: N23 , "&
"GXB_TX_L4p: N24 , GXB_RX_L4p: P26 , GXB_RX_L4n: P25 , "&
"GXB_TX_L3n: R23 , GXB_TX_L3p: R24 , GXB_RX_L3p: T26 , "&
"GXB_RX_L3n: T25 , GXB_TX_L2n: U23 , GXB_TX_L2p: U24 , "&
"GXB_RX_L2p: V26 , GXB_RX_L2n: V25 , GXB_TX_L1n: W23 , "&
"GXB_TX_L1p: W24 , GXB_RX_L1p: Y26 , GXB_RX_L1n: Y25 , "&
"GXB_TX_L0n: AA23 , GXB_TX_L0p: AA24 , GXB_RX_L0p: AB26 , "&
"GXB_RX_L0n: AB25 , REFCLK0Ln : U19 , REFCLK0Lp : U18 , "&
--JTAG ports
"TDO : AE26 , TMS : Y22 , TCK : AE24 , TDI : AD24 , "&
--No Connect Pins
"NC : (C25 , D25 , V20 , V14 , AD1 , AD2 , H6 , "&
"K14 ), "&
--Power Pins
"VCC : (U13 , U14 , L13 , L12 , L11 , L15 , L9 , "&
"M8 , N17 , R17 , T8 , U11 , U15 , U9 , "&
"P18 , P7 , M18 , J21 , L10 , L17 , U10 , "&
"U17 , T18 , N7 , L18 , T20 , M20 , P20 , "&
"L21 , P21 , P22 , K22 , K21 , N21 , U21 , "&
"U22 , R21 , T22 , M21 , M22 , M10 , M12 , "&
"M14 , M16 , N11 , N13 , N15 , N9 , P10 , "&
"P14 , P16 , P9 , R11 , R13 , R15 , R9 , "&
"T10 , T12 , T14 , T16 , P12 , AA19 , AB22 , "&
"AD21 , AC15 , AC18 , AF17 , Y15 , Y3 , Y6 , "&
"AB7 , AC4 , AE7 , AF4 , AB10 , AC12 , AF10 , "&
"Y12 , N4 , R1 , R4 , U4 , G1 , K1 , "&
"M5 , H4 , D3 , F5 , A7 , D7 , F9 , "&
"G7 , A10 , C13 , D10 , F13 , D22 , F21 , "&
"G19 , A18 , C16 , D18 , F15 , V17 , W19 , "&
"V8 , U12 , V11 , R7 , P8 , M7 , L7 , "&
"K8 , K13 , K9 , K16 , K19 , H7 , W21 ), "&
--GROUND Pins
"GND : (G5 , B26 , AA22 , AA25 , AA26 , AB23 , AB24 , "&
"AC24 , AC25 , AC26 , C26 , D23 , D24 , E22 , "&
"E25 , E26 , F23 , F24 , G22 , G25 , G26 , "&
"H23 , H24 , J22 , J25 , J26 , K23 , K24 , "&
"L19 , L20 , L22 , L25 , L26 , M19 , M23 , "&
"M24 , N20 , N22 , N25 , N26 , P19 , P23 , "&
"P24 , R20 , R22 , R25 , R26 , T19 , T21 , "&
"T23 , T24 , U20 , U25 , U26 , V18 , V19 , "&
"V21 , V22 , V23 , V24 , W22 , W25 , W26 , "&
"Y23 , Y24 , AB11 , AB14 , AB17 , AB20 , AB5 , "&
"AB8 , AC2 , AE11 , AE14 , AE17 , AE2 , AE20 , "&
"AE22 , AE5 , AE8 , AF2 , B11 , B14 , B17 , "&
"B2 , B20 , B23 , B5 , B8 , E11 , E14 , "&
"E17 , E2 , E20 , E5 , E8 , H11 , H14 , "&
"H17 , H2 , H20 , H5 , H8 , K11 , L14 , "&
"L16 , L2 , L5 , L8 , M11 , M13 , M15 , "&
"M17 , M9 , N10 , N14 , N16 , N8 , P11 , "&
"P13 , P15 , P17 , P2 , P5 , R10 , R12 , "&
"R14 , R16 , R8 , T11 , T13 , T15 , T17 , "&
"T5 , T9 , U16 , U2 , U8 , W11 , W14 , "&
"W17 , W20 , W5 , W8 , Y2 , N12 ) ";
-- ***********************************************************************************
-- * IEEE 1149.1 TAP PORTS *
-- ***********************************************************************************
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 (10.00e6,BOTH);
-- ***********************************************************************************
-- * INSTRUCTIONS AND REGISTER ACCESS *
-- ***********************************************************************************
attribute INSTRUCTION_LENGTH of ARRIA_V_5AGXMA3DF27 : entity is 10;
attribute INSTRUCTION_OPCODE of ARRIA_V_5AGXMA3DF27 : entity is
-- IEEE Std.1149.1
"BYPASS (1111111111), "&
"EXTEST (0000001111), "&
"SAMPLE (0000000101), "&
"IDCODE (0000000110), "&
"USERCODE (0000000111), "&
"CLAMP (0000001010), "&
"HIGHZ (0000001011), "&
"PRIVATE (1100010000, 0011001001, 0000101011, 1100010111, 1010100001, 0101011110), "&
"CONFIG_IO (0000001101)";
attribute INSTRUCTION_CAPTURE of ARRIA_V_5AGXMA3DF27 : entity is "0101010101";
attribute INSTRUCTION_PRIVATE of ARRIA_V_5AGXMA3DF27 : entity is "PRIVATE";
attribute IDCODE_REGISTER of ARRIA_V_5AGXMA3DF27 : entity is
"0000"& --4-bit Version
"0010101000000001"& --16-bit Part Number (hex 2A01)
"00001101110"& --11-bit Manufacturer's Identity
"1"; --Mandatory LSB
attribute USERCODE_REGISTER of ARRIA_V_5AGXMA3DF27 : entity is
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; --All 32 bits are programmable
attribute REGISTER_ACCESS of ARRIA_V_5AGXMA3DF27 : entity is
"DEVICE_ID (IDCODE),"&
"IOCSR[193579] (CONFIG_IO)";
-- ***********************************************************************************
-- * BOUNDARY SCAN CELL INFORMATION *
-- ***********************************************************************************
attribute BOUNDARY_LENGTH of ARRIA_V_5AGXMA3DF27 : entity is 1488;
attribute BOUNDARY_REGISTER of ARRIA_V_5AGXMA3DF27 : entity is
--BSC group 0 for untestable Family-specific pin
"0 (BC_4, *, internal, X)," &
"1 (BC_4, *, internal, 1)," &
"2 (BC_4, *, internal, X)," &
--BSC group 1 for untestable Family-specific pin
"3 (BC_4, *, internal, X)," &
"4 (BC_4, *, internal, 1)," &
"5 (BC_4, *, internal, X)," &
--BSC group 2 for untestable Family-specific pin
"6 (BC_4, *, internal, X)," &
"7 (BC_4, *, internal, 1)," &
"8 (BC_4, *, internal, X)," &
--BSC group 3 for untestable Family-specific pin
"9 (BC_4, *, internal, X)," &
"10 (BC_4, *, internal, 1)," &
"11 (BC_4, *, internal, X)," &
--BSC group 4 for untestable Family-specific pin
"12 (BC_4, *, internal, X)," &
"13 (BC_4, *, internal, 1)," &
"14 (BC_4, *, internal, X)," &
--BSC group 5 for untestable Family-specific pin
"15 (BC_4, *, internal, X)," &
"16 (BC_4, *, internal, 1)," &
"17 (BC_4, *, internal, X)," &
--BSC group 6 for untestable Family-specific pin
"18 (BC_4, *, internal, X)," &
"19 (BC_4, *, internal, 1)," &
"20 (BC_4, *, internal, X)," &
--BSC group 7 for untestable Family-specific pin
"21 (BC_4, *, internal, X)," &
"22 (BC_4, *, internal, 1)," &
"23 (BC_4, *, internal, X)," &
--BSC group 8 for untestable Family-specific pin
"24 (BC_4, *, internal, X)," &
"25 (BC_4, *, internal, 1)," &
"26 (BC_4, *, internal, X)," &
--BSC group 9 for untestable Family-specific pin
"27 (BC_4, *, internal, X)," &
"28 (BC_4, *, internal, 1)," &
"29 (BC_4, *, internal, X)," &
--BSC group 10 for unused pad
"30 (BC_4, *, internal, X)," &
"31 (BC_4, *, internal, 1)," &
"32 (BC_4, *, internal, X)," &
--BSC group 11 for Family-specific input pin B25
"33 (BC_4, MSEL4, input, X)," &
"34 (BC_4, *, internal, X)," &
"35 (BC_4, *, internal, X)," &
--BSC group 12 for Family-specific input pin B24
"36 (BC_4, MSEL3, input, X)," &
"37 (BC_4, *, internal, X)," &
"38 (BC_4, *, internal, X)," &
--BSC group 13 for Family-specific input pin A25
"39 (BC_4, MSEL2, input, X)," &
"40 (BC_4, *, internal, X)," &
"41 (BC_4, *, internal, X)," &
--BSC group 14 for Family-specific input pin K20
"42 (BC_4, MSEL1, input, X)," &
"43 (BC_4, *, internal, X)," &
"44 (BC_4, *, internal, X)," &
--BSC group 15 for Family-specific input pin A24
"45 (BC_4, MSEL0, input, X)," &
"46 (BC_4, *, internal, X)," &
"47 (BC_4, *, internal, X)," &
--BSC group 16 for I/O pin C22
"48 (BC_1, IOC22, input, X)," &
"49 (BC_1, *, control, 1)," &
"50 (BC_1, IOC22, output3, X, 49, 1, Z)," &
--BSC group 17 for I/O pin E21
"51 (BC_1, IOE21, input, X)," &
"52 (BC_1, *, control, 1)," &
"53 (BC_1, IOE21, output3, X, 52, 1, Z)," &
--BSC group 18 for I/O pin D21
"54 (BC_1, IOD21, input, X)," &
"55 (BC_1, *, control, 1)," &
"56 (BC_1, IOD21, output3, X, 55, 1, Z)," &
--BSC group 19 for I/O pin C23
"57 (BC_1, IOC23, input, X)," &
"58 (BC_1, *, control, 1)," &
"59 (BC_1, IOC23, output3, X, 58, 1, Z)," &
--BSC group 20 for I/O pin A23
"60 (BC_1, IOA23, input, X)," &
"61 (BC_1, *, control, 1)," &
"62 (BC_1, IOA23, output3, X, 61, 1, Z)," &
--BSC group 21 for I/O pin J19
"63 (BC_1, IOJ19, input, X)," &
"64 (BC_1, *, control, 1)," &
"65 (BC_1, IOJ19, output3, X, 64, 1, Z)," &
--BSC group 22 for I/O pin H19
"66 (BC_1, IOH19, input, X)," &
"67 (BC_1, *, control, 1)," &
"68 (BC_1, IOH19, output3, X, 67, 1, Z)," &
--BSC group 23 for I/O pin B22
"69 (BC_1, IOB22, input, X)," &
"70 (BC_1, *, control, 1)," &
"71 (BC_1, IOB22, output3, X, 70, 1, Z)," &
--BSC group 24 for I/O pin D20
"72 (BC_1, IOD20, input, X)," &
"73 (BC_1, *, control, 1)," &
"74 (BC_1, IOD20, output3, X, 73, 1, Z)," &
--BSC group 25 for I/O pin H21
"75 (BC_1, IOH21, input, X)," &
"76 (BC_1, *, control, 1)," &
"77 (BC_1, IOH21, output3, X, 76, 1, Z)," &
--BSC group 26 for I/O pin G21
"78 (BC_1, IOG21, input, X)," &
"79 (BC_1, *, control, 1)," &
"80 (BC_1, IOG21, output3, X, 79, 1, Z)," &
--BSC group 27 for I/O pin C20
"81 (BC_1, IOC20, input, X)," &
"82 (BC_1, *, control, 1)," &
"83 (BC_1, IOC20, output3, X, 82, 1, Z)," &
--BSC group 28 for I/O pin C21
"84 (BC_1, IOC21, input, X)," &
"85 (BC_1, *, control, 1)," &
"86 (BC_1, IOC21, output3, X, 85, 1, Z)," &
--BSC group 29 for I/O pin G20
"87 (BC_1, IOG20, input, X)," &
"88 (BC_1, *, control, 1)," &
"89 (BC_1, IOG20, output3, X, 88, 1, Z)," &
--BSC group 30 for I/O pin F20
"90 (BC_1, IOF20, input, X)," &
"91 (BC_1, *, control, 1)," &
"92 (BC_1, IOF20, output3, X, 91, 1, Z)," &
--BSC group 31 for I/O pin B21
"93 (BC_1, IOB21, input, X)," &
"94 (BC_1, *, control, 1)," &
"95 (BC_1, IOB21, output3, X, 94, 1, Z)," &
--BSC group 32 for I/O pin B19
"96 (BC_1, IOB19, input, X)," &
"97 (BC_1, *, control, 1)," &
"98 (BC_1, IOB19, output3, X, 97, 1, Z)," &
--BSC group 33 for I/O pin A22
"99 (BC_1, IOA22, input, X)," &
"100 (BC_1, *, control, 1)," &
"101 (BC_1, IOA22, output3, X, 100, 1, Z)," &
--BSC group 34 for I/O pin A21
"102 (BC_1, IOA21, input, X)," &
"103 (BC_1, *, control, 1)," &
"104 (BC_1, IOA21, output3, X, 103, 1, Z)," &
--BSC group 35 for I/O pin A20
"105 (BC_1, IOA20, input, X)," &
"106 (BC_1, *, control, 1)," &
"107 (BC_1, IOA20, output3, X, 106, 1, Z)," &
--BSC group 36 for I/O pin D19
"108 (BC_1, IOD19, input, X)," &
"109 (BC_1, *, control, 1)," &
"110 (BC_1, IOD19, output3, X, 109, 1, Z)," &
--BSC group 37 for I/O pin F19
"111 (BC_1, IOF19, input, X)," &
"112 (BC_1, *, control, 1)," &
"113 (BC_1, IOF19, output3, X, 112, 1, Z)," &
--BSC group 38 for I/O pin E19
"114 (BC_1, IOE19, input, X)," &
"115 (BC_1, *, control, 1)," &
"116 (BC_1, IOE19, output3, X, 115, 1, Z)," &
--BSC group 39 for I/O pin C19
"117 (BC_1, IOC19, input, X)," &
"118 (BC_1, *, control, 1)," &
"119 (BC_1, IOC19, output3, X, 118, 1, Z)," &
--BSC group 40 for unused pad
"120 (BC_4, *, internal, X)," &
"121 (BC_4, *, internal, 1)," &
"122 (BC_4, *, internal, X)," &
--BSC group 41 for unused pad
"123 (BC_4, *, internal, X)," &
"124 (BC_4, *, internal, 1)," &
"125 (BC_4, *, internal, X)," &
--BSC group 42 for unused pad
"126 (BC_4, *, internal, X)," &
"127 (BC_4, *, internal, 1)," &
"128 (BC_4, *, internal, X)," &
--BSC group 43 for unused pad
"129 (BC_4, *, internal, X)," &
"130 (BC_4, *, internal, 1)," &
"131 (BC_4, *, internal, X)," &
--BSC group 44 for unused pad
"132 (BC_4, *, internal, X)," &
"133 (BC_4, *, internal, 1)," &
"134 (BC_4, *, internal, X)," &
--BSC group 45 for unused pad
"135 (BC_4, *, internal, X)," &
"136 (BC_4, *, internal, 1)," &
"137 (BC_4, *, internal, X)," &
--BSC group 46 for unused pad
"138 (BC_4, *, internal, X)," &
"139 (BC_4, *, internal, 1)," &
"140 (BC_4, *, internal, X)," &
--BSC group 47 for unused pad
"141 (BC_4, *, internal, X)," &
"142 (BC_4, *, internal, 1)," &
"143 (BC_4, *, internal, X)," &
--BSC group 48 for unused pad
"144 (BC_4, *, internal, X)," &
"145 (BC_4, *, internal, 1)," &
"146 (BC_4, *, internal, X)," &
--BSC group 49 for unused pad
"147 (BC_4, *, internal, X)," &
"148 (BC_4, *, internal, 1)," &
"149 (BC_4, *, internal, X)," &
--BSC group 50 for unused pad
"150 (BC_4, *, internal, X)," &
"151 (BC_4, *, internal, 1)," &
"152 (BC_4, *, internal, X)," &
--BSC group 51 for unused pad
"153 (BC_4, *, internal, X)," &
"154 (BC_4, *, internal, 1)," &
"155 (BC_4, *, internal, X)," &
--BSC group 52 for unused pad
"156 (BC_4, *, internal, X)," &
"157 (BC_4, *, internal, 1)," &
"158 (BC_4, *, internal, X)," &
--BSC group 53 for unused pad
"159 (BC_4, *, internal, X)," &
"160 (BC_4, *, internal, 1)," &
"161 (BC_4, *, internal, X)," &
--BSC group 54 for unused pad
"162 (BC_4, *, internal, X)," &
"163 (BC_4, *, internal, 1)," &
"164 (BC_4, *, internal, X)," &
--BSC group 55 for unused pad
"165 (BC_4, *, internal, X)," &
"166 (BC_4, *, internal, 1)," &
"167 (BC_4, *, internal, X)," &
--BSC group 56 for unused pad
"168 (BC_4, *, internal, X)," &
"169 (BC_4, *, internal, 1)," &
"170 (BC_4, *, internal, X)," &
--BSC group 57 for unused pad
"171 (BC_4, *, internal, X)," &
"172 (BC_4, *, internal, 1)," &
"173 (BC_4, *, internal, X)," &
--BSC group 58 for unused pad
"174 (BC_4, *, internal, X)," &
"175 (BC_4, *, internal, 1)," &
"176 (BC_4, *, internal, X)," &
--BSC group 59 for unused pad
"177 (BC_4, *, internal, X)," &
"178 (BC_4, *, internal, 1)," &
"179 (BC_4, *, internal, X)," &
--BSC group 60 for unused pad
"180 (BC_4, *, internal, X)," &
"181 (BC_4, *, internal, 1)," &
"182 (BC_4, *, internal, X)," &
--BSC group 61 for unused pad
"183 (BC_4, *, internal, X)," &
"184 (BC_4, *, internal, 1)," &
"185 (BC_4, *, internal, X)," &
--BSC group 62 for unused pad
"186 (BC_4, *, internal, X)," &
"187 (BC_4, *, internal, 1)," &
"188 (BC_4, *, internal, X)," &
--BSC group 63 for unused pad
"189 (BC_4, *, internal, X)," &
"190 (BC_4, *, internal, 1)," &
"191 (BC_4, *, internal, X)," &
--BSC group 64 for unused pad
"192 (BC_4, *, internal, X)," &
"193 (BC_4, *, internal, 1)," &
"194 (BC_4, *, internal, X)," &
--BSC group 65 for unused pad
"195 (BC_4, *, internal, X)," &
"196 (BC_4, *, internal, 1)," &
"197 (BC_4, *, internal, X)," &
--BSC group 66 for unused pad
"198 (BC_4, *, internal, X)," &
"199 (BC_4, *, internal, 1)," &
"200 (BC_4, *, internal, X)," &
--BSC group 67 for unused pad
"201 (BC_4, *, internal, X)," &
"202 (BC_4, *, internal, 1)," &
"203 (BC_4, *, internal, X)," &
--BSC group 68 for unused pad
"204 (BC_4, *, internal, X)," &
"205 (BC_4, *, internal, 1)," &
"206 (BC_4, *, internal, X)," &
--BSC group 69 for unused pad
"207 (BC_4, *, internal, X)," &
"208 (BC_4, *, internal, 1)," &
"209 (BC_4, *, internal, X)," &
--BSC group 70 for unused pad
"210 (BC_4, *, internal, X)," &
"211 (BC_4, *, internal, 1)," &
"212 (BC_4, *, internal, X)," &
--BSC group 71 for unused pad
"213 (BC_4, *, internal, X)," &
"214 (BC_4, *, internal, 1)," &
"215 (BC_4, *, internal, X)," &
--BSC group 72 for unused pad
"216 (BC_4, *, internal, X)," &
"217 (BC_4, *, internal, 1)," &
"218 (BC_4, *, internal, X)," &
--BSC group 73 for unused pad
"219 (BC_4, *, internal, X)," &
"220 (BC_4, *, internal, 1)," &
"221 (BC_4, *, internal, X)," &
--BSC group 74 for unused pad
"222 (BC_4, *, internal, X)," &
"223 (BC_4, *, internal, 1)," &
"224 (BC_4, *, internal, X)," &
--BSC group 75 for unused pad
"225 (BC_4, *, internal, X)," &
"226 (BC_4, *, internal, 1)," &
"227 (BC_4, *, internal, X)," &
--BSC group 76 for unused pad
"228 (BC_4, *, internal, X)," &
"229 (BC_4, *, internal, 1)," &
"230 (BC_4, *, internal, X)," &
--BSC group 77 for unused pad
"231 (BC_4, *, internal, X)," &
"232 (BC_4, *, internal, 1)," &
"233 (BC_4, *, internal, X)," &
--BSC group 78 for unused pad
"234 (BC_4, *, internal, X)," &
"235 (BC_4, *, internal, 1)," &
"236 (BC_4, *, internal, X)," &
--BSC group 79 for unused pad
"237 (BC_4, *, internal, X)," &
"238 (BC_4, *, internal, 1)," &
"239 (BC_4, *, internal, X)," &
--BSC group 80 for I/O pin H18
"240 (BC_1, IOH18, input, X)," &
"241 (BC_1, *, control, 1)," &
"242 (BC_1, IOH18, output3, X, 241, 1, Z)," &
--BSC group 81 for I/O pin A19
"243 (BC_1, IOA19, input, X)," &
"244 (BC_1, *, control, 1)," &
"245 (BC_1, IOA19, output3, X, 244, 1, Z)," &
--BSC group 82 for I/O pin B18
"246 (BC_1, IOB18, input, X)," &
"247 (BC_1, *, control, 1)," &
"248 (BC_1, IOB18, output3, X, 247, 1, Z)," &
--BSC group 83 for I/O pin G18
"249 (BC_1, IOG18, input, X)," &
"250 (BC_1, *, control, 1)," &
"251 (BC_1, IOG18, output3, X, 250, 1, Z)," &
--BSC group 84 for I/O pin C18
"252 (BC_1, IOC18, input, X)," &
"253 (BC_1, *, control, 1)," &
"254 (BC_1, IOC18, output3, X, 253, 1, Z)," &
--BSC group 85 for I/O pin F18
"255 (BC_1, IOF18, input, X)," &
"256 (BC_1, *, control, 1)," &
"257 (BC_1, IOF18, output3, X, 256, 1, Z)," &
--BSC group 86 for I/O pin E18
"258 (BC_1, IOE18, input, X)," &
"259 (BC_1, *, control, 1)," &
"260 (BC_1, IOE18, output3, X, 259, 1, Z)," &
--BSC group 87 for I/O pin D17
"261 (BC_1, IOD17, input, X)," &
"262 (BC_1, *, control, 1)," &
"263 (BC_1, IOD17, output3, X, 262, 1, Z)," &
--BSC group 88 for I/O pin K17
"264 (BC_1, IOK17, input, X)," &
"265 (BC_1, *, control, 1)," &
"266 (BC_1, IOK17, output3, X, 265, 1, Z)," &
--BSC group 89 for I/O pin K18
"267 (BC_1, IOK18, input, X)," &
"268 (BC_1, *, control, 1)," &
"269 (BC_1, IOK18, output3, X, 268, 1, Z)," &
--BSC group 90 for I/O pin J18
"270 (BC_1, IOJ18, input, X)," &
"271 (BC_1, *, control, 1)," &
"272 (BC_1, IOJ18, output3, X, 271, 1, Z)," &
--BSC group 91 for I/O pin J17
"273 (BC_1, IOJ17, input, X)," &
"274 (BC_1, *, control, 1)," &
"275 (BC_1, IOJ17, output3, X, 274, 1, Z)," &
--BSC group 92 for I/O pin C17
"276 (BC_1, IOC17, input, X)," &
"277 (BC_1, *, control, 1)," &
"278 (BC_1, IOC17, output3, X, 277, 1, Z)," &
--BSC group 93 for I/O pin G17
"279 (BC_1, IOG17, input, X)," &
"280 (BC_1, *, control, 1)," &
"281 (BC_1, IOG17, output3, X, 280, 1, Z)," &
--BSC group 94 for I/O pin F17
"282 (BC_1, IOF17, input, X)," &
"283 (BC_1, *, control, 1)," &
"284 (BC_1, IOF17, output3, X, 283, 1, Z)," &
--BSC group 95 for I/O pin B16
"285 (BC_1, IOB16, input, X)," &
"286 (BC_1, *, control, 1)," &
"287 (BC_1, IOB16, output3, X, 286, 1, Z)," &
--BSC group 96 for I/O pin A16
"288 (BC_1, IOA16, input, X)," &
"289 (BC_1, *, control, 1)," &
"290 (BC_1, IOA16, output3, X, 289, 1, Z)," &
--BSC group 97 for I/O pin E16
"291 (BC_1, IOE16, input, X)," &
"292 (BC_1, *, control, 1)," &
"293 (BC_1, IOE16, output3, X, 292, 1, Z)," &
--BSC group 98 for I/O pin D16
"294 (BC_1, IOD16, input, X)," &
"295 (BC_1, *, control, 1)," &
"296 (BC_1, IOD16, output3, X, 295, 1, Z)," &
--BSC group 99 for I/O pin A17
"297 (BC_1, IOA17, input, X)," &
"298 (BC_1, *, control, 1)," &
"299 (BC_1, IOA17, output3, X, 298, 1, Z)," &
--BSC group 100 for I/O pin J16
"300 (BC_1, IOJ16, input, X)," &
"301 (BC_1, *, control, 1)," &
"302 (BC_1, IOJ16, output3, X, 301, 1, Z)," &
--BSC group 101 for I/O pin G16
"303 (BC_1, IOG16, input, X)," &
"304 (BC_1, *, control, 1)," &
"305 (BC_1, IOG16, output3, X, 304, 1, Z)," &
--BSC group 102 for I/O pin F16
"306 (BC_1, IOF16, input, X)," &
"307 (BC_1, *, control, 1)," &
"308 (BC_1, IOF16, output3, X, 307, 1, Z)," &
--BSC group 103 for I/O pin H16
"309 (BC_1, IOH16, input, X)," &
"310 (BC_1, *, control, 1)," &
"311 (BC_1, IOH16, output3, X, 310, 1, Z)," &
--BSC group 104 for I/O pin C15
"312 (BC_1, IOC15, input, X)," &
"313 (BC_1, *, control, 1)," &
"314 (BC_1, IOC15, output3, X, 313, 1, Z)," &
--BSC group 105 for I/O pin E15
"315 (BC_1, IOE15, input, X)," &
"316 (BC_1, *, control, 1)," &
"317 (BC_1, IOE15, output3, X, 316, 1, Z)," &
--BSC group 106 for I/O pin D15
"318 (BC_1, IOD15, input, X)," &
"319 (BC_1, *, control, 1)," &
"320 (BC_1, IOD15, output3, X, 319, 1, Z)," &
--BSC group 107 for I/O pin B15
"321 (BC_1, IOB15, input, X)," &
"322 (BC_1, *, control, 1)," &
"323 (BC_1, IOB15, output3, X, 322, 1, Z)," &
--BSC group 108 for I/O pin H15
"324 (BC_1, IOH15, input, X)," &
"325 (BC_1, *, control, 1)," &
"326 (BC_1, IOH15, output3, X, 325, 1, Z)," &
--BSC group 109 for I/O pin K15
"327 (BC_1, IOK15, input, X)," &
"328 (BC_1, *, control, 1)," &
"329 (BC_1, IOK15, output3, X, 328, 1, Z)," &
--BSC group 110 for I/O pin J15
"330 (BC_1, IOJ15, input, X)," &
"331 (BC_1, *, control, 1)," &
"332 (BC_1, IOJ15, output3, X, 331, 1, Z)," &
--BSC group 111 for I/O pin G15
"333 (BC_1, IOG15, input, X)," &
"334 (BC_1, *, control, 1)," &
"335 (BC_1, IOG15, output3, X, 334, 1, Z)," &
--BSC group 112 for I/O pin A14
"336 (BC_1, IOA14, input, X)," &
"337 (BC_1, *, control, 1)," &
"338 (BC_1, IOA14, output3, X, 337, 1, Z)," &
--BSC group 113 for I/O pin J14
"339 (BC_1, IOJ14, input, X)," &
"340 (BC_1, *, control, 1)," &
"341 (BC_1, IOJ14, output3, X, 340, 1, Z)," &
--BSC group 114 for I/O pin J13
"342 (BC_1, IOJ13, input, X)," &
"343 (BC_1, *, control, 1)," &
"344 (BC_1, IOJ13, output3, X, 343, 1, Z)," &
--BSC group 115 for I/O pin A15
"345 (BC_1, IOA15, input, X)," &
"346 (BC_1, *, control, 1)," &
"347 (BC_1, IOA15, output3, X, 346, 1, Z)," &
--BSC group 116 for I/O pin E13
"348 (BC_1, IOE13, input, X)," &
"349 (BC_1, *, control, 1)," &
"350 (BC_1, IOE13, output3, X, 349, 1, Z)," &
--BSC group 117 for I/O pin G14
"351 (BC_1, IOG14, input, X)," &
"352 (BC_1, *, control, 1)," &
"353 (BC_1, IOG14, output3, X, 352, 1, Z)," &
--BSC group 118 for I/O pin F14
"354 (BC_1, IOF14, input, X)," &
"355 (BC_1, *, control, 1)," &
"356 (BC_1, IOF14, output3, X, 355, 1, Z)," &
--BSC group 119 for I/O pin D13
"357 (BC_1, IOD13, input, X)," &
"358 (BC_1, *, control, 1)," &
"359 (BC_1, IOD13, output3, X, 358, 1, Z)," &
--BSC group 120 for I/O pin B13
"360 (BC_1, IOB13, input, X)," &
"361 (BC_1, *, control, 1)," &
"362 (BC_1, IOB13, output3, X, 361, 1, Z)," &
--BSC group 121 for I/O pin D14
"363 (BC_1, IOD14, input, X)," &
"364 (BC_1, *, control, 1)," &
"365 (BC_1, IOD14, output3, X, 364, 1, Z)," &
--BSC group 122 for I/O pin C14
"366 (BC_1, IOC14, input, X)," &
"367 (BC_1, *, control, 1)," &
"368 (BC_1, IOC14, output3, X, 367, 1, Z)," &
--BSC group 123 for I/O pin A13
"369 (BC_1, IOA13, input, X)," &
"370 (BC_1, *, control, 1)," &
"371 (BC_1, IOA13, output3, X, 370, 1, Z)," &
--BSC group 124 for I/O pin C12
"372 (BC_1, IOC12, input, X)," &
"373 (BC_1, *, control, 1)," &
"374 (BC_1, IOC12, output3, X, 373, 1, Z)," &
--BSC group 125 for I/O pin H13
"375 (BC_1, IOH13, input, X)," &
"376 (BC_1, *, control, 1)," &
"377 (BC_1, IOH13, output3, X, 376, 1, Z)," &
--BSC group 126 for I/O pin G13
"378 (BC_1, IOG13, input, X)," &
"379 (BC_1, *, control, 1)," &
"380 (BC_1, IOG13, output3, X, 379, 1, Z)," &
--BSC group 127 for I/O pin B12
"381 (BC_1, IOB12, input, X)," &
"382 (BC_1, *, control, 1)," &
"383 (BC_1, IOB12, output3, X, 382, 1, Z)," &
--BSC group 128 for I/O pin J12
"384 (BC_1, IOJ12, input, X)," &
"385 (BC_1, *, control, 1)," &
"386 (BC_1, IOJ12, output3, X, 385, 1, Z)," &
--BSC group 129 for I/O pin E12
"387 (BC_1, IOE12, input, X)," &
"388 (BC_1, *, control, 1)," &
"389 (BC_1, IOE12, output3, X, 388, 1, Z)," &
--BSC group 130 for I/O pin D12
"390 (BC_1, IOD12, input, X)," &
"391 (BC_1, *, control, 1)," &
"392 (BC_1, IOD12, output3, X, 391, 1, Z)," &
--BSC group 131 for I/O pin H12
"393 (BC_1, IOH12, input, X)," &
"394 (BC_1, *, control, 1)," &
"395 (BC_1, IOH12, output3, X, 394, 1, Z)," &
--BSC group 132 for I/O pin A12
"396 (BC_1, IOA12, input, X)," &
"397 (BC_1, *, control, 1)," &
"398 (BC_1, IOA12, output3, X, 397, 1, Z)," &
--BSC group 133 for I/O pin G12
"399 (BC_1, IOG12, input, X)," &
"400 (BC_1, *, control, 1)," &
"401 (BC_1, IOG12, output3, X, 400, 1, Z)," &
--BSC group 134 for I/O pin F12
"402 (BC_1, IOF12, input, X)," &
"403 (BC_1, *, control, 1)," &
"404 (BC_1, IOF12, output3, X, 403, 1, Z)," &
--BSC group 135 for I/O pin A11
"405 (BC_1, IOA11, input, X)," &
"406 (BC_1, *, control, 1)," &
"407 (BC_1, IOA11, output3, X, 406, 1, Z)," &
--BSC group 136 for I/O pin K12
"408 (BC_1, IOK12, input, X)," &
"409 (BC_1, *, control, 1)," &
"410 (BC_1, IOK12, output3, X, 409, 1, Z)," &
--BSC group 137 for I/O pin D11
"411 (BC_1, IOD11, input, X)," &
"412 (BC_1, *, control, 1)," &
"413 (BC_1, IOD11, output3, X, 412, 1, Z)," &
--BSC group 138 for I/O pin C11
"414 (BC_1, IOC11, input, X)," &
"415 (BC_1, *, control, 1)," &
"416 (BC_1, IOC11, output3, X, 415, 1, Z)," &
--BSC group 139 for I/O pin J11
"417 (BC_1, IOJ11, input, X)," &
"418 (BC_1, *, control, 1)," &
"419 (BC_1, IOJ11, output3, X, 418, 1, Z)," &
--BSC group 140 for I/O pin C10
"420 (BC_1, IOC10, input, X)," &
"421 (BC_1, *, control, 1)," &
"422 (BC_1, IOC10, output3, X, 421, 1, Z)," &
--BSC group 141 for I/O pin G11
"423 (BC_1, IOG11, input, X)," &
"424 (BC_1, *, control, 1)," &
"425 (BC_1, IOG11, output3, X, 424, 1, Z)," &
--BSC group 142 for I/O pin F11
"426 (BC_1, IOF11, input, X)," &
"427 (BC_1, *, control, 1)," &
"428 (BC_1, IOF11, output3, X, 427, 1, Z)," &
--BSC group 143 for I/O pin B10
"429 (BC_1, IOB10, input, X)," &
"430 (BC_1, *, control, 1)," &
"431 (BC_1, IOB10, output3, X, 430, 1, Z)," &
--BSC group 144 for I/O pin H10
"432 (BC_1, IOH10, input, X)," &
"433 (BC_1, *, control, 1)," &
"434 (BC_1, IOH10, output3, X, 433, 1, Z)," &
--BSC group 145 for I/O pin C9
"435 (BC_1, IOC9, input, X)," &
"436 (BC_1, *, control, 1)," &
"437 (BC_1, IOC9, output3, X, 436, 1, Z)," &
--BSC group 146 for I/O pin B9
"438 (BC_1, IOB9, input, X)," &
"439 (BC_1, *, control, 1)," &
"440 (BC_1, IOB9, output3, X, 439, 1, Z)," &
--BSC group 147 for I/O pin G10
"441 (BC_1, IOG10, input, X)," &
"442 (BC_1, *, control, 1)," &
"443 (BC_1, IOG10, output3, X, 442, 1, Z)," &
--BSC group 148 for I/O pin E9
"444 (BC_1, IOE9, input, X)," &
"445 (BC_1, *, control, 1)," &
"446 (BC_1, IOE9, output3, X, 445, 1, Z)," &
--BSC group 149 for I/O pin K10
"447 (BC_1, IOK10, input, X)," &
"448 (BC_1, *, control, 1)," &
"449 (BC_1, IOK10, output3, X, 448, 1, Z)," &
--BSC group 150 for I/O pin J10
"450 (BC_1, IOJ10, input, X)," &
"451 (BC_1, *, control, 1)," &
"452 (BC_1, IOJ10, output3, X, 451, 1, Z)," &
--BSC group 151 for I/O pin D9
"453 (BC_1, IOD9, input, X)," &
"454 (BC_1, *, control, 1)," &
"455 (BC_1, IOD9, output3, X, 454, 1, Z)," &
--BSC group 152 for I/O pin D8
"456 (BC_1, IOD8, input, X)," &
"457 (BC_1, *, control, 1)," &
"458 (BC_1, IOD8, output3, X, 457, 1, Z)," &
--BSC group 153 for I/O pin A9
"459 (BC_1, IOA9, input, X)," &
"460 (BC_1, *, control, 1)," &
"461 (BC_1, IOA9, output3, X, 460, 1, Z)," &
--BSC group 154 for I/O pin A8
"462 (BC_1, IOA8, input, X)," &
"463 (BC_1, *, control, 1)," &
"464 (BC_1, IOA8, output3, X, 463, 1, Z)," &
--BSC group 155 for I/O pin C8
"465 (BC_1, IOC8, input, X)," &
"466 (BC_1, *, control, 1)," &
"467 (BC_1, IOC8, output3, X, 466, 1, Z)," &
--BSC group 156 for I/O pin H9
"468 (BC_1, IOH9, input, X)," &
"469 (BC_1, *, control, 1)," &
"470 (BC_1, IOH9, output3, X, 469, 1, Z)," &
--BSC group 157 for I/O pin F10
"471 (BC_1, IOF10, input, X)," &
"472 (BC_1, *, control, 1)," &
"473 (BC_1, IOF10, output3, X, 472, 1, Z)," &
--BSC group 158 for I/O pin E10
"474 (BC_1, IOE10, input, X)," &
"475 (BC_1, *, control, 1)," &
"476 (BC_1, IOE10, output3, X, 475, 1, Z)," &
--BSC group 159 for I/O pin G9
"477 (BC_1, IOG9, input, X)," &
"478 (BC_1, *, control, 1)," &
"479 (BC_1, IOG9, output3, X, 478, 1, Z)," &
--BSC group 160 for I/O pin C6
"480 (BC_1, IOC6, input, X)," &
"481 (BC_1, *, control, 1)," &
"482 (BC_1, IOC6, output3, X, 481, 1, Z)," &
--BSC group 161 for I/O pin C7
"483 (BC_1, IOC7, input, X)," &
"484 (BC_1, *, control, 1)," &
"485 (BC_1, IOC7, output3, X, 484, 1, Z)," &
--BSC group 162 for I/O pin B7
"486 (BC_1, IOB7, input, X)," &
"487 (BC_1, *, control, 1)," &
"488 (BC_1, IOB7, output3, X, 487, 1, Z)," &
--BSC group 163 for I/O pin B6
"489 (BC_1, IOB6, input, X)," &
"490 (BC_1, *, control, 1)," &
"491 (BC_1, IOB6, output3, X, 490, 1, Z)," &
--BSC group 164 for I/O pin A6
"492 (BC_1, IOA6, input, X)," &
"493 (BC_1, *, control, 1)," &
"494 (BC_1, IOA6, output3, X, 493, 1, Z)," &
--BSC group 165 for I/O pin G8
"495 (BC_1, IOG8, input, X)," &
"496 (BC_1, *, control, 1)," &
"497 (BC_1, IOG8, output3, X, 496, 1, Z)," &
--BSC group 166 for I/O pin F8
"498 (BC_1, IOF8, input, X)," &
"499 (BC_1, *, control, 1)," &
"500 (BC_1, IOF8, output3, X, 499, 1, Z)," &
--BSC group 167 for I/O pin A5
"501 (BC_1, IOA5, input, X)," &
"502 (BC_1, *, control, 1)," &
"503 (BC_1, IOA5, output3, X, 502, 1, Z)," &
--BSC group 168 for I/O pin F7
"504 (BC_1, IOF7, input, X)," &
"505 (BC_1, *, control, 1)," &
"506 (BC_1, IOF7, output3, X, 505, 1, Z)," &
--BSC group 169 for I/O pin D5
"507 (BC_1, IOD5, input, X)," &
"508 (BC_1, *, control, 1)," &
"509 (BC_1, IOD5, output3, X, 508, 1, Z)," &
--BSC group 170 for I/O pin C5
"510 (BC_1, IOC5, input, X)," &
"511 (BC_1, *, control, 1)," &
"512 (BC_1, IOC5, output3, X, 511, 1, Z)," &
--BSC group 171 for I/O pin E7
"513 (BC_1, IOE7, input, X)," &
"514 (BC_1, *, control, 1)," &
"515 (BC_1, IOE7, output3, X, 514, 1, Z)," &
--BSC group 172 for I/O pin E6
"516 (BC_1, IOE6, input, X)," &
"517 (BC_1, *, control, 1)," &
"518 (BC_1, IOE6, output3, X, 517, 1, Z)," &
--BSC group 173 for I/O pin J8
"519 (BC_1, IOJ8, input, X)," &
"520 (BC_1, *, control, 1)," &
"521 (BC_1, IOJ8, output3, X, 520, 1, Z)," &
--BSC group 174 for I/O pin J9
"522 (BC_1, IOJ9, input, X)," &
"523 (BC_1, *, control, 1)," &
"524 (BC_1, IOJ9, output3, X, 523, 1, Z)," &
--BSC group 175 for I/O pin D6
"525 (BC_1, IOD6, input, X)," &
"526 (BC_1, *, control, 1)," &
"527 (BC_1, IOD6, output3, X, 526, 1, Z)," &
--BSC group 176 for unused pad
"528 (BC_4, *, internal, X)," &
"529 (BC_4, *, internal, 1)," &
"530 (BC_4, *, internal, X)," &
--BSC group 177 for unused pad
"531 (BC_4, *, internal, X)," &
"532 (BC_4, *, internal, 1)," &
"533 (BC_4, *, internal, X)," &
--BSC group 178 for unused pad
"534 (BC_4, *, internal, X)," &
"535 (BC_4, *, internal, 1)," &
"536 (BC_4, *, internal, X)," &
--BSC group 179 for unused pad
"537 (BC_4, *, internal, X)," &
"538 (BC_4, *, internal, 1)," &
"539 (BC_4, *, internal, X)," &
--BSC group 180 for unused pad
"540 (BC_4, *, internal, X)," &
"541 (BC_4, *, internal, 1)," &
"542 (BC_4, *, internal, X)," &
--BSC group 181 for unused pad
"543 (BC_4, *, internal, X)," &
"544 (BC_4, *, internal, 1)," &
"545 (BC_4, *, internal, X)," &
--BSC group 182 for unused pad
"546 (BC_4, *, internal, X)," &
"547 (BC_4, *, internal, 1)," &
"548 (BC_4, *, internal, X)," &
--BSC group 183 for unused pad
"549 (BC_4, *, internal, X)," &
"550 (BC_4, *, internal, 1)," &
"551 (BC_4, *, internal, X)," &
--BSC group 184 for unused pad
"552 (BC_4, *, internal, X)," &
"553 (BC_4, *, internal, 1)," &
"554 (BC_4, *, internal, X)," &
--BSC group 185 for unused pad
"555 (BC_4, *, internal, X)," &
"556 (BC_4, *, internal, 1)," &
"557 (BC_4, *, internal, X)," &
--BSC group 186 for unused pad
"558 (BC_4, *, internal, X)," &
"559 (BC_4, *, internal, 1)," &
"560 (BC_4, *, internal, X)," &
--BSC group 187 for unused pad
"561 (BC_4, *, internal, X)," &
"562 (BC_4, *, internal, 1)," &
"563 (BC_4, *, internal, X)," &
--BSC group 188 for unused pad
"564 (BC_4, *, internal, X)," &
"565 (BC_4, *, internal, 1)," &
"566 (BC_4, *, internal, X)," &
--BSC group 189 for unused pad
"567 (BC_4, *, internal, X)," &
"568 (BC_4, *, internal, 1)," &
"569 (BC_4, *, internal, X)," &
--BSC group 190 for unused pad
"570 (BC_4, *, internal, X)," &
"571 (BC_4, *, internal, 1)," &
"572 (BC_4, *, internal, X)," &
--BSC group 191 for unused pad
"573 (BC_4, *, internal, X)," &
"574 (BC_4, *, internal, 1)," &
"575 (BC_4, *, internal, X)," &
--BSC group 192 for I/O pin B3
"576 (BC_1, IOB3, input, X)," &
"577 (BC_1, *, control, 1)," &
"578 (BC_1, IOB3, output3, X, 577, 1, Z)," &
--BSC group 193 for I/O pin B4
"579 (BC_1, IOB4, input, X)," &
"580 (BC_1, *, control, 1)," &
"581 (BC_1, IOB4, output3, X, 580, 1, Z)," &
--BSC group 194 for I/O pin A4
"582 (BC_1, IOA4, input, X)," &
"583 (BC_1, *, control, 1)," &
"584 (BC_1, IOA4, output3, X, 583, 1, Z)," &
--BSC group 195 for I/O pin C4
"585 (BC_1, IOC4, input, X)," &
"586 (BC_1, *, control, 1)," &
"587 (BC_1, IOC4, output3, X, 586, 1, Z)," &
--BSC group 196 for I/O pin A3
"588 (BC_1, IOA3, input, X)," &
"589 (BC_1, *, control, 1)," &
"590 (BC_1, IOA3, output3, X, 589, 1, Z)," &
--BSC group 197 for I/O pin E4
"591 (BC_1, IOE4, input, X)," &
"592 (BC_1, *, control, 1)," &
"593 (BC_1, IOE4, output3, X, 592, 1, Z)," &
--BSC group 198 for I/O pin D4
"594 (BC_1, IOD4, input, X)," &
"595 (BC_1, *, control, 1)," &
"596 (BC_1, IOD4, output3, X, 595, 1, Z)," &
--BSC group 199 for I/O pin A2
"597 (BC_1, IOA2, input, X)," &
"598 (BC_1, *, control, 1)," &
"599 (BC_1, IOA2, output3, X, 598, 1, Z)," &
--BSC group 200 for I/O pin C2
"600 (BC_1, IOC2, input, X)," &
"601 (BC_1, *, control, 1)," &
"602 (BC_1, IOC2, output3, X, 601, 1, Z)," &
--BSC group 201 for I/O pin F6
"603 (BC_1, IOF6, input, X)," &
"604 (BC_1, *, control, 1)," &
"605 (BC_1, IOF6, output3, X, 604, 1, Z)," &
--BSC group 202 for I/O pin G6
"606 (BC_1, IOG6, input, X)," &
"607 (BC_1, *, control, 1)," &
"608 (BC_1, IOG6, output3, X, 607, 1, Z)," &
--BSC group 203 for I/O pin C3
"609 (BC_1, IOC3, input, X)," &
"610 (BC_1, *, control, 1)," &
"611 (BC_1, IOC3, output3, X, 610, 1, Z)," &
--BSC group 204 for I/O pin G4
"612 (BC_1, IOG4, input, X)," &
"613 (BC_1, *, control, 1)," &
"614 (BC_1, IOG4, output3, X, 613, 1, Z)," &
--BSC group 205 for I/O pin J7
"615 (BC_1, IOJ7, input, X)," &
"616 (BC_1, *, control, 1)," &
"617 (BC_1, IOJ7, output3, X, 616, 1, Z)," &
--BSC group 206 for I/O pin J6
"618 (BC_1, IOJ6, input, X)," &
"619 (BC_1, *, control, 1)," &
"620 (BC_1, IOJ6, output3, X, 619, 1, Z)," &
--BSC group 207 for I/O pin F4
"621 (BC_1, IOF4, input, X)," &
"622 (BC_1, *, control, 1)," &
"623 (BC_1, IOF4, output3, X, 622, 1, Z)," &
--BSC group 208 for unused pad
"624 (BC_4, *, internal, X)," &
"625 (BC_4, *, internal, 1)," &
"626 (BC_4, *, internal, X)," &
--BSC group 209 for unused pad
"627 (BC_4, *, internal, X)," &
"628 (BC_4, *, internal, 1)," &
"629 (BC_4, *, internal, X)," &
--BSC group 210 for unused pad
"630 (BC_4, *, internal, X)," &
"631 (BC_4, *, internal, 1)," &
"632 (BC_4, *, internal, X)," &
--BSC group 211 for unused pad
"633 (BC_4, *, internal, X)," &
"634 (BC_4, *, internal, 1)," &
"635 (BC_4, *, internal, X)," &
--BSC group 212 for unused pad
"636 (BC_4, *, internal, X)," &
"637 (BC_4, *, internal, 1)," &
"638 (BC_4, *, internal, X)," &
--BSC group 213 for unused pad
"639 (BC_4, *, internal, X)," &
"640 (BC_4, *, internal, 1)," &
"641 (BC_4, *, internal, X)," &
--BSC group 214 for unused pad
"642 (BC_4, *, internal, X)," &
"643 (BC_4, *, internal, 1)," &
"644 (BC_4, *, internal, X)," &
--BSC group 215 for unused pad
"645 (BC_4, *, internal, X)," &
"646 (BC_4, *, internal, 1)," &
"647 (BC_4, *, internal, X)," &
--BSC group 216 for unused pad
"648 (BC_4, *, internal, X)," &
"649 (BC_4, *, internal, 1)," &
"650 (BC_4, *, internal, X)," &
--BSC group 217 for unused pad
"651 (BC_4, *, internal, X)," &
"652 (BC_4, *, internal, 1)," &
"653 (BC_4, *, internal, X)," &
--BSC group 218 for unused pad
"654 (BC_4, *, internal, X)," &
"655 (BC_4, *, internal, 1)," &
"656 (BC_4, *, internal, X)," &
--BSC group 219 for unused pad
"657 (BC_4, *, internal, X)," &
"658 (BC_4, *, internal, 1)," &
"659 (BC_4, *, internal, X)," &
--BSC group 220 for unused pad
"660 (BC_4, *, internal, X)," &
"661 (BC_4, *, internal, 1)," &
"662 (BC_4, *, internal, X)," &
--BSC group 221 for unused pad
"663 (BC_4, *, internal, X)," &
"664 (BC_4, *, internal, 1)," &
"665 (BC_4, *, internal, X)," &
--BSC group 222 for unused pad
"666 (BC_4, *, internal, X)," &
"667 (BC_4, *, internal, 1)," &
"668 (BC_4, *, internal, X)," &
--BSC group 223 for unused pad
"669 (BC_4, *, internal, X)," &
"670 (BC_4, *, internal, 1)," &
"671 (BC_4, *, internal, X)," &
--BSC group 224 for I/O pin F3
"672 (BC_1, IOF3, input, X)," &
"673 (BC_1, *, control, 1)," &
"674 (BC_1, IOF3, output3, X, 673, 1, Z)," &
--BSC group 225 for I/O pin C1
"675 (BC_1, IOC1, input, X)," &
"676 (BC_1, *, control, 1)," &
"677 (BC_1, IOC1, output3, X, 676, 1, Z)," &
--BSC group 226 for I/O pin B1
"678 (BC_1, IOB1, input, X)," &
"679 (BC_1, *, control, 1)," &
"680 (BC_1, IOB1, output3, X, 679, 1, Z)," &
--BSC group 227 for I/O pin E3
"681 (BC_1, IOE3, input, X)," &
"682 (BC_1, *, control, 1)," &
"683 (BC_1, IOE3, output3, X, 682, 1, Z)," &
--BSC group 228 for I/O pin D2
"684 (BC_1, IOD2, input, X)," &
"685 (BC_1, *, control, 1)," &
"686 (BC_1, IOD2, output3, X, 685, 1, Z)," &
--BSC group 229 for I/O pin K7
"687 (BC_1, IOK7, input, X)," &
"688 (BC_1, *, control, 1)," &
"689 (BC_1, IOK7, output3, X, 688, 1, Z)," &
--BSC group 230 for I/O pin K6
"690 (BC_1, IOK6, input, X)," &
"691 (BC_1, *, control, 1)," &
"692 (BC_1, IOK6, output3, X, 691, 1, Z)," &
--BSC group 231 for I/O pin D1
"693 (BC_1, IOD1, input, X)," &
"694 (BC_1, *, control, 1)," &
"695 (BC_1, IOD1, output3, X, 694, 1, Z)," &
--BSC group 232 for I/O pin H3
"696 (BC_1, IOH3, input, X)," &
"697 (BC_1, *, control, 1)," &
"698 (BC_1, IOH3, output3, X, 697, 1, Z)," &
--BSC group 233 for I/O pin J5
"699 (BC_1, IOJ5, input, X)," &
"700 (BC_1, *, control, 1)," &
"701 (BC_1, IOJ5, output3, X, 700, 1, Z)," &
--BSC group 234 for I/O pin J4
"702 (BC_1, IOJ4, input, X)," &
"703 (BC_1, *, control, 1)," &
"704 (BC_1, IOJ4, output3, X, 703, 1, Z)," &
--BSC group 235 for I/O pin G3
"705 (BC_1, IOG3, input, X)," &
"706 (BC_1, *, control, 1)," &
"707 (BC_1, IOG3, output3, X, 706, 1, Z)," &
--BSC group 236 for I/O pin G2
"708 (BC_1, IOG2, input, X)," &
"709 (BC_1, *, control, 1)," &
"710 (BC_1, IOG2, output3, X, 709, 1, Z)," &
--BSC group 237 for I/O pin K5
"711 (BC_1, IOK5, input, X)," &
"712 (BC_1, *, control, 1)," &
"713 (BC_1, IOK5, output3, X, 712, 1, Z)," &
--BSC group 238 for I/O pin K4
"714 (BC_1, IOK4, input, X)," &
"715 (BC_1, *, control, 1)," &
"716 (BC_1, IOK4, output3, X, 715, 1, Z)," &
--BSC group 239 for I/O pin F2
"717 (BC_1, IOF2, input, X)," &
"718 (BC_1, *, control, 1)," &
"719 (BC_1, IOF2, output3, X, 718, 1, Z)," &
--BSC group 240 for I/O pin J3
"720 (BC_1, IOJ3, input, X)," &
"721 (BC_1, *, control, 1)," &
"722 (BC_1, IOJ3, output3, X, 721, 1, Z)," &
--BSC group 241 for I/O pin E1
"723 (BC_1, IOE1, input, X)," &
"724 (BC_1, *, control, 1)," &
"725 (BC_1, IOE1, output3, X, 724, 1, Z)," &
--BSC group 242 for I/O pin F1
"726 (BC_1, IOF1, input, X)," &
"727 (BC_1, *, control, 1)," &
"728 (BC_1, IOF1, output3, X, 727, 1, Z)," &
--BSC group 243 for I/O pin J2
"729 (BC_1, IOJ2, input, X)," &
"730 (BC_1, *, control, 1)," &
"731 (BC_1, IOJ2, output3, X, 730, 1, Z)," &
--BSC group 244 for I/O pin K3
"732 (BC_1, IOK3, input, X)," &
"733 (BC_1, *, control, 1)," &
"734 (BC_1, IOK3, output3, X, 733, 1, Z)," &
--BSC group 245 for I/O pin L6
"735 (BC_1, IOL6, input, X)," &
"736 (BC_1, *, control, 1)," &
"737 (BC_1, IOL6, output3, X, 736, 1, Z)," &
--BSC group 246 for I/O pin M6
"738 (BC_1, IOM6, input, X)," &
"739 (BC_1, *, control, 1)," &
"740 (BC_1, IOM6, output3, X, 739, 1, Z)," &
--BSC group 247 for I/O pin K2
"741 (BC_1, IOK2, input, X)," &
"742 (BC_1, *, control, 1)," &
"743 (BC_1, IOK2, output3, X, 742, 1, Z)," &
--BSC group 248 for I/O pin J1
"744 (BC_1, IOJ1, input, X)," &
"745 (BC_1, *, control, 1)," &
"746 (BC_1, IOJ1, output3, X, 745, 1, Z)," &
--BSC group 249 for I/O pin L4
"747 (BC_1, IOL4, input, X)," &
"748 (BC_1, *, control, 1)," &
"749 (BC_1, IOL4, output3, X, 748, 1, Z)," &
--BSC group 250 for I/O pin L3
"750 (BC_1, IOL3, input, X)," &
"751 (BC_1, *, control, 1)," &
"752 (BC_1, IOL3, output3, X, 751, 1, Z)," &
--BSC group 251 for I/O pin H1
"753 (BC_1, IOH1, input, X)," &
"754 (BC_1, *, control, 1)," &
"755 (BC_1, IOH1, output3, X, 754, 1, Z)," &
--BSC group 252 for I/O pin L1
"756 (BC_1, IOL1, input, X)," &
"757 (BC_1, *, control, 1)," &
"758 (BC_1, IOL1, output3, X, 757, 1, Z)," &
--BSC group 253 for I/O pin M4
"759 (BC_1, IOM4, input, X)," &
"760 (BC_1, *, control, 1)," &
"761 (BC_1, IOM4, output3, X, 760, 1, Z)," &
--BSC group 254 for I/O pin M3
"762 (BC_1, IOM3, input, X)," &
"763 (BC_1, *, control, 1)," &
"764 (BC_1, IOM3, output3, X, 763, 1, Z)," &
--BSC group 255 for I/O pin M2
"765 (BC_1, IOM2, input, X)," &
"766 (BC_1, *, control, 1)," &
"767 (BC_1, IOM2, output3, X, 766, 1, Z)," &
--BSC group 256 for I/O pin N1
"768 (BC_1, ION1, input, X)," &
"769 (BC_1, *, control, 1)," &
"770 (BC_1, ION1, output3, X, 769, 1, Z)," &
--BSC group 257 for I/O pin N6
"771 (BC_1, ION6, input, X)," &
"772 (BC_1, *, control, 1)," &
"773 (BC_1, ION6, output3, X, 772, 1, Z)," &
--BSC group 258 for I/O pin N5
"774 (BC_1, ION5, input, X)," &
"775 (BC_1, *, control, 1)," &
"776 (BC_1, ION5, output3, X, 775, 1, Z)," &
--BSC group 259 for I/O pin M1
"777 (BC_1, IOM1, input, X)," &
"778 (BC_1, *, control, 1)," &
"779 (BC_1, IOM1, output3, X, 778, 1, Z)," &
--BSC group 260 for I/O pin N3
"780 (BC_1, ION3, input, X)," &
"781 (BC_1, *, control, 1)," &
"782 (BC_1, ION3, output3, X, 781, 1, Z)," &
--BSC group 261 for I/O pin P6
"783 (BC_1, IOP6, input, X)," &
"784 (BC_1, *, control, 1)," &
"785 (BC_1, IOP6, output3, X, 784, 1, Z)," &
--BSC group 262 for I/O pin R6
"786 (BC_1, IOR6, input, X)," &
"787 (BC_1, *, control, 1)," &
"788 (BC_1, IOR6, output3, X, 787, 1, Z)," &
--BSC group 263 for I/O pin N2
"789 (BC_1, ION2, input, X)," &
"790 (BC_1, *, control, 1)," &
"791 (BC_1, ION2, output3, X, 790, 1, Z)," &
--BSC group 264 for I/O pin R2
"792 (BC_1, IOR2, input, X)," &
"793 (BC_1, *, control, 1)," &
"794 (BC_1, IOR2, output3, X, 793, 1, Z)," &
--BSC group 265 for I/O pin P4
"795 (BC_1, IOP4, input, X)," &
"796 (BC_1, *, control, 1)," &
"797 (BC_1, IOP4, output3, X, 796, 1, Z)," &
--BSC group 266 for I/O pin P3
"798 (BC_1, IOP3, input, X)," &
"799 (BC_1, *, control, 1)," &
"800 (BC_1, IOP3, output3, X, 799, 1, Z)," &
--BSC group 267 for I/O pin P1
"801 (BC_1, IOP1, input, X)," &
"802 (BC_1, *, control, 1)," &
"803 (BC_1, IOP1, output3, X, 802, 1, Z)," &
--BSC group 268 for I/O pin R3
"804 (BC_1, IOR3, input, X)," &
"805 (BC_1, *, control, 1)," &
"806 (BC_1, IOR3, output3, X, 805, 1, Z)," &
--BSC group 269 for I/O pin R5
"807 (BC_1, IOR5, input, X)," &
"808 (BC_1, *, control, 1)," &
"809 (BC_1, IOR5, output3, X, 808, 1, Z)," &
--BSC group 270 for I/O pin T6
"810 (BC_1, IOT6, input, X)," &
"811 (BC_1, *, control, 1)," &
"812 (BC_1, IOT6, output3, X, 811, 1, Z)," &
--BSC group 271 for I/O pin T2
"813 (BC_1, IOT2, input, X)," &
"814 (BC_1, *, control, 1)," &
"815 (BC_1, IOT2, output3, X, 814, 1, Z)," &
--BSC group 272 for I/O pin U1
"816 (BC_1, IOU1, input, X)," &
"817 (BC_1, *, control, 1)," &
"818 (BC_1, IOU1, output3, X, 817, 1, Z)," &
--BSC group 273 for I/O pin T4
"819 (BC_1, IOT4, input, X)," &
"820 (BC_1, *, control, 1)," &
"821 (BC_1, IOT4, output3, X, 820, 1, Z)," &
--BSC group 274 for I/O pin T3
"822 (BC_1, IOT3, input, X)," &
"823 (BC_1, *, control, 1)," &
"824 (BC_1, IOT3, output3, X, 823, 1, Z)," &
--BSC group 275 for I/O pin T1
"825 (BC_1, IOT1, input, X)," &
"826 (BC_1, *, control, 1)," &
"827 (BC_1, IOT1, output3, X, 826, 1, Z)," &
--BSC group 276 for I/O pin U3
"828 (BC_1, IOU3, input, X)," &
"829 (BC_1, *, control, 1)," &
"830 (BC_1, IOU3, output3, X, 829, 1, Z)," &
--BSC group 277 for I/O pin U6
"831 (BC_1, IOU6, input, X)," &
"832 (BC_1, *, control, 1)," &
"833 (BC_1, IOU6, output3, X, 832, 1, Z)," &
--BSC group 278 for I/O pin U5
"834 (BC_1, IOU5, input, X)," &
"835 (BC_1, *, control, 1)," &
"836 (BC_1, IOU5, output3, X, 835, 1, Z)," &
--BSC group 279 for I/O pin V3
"837 (BC_1, IOV3, input, X)," &
"838 (BC_1, *, control, 1)," &
"839 (BC_1, IOV3, output3, X, 838, 1, Z)," &
--BSC group 280 for I/O pin V5
"840 (BC_1, IOV5, input, X)," &
"841 (BC_1, *, control, 1)," &
"842 (BC_1, IOV5, output3, X, 841, 1, Z)," &
--BSC group 281 for I/O pin V2
"843 (BC_1, IOV2, input, X)," &
"844 (BC_1, *, control, 1)," &
"845 (BC_1, IOV2, output3, X, 844, 1, Z)," &
--BSC group 282 for I/O pin W2
"846 (BC_1, IOW2, input, X)," &
"847 (BC_1, *, control, 1)," &
"848 (BC_1, IOW2, output3, X, 847, 1, Z)," &
--BSC group 283 for I/O pin V4
"849 (BC_1, IOV4, input, X)," &
"850 (BC_1, *, control, 1)," &
"851 (BC_1, IOV4, output3, X, 850, 1, Z)," &
--BSC group 284 for I/O pin V1
"852 (BC_1, IOV1, input, X)," &
"853 (BC_1, *, control, 1)," &
"854 (BC_1, IOV1, output3, X, 853, 1, Z)," &
--BSC group 285 for I/O pin U7
"855 (BC_1, IOU7, input, X)," &
"856 (BC_1, *, control, 1)," &
"857 (BC_1, IOU7, output3, X, 856, 1, Z)," &
--BSC group 286 for I/O pin T7
"858 (BC_1, IOT7, input, X)," &
"859 (BC_1, *, control, 1)," &
"860 (BC_1, IOT7, output3, X, 859, 1, Z)," &
--BSC group 287 for I/O pin W1
"861 (BC_1, IOW1, input, X)," &
"862 (BC_1, *, control, 1)," &
"863 (BC_1, IOW1, output3, X, 862, 1, Z)," &
--BSC group 288 for unused pad
"864 (BC_4, *, internal, X)," &
"865 (BC_4, *, internal, 1)," &
"866 (BC_4, *, internal, X)," &
--BSC group 289 for unused pad
"867 (BC_4, *, internal, X)," &
"868 (BC_4, *, internal, 1)," &
"869 (BC_4, *, internal, X)," &
--BSC group 290 for unused pad
"870 (BC_4, *, internal, X)," &
"871 (BC_4, *, internal, 1)," &
"872 (BC_4, *, internal, X)," &
--BSC group 291 for unused pad
"873 (BC_4, *, internal, X)," &
"874 (BC_4, *, internal, 1)," &
"875 (BC_4, *, internal, X)," &
--BSC group 292 for unused pad
"876 (BC_4, *, internal, X)," &
"877 (BC_4, *, internal, 1)," &
"878 (BC_4, *, internal, X)," &
--BSC group 293 for unused pad
"879 (BC_4, *, internal, X)," &
"880 (BC_4, *, internal, 1)," &
"881 (BC_4, *, internal, X)," &
--BSC group 294 for unused pad
"882 (BC_4, *, internal, X)," &
"883 (BC_4, *, internal, 1)," &
"884 (BC_4, *, internal, X)," &
--BSC group 295 for unused pad
"885 (BC_4, *, internal, X)," &
"886 (BC_4, *, internal, 1)," &
"887 (BC_4, *, internal, X)," &
--BSC group 296 for unused pad
"888 (BC_4, *, internal, X)," &
"889 (BC_4, *, internal, 1)," &
"890 (BC_4, *, internal, X)," &
--BSC group 297 for unused pad
"891 (BC_4, *, internal, X)," &
"892 (BC_4, *, internal, 1)," &
"893 (BC_4, *, internal, X)," &
--BSC group 298 for unused pad
"894 (BC_4, *, internal, X)," &
"895 (BC_4, *, internal, 1)," &
"896 (BC_4, *, internal, X)," &
--BSC group 299 for unused pad
"897 (BC_4, *, internal, X)," &
"898 (BC_4, *, internal, 1)," &
"899 (BC_4, *, internal, X)," &
--BSC group 300 for unused pad
"900 (BC_4, *, internal, X)," &
"901 (BC_4, *, internal, 1)," &
"902 (BC_4, *, internal, X)," &
--BSC group 301 for unused pad
"903 (BC_4, *, internal, X)," &
"904 (BC_4, *, internal, 1)," &
"905 (BC_4, *, internal, X)," &
--BSC group 302 for unused pad
"906 (BC_4, *, internal, X)," &
"907 (BC_4, *, internal, 1)," &
"908 (BC_4, *, internal, X)," &
--BSC group 303 for unused pad
"909 (BC_4, *, internal, X)," &
"910 (BC_4, *, internal, 1)," &
"911 (BC_4, *, internal, X)," &
--BSC group 304 for I/O pin W3
"912 (BC_1, IOW3, input, X)," &
"913 (BC_1, *, control, 1)," &
"914 (BC_1, IOW3, output3, X, 913, 1, Z)," &
--BSC group 305 for I/O pin V7
"915 (BC_1, IOV7, input, X)," &
"916 (BC_1, *, control, 1)," &
"917 (BC_1, IOV7, output3, X, 916, 1, Z)," &
--BSC group 306 for I/O pin V6
"918 (BC_1, IOV6, input, X)," &
"919 (BC_1, *, control, 1)," &
"920 (BC_1, IOV6, output3, X, 919, 1, Z)," &
--BSC group 307 for I/O pin W4
"921 (BC_1, IOW4, input, X)," &
"922 (BC_1, *, control, 1)," &
"923 (BC_1, IOW4, output3, X, 922, 1, Z)," &
--BSC group 308 for I/O pin Y5
"924 (BC_1, IOY5, input, X)," &
"925 (BC_1, *, control, 1)," &
"926 (BC_1, IOY5, output3, X, 925, 1, Z)," &
--BSC group 309 for I/O pin AA5
"927 (BC_1, IOAA5, input, X)," &
"928 (BC_1, *, control, 1)," &
"929 (BC_1, IOAA5, output3, X, 928, 1, Z)," &
--BSC group 310 for I/O pin AA6
"930 (BC_1, IOAA6, input, X)," &
"931 (BC_1, *, control, 1)," &
"932 (BC_1, IOAA6, output3, X, 931, 1, Z)," &
--BSC group 311 for I/O pin Y4
"933 (BC_1, IOY4, input, X)," &
"934 (BC_1, *, control, 1)," &
"935 (BC_1, IOY4, output3, X, 934, 1, Z)," &
--BSC group 312 for I/O pin AA3
"936 (BC_1, IOAA3, input, X)," &
"937 (BC_1, *, control, 1)," &
"938 (BC_1, IOAA3, output3, X, 937, 1, Z)," &
--BSC group 313 for I/O pin W7
"939 (BC_1, IOW7, input, X)," &
"940 (BC_1, *, control, 1)," &
"941 (BC_1, IOW7, output3, X, 940, 1, Z)," &
--BSC group 314 for I/O pin W6
"942 (BC_1, IOW6, input, X)," &
"943 (BC_1, *, control, 1)," &
"944 (BC_1, IOW6, output3, X, 943, 1, Z)," &
--BSC group 315 for I/O pin AA4
"945 (BC_1, IOAA4, input, X)," &
"946 (BC_1, *, control, 1)," &
"947 (BC_1, IOAA4, output3, X, 946, 1, Z)," &
--BSC group 316 for I/O pin Y1
"948 (BC_1, IOY1, input, X)," &
"949 (BC_1, *, control, 1)," &
"950 (BC_1, IOY1, output3, X, 949, 1, Z)," &
--BSC group 317 for I/O pin AA1
"951 (BC_1, IOAA1, input, X)," &
"952 (BC_1, *, control, 1)," &
"953 (BC_1, IOAA1, output3, X, 952, 1, Z)," &
--BSC group 318 for I/O pin AB1
"954 (BC_1, IOAB1, input, X)," &
"955 (BC_1, *, control, 1)," &
"956 (BC_1, IOAB1, output3, X, 955, 1, Z)," &
--BSC group 319 for I/O pin AA2
"957 (BC_1, IOAA2, input, X)," &
"958 (BC_1, *, control, 1)," &
"959 (BC_1, IOAA2, output3, X, 958, 1, Z)," &
--BSC group 320 for unused pad
"960 (BC_4, *, internal, X)," &
"961 (BC_4, *, internal, 1)," &
"962 (BC_4, *, internal, X)," &
--BSC group 321 for unused pad
"963 (BC_4, *, internal, X)," &
"964 (BC_4, *, internal, 1)," &
"965 (BC_4, *, internal, X)," &
--BSC group 322 for unused pad
"966 (BC_4, *, internal, X)," &
"967 (BC_4, *, internal, 1)," &
"968 (BC_4, *, internal, X)," &
--BSC group 323 for unused pad
"969 (BC_4, *, internal, X)," &
"970 (BC_4, *, internal, 1)," &
"971 (BC_4, *, internal, X)," &
--BSC group 324 for unused pad
"972 (BC_4, *, internal, X)," &
"973 (BC_4, *, internal, 1)," &
"974 (BC_4, *, internal, X)," &
--BSC group 325 for unused pad
"975 (BC_4, *, internal, X)," &
"976 (BC_4, *, internal, 1)," &
"977 (BC_4, *, internal, X)," &
--BSC group 326 for unused pad
"978 (BC_4, *, internal, X)," &
"979 (BC_4, *, internal, 1)," &
"980 (BC_4, *, internal, X)," &
--BSC group 327 for unused pad
"981 (BC_4, *, internal, X)," &
"982 (BC_4, *, internal, 1)," &
"983 (BC_4, *, internal, X)," &
--BSC group 328 for unused pad
"984 (BC_4, *, internal, X)," &
"985 (BC_4, *, internal, 1)," &
"986 (BC_4, *, internal, X)," &
--BSC group 329 for unused pad
"987 (BC_4, *, internal, X)," &
"988 (BC_4, *, internal, 1)," &
"989 (BC_4, *, internal, X)," &
--BSC group 330 for unused pad
"990 (BC_4, *, internal, X)," &
"991 (BC_4, *, internal, 1)," &
"992 (BC_4, *, internal, X)," &
--BSC group 331 for unused pad
"993 (BC_4, *, internal, X)," &
"994 (BC_4, *, internal, 1)," &
"995 (BC_4, *, internal, X)," &
--BSC group 332 for unused pad
"996 (BC_4, *, internal, X)," &
"997 (BC_4, *, internal, 1)," &
"998 (BC_4, *, internal, X)," &
--BSC group 333 for unused pad
"999 (BC_4, *, internal, X)," &
"1000 (BC_4, *, internal, 1)," &
"1001 (BC_4, *, internal, X)," &
--BSC group 334 for unused pad
"1002 (BC_4, *, internal, X)," &
"1003 (BC_4, *, internal, 1)," &
"1004 (BC_4, *, internal, X)," &
--BSC group 335 for unused pad
"1005 (BC_4, *, internal, X)," &
"1006 (BC_4, *, internal, 1)," &
"1007 (BC_4, *, internal, X)," &
--BSC group 336 for I/O pin AB4
"1008 (BC_1, IOAB4, input, X)," &
"1009 (BC_1, *, control, 1)," &
"1010 (BC_1, IOAB4, output3, X, 1009, 1, Z)," &
--BSC group 337 for I/O pin AB6
"1011 (BC_1, IOAB6, input, X)," &
"1012 (BC_1, *, control, 1)," &
"1013 (BC_1, IOAB6, output3, X, 1012, 1, Z)," &
--BSC group 338 for I/O pin AC6
"1014 (BC_1, IOAC6, input, X)," &
"1015 (BC_1, *, control, 1)," &
"1016 (BC_1, IOAC6, output3, X, 1015, 1, Z)," &
--BSC group 339 for I/O pin AB3
"1017 (BC_1, IOAB3, input, X)," &
"1018 (BC_1, *, control, 1)," &
"1019 (BC_1, IOAB3, output3, X, 1018, 1, Z)," &
--BSC group 340 for I/O pin AB2
"1020 (BC_1, IOAB2, input, X)," &
"1021 (BC_1, *, control, 1)," &
"1022 (BC_1, IOAB2, output3, X, 1021, 1, Z)," &
--BSC group 341 for I/O pin AC3
"1023 (BC_1, IOAC3, input, X)," &
"1024 (BC_1, *, control, 1)," &
"1025 (BC_1, IOAC3, output3, X, 1024, 1, Z)," &
--BSC group 342 for I/O pin AD3
"1026 (BC_1, IOAD3, input, X)," &
"1027 (BC_1, *, control, 1)," &
"1028 (BC_1, IOAD3, output3, X, 1027, 1, Z)," &
--BSC group 343 for I/O pin AC1
"1029 (BC_1, IOAC1, input, X)," &
"1030 (BC_1, *, control, 1)," &
"1031 (BC_1, IOAC1, output3, X, 1030, 1, Z)," &
--BSC group 344 for I/O pin AD5
"1032 (BC_1, IOAD5, input, X)," &
"1033 (BC_1, *, control, 1)," &
"1034 (BC_1, IOAD5, output3, X, 1033, 1, Z)," &
--BSC group 345 for I/O pin Y7
"1035 (BC_1, IOY7, input, X)," &
"1036 (BC_1, *, control, 1)," &
"1037 (BC_1, IOY7, output3, X, 1036, 1, Z)," &
--BSC group 346 for I/O pin AA7
"1038 (BC_1, IOAA7, input, X)," &
"1039 (BC_1, *, control, 1)," &
"1040 (BC_1, IOAA7, output3, X, 1039, 1, Z)," &
--BSC group 347 for I/O pin AD4
"1041 (BC_1, IOAD4, input, X)," &
"1042 (BC_1, *, control, 1)," &
"1043 (BC_1, IOAD4, output3, X, 1042, 1, Z)," &
--BSC group 348 for I/O pin AE3
"1044 (BC_1, IOAE3, input, X)," &
"1045 (BC_1, *, control, 1)," &
"1046 (BC_1, IOAE3, output3, X, 1045, 1, Z)," &
--BSC group 349 for I/O pin AD6
"1047 (BC_1, IOAD6, input, X)," &
"1048 (BC_1, *, control, 1)," &
"1049 (BC_1, IOAD6, output3, X, 1048, 1, Z)," &
--BSC group 350 for I/O pin AC5
"1050 (BC_1, IOAC5, input, X)," &
"1051 (BC_1, *, control, 1)," &
"1052 (BC_1, IOAC5, output3, X, 1051, 1, Z)," &
--BSC group 351 for I/O pin AF3
"1053 (BC_1, IOAF3, input, X)," &
"1054 (BC_1, *, control, 1)," &
"1055 (BC_1, IOAF3, output3, X, 1054, 1, Z)," &
--BSC group 352 for I/O pin AF5
"1056 (BC_1, IOAF5, input, X)," &
"1057 (BC_1, *, control, 1)," &
"1058 (BC_1, IOAF5, output3, X, 1057, 1, Z)," &
--BSC group 353 for I/O pin Y8
"1059 (BC_1, IOY8, input, X)," &
"1060 (BC_1, *, control, 1)," &
"1061 (BC_1, IOY8, output3, X, 1060, 1, Z)," &
--BSC group 354 for I/O pin AA8
"1062 (BC_1, IOAA8, input, X)," &
"1063 (BC_1, *, control, 1)," &
"1064 (BC_1, IOAA8, output3, X, 1063, 1, Z)," &
--BSC group 355 for I/O pin AE4
"1065 (BC_1, IOAE4, input, X)," &
"1066 (BC_1, *, control, 1)," &
"1067 (BC_1, IOAE4, output3, X, 1066, 1, Z)," &
--BSC group 356 for I/O pin AC7
"1068 (BC_1, IOAC7, input, X)," &
"1069 (BC_1, *, control, 1)," &
"1070 (BC_1, IOAC7, output3, X, 1069, 1, Z)," &
--BSC group 357 for I/O pin AE6
"1071 (BC_1, IOAE6, input, X)," &
"1072 (BC_1, *, control, 1)," &
"1073 (BC_1, IOAE6, output3, X, 1072, 1, Z)," &
--BSC group 358 for I/O pin AF6
"1074 (BC_1, IOAF6, input, X)," &
"1075 (BC_1, *, control, 1)," &
"1076 (BC_1, IOAF6, output3, X, 1075, 1, Z)," &
--BSC group 359 for I/O pin AD7
"1077 (BC_1, IOAD7, input, X)," &
"1078 (BC_1, *, control, 1)," &
"1079 (BC_1, IOAD7, output3, X, 1078, 1, Z)," &
--BSC group 360 for I/O pin AF8
"1080 (BC_1, IOAF8, input, X)," &
"1081 (BC_1, *, control, 1)," &
"1082 (BC_1, IOAF8, output3, X, 1081, 1, Z)," &
--BSC group 361 for I/O pin Y9
"1083 (BC_1, IOY9, input, X)," &
"1084 (BC_1, *, control, 1)," &
"1085 (BC_1, IOY9, output3, X, 1084, 1, Z)," &
--BSC group 362 for I/O pin AA9
"1086 (BC_1, IOAA9, input, X)," &
"1087 (BC_1, *, control, 1)," &
"1088 (BC_1, IOAA9, output3, X, 1087, 1, Z)," &
--BSC group 363 for I/O pin AF7
"1089 (BC_1, IOAF7, input, X)," &
"1090 (BC_1, *, control, 1)," &
"1091 (BC_1, IOAF7, output3, X, 1090, 1, Z)," &
--BSC group 364 for I/O pin AC8
"1092 (BC_1, IOAC8, input, X)," &
"1093 (BC_1, *, control, 1)," &
"1094 (BC_1, IOAC8, output3, X, 1093, 1, Z)," &
--BSC group 365 for I/O pin V9
"1095 (BC_1, IOV9, input, X)," &
"1096 (BC_1, *, control, 1)," &
"1097 (BC_1, IOV9, output3, X, 1096, 1, Z)," &
--BSC group 366 for I/O pin W9
"1098 (BC_1, IOW9, input, X)," &
"1099 (BC_1, *, control, 1)," &
"1100 (BC_1, IOW9, output3, X, 1099, 1, Z)," &
--BSC group 367 for I/O pin AD8
"1101 (BC_1, IOAD8, input, X)," &
"1102 (BC_1, *, control, 1)," &
"1103 (BC_1, IOAD8, output3, X, 1102, 1, Z)," &
--BSC group 368 for I/O pin AB9
"1104 (BC_1, IOAB9, input, X)," &
"1105 (BC_1, *, control, 1)," &
"1106 (BC_1, IOAB9, output3, X, 1105, 1, Z)," &
--BSC group 369 for I/O pin Y10
"1107 (BC_1, IOY10, input, X)," &
"1108 (BC_1, *, control, 1)," &
"1109 (BC_1, IOY10, output3, X, 1108, 1, Z)," &
--BSC group 370 for I/O pin AA10
"1110 (BC_1, IOAA10, input, X)," &
"1111 (BC_1, *, control, 1)," &
"1112 (BC_1, IOAA10, output3, X, 1111, 1, Z)," &
--BSC group 371 for I/O pin AC9
"1113 (BC_1, IOAC9, input, X)," &
"1114 (BC_1, *, control, 1)," &
"1115 (BC_1, IOAC9, output3, X, 1114, 1, Z)," &
--BSC group 372 for I/O pin V10
"1116 (BC_1, IOV10, input, X)," &
"1117 (BC_1, *, control, 1)," &
"1118 (BC_1, IOV10, output3, X, 1117, 1, Z)," &
--BSC group 373 for I/O pin AD9
"1119 (BC_1, IOAD9, input, X)," &
"1120 (BC_1, *, control, 1)," &
"1121 (BC_1, IOAD9, output3, X, 1120, 1, Z)," &
--BSC group 374 for I/O pin AE9
"1122 (BC_1, IOAE9, input, X)," &
"1123 (BC_1, *, control, 1)," &
"1124 (BC_1, IOAE9, output3, X, 1123, 1, Z)," &
--BSC group 375 for I/O pin W10
"1125 (BC_1, IOW10, input, X)," &
"1126 (BC_1, *, control, 1)," &
"1127 (BC_1, IOW10, output3, X, 1126, 1, Z)," &
--BSC group 376 for I/O pin AE10
"1128 (BC_1, IOAE10, input, X)," &
"1129 (BC_1, *, control, 1)," &
"1130 (BC_1, IOAE10, output3, X, 1129, 1, Z)," &
--BSC group 377 for I/O pin Y11
"1131 (BC_1, IOY11, input, X)," &
"1132 (BC_1, *, control, 1)," &
"1133 (BC_1, IOY11, output3, X, 1132, 1, Z)," &
--BSC group 378 for I/O pin AA11
"1134 (BC_1, IOAA11, input, X)," &
"1135 (BC_1, *, control, 1)," &
"1136 (BC_1, IOAA11, output3, X, 1135, 1, Z)," &
--BSC group 379 for I/O pin AF9
"1137 (BC_1, IOAF9, input, X)," &
"1138 (BC_1, *, control, 1)," &
"1139 (BC_1, IOAF9, output3, X, 1138, 1, Z)," &
--BSC group 380 for I/O pin AC10
"1140 (BC_1, IOAC10, input, X)," &
"1141 (BC_1, *, control, 1)," &
"1142 (BC_1, IOAC10, output3, X, 1141, 1, Z)," &
--BSC group 381 for I/O pin AC11
"1143 (BC_1, IOAC11, input, X)," &
"1144 (BC_1, *, control, 1)," &
"1145 (BC_1, IOAC11, output3, X, 1144, 1, Z)," &
--BSC group 382 for I/O pin AD11
"1146 (BC_1, IOAD11, input, X)," &
"1147 (BC_1, *, control, 1)," &
"1148 (BC_1, IOAD11, output3, X, 1147, 1, Z)," &
--BSC group 383 for I/O pin AD10
"1149 (BC_1, IOAD10, input, X)," &
"1150 (BC_1, *, control, 1)," &
"1151 (BC_1, IOAD10, output3, X, 1150, 1, Z)," &
--BSC group 384 for I/O pin AF12
"1152 (BC_1, IOAF12, input, X)," &
"1153 (BC_1, *, control, 1)," &
"1154 (BC_1, IOAF12, output3, X, 1153, 1, Z)," &
--BSC group 385 for I/O pin AA12
"1155 (BC_1, IOAA12, input, X)," &
"1156 (BC_1, *, control, 1)," &
"1157 (BC_1, IOAA12, output3, X, 1156, 1, Z)," &
--BSC group 386 for I/O pin AB12
"1158 (BC_1, IOAB12, input, X)," &
"1159 (BC_1, *, control, 1)," &
"1160 (BC_1, IOAB12, output3, X, 1159, 1, Z)," &
--BSC group 387 for I/O pin AF11
"1161 (BC_1, IOAF11, input, X)," &
"1162 (BC_1, *, control, 1)," &
"1163 (BC_1, IOAF11, output3, X, 1162, 1, Z)," &
--BSC group 388 for I/O pin AD12
"1164 (BC_1, IOAD12, input, X)," &
"1165 (BC_1, *, control, 1)," &
"1166 (BC_1, IOAD12, output3, X, 1165, 1, Z)," &
--BSC group 389 for I/O pin V12
"1167 (BC_1, IOV12, input, X)," &
"1168 (BC_1, *, control, 1)," &
"1169 (BC_1, IOV12, output3, X, 1168, 1, Z)," &
--BSC group 390 for I/O pin W12
"1170 (BC_1, IOW12, input, X)," &
"1171 (BC_1, *, control, 1)," &
"1172 (BC_1, IOW12, output3, X, 1171, 1, Z)," &
--BSC group 391 for I/O pin AE12
"1173 (BC_1, IOAE12, input, X)," &
"1174 (BC_1, *, control, 1)," &
"1175 (BC_1, IOAE12, output3, X, 1174, 1, Z)," &
--BSC group 392 for I/O pin AD13
"1176 (BC_1, IOAD13, input, X)," &
"1177 (BC_1, *, control, 1)," &
"1178 (BC_1, IOAD13, output3, X, 1177, 1, Z)," &
--BSC group 393 for I/O pin Y13
"1179 (BC_1, IOY13, input, X)," &
"1180 (BC_1, *, control, 1)," &
"1181 (BC_1, IOY13, output3, X, 1180, 1, Z)," &
--BSC group 394 for I/O pin AA13
"1182 (BC_1, IOAA13, input, X)," &
"1183 (BC_1, *, control, 1)," &
"1184 (BC_1, IOAA13, output3, X, 1183, 1, Z)," &
--BSC group 395 for I/O pin AE13
"1185 (BC_1, IOAE13, input, X)," &
"1186 (BC_1, *, control, 1)," &
"1187 (BC_1, IOAE13, output3, X, 1186, 1, Z)," &
--BSC group 396 for I/O pin AB13
"1188 (BC_1, IOAB13, input, X)," &
"1189 (BC_1, *, control, 1)," &
"1190 (BC_1, IOAB13, output3, X, 1189, 1, Z)," &
--BSC group 397 for I/O pin V13
"1191 (BC_1, IOV13, input, X)," &
"1192 (BC_1, *, control, 1)," &
"1193 (BC_1, IOV13, output3, X, 1192, 1, Z)," &
--BSC group 398 for I/O pin W13
"1194 (BC_1, IOW13, input, X)," &
"1195 (BC_1, *, control, 1)," &
"1196 (BC_1, IOW13, output3, X, 1195, 1, Z)," &
--BSC group 399 for I/O pin AC13
"1197 (BC_1, IOAC13, input, X)," &
"1198 (BC_1, *, control, 1)," &
"1199 (BC_1, IOAC13, output3, X, 1198, 1, Z)," &
--BSC group 400 for I/O pin AF14
"1200 (BC_1, IOAF14, input, X)," &
"1201 (BC_1, *, control, 1)," &
"1202 (BC_1, IOAF14, output3, X, 1201, 1, Z)," &
--BSC group 401 for I/O pin Y14
"1203 (BC_1, IOY14, input, X)," &
"1204 (BC_1, *, control, 1)," &
"1205 (BC_1, IOY14, output3, X, 1204, 1, Z)," &
--BSC group 402 for I/O pin AA14
"1206 (BC_1, IOAA14, input, X)," &
"1207 (BC_1, *, control, 1)," &
"1208 (BC_1, IOAA14, output3, X, 1207, 1, Z)," &
--BSC group 403 for I/O pin AF13
"1209 (BC_1, IOAF13, input, X)," &
"1210 (BC_1, *, control, 1)," &
"1211 (BC_1, IOAF13, output3, X, 1210, 1, Z)," &
--BSC group 404 for I/O pin AC14
"1212 (BC_1, IOAC14, input, X)," &
"1213 (BC_1, *, control, 1)," &
"1214 (BC_1, IOAC14, output3, X, 1213, 1, Z)," &
--BSC group 405 for I/O pin AD15
"1215 (BC_1, IOAD15, input, X)," &
"1216 (BC_1, *, control, 1)," &
"1217 (BC_1, IOAD15, output3, X, 1216, 1, Z)," &
--BSC group 406 for I/O pin AE15
"1218 (BC_1, IOAE15, input, X)," &
"1219 (BC_1, *, control, 1)," &
"1220 (BC_1, IOAE15, output3, X, 1219, 1, Z)," &
--BSC group 407 for I/O pin AD14
"1221 (BC_1, IOAD14, input, X)," &
"1222 (BC_1, *, control, 1)," &
"1223 (BC_1, IOAD14, output3, X, 1222, 1, Z)," &
--BSC group 408 for I/O pin V15
"1224 (BC_1, IOV15, input, X)," &
"1225 (BC_1, *, control, 1)," &
"1226 (BC_1, IOV15, output3, X, 1225, 1, Z)," &
--BSC group 409 for I/O pin AA15
"1227 (BC_1, IOAA15, input, X)," &
"1228 (BC_1, *, control, 1)," &
"1229 (BC_1, IOAA15, output3, X, 1228, 1, Z)," &
--BSC group 410 for I/O pin AB15
"1230 (BC_1, IOAB15, input, X)," &
"1231 (BC_1, *, control, 1)," &
"1232 (BC_1, IOAB15, output3, X, 1231, 1, Z)," &
--BSC group 411 for I/O pin W15
"1233 (BC_1, IOW15, input, X)," &
"1234 (BC_1, *, control, 1)," &
"1235 (BC_1, IOW15, output3, X, 1234, 1, Z)," &
--BSC group 412 for I/O pin AF15
"1236 (BC_1, IOAF15, input, X)," &
"1237 (BC_1, *, control, 1)," &
"1238 (BC_1, IOAF15, output3, X, 1237, 1, Z)," &
--BSC group 413 for I/O pin AD16
"1239 (BC_1, IOAD16, input, X)," &
"1240 (BC_1, *, control, 1)," &
"1241 (BC_1, IOAD16, output3, X, 1240, 1, Z)," &
--BSC group 414 for I/O pin AE16
"1242 (BC_1, IOAE16, input, X)," &
"1243 (BC_1, *, control, 1)," &
"1244 (BC_1, IOAE16, output3, X, 1243, 1, Z)," &
--BSC group 415 for I/O pin AF16
"1245 (BC_1, IOAF16, input, X)," &
"1246 (BC_1, *, control, 1)," &
"1247 (BC_1, IOAF16, output3, X, 1246, 1, Z)," &
--BSC group 416 for I/O pin V16
"1248 (BC_1, IOV16, input, X)," &
"1249 (BC_1, *, control, 1)," &
"1250 (BC_1, IOV16, output3, X, 1249, 1, Z)," &
--BSC group 417 for I/O pin Y16
"1251 (BC_1, IOY16, input, X)," &
"1252 (BC_1, *, control, 1)," &
"1253 (BC_1, IOY16, output3, X, 1252, 1, Z)," &
--BSC group 418 for I/O pin AA16
"1254 (BC_1, IOAA16, input, X)," &
"1255 (BC_1, *, control, 1)," &
"1256 (BC_1, IOAA16, output3, X, 1255, 1, Z)," &
--BSC group 419 for I/O pin W16
"1257 (BC_1, IOW16, input, X)," &
"1258 (BC_1, *, control, 1)," &
"1259 (BC_1, IOW16, output3, X, 1258, 1, Z)," &
--BSC group 420 for I/O pin AB16
"1260 (BC_1, IOAB16, input, X)," &
"1261 (BC_1, *, control, 1)," &
"1262 (BC_1, IOAB16, output3, X, 1261, 1, Z)," &
--BSC group 421 for I/O pin AC17
"1263 (BC_1, IOAC17, input, X)," &
"1264 (BC_1, *, control, 1)," &
"1265 (BC_1, IOAC17, output3, X, 1264, 1, Z)," &
--BSC group 422 for I/O pin AD17
"1266 (BC_1, IOAD17, input, X)," &
"1267 (BC_1, *, control, 1)," &
"1268 (BC_1, IOAD17, output3, X, 1267, 1, Z)," &
--BSC group 423 for I/O pin AC16
"1269 (BC_1, IOAC16, input, X)," &
"1270 (BC_1, *, control, 1)," &
"1271 (BC_1, IOAC16, output3, X, 1270, 1, Z)," &
--BSC group 424 for I/O pin W18
"1272 (BC_1, IOW18, input, X)," &
"1273 (BC_1, *, control, 1)," &
"1274 (BC_1, IOW18, output3, X, 1273, 1, Z)," &
--BSC group 425 for I/O pin Y17
"1275 (BC_1, IOY17, input, X)," &
"1276 (BC_1, *, control, 1)," &
"1277 (BC_1, IOY17, output3, X, 1276, 1, Z)," &
--BSC group 426 for I/O pin AA17
"1278 (BC_1, IOAA17, input, X)," &
"1279 (BC_1, *, control, 1)," &
"1280 (BC_1, IOAA17, output3, X, 1279, 1, Z)," &
--BSC group 427 for I/O pin Y18
"1281 (BC_1, IOY18, input, X)," &
"1282 (BC_1, *, control, 1)," &
"1283 (BC_1, IOY18, output3, X, 1282, 1, Z)," &
--BSC group 428 for I/O pin AD18
"1284 (BC_1, IOAD18, input, X)," &
"1285 (BC_1, *, control, 1)," &
"1286 (BC_1, IOAD18, output3, X, 1285, 1, Z)," &
--BSC group 429 for I/O pin AA18
"1287 (BC_1, IOAA18, input, X)," &
"1288 (BC_1, *, control, 1)," &
"1289 (BC_1, IOAA18, output3, X, 1288, 1, Z)," &
--BSC group 430 for I/O pin AB18
"1290 (BC_1, IOAB18, input, X)," &
"1291 (BC_1, *, control, 1)," &
"1292 (BC_1, IOAB18, output3, X, 1291, 1, Z)," &
--BSC group 431 for I/O pin AE18
"1293 (BC_1, IOAE18, input, X)," &
"1294 (BC_1, *, control, 1)," &
"1295 (BC_1, IOAE18, output3, X, 1294, 1, Z)," &
--BSC group 432 for unused pad
"1296 (BC_4, *, internal, X)," &
"1297 (BC_4, *, internal, 1)," &
"1298 (BC_4, *, internal, X)," &
--BSC group 433 for unused pad
"1299 (BC_4, *, internal, X)," &
"1300 (BC_4, *, internal, 1)," &
"1301 (BC_4, *, internal, X)," &
--BSC group 434 for unused pad
"1302 (BC_4, *, internal, X)," &
"1303 (BC_4, *, internal, 1)," &
"1304 (BC_4, *, internal, X)," &
--BSC group 435 for unused pad
"1305 (BC_4, *, internal, X)," &
"1306 (BC_4, *, internal, 1)," &
"1307 (BC_4, *, internal, X)," &
--BSC group 436 for unused pad
"1308 (BC_4, *, internal, X)," &
"1309 (BC_4, *, internal, 1)," &
"1310 (BC_4, *, internal, X)," &
--BSC group 437 for unused pad
"1311 (BC_4, *, internal, X)," &
"1312 (BC_4, *, internal, 1)," &
"1313 (BC_4, *, internal, X)," &
--BSC group 438 for unused pad
"1314 (BC_4, *, internal, X)," &
"1315 (BC_4, *, internal, 1)," &
"1316 (BC_4, *, internal, X)," &
--BSC group 439 for unused pad
"1317 (BC_4, *, internal, X)," &
"1318 (BC_4, *, internal, 1)," &
"1319 (BC_4, *, internal, X)," &
--BSC group 440 for unused pad
"1320 (BC_4, *, internal, X)," &
"1321 (BC_4, *, internal, 1)," &
"1322 (BC_4, *, internal, X)," &
--BSC group 441 for unused pad
"1323 (BC_4, *, internal, X)," &
"1324 (BC_4, *, internal, 1)," &
"1325 (BC_4, *, internal, X)," &
--BSC group 442 for unused pad
"1326 (BC_4, *, internal, X)," &
"1327 (BC_4, *, internal, 1)," &
"1328 (BC_4, *, internal, X)," &
--BSC group 443 for unused pad
"1329 (BC_4, *, internal, X)," &
"1330 (BC_4, *, internal, 1)," &
"1331 (BC_4, *, internal, X)," &
--BSC group 444 for unused pad
"1332 (BC_4, *, internal, X)," &
"1333 (BC_4, *, internal, 1)," &
"1334 (BC_4, *, internal, X)," &
--BSC group 445 for unused pad
"1335 (BC_4, *, internal, X)," &
"1336 (BC_4, *, internal, 1)," &
"1337 (BC_4, *, internal, X)," &
--BSC group 446 for unused pad
"1338 (BC_4, *, internal, X)," &
"1339 (BC_4, *, internal, 1)," &
"1340 (BC_4, *, internal, X)," &
--BSC group 447 for unused pad
"1341 (BC_4, *, internal, X)," &
"1342 (BC_4, *, internal, 1)," &
"1343 (BC_4, *, internal, X)," &
--BSC group 448 for unused pad
"1344 (BC_4, *, internal, X)," &
"1345 (BC_4, *, internal, 1)," &
"1346 (BC_4, *, internal, X)," &
--BSC group 449 for unused pad
"1347 (BC_4, *, internal, X)," &
"1348 (BC_4, *, internal, 1)," &
"1349 (BC_4, *, internal, X)," &
--BSC group 450 for unused pad
"1350 (BC_4, *, internal, X)," &
"1351 (BC_4, *, internal, 1)," &
"1352 (BC_4, *, internal, X)," &
--BSC group 451 for unused pad
"1353 (BC_4, *, internal, X)," &
"1354 (BC_4, *, internal, 1)," &
"1355 (BC_4, *, internal, X)," &
--BSC group 452 for unused pad
"1356 (BC_4, *, internal, X)," &
"1357 (BC_4, *, internal, 1)," &
"1358 (BC_4, *, internal, X)," &
--BSC group 453 for unused pad
"1359 (BC_4, *, internal, X)," &
"1360 (BC_4, *, internal, 1)," &
"1361 (BC_4, *, internal, X)," &
--BSC group 454 for unused pad
"1362 (BC_4, *, internal, X)," &
"1363 (BC_4, *, internal, 1)," &
"1364 (BC_4, *, internal, X)," &
--BSC group 455 for unused pad
"1365 (BC_4, *, internal, X)," &
"1366 (BC_4, *, internal, 1)," &
"1367 (BC_4, *, internal, X)," &
--BSC group 456 for unused pad
"1368 (BC_4, *, internal, X)," &
"1369 (BC_4, *, internal, 1)," &
"1370 (BC_4, *, internal, X)," &
--BSC group 457 for unused pad
"1371 (BC_4, *, internal, X)," &
"1372 (BC_4, *, internal, 1)," &
"1373 (BC_4, *, internal, X)," &
--BSC group 458 for unused pad
"1374 (BC_4, *, internal, X)," &
"1375 (BC_4, *, internal, 1)," &
"1376 (BC_4, *, internal, X)," &
--BSC group 459 for unused pad
"1377 (BC_4, *, internal, X)," &
"1378 (BC_4, *, internal, 1)," &
"1379 (BC_4, *, internal, X)," &
--BSC group 460 for unused pad
"1380 (BC_4, *, internal, X)," &
"1381 (BC_4, *, internal, 1)," &
"1382 (BC_4, *, internal, X)," &
--BSC group 461 for unused pad
"1383 (BC_4, *, internal, X)," &
"1384 (BC_4, *, internal, 1)," &
"1385 (BC_4, *, internal, X)," &
--BSC group 462 for unused pad
"1386 (BC_4, *, internal, X)," &
"1387 (BC_4, *, internal, 1)," &
"1388 (BC_4, *, internal, X)," &
--BSC group 463 for unused pad
"1389 (BC_4, *, internal, X)," &
"1390 (BC_4, *, internal, 1)," &
"1391 (BC_4, *, internal, X)," &
--BSC group 464 for unused pad
"1392 (BC_4, *, internal, X)," &
"1393 (BC_4, *, internal, 1)," &
"1394 (BC_4, *, internal, X)," &
--BSC group 465 for unused pad
"1395 (BC_4, *, internal, X)," &
"1396 (BC_4, *, internal, 1)," &
"1397 (BC_4, *, internal, X)," &
--BSC group 466 for unused pad
"1398 (BC_4, *, internal, X)," &
"1399 (BC_4, *, internal, 1)," &
"1400 (BC_4, *, internal, X)," &
--BSC group 467 for unused pad
"1401 (BC_4, *, internal, X)," &
"1402 (BC_4, *, internal, 1)," &
"1403 (BC_4, *, internal, X)," &
--BSC group 468 for unused pad
"1404 (BC_4, *, internal, X)," &
"1405 (BC_4, *, internal, 1)," &
"1406 (BC_4, *, internal, X)," &
--BSC group 469 for unused pad
"1407 (BC_4, *, internal, X)," &
"1408 (BC_4, *, internal, 1)," &
"1409 (BC_4, *, internal, X)," &
--BSC group 470 for unused pad
"1410 (BC_4, *, internal, X)," &
"1411 (BC_4, *, internal, 1)," &
"1412 (BC_4, *, internal, X)," &
--BSC group 471 for unused pad
"1413 (BC_4, *, internal, X)," &
"1414 (BC_4, *, internal, 1)," &
"1415 (BC_4, *, internal, X)," &
--BSC group 472 for I/O pin AE19
"1416 (BC_1, IOAE19, input, X)," &
"1417 (BC_1, *, control, 1)," &
"1418 (BC_1, IOAE19, output3, X, 1417, 1, Z)," &
--BSC group 473 for I/O pin AC19
"1419 (BC_1, IOAC19, input, X)," &
"1420 (BC_1, *, control, 1)," &
"1421 (BC_1, IOAC19, output3, X, 1420, 1, Z)," &
--BSC group 474 for I/O pin AD19
"1422 (BC_1, IOAD19, input, X)," &
"1423 (BC_1, *, control, 1)," &
"1424 (BC_1, IOAD19, output3, X, 1423, 1, Z)," &
--BSC group 475 for I/O pin AF18
"1425 (BC_1, IOAF18, input, X)," &
"1426 (BC_1, *, control, 1)," &
"1427 (BC_1, IOAF18, output3, X, 1426, 1, Z)," &
--BSC group 476 for I/O pin AF19
"1428 (BC_1, IOAF19, input, X)," &
"1429 (BC_1, *, control, 1)," &
"1430 (BC_1, IOAF19, output3, X, 1429, 1, Z)," &
--BSC group 477 for I/O pin AC20
"1431 (BC_1, IOAC20, input, X)," &
"1432 (BC_1, *, control, 1)," &
"1433 (BC_1, IOAC20, output3, X, 1432, 1, Z)," &
--BSC group 478 for I/O pin AD20
"1434 (BC_1, IOAD20, input, X)," &
"1435 (BC_1, *, control, 1)," &
"1436 (BC_1, IOAD20, output3, X, 1435, 1, Z)," &
--BSC group 479 for I/O pin AF20
"1437 (BC_1, IOAF20, input, X)," &
"1438 (BC_1, *, control, 1)," &
"1439 (BC_1, IOAF20, output3, X, 1438, 1, Z)," &
--BSC group 480 for I/O pin AE21
"1440 (BC_1, IOAE21, input, X)," &
"1441 (BC_1, *, control, 1)," &
"1442 (BC_1, IOAE21, output3, X, 1441, 1, Z)," &
--BSC group 481 for I/O pin Y20
"1443 (BC_1, IOY20, input, X)," &
"1444 (BC_1, *, control, 1)," &
"1445 (BC_1, IOY20, output3, X, 1444, 1, Z)," &
--BSC group 482 for I/O pin Y19
"1446 (BC_1, IOY19, input, X)," &
"1447 (BC_1, *, control, 1)," &
"1448 (BC_1, IOY19, output3, X, 1447, 1, Z)," &
--BSC group 483 for I/O pin AF21
"1449 (BC_1, IOAF21, input, X)," &
"1450 (BC_1, *, control, 1)," &
"1451 (BC_1, IOAF21, output3, X, 1450, 1, Z)," &
--BSC group 484 for I/O pin AF22
"1452 (BC_1, IOAF22, input, X)," &
"1453 (BC_1, *, control, 1)," &
"1454 (BC_1, IOAF22, output3, X, 1453, 1, Z)," &
--BSC group 485 for I/O pin AD23
"1455 (BC_1, IOAD23, input, X)," &
"1456 (BC_1, *, control, 1)," &
"1457 (BC_1, IOAD23, output3, X, 1456, 1, Z)," &
--BSC group 486 for I/O pin AE23
"1458 (BC_1, IOAE23, input, X)," &
"1459 (BC_1, *, control, 1)," &
"1460 (BC_1, IOAE23, output3, X, 1459, 1, Z)," &
--BSC group 487 for I/O pin AF23
"1461 (BC_1, IOAF23, input, X)," &
"1462 (BC_1, *, control, 1)," &
"1463 (BC_1, IOAF23, output3, X, 1462, 1, Z)," &
--BSC group 488 for I/O pin AC22
"1464 (BC_1, IOAC22, input, X)," &
"1465 (BC_1, *, control, 1)," &
"1466 (BC_1, IOAC22, output3, X, 1465, 1, Z)," &
--BSC group 489 for I/O pin Y21
"1467 (BC_1, IOY21, input, X)," &
"1468 (BC_1, *, control, 1)," &
"1469 (BC_1, IOY21, output3, X, 1468, 1, Z)," &
--BSC group 490 for I/O pin AA21
"1470 (BC_1, IOAA21, input, X)," &
"1471 (BC_1, *, control, 1)," &
"1472 (BC_1, IOAA21, output3, X, 1471, 1, Z)," &
--BSC group 491 for I/O pin AD22
"1473 (BC_1, IOAD22, input, X)," &
"1474 (BC_1, *, control, 1)," &
"1475 (BC_1, IOAD22, output3, X, 1474, 1, Z)," &
--BSC group 492 for I/O pin AB21
"1476 (BC_1, IOAB21, input, X)," &
"1477 (BC_1, *, control, 1)," &
"1478 (BC_1, IOAB21, output3, X, 1477, 1, Z)," &
--BSC group 493 for I/O pin AA20
"1479 (BC_1, IOAA20, input, X)," &
"1480 (BC_1, *, control, 1)," &
"1481 (BC_1, IOAA20, output3, X, 1480, 1, Z)," &
--BSC group 494 for I/O pin AB19
"1482 (BC_1, IOAB19, input, X)," &
"1483 (BC_1, *, control, 1)," &
"1484 (BC_1, IOAB19, output3, X, 1483, 1, Z)," &
--BSC group 495 for I/O pin AC21
"1485 (BC_1, IOAC21, input, X)," &
"1486 (BC_1, *, control, 1)," &
"1487 (BC_1, IOAC21, output3, X, 1486, 1, Z)" ;
-- ***********************************************************************************
-- * DESIGN WARNING *
-- ***********************************************************************************
attribute DESIGN_WARNING of ARRIA_V_5AGXMA3DF27 : entity is
"This ARRIA_V_5AGXMA3DF27 BSDL file supports 1149.1 testing before device"&
"configuration. Boundary scan testing with differential pin"&
"pairs after configuration requires changes to this file. Please"&
"read the comments at the top of the file for further instruction."&
"The following private instructions must not be used as they"&
"may render the device inoperable:"&
" "&
" 1100010000 "&
" 0011001001 "&
" 0000101011 "&
" 1100010111 "&
" 1010100001 "&
" 0101011110 "&
" "&
"Customer should take precautions not to invoke these instructions"&
"at any time. Contact Altera Applications for further assistance.";
end ARRIA_V_5AGXMA3DF27;
-- *********************************************************************
-- * REVISION HISTORY *
-- *********************************************************************
-- Revision Date Description
-- 1.00 12/05/2012 Initial release
-- 1.01 05/17/2013 Updated for nCSO pin
\ No newline at end of file
#!/bin/bash
echo "################################################################################" | tee resp.txt
echo "Check that Xilinx JTAG cable is connected to front panel JTAG connector" | tee -a resp.txt
echo " and DIP1 is in position ONU(USB) then press ENTER" | tee -a resp.txt
echo "Flashing CPLD" | tee -a resp.txt
source /opt/Xilinx/14.7/LabTools/settings64.sh
# call Impact script
impact -batch ./impact_cpld_flash.cmd | tee -a resp.txt
# if called from script copy log to report folder
if [[ -n $LOG_FOLDER ]]; then
cp _impactbatch.log $LOG_FOLDER/flash_cpld.txt
fi
RESULT=`cat _impactbatch.log | grep "Programming completed successfully"`
if [[ -n $RESULT ]]; then
printf "Programming completed successfully"| tee -a resp.txt
echo "PTS_STATUS: OK"| tee -a resp.txt
exit 0
else
echo "PTS_STATUS: Failed"| tee -a resp.txt
exit 64
fi
setMode -bscan
setCable -port usb21
setCableSpeed -speed 750000
Identify -inferir
assignFile -p 1 -file "microtca_prog1.jed"
assignFile -p 2 -file "5AGXMA3DF27.bsd"
program -p 1 -e -v
closecable
exit 0
-- $ XILINX$RCSfile: xc2c64a_cp56.bsd,v $
-- XILINX Revision: 1.5
--
-- BSDL file for device XC2C64, package CP56
-- Xilinx, Inc. State: PRELIMINARY Date: 2006/10/17 16:43:33
-- Generated by 1149.pl
-- =================================================
-- North American Support
-- (Mon,Tues,Wed,Fri 6:30am-5pm
-- Thr 6:30am - 4:00pm Pacific Standard Time)
-- Hotline: 1-800-255-7778
-- or (408) 879-5199
-- Fax: (408) 879-4442
-- Email: hotline@xilinx.com
-- United Kingdom Support
-- (Mon-Fri 08:00 to 17:30 GMT)
-- Hotline: +44 870 7350 610
-- Fax: +44 870 7350 620
-- Email : eurosupport@xilinx.com
--
-- France Support
-- (Mon-Fri 08:00 to 17:30 GMT)
-- Hotline: +33 1 3463 0100
-- Fax: +44 870 7350 620
-- Email : eurosupport@xilinx.com
--
-- Germany Support
-- (Mon-Fri 08:00 to 17:30 GMT)
-- Hotline: +49 180 3 60 60 60
-- Fax: +44 870 7350 620
-- Email : eurosupport@xilinx.com
-- Sweden Support
-- (Mon-Fri 08:00 to 17:30 GMT)
-- Hotline: +46 8 33 14 00
-- Fax: +44 870 7350 620
-- Email : eurosupport@xilinx.com
--
-- Japan Support
-- (Mon,Tues,Thu,Fri 9:00am -5:00pm ()
-- Wed 9:00am -4:00pm)
-- Hotline: (81)3-3297-9163
-- Fax:: (81)3-3297-0067
-- Email: jhotline@xilinx.com
-- =================================================
--
entity xc2c64a_cp56 is
generic (PHYSICAL_PIN_MAP : string := "CP56");
port ( tdi : in bit;
tck : in bit;
tms : in bit;
tdo : out bit;
IO_0 : inout bit;
IO_1 : inout bit;
IO_2 : inout bit;
IO_8 : inout bit;
IO_9 : inout bit;
IO_10 : inout bit;
IO_11 : inout bit;
IO_12 : inout bit;
IO_13 : inout bit;
IO_14 : inout bit;
IO_16 : inout bit;
IO_17 : inout bit;
IO_20 : inout bit;
IO_21 : inout bit;
IO_22 : inout bit;
IO_23 : inout bit;
IO_24 : inout bit;
IO_25 : inout bit;
IO_27 : inout bit;
IO_28 : inout bit;
IO_29 : inout bit;
IO_32 : inout bit;
IO_33 : inout bit;
IO_34 : inout bit;
IO_35 : inout bit;
IO_36 : inout bit;
IO_37 : inout bit;
IO_38 : inout bit;
IO_40 : inout bit;
IO_41 : inout bit;
IO_42 : inout bit;
IO_43 : inout bit;
IO_44 : inout bit;
IO_45 : inout bit;
IO_46 : inout bit;
IO_48 : inout bit;
IO_49 : inout bit;
IO_50 : inout bit;
IO_52 : inout bit;
IO_54 : inout bit;
IO_57 : inout bit;
IO_58 : inout bit;
IO_60 : inout bit;
IO_62 : inout bit;
vdd : linkage bit_vector(1 to 3);
gnd : linkage bit_vector(1 to 3);
IO_63 : inout bit);
use std_1149_1_1994.all;
attribute COMPONENT_CONFORMANCE of xc2c64a_cp56 : entity is "std_1149_1_1993";
attribute PIN_MAP of xc2c64a_cp56 : entity is PHYSICAL_PIN_MAP;
constant CP56 : PIN_MAP_STRING :=
" tdi:J10, tck:K10, tms:K9, tdo:A6," &
" IO_0:F1, IO_1:E3, IO_2:E1," &
" IO_8:D1, IO_9:C1," &
" IO_10:A3, IO_11:A2, IO_12:B1, IO_13:A1, IO_14:C3," &
" IO_16:G1, IO_17:F3," &
" IO_20:H1, IO_21:G3, IO_22:J1, IO_23:K1, IO_24:K4," &
" IO_25:K2, IO_27:K3, IO_28:H3, IO_29:K5," &
" IO_32:C4, IO_33:A4, IO_34:C5," &
" IO_35:A7, IO_36:C8, IO_37:A8, IO_38:A9," &
" IO_40:A5, IO_41:A10, IO_42:B10, IO_43:C10, IO_44:D8," &
" IO_45:E8, IO_46:D10, IO_48:K6, IO_49:H5," &
" IO_50:K7, IO_52:H7, IO_54:H8," &
" IO_57:K8, IO_58:H10," &
" vdd : (H6,G8,C6)," &
" gnd : (H4,F8,C7), " &
" IO_60:G10, IO_62:F10, IO_63:E10";
attribute TAP_SCAN_IN of tdi : signal is true;
attribute TAP_SCAN_CLOCK of tck : signal is (33.0e6, both);
attribute TAP_SCAN_MODE of tms : signal is true;
attribute TAP_SCAN_OUT of tdo : signal is true;
attribute INSTRUCTION_LENGTH of xc2c64a_cp56 : entity is 8;
attribute INSTRUCTION_OPCODE of xc2c64a_cp56 : entity is
"INTEST (00000010)," &
"BYPASS (11111111)," &
"SAMPLE (00000011)," &
"EXTEST (00000000)," &
"IDCODE (00000001)," &
"USERCODE (11111101)," &
"HIGHZ (11111100)," &
"ISC_ENABLE_CLAMP (11101001)," &
"ISC_ENABLEOTF (11100100)," &
"ISC_ENABLE (11101000)," &
"ISC_SRAM_READ (11100111)," &
"ISC_SRAM_WRITE (11100110)," &
"ISC_ERASE (11101101)," &
"ISC_PROGRAM (11101010)," &
"ISC_READ (11101110)," &
"ISC_INIT (11110000)," &
"ISC_DISABLE (11000000)," &
"TEST_ENABLE (00010001)," &
"BULKPROG (00010010)," &
"ERASE_ALL (00010100)," &
"MVERIFY (00010011)," &
"TEST_DISABLE (00010101)," &
-- "STCTEST (00010110)," &
"ISC_NOOP (11100000)";
attribute INSTRUCTION_CAPTURE of xc2c64a_cp56 : entity is "XXXXXX01" ;
attribute IDCODE_REGISTER of xc2c64a_cp56 : entity is "XXXX0110111001011101000010010011";
attribute USERCODE_REGISTER of xc2c64a_cp56 : entity is "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
attribute REGISTER_ACCESS of xc2c64a_cp56 : entity is
"BYPASS (BYPASS)," &
"BYPASS (HIGHZ)," &
"BOUNDARY (SAMPLE)," &
"BOUNDARY (EXTEST)," &
"BOUNDARY (INTEST)," &
"DATAREG[281] (ISC_ENABLEOTF)," &
"DATAREG[281] (ISC_ENABLE)," &
"DATAREG[281] (ISC_SRAM_READ)," &
"DATAREG[281] (ISC_SRAM_WRITE)," &
"DATAREG[281] (ISC_ERASE)," &
"DATAREG[281] (ISC_PROGRAM)," &
"DATAREG[281] (ISC_READ)," &
"DATAREG[281] (ISC_INIT)," &
"DATAREG[281] (ISC_DISABLE)," &
"DATAREG[281] (TEST_ENABLE)," &
"DATAREG[281] (BULKPROG)," &
"DATAREG[281] (ERASE_ALL)," &
"DATAREG[281] (MVERIFY)," &
"DATAREG[281] (TEST_DISABLE)," &
-- "STC[] (STCTEST)," &
"ISC_DEFAULT[1] (ISC_NOOP)," &
"DEVICE_ID (IDCODE, USERCODE)," &
"ISC_DEFAULT[1] (ISC_ENABLE_CLAMP)";
attribute BOUNDARY_LENGTH of xc2c64a_cp56 : entity is 192;
attribute BOUNDARY_REGISTER of xc2c64a_cp56 : entity is
--
-- num cell port function safe [ccell disval rslt]
--
" 191 (BC_1, IO_0, INPUT, X)," &
" 190 (BC_1, IO_0, OUTPUT3, X, 189, 0,Z),"&
" 189 (BC_1, *, CONTROL, 0)," &
" 188 (BC_1, IO_1, INPUT, X)," &
" 187 (BC_1, IO_1, OUTPUT3, X, 186, 0,Z),"&
" 186 (BC_1, *, CONTROL, 0)," &
" 185 (BC_1, IO_2, INPUT, X)," &
" 184 (BC_1, IO_2, OUTPUT3, X, 183, 0,Z),"&
" 183 (BC_1, *, CONTROL, 0)," &
" 182 (BC_1, *, INTERNAL, X)," &
" 181 (BC_1, *, INTERNAL, X)," &
" 180 (BC_1, *, INTERNAL, X)," &
" 179 (BC_1, *, INTERNAL, X)," &
" 178 (BC_1, *, INTERNAL, X)," &
" 177 (BC_1, *, INTERNAL, X)," &
" 176 (BC_1, *, INTERNAL, X)," &
" 175 (BC_1, *, INTERNAL, X)," &
" 174 (BC_1, *, INTERNAL, X)," &
" 173 (BC_1, *, INTERNAL, X)," &
" 172 (BC_1, *, INTERNAL, X)," &
" 171 (BC_1, *, INTERNAL, X)," &
" 170 (BC_1, *, INTERNAL, X)," &
" 169 (BC_1, *, INTERNAL, X)," &
" 168 (BC_1, *, INTERNAL, X)," &
" 167 (BC_1, IO_8, INPUT, X)," &
" 166 (BC_1, IO_8, OUTPUT3, X, 165, 0,Z),"&
" 165 (BC_1, *, CONTROL, 0)," &
" 164 (BC_1, IO_9, INPUT, X)," &
" 163 (BC_1, IO_9, OUTPUT3, X, 162, 0,Z),"&
" 162 (BC_1, *, CONTROL, 0)," &
" 161 (BC_1, IO_10, INPUT, X)," &
" 160 (BC_1, IO_10, OUTPUT3, X, 159, 0,Z),"&
" 159 (BC_1, *, CONTROL, 0)," &
" 158 (BC_1, IO_11, INPUT, X)," &
" 157 (BC_1, IO_11, OUTPUT3, X, 156, 0,Z),"&
" 156 (BC_1, *, CONTROL, 0)," &
" 155 (BC_1, IO_12, INPUT, X)," &
" 154 (BC_1, IO_12, OUTPUT3, X, 153, 0,Z),"&
" 153 (BC_1, *, CONTROL, 0)," &
" 152 (BC_1, IO_13, INPUT, X)," &
" 151 (BC_1, IO_13, OUTPUT3, X, 150, 0,Z),"&
" 150 (BC_1, *, CONTROL, 0)," &
" 149 (BC_1, IO_14, INPUT, X)," &
" 148 (BC_1, IO_14, OUTPUT3, X, 147, 0,Z),"&
" 147 (BC_1, *, CONTROL, 0)," &
" 146 (BC_1, *, INTERNAL, X)," &
" 145 (BC_1, *, INTERNAL, X)," &
" 144 (BC_1, *, INTERNAL, X)," &
" 143 (BC_1, IO_32, INPUT, X)," &
" 142 (BC_1, IO_32, OUTPUT3, X, 141, 0,Z),"&
" 141 (BC_1, *, CONTROL, 0)," &
" 140 (BC_1, IO_33, INPUT, X)," &
" 139 (BC_1, IO_33, OUTPUT3, X, 138, 0,Z),"&
" 138 (BC_1, *, CONTROL, 0)," &
" 137 (BC_1, IO_34, INPUT, X)," &
" 136 (BC_1, IO_34, OUTPUT3, X, 135, 0,Z),"&
" 135 (BC_1, *, CONTROL, 0)," &
" 134 (BC_1, IO_35, INPUT, X)," &
" 133 (BC_1, IO_35, OUTPUT3, X, 132, 0,Z),"&
" 132 (BC_1, *, CONTROL, 0)," &
" 131 (BC_1, IO_36, INPUT, X)," &
" 130 (BC_1, IO_36, OUTPUT3, X, 129, 0,Z),"&
" 129 (BC_1, *, CONTROL, 0)," &
" 128 (BC_1, IO_37, INPUT, X)," &
" 127 (BC_1, IO_37, OUTPUT3, X, 126, 0,Z),"&
" 126 (BC_1, *, CONTROL, 0)," &
" 125 (BC_1, IO_38, INPUT, X)," &
" 124 (BC_1, IO_38, OUTPUT3, X, 123, 0,Z),"&
" 123 (BC_1, *, CONTROL, 0)," &
" 122 (BC_1, *, INTERNAL, X)," &
" 121 (BC_1, *, INTERNAL, X)," &
" 120 (BC_1, *, INTERNAL, X)," &
" 119 (BC_1, IO_40, INPUT, X)," &
" 118 (BC_1, IO_40, OUTPUT3, X, 117, 0,Z),"&
" 117 (BC_1, *, CONTROL, 0)," &
" 116 (BC_1, IO_41, INPUT, X)," &
" 115 (BC_1, IO_41, OUTPUT3, X, 114, 0,Z),"&
" 114 (BC_1, *, CONTROL, 0)," &
" 113 (BC_1, IO_42, INPUT, X)," &
" 112 (BC_1, IO_42, OUTPUT3, X, 111, 0,Z),"&
" 111 (BC_1, *, CONTROL, 0)," &
" 110 (BC_1, IO_43, INPUT, X)," &
" 109 (BC_1, IO_43, OUTPUT3, X, 108, 0,Z),"&
" 108 (BC_1, *, CONTROL, 0)," &
" 107 (BC_1, IO_44, INPUT, X)," &
" 106 (BC_1, IO_44, OUTPUT3, X, 105, 0,Z),"&
" 105 (BC_1, *, CONTROL, 0)," &
" 104 (BC_1, IO_45, INPUT, X)," &
" 103 (BC_1, IO_45, OUTPUT3, X, 102, 0,Z),"&
" 102 (BC_1, *, CONTROL, 0)," &
" 101 (BC_1, IO_46, INPUT, X)," &
" 100 (BC_1, IO_46, OUTPUT3, X, 99, 0,Z),"&
" 99 (BC_1, *, CONTROL, 0)," &
" 98 (BC_1, *, INTERNAL, X)," &
" 97 (BC_1, *, INTERNAL, X)," &
" 96 (BC_1, *, INTERNAL, X)," &
" 95 (BC_1, IO_16, INPUT, X)," &
" 94 (BC_1, IO_16, OUTPUT3, X, 93, 0,Z),"&
" 93 (BC_1, *, CONTROL, 0)," &
" 92 (BC_1, IO_17, INPUT, X)," &
" 91 (BC_1, IO_17, OUTPUT3, X, 90, 0,Z),"&
" 90 (BC_1, *, CONTROL, 0)," &
" 89 (BC_1, *, INTERNAL, X)," &
" 88 (BC_1, *, INTERNAL, X)," &
" 87 (BC_1, *, INTERNAL, X)," &
" 86 (BC_1, *, INTERNAL, X)," &
" 85 (BC_1, *, INTERNAL, X)," &
" 84 (BC_1, *, INTERNAL, X)," &
" 83 (BC_1, IO_20, INPUT, X)," &
" 82 (BC_1, IO_20, OUTPUT3, X, 81, 0,Z),"&
" 81 (BC_1, *, CONTROL, 0)," &
" 80 (BC_1, IO_21, INPUT, X)," &
" 79 (BC_1, IO_21, OUTPUT3, X, 78, 0,Z),"&
" 78 (BC_1, *, CONTROL, 0)," &
" 77 (BC_1, IO_22, INPUT, X)," &
" 76 (BC_1, IO_22, OUTPUT3, X, 75, 0,Z),"&
" 75 (BC_1, *, CONTROL, 0)," &
" 74 (BC_1, IO_23, INPUT, X)," &
" 73 (BC_1, IO_23, OUTPUT3, X, 72, 0,Z),"&
" 72 (BC_1, *, CONTROL, 0)," &
" 71 (BC_1, IO_24, INPUT, X)," &
" 70 (BC_1, IO_24, OUTPUT3, X, 69, 0,Z),"&
" 69 (BC_1, *, CONTROL, 0)," &
" 68 (BC_1, IO_25, INPUT, X)," &
" 67 (BC_1, IO_25, OUTPUT3, X, 66, 0,Z),"&
" 66 (BC_1, *, CONTROL, 0)," &
" 65 (BC_1, *, INTERNAL, X)," &
" 64 (BC_1, *, INTERNAL, X)," &
" 63 (BC_1, *, INTERNAL, X)," &
" 62 (BC_1, IO_27, INPUT, X)," &
" 61 (BC_1, IO_27, OUTPUT3, X, 60, 0,Z),"&
" 60 (BC_1, *, CONTROL, 0)," &
" 59 (BC_1, IO_28, INPUT, X)," &
" 58 (BC_1, IO_28, OUTPUT3, X, 57, 0,Z),"&
" 57 (BC_1, *, CONTROL, 0)," &
" 56 (BC_1, IO_29, INPUT, X)," &
" 55 (BC_1, IO_29, OUTPUT3, X, 54, 0,Z),"&
" 54 (BC_1, *, CONTROL, 0)," &
" 53 (BC_1, *, INTERNAL, X)," &
" 52 (BC_1, *, INTERNAL, X)," &
" 51 (BC_1, *, INTERNAL, X)," &
" 50 (BC_1, *, INTERNAL, X)," &
" 49 (BC_1, *, INTERNAL, X)," &
" 48 (BC_1, *, INTERNAL, X)," &
" 47 (BC_1, IO_48, INPUT, X)," &
" 46 (BC_1, IO_48, OUTPUT3, X, 45, 0,Z),"&
" 45 (BC_1, *, CONTROL, 0)," &
" 44 (BC_1, IO_49, INPUT, X)," &
" 43 (BC_1, IO_49, OUTPUT3, X, 42, 0,Z),"&
" 42 (BC_1, *, CONTROL, 0)," &
" 41 (BC_1, IO_50, INPUT, X)," &
" 40 (BC_1, IO_50, OUTPUT3, X, 39, 0,Z),"&
" 39 (BC_1, *, CONTROL, 0)," &
" 38 (BC_1, *, INTERNAL, X)," &
" 37 (BC_1, *, INTERNAL, X)," &
" 36 (BC_1, *, INTERNAL, X)," &
" 35 (BC_1, IO_52, INPUT, X)," &
" 34 (BC_1, IO_52, OUTPUT3, X, 33, 0,Z),"&
" 33 (BC_1, *, CONTROL, 0)," &
" 32 (BC_1, *, INTERNAL, X)," &
" 31 (BC_1, *, INTERNAL, X)," &
" 30 (BC_1, *, INTERNAL, X)," &
" 29 (BC_1, IO_54, INPUT, X)," &
" 28 (BC_1, IO_54, OUTPUT3, X, 27, 0,Z),"&
" 27 (BC_1, *, CONTROL, 0)," &
" 26 (BC_1, *, INTERNAL, X)," &
" 25 (BC_1, *, INTERNAL, X)," &
" 24 (BC_1, *, INTERNAL, X)," &
" 23 (BC_1, *, INTERNAL, X)," &
" 22 (BC_1, *, INTERNAL, X)," &
" 21 (BC_1, *, INTERNAL, X)," &
" 20 (BC_1, IO_57, INPUT, X)," &
" 19 (BC_1, IO_57, OUTPUT3, X, 18, 0,Z),"&
" 18 (BC_1, *, CONTROL, 0)," &
" 17 (BC_1, IO_58, INPUT, X)," &
" 16 (BC_1, IO_58, OUTPUT3, X, 15, 0,Z),"&
" 15 (BC_1, *, CONTROL, 0)," &
" 14 (BC_1, *, INTERNAL, X)," &
" 13 (BC_1, *, INTERNAL, X)," &
" 12 (BC_1, *, INTERNAL, X)," &
" 11 (BC_1, IO_60, INPUT, X)," &
" 10 (BC_1, IO_60, OUTPUT3, X, 9, 0,Z),"&
" 9 (BC_1, *, CONTROL, 0)," &
" 8 (BC_1, *, INTERNAL, X)," &
" 7 (BC_1, *, INTERNAL, X)," &
" 6 (BC_1, *, INTERNAL, X)," &
" 5 (BC_1, IO_62, INPUT, X)," &
" 4 (BC_1, IO_62, OUTPUT3, X, 3, 0,Z),"&
" 3 (BC_1, *, CONTROL, 0)," &
" 2 (BC_1, IO_63, INPUT, X)," &
" 1 (BC_1, IO_63, OUTPUT3, X, 0, 0,Z),"&
" 0 (BC_1, *, CONTROL, 0)" ;
attribute DESIGN_WARNING of xc2c64a_cp56 : entity is
" Devices with IDCODE revision 0000 do not select a register when a null or " &
"nvalid instruction is sent to the device. This problem is corrected in devices with IDCODE revisions 0001 and greater.";
end xc2c64a_cp56;
#!/bin/bash
# $1 - path to pts folder
# $2 - configuration file name (without extension)
# $3 - if present, only load sof, not burning rpd
if [ $1 == 'h']
then
echo "$1 - path to pts folder"
echo "$2 - configuration file name (without extension)"
echo "$3 - if present, only load sof, do not burn rpd"
exit 113 # just showing help
fi
echo "################################################################################"
echo "Flashing FPGA"
echo "Checking JTAG chain"
export PATH=$PATH:/home/ftrn/intelFPGA/17.1/qprogrammer/bin:/home/ftrn/intelFPGA/17.1/qprogrammer/linux64/
echo "Detecting devices in JTAG chain"
RESP=`jtagconfig`
echo "Loading SOF to FPGA"
SOFPATH=$1/fpga/$2
quartus_pgm -c "USB-Blaster" -m jtag -o "p;$SOFPATH.sof@2"
sleep 3
TTY_USB=`$1/utils/find_ftrn_ttyUSB.sh`
echo "Done programming sof"
if [ -z $3 ]
then
echo "Burning rpd to FLASH"
eb-flash "dev/$TTY_USB" "$SOFPATH.rpd"
echo "Resetting FTRN"
eb-reset "dev/$TTY_USB"
fi
sleep 2
eb-info "dev/$TTY_USB"
echo "Done"
exit 0
#!/bin/bash
# $1 - path to pts folder
echo "################################################################################" | tee resp.txt
if [[ $1 == 'h']];
then
echo "$1 - path to pts folder" | tee -a resp.txt
exit 113 # just showing help
fi
echo "################################################################################" | tee -a resp.txt
echo "Configuring FPGA flash" | tee -a resp.txt
echo "Finding FTRN ttyUSBx" | tee -a resp.txt
TTY_USB=`$1/utils/find_ftrn_ttyUSB.sh`
if [[ -n $TTY_USB ]]; then
echo "Found FTRN ttyUSB : $TTY_USB" | tee -a resp.txt
else
echo "No FTRN ttyUSB device present. Check if Cypress microcontroller is programmed!" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
RESP=`eb-config dev/$TTY_USB 10 4`
echo "$RESP" | tee -a resp.txt
if [[ -n $RESP ]]; then
echo "FPGA flash configuration failed." | tee -a resp.txt
echo "PTS_STATUS: Failed." | tee -a resp.txt
exit 64
else
echo "FPGA flash configured. Power cycle the board!" | tee -a resp.txt
echo "PTS_OK: OK" | tee -a resp.txt
exit 0
fi
#!/bin/bash
# $1 - path to pts folder
# $2 - configuration file name (without extension)
echo "################################################################################" | tee resp.txt
if [[ $1 == 'h' ]] ;then
echo "$1 - path to pts folder" | tee -a resp.txt
echo "$2 - configuration file name (without extension)" | tee -a resp.txt
exit 113 # just showing help
fi
echo "################################################################################" | tee -a resp.txt
echo "Finding FTRN ttyUSBx" | tee -a resp.txt
TTY_USB=`$1/utils/find_ftrn_ttyUSB.sh`
if [[ -n $TTY_USB ]]; then
echo "Found FTRN ttyUSB : $TTY_USB" | tee -a resp.txt
else
echo "No FTRN ttyUSB device present. Check if Cypress microcontroller is programmed!" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
echo "Burning rpd to FLASH" | tee -a resp.txt
#RESP=`eb-flash "dev/$TTY_USB" "$2.rpd"`
#TEST=`echo $RESP | grep "Verifying"`
#TEST=`echo $TEST | grep "done"`
eb-flash "dev/$TTY_USB" "$2.rpd" | tee -a resp.txt
RESP=$(cat resp.txt)
TEST=`echo $RESP | grep "Verifying"`
TEST=`echo $TEST | grep "done"`
if [[ -z $TEST ]]; then
echo "Verify not ok. Loading FPGA flash failed." | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
else
echo "PTS_OK: Successfully burned FPGA flash." | tee -a resp.txt
fi
sleep 1
echo "Reseting FTRN. Loading FPGA from flash" | tee -a resp.txt
eb-reset "dev/$TTY_USB" | tee -a resp.txt
sleep 3
echo "Checking USB communication" | tee -a resp.txt
#RESP=`eb-info dev/$TTY_USB`
eb-info dev/$TTY_USB | tee -a resp.txt
RESP=$(cat resp.txt)
TEST=`echo $RESP | grep "5agxma3d4f27i3"`
if [[ -z $TEST ]]; then
echo "FPGA loading from flash failed. Could not read GW info." | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
else
echo "Successfully loaded FPGA from flash." | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
fi
#!/bin/bash
# $1 - path to pts folder
# $2 - configuration file name
echo "################################################################################" | tee resp.txt
if [[ $1 == 'h' ]];then
echo "$1 - path to pts folder" | tee -a resp.txt
echo "$2 - configuration file name" | tee -a resp.txt
exit 113 # just showing help
fi
if [[ -z $2 ]]; then
SOFNAME="./microtca_control.sof"
else
SOFNAME="$2"
fi
echo "Check that Altera USB Blaster is connected to front panel JTAG connector" | tee -a resp.txt
echo " and DIP1 is in position ONU(USB) then press ENTER" | tee -a resp.txt
read -s -n 1
echo "Flashing FPGA" | tee -a resp.txt
export PATH=$PATH:/home/ftrn/intelFPGA/17.1/qprogrammer/bin:/home/ftrn/intelFPGA/17.1/qprogrammer/linux64/
echo "Detecting devices in JTAG chain" | tee -a resp.txt
jtagconfig | tee -a resp.txt
RESP=`cat resp.txt | grep "chain broken"`
if [[ -n $RESP ]]; then
echo "No Altera Device found in JTAG chain"
echo "PTS_STATUS: Failed"
exit 64
fi
echo "Loading SOF to FPGA" | tee -a resp.txt
quartus_pgm -c "USB-Blaster" -m jtag -o "p;$SOFNAME@2" | tee -a resp.txt
sleep 2
echo "Done programming sof" | tee -a resp.txt
sleep 2
echo "Checking for Cypress device" | tee -a resp.txt
CYPRESS=$(lsusb | grep "Cypress") | tee -a resp.txt
echo "Checking for OpenMoko device" | tee -a resp.txt
OPENMOKO=$(lsusb | grep "1d50:6062 OpenMoko") | tee -a resp.txt
if [[ -n $CYPRESS ]] && [[ -n $OPENMOKO ]]; then
echo "PTS_STATUS: Failed . FPGA flashed but Cypress not visible on USB bus." | tee -a resp.txt
exit 64
elif [[ -n $CYPRESS ]]; then
echo "FPGA loaded, Cypress visible on USB bus. Now flash Cypress microcontroller." | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
else #
echo "FPGA loaded, OpenMoko visible on USB bus. Configure FPGA flash." | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
fi
-- $ XILINX$RCSfile: xc2c64a_cp56.bsd,v $
-- XILINX Revision: 1.5
--
-- BSDL file for device XC2C64, package CP56
-- Xilinx, Inc. State: PRELIMINARY Date: 2006/10/17 16:43:33
-- Generated by 1149.pl
-- =================================================
-- North American Support
-- (Mon,Tues,Wed,Fri 6:30am-5pm
-- Thr 6:30am - 4:00pm Pacific Standard Time)
-- Hotline: 1-800-255-7778
-- or (408) 879-5199
-- Fax: (408) 879-4442
-- Email: hotline@xilinx.com
-- United Kingdom Support
-- (Mon-Fri 08:00 to 17:30 GMT)
-- Hotline: +44 870 7350 610
-- Fax: +44 870 7350 620
-- Email : eurosupport@xilinx.com
--
-- France Support
-- (Mon-Fri 08:00 to 17:30 GMT)
-- Hotline: +33 1 3463 0100
-- Fax: +44 870 7350 620
-- Email : eurosupport@xilinx.com
--
-- Germany Support
-- (Mon-Fri 08:00 to 17:30 GMT)
-- Hotline: +49 180 3 60 60 60
-- Fax: +44 870 7350 620
-- Email : eurosupport@xilinx.com
-- Sweden Support
-- (Mon-Fri 08:00 to 17:30 GMT)
-- Hotline: +46 8 33 14 00
-- Fax: +44 870 7350 620
-- Email : eurosupport@xilinx.com
--
-- Japan Support
-- (Mon,Tues,Thu,Fri 9:00am -5:00pm ()
-- Wed 9:00am -4:00pm)
-- Hotline: (81)3-3297-9163
-- Fax:: (81)3-3297-0067
-- Email: jhotline@xilinx.com
-- =================================================
--
entity xc2c64a_cp56 is
generic (PHYSICAL_PIN_MAP : string := "CP56");
port ( tdi : in bit;
tck : in bit;
tms : in bit;
tdo : out bit;
IO_0 : inout bit;
IO_1 : inout bit;
IO_2 : inout bit;
IO_8 : inout bit;
IO_9 : inout bit;
IO_10 : inout bit;
IO_11 : inout bit;
IO_12 : inout bit;
IO_13 : inout bit;
IO_14 : inout bit;
IO_16 : inout bit;
IO_17 : inout bit;
IO_20 : inout bit;
IO_21 : inout bit;
IO_22 : inout bit;
IO_23 : inout bit;
IO_24 : inout bit;
IO_25 : inout bit;
IO_27 : inout bit;
IO_28 : inout bit;
IO_29 : inout bit;
IO_32 : inout bit;
IO_33 : inout bit;
IO_34 : inout bit;
IO_35 : inout bit;
IO_36 : inout bit;
IO_37 : inout bit;
IO_38 : inout bit;
IO_40 : inout bit;
IO_41 : inout bit;
IO_42 : inout bit;
IO_43 : inout bit;
IO_44 : inout bit;
IO_45 : inout bit;
IO_46 : inout bit;
IO_48 : inout bit;
IO_49 : inout bit;
IO_50 : inout bit;
IO_52 : inout bit;
IO_54 : inout bit;
IO_57 : inout bit;
IO_58 : inout bit;
IO_60 : inout bit;
IO_62 : inout bit;
vdd : linkage bit_vector(1 to 3);
gnd : linkage bit_vector(1 to 3);
IO_63 : inout bit);
use std_1149_1_1994.all;
attribute COMPONENT_CONFORMANCE of xc2c64a_cp56 : entity is "std_1149_1_1993";
attribute PIN_MAP of xc2c64a_cp56 : entity is PHYSICAL_PIN_MAP;
constant CP56 : PIN_MAP_STRING :=
" tdi:J10, tck:K10, tms:K9, tdo:A6," &
" IO_0:F1, IO_1:E3, IO_2:E1," &
" IO_8:D1, IO_9:C1," &
" IO_10:A3, IO_11:A2, IO_12:B1, IO_13:A1, IO_14:C3," &
" IO_16:G1, IO_17:F3," &
" IO_20:H1, IO_21:G3, IO_22:J1, IO_23:K1, IO_24:K4," &
" IO_25:K2, IO_27:K3, IO_28:H3, IO_29:K5," &
" IO_32:C4, IO_33:A4, IO_34:C5," &
" IO_35:A7, IO_36:C8, IO_37:A8, IO_38:A9," &
" IO_40:A5, IO_41:A10, IO_42:B10, IO_43:C10, IO_44:D8," &
" IO_45:E8, IO_46:D10, IO_48:K6, IO_49:H5," &
" IO_50:K7, IO_52:H7, IO_54:H8," &
" IO_57:K8, IO_58:H10," &
" vdd : (H6,G8,C6)," &
" gnd : (H4,F8,C7), " &
" IO_60:G10, IO_62:F10, IO_63:E10";
attribute TAP_SCAN_IN of tdi : signal is true;
attribute TAP_SCAN_CLOCK of tck : signal is (33.0e6, both);
attribute TAP_SCAN_MODE of tms : signal is true;
attribute TAP_SCAN_OUT of tdo : signal is true;
attribute INSTRUCTION_LENGTH of xc2c64a_cp56 : entity is 8;
attribute INSTRUCTION_OPCODE of xc2c64a_cp56 : entity is
"INTEST (00000010)," &
"BYPASS (11111111)," &
"SAMPLE (00000011)," &
"EXTEST (00000000)," &
"IDCODE (00000001)," &
"USERCODE (11111101)," &
"HIGHZ (11111100)," &
"ISC_ENABLE_CLAMP (11101001)," &
"ISC_ENABLEOTF (11100100)," &
"ISC_ENABLE (11101000)," &
"ISC_SRAM_READ (11100111)," &
"ISC_SRAM_WRITE (11100110)," &
"ISC_ERASE (11101101)," &
"ISC_PROGRAM (11101010)," &
"ISC_READ (11101110)," &
"ISC_INIT (11110000)," &
"ISC_DISABLE (11000000)," &
"TEST_ENABLE (00010001)," &
"BULKPROG (00010010)," &
"ERASE_ALL (00010100)," &
"MVERIFY (00010011)," &
"TEST_DISABLE (00010101)," &
-- "STCTEST (00010110)," &
"ISC_NOOP (11100000)";
attribute INSTRUCTION_CAPTURE of xc2c64a_cp56 : entity is "XXXXXX01" ;
attribute IDCODE_REGISTER of xc2c64a_cp56 : entity is "XXXX0110111001011101000010010011";
attribute USERCODE_REGISTER of xc2c64a_cp56 : entity is "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
attribute REGISTER_ACCESS of xc2c64a_cp56 : entity is
"BYPASS (BYPASS)," &
"BYPASS (HIGHZ)," &
"BOUNDARY (SAMPLE)," &
"BOUNDARY (EXTEST)," &
"BOUNDARY (INTEST)," &
"DATAREG[281] (ISC_ENABLEOTF)," &
"DATAREG[281] (ISC_ENABLE)," &
"DATAREG[281] (ISC_SRAM_READ)," &
"DATAREG[281] (ISC_SRAM_WRITE)," &
"DATAREG[281] (ISC_ERASE)," &
"DATAREG[281] (ISC_PROGRAM)," &
"DATAREG[281] (ISC_READ)," &
"DATAREG[281] (ISC_INIT)," &
"DATAREG[281] (ISC_DISABLE)," &
"DATAREG[281] (TEST_ENABLE)," &
"DATAREG[281] (BULKPROG)," &
"DATAREG[281] (ERASE_ALL)," &
"DATAREG[281] (MVERIFY)," &
"DATAREG[281] (TEST_DISABLE)," &
-- "STC[] (STCTEST)," &
"ISC_DEFAULT[1] (ISC_NOOP)," &
"DEVICE_ID (IDCODE, USERCODE)," &
"ISC_DEFAULT[1] (ISC_ENABLE_CLAMP)";
attribute BOUNDARY_LENGTH of xc2c64a_cp56 : entity is 192;
attribute BOUNDARY_REGISTER of xc2c64a_cp56 : entity is
--
-- num cell port function safe [ccell disval rslt]
--
" 191 (BC_1, IO_0, INPUT, X)," &
" 190 (BC_1, IO_0, OUTPUT3, X, 189, 0,Z),"&
" 189 (BC_1, *, CONTROL, 0)," &
" 188 (BC_1, IO_1, INPUT, X)," &
" 187 (BC_1, IO_1, OUTPUT3, X, 186, 0,Z),"&
" 186 (BC_1, *, CONTROL, 0)," &
" 185 (BC_1, IO_2, INPUT, X)," &
" 184 (BC_1, IO_2, OUTPUT3, X, 183, 0,Z),"&
" 183 (BC_1, *, CONTROL, 0)," &
" 182 (BC_1, *, INTERNAL, X)," &
" 181 (BC_1, *, INTERNAL, X)," &
" 180 (BC_1, *, INTERNAL, X)," &
" 179 (BC_1, *, INTERNAL, X)," &
" 178 (BC_1, *, INTERNAL, X)," &
" 177 (BC_1, *, INTERNAL, X)," &
" 176 (BC_1, *, INTERNAL, X)," &
" 175 (BC_1, *, INTERNAL, X)," &
" 174 (BC_1, *, INTERNAL, X)," &
" 173 (BC_1, *, INTERNAL, X)," &
" 172 (BC_1, *, INTERNAL, X)," &
" 171 (BC_1, *, INTERNAL, X)," &
" 170 (BC_1, *, INTERNAL, X)," &
" 169 (BC_1, *, INTERNAL, X)," &
" 168 (BC_1, *, INTERNAL, X)," &
" 167 (BC_1, IO_8, INPUT, X)," &
" 166 (BC_1, IO_8, OUTPUT3, X, 165, 0,Z),"&
" 165 (BC_1, *, CONTROL, 0)," &
" 164 (BC_1, IO_9, INPUT, X)," &
" 163 (BC_1, IO_9, OUTPUT3, X, 162, 0,Z),"&
" 162 (BC_1, *, CONTROL, 0)," &
" 161 (BC_1, IO_10, INPUT, X)," &
" 160 (BC_1, IO_10, OUTPUT3, X, 159, 0,Z),"&
" 159 (BC_1, *, CONTROL, 0)," &
" 158 (BC_1, IO_11, INPUT, X)," &
" 157 (BC_1, IO_11, OUTPUT3, X, 156, 0,Z),"&
" 156 (BC_1, *, CONTROL, 0)," &
" 155 (BC_1, IO_12, INPUT, X)," &
" 154 (BC_1, IO_12, OUTPUT3, X, 153, 0,Z),"&
" 153 (BC_1, *, CONTROL, 0)," &
" 152 (BC_1, IO_13, INPUT, X)," &
" 151 (BC_1, IO_13, OUTPUT3, X, 150, 0,Z),"&
" 150 (BC_1, *, CONTROL, 0)," &
" 149 (BC_1, IO_14, INPUT, X)," &
" 148 (BC_1, IO_14, OUTPUT3, X, 147, 0,Z),"&
" 147 (BC_1, *, CONTROL, 0)," &
" 146 (BC_1, *, INTERNAL, X)," &
" 145 (BC_1, *, INTERNAL, X)," &
" 144 (BC_1, *, INTERNAL, X)," &
" 143 (BC_1, IO_32, INPUT, X)," &
" 142 (BC_1, IO_32, OUTPUT3, X, 141, 0,Z),"&
" 141 (BC_1, *, CONTROL, 0)," &
" 140 (BC_1, IO_33, INPUT, X)," &
" 139 (BC_1, IO_33, OUTPUT3, X, 138, 0,Z),"&
" 138 (BC_1, *, CONTROL, 0)," &
" 137 (BC_1, IO_34, INPUT, X)," &
" 136 (BC_1, IO_34, OUTPUT3, X, 135, 0,Z),"&
" 135 (BC_1, *, CONTROL, 0)," &
" 134 (BC_1, IO_35, INPUT, X)," &
" 133 (BC_1, IO_35, OUTPUT3, X, 132, 0,Z),"&
" 132 (BC_1, *, CONTROL, 0)," &
" 131 (BC_1, IO_36, INPUT, X)," &
" 130 (BC_1, IO_36, OUTPUT3, X, 129, 0,Z),"&
" 129 (BC_1, *, CONTROL, 0)," &
" 128 (BC_1, IO_37, INPUT, X)," &
" 127 (BC_1, IO_37, OUTPUT3, X, 126, 0,Z),"&
" 126 (BC_1, *, CONTROL, 0)," &
" 125 (BC_1, IO_38, INPUT, X)," &
" 124 (BC_1, IO_38, OUTPUT3, X, 123, 0,Z),"&
" 123 (BC_1, *, CONTROL, 0)," &
" 122 (BC_1, *, INTERNAL, X)," &
" 121 (BC_1, *, INTERNAL, X)," &
" 120 (BC_1, *, INTERNAL, X)," &
" 119 (BC_1, IO_40, INPUT, X)," &
" 118 (BC_1, IO_40, OUTPUT3, X, 117, 0,Z),"&
" 117 (BC_1, *, CONTROL, 0)," &
" 116 (BC_1, IO_41, INPUT, X)," &
" 115 (BC_1, IO_41, OUTPUT3, X, 114, 0,Z),"&
" 114 (BC_1, *, CONTROL, 0)," &
" 113 (BC_1, IO_42, INPUT, X)," &
" 112 (BC_1, IO_42, OUTPUT3, X, 111, 0,Z),"&
" 111 (BC_1, *, CONTROL, 0)," &
" 110 (BC_1, IO_43, INPUT, X)," &
" 109 (BC_1, IO_43, OUTPUT3, X, 108, 0,Z),"&
" 108 (BC_1, *, CONTROL, 0)," &
" 107 (BC_1, IO_44, INPUT, X)," &
" 106 (BC_1, IO_44, OUTPUT3, X, 105, 0,Z),"&
" 105 (BC_1, *, CONTROL, 0)," &
" 104 (BC_1, IO_45, INPUT, X)," &
" 103 (BC_1, IO_45, OUTPUT3, X, 102, 0,Z),"&
" 102 (BC_1, *, CONTROL, 0)," &
" 101 (BC_1, IO_46, INPUT, X)," &
" 100 (BC_1, IO_46, OUTPUT3, X, 99, 0,Z),"&
" 99 (BC_1, *, CONTROL, 0)," &
" 98 (BC_1, *, INTERNAL, X)," &
" 97 (BC_1, *, INTERNAL, X)," &
" 96 (BC_1, *, INTERNAL, X)," &
" 95 (BC_1, IO_16, INPUT, X)," &
" 94 (BC_1, IO_16, OUTPUT3, X, 93, 0,Z),"&
" 93 (BC_1, *, CONTROL, 0)," &
" 92 (BC_1, IO_17, INPUT, X)," &
" 91 (BC_1, IO_17, OUTPUT3, X, 90, 0,Z),"&
" 90 (BC_1, *, CONTROL, 0)," &
" 89 (BC_1, *, INTERNAL, X)," &
" 88 (BC_1, *, INTERNAL, X)," &
" 87 (BC_1, *, INTERNAL, X)," &
" 86 (BC_1, *, INTERNAL, X)," &
" 85 (BC_1, *, INTERNAL, X)," &
" 84 (BC_1, *, INTERNAL, X)," &
" 83 (BC_1, IO_20, INPUT, X)," &
" 82 (BC_1, IO_20, OUTPUT3, X, 81, 0,Z),"&
" 81 (BC_1, *, CONTROL, 0)," &
" 80 (BC_1, IO_21, INPUT, X)," &
" 79 (BC_1, IO_21, OUTPUT3, X, 78, 0,Z),"&
" 78 (BC_1, *, CONTROL, 0)," &
" 77 (BC_1, IO_22, INPUT, X)," &
" 76 (BC_1, IO_22, OUTPUT3, X, 75, 0,Z),"&
" 75 (BC_1, *, CONTROL, 0)," &
" 74 (BC_1, IO_23, INPUT, X)," &
" 73 (BC_1, IO_23, OUTPUT3, X, 72, 0,Z),"&
" 72 (BC_1, *, CONTROL, 0)," &
" 71 (BC_1, IO_24, INPUT, X)," &
" 70 (BC_1, IO_24, OUTPUT3, X, 69, 0,Z),"&
" 69 (BC_1, *, CONTROL, 0)," &
" 68 (BC_1, IO_25, INPUT, X)," &
" 67 (BC_1, IO_25, OUTPUT3, X, 66, 0,Z),"&
" 66 (BC_1, *, CONTROL, 0)," &
" 65 (BC_1, *, INTERNAL, X)," &
" 64 (BC_1, *, INTERNAL, X)," &
" 63 (BC_1, *, INTERNAL, X)," &
" 62 (BC_1, IO_27, INPUT, X)," &
" 61 (BC_1, IO_27, OUTPUT3, X, 60, 0,Z),"&
" 60 (BC_1, *, CONTROL, 0)," &
" 59 (BC_1, IO_28, INPUT, X)," &
" 58 (BC_1, IO_28, OUTPUT3, X, 57, 0,Z),"&
" 57 (BC_1, *, CONTROL, 0)," &
" 56 (BC_1, IO_29, INPUT, X)," &
" 55 (BC_1, IO_29, OUTPUT3, X, 54, 0,Z),"&
" 54 (BC_1, *, CONTROL, 0)," &
" 53 (BC_1, *, INTERNAL, X)," &
" 52 (BC_1, *, INTERNAL, X)," &
" 51 (BC_1, *, INTERNAL, X)," &
" 50 (BC_1, *, INTERNAL, X)," &
" 49 (BC_1, *, INTERNAL, X)," &
" 48 (BC_1, *, INTERNAL, X)," &
" 47 (BC_1, IO_48, INPUT, X)," &
" 46 (BC_1, IO_48, OUTPUT3, X, 45, 0,Z),"&
" 45 (BC_1, *, CONTROL, 0)," &
" 44 (BC_1, IO_49, INPUT, X)," &
" 43 (BC_1, IO_49, OUTPUT3, X, 42, 0,Z),"&
" 42 (BC_1, *, CONTROL, 0)," &
" 41 (BC_1, IO_50, INPUT, X)," &
" 40 (BC_1, IO_50, OUTPUT3, X, 39, 0,Z),"&
" 39 (BC_1, *, CONTROL, 0)," &
" 38 (BC_1, *, INTERNAL, X)," &
" 37 (BC_1, *, INTERNAL, X)," &
" 36 (BC_1, *, INTERNAL, X)," &
" 35 (BC_1, IO_52, INPUT, X)," &
" 34 (BC_1, IO_52, OUTPUT3, X, 33, 0,Z),"&
" 33 (BC_1, *, CONTROL, 0)," &
" 32 (BC_1, *, INTERNAL, X)," &
" 31 (BC_1, *, INTERNAL, X)," &
" 30 (BC_1, *, INTERNAL, X)," &
" 29 (BC_1, IO_54, INPUT, X)," &
" 28 (BC_1, IO_54, OUTPUT3, X, 27, 0,Z),"&
" 27 (BC_1, *, CONTROL, 0)," &
" 26 (BC_1, *, INTERNAL, X)," &
" 25 (BC_1, *, INTERNAL, X)," &
" 24 (BC_1, *, INTERNAL, X)," &
" 23 (BC_1, *, INTERNAL, X)," &
" 22 (BC_1, *, INTERNAL, X)," &
" 21 (BC_1, *, INTERNAL, X)," &
" 20 (BC_1, IO_57, INPUT, X)," &
" 19 (BC_1, IO_57, OUTPUT3, X, 18, 0,Z),"&
" 18 (BC_1, *, CONTROL, 0)," &
" 17 (BC_1, IO_58, INPUT, X)," &
" 16 (BC_1, IO_58, OUTPUT3, X, 15, 0,Z),"&
" 15 (BC_1, *, CONTROL, 0)," &
" 14 (BC_1, *, INTERNAL, X)," &
" 13 (BC_1, *, INTERNAL, X)," &
" 12 (BC_1, *, INTERNAL, X)," &
" 11 (BC_1, IO_60, INPUT, X)," &
" 10 (BC_1, IO_60, OUTPUT3, X, 9, 0,Z),"&
" 9 (BC_1, *, CONTROL, 0)," &
" 8 (BC_1, *, INTERNAL, X)," &
" 7 (BC_1, *, INTERNAL, X)," &
" 6 (BC_1, *, INTERNAL, X)," &
" 5 (BC_1, IO_62, INPUT, X)," &
" 4 (BC_1, IO_62, OUTPUT3, X, 3, 0,Z),"&
" 3 (BC_1, *, CONTROL, 0)," &
" 2 (BC_1, IO_63, INPUT, X)," &
" 1 (BC_1, IO_63, OUTPUT3, X, 0, 0,Z),"&
" 0 (BC_1, *, CONTROL, 0)" ;
attribute DESIGN_WARNING of xc2c64a_cp56 : entity is
" Devices with IDCODE revision 0000 do not select a register when a null or " &
"nvalid instruction is sent to the device. This problem is corrected in devices with IDCODE revisions 0001 and greater.";
end xc2c64a_cp56;
#!/bin/bash
# $1 - test list
TEST_LIST=$1
echo "Type in 6 digit serial from the sticker"
read -n 6 SN
echo " "
echo "To confirm serial $SN press Enter or Escape to finish"
read -s -n 1 ANS
echo " "
if [ "$ANS" == $'\e' ]; then
echo "END TEST: $(date)"
exit
fi
read -p "Check that fan is ON and blowing over FPGA. Press Enter" -n 1
read -p "Check that Display is attached to the board. Press Enter" -n 1
read -p "Check SFP is inserted and that WR fiber is connected to WR master. Press Enter" -n 1
read -p "Check LEMO cables are connected to IO1 and IO3. Press Enter" -n 1
#set paths
PTS=$(pwd)
export $PTS
TEST_LOG_DIR=/home/$(whoami)/Desktop/board_test_reports
TEST_DELIM1='###############################################################################';
TEST_DELIM2='-------------------------------------------------------------------------------';
# assemble folder name for the board with serial SN
SN_LOG_NAME="amc"
SN_LOG_NAME+="_sn-$SN"
echo "SN_LOG_NAME : $SN_LOG_NAME"
SN_LOG_FOLDER="$TEST_LOG_DIR/$SN_LOG_NAME"
if [[ -d $SN_LOG_FOLDER ]];then
echo "Using existing folder : $SN_LOG_FOLDER"
else
echo "Creating SN report folder : $SN_LOG_FOLDER"
mkdir $SN_LOG_FOLDER
fi
# assemble folder and file name for the test
TEST_START=`date +%s`
TEST_TIME=`date "+%y-%m-%d_%H-%M-%S"`
SN_TIME_LOG="$SN_LOG_NAME_$TEST_TIME"
echo "SN_TIME_LOG : $SN_TIME_LOG"
LOG_FOLDER+="$SN_LOG_FOLDER/$SN_TIME_LOG"
mkdir $LOG_FOLDER
echo "LOG_FOLDER : $LOG_FOLDER"
LOG_FILE="$LOG_FOLDER/$SN_TIME_LOG.log"
echo "LOG_FILE: $LOG_FILE"
# create log file
touch $LOG_FILE
date | tee $LOG_FILE
echo "SN : $SN" | tee -a $LOG_FILE
#TESTS
#------------------------------------------------------------------------------
# ';' is the delimiter here, and there are three fields on each line in the file
# IFS set below is restricted to the context of `read`, it doesn't affect any other code
while IFS=';' read -r cmd testname folder testfile param1 param2 param3; do
# process the fields
# if the line has less than three fields, the missing fields will be set to an empty string
# if the line has more than three fields, `field3` will get all the values, including the
# third field plus the delimiter(s)
# echo "$cmd : $testname : $folder : $testfile : $param1 : $param2 : $param3;"
if [ "$cmd" == "x" ];then # xecute command
echo $TEST_DELIM1 | tee -a $LOG_FILE
echo "START : $(date)" | tee -a $LOG_FILE
if [ "$param1" == "PTS" ];then
param1=$PTS
fi
TESTLOG=$LOG_FOLDER/$testfile
TESTLOG+="_out.txt"
testfile+=".sh"
printf "$testname\n" | tee -a $LOG_FILE #| tee -a $TESTLOG
cd $folder
rm -f resp.txt # delete previous test report
./$testfile $param1 $param2 $param3 < /dev/tty # | tee resp_main.txt
RESP=`cat resp.txt`
sleep 0.5
cd $PTS
printf "%s\n" "$RESP" > $TESTLOG
PTS_STATUS=`echo "$RESP" | grep "PTS_STATUS:"`
printf "%s\n" "$PTS_STATUS" | tee -a $LOG_FILE
printf "END : $(date)\n\n" | tee -a $LOG_FILE
if [[ $PTS_STATUS != 'PTS_STATUS: OK' ]]; then
printf "\nLast test failed. Press ENTER to continue or ESC to stop.\n" | tee -a $LOG_FILE
read -n 1 -s ANS < /dev/tty
if [ "$ANS" == $'\e' ]; then
TEST_END=`date +%s`
echo "Test finished at $((TEST_END-$TEST_START)) seconds."
echo "END TEST: $(date)" | tee -a $LOG_FILE
./pcie-wb/ftrninsmod.sh $PTS r
exit
fi
fi
fi
done < $TEST_LIST
TEST_END=`date +%s`
echo "Test complete in $((TEST_END-$TEST_START)) seconds."
echo "END TEST: $(date)" | tee -a $LOG_FILE
./pcie-wb/ftrninsmod.sh $PTS r
echo " "
#!/bin/bash
# $1 - FTRN Saflib name
echo "##########################################################" | tee resp.txt
saft-io-ctl $1 -n HWT_EN -d 0
# 0 F A 5
HSPS=("0" "F" "A" "5")
HSW_POS0=(" " "Low" "Low" "Low" "Low")
HSW_POS1=(" " "High" "High" "High" "High")
HSW_POS_5=(" " "High" "Low" "High" "Low")
HSW_POS_A=(" " "Low" "High" "Low" "High")
echo "CPLD Hex Switch test" | tee -a resp.txt
echo "----------------------------------------------------------------" | tee -a resp.txt
echo "Move CPLD HEX switch into position 5 and press ENTER" | tee -a resp.txt
read -s -n 1 ANS
POS=0
echo "Reading HEX SW position" | tee -a resp.txt
for (( j=1; j<=4;j++ )); do
RESP=`saft-io-ctl $1 -n HSWP$j | grep "Input:" | grep "${HSW_POS_5[$j]}"`
echo "HEXSW$j : $RESP"
if [[ -n $RESP ]]; then
let POS=$POS+1
fi
done
if [[ $POS = 4 ]]; then
echo "HEX switch position ok." | tee -a resp.txt
else
echo "HEX switch position readback not OK." | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
echo "----------------------------------------------------------------" | tee -a resp.txt
echo "Move CPLD HEX switch into position A and press ENTER" | tee -a resp.txt
read -s -n 1 ANS
POS=0
echo "Reading HEX SW position" | tee -a resp.txt
for (( j=1; j<=4;j++ )); do
RESP=`saft-io-ctl $1 -n HSWP$j | grep "Input:" | grep "${HSW_POS_A[$j]}"`
echo "HEXSW$j : $RESP"
if [[ -n $RESP ]]; then
let POS=$POS+1
fi
done
if [[ $POS = 4 ]]; then
echo "HEX switch position ok." | tee -a resp.txt
else
echo "HEX switch position readback not OK." | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
echo "----------------------------------------------------------------" | tee -a resp.txt
echo "----------------------------------------------------------------" | tee -a resp.txt
echo "FPGA Hex Switch test" | tee -a resp.txt
echo "----------------------------------------------------------------" | tee -a resp.txt
echo "Move FPGA HEX switch into position 5 and press ENTER" | tee -a resp.txt
read -s -n 1 ANS
POS=0
echo "Reading HEX SW position" | tee -a resp.txt
for (( j=1; j<=4;j++ )); do
RESP=`saft-io-ctl $1 -n HSWF$j | grep "Input:" | grep "${HSW_POS_5[$j]}"`
echo "HEXSW$j : $RESP"
if [[ -n $RESP ]]; then
let POS=$POS+1
fi
done
if [[ $POS = 4 ]]; then
echo "HEX switch position ok." | tee -a resp.txt
else
echo "HEX switch position readback not OK." | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
echo "----------------------------------------------------------------" | tee -a resp.txt
echo "Move CPLD HEX switch into position A and press ENTER" | tee -a resp.txt
read -s -n 1 ANS
POS=0
echo "Reading HEX SW position" | tee -a resp.txt
for (( j=1; j<=4;j++ )); do
RESP=`saft-io-ctl $1 -n HSWF$j | grep "Input:" | grep "${HSW_POS_A[$j]}"`
echo "HEXSW$j : $RESP"
if [[ -n $RESP ]]; then
let POS=$POS+1
fi
done
if [[ $POS = 4 ]]; then
echo "HEX switch position ok." | tee -a resp.txt
else
echo "HEX switch position readback not OK." | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
echo "----------------------------------------------------------------" | tee -a resp.txt
echo "Test finished!"
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
#!/bin/bash
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)";
[[ -z "$ID_SERIAL" ]] && continue
RESP=`echo "/dev/$devname - $ID_SERIAL" | grep Helmholtzzentrum;`
if [ -n "$RESP" ]
then
RESP=`echo $RESP | grep ttyUSB;`
if [ -n "$RESP" ]
then
echo "$devname"
fi
fi
)
done
#!/bin/bash
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)";
[[ -z "$ID_SERIAL" ]] && continue
RESP=`echo "/dev/$devname - $ID_SERIAL" | grep FTDI;`
if [ -n "$RESP" ]
then
RESP=`echo $RESP | grep ttyUSB;`
if [ -n "$RESP" ]
then
echo "$devname"
fi
fi
)
done
#!/bin/bash
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)"
[[ -z "$ID_SERIAL" ]] && continue
echo "/dev/$devname - $ID_SERIAL" | grep ttyUSB
)
done
#!/bin/bash
# $1 - Path to PTS
# $3 - wishbone master
# $3 - USER RAM address
TEST=0
echo "################################################################################" | tee resp.txt
TTY_USB=`$1/utils/find_ftrn_ttyUSB.sh`;
echo "Found FTRN $TTY_USB" | tee -a resp.txt
USB_DATA=`eb-read dev/$TTY_USB 0x$3/4`
printf "Reading via USB: address 0x$3 : 0x%s\n" "$USB_DATA" | tee -a resp.txt
PCI_DATA=`eb-read dev/$2 0x$3/4`
printf "Reading via PCI: address 0x$3 : 0x%s\n\n" "$PCI_DATA" | tee -a resp.txt
if [ $USB_DATA == $PCI_DATA ]; then
let TEST=$TEST+1
fi
sleep 1
USB_DATA="c007babe"
printf "Writing via USB: address 0x$3 : 0x$USB_DATA\n" | tee -a resp.txt
eb-write dev/$TTY_USB 0x$3/4 0x$USB_DATA
PCI_DATA=`eb-read dev/$2 0x$3/4`
printf "Reading via PCI: address 0x$3 : 0x%s\n\n" "$PCI_DATA" | tee -a resp.txt
if [ $USB_DATA == $PCI_DATA ]; then
let TEST=$TEST+1
fi
sleep 1
PCI_DATA="deadbeef"
printf "Writing via PCI: address 0x$3 : 0x$PCI_DATA\n" | tee -a resp.txt
eb-write dev/$2 0x$3/4 0x$PCI_DATA
USB_DATA=`eb-read dev/$TTY_USB 0x$3/4`
printf "Reading via USB: address 0x$3 : 0x%s\n\n" "$USB_DATA" | tee -a resp.txt
if [ $USB_DATA == $PCI_DATA ]; then
let TEST=$TEST+1
fi
sleep 1
if [ $TEST -eq 3 ]; then
echo "PTS_STATUS: OK" | tee -a resp.txt
else
echo "Not all read/write were ok." | tee -a resp.txt
echo "PTS_STATUS: Failed." | tee -a resp.txt
fi
#!/bin/bash
# $1 - FTRN Saftlib name
echo "Enabling MTCA.4 PORT 12-15 test" | tee resp.txt
saft-io-ctl $1 -n LED_USR1 -d 1
saft-io-ctl $1 -n LED_USR2 -d 1
saft-io-ctl $1 -n LED_USR3 -d 0
saft-io-ctl $1 -n LED_USR4 -d 0
saft-io-ctl $1 -n HWT_EN -d 1
echo "Check that BLUE IO LEDs blink with then press ENTER else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" = $'\e' ];then
echo "Binary count NOT visible on RED IO LEDs" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
else
echo "Binary count visible on RED IO LEDs" | tee -a resp.txt
fi
saft-io-ctl $1 -n LED_USR1 -d 0
saft-io-ctl $1 -n LED_USR2 -d 0
saft-io-ctl $1 -n LED_USR3 -d 0
saft-io-ctl $1 -n LED_USR4 -d 0
saft-io-ctl $1 -n LED_USR8 -d 0
saft-io-ctl $1 -n HWT_EN -d 0
saft-io-ctl $1 -n IO_CLKIN_EN -d 0
echo "--------------------------------------------------------------"
echo "PTS_STATUS: OK" | tee -a resp.txt
echo ""
#!/bin/bash
IOS="MTCA4_IO1 MTCA4_IO2 MTCA4_IO3 MTCA4_IO4 MTCA4_IO5 MTCA4_IO6 MTCA4_IO7 MTCA4_IO8 MTCA4_CLK1 MTCA4_CLK2 MTCA4_CLK3 MTCA4_CLK4 IO1 IO2 IO3 IO4 IO5 LIBERA_TR1 LIBERA_TR2 LIBERA_TR3 LIBERA_TR4"
saft-io-ctl ftrn -i | grep LEMO
echo "Connect LEMO1 to LEMO 3 then press ENTER"
echo "LEMO 1 out to LEMO 3 in, term off"
saft-io-ctl ftrn -o 0 -t 0 -d 0 -n IO3
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO1
read -p "Check that LEVEL is 0V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 1 -n IO1
read -p "Check that LEVEL is 3V then press ENTER"
saft-io-ctl ftrn -o 0 -t 1 -d 0 -n IO3
read -p "Termination enabled! Check that LEVEL dropped <3V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO1
echo "LEMO 3 out to LEMO 1 in, term off"
saft-io-ctl ftrn -o 0 -t 0 -d 0 -n IO1
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO3
read -p "Check that LEVEL is 0V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 1 -n IO3
read -p "Check that LEVEL is 3V then press ENTER"
saft-io-ctl ftrn -o 0 -t 1 -d 0 -n IO1
read -p "Termination enabled! Check that LEVEL dropped <3V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO3
echo "Connect LEMO2 to LEMO 4 then press ENTER"
echo "LEMO 2 out to LEMO 4 in, term off"
saft-io-ctl ftrn -o 0 -t 0 -d 0 -n IO4
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO2
read -p "Check that LEVEL is 0V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 1 -n IO2
read -p "Check that LEVEL is 3V then press ENTER"
saft-io-ctl ftrn -o 0 -t 1 -d 0 -n IO4
read -p "Termination enabled! Check that LEVEL dropped <3V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO2
echo "LEMO 4 out to LEMO 2 in, term off"
saft-io-ctl ftrn -o 0 -t 0 -d 0 -n IO2
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO4
read -p "Check that LEVEL is 0V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 1 -n IO4
read -p "Check that LEVEL is 3V then press ENTER"
saft-io-ctl ftrn -o 0 -t 1 -d 0 -n IO2
read -p "Termination enabled! Check that LEVEL dropped <3V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO4
read -p "Connect LEMO2 to LEMO 5 then press ENTER"
echo "LEMO 1 out to LEMO 5 in, term off"
saft-io-ctl ftrn -o 0 -t 0 -d 0 -n IO5
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO2
read -p "Check that LEVEL is 0V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 1 -n IO2
read -p "Check that LEVEL is 3V then press ENTER"
saft-io-ctl ftrn -o 0 -t 1 -d 0 -n IO5
read -p "Termination enabled! Check that LEVEL dropped <3V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO2
echo "LEMO 5 out to LEMO 2 in, term off"
saft-io-ctl ftrn -o 0 -t 0 -d 0 -n IO2
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO5
read -p "Check that LEVEL is 0V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 1 -n IO5
read -p "Check that LEVEL is 3V then press ENTER"
saft-io-ctl ftrn -o 0 -t 1 -d 0 -n IO2
read -p "Termination enabled! Check that LEVEL dropped <3V then press ENTER"
saft-io-ctl ftrn -o 1 -t 0 -d 0 -n IO5
echo "Test finished!"
#!/bin/bash
# $1 - FTRN Saflib name
saft-io-ctl $1 -i | grep MTCA4
echo "Enabling Libera buffers" | tee resp.txt
saft-io-ctl $1 -n LED_USR5 -d 1
saft-io-ctl $1 -n LED_USR6 -d 0
saft-io-ctl $1 -n LED_USR7 -d 1
saft-io-ctl $1 -n HWT_EN -d 1
sleep 0.5
echo "Checking Libera lines" | tee -a resp.txt
for ((i=1; i<=4; i++))
do
echo "--------------------------------------------------------" | tee -a resp.txt
echo "LIBERA_TR$i drive LO" | tee -a resp.txt
saft-io-ctl $1 -n "LIBERA_TR$i" -d 0
echo "Reding back HSWP$i:" | tee -a resp.txt
saft-io-ctl $1 -n "HSWP$i" | tee -a resp.txt
sleep 0.5
# echo "--------------------------------------------------------" | tee -a resp.txt
# for ((j=1; j<=8; j++))
# do
# if [ j!=i ] ; then
# saft-io-ctl $1 -n "MTCA4_IO$j" | grep Input
# fi
# done
echo "--------------------------------------------------------" | tee -a resp.txt
echo "LIBERA_TR$i drive HI" | tee -a resp.txt
saft-io-ctl $1 -n "LIBERA_TR$i" -d 1
echo "Reding back HSWP$i:" | tee -a resp.txt
saft-io-ctl $1 -n "HSWP$i" | tee -a resp.txt
sleep 1
done
echo "Disabling Libera buffers" | tee -a resp.txt
saft-io-ctl $1 -n LED_USR5 -d 0
saft-io-ctl $1 -n LED_USR6 -d 0
saft-io-ctl $1 -n LED_USR7 -d 0
saft-io-ctl $1 -n HWT_EN -d 0
echo "Test finished!" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
#!/bin/bash
# $1 - FTRN Saflib name
FTRN=$1
saft-io-ctl $1 -i | grep MTCA4
echo "Enabling SW controlled HW tests"
saft-io-ctl $FTRN -n HWT_EN -d 1
echo "Enabling MTCA.4 MLVDS buffers" | tee resp.txt
saft-io-ctl $FTRN -n LED_USR5 -d 0
saft-io-ctl $FTRN -n LED_USR7 -d 1
sleep 0.5
echo "Turning all MTCA4 MLVDS outputs off" | tee resp.txt
for ((i=1; i<=8; i++))
do
saft-io-ctl $1 -n "MTCA4_IO$i" -d 0 -o 0
done
echo "Reading back MTCA4 MLVDS inputs" | tee resp.txt
for ((i=1; i<=8; i++))
do
saft-io-ctl $1 -n "MTCA4_IO$i"
done
echo " "
echo "Enabling Libera buffers" | tee resp.txt
saft-io-ctl $FTRN -n LED_USR5 -d 0
saft-io-ctl $FTRN -n LED_USR6 -d 1
sleep 0.5
echo "Driving Libera lines and reading them back on MTCA.4 MLVDS lines" | tee -a resp.txt
for ((i=1; i<=4; i++))
do
let j=i*2-1
let k=i*2
echo "--------------------------------------------------------" | tee -a resp.txt
echo "LIBERA_TR$i drive LO" | tee -a resp.txt
saft-io-ctl $1 -n "LIBERA_TR$i" -d 0
echo "Reding back MTCA4_IO$j and MTCA4_IO$k:" | tee -a resp.txt
RESP=`saft-io-ctl $1 -n "MTCA4_IO$j" | grep "Input:"`
echo " IO$j : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "Low"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input $j" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
RESP=`saft-io-ctl $1 -n "MTCA4_IO$k" | grep "Input:"`
echo " IO$k : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "Low"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input $k" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
sleep 0.5
echo "--------------------------------------------------------" | tee -a resp.txt
echo "LIBERA_TR$i drive HI" | tee -a resp.txt
saft-io-ctl $1 -n "LIBERA_TR$i" -d 1
echo "Reding back MTCA4_IO$j and MTCA4_IO$k:" | tee -a resp.txt
RESP=`saft-io-ctl $1 -n "MTCA4_IO$j" | grep "Input:"`
echo " IO$j : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "High"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input $j" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
RESP=`saft-io-ctl $1 -n "MTCA4_IO$k" | grep "Input:"`
echo " IO$k : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "High"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input $k" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
sleep 1
saft-io-ctl $1 -n "LIBERA_TR$i" -d 0
done
echo "Disabling Libera buffers" | tee -a resp.txt
saft-io-ctl $1 -n LED_USR5 -d 0
saft-io-ctl $1 -n LED_USR6 -d 0
saft-io-ctl $1 -n LED_USR7 -d 0
saft-io-ctl $1 -n HWT_EN -d 0
echo "Test finished!" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
#!/bin/bash
# $1 - FTRN Saflib name
CLK_1=(1 2 3 4)
CLK_2=(2 1 4 3)
saft-io-ctl $1 -i | grep MTCA4
echo "Enabling MTCA.4 buffers" | tee resp.txt
saft-io-ctl $1 -n LED_USR5 -d 0
saft-io-ctl $1 -n LED_USR6 -d 1
saft-io-ctl $1 -n LED_USR7 -d 1
saft-io-ctl $1 -n HWT_EN -d 1
echo "Turning all MTCA4 CLK lines off" | tee -a resp.txt
for ((i=1; i<=4; i++))
do
saft-io-ctl $1 -n "MTCA4_CLK$i" -d 0 -o 0
done
echo "Reading MTCA4 CLK lines" | tee -a resp.txt
for ((i=1; i<=4; i++))
do
saft-io-ctl $1 -n "MTCA4_CLK$i" | grep Input
done
#echo "Driving MTCA4 CLK line"
for ((i=0; i<${#CLK_1[@]}; i++))
do
echo "---------------------------------------------------------" | tee -a resp.txt
echo "Testing MTCA.4 ${CLK_1[i]}-${CLK_2[i]} CLK pair" | tee -a resp.txt
echo ""
echo "MTCA4_CLK${CLK_1[i]} as output: drive LO" | tee -a resp.txt
saft-io-ctl $1 -n "MTCA4_CLK${CLK_1[i]}" -o 1 -d 0
saft-io-ctl $1 -n "MTCA4_CLK${CLK_1[i]}" | grep Output
printf "Reading back MTCA4_CLK%d : " "${CLK_2[i]}" | tee -a resp.txt
RESP=`saft-io-ctl $1 -n "MTCA4_CLK${CLK_2[i]}" | grep "Input:"`
echo "$RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "Low"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input MTCA4_CLK${CLK_2[i]}" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
sleep 0.5
echo "--------------------------------------------------------" | tee -a resp.txt
echo "MTCA4_CLK${CLK_1[i]} as output: drive HI" | tee -a resp.txt
saft-io-ctl $1 -n "MTCA4_CLK${CLK_1[i]}" -o 1 -d 1
saft-io-ctl $1 -n "MTCA4_CLK${CLK_1[i]}" | grep Output
printf "Reading back MTCA4_CLK%d : " "${CLK_2[i]}" | tee -a resp.txt
RESP=`saft-io-ctl $1 -n "MTCA4_CLK${CLK_2[i]}" | grep Input`
echo "$RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "High"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input MTCA4_CLK${CLK_2[i]}" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
sleep 0.1
saft-io-ctl $1 -n "MTCA4_CLK${CLK_1[i]}" -o 0 -d 0
sleep 1
done
echo "Disabling MTCA.4 buffers" | tee -a resp.txt
saft-io-ctl $1 -n LED_USR5 -d 0
saft-io-ctl $1 -n LED_USR6 -d 0
saft-io-ctl $1 -n LED_USR7 -d 0
saft-io-ctl $1 -n HWT_EN -d 0
echo "Test finished. IO voltage levels are OK" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
#!/bin/bash
# $1 - FTRN Saflib name
saft-io-ctl $1 -i | grep MTCA4
echo "Enabling MTCA.4 buffers" | tee resp.txt
saft-io-ctl $1 -n LED_USR5 -d 0
saft-io-ctl $1 -n LED_USR6 -d 1
saft-io-ctl $1 -n LED_USR7 -d 1
saft-io-ctl $1 -n HWT_EN -d 1
echo "Turning all MTCA4 MLVDS lines off" | tee -a resp.txt
for ((i=1; i<=8; i++))
do
saft-io-ctl $1 -n "MTCA4_IO$i" -d 0
done
echo "Reading MTCA4 lines" | tee -a resp.txt
for ((i=1; i<=8; i++))
do
saft-io-ctl $1 -n "MTCA4_IO$i" | grep Input
done
echo "Testing IOs. One IO as output, others as intpus." | tee -a resp.txt
for ((i=1; i<=8; i++))
do
echo "--$i-----------------------------------------------------" | tee -a resp.txt
echo "MTCA4_IO$i as output: drive LO" | tee -a resp.txt
saft-io-ctl $1 -n "MTCA4_IO$i" -o 1 -d 0
saft-io-ctl $1 -n "MTCA4_IO$i" | grep Output
echo "--------------------------------------------------------" | tee -a resp.txt
for ((j=1; j<=8; j++))
do
RESP=`saft-io-ctl $1 -n "MTCA4_IO$j" | grep "Input:"`
echo " IO$j : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "Low"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input $j" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
done
echo "--------------------------------------------------------" | tee -a resp.txt
echo "MTCA4_IO$i as output: drive HI" | tee -a resp.txt
saft-io-ctl $1 -n "MTCA4_IO$i" -o 1 -d 1
saft-io-ctl $1 -n "MTCA4_IO$i" | grep Output | tee -a resp.txt
echo "--------------------------------------------------------" | tee -a resp.txt
for ((j=1; j<=8; j++))
do
RESP=`saft-io-ctl $1 -n "MTCA4_IO$j" | grep "Input:"`
echo " IO$j : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "High"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input $j" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
sleep 1
exit
fi
done
saft-io-ctl $1 -n "MTCA4_IO$i" -o 0 -d 0
sleep 1
done
echo "Reading MTCA4 lines" | tee -a resp.txt
for ((i=1; i<=8; i++))
do
saft-io-ctl $1 -n "MTCA4_IO$i" | grep Input
done
echo "--------------------------------------------------------" | tee -a resp.txt
echo "Disabling MTCA.4 buffers"
saft-io-ctl $1 -n LED_USR5 -d 0
saft-io-ctl $1 -n LED_USR6 -d 0
saft-io-ctl $1 -n LED_USR7 -d 0
saft-io-ctl $1 -n HWT_EN -d 0
echo "Test finished. IO voltage levels are OK" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
#!/bin/bash
# $1 - FTRN Saflib name
IO_1=(1 2 3 4 5 6 7 8)
IO_2=(2 1 4 3 6 5 8 7)
saft-io-ctl $1 -i | grep MTCA4
echo "Front panel IO LEDs showing MTCA.4 IO 1-4 state"
saft-io-ctl $1 -n LED_USR1 -d 0
saft-io-ctl $1 -n LED_USR2 -d 1
saft-io-ctl $1 -n LED_USR3 -d 1
saft-io-ctl $1 -n LED_USR4 -d 0
echo "Enabling MTCA.4 buffers" | tee resp.txt
saft-io-ctl $1 -n LED_USR5 -d 0
saft-io-ctl $1 -n LED_USR6 -d 0
saft-io-ctl $1 -n LED_USR7 -d 1
saft-io-ctl $1 -n HWT_EN -d 1
echo "Turning all MTCA4 MLVDS lines off" | tee -a resp.txt
for ((i=1; i<=8; i++))
do
saft-io-ctl $1 -n "MTCA4_IO$i" -d 0 -o 0
done
echo "Reading MTCA4 lines" | tee -a resp.txt
for ((i=1; i<=8; i++))
do
saft-io-ctl $1 -n "MTCA4_IO$i" | grep Input
done
echo "Testing MTCA.4 MLVDS IOs in pairs. One IO as output, other as intput." | tee -a resp.txt
for ((i=0; i<8; i++))
do
if [[ $i == 4 ]];then
echo "Front panel IO LEDs showing MTCA.4 IO 5-8 state"
saft-io-ctl $1 -n LED_USR1 -d 1
saft-io-ctl $1 -n LED_USR2 -d 1
saft-io-ctl $1 -n LED_USR3 -d 1
saft-io-ctl $1 -n LED_USR4 -d 0
fi
echo "---------------------------------------------------------" | tee -a resp.txt
echo "MTCA4_IO${IO_1[i]} as output: drive LO" | tee -a resp.txt
saft-io-ctl $1 -n "MTCA4_IO${IO_1[i]}" -o 1 -d 0
saft-io-ctl $1 -n "MTCA4_IO${IO_1[i]}" | grep Output
echo " " | tee -a resp.txt
RESP=`saft-io-ctl $1 -n "MTCA4_IO${IO_1[i]}" | grep "Input:"`
echo " IO${IO_1[i]} : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "Low"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input ${IO_1[i]}" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
RESP=`saft-io-ctl $1 -n "MTCA4_IO${IO_2[i]}" | grep "Input:"`
echo " IO${IO_2[i]} : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "Low"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input ${IO_2[i]}" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
echo "--------------------------------------------------------" | tee -a resp.txt
echo "MTCA4_IO${IO_1[i]} as output: drive HI" | tee -a resp.txt
saft-io-ctl $1 -n "MTCA4_IO${IO_1[i]}" -o 1 -d 1
saft-io-ctl $1 -n "MTCA4_IO${IO_1[i]}" | grep Output | tee -a resp.txt
echo " " | tee -a resp.txt
RESP=`saft-io-ctl $1 -n "MTCA4_IO${IO_1[i]}" | grep "Input:"`
echo " IO${IO_1[i]} : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "High"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input ${IO_1[i]}" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
RESP=`saft-io-ctl $1 -n "MTCA4_IO${IO_2[i]}" | grep "Input:"`
echo " IO${IO_2[i]} : $RESP" | tee -a resp.txt
IOSTATE=`echo "$RESP" | grep "High"`
if [[ -z $IOSTATE ]];then
echo "Invalid state on input ${IO_2[i]}" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
saft-io-ctl $1 -n "MTCA4_IO${IO_1[i]}" -o 0 -d 0
echo " "
sleep 0.5
done
echo " "
echo "Reading MTCA4 lines" | tee -a resp.txt
for ((i=1; i<=8; i++))
do
saft-io-ctl $1 -n "MTCA4_IO$i" | grep "Input:" | tee -a resp.txt
done
echo "--------------------------------------------------------" | tee -a resp.txt
echo "Disabling MTCA.4 buffers"
saft-io-ctl $1 -n LED_USR5 -d 0
saft-io-ctl $1 -n LED_USR6 -d 0
saft-io-ctl $1 -n LED_USR7 -d 0
saft-io-ctl $1 -n HWT_EN -d 0
saft-io-ctl $1 -n LED_USR1 -d 0
saft-io-ctl $1 -n LED_USR2 -d 0
saft-io-ctl $1 -n LED_USR3 -d 0
saft-io-ctl $1 -n LED_USR4 -d 0
echo "Test finished. IO voltage levels are OK" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
#!/bin/bash
# $1 - FTRN Saftlib name
VHI='>3V'
VLO='<0.7V'
VT='<3V'
# IO pairs to test
IO_1=(1 3 2 4 2)
IO_2=(3 1 4 2 5)
echo "LEMO IO test" | tee resp.txt
#saft-io-ctl $1 -i | grep IO
for (( i=0; i<${#IO_1[@]}; i++ )); do
echo "==============================================================================="
echo "Connect LEMO ${IO_1[i]} to LEMO ${IO_2[i]} then press ENTER" | tee -a resp.txt
read -s -n 1 ANS
echo "LEMO ${IO_1[i]} out to LEMO ${IO_2[i]} in, term off" | tee -a resp.txt
saft-io-ctl $1 -o 1 -t 0 -d 0 -n "IO${IO_1[i]}"
saft-io-ctl $1 -o 0 -t 0 -d 0 -n "IO${IO_2[i]}"
echo "Check that LEVEL is $VLO then press ENTER else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" != $'\e' ];then
echo "Voltage level is $VLO" | tee -a resp.txt
else
echo "Voltage level is not $VLO" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
echo "-------------------------------------------------------------------------------"
saft-io-ctl $1 -o 1 -t 0 -d 1 -n "IO${IO_1[i]}"
echo "Check that LEVEL is $VHI then press ENTER else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" != $'\e' ];then
echo "Voltage level is $VHI" | tee -a resp.txt
else
echo "Voltage level is not $VHI" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
echo "-------------------------------------------------------------------------------"
saft-io-ctl $1 -o 0 -t 1 -d 0 -n "IO${IO_2[i]}"
echo "Termination enabled! Check that LEVEL is $VT then press ENTER else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" != $'\e' ];then
echo "Voltage level is $VT" | tee -a resp.txt
else
echo "Voltage level is not $VT" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
saft-io-ctl $1 -o 0 -t 0 -d 0 -n "IO${IO_1[i]}"
done # for
echo "--------------------------------------------------------------"
echo "All IO test finished!" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
echo ""
#!/bin/bash
# $1 - FTRN Saftlib name
VHI='>3V'
VLO='<0.7V'
VT='<3V'
# IO pairs to test
IO_1=(1 2 3 4 5 ) # output
IO_2=(2 3 4 5 1) # input
echo "LEMO IO test - 5 lemo" | tee resp.txt
echo "Turning off all LEMO IOs"
for (( i=0; i<${#IO_1[@]}; i++ )); do
saft-io-ctl $1 -o 0 -t 0 -d 0 -n "IO${IO_1[i]}"
done
#saft-io-ctl $1 -i | grep IO
for (( i=0; i<${#IO_1[@]}; i++ )); do
echo "-----------------------------------------------------------------------------"
echo "LEMO ${IO_1[i]} out to LEMO ${IO_2[i]} in, term off" | tee -a resp.txt
saft-io-ctl $1 -o 1 -t 0 -d 0 -n "IO${IO_1[i]}"
saft-io-ctl $1 -o 0 -t 0 -d 0 -n "IO${IO_2[i]}"
echo "Check that LEVEL is $VLO then press ENTER else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" = "" ];then
echo "Voltage level is $VLO" | tee -a resp.txt
else
echo "Voltage level is not $VLO" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
echo " "
saft-io-ctl $1 -o 1 -t 0 -d 1 -n "IO${IO_1[i]}"
echo "Check that LEVEL is $VHI then press ENTER else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" = "" ];then
echo "Voltage level is $VHI" | tee -a resp.txt
else
echo "Voltage level is not $VHI" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
echo " "
saft-io-ctl $1 -o 0 -t 1 -d 0 -n "IO${IO_2[i]}"
echo "Termination on IO${IO_2[i]} enabled! Check that LEVEL is $VT then press ENTER else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" = "" ];then
echo "Voltage level is $VT" | tee -a resp.txt
else
echo "Voltage level is not $VT" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
saft-io-ctl $1 -o 0 -t 0 -d 0 -n "IO${IO_1[i]}"
saft-io-ctl $1 -o 0 -t 0 -d 0 -n "IO${IO_2[i]}"
done # for
echo "--------------------------------------------------------------"
echo "All IO test finished!" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
echo ""
#!/bin/bash
# $1 - FTRN Saftlib name
echo "Connect Lemo IO1 and Lemo IO5 with cable. Press ENTER"
read -s -n 1 ANS
echo "Enabling Lemo IO5 input clock test" | tee resp.txt
saft-io-ctl $1 -n LED_USR1 -d 0
saft-io-ctl $1 -n LED_USR2 -d 0
saft-io-ctl $1 -n LED_USR3 -d 1
saft-io-ctl $1 -n LED_USR4 -d 0
saft-io-ctl $1 -n LED_USR8 -d 0
saft-io-ctl $1 -n HWT_EN -d 1
saft-io-ctl $1 -n IO_CLKIN_EN -d 1
echo "Configuting IO direction and termination" | tee -a resp.txt
saft-io-ctl $1 -n IO5 -d 0 -o 0 -t 1
saft-io-ctl $1 -n IO1 -d 0 -o 1 -t 0
echo "Starting 4Hz clock on the LEMO IO1" | tee -a resp.txt
saft-clk-gen $1 -n IO1 -f 4 0
echo "Check that RED IO LEDs blink with then press ENTER else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" = $'\e' ];then
echo "Binary count NOT visible on RED IO LEDs" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
else
echo "Binary count visible on RED IO LEDs" | tee -a resp.txt
fi
echo "Starting 200MHz clock on the LEMO IO1" | tee -a resp.txt
saft-clk-gen $1 -n IO1 -p 3 2 0
echo "Check that BLUE IO LEDs blink with then press ENTER else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" = $'\e' ];then
echo "Binary count NOT visible on BLUE IO LEDs" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
else
echo "Binary count visible on BLUE IO LEDs" | tee -a resp.txt
fi
saft-clk-gen $1 -n IO1 -s
saft-io-ctl $1 -n IO5 -d 0 -o 0 -t 0
saft-io-ctl $1 -n IO1 -d 0 -o 0 -t 0
saft-io-ctl $1 -n LED_USR1 -d 0
saft-io-ctl $1 -n LED_USR2 -d 0
saft-io-ctl $1 -n LED_USR3 -d 0
saft-io-ctl $1 -n LED_USR4 -d 0
saft-io-ctl $1 -n LED_USR8 -d 0
saft-io-ctl $1 -n HWT_EN -d 0
saft-io-ctl $1 -n IO_CLKIN_EN -d 0
echo "--------------------------------------------------------------"
echo "PTS_STATUS: OK" | tee -a resp.txt
echo ""
#!/bin/bash
# $1 - FTRN Saflib name
echo "##########################################################" | tee resp.txt
#RESP=`saft-io-ctl $1 -i`;
RESP=`eval saft-io-ctl $1 -i`
RESP=`printf "%s" "$RESP" | grep "exist!"`
if [[ -n $RESP ]]; then
echo "PTS_ERORR: No amc device registered with Saflib!"
exit 64
fi
DISP_COLOR=("RED" "GREEN" "BLUE")
LEDUSR5=(0 1 0)
LEDUSR6=(1 0 0)
LEDUSR7=(0 0 1)
echo "Enabling LED test"
# SW hexsw in position F
saft-io-ctl $1 -n LED_USR1 -d 1
saft-io-ctl $1 -n LED_USR2 -d 1
saft-io-ctl $1 -n LED_USR3 -d 1
saft-io-ctl $1 -n LED_USR4 -d 1
saft-io-ctl $1 -n LED_USR8 -d 0
saft-io-ctl $1 -n HWT_EN -d 1
echo "Toggling all IO, status and user LEDS" | tee -a resp.txt
saft-io-ctl $1 -n LED_USR8 -d 1
echo "Press Enter if all leds are ON. Press ESC if all leds are not ON." | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" != $'\e' ]; then
echo "All LEDs ON." | tee -a resp.txt
else
echo "All LEDs not ON" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
saft-io-ctl $1 -n LED_USR8 -d 0
echo "Press enter if all leds are OFF. Press ESC if all leds are not OFF." | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" != $'\e' ]; then
echo "All LEDs OFF." | tee -a resp.txt
else
echo "All LEDs not OFF" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
echo "Display LED back light test" | tee -a resp.txt
for ((i=0;i<3; i++));do
echo "Diplay back light: ${DISP_COLOR[i]}" | tee -a resp.txt
saft-io-ctl $1 -n LED_USR5 -d ${LEDUSR5[i]}
saft-io-ctl $1 -n LED_USR6 -d ${LEDUSR6[i]}
saft-io-ctl $1 -n LED_USR7 -d ${LEDUSR7[i]}
echo "Press Enter if display is ${DISP_COLOR[i]}. Press ESC if display is not ${DISP_COLOR[i]}." | tee -a resp.txt
read -s -n 1 ANS
if [ "$ANS" != $'\e' ]; then
echo "Display backlight color is ${DISP_COLOR[i]}." | tee -a resp.txt
else
echo "Display backlight color is NOT ${DISP_COLOR[i]}." | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
done
echo "Disabling LED test"
saft-io-ctl $1 -n HWT_EN -d 0
# hexsw F
saft-io-ctl $1 -n LED_USR1 -d 0
saft-io-ctl $1 -n LED_USR2 -d 0
saft-io-ctl $1 -n LED_USR3 -d 0
saft-io-ctl $1 -n LED_USR4 -d 0
saft-io-ctl $1 -n LED_USR8 -d 0
echo "Disabling Display backlight test"
saft-io-ctl $1 -n LED_USR5 -d 0
saft-io-ctl $1 -n LED_USR6 -d 0
saft-io-ctl $1 -n LED_USR7 -d 0
echo "Test finished!"
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
#!/bin/bash
echo "################################################################################" | tee resp.txt
if [ -z $1 ]; then
echo "arg1 : valid path to PTS folder"
exit
fi
MCH_TTY=`$1/utils/find_mch_ttyACM.sh`
if [[ -z $MCH_TTY ]]; then
echo "PTS_ERROR: MCH serial port not found!" | tee -a resp.txt
exit 100
else
echo "Found MMC serial port: $MCH_TTY" | tee -a resp.txt
fi
echo "Check MCH console" | tee -a resp.txt
stty -F /dev/$MCH_TTY 115200 raw -echo #CONFIGURE SERIAL PORT
exec 3</dev/$MCH_TTY #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
RESP=`cat /tmp/ttyDump.dat` # dump
echo "$RESP" | tee -a resp.txt
printf "\r\r" > /dev/$MCH_TTY #SEND COMMAND STRING TO SERIAL PORT
#echo "" > /tmp/ttyDump.dat
sleep 0.5
printf "show_fru\r" > /dev/$MCH_TTY #SEND COMMAND STRING TO SERIAL PORT
sleep 2s #WAIT FOR RESPONSE
RESP=`cat /tmp/ttyDump.dat | grep "CSL-MMC-WR"`
echo "$RESP" | tee -a resp.txt
if [[ -z $RESP ]]; then
echo "MMC FTRN not in crate!" | tee -a resp.txt
echo "PTS_STATUS: Failed"
exit 64
else
echo "MCH present in the crate: $RESP" | tee -a resp.txt
fi
#echo "" > /tmp/ttyDump.dat
printf "show_sensorinfo 6\r" > /dev/$MCH_TTY #SEND COMMAND STRING TO SERIAL PORT
sleep 2s
RESP=`cat /tmp/ttyDump.dat` #DUMP CAPTURED DATA
echo "$RESP" | tee -a resp.txt
kill $PID; #KILL CAT PROCESS
exec 3<&- ; #FREE FD 3
if [ -z "$RESP" ]; then
echo "PTS_STATUS: Failed. No response from MCH." | tee -a resp.txt
exit 64
else
echo "$RESP" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
fi
#!/bin/bash
echo "################################################################################" | tee resp.txt
if [ -z $1 ]; then
echo "PTS_ERROR: arg1 : MCH IP"
exit 100
fi
MCH_IP=$1
MCH_PING=`ping -c 3 $MCH_IP | grep "bytes from"`
if [[ -z "$MCH_PING" ]]; then
echo "MCH IP not reachable" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 100
else
echo "Found MCH on IP: $MCH_IP" | tee -a resp.txt
fi
echo "Check MMC via ipmitools" | tee -a resp.txt
RESP=`ipmitool -H $MCH_IP -A none fru print 6`
ANS=`echo $RESP | grep Error`
printf "$RESP\n\n" | tee -a resp.txt
RESP=`echo $RESP | grep Cosylab`
if [ -z "$ANS" ]; then
printf "\nPTS_STATUS: Failed No response from MCH\n" | tee -a resp.txt
exit 64
else
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
fi
#!/bin/bash
# $1 - bin file path
echo "################################################################################"
echo "Flashing MMC"
openocd -f "./openocd/mmc_openocd.cfg" -c lpprog "./LPC2136_FreeRTOS_CoreIPM.bin"
#echo "################################################################################"
#echo $OUTP
#echo "################################################################################"
sleep 1
echo "################################################################################"
echo "Flashing again"
openocd -f "./openocd/mmc_openocd.cfg" -c "lpprog $1"
printf "\n\n"
read -p "Power cycle the board then press ENTER"
echo "################################################################################"
printf "Done\n\n\n"
exit 0
# Common setup for the LPC2xxx parts
# parameters:
# - chip_name - name of the chip, e.g. lpc2103
# - cputapids - TAP IDs of the core, should be quoted if more than one, e.g. 0x4f1f0f0f or "0x3f0f0f0f 0x4f1f0f0f"
# - flash_size - size of on-chip flash (available for code, not including the bootloader) in bytes, e.g. 0x8000
# - flash_variant - "type" of LPC2xxx device, lpc2000_v1 (LPC22xx and older LPC21xx) or lpc2000_v2 (LPC213x, LPC214x, LPC210[123], LPC23xx and LPC24xx)
# - workarea_size - size of work-area in RAM for flashing procedures, must not exceed the size of RAM available at 0x40000000, e.g. 0x2000
# - core_freq_khz - frequency of core in kHz during flashing, usually equal to connected crystal or internal oscillator, e.g. 12000
# - adapter_freq_khz - frequency of debug adapter in kHz, should be 8x slower than core_freq_khz, e.g. 1000
proc setup_lpc2xxx {chip_name cputapids flash_size flash_variant workarea_size core_freq_khz adapter_freq_khz} {
#reset_config trst_and_srst
reset_config srst_only srst_gates_jtag
# reset delays
adapter_nsrst_delay 100
#jtag_ntrst_delay 100
adapter_khz $adapter_freq_khz
foreach i $cputapids {
append expected_ids "-expected-id " $i " "
}
eval "jtag newtap $chip_name cpu -irlen 4 -ircapture 0x1 -irmask 0xf $expected_ids"
global _TARGETNAME
set _TARGETNAME $chip_name.cpu
target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME
$_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size $workarea_size -work-area-backup 0
if { $flash_size > 0 } {
# flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc checksum]
set _FLASHNAME $chip_name.flash
flash bank $_FLASHNAME lpc2000 0x0 $flash_size 0 0 $_TARGETNAME $flash_variant $core_freq_khz calc_checksum
}
}
proc init_targets {} {
# FIX!!! read out CPUTAPID here and choose right setup. In addition to the
# CPUTAPID some querying of the target would be required.
return -error "This is a generic LPC2xxx configuration file, use a specific target file."
}
#source /usr/share/openocd/scripts/interface/ftdi/olimex-arm-usb-ocd.cfg
source ./openocd/olimex-arm-usb-ocd.cfg
#source /usr/share/openocd/scripts/target/lpc2xxx.cfg
source "./openocd/lpc2xxx.cfg"
# parameters:
# - core_freq_khz - frequency of core in kHz during flashing, usually equal to connected crystal or internal oscillator, e.g. 12000
# - adapter_freq_khz - frequency of debug adapter in kHz, should be 8x slower than core_freq_khz, e.g. 1000
proc setup_lpc2136 {core_freq_khz adapter_freq_khz} {
# 256kB flash and 16kB SRAM
# setup_lpc2xxx <chip_name> <cputapid> <flash_size> <flash_variant> <workarea_size> <core_freq_khz> <adapter_freq_khz>
setup_lpc2xxx lpc2138 0x4f1f0f0f 0x40000 lpc2000_v2 0x4000 $core_freq_khz $adapter_freq_khz
}
proc lpprog {filename} {
init
halt
flash write_image erase unlock $filename
reset
halt
wait_halt
resume 0
}
# Setup LPC2136 with core @12Mhz
setup_lpc2136 12000 1500
#
# Olimex ARM-USB-OCD
#
# http://www.olimex.com/dev/arm-usb-ocd.html
#
interface ftdi
ftdi_device_desc "Olimex OpenOCD JTAG"
ftdi_vid_pid 0x15ba 0x0003
ftdi_layout_init 0x0c08 0x0f1b
ftdi_layout_signal nSRST -oe 0x0200
ftdi_layout_signal nTRST -data 0x0100 -noe 0x0400
ftdi_layout_signal LED -data 0x0800
#!/bin/bash
DLM1='################################################################################'
DLM2='--------------------------------------------------------------------------------'
echo $DLM1 | tee resp.txt
echo "Check that FTRN MMC and MCH are connected to PC. Press ENTER" | tee -a resp.txt
read -s -n 1
if [ -z $1 ]; then
echo "arg1 : valid path to PTS folder"
exit 113
fi
MMC_TTY=`$1/utils/find_ftrn_mmc_ttyUSB.sh`
MCH_TTY=`$1/utils/find_mch_ttyACM.sh`
if [[ -n $MMC_TTY ]]; then
echo "Found MMC serial port: $MMC_TTY" | tee -a resp.txt
else
echo "MMC serial port not available!" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
if [[ -n $MCH_TTY ]]; then
echo "Found MCH serial port: $MCH_TTY" | tee -a resp.txt
else
echo "MCH serial port not available!" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 65
fi
echo $DML2 | tee -a resp.txt
echo "Connecting to MMC console" | tee -a resp.txt
stty -F /dev/$MMC_TTY 115200 raw -echo #CONFIGURE SERIAL PORT
exec 3</dev/$MMC_TTY #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > ./ttyMMCdump.log & #REDIRECT SERIAL OUTPUT TO FILE
MMCPID=$! #SAVE PID TO KILL CAT
echo "Connecting to MCH console" | tee -a resp.txt
stty -F /dev/$MCH_TTY 115200 raw -echo #CONFIGURE SERIAL PORT
exec 4</dev/$MCH_TTY #REDIRECT SERIAL OUTPUT TO FD 4
cat <&4 > ./ttyMCHdump.log & #REDIRECT SERIAL OUTPUT TO FILE
MCHPID=$! #SAVE PID TO KILL CAT
echo "Pull out FTRN HotSwap handle and insert FTRN into crate. Press ENTER" | tee -a resp.txt
read -s -n 1
echo "MMC: raising debug report level"| tee -a resp.txt
echo "4" > /dev/$MMC_TTY #SEND COMMAND STRING TO SERIAL PORT
sleep 1s #WAIT FOR RESPONSE
echo "MCH: showing FTRN fru info"| tee -a resp.txt
printf "\r\n\r\n" > /dev/$MCH_TTY #SEND COMMAND STRING TO SERIAL PORT
sleep 1s #WAIT FOR RESPONSE
printf "show_fruinfo 6\r\n" > /dev/$MCH_TTY #SEND COMMAND STRING TO SERIAL PORT
sleep 1s #WAIT FOR RESPONSE
echo "Push in FTRN HotSwap handle and wait until BLUE LED turns OFF. Press ENTER" | tee -a resp.txt
read -s -n 1
echo "Shutting down and restarting FTRN FRU via ipmi"
echo "MCH: Shutting down FTRN FRU"| tee -a resp.txt
printf "shutdown 6\r\n" > /dev/$MCH_TTY #SEND COMMAND STRING TO SERIAL PORT
echo "Press key when FTRN is off (BLUE LED is on)" | tee -a resp.txt #WAIT FOR RESPONSE
read -n 1 -s -t 15
echo "MCH: Starting FTRN FRU"
printf "fru_start 6\r\n" > /dev/$MCH_TTY #SEND COMMAND STRING TO SERIAL PORT
echo "Press key when FTRN is ON (BLUE LED is OFF)" | tee -a resp.txt
read -n 1 -s -t 15
# force bus rescan
echo 1 > /sys/bus/pci/rescan
MMCRESP=`cat ./ttyMMCdump.log` #DUMP CAPTURED DATA
printf "\r\n\r\n%s\r\n MMC RESPONSE" "$DLM1" | tee -a resp.txt #WAIT FOR RESPONSE
echo "$MMCRESP" | tee -a resp.txt
kill $MMCPID; #KILL CAT PROCESS
exec 3<&- ; #FREE FD 3
MCHRESP=`cat ./ttyMCHdump.log` #DUMP CAPTURED DATA
printf "\r\n\r\n%s\r\n MCH RESPONSE" "$DLM1" | tee -a resp.txt #WAIT FOR RESPONSE
echo "$MCHRESP" | tee -a resp.txt
kill $MCHPID; #KILL CAT PROCESS
exec 4<&- ; #FREE FD 3
if [ -z "$MMCRESP" ]; then
echo "No response from MMC. Could not read MMC build info" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 66
fi
if [ -z "$MCHRESP" ]; then
echo "No response from MCH" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 67
else
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
fi
#!/bin/bash
# $1 - PTS path
echo "################################################################################" | tee resp.txt
echo "Check that OPENOCD cable is connected to MMC JTAG connector" | tee -a resp.txt
echo " and DIP2 is in position OFF (JTAG) then press ENTER" | tee -a resp.txt
read -s -n 1
echo "Flashing MMC"| tee -a resp.txt
openocd -f "./openocd/mmc_openocd.cfg" -c "lpprog ./LPC2136_FreeRTOS_CoreIPM.bin" &> openocd.txt
RESP=$(cat openocd.txt)
echo "$RESP" | tee -a resp.txt
TEST1=`echo "$RESP" | grep "auto unlock enabled"`
TEST2=`echo "$RESP" | grep "bytes from file"`
TEST3=`echo "$RESP" | grep "KiB/s)"`
#echo "test1 $TEST1" | tee -a resp.txt
#echo "test2 $TEST2" | tee -a resp.txt
#echo "test3 $TEST3" | tee -a resp.txt
sleep 2
if [[ -n $TEST1 ]] || [[ -n $TEST2 ]] || [[ -n $TEST3 ]];then
echo "MMC flashing finished OK" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
else
echo "################################################################################" | tee -a resp.txt
echo "Flashing again"| tee -a resp.txt
openocd -f "./openocd/mmc_openocd.cfg" -c "lpprog ./LPC2136_FreeRTOS_CoreIPM.bin" &> openocd.txt
RESP=$(cat openocd.txt)
echo "$RESP" | tee -a resp.txt
#TEST1=`echo $RESP | grep "auto unlock enabled"`
#TEST2=`echo $RESP | grep "bytes from file)"`
#TEST3=`echo $RESP | grep "KiB/s)"`
if [[ -n $TEST1 ]] || [[ -n $TEST2 ]] || [[ -n $TEST3 ]];then
echo "MMC flashing finished OK" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
else
echo "PTS_STATUS: MMC flashing failed" | tee -a resp.txt
exit 64
fi
fi
#!/bin/bash
# $1 - PTS path
echo "################################################################################"
echo "Flashing MMC"
openocd -f "./openocd/mmc_openocd.cfg" -c "lpprog ./LPC2136_FreeRTOS_CoreIPM.bin"
exit 0
#!/bin/bash
# $1 - PTS path
echo "################################################################################"
echo "Flashing MMC"
RESP=$(openocd -f "./openocd/mmc_openocd.cfg" -c "lpprog ./LPC2136_FreeRTOS_CoreIPM.bin")
echo "RESP : $RESP"
TEST1=`echo $RESP | grep "auto unlock enabled"`
TEST2=`echo $RESP | grep "bytes from file"`
TEST3=`echo $RESP | grep "KiB/s)"`
echo "TEST1: $TEST1"
echo "TEST2: $TEST2"
echo "TEST3: $TEST3"
sleep 2
if [[ -z $TEST1 ]] || [[ -z $TEST2 ]] || [[ -z $TEST3 ]];then
echo "################################################################################"
echo "Flashing again"
# RESP=`openocd -f "./openocd/mmc_openocd.cfg" -c "lpprog ./LPC2136_FreeRTOS_CoreIPM.bin"`
RESP=$(openocd -f "./openocd/mmc_openocd.cfg" -c "lpprog ./LPC2136_FreeRTOS_CoreIPM.bin")
cd $CURDIR
TEST1=`echo $RESP | grep "auto unlock enabled"`
TEST2=`echo $RESP | grep "bytes from file)"`
TEST3=`echo $RESP | grep "KiB/s)"`
if [[ -z $TEST1 ]] || [[ -z $TEST2 ]] || [[ -z $TEST3 ]];then
echo "PTS_ERROR: MMC flashing failed"
exit 64
else
echo "PTS_OK: MMC flashing finished"
exit 0
fi
else
echo "PTS_OK: MMC flashing finished"
exit 0
fi
# Common setup for the LPC2xxx parts
# parameters:
# - chip_name - name of the chip, e.g. lpc2103
# - cputapids - TAP IDs of the core, should be quoted if more than one, e.g. 0x4f1f0f0f or "0x3f0f0f0f 0x4f1f0f0f"
# - flash_size - size of on-chip flash (available for code, not including the bootloader) in bytes, e.g. 0x8000
# - flash_variant - "type" of LPC2xxx device, lpc2000_v1 (LPC22xx and older LPC21xx) or lpc2000_v2 (LPC213x, LPC214x, LPC210[123], LPC23xx and LPC24xx)
# - workarea_size - size of work-area in RAM for flashing procedures, must not exceed the size of RAM available at 0x40000000, e.g. 0x2000
# - core_freq_khz - frequency of core in kHz during flashing, usually equal to connected crystal or internal oscillator, e.g. 12000
# - adapter_freq_khz - frequency of debug adapter in kHz, should be 8x slower than core_freq_khz, e.g. 1000
proc setup_lpc2xxx {chip_name cputapids flash_size flash_variant workarea_size core_freq_khz adapter_freq_khz} {
#reset_config trst_and_srst
reset_config srst_only srst_gates_jtag
# reset delays
adapter_nsrst_delay 500
#jtag_ntrst_delay 500
adapter_khz $adapter_freq_khz
foreach i $cputapids {
append expected_ids "-expected-id " $i " "
}
eval "jtag newtap $chip_name cpu -irlen 4 -ircapture 0x1 -irmask 0xf $expected_ids"
global _TARGETNAME
set _TARGETNAME $chip_name.cpu
target create $_TARGETNAME arm7tdmi -chain-position $_TARGETNAME
$_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size $workarea_size -work-area-backup 0
if { $flash_size > 0 } {
# flash bank <name> lpc2000 <base> <size> 0 0 <target#> <variant> <clock> [calc checksum]
set _FLASHNAME $chip_name.flash
flash bank $_FLASHNAME lpc2000 0x0 $flash_size 0 0 $_TARGETNAME $flash_variant $core_freq_khz calc_checksum
}
}
proc init_targets {} {
# FIX!!! read out CPUTAPID here and choose right setup. In addition to the
# CPUTAPID some querying of the target would be required.
return -error "This is a generic LPC2xxx configuration file, use a specific target file."
}
#source /usr/share/openocd/scripts/interface/ftdi/olimex-arm-usb-ocd.cfg
source ./openocd/olimex-arm-usb-ocd.cfg
#source /usr/share/openocd/scripts/target/lpc2xxx.cfg
source "./openocd/lpc2xxx.cfg"
# parameters:
# - core_freq_khz - frequency of core in kHz during flashing, usually equal to connected crystal or internal oscillator, e.g. 12000
# - adapter_freq_khz - frequency of debug adapter in kHz, should be 8x slower than core_freq_khz, e.g. 1000
proc setup_lpc2136 {core_freq_khz adapter_freq_khz} {
# 256kB flash and 16kB SRAM
# setup_lpc2xxx <chip_name> <cputapid> <flash_size> <flash_variant> <workarea_size> <core_freq_khz> <adapter_freq_khz>
setup_lpc2xxx lpc2138 0x4f1f0f0f 0x40000 lpc2000_v2 0x4000 $core_freq_khz $adapter_freq_khz
}
proc lpprog {filename} {
init
halt
wait_halt
flash write_image erase unlock $filename
reset
halt
wait_halt
resume 0
}
# Setup LPC2136 with core @12Mhz
setup_lpc2136 12000 1500
#
# Olimex ARM-USB-OCD
#
# http://www.olimex.com/dev/arm-usb-ocd.html
#
interface ftdi
ftdi_device_desc "Olimex OpenOCD JTAG"
ftdi_vid_pid 0x15ba 0x0003
ftdi_layout_init 0x0c08 0x0f1b
ftdi_layout_signal nSRST -oe 0x0200
ftdi_layout_signal nTRST -data 0x0100 -noe 0x0400
ftdi_layout_signal LED -data 0x0800
#!/bin/bash
echo "################################################################################" | tee resp.txt
if [ -z $1 ]; then
echo "arg1 : valid path to PTS folder"
exit 113
fi
MMC_TTY=`$1/utils/find_ftrn_mmc_ttyUSB.sh`
if [[ -n $MMC_TTY ]]; then
echo "Found MMC serial port: $MMC_TTY" | tee -a resp.txt
else
echo "MMC serial port not available!" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
echo "################################################################################" | tee -a resp.txt
echo "Check MMC console" | tee -a resp.txt
stty -F /dev/$MMC_TTY 115200 raw -echo #CONFIGURE SERIAL PORT
exec 3</dev/$MMC_TTY #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
echo "i" > /dev/$MMC_TTY #SEND COMMAND STRING TO SERIAL PORT
sleep 1s #WAIT FOR RESPONSE
RESP=`cat /tmp/ttyDump.dat` #DUMP CAPTURED DATA
echo "$RESP" | tee -a resp.txt
kill $PID; #KILL CAT PROCESS
exec 3<&- ; #FREE FD 3
RESP=`echo $RESP | grep "Build info"`
if [ -z "$RESP" ]; then
echo "No response from MMC. Could not read MMC build info" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
else
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
fi
#!/bin/bash
echo "################################################################################" | tee resp.txt
if [ -z $1 ]; then
echo "arg1 : valid path to PTS folder"
exit 113
fi
MMC_TTY=`$1/utils/find_ftrn_mmc_ttyUSB.sh`
if [[ -n $MMC_TTY ]]; then
echo "Found MMC serial port: $MMC_TTY" | tee -a resp.txt
else
echo "PTS_STATUS: Failed. MMC serial port not available!" | tee -a resp.txt
exit 64
fi
echo "################################################################################" | tee -a resp.txt
echo "Check MMC console" | tee -a resp.txt
stty -F /dev/$MMC_TTY 115200 raw -echo #CONFIGURE SERIAL PORT
exec 3</dev/$MMC_TTY #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
echo "Enabling MMC LED test" | tee -a resp.txt
echo "Turning LED OFF"
echo "l" > /dev/$MMC_TTY #SEND COMMAND STRING TO SERIAL PORT
sleep 1
RESP=`cat /tmp/ttyDump.dat` #DUMP CAPTURED DATA
if [ -z "$RESP" ]; then
echo "No response from MMC" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
echo "$RESP" | tee -a resp.txt
echo "All MMC leds should be OFF. Press ENTER if yes else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [[ -n $ANS ]]; then
echo "MMC LEDs are not ON" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
echo "Turning LED ON"
echo "L" > /dev/$MMC_TTY #SEND COMMAND STRING TO SERIAL PORT
sleep 1
RESP=`cat /tmp/ttyDump.dat` #DUMP CAPTURED DATA
if [ -z "$RESP" ]; then
echo "No response from MMC" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit 64
fi
echo "$RESP" | tee -a resp.txt
echo "All MMC leds should be ON. Press ENTER if yes else press ESC" | tee -a resp.txt
read -s -n 1 ANS
if [[ -n $ANS ]]; then
echo "MMC LEDs are not ON" | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
sleep 1s #WAIT FOR RESPONSE
echo "Disabling LED test" | tee -a resp.txt
echo "o" > /dev/$MMC_TTY #SEND COMMAND STRING TO SERIAL PORT
kill $PID; #KILL CAT PROCESS
exec 3<&- ; #FREE FD 3
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
#!/bin/bash
echo "################################################################################" | tee resp.txt
PCI_DEV_PRE=`lspci | grep "CERN"`
echo "Killing Saflib" | tee -a resp.txt
killall -9 saftd
sleep 2s
echo "Removing pcie_wb kernel module" | tee -a resp.txt
rmmod pcie_wb
sleep 3s
echo "Removing wishbone kernel module" | tee -a resp.txt
rmmod wishbone
sleep 3s
echo "checking existing FTRN devices:"
echo "$PCI_DEV"
echo "Rescanning PCI bus" | tee -a resp.txt
echo 1 > /sys/bus/pci/rescan
echo "Inserting wishbone kernel module" | tee -a resp.txt
insmod wishbone.ko
sleep 3s
echo "Insering pcie_wb kernel module" | tee -a resp.txt
insmod pcie_wb.ko
sleep 3s
#echo "Starting Saflib" | tee -a resp.txt
#saftd ftrn0:dev/wbm0 ftrn0:dev/wbm0
#sleep 2s
PCI_DEV_POST=`lspci | grep CERN`
echo "Found FTRN PCI devices:"
echo "$PCI_DEV"
if [[ "$PCI_DEV_PRE" != "$PCI_DEV_POST" ]]; then
echo "PCI Device added" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
else
echo "FTRN PCI device not added" | tee -a resp.txt
echo "PTS_STATUS: Failed." | tee -a resp.txt
fi
#!/bin/bash
# $1 - FTRN PCI address
echo "################################################################################" | tee resp.txt
echo "Checking PCI device $1"
PCI_DEV=`lspci | grep "CERN"`
PCI_DEV=`echo "$PCI_DEV" | grep "$1"`
if [[ -z $PCI_DEV ]]; then
echo "PCI device $1 not found!"
echo "PTS_STATUS: OK"
exit 0
fi
echo "Killing Saflib" | tee -a resp.txt
killall -9 saftd
sleep 2s
echo "Removing pcie_wb kernel module" | tee -a resp.txt
rmmod pcie_wb
sleep 3s
echo "Removing wishbone kernel module" | tee -a resp.txt
rmmod wishbone
sleep 3s
echo "Removing PCI device $PCI_DEV" | tee -a resp.txt
echo 1 > /sys/bus/pci/devices/0000\:$1.0/remove
sleep 2s
PCI_DEV=`lspci | grep "CERN"`
PCI_DEV=`echo $PCI_DEV | grep "$1"`
if [[ -z $PCI_DEV ]]; then
echo "PCI Device removed" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
else
echo "FTRN PCI device not removed" | tee -a resp.txt
echo "PTS_STATUS: Failed." | tee -a resp.txt
fi
#!/bin/bash
# $1 PTS path
# $2 command
PTS_PATH=$1
CMD=$2
echo "###################################################################" | tee resp.txt
echo "Killing Saftlib" | tee -a resp.txt
killall -9 saftd
sleep 0.5s
echo "Removing FTRN kernel modules" | tee -a resp.txt
rmmod pcie_wb
sleep 0.5s
rmmod wishbone-serial
sleep 0.5s
rmmod wishbone
sleep 0.5s
if [ "$CMD" == "r" ]; #just removing kernel modules
then
echo "PTS_STATUS: OK" | tee -a resp.txt
exit
fi
echo "-------------------------------------------------------------------" | tee -a resp.txt
echo "Checking that one FTRN device is visible on the PCI bus" | tee -a resp.txt
CHECK=`lspci | grep CERN`
echo $CHECK
if [[ -n $CHECK ]]; then
echo "FTRN present on the PCI bus" | tee -a resp.txt
else
echo "No FTRN present on the PCI bus" | tee -a resp.txt
echo "PTS_STATUS: Failed (64)" | tee -a resp.txt
exit
fi
echo "-------------------------------------------------------------------" | tee -a resp.txt
echo "Inserting Wishbone FTRN kernel modules" | tee -a resp.txt
insmod wishbone.ko
sleep 0.5s
insmod wishbone-serial.ko
sleep 0.5s
if [ "$CMD" != "w" ]; # if not inserting only wishbone
then
echo "Inserting PCI FTRN kernel module" | tee -a resp.txt
insmod pcie_wb.ko
fi
echo "-------------------------------------------------------------------" | tee -a resp.txt
echo "Checking FTRN kernel modules" | tee -a resp.txt
echo "" | tee -a resp.txt
lsmod | grep pcie_wb
lsmod | grep wishbone
echo "--Checking device handles-------------------------------------------" | tee -a resp.txt
ls -l /dev | grep wbm | tee -a resp.txt
FTRN_TTY=`$PTS_PATH/utils/find_ftrn_ttyUSB.sh`
ls -l /dev | grep $FTRN_TTY | tee -a resp.txt
echo "--Checking assigned interrupts--------------------------------------" | tee -a resp.txt
cat /proc/interrupts | grep wb | tee -a resp.txt
echo "--Checking probe messages-------------------------------------------" | tee -a resp.txt
dmesg -c | grep pcie_wb | tee -a resp.txt
echo "-------------------------------------------------------------------" | tee -a resp.txt
echo "-- Checking GW version of wbm0 ------------------------------------" | tee -a resp.txt
echo "" | tee -a resp.txt
GW_WBM=`eb-info dev/wbm0`
echo "$GW_WBM" | tee -a resp.txt
echo "-------------------------------------------------------------------" | tee -a resp.txt
echo "-- Checking GW version of $FTRN_TTY--------------------------------" | tee -a resp.txt
echo "" | tee -a resp.txt
GW_TTY=`eb-info dev/$FTRN_TTY`
echo "$GW_TTY" | tee -a resp.txt
echo " " | tee -a resp.txt
echo " " | tee -a resp.txt
if [[ "$GW_TTY" == "$GW_WBM" ]]; then
echo "Kernel modules inserted OK." | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit
else
echo "Kernel modules not or GW info can not be read via PCI or USB." | tee -a resp.txt
echo "PTS_STATUS: Failed" | tee -a resp.txt
exit
fi
#!/bin/bash
COUNTER=0
IRQS=""
echo "PMC IRQs"
while true;
do
#IRQS=`cat /proc/interrupts | grep 17:`
#printf "PMC IRQS %s", ${IRQS}
printf "\e[2K`cat /proc/interrupts | grep 17:`\e[1A\n"
COUNTER=$[$COUNTER + 1]
sleep 0.5s
done
echo " "
# ignore Cypress USB serial port
ATTRS{idVendor}=="04b4",ATTRS{idProduct}=="f232", ENV{ID_MM_DEVICE_IGNORE="1"
#!/bin/bash
# $1 - test list
# $2 - serial and MAC list file
# $3 - UUT etherbone master
SN=$1
MAC=$2
MACS=`echo $MAC | tr ':' '-'` # for folder and file name
#echo "MAC : $MAC"
#echo "MACS : $MACS"
#set paths
PTS=$(pwd)
#echo $PTS
export PATH=$PATH:/home/ftrn/intelFPGA/17.1/qprogrammer/bin:/home/ftrn/intelFPGA/17.1/qprogrammer/linux64/
TEST_LOG_DIR=/home/ftrn/Desktop/board_tests
TEST_DELIM1='###############################################################################';
TEST_DELIM2='-------------------------------------------------------------------------------';
RESP=`$PTS/uid/read_uid.sh $PTS;`
STATUS=$?
if [[ $STATUS != 0 ]]; then
echo "Reading UID failed. Stopping!"
exit
fi
#echo $RESP
#FTRNUID="12313"
FTRNUID=`printf "%s" "$RESP" | sed -n '5p'`
# assemble folder and file name
LOG_NAME="amc"
LOG_NAME+="_sn-$SN"
LOG_NAME+="_uid-$FTRNUID"
LOG_NAME+="_mac-$MACS"
# echo "LOG_NAME : $LOG_NAME"
LOG_FOLDER="$TEST_LOG_DIR/$LOG_NAME"
if [[ -d $LOG_FOLDER ]];then
rm $LOG_FOLDER/*
else
mkdir $LOG_FOLDER
fi
LOG_FILE="$TEST_LOG_DIR/$LOG_NAME/$LOG_NAME.log"
#echo "log file name: $LOG_FILE"
# create log file
touch $LOG_FILE
date > $LOG_FILE
echo "SN : $SN" | tee -a $LOG_FILE
echo "UID : $FTRNUID" | tee -a $LOG_FILE
echo "MAC : $MAC" | tee -a $LOG_FILE
# get UUT GW info
FTRN_TTY=`$PTS/utils/find_ftrn_ttyUSB.sh`
RESP=`eb-info dev/$FTRN_TTY`
GWINFO=`printf "%s" "$RESP" | sed -n '4p'` # gw branch
printf "%s\n" "$GWINFO" | tee -a $LOG_FILE
GWINFO=`printf "%s" "$RESP" | sed -n '12p'`
printf "\t%s\n\n" "$GWINFO" | tee -a $LOG_FILE # last commit comment
# log tools versions
printf "UUT GW:\n%s\n\n" "$RESP" > $LOG_FOLDER/environment_info.txt;
RESP=`eb-mon dev/$FTRN_TTY -e;`
printf "Etherbone:\n%s\n\n" "$RESP" >> $LOG_FOLDER/environment_info.txt;
RESP=`saft-ctl dummy -i;`
printf "Saflib:\n%s\n\n" "$RESP" >> $LOG_FOLDER/environment_info.txt;
#TESTS
#------------------------------------------------------------------------------
# WR link check
echo $TEST_DELIM2
printf "WR link check : " | tee -a $LOG_FILE
RESP=`$PTS/wr/wr_check_link.sh pex $FTRN_TTY`
STATUS=$?
printf "%s\n" "$RESP" > $LOG_FOLDER/link_check.txt
if [[ $STATUS == 0 ]]; then
printf "OK\n" | tee -a $LOG_FILE
else
printf "Failed ($STATUS)\n" | tee -a $LOG_FILE
#exit
fi
#------------------------------------------------------------------------------
echo $TEST_DELIM2
printf "LED test : " | tee -a $LOG_FILE
RESP=`$PTS/leds/leds_all.sh amc`
STATUS=$?
printf "%s\n" "$RESP" > $LOG_FOLDER/leds_test.txt
if [[ $STATUS == 0 ]]; then
printf "OK\n" | tee -a $LOG_FILE
else
printf "Failed ($STATUS)\n" | tee -a $LOG_FILE
#exit
fi
#------------------------------------------------------------------------------
echo $TEST_DELIM2
printf "MMC console test : " | tee -a $LOG_FILE
RESP=`$PTS/mmc_tty/mmc_console.sh $PTS`
STATUS=$?
printf "%s\n" "$RESP" > $LOG_FOLDER/mmc_console_test.txt
if [[ $STATUS == 0 ]]; then
printf "OK\n" | tee -a $LOG_FILE
else
printf "Failed ($STATUS)\n" | tee -a $LOG_FILE
#exit
fi
#------------------------------------------------------------------------------
echo $TEST_DELIM2
printf "MCH console test : " | tee -a $LOG_FILE
RESP=`$PTS/mch/mch_console.sh $PTS`
STATUS=$?
printf "%s\n" "$RESP" > $LOG_FOLDER/mch_console_test.txt
if [[ $STATUS == 0 ]]; then
printf "OK\n" | tee -a $LOG_FILE
else
printf "Failed ($STATUS)\n" | tee -a $LOG_FILE
#exit
fi
#------------------------------------------------------------------------------
echo $TEST_DELIM2
printf "MCH ipmitool test : " | tee -a $LOG_FILE
RESP=`$PTS/mch/mch_ipmitool.sh "10.68.5.141"`;
STATUS=$?
printf "%s\n" "$RESP" > $LOG_FOLDER/mch_ipmitool_test.txt
if [[ $STATUS == 0 ]]; then
printf "OK\n" | tee -a $LOG_FILE
else
printf "Failed ($STATUS)\n" | tee -a $LOG_FILE
#exit
fi
echo $TEST_DELIM1
echo "Done"
#!/bin/bash
# $1 amc wbm
# $2 amc name
WBMDEV=$1
SAFLIBNAME=$2
echo "###################################################################" | tee resp.txt
echo "Starting Saftlib with $WBMDEV" | tee -a resp.txt
saftd $SAFLIBNAME:dev/$WBMDEV
echo "-------------------------------------------------------------------" | tee -a resp.txt
echo "Checking Saflib process" | tee -a resp.txt
echo "" | tee -a resp.txt
CHECK=`ps aux | grep saftd | grep $SAFLIBNAME`
echo "$CHECK" | tee -a resp.txt
echo " " | tee -a resp.txt
if [[ -n $CHECK ]]; then
echo "Saftlib daemon running" | tee -a resp.txt
else
echo "Saftlib daemon not started." | tee -a resp.txt
echo "PTS_STATUS: Failed (1)" | tee -a resp.txt
exit
fi
# log tools versions
RESP=`saft-ctl $SAFLIBNAME -i;`
printf "Saflib version:\n%s\n\n" "$RESP" | tee -a resp.txt
echo "-------------------------------------------------------------------" | tee -a resp.txt
echo "Reading IO table" | tee -a resp.txt
CHECK=`saft-io-ctl $SAFLIBNAME -i`
echo "$CHECK" | tee -a resp.txt
echo "" | tee -a resp.txt
if [[ -n $CHECK ]]; then
echo "Saftlib can access FTRN" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit
else
echo "Could not read IO info table from FTRN." | tee -a resp.txt
echo "PTS_STATUS: Failed (2)" | tee -a resp.txt
exit
fi
#cmd; test name ; folder ; testfile ; param1 ; param2 ; param3
#;FRU IPMI test
x;Removing kernel modules (just in case);pcie-wb;ftrninsmod;PTS;r
x;FTRN insertion;mmc_crate;mmc_fru_test;PTS
x;MCH console test;mch;mch_console;PTS
x;FRU IPMI test;mch;mch_ipmitool;10.68.5.141
x;Check MMC serial console;mmc_tty;mmc_console;PTS
x;Check MMC LEDS;mmc_tty;mmc_console_leds;PTS
#;FTRN tests
x;Inserting kernel modules;pcie-wb;ftrninsmod;PTS;0
x;Read MAC and UID from temp sensor;uid_mac;read_uid_mac;PTS
x;Checking WR link SYNC and TRACKING;wr;wr_check_link;pex;wbm0
x;Reads Writes via Host bus and USB;host_bus;pcie_usb_rw;PTS;wbm0;4060000
x;Starting Saftlib;saftlib;saftlib_start;wbm0;amc
x;Blinking all FPGA LEDs;leds;leds_all;amc
x;IO MTCA.4 PORT 17-20 Triggers;io;iodirterm_amc_m4_mlvds_ext;amc
x;IO MTCA.4 TCLK A-D;io;iodirterm_amc_m4_clk;amc
x;IO Libera triggers;io;iodirterm_amc_libera_ext;amc
x;IO MTCA.4 PORT 12-15;io;io_port_12_15;amc
x;IO front panel LEMO;io;iodirterm_lemo_5;amc
x;Front panel LEMO IO5 clock input;io_clk_input;io_clk_input;amc
x;Removing kernel modules (just in case);pcie-wb;ftrninsmod;PTS;r
#!/bin/bash
#export PATH=$PATH:/home/$(whoami)/intelFPGA/17.1/qprogrammer/bin:/home/ftrn/intelFPGA/17.1/qprogrammer/linux64/
source /opt/Xilinx/14.7/LabTools/settings64.sh
#!/bin/bash
if [ -z $1 ]; then
echo "arg1 : valid path to PTS folder"
exit 64
fi
PTS_PATH=$1
echo "################################################################################" | tee resp.txt
echo "Reading UID" | tee -a resp.txt
FTRN_TTY=`$PTS_PATH/utils/find_ftrn_ttyUSB.sh`
echo "Found FTRN USB device : $FTRN_TTY" | tee -a resp.txt
TS_UID=`eb-mon "dev/$FTRN_TTY" -w0 -b0 -f0x28`
if [[ ${#TS_UID} -eq 18 ]]; then
echo "UID:$TS_UID" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
else
echo "PTS_STATUS: Could not read UID" | tee -a resp.txt
exit 64 # error
fi
#!/bin/bash
if [ -z $1 ]; then
echo "arg1 : valid path to PTS folder"
exit 64
fi
PTS_PATH=$1
echo "################################################################################" | tee resp.txt
echo "Reading UID" | tee -a resp.txt
FTRN_TTY=`$PTS_PATH/utils/find_ftrn_ttyUSB.sh`
echo "Found FTRN USB device : $FTRN_TTY" | tee -a resp.txt
EBMON=`eb-mon "dev/$FTRN_TTY" -v -w0 -b0 -f0x28`
echo "$EBMON" | tee -a resp.txt
TS_MAC=`echo "$EBMON" | grep "MAC:"`
TS_UID=`echo "$EBMON" | grep "ID:"`
if [[ -n $TS_MAC ]] && [[ -n $TS_UID ]]; then
echo "$TS_UID" | tee -a resp.txt
echo "$TS_MAC" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
else
echo "PTS_STATUS: Could not read UID or MAC" | tee -a resp.txt
exit 64 # error
fi
#!/bin/bash
# $1 - path to flash tool folder and hex file
if [[ $1 == 'h' ]]
then
echo "$1 - path to flash tool folder and hex file"
exit 113 # just showing help
fi
if [[ -n $1 ]];then
USB_CORE_DIR=$1
fi
CUR_DIR="$(pwd)"
echo "CUR_DIR : $CUR_DIR"
cd $USB_CORE_DIR
echo "################################################################################" | tee resp.txt
echo "Flashing USB Cypress microcontroller" | tee -a resp.txt
echo "Detecting Cypress CY7C68013 EZ-USB FX2 device on the USB bus" | tee -a resp.txt
lsusb
RESP_CYP=`lsusb | grep "CY7C68013 EZ-USB FX2"`
RESP_OMK=`lsusb | grep "OpenMoko"`
if [[ -n $RESP_CYP ]] || [[ -n $RESP_OMK ]]; then
printf "Detected Cypress device : %s\n\n" "$RESP" | tee -a resp.txt
else
printf "Cypress device not detected on the USB bus!\n" | -a tee resp.txt
exit 64
fi
echo "Erasing Cypress flash" | tee -a resp.txt
./flash-fx2lp.sh -E
sleep 3
echo "Loading hex to Cypress flash" | tee -a resp.txt
./flash-fx2lp.sh
sleep 3
echo "Done loading Cypress flash" | tee -a resp.txt
cd $CUR_DIR
read -p "Power cycle the board for at least 10 sec. Then press ENTER" | tee -a resp.txt
echo "Checking if OpenMoko visible on usb bus" | tee -a resp.txt
RESP=`lsusb | grep "OpenMoko"`
if [[ -n $RESP ]]; then
printf "Detected OpenMoko device : %s\n\n" "$RESP" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
else
printf "PTS_STATUS: Failed. OpenMoko device not detected on the USB bus. Stopping.\n" | tee -a resp.txt
exit 65
fi
#!/bin/bash
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)";
[[ -z "$ID_SERIAL" ]] && continue
RESP=`echo "/dev/$devname - $ID_SERIAL" | grep FTDI;`
if [ -n "$RESP" ]
then
RESP=`echo $RESP | grep ttyUSB;`
if [ -n "$RESP" ]
then
echo "$devname"
fi
fi
)
done
#!/bin/bash
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)";
[[ -z "$ID_SERIAL" ]] && continue
RESP=`echo "/dev/$devname - $ID_SERIAL" | grep Helmholtzzentrum;`
if [ -n "$RESP" ]
then
RESP=`echo $RESP | grep ttyUSB;`
if [ -n "$RESP" ]
then
echo "$devname"
fi
fi
)
done
#!/bin/bash
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)";
[[ -z "$ID_SERIAL" ]] && continue
RESP=`echo "/dev/$devname - $ID_SERIAL" | grep FTDI;`
if [ -n "$RESP" ]
then
RESP=`echo $RESP | grep ttyUSB;`
if [ -n "$RESP" ]
then
echo "$devname"
fi
fi
)
done
#!/bin/bash
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)";
[[ -z "$ID_SERIAL" ]] && continue
RESP=`echo "/dev/$devname - $ID_SERIAL" | grep 2051_0b03`
if [ -n "$RESP" ]
then
RESP=`echo $RESP | grep ttyACM;`
if [ -n "$RESP" ]
then
echo "$devname"
fi
fi
)
done
#!/bin/bash
TEXT=""
while true;
do
# clear screen
printf "\e[2J\e[f"
echo "$TEXT"
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)"
[[ -z "$ID_SERIAL" ]] && continue
RESP=`echo "/dev/$devname - $ID_SERIAL" | grep "Helmholtzzentrum_USB"`
#echo "$RESP"
if [ -n "$RESP" ]
then
#echo "$devname : FTRN USB"
TEXT="$devname : FTRN USB"
fi
)
done
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)"
[[ -z "$ID_SERIAL" ]] && continue
RESP=`echo "/dev/$devname - $ID_SERIAL"`
#echo "$RESP"
RESP=`echo "$RESP" | grep FT230X`
if [ -n "$RESP" ]
then
#echo "$devname : MMC serial console"
TEXT+="$devname : MMC serial console"
fi
)
done
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)"
[[ -z "$ID_SERIAL" ]] && continue
RESP=`echo "/dev/$devname - $ID_SERIAL"`
#echo "$RESP"
RESP=`echo "$RESP" | grep "2051_0b03"`
if [ -n "$RESP" ]
then
#echo "$devname : NAT MCH serial console"
TEXT+="$devname : NAT MCH serial console"
fi
)
done
#printf "FTRN PCI device on the PCI bus:\n%s\n" "`lspci | grep CERN`"
#printf "%s\n" "`lspci | grep CERN`"
RESP=`lspci | grep CERN`
TEXT+="$RESP"
RESP=`ls -l /dev | grep wbm`
if [[ -n $RESP ]];then
#printf "%s : FTRN PCI device handle\n" "`ls -l /dev | grep wbm`"
TEXT+="$RESP"
fi
#printf "Saftlib handle:\n"
#ps aux | grep "saftd:"
TEXT+="`ps aux | grep "saftd:`"
#sleep 1
done
\ No newline at end of file
#!/bin/bash
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
(
syspath="${sysdevpath%/dev}"
devname="$(udevadm info -q name -p $syspath)"
[[ "$devname" == "bus/"* ]] && continue
eval "$(udevadm info -q property --export -p $syspath)"
[[ -z "$ID_SERIAL" ]] && continue
echo "/dev/$devname - $ID_SERIAL" | grep ttyUSB
)
done
#!/bin/bash
# $1 - Satlib name of WR master
# $2 - WR slave (UUT)
#ps aux | grep saftd
echo "################################################################################" | tee resp.txt
echo "WR Link Status check" | tee -a resp.txt
#echo "Check WR master"
#eb-mon dev/$1 -m
echo "Turning off WR link on master" | tee -a resp.txt
# checking that WR master is accessible via Saftlib
#TMP=`saft-io-ctl $1 -i | grep LED1_BASE_R`
#if [[ ${#TMP} -eq 0 ]];then
# echo "WR master not accessible via Saftlib" | tee -a resp.txt
# echo "PTS_STATUS: Failed"
# exit 100 # prerequisite for test not available
#fi
# turn off WR link on master to lose sync on slave
#saft-io-ctl $1 -n LED1_BASE_R -d 1
echo "Unplug WR fiber. Press ENTER"
read -s -n 1
TMP=`simple-display dev/$2 -s "WRM LINK OFF" -d 2;`
sleep 0.5
echo "Checking WR link on UUT" | tee -a resp.txt
eb-mon dev/$2 -l
sleep 1
#printf "\nTurning On WR link on master\n" | tee -a resp.txt
#saft-io-ctl $1 -n LED1_BASE_R -d 0
echo "Plug WR fiber. Press ENTER"
read -s -n 1
LINK_UP_TIME=$SECONDS
TMP=`simple-display dev/$2 -s "WRM LINK ON" -d 2;`
WRTIME=`eb-mon dev/$2 -d`
LINK=`eb-mon dev/$2 -l`
STATUS=`eb-mon dev/$2 -s`
printf "%s : WR link state: %s %s\n\n" "$WRTIME" "$LINK" "$STATUS" | tee -a resp.txt
printf "Checking WR Link Status on UUT\n" | tee -a resp.txt
while true; do
WRTIME=`eb-mon dev/$2 -d`
LINK=`eb-mon dev/$2 -l`
STATUS=`eb-mon dev/$2 -s`
printf "\r\e[2K%s : WR link state: %s %s" "$WRTIME" "$LINK" "$STATUS" | tee -a resp.txt
TMP=`simple-display dev/$2 -s "$LINK $STATUS" -d 2;`
TIME_TO_SYNC=$(( SECONDS - LINK_UP_TIME ))
if [[ "$STATUS" = "TRACKING" ]] ; then
printf "WR in TRACKING mode after %d sec\n\n" "$TIME_TO_SYNC" | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
elif [[ $TIME_TO_SYNC -gt 60 ]] ; then
printf "\nTIMEOUT - WR not in TRACKING mode after %d sec\n\n" "$TIME_TO_SYNC" | tee -a resp.txt
echo "PTS_STATUS: Failed." | tee -a resp.txt
exit 64
fi
sleep 1
done
#!/bin/bash
# arguments
# $1 - wishbone master name (without dev/)
# $2 - MAC address to be written to WR EPROM (AA:BB:CC:DD:EE:FF)
echo "################################################################################" | tee resp.txt
WRPC_SW_PATH=/home/ftrn/Desktop/centos/bp_doomsday/ip_cores/wrpc-sw/tools/
echo "MAC written to EPROM: $2" | tee -a resp.txt
echo "Configure WR EPROM" | tee -a resp.txt
$WRPC_SW_PATH/eb-w1-write dev/$1 -i 0 0 320 < $WRPC_SW_PATH/sdb-wrpc.bin
sleep 1
echo "Check current MAC" | tee -a resp.txt
eb-mon dev/$1 -m
echo "Writing new MAC" | tee -a resp.txt
tmux new-session -s eb -d
sleep 1
tmux send-keys -t eb "eb-console dev/$1" C-m
sleep 1
tmux send-keys -t eb "mac setp $2" C-m
sleep 3
tmux send-keys -t eb "^C" C-m
sleep 1
tmux send-keys -t eb "exit" C-m
sleep 1
#tmux attach-session -t eb
#sleep 1
#tmux kill-session -t eb
echo "Check current MAC in RAM" | tee -a resp.txt
eb-mon dev/$1 -m
echo "Resetting FTRN and re-reading MAC from EEPROM" | tee -a resp.txt
eb-reset dev/$1
echo "Checking new MAC read from EEPROM" | tee -a resp.txt
STRIPMAC=`echo $2 | tr -d :`
printf "MAC WRITTEN\t: %s\n" "$STRIPMAC" | tee -a resp.txt
NEWMAC=`eb-mon dev/$1 -m`
printf "MAC READ\t: %s\n" "$NEWMAC" | tee -a resp.txt
if [[ $NEWMAC = $STRIPMAC ]] ; then
echo "MAC written to EEPROM and read back." | tee -a resp.txt
echo "PTS_STATUS: OK" | tee -a resp.txt
exit 0
else
echo "MAC was not written to EEPROM!" | tee -a resp.txt
echo "PTS_STATUS: Failed." | tee -a resp.txt
exit 64
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment