--------------------------------------------------------------------------
-- Copyright National Semiconductor Corporation 2005
--
-- SCAN90004 4-channel LVDS Buffer/Repeater
--
-- National Semiconductor Customer Service Center
-- N. America (800) 272-9959
-- Europe Germany 49 (0) 69 9508 6208
--------------------------------------------------------------------------
--
-- Rev 2.0 18 Nov 2005
-- Modified AIO_Pin_Behavior attribute to include IN3p
-- Rev 1.0 Initial Release May 12, 2005
--
-- For the most recent version of this BSDL, check at this website:
-- http://www.national.com/appinfo/scan/0,3031,665,00.html
--
--------------------------------------------------------------------------
entity Scan90004 is
generic (PHYSICAL_PIN_MAP : string := "TQFP");
port (IN0p :in bit;
IN0n :in bit;
IN1p :in bit;
IN1n :in bit;
IN2p :in bit;
IN2n :in bit;
IN3p :in bit;
IN3n :in bit;
OUT0p :buffer bit;
OUT0n :buffer bit;
OUT1p :buffer bit;
OUT1n :buffer bit;
OUT2p :buffer bit;
OUT2n :buffer bit;
OUT3p :buffer bit;
OUT3n :buffer bit;
PWDNx :in bit;
PEM0 :in bit;
PEM1 :in bit;
VSS :linkage bit_vector(0 to 9);
VDD :linkage bit_vector(0 to 9);
NC :linkage bit_vector(0 to 3);
TDO :out bit;
TDI :in bit;
TMS :in bit;
TCK :in bit;
TRST :in bit);
use STD_1149_1_2001.all;
use STD_1149_6_2003.all;
attribute COMPONENT_CONFORMANCE of Scan90004 : entity is "STD_1149_1_2001";
attribute PIN_MAP of Scan90004 : entity is PHYSICAL_PIN_MAP;
-- constant LLP:PIN_MAP_STRING:=
--
-- "IN0p: 9,"&
-- "IN0n: 10,"&
-- "IN1p: 11,"&
-- "IN1n: 12,"&
-- "IN2p: 13,"&
-- "IN2n: 14,"&
-- "IN3p: 15,"&
-- "IN3n: 16,"&
-- "OUT0p: 32,"&
-- "OUT0n: 31,"&
-- "OUT1p: 30,"&
-- "OUT1n: 29,"&
-- "OUT2p: 28,"&
-- "OUT2n: 27,"&
-- "OUT3p: 26,"&
-- "OUT3n: 25,"&
-- "PWDNx: 8,"&
-- "PEM0: 1,"&
-- "PEM1: 2,"&
-- "VSS: (5,DAP),"&
-- "VDD:(3,4,6,7,20 ),"&
-- "TDO: 23,"&
-- "TDI:22, TMS:19,"&
-- "TCK:18, TRST:17";
constant TQFP:PIN_MAP_STRING:=
"IN0p: 13,"&
"IN0n: 14,"&
"IN1p: 15,"&
"IN1n: 16,"&
"IN2p: 19,"&
"IN2n: 20,"&
"IN3p: 21,"&
"IN3n: 22,"&
"OUT0p: 48,"&
"OUT0n: 47,"&
"OUT1p: 46,"&
"OUT1n: 45,"&
"OUT2p: 42,"&
"OUT2n: 41,"&
"OUT3p: 40,"&
"OUT3n: 39,"&
"PWDNx: 12,"&
"PEM0: 1,"&
"PEM1: 2,"&
"VSS:(8,9,17,18,23,24,37,38,43,44),"&
"VDD:(3,4,5,7,10,11,28,29,32,33),"&
"NC: (6,30,31, 36),"&
"TDO: 35,"&
"TDI:34, TMS:27,"&
"TCK:26, TRST:25";
attribute PORT_GROUPING of Scan90004 : entity is
"DIFFERENTIAL_VOLTAGE ((OUT3p, OUT3n),(OUT2p, OUT2n),(OUT1p, OUT1n),"&
"(OUT0p, OUT0n), (IN3p, IN3n), (IN2p, IN2n), (IN1p, IN1n), (IN0p, IN0n))";
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 Scan90004 : entity is 12;
attribute INSTRUCTION_OPCODE of Scan90004 : entity is
"EXTEST (000000010010),"& --012
"EXTEST_PULSE (000000010110),"& --016
"EXTEST_TRAIN (000000011110),"& --01E
"BYPASS (111111111111),"& --FFF
"IDCODE (000000000001),"& --001
"PRELOAD (000000010000),"& --010
"SAMPLE (000000010000),"& --010
"HIGHZ (000000100000),"& --020
"CLAMP (000001100000)"; --060
--"CTRL (000010000000),"& --080
--"SA_PRELOAD (000100000000),"& --100
--"SA (001100000000),"& --300
--"STATUS (010000000000)"; --400
attribute INSTRUCTION_CAPTURE of Scan90004 : entity is "XXXXXXXXXX01";
attribute IDCODE_REGISTER of Scan90004 : entity is
"0001" & -- version
"1101011000000001" & -- part number D601
"00000001111" & -- manufacturer's identity
"1"; -- required by 1149.1
--attribute SA_REGISTER of Scan90004 : entity is
-- "XXXXXXXXXXXXXX";
attribute REGISTER_ACCESS of Scan90004 : entity is
"BOUNDARY (EXTEST, EXTEST_TRAIN, EXTEST_PULSE, SAMPLE, PRELOAD)," &
"DEVICE_ID (IDCODE)," &
"BYPASS (CLAMP, HIGHZ, BYPASS)" ;
-- "SA_REGISTER (SA_PRELAOD, SA)"&
-- "PRE_REGISTER (PRE)";
attribute BOUNDARY_LENGTH of Scan90004 : entity is 21;
attribute BOUNDARY_REGISTER of Scan90004 : entity is
-- num cell port function safe [ccell disval rslt]
-- TDI
"20 (BC_4, IN0p ,OBSERVE_ONLY , X)," &
"19 (BC_4, IN0n ,OBSERVE_ONLY , X)," &
"18 (BC_4, IN1p ,OBSERVE_ONLY , X)," &
"17 (BC_4, IN1n ,OBSERVE_ONLY , X)," &
"16 (BC_4, IN2p ,OBSERVE_ONLY , X)," &
"15 (BC_4, IN2n ,OBSERVE_ONLY , X)," &
"14 (BC_4, IN3p ,OBSERVE_ONLY , X)," &
"13 (BC_4, IN3n ,OBSERVE_ONLY , X)," &
"12 (AC_SELU, * ,INTERNAL , 0)," &
"11 (AC_SELU, * ,INTERNAL , 0)," &
"10 (AC_SELU, * ,INTERNAL , 0)," &
"9 (AC_SELU, * ,INTERNAL , 0)," &
"8 (AC_1, OUT0p ,OUTPUT2 , X)," &
"7 (AC_1, OUT1p ,OUTPUT2 , X)," &
"6 (AC_1, OUT2P ,OUTPUT2 , X)," &
"5 (AC_1, OUT3P ,OUTPUT2 , X)," &
"4 (BC_1, * ,INTERNAL , X)," &
"3 (BC_1, * ,INTERNAL , X)," &
"2 (BC_4, PWDNx ,OBSERVE_ONLY , X)," &
"1 (BC_4, PEM0 ,OBSERVE_ONLY , X)," &
"0 (BC_4, PEM1 ,OBSERVE_ONLY , X) " ;
-- TDO
attribute DESIGN_WARNING of Scan90004 : entity is
"The Scan90004 has the following features ," &
" StuckAt"&
" .See comment at the end of the BSDL for register description."&
" "&
" Switching the LVDS outputs in and out of tri-state takes 2uS "&
" from the time the HIHGZ command is asserted or deasserted."&
" "&
" The Scan90004 is intended for point-to-point applications only"&
" Outputs will become active as soon as the State Machine leaves"&
" the TestLogicReset state"&
" ";
attribute AIO_COMPONENT_CONFORMANCE of Scan90004 : entity is
"STD_1149_6_2003";
attribute AIO_Pin_Behavior of Scan90004 : entity is
"IN3p, IN2p, IN1p, IN0p : LP_time=10.0e-9 HP_time=1.0e-6;"&
"OUT0p : AC_Select=12;"&
"OUT1p : AC_Select=11;"&
"OUT2p : AC_Select=10;"&
"OUT3p : AC_Select=9";
end Scan90004;
-- SA
--TDI
-- 15 Data Out0
-- 14 Ctrl Out0
-- 13 Data Out1
-- 12 Ctrl Out1
-- 11 Data Out2
-- 10 Ctrl Out2
-- 09 Data Out3
-- 08 Ctrl Out3
-- 07 Data LOSx
-- 06 Ctrl LOSx
-- 05 Data PWDNx
-- 04 Ctrl PWDNx
-- 03 Data PEM1
-- 02 Ctrl PEM1
-- 01 Data PEM0
-- 00 Ctrl PEM0
--TDO