Upload
phamdieu
View
230
Download
2
Embed Size (px)
Citation preview
3
www.intellitech.com
4
www.intellitech.com
6
www.intellitech.com
7
www.intellitech.com
8
www.intellitech.com
9
www.intellitech.com
11
setTDI u1.mbist-csr start setTDI u1.alg walk1 drscan runtest 10000 set result [getTDO status] If {$result != pass} puts "memorybist failed"
www.intellitech.com
12
www.intellitech.com
13
HDL
EMS
www.intellitech.com
14
www.intellitech.com
15
www.intellitech.com
16
•Changing temp • Std. FR4, multi-IC signals •Commodity LDOs, DC/DC • Tin Can Osc, System origin clocks •JTAG assisted Functional/BIST
•Stable temperature •50ohm ZT DUT card design, dedicated • Low noise Power, DC/DC converters • Perfect Low jitter, 50/50 duty clocks • BIST/Compression vectors, delay test
On-Chip test via IEEE 1149.1 - the lowest common denominator
www.intellitech.com
17
www.intellitech.com
18
IP Block
TDR
www.intellitech.com
19
www.intellitech.com
20
www.intellitech.com
21
www.intellitech.com
22
www.intellitech.com
23
www.intellitech.com
24
www.intellitech.com
25
www.intellitech.com
26
IP Block
TDR
www.intellitech.com
27
BIST
TAP
TDR Register
Logic block
IC
IC www.intellitech.com
28
P1 PRBS
TAP www.intellitech.com
29
IP BLOCK IC2
IC1
www.intellitech.com
30
HSIO Test IP
BLOCK
IC2
Far End
Loopback
www.intellitech.com
31
www.intellitech.com
32
www.intellitech.com
33
BSDL for Internal JTAG TDR registers - for BIST/PLLs/SERDES IP blocks MNEMONICS for JTAG registers - Easy to remember words Package files for on-chip Infrastructure IP blocks - self-contained definitions for IIP (Infrastructure IP) PDL Script files for device initialization and IIP access - operates on registers, packages, Mnemonics
www.intellitech.com
35
PCB Level
ObstacleLogicBIST
MemoryBIST
SystemReset
VoltageMonitor
SysReset
PCB Level
Obstacle
IC1
BOUNDARY REGISTER
TAP
INIT-DATA REGISTER
IR & Decode & Muxing
BIST Failure Data
For ATE
User Defined Chain(s)
DACADC0
1
PLL
0
1
On-chipReset via
TAP
PRBS
Protocol
Swing
CMMV
ECIDUnique ID
AC/DC
www.intellitech.com
37
New standard INIT_DATA & INIT_STATUS TDRs New instructions,
INIT_SETUP/INIT_SETUP_CLAMP/INIT_RUN -Use between PRELOAD and EXTEST - Turn off PLLs
-Setup I/Os (Vcm, Vswing, protocol…. )
INIT_SETUP/INIT_SETUP_CLAMP access INIT_DATA - Uses TAP, CE, power - INIT_DATA bits control the above INIT_RUN access INIT_Status register. Can clock TCK in RTI. - Pass/Fail, Done – other bits as needed
www.intellitech.com
39
www.intellitech.com
40
package SERDBIST is use STD_1149_1_2013.all; end SERDES; package body SERDBIST is use STD_1149_1_2013.all; attribute REGISTER_MNEMONICS of SERDBIST : package is "OnOff (ON (1), OFF (0));" attribute REGISTER_FIELDS of SERDES : package is "serdes_bist [4] ( "& "(Local_Loopback [1] IS (3) DEFAULT(OnOff(ON)) ), " & "(BER_en [1] IS (2) DEFAULT(OnOff(OFF)) ), " & "(GoDone [1] IS (1) DEFAULT(OnOff(OFF)) ), " & "(Pass [1] IS (0)) );" end SERDBIST;
www.intellitech.com
41
iPDLLevel 0 -version STD_1149_1_2013 iProcGroup SERDES iProc serdes_bist { Local BER } { # Commented section from BSDL for reference #"(Local_Loopback [1] IS (3) DEFAULT(OnOff(ON)) ), " & #"(BER_en [1] IS (2) DEFAULT(OnOff(OFF)) ), " & #"(GoDone [1] IS (1) DEFAULT(OnOff(OFF)) ), " & #"(Pass [1] IS (0)) );" iWrite Local_Loopback $Local iWrite BER_en $BER iWrite GODone ON iApply iRunLoop 100000 ;# use TCK cycles iRead GoDone 0 ;# 0 for DONE 1 for 'busy' iRead Pass 1 ;# 1 for pass 0 for fail iApply
www.intellitech.com
42
TypeC.BSDL TypeC.BSDL
U1 PCIe
U2 SRIO
U3 U4
iProc init_setup {} { iWrite IO1 PCIe iApply }
iProc init_setup {} { iWrite IO1 SRIO iApply }
IO1 IO1
U3.PDL U4.PDL
Board.PDL
iCall U3.init_setup iCall U4.init_setup
Board Test Engineer Developed via Software or from Templates from IC Vendor
Board Test Engineer Developed via Board Test Software, Automatically, assisted or manually
Why can’t I/O settings be delivered in BSDL?
I/O need to be Programmed at Board level
www.intellitech.com
43
Basic Register Fields INIT_DATA TDR
attribute REGISTER_FIELDS of INIT_Example : entity is "init_data ( "& "(Clock[5] IS (504 DOWNTO 500) ), "& "(Protocol[3] IS (302 DOWNTO 300) ), "& "(Voltage[2] IS ( 101 DOWNTO 100) ), "& "(Reserved [20] IS ( 19 DOWNTO 0) ) "& ");"
BSDL syntax for "INIT_DATA" and user defined TDRs BOUNDARY TDR
www.intellitech.com
44
MNEMONICS
attribute REGISTER_MNEMONICS of SERDES : package is " Protocol ( " & " OFF (000) <I/Os powered down>, "& " PCIe (001) <PCI Express>, "& " SATA (010) <SATA>, "& " SRIO (011) <Serial RapidIO>, "& " XAUI (100) <XAUI>, "& " Rsvd1 (101) <Undefined, do not use>"& )," & "Clockset ( " & " F125Mhz (00111), "& " F100Mhz (10101), "& " Illegal (00000) <Do not use!>)";
www.intellitech.com
45
Basic Register Fields with Mnemonics attribute REGISTER_FIELDS of INIT_Example : entity is "init_data ( "& "(Clock[5] IS (504 DOWNTO 500) Default(Clockset(100Mhz) ), "& "(Protocol[3] IS (302 DOWNTO 300) Default(Protocol (off) ), "& "(Voltage[2] IS ( 101 DOWNTO 100) RESETVAL(11) ), "& "(Reserved [20] IS ( 19 DOWNTO 0))"& ")" & "myTDR ( "& "(Addr[64] IS (163 DOWNTO 100) ), "& "(Data[64] IS (227 DOWNTO 164) ), "& "(WE[1] IS (228) RESETVAL(1) ), "& "(TempMON[7] IS (236 DOWNTO 229)) "& )";
www.intellitech.com
46
www.intellitech.com
47
Device PDL (Procedure Definition Language) - Board specific
Proc init_setup {} { iWrite Clock F125Mhz # use of mnemonics iWrite Voltage 0H01 # use of values iWrite Protocol PCIe iApply } Proc init_status {} { iRead Status(1) Pass # use of mnemonics iApply }
www.intellitech.com
48
Some PDL Commands iWrite <reg> <value> | mnemonic iRead <reg> <expected> | mnemonic iApply # perform DR scan RTI-RTI iPrefix <dotted path> # iPrefix bank0.serdes iReset # Test Logic Reset iEndState RTI | PDR # set end state iRunloop <TCK-Count> # Loop in RTI iCall <iproc name>
www.intellitech.com
49
attribute Register_Association of INIT_EXAMPLE : entity is -- Port ID 'VDD_IO1' is the power source for upper bank of I/O -- '1' = large package, '0' = small package. "upper_data_bus_En : PORT (Vdd_IO1), "& "IO_En : PORT (Vdd_IO1), "& "VSEL_bits(4) : PORT (VSEL_pin(4)), "& "VSEL_bits(3) : PORT (VSEL_pin(3)), "& "VSEL_bits(2) : PORT (VSEL_pin(2)), "& "VSEL_bits(1) : PORT (VSEL_pin(1)), "& "VSEL_bits(0) : PORT (VSEL_pin(0)) "; www.intellite
ch.com
50
Attribute REGISTER_ASSOCIATION of MyChip : entity is "mem1.MBIST_CTRL : sysclock (F125MHz_in), "& "mem2.MBIST_CTRL : sysclock (F125MHz_in) ";
www.intellitech.com
51
3 SERDES with init_data Registers Common PLL
www.intellitech.com
52
---------------------------------------------------------- -- Package file including single SERDES segment -- and a 3 SERDES plus clock segment. -- Copywrong of the XYZ corp. ---------------------------------------------------------- PACKAGE XYZ_IO IS USE Std_1149_1_2013.all; END XYZ_IO; PACKAGE BODY XYZ_IO IS USE Std_1149_1_2013.all; attribute REGISTER_MNEMONICS of XYZ_IO : package IS "SerDes_Protocol (off (000) <Powered down>, "& " PCIe (001) <PCIExpress>, "& " SATA (010) <SATA>, "& " SRIO (011) <Serial RapidIO>, "& " XAUI (101) <XAUI>, "& " Resvd1 (100) <Undefined behavior - Do Not Use>, "& " Resvd2 (11X) <Undefined behavior - Do Not Use>), "& "SerDes_TX_Outputs (off (00) <Powered down>, "& -- Output driver swing level " Full_Swing (01) <100% Swing>, "& " Swing_p75 (10) <75% Swing>, "& " Swing_p527 (11) <52.7% Swing -– Not legal if XAUI is protocol>), "&
www.intellitech.com
53
attribute REGISTER_FIELDS of XYZ_IO : package IS "Channel [5] ( "& "Protocol[3] (2, 0, 1) IS DEFAULT (SerDes_Protocol (PCIe)) "& " RESETVAL(SerDes_Protocol (off)), "& "TX_Swing [2] (3, 4) IS DEFAULT (SerDes_TX_Outputs (off)) "& "), "& END XYZ_IO; --------------------------------------------------------------------------------
www.intellitech.com
54
Register assembly – bits predefined defined – length calculated by BSDL reader
Use XYZ_IO.all; Use XYZ_PLL.all; -- stuff removed for brevity attribute REGISTER_ASSEMBLY of INIT_Example : entity is "init_data ( "& "( reserved[105] )" & "( USING XYZ_IO ), " & "( XYZ_IO.SerDes( 0) is Channel ), " & "( USING -), "& "( dummy[1] ), " & "( USING XYZ_IO ), " & "( Array SerDes(1 TO 2) is Channel), " & "( USING XYZ_PLL), " & "( P1 is Settings), " & ");" SERDES SERDES SERDES Rsrvd TDI TDO PLL
www.intellitech.com
55
www.intellitech.com
56
www.intellitech.com
57
www.intellitech.com
58
<type assignment>::= NOPI | NOPO | NOUPD | MON | PULSE0 | PULSE1 | SHARED <reset assignment>::= PORRESET | TRSTRESET | TAPRESET | CHRESET <domain assignment>::= <association type> <left paren> <association name> <right paren> <association type>::= DOMAIN | DOMAIN_EXTERNAL | SEGMENT <association name>::= <VHDL identifier>
www.intellitech.com
59
www.intellitech.com
60
Boundary-scan REGISTER_ASSEMBLY example. Continuing the segmented boundary-scan register example from B.8.14.2, the segments defined there could be assembled, with the segment exclusion cells on the one segment, as follows. attribute REGISTER_ASSEMBLY of Chip_2013 : entity is -- Register Assembly of Boundary-scan register "boundary ( "& -- TDI, starting in NE corner and going clockwise "(North_side IS north), "& "(NEast_side IS east1), "& "(SEast_incl IS SegSel DOMAIN(DDR1) CHReset), "& "(SEast_side IS east2), "& "(SEast_mux IS SegMux), "& "(South_side IS south), "& "(West_side IS west) ) "; www.intellite
ch.com
61
TSV/uBump
Reg_1500
SI SO WSC
Reg_1500
SI SO WSC
Reg_1500
SI SO WSC
3210
WSC:Shift_1500
Capture_1500Update_1500
Reset*TCK
SI
SO
Sel_WSP
Gating Gating Gating
Gate_WSPC UC U
C U
C UC U
C U0
1
open
core core core
“rea
dy_t
o_sc
an”
Start_1500 End_1500
C UC UB
CA
WSC
SI SOReg_1500S
Gating
DIE2
DIE1
DIE3 DIE4
corewww.intellite
ch.com
62
Core1 Core2
Core3 Core4
POD
# vendor supplied reg to temp conversion proc Reg2Temp { $regval $CorF } { … … vendor conversion code } iExport -begin # this proc returns a temperature and # high level warnings could be specified iProc init-setup-temp-check { } { iRead tempreg iApply set val [iGet tempreg] # convert reg value to temperature in Celsius set temp [Reg2Temp $val CEL] #if {temp > 70} { #puts "Temperature is excessive $temp" #} return temp }
www.intellitech.com
63
2.5V
INPUT ( Open0)
INPUT (Open1)
OUTPUT2
Bidir with Pull0
Bidir with Pull0
A
B
C
D
Control
Bidir with Pull0 Obstacle
INPUT ( PULL1)
POWER_POS1.8V www.intellitech.com
64
D
+
-
MODE=1
VDD
HSIO
GND
www.intellitech.com
65
BER XMIT
BER RCVR
www.intellitech.com
66
IC1
ABCD
POWER_POS
DC/DC Converter
3.3V
POWER_0
IC2LINKAGE_INLINKAGE_INLINKAGE_INLINKAGE_IN
VREF_INDC/DC
Converter
2.5V
VREF_OUT
INPUT
INPUT
BIDIRBIDIRBIDIRBIDIR www.intellite
ch.com
67
www.intellitech.com
68
www.intellitech.com