Probabilistic Bug Localization for Analog/Mixed-Signal Circuits using Probabilistic Graphical Models
Sangho Youn1 and Chenjie Gu2
1Seoul National University, South Korea 2Intel Strategic CAD Labs, Hillsboro, OR, USA
March 2014
1
Probabilistic Graphical Models Sangho Youn 1 and Chenjie Gu 2 1 Seoul - - PowerPoint PPT Presentation
1 Probabilistic Bug Localization for Analog/Mixed-Signal Circuits using Probabilistic Graphical Models Sangho Youn 1 and Chenjie Gu 2 1 Seoul National University, South Korea 2 Intel Strategic CAD Labs, Hillsboro, OR, USA March 2014 2 Outline
1Seoul National University, South Korea 2Intel Strategic CAD Labs, Hillsboro, OR, USA
1
2
3 http://www.eeweb.com/rtz/trial-error
TX RX Channel IN OUT
Closed eye, Failure! Which block caused this failure ?
4
TX RX Channel IN
A B
OUT
θ1 θ2 θ3
system’s parameter θ
and its associated sub-block are reported as failure root-causes
according to P(θ=θref|Dob) 5
θ3 Ppost(θ3|Dob) Ppost(θ1|Dob) θ1 Ppost(θ2|Dob) θ2 θ3 Ppost(θ3|Dob) θ 3,ref Ppost(θ1|Dob) θ1 θ 1,ref Ppost(θ2|Dob) θ2 θ 2,ref
too low!
IN IN A A B B OUT OUT θ1 θ1 θ2 θ2 θ3 θ3 IN A A B B OUT θ1 θ1 θ2 θ2 θ3 θ3
Ppost(θ2|Dob) θ2 θ 2,ref
6
too low!
IN A A B B OUT θ1 θ1 θ2 θ2 θ3 θ3
7
8
9
TX RX Channel IN B C OUT
1.
2.
Gaussian BN Multinomial BN P(Z|X,Y)
10
P(yn|xn,xn-1,yn-1,yn-2)
11 𝐼 𝑡 = 𝑛 𝐷𝑞 (𝑡 + 1 𝑆𝑡𝐷𝑡) (𝑡 + 1 + 𝑛𝑆𝑡 2 𝑆𝑡𝐷𝑡 )(𝑡 + 1 𝑆𝐸𝐷𝑞)
𝐼 𝑨 = 𝐿 𝑐0 + 𝑐1𝑨−1 1 + 𝑏1 + 𝑏2𝑨−1 𝑧𝑜 = 𝑐0𝑦𝑜 + 𝑐1𝑦𝑜−1 + 𝑏1𝑧𝑜−1 + 𝑏2𝑧𝑜−2
Discrete-time GBN 𝝂 = 𝒄𝟏𝒚𝒐 + 𝒄𝟐𝒚𝒐−𝟐 + 𝒃𝟐𝒛𝒐−𝟐 + 𝒃𝟑𝒛𝒐−𝟑
yn
Time (n) Time (n) Voltage Voltage
P(y[n]|x[n]=6,z[n-1]=-1,z[n-2]=-1) P(y[n]|x[n]=5,z[n-1]=1,z[n-2]=-1) P(y[n]|x[n]=3,z[n-1]=-1,z[n-2]=-1)
x[n]=input y[n]=slicer’s input z[n]=output 12
z-1 z-1 x x z z y y
x[n] x[n] z[n] z[n] z[n-2] z[n-2] γ γ z[n-1] z[n-1]
y[n] y[n] x[n] x[n] x[n-1] x[n-1] x[n-2] x[n-2] Slicer threshold Slicer threshold
Quantization levels Quantization levels Time (n) Time (n)
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8
Voltage Voltage
z[n] z[n]
13
14
Ppost(θ2|Dob) θ2 θ 2,ref
distribution of each variable is known and is easy to sample from
1.
Start with an initial guess X0=(B1,0, B2,0, …, θ3,0)
2.
Take a sample B1,1 from P(B1| B2,0, B3,0, …, θ3,0) and update B1
3.
Take samples for B2 to B3 and update them
4.
Take a sample θ1,1 from P(θ1| B1,0, …, θ2,0, θ3,0) and update θ1
5.
Take samples for C1 to C3 and update them
6.
Take samples θ2 to θ3 and update them
7.
Iterate 2~6 step N times
8.
Estimate Ppost(θ | Dob) ~ Histogram(Samples)
15
(B1,1, B2,1, …, C1,1, C2,1, …, θ3,1) (B1,2, B2,2, …, C1,2, C2,2, …, θ3,2) (B1,N, B2,N, …, C1,N, C2,N, …, θ3,N)
…
IN1 B1 C1
OUT1
IN2 B2 C2
OUT2
IN3 B3 C3
OUT3 θ1 θ1 θ2 θ2 θ3 θ3
IN1 B1,0 C1,0
OUT1
IN2 B2,0 C2,0
OUT2
IN3 B3,0 C3,0
OUT3 θ1,0 θ2,0 θ3,0
IN1 B1,1 C1,0
OUT1
IN2 B2,0 C2,0
OUT2
IN3 B3,0 C3,0
OUT3 θ1,0 θ2,0 θ3,0
IN1 B1,1 C1,0
OUT1
IN2 B2,1 C2,0
OUT2
IN3 B3,0 C3,0
OUT3 θ1,0 θ2,0 θ3,0
IN1 B1,1 C1,0
OUT1
IN2 B2,1 C2,0
OUT2
IN3 B3,1 C3,0
OUT3 θ1,0 θ2,0 θ3,0
IN1 B1,1 C1,0
OUT1
IN2 B2,1 C2,0
OUT2
IN3 B3,1 C3,0
OUT3 θ1,1 θ2,0 θ3,0
IN1 B1,1 C1,1
OUT1
IN2 B2,1 C2,1
OUT2
IN3 B3,1 C3,1
OUT3 θ1,1 θ2,1 θ3,1
16 Spec-range
θ2
Now, the bug can be detected!
controllable knob
P(θ2|Dob1, Dob2)
Dob1=(IN1,OUT1) Dob2=(IN2,OUT2)
17
18
FR408 GBX Reference Backplane Continuous Time Linear Equalizer
S-parameter channel model is from http://www.t11.org/ftp/t11/models/index.html
TX FFE TX EQ
Output
Channel Channel Output CTLE RX EQ
Output
DFE/Slicer Output Input
parameter locations
19
Zero map of TX FFE Pole/Zero map of channel Pole/Zero map of CTLE
True pole/zero location (x / o) Estimated posterior distribution of pole/zero (x / o)
TX FFE TX EQ
Output
Channel Channel Output CTLE RX EQ
Output
Input
20
Frequency response of lossy channel Frequency response of desired channel
TX FFE TX EQ
Output
Channel Channel Output CTLE RX EQ
Output
DFE/Slicer Output Input
θ3 Ppost(Vgain1|Dob) θ 3,ref Ppost(θ1|Dob) θ1 θ 1,ref Ppost(θ2|Dob) θ2 θ 2,ref
21
Ranking
A11 B11 C11 D11 A12 B12 C12 D12 A21 B21 C21 D21 A22 B22 C22 D22 Vgain2 OUT12 OUT11 θCTLE2 OUT22 OUT21 θCH θCH Vgain1 γ-table θCTLE1 A11 B11 C11 D11 A12 B12 C12 D12 A21 B21 C21 D21 A22 B22 C22 D22 Vgain2 OUT12 OUT11 θCTLE2 OUT22 OUT21 θCH θCH Vgain1 γ-table θCTLE1
Problematic Parameter
TX FFE TX EQ
Output
Channel Channel Output CTLE RX EQ
Output
DFE/Slicer Output Input
controllability to CTLE’s zero location
Estimated parameter posterior
real(z) real(p1)
Desired Parameter Value (Narrow bar) Desired pole(x)/zero(o) locations Estimated posterior distribution of pole/zero (x / o)
22
23 Bug Diagnosis: Does Posterior cover a desired spec-range?
Pposterior (θ | Dob)
IN2 A2 B2
C2
IN3 A3 B3
C3
A100 B100
C100 IN100 OUT2 OUT3 OUT100
IN1 A1 B1
C1 OUT1 γ-table θFFE θCH Vgain