-- SCANSTA112 using B0 for TAP signals
--------------------------------------------------------------------------
-- Copyright National Semiconductor Corporation 2002
--
-- STA112 7-PORT ScanBridge
--
-- National Semiconductor Customer Service Center
-- N. America (800) 272-9959
-- Europe Germany p49 (0) 69 9508 6208
--------------------------------------------------------------------------
-- Rev 01 Removed the use of the reserved word CONTROL.
-- FROM:
-- "CONTROL[8] (CNTRLSEL) ," &
-- TO:
-- "CONTROL_REG[8] (CONTROLSEL) ," &
-- Rev 0 (intitial Release February 6, 2003)
--
--------------------------------------------------------------------------
entity scansta112 is
generic (PHYSICAL_PIN_MAP : string := "UNDEFINED");
port (VCC: linkage bit_vector(9 downto 0);
GND: linkage bit_vector(9 downto 0);
A0_01: linkage bit;
A0_B: linkage bit_vector(1 downto 0);
A1_01: linkage bit;
A1_B: linkage bit_vector(1 downto 0);
ADD_MASK: in bit;
LSP_SEL: in bit_vector(6 downto 0);
MPSel_B1_B0: in bit;
OE: in bit;
RESET: linkage bit;
S: in bit_vector(7 downto 0);
SB_S: in bit;
TCK: in bit; -- ("TCKB0" selected by MPsel = 0)
TDI: in bit;
TDO: out bit;
TMS: in bit;
TRST: in bit;
TRIST: linkage bit;
TCKB1: linkage bit; -- (As LSP0 in this BSDL - - MPsel = 0)
TDIB1: linkage bit;
TDOB1: linkage bit;
TMSB1: linkage bit;
TRSTB1: linkage bit;
TRISTB1: linkage bit;
TCKL: linkage bit_vector(6 downto 1); -- Local ports
TDIL: linkage bit_vector(6 downto 1);
TDOL: linkage bit_vector(6 downto 1);
TMSL: linkage bit_vector(6 downto 1);
TRSTL: linkage bit_vector(6 downto 1);
TRISTL: linkage bit_vector(3 downto 1);
TLR_TRST6: in bit;
TLR_TRST: in bit;
TRANS_EN: in bit;
Y0_01: linkage bit;
Y0_B: linkage bit_vector(1 downto 0);
Y1_01: linkage bit;
Y1_B: linkage bit_vector(1 downto 0)
);
use STD_1149_1_1990.all;
attribute PIN_MAP of scansta112 : entity is PHYSICAL_PIN_MAP;
constant TQFP_PACKAGE:PIN_MAP_STRING:=
" VCC: (93,83,73,63,53,43,33,23,13,3),"&
" GND: (98,88,78,68,58,48,38,28,18,8),"&
" A0_01: 66 ,"&
" A0_B: (41,29) ,"&
" A1_01: 64 ,"&
" A1_B: (50,34) ,"&
" ADD_MASK: 11 ,"&
" LSP_SEL: (22,21,20,19,17,16,15) ,"&
" MPSel_B1_B0: 24 ,"&
" OE: 14 ,"&
" RESET: 54 ,"&
" S: (10,9,7,6,5,4,2,1) ,"&
" SB_S: 25 ,"&
" TRANS_EN: 12 ,"&
" TLR_TRST6: 51 ,"&
" TLR_TRST: 52 ,"&
" Y0_01: 65 ,"&
" Y0_B: (49,36) ,"&
" Y1_01: 62 ,"&
" Y1_B: (46,37) ,"&
" TCK: 30 ,"& -- TCK_B0
-- (MPsel = 0)
" TDI: 26 ,"&
" TDO: 27 ,"&
" TMS: 32 ,"&
" TRST: 31 ,"&
" TRIST: 35 ,"&
" TCKL: (99,92,86,80,71,59) ,"& -- local
" TDIL: (95,91,82,75,67,55) ,"&
" TDOL: (96,90,84,76,69,56) ,"&
" TMSL: (97,89,85,77,70,57) ,"&
" TRSTL: (100,94,87,79,72,60) ,"&
" TRISTL: (81,74,61) ,"&
" TCKB1: 42 ,"& -- (B1 as LSP0)
" TDIB1: 39 ,"&
" TDOB1: 40 ,"&
" TMSB1: 45 ,"&
" TRSTB1: 44 ,"&
" TRISTB1: 47 ";
constant BGA_PACKAGE:PIN_MAP_STRING:=
" VCC: (A4,A9,C9,F10,H8,K7,K2,H2,E1,C3),"&
" GND: (B3,A6,C8,D10,J10,J8,K5,H3,G1,B1),"&
" A0_01: F6 ,"&
" A0_B: (F5,G5) ,"&
" A1_01: E10 ,"&
" A1_B: (G6,H5) ,"&
" ADD_MASK: D1 ,"&
" LSP_SEL: (G3,H1,G2,F3,F2,E5,E2) ,"&
" MPSel_B1_B0: J1 ,"&
" OE: F1 ,"&
" RESET: F7 ,"&
" S: (C1,E3,D3,D4,C2,E4,B2,A1) ,"&
" SB_S: F4 ,"&
" TLR_TRST6: K10 ,"&
" TLR_TRST: J9 ,"&
" TRANS_EN: D2 ,"&
" Y0_01: F9 ,"&
" Y0_B: (K9,K4) ,"&
" Y1_01: G9 ,"&
" Y1_B: (L8,J4) ,"&
" TCK: J3 ,"& -- backplane
" TDI: K1 ,"&
" TDO: J2 ,"&
" TMS: H4 ,"&
" TRST: G4 ,"&
" TRIST: K3 ,"&
" TCKL: (A2,B5,A7,B8,C10,F8) ,"&
" TDIL: (B4,E6,C7,E7,E9,H9) ,"&
" TDOL: (A3,B6,C6,A10,E8,G7) ,"&
" TMSL: (C4,A5,A8,B9,D9,G8) ,"&
" TRSTL: (D5,C5,B7,D6,D8,H10) ,"&
" TRISTL: (D7,B10,G10) ,"&
" TCKB1: J6 ,"&
" TDIB1: K6 ,"&
" TDOB1: J5 ,"&
" TMSB1: J7 ,"&
" TRSTB1: H6 ,"&
" TRISTB1: H7 ";
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 (25.0e6, BOTH);
attribute TAP_SCAN_RESET of TRST : signal is true;
attribute INSTRUCTION_LENGTH of scansta112 : entity is 8;
attribute INSTRUCTION_OPCODE of scansta112 : entity is
-- -- NOTE
"BYPASS (11111111)," & -- FF
"EXTEST (00000000)," & -- 00
"SAMPLE (10000001)," & -- 81
"IDCODE (10101010)," & -- AA
"UNPARK (11100111)," & --1 -- E7
"PARKTLR (11000101)," & --1 -- C5
"PARKRTI (10000100)," & --1 -- 84
"PARKPAUSE (11000110)," & --1 -- C6
"GOTOWAIT (11000011)," & -- C3
"MODESEL0 (10001110)," & -- 8E
"MODESEL1 (10000010)," & -- 82
"MODESEL2 (10000011)," & -- 83
"MCGRSEL (00000011)," & -- 03
"SOFTRESET (10001000)," & --1 -- 88
"LFSRSEL (11001001)," & -- C9
"LFSRON (00001100)," & --1 -- 0C
"LFSROFF (10001101)," & --1 -- 8D
"CNTRSEL (11001110)," & -- CE -- 32 bit TCK counter register
"CNTRON (00001111)," & --1 -- 0F
"CNTROFF (10010000)," & --1 -- 90
"SGPIO0 (10111000)," & -- B8
"SGPIO1 (10111001)," & -- B9
"SGPIO2 (10111010)," & -- BA
"SGPIO3 (10111011)," & -- BB
"SGPIO4 (10111100)," & -- BC
"SGPIO5 (10111101)," & -- BD
"SGPIO6 (10111110)," & -- BE
"SGPIO7 (10111111)," & -- BF
"CONTROLSEL (10000111)," & -- 87
"LSPSEL (10000110)," & -- 86
"DEFAULTBP (00000111)," & -- 07 -- PRIVATE, see Note 1
"TRANSPREN (10101000)," & -- A8 -- PRIVATE, see Note 2
"TRANSPR0 (10100000)," & -- A0 -- PRIVATE, see Note 2
"TRANSPR1 (10100001)," & -- A1 -- PRIVATE, see Note 2
"TRANSPR2 (10100010)," & -- A2 -- PRIVATE, see Note 2
"TRANSPR3 (10100011)," & -- A3 -- PRIVATE, see Note 2
"TRANSPR4 (10100100)," & -- A4 -- PRIVATE, see Note 2
"TRANSPR5 (10100101)," & -- A5 -- PRIVATE, see Note 2
"TRANSPR6 (10100110)," & -- A6 -- PRIVATE, see Note 2
"TRANSPR7 (10100111)"; -- A7 -- PRIVATE, see Note 2
-- NOTE 1 = When instruction "DEFAULTBP" has been given, and
-- until a reset is given, the noted instructions will have:
-- attribute REGISTER_ACCESS entity is
-- "<noted instruction above>[1] (BYPASS) The purpose of
-- this is to allow shorter scan chains.
-- NOTE 2 = When instruction "TRANSPREN" or "TRANSPR#" has been
-- given, the contents of the MODESEL register or TRANSPR#
-- register will be used to select LSP(s) and insert them into
-- the scan chain transparently. Once the instruction is
-- active, the bridge is transparent, and thus no register is
-- selected. This state will remain until a hard reset is
-- given. It will not respond to 5 TMS high.
attribute INSTRUCTION_CAPTURE of scansta112 : entity is "XXXXXX01";
-- the xxxxxx is the least significant 6 bits
-- of the address switch setting, S5 to S0.
attribute INSTRUCTION_PRIVATE of scansta112 : entity is
"DEFAULTBP,"&
"TRANSPREN,"&
"TRANSPR0,"&
"TRANSPR1,"&
"TRANSPR2,"&
"TRANSPR3,"&
"TRANSPR4,"&
"TRANSPR5,"&
"TRANSPR6,"&
"TRANSPR7";
attribute IDCODE_REGISTER of scansta112 : entity is -- 0FC2501F
"0000" & -- Version
"1111110000100101" & -- Part number
"00000001111" & -- Manufacturer Identity
"1"; -- Manditory LSB
attribute REGISTER_ACCESS of scansta112 : entity is
"IDCODE (UNPARK,PARKTLR,PARKRTI,PARKPAUSE,GOTOWAIT," &
"SOFTRESET,LFSRON,LFSROFF,CNTRON,CNTROFF)," &
"MODE0[8] (MODESEL0) ," &
"MODE1[8] (MODESEL1) ," &
"MODE2[8] (MODESEL2) ," &
"MCGR[2] (MCGRSEL) ," &
"LFSR[16] (LFSRSEL) ," &
"CNTR[32] (CNTRSEL) ," & -- 32 bit TCK counter register
"SGPIO0[8] (SGPIO0) ," &
"SGPIO1[8] (SGPIO1) ," &
"SGPIO2[8] (SGPIO2) ," &
"SGPIO3[8] (SGPIO3) ," &
"SGPIO4[8] (SGPIO4) ," &
"SGPIO5[8] (SGPIO5) ," &
"SGPIO6[8] (SGPIO6) ," &
"SGPIO7[8] (SGPIO7) ," &
"CONTROL_REG[8] (CONTROLSEL) ," &
"LSPSEL[8] (LSPSEL) ";
attribute BOUNDARY_CELLS of scansta112 : entity is "BC_4";
attribute BOUNDARY_LENGTH of scansta112 : entity is 22;
attribute BOUNDARY_REGISTER of scansta112 : entity is
-- num cell port function safe [ccell disval rslt]
"0 (BC_4, S(0), input, X)," & -- closest to TDO
"1 (BC_4, S(1), input, X)," &
"2 (BC_4, S(2), input, X)," &
"3 (BC_4, S(3), input, X)," &
"4 (BC_4, S(4), input, X)," &
"5 (BC_4, S(5), input, X)," &
"6 (BC_4, S(6), input, X)," &
"7 (BC_4, S(7), input, X)," &
"8 (BC_4, OE, input, X)," &
"9 (BC_4, LSP_SEL(0), input, X)," &
"10 (BC_4, LSP_SEL(1), input, X)," &
"11 (BC_4, LSP_SEL(2), input, X)," &
"12 (BC_4, LSP_SEL(3), input, X)," &
"13 (BC_4, LSP_SEL(4), input, X)," &
"14 (BC_4, LSP_SEL(5), input, X)," &
"15 (BC_4, LSP_SEL(6), input, X)," &
"16 (BC_4, ADD_MASK, input, X)," &
"17 (BC_4, TRANS_EN, input, X)," &
"18 (BC_4, MPSel_B1_B0, input, X)," &
"19 (BC_4, SB_S, input, X)," &
"20 (BC_4, TLR_TRST, input, X)," &
"21 (BC_4, TLR_TRST6, input, X)"; -- closest to TDI
end scansta112;