Student Manual Week 2
Student Manual Week 2
Student Manual
October 2003
DCTime Instrument
Rev0343
- confidential -
Objectives
Module 19 - 2
- confidential -
Measuring Time
Module 19 - 3
- confidential -
Edge Find
- confidential -
Standard Counter
Module 19 - 5
- confidential -
Time Stamper Basics
• When a signal is recognized by the DCTime
Instrument, a time value is recorded.
• Each event will be recorded as a time value
- confidential -
DCTime Clock
503¼ms 167¾ms
335½ms
Module 19 - 7
- confidential -
1 Stamper’s Samples
• Each Stamper has a memory depth of 512.
Event
Capture Memory
= Time Stamp
640.02ms
655.89ms
669.77ms
512
016.13ms
Samples
Clock has gone
through 1 cycle
Module 19 - 8
- confidential -
DCTime Capability
Module 19 - 9
- confidential -
DCTime Instrument
• The DC Time consists of two DC Time
instruments per DC board, each consisting of:
– one timer front end (TFE)
– two time Stampers (TS)
– two asynchronous trigger lines
– One high performance input for larger bandwidth
– one return output pin to the DIB for DIB triggers
DCTime
Module 19 - 10
- confidential -
DC Time Architecture
for
Pat DIB triggers
Gen
16b DAC
via
DIB Access
Thresh
Select
Ranging
XOR
From channel output
sense lines or 16b DAC
High Performance
Input 4:1
4 DGS lines
Enable/Event
Memory Stamper 1 Select
Each Stamper share
the Start logic but
Start Logic have their own
Trigger the Stampers
enable/holdoff logic
from the Pattern or
Enable/Event
from test elements. Memory Stamper 2
Select
Module 19 - 11
- confidential -
DC Time Instrument
All channels can send out a DIB Access
DIB trigger to:
DA 1,2 on DC30 XOR
High performance path for
wider Bandwidth DA 1,3 on DC75
DC90 NA
Trigger Line 1
50 ohm
Vref
Comp
High Z
Atten
Dual Time
Stampers
To Channels
Comp
DC Timer Stampers are free Vref
running clocks that cycle
between 0 and 671ms.
Both stampers share the same
Trigger and Start signal DCTime Front End Trigger Line 2
Module 19 - 12
- confidential -
DCTime Front End
Setting the
. voltage range Each threshold comparator can
programs the signal attenuator. be set to its own voltage value
This can be done by inputting a and when that voltage value is
max voltage value and an reached the threshold is tripped
impedance type. The software
then selects the best available Threshold 1
attenuator setting given those
values
Dual
Attenuator Time
VRange Select Stampers
Threshold 2
Module 19 - 13
- confidential -
Connections to the DCTime
• There are three basic ways to connect to the DCTime Unit.
– DCTime: (Most Commonly Used)
• Connection to the V/I’s (sense lines)
• The channel time-measurement relay is on the DUT side of the V/I
disconnect relay, and therefore the V/I does not need to be connected
to the DUT in order to use the DCTime Unit.
– DCTimeHP:
• Direct connection to the DCTime
• One connection per DCTime Unit
• Example: DCTime-2 on DC-30 is accessible on 10.b38
– DCTimeTrig: (DIB Access – Output Pin)
• The trigger output that goes through the DIB access channel.
• Cannot enable or start another instrument.
• Connect to the DIB through an XOR gate. This provides a pulse.
• Example: DCTime-2 on DC-30 is accessible on 10.b6
Module 19 - 14
- confidential -
Connections to the DCTime
• There are Additional connections to the DCTime Unit.
– Asynchronous Trigger Lines: (Advanced Topic)
• Connected to any of the V/I channels through the internal
trigger bus
– Pin: (Advanced Topic)
• Selected from the programmed pins, this controls the operation
of the DC Time and can enable the time stamp when a signal
should occur. An enable signal is used to selectively capture
events.
– Pattern: (Advanced Topic)
• controls by HSD patterns and microcode
Module 19 - 15
- confidential -
DCTime Inputs
DC30 Sense Channels DC75 Sense Channels
DCTime 0 1 1
DCTime 1 2 2
Module 19 - 16
- confidential -
DCTime Dual Stampers
503¼ms 167¾ms
335½ms
Module 19 - 17
- confidential -
DCTime Dual Stampers
Both DCTime stampers
use the same trigger
None Stamper1
Threshold1 slope
command
Pattern select Event
and start signal.
None
slope Mode Enable
Stamper1’s select select
Enable Pin Pattern Holdoff
Time/ SampleSize
Off count
Precount select
Trigger: Used to initiate a BeforeEach
capture. Threshold2 Interleave
• Can look at it as equivalent
to plugging in the stampers Stamper2
to “electricity” (but they still None slope
need to be turned “on”) Event
select
– Can be done via Test Pattern slope Mode Enable
Elements, VBT select select
Stamper2’s Enable None Holdoff
language, or pattern.
Pin Pattern
Start: Signal used to activate Time/ SampleSize
(turn “on”) the stampers ON count
• Input: OnTrigger Start Pin Off select
OFF
(automatically activated) Precount
• Slope: positive or negative Trigger BeforeEach
Module 19 - 18
- confidential -
DCTime Stampers
Stamper1
Event Each DCTime Stamper consists of:
Enable 1. Event: signal used to measure time (signal
Holdoff on which the stampers will be recording time)
SampleSize 2. Enable: controls when the individual stamper
is capable of stamping (“on/off”)
3. Hold-off: means of delaying when the stamper
Interleave
is stamping
Stamper2 4. SampleSize: number of time recordings the
Event stamper is requested to take
Enable
Holdoff
SampleSize
Module 19 - 19
- confidential -
DCTime Start
Start.Input = Pin
Start.Slope = Positive
Positive
Triggered Slope Threshold
Level
Start
Event
Stamp Events
Waiting for
Start Signal
Sample Size = 8
= Time Stamp
Module 19 - 20
- confidential -
DCTime Interleave On
• Interleave: used to properly align stamper1 and stamper2
– Stamper2 cannot stamp until stamper1 stamps first. Then stamper1 cannot stamp
again until stamper2 stamps. This continues “interleaving” the stampers.
– Settings: on/off
– Default is on
SampleSize of 5 each
Interleave On
SampleSize = 5
Stamper 1’s
Event
Stamper 2’s
Event
= Stamper 1’s Time Stamp = Stamper 2’s Time Stamp
- confidential -
DCTime Interleave Off
Interleave Off
SampleSize = 5
Stamper 1’s
Event
Stamper 2’s
Event
SampleSize of 5
- confidential -
Measurement Examples
Rev0343
- confidential -
Rise Time/Fall Time
• Stamper 1 stamps the start using threshold1
• Stamper 2 stamps the finish using threshold2
• Interleave is on
• To set up only need to program the following:
– Voltage Range
– Thresholds (method that takes two threshold values)
– Hysteresis (For slower or noisy signals)
– Start
– SampleSize
Rise Time
- confidential -
Pulse Width
• Stamper 1 stamps the start using threshold1
• Stamper 2 stamps the finish using threshold1
• Interleave is on
• To set up only need to program the following:
– Voltage Range
– Threshold
– Hysteresis (For slower or noisy signals)
– Slope (determines if measuring positive or negative pulse)
– Start
– SampleSize Pulse Width
- confidential -
Period Example
Period 1 Period 2
Module 19 - 26
- confidential -
Duty Cycle
• Duty Cycle = PulseWidth/Period
• Stamper 1 stamps the period using threshold1
• Stamper 2 stamps the second half of pulse using
threshold1
• Interleave is on
• To set up only need to program the following:
– Voltage Range
– Threshold
– Hysteresis (only if using small voltage values)
– Slope (determines if measuring positive or negative pulse)
– Start
– SampleSize
Module 19 - 27
- confidential -
Duty Cycle cont.
Module 19 - 28
- confidential -
Frequency
Module 19 - 29
- confidential -
Frequency cont.
Module 19 - 30
- confidential -
Frequency cont.
= Stamp = Holdoff
Module 19 - 31
- confidential -
Pin-to-Pin Delay Example
• Requires two DCTime instruments
• Only Stamper1 is used
• To set up only need to program the following:
– Voltage Range
– Threshold
– Hysteresis
– Slope
– Start
– SampleSize
• A positive result from CalculateResults means the 1st
set of stamps passed into the method came first. A
negative means the 2nd set came first.
Module 19 - 32
- confidential -
Pin-to-Pin Delay Example
– In VBT CalculateResults take a PinData variable allowing the user to
match up data on a pin-by-pin basis
– In TE CalculateResults returns a DSPWave
Module 19 - 33
- confidential -
Programming DCTime
Rev0343
- confidential -
Objectives
• The goal of this session is to introduce you to building DC
Time Test Procedures in order to develop custom test
procedures that are specifically suited for unique testing
needs.
Module 19 - 35
- confidential -
Introduction
The steps for creating a DC Time Test Procedure are very similar to
adding DCVI Test Procedures
Module 19 - 36
- confidential -
DC Time Test Elements
In order to add DC Time test elements to the Flow Chart Editor click on
the TE icon. Select >Elements by instrument and then select> DCTime.
¾ Click on the test element chooser to display a list of test elements
¾ Select DCTime test elements from the instruments list
¾ Add each element required to create a test
Module 19 - 37
- confidential -
DC Time Elements
The following test elements can be used to make
time measurements, using the DCTimer:
¾ DCTimeConnection - Connect DC Time to channel pins
Module 19 - 38
- confidential -
DC Time Connection
¾ First: Select the DCTime Connection element from the chooser and
add it to the Flow Chart Editor.
Click on
DCTimeConnection
element in the Flow
Chart Editor and
connect the pin(s).
Debug Display
Module 19 - 39
- confidential -
DC Time Measurement Setup
¾ Next: Select the DCTimeMeasurementSetup element from the chooser
and add it to the Flow Chart Editor.
Click on the
DCTimeMeasurement
Setup element in the
Flow Chart Editor and
setup the pin(s).
- confidential -
DC Time Capture
¾ Next: Select the DCTimeCapture element from the chooser and add it to
the Flow Chart Editor.
Click on
DCTimeCapture
element in the Flow
Chart Editor and setup
the DCTime Instrument
to capture.
- confidential -
DC Time Calculate Results
¾ Next: Select the DCTimeCalculateResults element from the chooser and
add it to the Flow Chart Editor.
Click on
DCTimeCalculateResults
element in the Flow
Chart Editor and setup the
DCTime Instrument to
capture.
Module 19 - 43
- confidential -
Limits
¾Next: Select a Limits element from the chooser and add it to the Flow Chart
Editor.
Click on the Limits
element in the Flow
Chart Editor and setup the
limits.
Module 19 - 44
- confidential -
DC Time Event Capture Setup
¾ The Event Capture Setup lets you do individual Stamper Programming
Select the element from the chooser and add it to the Flow Chart Editor.
Click on
DCTimeEventCapture
element in the Flow
Chart Editor and setup
the DCTime
Instrument to capture
events.
Module 19 - 45
- confidential -
Time Measurement
• The number of instruments and samples will vary based on the
type of measurement being made.
– Period
• Uses 1 threshold and 2 stampers of 1 DC Time instrument connected to a channel
– Pulse Width
• Uses 1 threshold and 2 stampers of 1 DC Time instrument connected to a channel
– Frequency
• Uses 1 threshold and 1 stamper (A) of 1 DC Time instrument connected to a
channel
– Duty Cycle
• Use 1 threshold and 1 stamper (A) of 1 DC Time instrument connected to a channel
- confidential -
Measurement Programming
Ordering Rules
Module 19 - 47
- confidential -
Debug Displays
Rev0343
- confidential -
Debug Display
• Use the DCTime Debug Display to debug test
programs with the Step functions.
Module 19 - 49
- confidential -
DC Time
Dib Access
Output
Time
Stampers
To
channels
Threshold
Values
To Trigger
Start control: Lines 1 and 2
Input
Slope
Module 19 - 50
- confidential -
Input Info
Mode:
Stamper: connects to
the time stamper
On Board Trigger:
connects to Trigger 1
and 2
DIB Trigger: connects
Output Pin
Module 19 - 51
- confidential -
Choose Measurement
Choose a measurement
from a drop-down list
Module 19 - 52
- confidential -
Time Stamper
Event Input:
1. None
2. Threshold 1
3. Threshold 2
4. Pattern
Slope
Sample Size
Enable Input
Slope
Mode
Holdoff
Module 19 - 53
- confidential -
Enable
Input:
Enable Pin: A valid DCTime
channel selected from the
programmed pins, this controls
the operation of the DC Time and
enables the time stamp when a
signal should occur. An enable
signal is used to selectively
capture events.
Pattern: controls by HSD
patterns and microcode
Mode:
Trigger Each Event Stamper
must receive a trigger on its
enable input before capturing
the next event signal.
Gate Window Stamper captures
events as long as its enable
input is at the specified level
(gate_high or gate_low).
Module 19 - 54
- confidential -
HoldOff
Hold-Off Mode: The hold-off mode is
used to specify which hold-off is used.
A hold off mode is used to allow time
for a signal to settle before making a
time measurement. The following
options can be selected:
• Off
• Precount Once - Time required before
stamping is counted once and then
never again.
• Precount Before - Time required
before stamping is counted before each
sample.
Module 19 - 55
- confidential -
Start Input Selection
Module 19 - 56
- confidential -
DCTime Alarms
• DGS over voltage alarm in the hardware
– Device ground sense not tied to ground
• Measurement incomplete alarm in the hardware
– Caused by a trigger event occurring while a measurement is in progress
• Timeout Alarm
– At the time when the user requests the data, the stamper did not get enough events to
stamp the number requested by the SampleSize
• Data lost
– Memory was overwritten by subsequent captures
• Capture not triggered
• Capture Alarm
– Instrument alarmed during capture
Module 19 - 57
- confidential -
Device Ground Sense (DGS)
Module 19 - 58
- confidential -
Specifying DGS in ChanMap
DGS 1 DGS 2 DGS 3 DGS 4
a34 b34 c34 d34
With Specifiers:
Device Under Test Tester Channel
Pin Name Package Pin Type Site 0 Site 1
PinA DCTime 23.a2.a34 23.a10.b34
PinB DCTime 50.a2.c34 50.a10.c34
Optional DGS
Without Specifiers: Specifiers
Device Under Test Tester Channel
Pin Name Package Pin Type Site 0 Site 1
PinA DCTime 23.a2 23.a10
PinB DCTime 50.a2 50.a10
Module 19 - 59
- confidential -
Default DGS for DCTime
DC30 DC75
DC30 DGS: DC30 DGS: DC75 DGS:
Sense: Sense: Sense:
1 1 11 2 1a 1
2 1 12 2
1b 1
3 2 13 1
2a 1
4 2 14 1
2b 1
5 1 15 2
6 1 16 2 3a 2
7 2 17 1 3b 2
8 2 18 1 4a 2
9 1 19 2 4b 2
10 1 20 2
Module 19 - 60
- confidential -
Asynchronous Triggers
Rev0343
- confidential -
Objective
Module 19 - 62
- confidential -
Asynchronous Triggering
• Asynchronous Triggering is when an asynchronous
signal is used to trigger an instrument
• Asynchronous Triggering on the DC30/DC75
boards is done by using the DCTime instrument to
generate the asynchronous signal
Signal to be
used to trigger DCTime
from device pin
DUT Asynchronous
Trigger Signal on
internal bus
Other
Signal to be DC Inst.
measured
Module 19 - 63
- confidential -
Asynchronous Triggers
• There are two internal trigger lines to supports
asynchronous capture of voltage and current
measurements per DCTime Instrument. These lines can be
driven by DUT pins connected to any of the V/I channels.
Module 19 - 64
- confidential -
Asynchronous Example
1. Source a ramp from the DCVI to Pin1.
2. Pin1’s threshold is exceeded and a state change occurs to pin2.
3. Signal is output from the State Change Pin to the DCTime.
4. The DCTime Front End drives the asynchronous trigger line.
5. The DC meter is set to listen to the asynchronous trigger and strobes the ramp.
pin1
Pin1_time
Module 19 - 65
- confidential -
Using Asynchronous Triggering
When Programming Asynchronous
triggering:
• Set up the DCTime doing the
triggering
• Set up the instrument to be
triggered
• Input any signal of interest
• Activate the triggering and
triggered instrument
• Input the signal that is used to do
the triggering
Module 19 - 66
- confidential -
Trigger Using Elements
Set up a DCTime on the same board
to do the triggering
– Send Output to: “On Board
Trigger”
– Set up Threshold(s)
– Set up Hysteresis and Voltage
Range
– Set up Event Input
– Start Input (Typically on trigger)
– Start Slope (Positive or
negative)
– Interleave mode (on or off)
Module 19 - 67
- confidential -
DCTime Instrument
Module 19 - 68
- confidential -
Trigger Using Elements
Set up the DCVI to be triggered
by programming the DCVI’s
AsynchronousTrigger input
– Asynchronous slope (Positive
or Negative)
– Asynchronous pin (DCTime
channel)
– Asynchronous Channel type
(Either DCTime or
DCTimeHP)
– Asynchronous which (Set to
Trigger line 1 or 2)
Module 19 - 69
- confidential -
DCVI Instrument
Module 19 - 70
- confidential -
Triggering a DCTime Instrument
Module 19 - 71
- confidential -
Trigger a DCVI or DCDiffMeter
Instrument Using VBT
¾ thehdw.DCVI.Pins("VIPin").AsynchronousTrigger
.SetInput pinName, ChanType, Which
– PinName = name of the pin attached to the DCTime instrument (triggering
instrument)
– ChanType = channel type of the pin attached to the DCTime instrument
(“DCTime” or “DCTimeHP”)
– Which = board specific, but for both the DC30 and DC75 this means which
stamper output. A “1” means stamper1, a “2” means stamper2.
Module 19 - 72
- confidential -
Triggering a DCTime in VBT
• 1st DCTime must have the Front End set up. (vrange,
hysteresis and thresholds)
• 2nd DCTime must program either it’s start or enable
input
¾ Thehdw.DCTime.Pins(“DCTime2”).Start
.SetInput tlDCTimeStartInputPin, PinName, ChanType, Which
– PinName = name of the pin attached to the 1st DCTime instrument
(triggering instrument)
– ChanType = channel type of the pin attached to the 1st DCTime
instrument (“DCTime” or “DCTimeHP”)
– Which = board specific, but for both the DC30 and DC75 this means which
threshold output. A “1” means threshold1, a “2” means threshold2.
Module 19 - 73
- confidential -
Appendix
• DC Time Specifications • Hysteresis
• DIB Triggering • Internal Triggers
• Event • Period example
• Enable • Stamper samples
• Enable examples • Flow charts
• Holdoff • Pattern control
• Holdoff examples
• Holdoff/Enable examples
• Sample Size
Module 19 - 74
- confidential -
Characteristics
• SIGNAL DELIVERY PATH
– Skew
• Channel-to-channel 1 ns, typical
• Trigger-to-trigger 500ps, typical
• DC30
– Range: 0 to +/- 30 V
– Ranges: 10V 50 Ohm, 10V High-Z, 30V High-Z
• DC75
– Range: 0 to +/- 75 V
– Ranges: 10V 50 Ohm, 20V High-Z, 75V High-Z
• Memory Depth: 512 samples/channel, nominal
• Resolution 1ns, typical
Module 19 - 75
- confidential -
Characteristics
• Bandwidth
– Channel Input 5 MHz, typical
– High Performance Input 25 MHz, typical
• RE-FIRE RATE
– Non-Interleave Mode 40 ns, typical
– Interleave Mode 20 ns, typical
• SETUP TIME
– Start to Enable Setup Time 50 ns, minimum, typical
– Enable to Event Setup Time 10 ns, minimum, typical
Module 19 - 76
- confidential -
Characteristics
Accuracy +/- 2ns
Resolution 1ns
Range 670ms
Re-fire Rate (one stamper) Interleave on 40ns
Re-fire rate (two stampers) 20ns
Memory Depth 512 Samples
per Stamper
Stamper Enabling Time (A to B) 20ns
Time Base Error System RefClk
Error
Hystersis 10V 50Ohm, HighZ 300mv
30V HighZ 900mv
Module 19 - 77
- confidential -
DCTime DIB Triggering
• Each DCTime instrument can trigger to the DIB via
the DIB Access channel path.
– The DC30’s and DC75’s DCTime instruments XOR the outputs of
the two comparators as the DIB Trigger signal
– Once signal is connected it is actively triggering
DC30 DC75
DCTime 0 DA 1 DA 1a,
DA 1b
DCTime 1 DA 2 DA 3a,
DA 3b
Module 19 - 78
- confidential -
DCTime Stampers Event
1. Event: signal used to measure time (signal on which
the stampers will be recording time)
– Input: none (off), pattern (Stamp microcode), the signal from
threshold1 and the signal from threshold2
– Slope: positive or negative
– VBT Commands
¾ thehdw.DCTime.Pins("vcc").Stamper1.Event.Input =
tlDCTimeInputThreshold1
¾ thehdw.DCTime.Pins("vcc").Stamper2.Event.Slope = tlSlopeNegative
Module 19 - 79
- confidential -
DCTime Stampers Enable
Module 19 - 80
- confidential -
DCTime Stampers Enable
Enable.Input = Pin
Enable.Mode = Gate
Enable.Slope = Positive
Triggered and started
Enable
Event
Enabled to
= Time Stamp stamp events
- confidential -
DCTime Stampers Enable
Enable.Input = Pin
Enable.Mode = Trigger Each
Enable.Slope = Positive
Enable
Event
Enabled to
= Time Stamp stamp events
- confidential -
DCTime Stampers Holdoff
3. Holdoff : means of delaying when the stamper is
stamping
– Mode: off (holdoff not used), precount, and before each
– Count: used to holdoff a specified number of events.
Max count = 511.
– Time: used to holdoff a specified amount of time. If programmed,
count will be set to 0
Max Time = 4.088ms
– VBT Commands
¾ thehdw.DCTime.Pins("vcc").Stamper1.Holdoff.mode =
tlDCTimeHoldOffModeBeforeEach
¾ thehdw.DCTime.Pins("vcc").Stamper2.Holdoff.Count = 5
¾ thehdw.DCTime.Pins("vcc").Stamper2.Holdoff.Time =0.00001
Module 19 - 83
- confidential -
DCTime Stampers Holdoff
Event
Module 19 - 84
- confidential -
DCTime Stampers Holdoff
Precount: wait before the first stamp
Holdoff.Time = 0.000010
Triggered and started
Event
Module 19 - 85
- confidential -
DCTime Stampers Holdoff
Before Each (Interleave Off): wait before each and every stamp
Event
Module 19 - 86
- confidential -
DCTime Stampers Holdoff
Before Each (Interleave On): start waiting after the other stamper stamps
Stamper1’s Hold-off = 2
Stamper2’s Hold-off = 1
Event
S2 S2
S1’s HO S1 S2 S1’s HO S1 HO 1 S2
2 Events HO 1 2 events
Stamp Stamp Stamp event Stamp
event
- confidential -
DCTime Holdoff/Enable
Interleave is off.
Enable.Mode = Gate
Holdoff.Count = 3
Enable
Event
Enabled Enabled Enabled
Module 19 - 88
- confidential -
DCTime Holdoff/Enable
Interleave is off.
Enable.Mode = Trigger Each
Holdoff.Count = 3
Enable
Event
Enabled Enabled
Module 19 - 89
- confidential -
DCTime Stampers SampleSize
4. SampleSize
– Sets the number of samples that the user wants to capture
– VBT Commands
¾ thehdw.DCTime.Pins("vcc").Stamper1.SampleSize = 10
Module 19 - 90
- confidential -
DCTime Front End
3. Hysteresis Control:
– Hysteresis is used to prevent multiple threshold crossings due to
noise
– Hysteresis can be set to “off”, “positive adjust”, “negative adjust”,
“on, no adjust”
– A setting of “off” has no hysteresis control and noise can cause
multiple threshold crossings
¾ thehdw.DCTime.Pins(“vcc”).FrontEnd.Hysteresis = tlDCTimeHysteresisOff
Module 19 - 91
- confidential -
DCTime Hysteresis cont.
Hysteresis Off
Voltage
Threshold
Time
Module 19 - 92
- confidential -
DCTime Hysteresis
Hysteresis On – No Adjust (centered around threshold)
Reset Point
Stamp Points
Voltage
Threshold Hysteresis
Window
Reset Point
Time
- confidential -
DCTime Hysteresis cont.
Hysteresis On – No Adjust
Voltage
Stamp Point
Threshold Hysteresis
Window
Time
Î Hysteresis reset point never reached.
Î Signal must exit the hysteresis window on the opposite
end that it entered in order to reset the hysteresis
Module 19 - 94
- confidential -
DCTime Hysteresis cont.
Hysteresis On – Positive Adjust
(adjusted to above threshold)
Reset Point
Stamp Points
Voltage
Hysteresis
Threshold Window
Reset Point
Time
Module 19 - 95
- confidential -
DCTime Hysteresis cont.
Hysteresis On – Negative Adjust
(adjusted to below the threshold)
Reset Point
Stamp Points
Voltage
Threshold
Hysteresis
Window
Reset Point
Time
Module 19 - 96
- confidential -
DCTime Internal Trigger Lines
None Stamper1 Trigger
Threshold1 slope Line 1
Pattern select Event
slope Mode
None Enable
Stamper1’s select select
Stamper2 Trigger
None slope
select Event Line 2
Pattern slope Mode
Enable
select select
Stamper2’s None
Holdoff
Enable Pin Pattern Time/
ON count SampleSize
Start Pin Off select
OFF Precount
Trigger BeforeEach
Module 19 - 97
- confidential -
DCTime Internal Triggering
• The internal trigger lines can be used to trigger another
instrument on the SAME board.
• The event input of the stamper must be set (to either
threshold1 or threshold2)
• Once signal is connected it is actively triggering
(“Trigger” command not required)
Module 19 - 98
- confidential -
1 Stamper’s Samples
Event
Capture Memory
= Time Stamp
640.02ms
655.89ms
669.77ms
512
016.13ms
Note: Assuming enable input = none Samples
and holdoff is off
Module 19 - 99
- confidential -
1 Stamper’s Samples cont.
• Each stamper “unwraps” it’s data
Capture Memory Returned Data
640.02ms 640.02ms
655.89ms 655.89ms
669.77ms 669.77ms
016.13ms 687.22ms
Module 19 - 100
- confidential -
2 Stamper’s Samples
Stamper1’s Memory
640.02ms
Triggered and started
655.89ms
669.77ms
512
016.13ms
Samples
Event 1
Event 2
Stamper2’s Memory
642.10ms
658.03ms
= Time Stamper 1
000.54ms
= Time Stamper 2 512
018.43ms
Samples
- confidential -
2 Stamper’s Samples cont.
Stamper1’s Memory Stamper1’s Returned Data
640.02ms 640.02ms
655.89ms 655.89ms
669.77ms 669.77ms
016.13ms 687.22ms Rise Time Results
2.08ms
2.14ms
1.86ms
2.30ms
Stamper2’s Memory Stamper2’s Returned Data
642.10ms 642.10ms
658.03ms 658.03ms
000.54ms 671.63ms
018.43ms 689.52ms
Module 19 - 102
- confidential -
2 Stamper’s Samples cont.
Module 19 - 103
- confidential -
2 Stamper’s Samples cont.
Stamper1’s Stamper1’s
Memory Returned Data
669.77ms 669.77ms
016.13ms 687.22ms RiseTime
Results
032.03ms 703.12ms
001.86ms
048.16ms 719.25ms
002.30ms
002.43ms
001.83ms
Module 19 - 104
- confidential -
Period Example
Voltage
5V
0V
-5V
Time
Module 19 - 105
- confidential -
VBT Period Example
'Set up
With thehdw.DCTime.Pins("vcc").Measurement.Period
.SetVoltageRange 5, tlDCTimeImpedanceHiZ
.Threshold = 0
.Hysteresis = tlDCTimeHysteresisOnPosAdjust
.Slope = tlSlopePositive
.Start.SetInput tlDCTimeStartInputOnTrigger
.SampleSize = 10
End with
'Connect
thehdw.DCTime.Pins("vcc").Connect
Module 19 - 106
- confidential -
VBT Period Example cont.
'Set up the signal to be measured before trigger is called
thehdw.Wait 0.01 ‘must wait long enough for all samples to be taken.
'Disconnect
thehdw.DCTime.Pins("vcc").Disconnect
Module 19 - 107
- confidential -
DCTime Dual Stamper Flow
IDLE
Trigger Command
Wait for
Start
True
Dual
Stampers
Activated
Module 19 - 108
- confidential -
DCTime Stamper Flow
False
Dual Wait for
Stampers Enable signal
Enable And
Activated received
Interleave
True
False Interleave
satisfied
True
Wait for
Holdoff
Module 19 - 109
- confidential -
DCTime Stamper Flow
Wait for
Holdoff True Wait for
Holdoff
satisfied Event
False
Event signal False
received
True
IDLE Dual
Stampers
Activated
Module 19 - 110
- confidential -
DCTime Pattern Control
Pattern Control
The DC instruments can be controlled by patterns and microcode allowing
changes to instrument states and parameters during a program. A very
accurate level of control can be obtained by programming an instrument
with microcodes, patterns and psets.
There are three forms of pattern control:
1. Microcode A microcode controls a single function, such as gating a V/I on or off or starting a
waveform segment for example.
2. Psets A PSET defines a programmed state for an instrument, so that a DC V/I PSET
contains parameters such as voltage and voltage range. When an instrument receives a
PSET from the pattern, it goes to the programmed state represented by that PSET.
3. Pattern A pattern is created independently of the test program, by using the Pattern Tool.
Patterns are composed of a series of numbered digital vectors that define the data for each
channel listed in the pattern and the pattern microcode for controlling pattern execution.
Module 19 - 111
- confidential -
Module 19 - 112
- confidential -
Visual Basic for Test
Rev0343
- confidential -
Objectives- Visual Basic for Test
Module 20 - 2
- confidential -
Specific Objectives -1
•VB-environment
•Editor
•Object browser
•Project explorer
•Watch window
•Immediate window
•Properties window
•Immediate mode debugging
Module 20 - 3
- confidential -
Specific Objectives -2
•VB Paradigm
•Form creation
•Code structure
•Delimiters
•Parameters
•Data types
•Syntax
•Constructs
•Standard functions
Module 20 - 4
- confidential -
Specific Objectives -3
•VB-VBA-VBT
•How VB is used with
Microsoft applications as a
support language
•How VBT for Flex extends
this support to:
•Hdw
•Exec
•Vars
•DspWave
Module 20 - 5
- confidential -
Specific Objectives -4
4 ways of calling standard VB from FLEX text
1. Call interpose function (constructed in VB) from a
Test Template
2. Call interpose function from a FLEX test procedure
3. Call VBT function from test instance worksheet
4. Call DSP procedure written in VB from a FLEX test
procedure
Module 20 - 6
- confidential -
Session 1
•Introduction to Visual Basic
•Overview of IDE paradigm
•Relate IDE paradigm to FLEX paradigm
•Intro IDE environment
Module 20 - 7
- confidential -
VB: What Is It?
• Visual Basic For Test is an
extension of Microsoft
Visual Basic. It is the Visual Basic = VB
Teradyne specific code and
objects.
Module 20 - 8
- confidential -
VB: What Is It?
Visual Basic = VB
• We will first introduce the
Visual Basic core language
Module 20 - 9
- confidential -
Visual Basic Fundamentals
Variables
Dim variable_name As type
Constants
Const const_name As type = expression
Module 20 - 10
- confidential -
Visual Basic Fundamentals
If… Statement
If condition1 Then [statements]
ElseIf condition2 Then [statements]
: optional
Else [statements]
End If
If bin_number = 3 Then
MsgBox “Fatal Error!”
ElseIf bin_number = 2 Then
MsgBox “Warning!”
Else
MsgBox “Test successful!”
End If
Module 20 - 11
- confidential -
Visual Basic Fundamentals
Looping Structures
• Do While … Loop
Do While condition Do While result = “fail”
[statements] result = myFunc()
Loop Loop
• Do … Loop Until
Do Do
[statements] result = myFunc()
Loop Until [condition] Loop Until result = “pass”
Module 20 - 12
- confidential -
Visual Basic Fundamentals
Procedures
1) Subroutine Procedures (no return value)
Sub proc_name (param1 As type1, param2 As type2,…)
[Sup procedure code]
End Sub
Sub display_message (info As String)
MsgBox info
End Sub
2) Function Procedures (return a value)
Function proc_name (param1 As type1, param2 As type2,…) As type
[Function procedure code]
proc_name = [return_value]
End Function
Function Square (d As Double) As Double
Square = d * d
End Function
Module 20 - 13
- confidential -
Visual Basic Fundamentals
Working With Objects
A newly dimensioned Class Object can be thought of as a pointer to an object
Before a class object can be used, it must have its reference set
The Set keyword is used with object to set references (have a pointer point to
something)
The New keyword is used to allocate memory for class objects
The Set and New keywords are used in conjunction to set up Class Objects for use
Module 20 - 14
- confidential -
Visual Basic Fundamentals
With Construct
Enable multiple properties setting and methods calling within the same
object
With Object
[Statements]
End With
With txtName.Font
.Bold = True
txtName.Font.Bold = True
.Size = 24
txtName.Font.Size = 24
.Type =
txtName.Font.Type = “Arial”
“Arial”
End With
Module 20 - 15
- confidential -
Visual Basic Fundamentals
Module 20 - 16
- confidential -
VBA: What Is It?
Module 20 - 17
- confidential -
IDE Overview
The Visual Basic For Applications (VBA) editor which is part of Excel is where VBT
code is written and debugged
The VBA Editor is an Integrated Development Environment (IDE) with different
tools in dockable windows which can be customized by the user
IDE
Environment for VB,VBA,VBT
Module 20 - 18
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
VBA IDE
Form Editor
Immediate Window
Watch Window
Locals Window
Object Browser
Debug Tools
• Visual Basic for Applications is where the user accesses Visual Basic code. Alt + F11
• The Project explorer is located in the upper left hand section of the VBA window. It
holds the VB code associated with DataTool, Templates, and VBAProject.
• To access the folders within each project, it is necessary to expand the column using
the (+) that is to the left of each segment.
Module 20 - 19
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
VBA Environment
Form Editor
Immediate Window
Watch Window
Locals Window
Object Browser
The Visual Basic For Applications (VBA) editor which is part of Excel is Debug Tools
Menu Bar
Development
Area with
two code
modules
open
Properties Immediate
Window Window
Module 20 - 20
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Module 20 - 21
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Object whose
properties are
being displayed
Name of
selected object
The Properties Editor
lists the design-time
properties for Different
property types
selected objects and
may have
their current settings different
These values can be property editors
(color choosers,
edited by the user enumerated
types, etc.)
The properties
list changes
depending on
the type of
object selected
Module 20 - 22
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Choose/create
the routine to be
edited
VBA separates
different code
routines with line
dividers
Toggle between
viewing all code
or just one
procedure
Module 20 - 23
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Module 20 - 24
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Module 20 - 25
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Module 20 - 26
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Watch Window
The Watch Window is with three
used to keep track of variables added
the values of
variables while Right click to
stepping through edit watches
code in debug mode
Bring up this window
by selecting Watch
Window from the
View menu
Watches are added
using the Add Watch
dialog, bring this up Add a watch:
select the
by right clicking in expression to
the code watch, where to
development area or watch it and
watch window and how to watch it
selecting Add Watch
Module 20 - 27
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Currently
executing code,
click on … to
bring up call
stack
List of all
variables and
objects, values
and types
Module 20 - 28
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Invoke the
object browser
by pressing F2 or
selecting it in the
view menu
This example
shows the valid
settings of the
“enumerated
type”
BpmuIRange
Module 20 - 29
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Module 20 - 30
- confidential -
IDE
Project Browser
Properties Editor
Code Editor
Debug Hotkeys
Mouse over a
F5 Run variable to
display the value
F8 Step
Immediate
Shift+F8 Step over window (ctrl+G)
Type code here
Ct+Sh+F8 Step out for immediate
execution
Module 20 - 31
- confidential -
IDE
VBA Programming/Debugging
Project Browser
Properties Editor
Code Editor
Form Editor
• As the user types, the dropdown list will scroll to the proper region
and highlight the first match, use arrows to navigate the list and the
tab key to auto complete the selected entry
• This lets the user explore and experiment without a manual or a list
of functions
Module 20 - 32
- confidential -
IDE
Project Browser
Module 20 - 33
- confidential -
Session 2
•Introduction to VBT
•Interface w/FLEX (VBT class objects)
•Calling methods
•Calling interpose function from template
•Calling interpose function from FLEX procedure
•Call VBT function from test instance worksheet
•Call DSP procedure written in VB from a FLEX
procedure
Module 20 - 34
- confidential -
VBT: What Is It?
Visual Basic = VB
• The next topic is Visual
Basic for Test (VBT), a code
level interface to the FLEX
test system
Visual Basic for
• Visual Basic for Test is an applications = VBA
extension of the Visual
Basic language, with
Teradyne created objects
and functions implementing
tester functionality Visual Basic For
Test = VBT
Module 20 - 35
- confidential -
VBT: Uses
• Here are some cases where VBT code is used:
Module 20 - 36
- confidential -
VBT Uses Standard VB Subroutines
This is an example of a Visual Basic Subroutine
A Subroutine is a code procedure that can take arguments but does not return a
value
Local Variable
Declarations
(sub…end sub)
VB will create
end sub
theHdw object
Module 20 - 37
- confidential -
VBT Uses Standard VB Functions
This is an example of a Visual Basic Function
A Function is a code procedure that can take arguments and return a value
Module 20 - 38
- confidential -
VBT Uses Special Class Objects
hdw object, theHdw
• VBT is built around Class Objects which
Contains tester
contain tester language functions programming functions
and instrument objects
Module 20 - 39
- confidential -
VBT: Tester Hardware: theHDW Object
BBACCapture Program BBAC
Capture Instrument
Contains Test
Computer Computer Details
Program DCVI
DCVI Instrument
Program the state
TheHdw (hdw object) ExtUtility of utility bits
Memory Test
MTO Option
Pin object,
Pins program by pin
Pin Parametric
PPMU Measurement unit
TheHdw is an object that provides access to properties and methods relating to the
test system hardware
It is a global instance of an ‘hdw’ object and does not need to be created by the user
The properties and methods for the TheHdw object are themselves objects
corresponding to the instruments used for testing
Module 20 - 40
- confidential -
VBT Uses Special FLEX Objects
(theHdw), Example
Module 20 - 41
- confidential -
VBT Uses Special FLEX Objects
(theHdw), Example Cont.
The completed
example shows
relay re-connection
VBT prompts the user for any required parameters, in this case
the argument is a string specifying the pins
VBT lists all the properties and methods of an object when a
period is typed.
Module 20 - 42
- confidential -
VBT: Test Executive: theExec Object
Datalog Object, set
Datalog up datalog
Error Object, set
Error error behavior
TheExec is an object that provides access to properties and methods relating to test
execution and flow
It is a global instance of an ‘exec’ object and does not need to be created by the user
The properties and methods for the TheExec object are themselves objects
Module 20 - 43
- confidential -
VBT Uses Special FLEX Objects (theExec),
Example
Module 20 - 44
- confidential -
VBT Uses Special FLEX Objects (theExec),
Example Cont.
Select
“WriteComment” to
send a string to the
datalog
Module 20 - 45
- confidential -
VBT: DSPWave Object
The DspWave object is used in writing DSP functions, it represents a
set of samples and functions on those samples.
Unlike the other objects covered, there can be multiple DspWave
objects and they can be created by the user.
Module 20 - 46
- confidential -
VBT: TheVars Object
The TheVars object is used with user created test procedures.
The optional site number parameter is used when the variable should
not be uniform to all sites, if the variable is the same for all sites, this
parameter can be omitted.
Module 20 - 47
- confidential -
VBT: IPinListData
Returns a pin object
Pin for a given pin name
Returns a set of
Pins pin objects
Returns list of
IPinListData object Sites sites
Is the value the
IsUniform same for all sites
Value of result
Value (only if uniform)
Module 20 - 49
- confidential -
VBT: ParametricResult
Get/set individual
PinData pin results
Get/set individual
ChanData channel results
For i = 0 To paramRes1.NumSamples - 1
AvgResult = AvgResult + paramres1.PinData(pinName, i) 'sum samples
Next i
Module 20 - 51
- confidential -
VBT: Code Examples
Interpose VBT from Test
Functions Template
DSP
Procedure DSP Procedure
Function
Module 20 - 52
- confidential -
VBT: Interpose Functions
Interpose functions
must be written in a
module placed in
the Modules folder
of the VBAProject
Interpose functions are part of the test program workbook and are
added using Excel’s built in Visual Basic editor. All functions written
here are saved with the workbook.
Visual Basic can be invoked by pressing Alt+F11 or by selecting
Tools->Macro->Visual Basic Editor
Module 20 - 54
- confidential -
VBT: Interpose Functions Modules
A finished interpose
function ready to be
called by a test
instance
With your VBAProject selected in the project browser, select Insert->Module in the menu
to add a new module. The module is placed in the Modules folder, and in this file is
where interpose functions are written with Visual Basic for Test.
Module 20 - 55
- confidential -
VBT: Code Examples
Interpose VBT from Test
Functions Template
DSP Procedure
Module 20 - 56
- confidential -
VBT: Test Templates Overview
Module 20 - 57
- confidential -
VBT from Test Templates Customization
Using Interpose Functions
Module 20 - 58
- confidential -
VBT from Test Templates: Interpose
Function Insertion Points
There are seven types of hooks in each test template where a custom
Interpose function can be called:
All interpose functions are executed within the body portion of the test
template.
Module 20 - 59
- confidential -
VBT from Test Templates: Interpose Tab
Module 20 - 60
- confidential -
VBT from Test Templates: Pattern Flag Tab
Module 20 - 61
- confidential -
VBT Interpose Functions Called From Test
Templates: 2 Examples
Interpose
VBT code can be function
required format
called from test
templates to modify
Using theHdw
their functionality
to program the
These functions are ppmu voltage
called “Interpose
Functions”
Interpose Functions
must follow a specific
function declaration
format
These two functions
will be added to a
test template to
program a ppmu VB ‘With’ construct
voltage and then (with… end with)
disconnect the ppmu
Module 20 - 62
- confidential -
VBT from Test Templates: Inserting
Previous Examples Into Templates
User name for Template Interpose functions and arguments are
test instance to use specified on the Interpose Functions tab
Module 20 - 63
- confidential -
VBT from Test Templates: Instantiating
Template and Adding to Flow Table
Module 20 - 64
- confidential -
VBT: Code Examples
Interpose VBT from Test
Functions Template
DSP Procedure
Module 20 - 65
- confidential -
VBT Interpose Functions: Used by Test
Procedures
Module 20 - 66
- confidential -
VBT Interpose Function Called From Test
Procedures
Same interpose
Interpose Function format
code can also be
called from test
procedures to modify
their functionality
theVars object
Interpose functions
for procedures follow
the same rules as
templates
This code will connect
the DA relay of a set
of specified pins
Module 20 - 67
- confidential -
VBT from Test Procedures (hard coded): Inserting
Previous Examples Into Flow Chart Editor
Module 20 - 68
- confidential -
VBT from Test Procedures: Instantiating a Procedure
and Adding it to the Flow Table
Module 20 - 69
- confidential -
VBT from Test Procedures - Another Case(not hard
coded): Inserting Previous Examples Into Instance Editor
Module 20 - 70
- confidential -
VBT: Code Examples
VBT from Test
Template
DSP Procedure
Module 20 - 71
- confidential -
VBT Test Element
The VBT Test Element is a
new way to add custom
code to a test procedure
The interface is friendlier
that the interpose function
VBT Element functions can
have flexible inputs,
variables can be passed in
directly, and the element
interface adjusts to match
the chosen function
VBT Element functions
must be specified at
procedure design time,
unlike interpose functions
which can be left as input
parameters
Module 20 - 72
- confidential -
VBT Element Function
The ByVal keyword indicates only
the value of the variable is passed,
so the code cannot modify the
VBT Element Functions value of the variable
have flexible declaration
rules
No fixed
return
VBT test type
element
functions must
be contained
in VB modules
whose name
begins with
VBT so that
the software
can find them
Module 20 - 73
- confidential -
VBT Element Editor
Choose a written
function from The element
Run one
the dropdown interface
function for all
changes to
sites or one
match the
for each
selected
function
Variables are
created with
the dropdown
or hard coded
depending on
the design of
the function
Module 20 - 74
- confidential -
VBT Function and Interpose
Comparison
Interpose Functions VBT Element
Functions
Multi-Site One call for all sites, One for each site or one
user handles site for all sites, depending
Functionality variables on checkbox
Module 20 - 75
- confidential -
VBT: Code Examples
VBT from Test
Template
DSP Procedure
Module 20 - 76
- confidential -
VBT Test Type: Function
For tests written completely in
VBT, the VBT Test Type can
be used
A function which will
The VBT Test Type allows a be called from a VBT
Test Type
VBT Function to be called
without using the Procedure
Development Environment
The VBT Test Type is another
type of test that can be chosen
from the type column on the
test instances sheet, the user
then selects a function to call
The VBT Test Type will
automatically create an
instance editor for the selected
function
Note: embedded DSP and
deferred limits cannot be used
with a VBT Test Type
Module 20 - 77
- confidential -
VBT Test Type: Instantiation
Here a test instance is created for the preceding VBT function using the
VBT test type
1) The test is named
2) Type VBT is selected
3) A user written VBT Function is chosen from the dropdown list
Note: Functions called from a VBT Test Type follow the same rules as
VBT Test Element functions (flexible declaration, no fixed return type,
must be placed in a module with a name beginning in VBT)
Module 20 - 78
- confidential -
VBT Test Type: Instance Editor
The instance editor for the VBT Test Type is created automatically when the function to
be called is chosen
The instance editor has a Levels & Timing tab plus tabs containing inputs for the selected
function
Module 20 - 79
- confidential -
VBT: Code Examples
VBT from Test
Template
DSP Procedure
Module 20 - 80
- confidential -
VBT Function Called From the Test Instance
Sheet
Format is different
from interpose, no
function arguments
VBT code can also be
called directly from
the Test Instance
Sheet
This code follows a
different format than
interpose functions
This code turns off all
alarms on a set of
pins For each of these
DCVI pins, turn off
all alarms
Module 20 - 81
- confidential -
VBT from Instance Sheet: Instantiating
Function and Adding to Flow Table
Module 20 - 82
- confidential -
VBT: Code Examples
VBT from Test
Template
DSP
Procedure DSP Procedure
Function
Module 20 - 83
- confidential -
VBT DSP Function Called From a Test
Procedure
DSP functions
must be contained
in VB modules
whose name
begins with DSP
or DSP_VBT so Select 50 samples
that the software
can find them
Get the mean value
Module 20 - 84
- confidential -
VBT DSP Function Called From a Test
Procedure(hard coded): Inserting Previous
Examples Into Flow Chart Editor
The DspProcedure test element is used in the PDE to call DSP Functions
The name of the DSP procedure to be used must be hard coded in the
PDE and cannot be an instance editor input
Select a user
created DSP
procedure from
the list
The editor
changes to match
the selected DSP
procedures
arguments
The DspWave
contains the input
samples captured
previously, the
second argument
will get the result
Module 20 - 85
- confidential -
VBT DSP Function Called From a Test Procedure:
Instantiating a Procedure and Adding it to the Flow
Table
Module 20 - 86
- confidential -
VBT Module Naming Conventions
Module 20 - 87
- confidential -
Case Study : Sinewave Example
Module 20 - 88
- confidential -
Session 3
•LAB
•Write several interpose functions and call
them from a test template
•View the results in the datalog
Module 20 - 89
- confidential -
Checklist Self Assessment
VB-environment
Editor
Object browser
Project explorer
Watch window
Immediate window
Properties window
Immediate mode debugging
VBT Fundamentals
theHdw basics
theExec basics
theVars basics
DspWave basics
Calling VB code
VBT from Test Templates
VBT from Test Procedures
VBT from Test Instances Sheet
VBT DSP from Procedures
Module 20 - 90
- confidential -
Appendix
Module 20 - 91
- confidential -
Session 4
Module 20 - 92
- confidential -
Quick Help VB Summary 1
Module 20 - 93
- confidential -
Quick Help VB Summary 2
Module 20 - 94
- confidential -
Quick Help VB Summary 3
Module 20 - 95
- confidential -
Quick Help VB Summary 4
Module 20 - 96
- confidential -
VB Data Types
Selected Data Types:
Type Bytes Range Type Byte Range
s
boolean 2 True/False integer 2 -32,768 to 32,767
Module 20 - 97
- confidential -
VB Operators
Common Operators (in precedence order):
Arithmetic Comparison Logical
Exponent ^ Equality = Not Not
Module 20 - 98
- confidential -
VB Math Functions
Visual Basic Math Functions:
Absolute Value Abs() Log Log()
Module 20 - 99
- confidential -
theHdw Members
Members of the hdw class object:
Module 20 - 101
- confidential -
theExec Members
Members of the exec class object:
Module 20 - 103
- confidential -
VBT: Top Level “Pins” Property
Module 20 - 104
- confidential -
Session 5
•Case study 1
•Add a simple and useful
feature to IGXL using VBT
•Discuss process and code
•LAB Æ run code and
modify
Module 20 - 105
- confidential -
Custom Code Example (Case Study 1)
This subroutine will display a
This is an example of a custom configuration file specified by ‘FilePath’
subroutine used to extend the
capabilities of IGXL
This code will display
configuration files from the IGXL
install directory
The code can be called by custom
IGXL menu items
Module 20 - 106
- confidential -
Session 6
•Case study 2
•Example of creating a class object
•Explain object oriented programming
•Intro key object oriented programming
terms and concepts
•Discuss use of class objects
•Discuss example code and run code LAB
Module 20 - 107
- confidential -
Object Oriented Coding
Object-oriented programs are made up of objects. An object packages both
data and the procedures that operate on that data. The procedures are typically
called methods or operations. An object performs an operation when it
receives a request(or message) from a client.
Requests are the only way to get an object to execute an operation. Operations
are the only way to change an object’s internal data. Because of these
restrictions, the object’s internal state is said to be encapsulated; it cannot be
accessed directly and its representation is invisible from outside the object.
Module 20 - 108
- confidential -
Visual Basic: Class & Object
Module 20 - 109
- confidential -
Visual Basic: Class & Object
Object is an Instance of the Class
Class Car
Properties
- PS
- Mileage
- Year
- Color
Instantiate
Procedures
Sub start( )
Sub stop( )
Sub speedup( ) Object myCar
Function displayCurrentSpeed()
Module 20 - 111
- confidential -
Case Study 2: User Class Example in Code: A Class
Contains Both Variables and Operators(Functions)
The Histogram
Data type is
created like any
Input data other class
comes from a object
DSP Wave
Get data from
DSPWave object
and plot the
Read data back
hisogram
out of Histogram
to DSPWave and
plot
Flexibility achieved through encapsulation, see next page
Module 20 - 112
- confidential -
Case Study 2: User Class Example Implementation Part 1
Implementation Part 1 of 3
Here is the first part of the code that creates the
Histogram Class implementation
Initialization
routine is called Private data
whenever this members, not
type of class directly
object is created accessible,
and is used to public members
set up the class would be
object for use
Property Let is
used to create
an interface for
Property Get is this object, Let
another part of allows this
interface object to have a
creation and is value passed in
used to write out by the user
the value of a without giving
given parameter direct access to
to the user internal data
plotHistogram is
an externally
visible method
The function used to tell this
checks for errors class object to
before calling plot a histogram
two hidden of internal data
functions to
create the
histogram
The hidden
function
CreateHistogram
churns through
the input data
and creates a
histogram array
Module 20 - 114
- confidential -
Case Study 2: User Class Example Implementation Part 3
The hidden
function
showHistogram
takes the
histogram array
and loads it into
a display form
Module 20 - 116
- confidential -
Session 7
•Case study 3
•How to use THE vars,
exec,hw,dspwave
•Use of intellisense
•Key example of elements after
DOT
•Example code for all types of
objects in VBT
•LAB the use of types and
summary code using sinewave, etc.
•Summary of Objectives via a
checklist self assessment
Module 20 - 117
- confidential -
VBT for Test Procedures
Rev0343
- confidential -
Outline
Module 21 - 2
- confidential -
Topic
Module 21 - 3
- confidential -
Regulation Test Design Examples
The next set of slides covers several methods of building a regulation test:
• Standard method *
• Hard coded IMAGE translation method
• IMAGE translation with variables method
• IMAGE translation with nested procedures method
• VBT method **
The advantages* and disadvantages of each approach will be discussed
Module 21 - 4
- confidential -
Regulation Test: Standard
This is a standalone regulation test
that can be reused for different test
situations
Module 21 - 5
- confidential -
Regulation Test: Hard Coded
This is the result of directly
translating an Image regulation test
to a FLEX test procedure
The procedure makes three
measurements with different setups
This procedure has several
weaknesses:
1) All the inputs are hard coded, this
test can only be used once for a hard
coded set of pins
2) The limits are tested one at a time
when the current limits element can
test all limits in a procedure at once
3) The length of the procedure
makes it difficult to figure out what
the test is doing
4) The same set of elements are
repeated three times
Module 21 - 6
- confidential -
Regulation Test: Variables
This is a slightly improved version of
the regulation test
The element inputs are now variable
so the test procedure can be reused
for different pins or different setups
Module 21 - 7
- confidential -
Regulation Test: Nested Procedures
Another way to implement
the test is with nested test
procedures
This is a procedure that sets
up a test, makes a
measurement, and stores
the result to a global
variable using VBT
This procedure will be
nested inside another
procedure
Module 21 - 8
- confidential -
Regulation Test: Nested Procedures
This test calls the previous
nested procedure three times
and uses the VBT element to
retrieve the stored results
The limits for all three
measurements are tested at
once, and the test flow from the
nested procedure is reused
The number of elements has
not dropped by much though
Module 21 - 9
- confidential -
Regulation Test: VBT
Another way to implement the
test is with the VBT element
A VBT function runs the setup and
measurement flow and returns
the results to the procedure
The Limits element checks the
results to finish the test
See the VBT code on the next
slide
Module 21 - 10
- confidential -
Regulation Test: VBT
Public Function DCVI_Reg(pinlist1 As String, pinlist2 As String, voltage1 As Double, _
current1 As Double, voltage2 As Double, current2 As Double, _
measvarname As String, pinlistout As String)
Dim dcvi_result As IPinListData This is the VBT function
Dim thisSite As Long that runs the regulation
With thehdw.DCVI.Pins(pinlist1) test
.CurrentRange.Autorange = True
.Current = current1 The code sets up the
source pin and capture
.VoltageRange.Autorange = True
.Voltage = voltage1
.Mode = tlDCVIModeVoltage pin, then connects and
gates on both pins
.Gate = False
End With
End Function
Module 21 - 11
- confidential -
Topic
Module 21 - 12
- confidential -
Extending Test Development Using VBT
Where Does VBT Fit Into the overall use model
Procedures/VBT Elements
VBT Test Type
A mix of procedure
Test written entirely
elements and VBT
in VBT, no usage of
elements
PDE
Module 21 - 13
- confidential -
When To Use The VBT Element Approach
Module 21 - 14
- confidential -
How To Use The VBT Element Approach
Former Use Model Revised Use Model - Even more options
Entirely in VB
Module 21 - 15
- confidential -
Where PDE Framework Advantages
Still Apply, Using the VBT
Module 21 - 16
- confidential -
Topics
Module 21 - 17
- confidential -
Case Study1-VBT IDD Test: Flow
Module 21 - 18
- confidential -
Case Study1-VBT IDD Test: Flow
This is the test flow
for the Run_Idd_TP
test
The LevelsTiming
element is used,
followed by two
VBT elements
which run the same
VB test but with
different input
parameters
The results of both
VBT tests are
checked in the
limits element
Module 21 - 19
- confidential -
Case Study1-VBT IDD Test: Function
RunIddTest is the VBT function
called by both VBT elements
Public Function RunIddTest(PatName As String, StartLabel As String, _
MeasPin As String, MeasWaitTime As Double, _ (1) A pattern is started using a
NumSamples As Long, SampleRate As Double, _
ResultVarName As String) As Long user written function, (2) the
mode of the measure pin is set,
(3) a pattern flag is reset, (4)
Dim IDDMeas As IPinListData
'set cpuA flagA to 0 and let pattern continue to the next cpuA loop
(5) A programmed wait occurs
3
Call thehdw.Digital.Patgen.Continue(0, cpuA) (6) after which the
measurement is made
'wait for cpuA flag to be true, pattern in cpu loop
4 Call thehdw.Digital.Patgen.FlagWait(cpuA, 0)
(7) The pattern is halted (8) and
'perform meas wait a user written function is called
5
thehdw.Wait (MeasWaitTime) to return the test results
'perform MCU IDD measurement
6
Set IDDMeas = thehdw.DCVI.pins(MeasPin).Meter.read(tlStrobe, NumSamples, SampleRate)
'halt pattern
7
Call thehdw.Digital.Patgen.Halt
End Function
Module 21 - 20
- confidential -
Case Study1-VBT IDD Test: Support
These are user written support functions called from the previous code
The first will start a pattern and wait until the pattern sets the cpuA flag
The second is used to return the results contained in an IPinData object to the
procedure variables table using a site loop and the name of the variable in the
variables table
'start pattern
Call thehdw.Digital.Patterns.Pat(PatName).Start(StartLabel)
End Function
SiteStatus = theexec.Sites.SelectFirst
Do While SiteStatus <> loopDone
thisSite = theexec.Sites.SelectedSite
thevars(VarName, thisSite) = MeasResult.Value(thisSite)
SiteStatus = theexec.Sites.SelectNext(loopTop)
Loop ' Site loop
End Function
Module 21 - 21
- confidential -
Topics
Module 21 - 22
- confidential -
Case Study2-Referencing Previous
DCVI Lab Exercise
Module 21 - 23
- confidential -
Case Study 2: Elements
This is the
Force_and_Measure_DC test
implemented in elements
The pins are connected, the
source and capture pins are
set up, there is a wait, the
measurement is made, the
result is tested against limits,
Previous course exercise the instruments are reset and
used elements only, no gated off, and the pins are
VBT disconnected
Test Elements
Standard test procedures
written primarily with test
elements
Maximizing
elements
Module 21 - 24
- confidential -
Case Study 2: VBT Element
This is the same
Force_and_Measure_DC
test implemented primarily
in the VBT element
The VBT element handles
setup, connection,
Minimizing elements, measurement and cleanup
mostly VB
The results from the VBT
VBT Procedures element are tested with the
Test procedures with most of limits element
the functionality done in VBT
elements (levels/timing and Why do we pass the hard coded
limits still done in elements) string name of the variable
instead of the actual variable?
The code manually creates a
site loop it has to return results
to each site, this is done with
theVars object that needs the
name of a procedure variable
and a site number
Module 21 - 25
- confidential -
Case Study 2: the VBT under the VBT Element
Public Function Vreg(ByVal
ByVal
inputpin As String, ByVal outputpin As String, _
inputcurrent As Double, ByVal Vin As Double, _
This is the user designed
ByVal NumSamples As Long, ByVal SampleRate As Double, _ VBT element function
ByVal LoadCurrent As Double, Vout_VarName As String) that implements the DC
test
Dim VMeas As IPinListData 'object to store measurement
Dim thisSite As Long 'index of current site
Module 21 - 26
- confidential -
Case Study 2: the VBT under the VBT Element cont.
After the wait, the measurement is made and stored in the IPinListData
object (which stores data for all sites)
Since the Execute in Site Loop checkbox on the VBT element was not
checked, the function manually loops through the sites and returns the
results to the procedure variable table using TheVars
The pins are then disconnected and gated off
'perform voltage measurement
Set VMeas = thehdw.DCVI.Pins(outputpin).Meter.read(tlStrobe, NumSamples, SampleRate)
'extract v meas for each site from ipinlist data and stick in procedure variable
'note that we are extracting 1st pin in pin array of ipinlist data
For thisSite = 0 To theexec.Sites.ExistingCount - 1
If (theexec.Sites.Site(thisSite).Active) Then
thevars.Value(Vout_VarName, thisSite) = VMeas.Pin(0).Value(thisSite)
End If
Next thisSite
'disconnect pins
With thehdw.DCVI.Pins(inputpin & "," & outputpin)
.Gate = False
.Disconnect
End With
End Function
Module 21 - 27
- confidential -
Topics
Module 21 - 28
- confidential -
Case Study 3- Previous DCVI Lab
Exercise With VBT Test Type
Module 21 - 29
- confidential -
Case Study 3: VBT Test Type Instance and
Instance Editor
Module 21 - 31
- confidential -
Case Study 3: the VBT under the VBT Test Type
The modified code does not need a site loop to return results to a test
procedure
Using theexec.Flow.TestLimit allows results for all sites to be tested at
once by using the IPinListData object returned by the DCVI .Meter
statement
Note 1: Site Loop Removed
'disconnect pins
With thehdw.DCVI.Pins(inputpin & "," & outputpin)
.Gate = False
.Disconnect
End With
End Function
Module 21 - 32
- confidential -
Topics
Module 21 - 33
- confidential -
Additional Consideration:
Pattern Management
Module 21 - 34
- confidential -
Additional Consideration:
Levels and Timing in VBT
Levels and Timing can be applied and controlled in VBT using theHdw.PinLevels,
theHdw.Digital.Timing, and theHdw.Digital.ApplyLevelsTiming
A view of the
members of
theHdw.PinLevels
.ApplyPower method
theHdw.Digital.Timing is
used to set up digital timing
information for patterns
Module 21 - 35
- confidential -
Additional Consideration:
Limits Testing in VBT
Test Limits can be done in VBT using a single exec statement: theexec.Flow.TestLimit
This will test the selected result against supplied limits and write the result to the datalog
Here is the VBT auto-complete popup showing the optional input parameters
.ApplyPower method
Datalog results for the second limits call shown above, Note:
the pin name and units parameter are clearly reflected in the
datalog output
Module 21 - 36
- confidential -
Additional Consideration:
Creating a Site Loop, First Type
When different operations need to be done for each site in VBT, a site loop
is used
The site loop selects each active site one after another, and will activate
the corresponding hardware and software for programming
Do not use this type of site loop when simply returning variables to a
procedure
'
' do per site operations
'
Module 21 - 37
- confidential -
Additional Consideration:
Creating a Site Loop, Second Type
This simpler site loop does not activate the hardware and software for
each site, it simply checks each site to see if it is active
If the site is active the loop does the specified per site operations
Use this type of site loop when returning variables to a procedure
End If
Next thisSite
Module 21 - 38
- confidential -
Test Time Resulting from Site Loop
Architecture
When the Execute in Setup and
When a VBT element is executed
Time
measurement
Site Loop checkbox is for multiple sites, if the Execute
checked, a separate in Site Loop checkbox is not
VBT function will run selected, the setup and
for each site serially, measurement for all sites can be
Return
and the results will be results
done in parallel
returned to the
The VBT function must handle
appropriate site Setup and returning of results in a site loop
variables measurement
Time
Setup and
measurement measurement measurement
Return
Return
results
Setup and
measurement
Return
results
Module 21 - 39
- confidential -
Topics
Module 21 - 40
- confidential -
Best Programming Techniques Recommendations
and Guidelines Summary
Hard & Fast Rules
• If you need to call a DSP Procedure you must use the DSP
Procedure element and corresponding DSPWave setup elements
• Deferred binning is only supported through the DSPProcedure
Element and Limits Element
Recommendations
• Tests that contain complicated logic and/or loops should be written
in VB. Use VBT Element to call function.
• Tests that contain complicated instrument setup sequences should
be written in VB, especially if many options are possible or if
measurements affect setups. Use VBT Element to call function.
• For common setup functions that are called by a lot of tests and
need to support a number of different options, should be written in VB
because it easier to make decisions based on input data. Use VBT
Element to call function.
Module 21 - 41
- confidential -
Best Programming Techniques Recommendations
and Guidelines Summary
Recommendations (cont.)
• Use Test Procedures or the VBT test type as a “wrapper” even when
test could be done entirely in VB. No sense re-inventing wheel for
things like LevelsTiming and Limit element. Plus, Instance Editor
creation is supported.
• Remember to design Interpose Functions into Test Procedures for
what they’re suppose to be used for, a means to customize a standard
test thereby eliminating the need to create a custom Test Procedure
for minor variations.
Module 21 - 42
- confidential -
Topics
Module 21 - 43
- confidential -
Applying the Revised Use Model to an Existing Test Program:
Programming Practices and Observations resulting from a test program
rewrite exercise
Module 21 - 44
- confidential -
Applying the Revised Use Model to an Existing Test Program:
Programming Practices and Observations resulting from a test program
rewrite exercise
• Using the VBT Procedures model, writing tests in VBT allows users to
make a minor change to a test and then re-run the test without having to
re-validate the test program, thus saving debug time.
•Using the VBT Procedures model, there are some additional
advantages when writing tests in VBT. One such advantage is the ability
to easily make changes on the fly. Another is the ability to perform
“Undo’s” in the VB environment.
• Using the VBT Procedures model, tests written in VBT allow for easier
readability and debug . In VBT, the surrounding information is clearly
and easily visible when debugging. This is found to be an enhancement
over working solely in the PDE, wherein users click on elements to view
how these elements are setup during debug.
• Using the VBT Procedures model, the new Limit element provides a
significant improvement . The new <input_parm> capability reduces the
number of input variables significantly for all the test procedures.
Module 21 - 45
- confidential -
Homework Assignment
Read the Variable Passing In IG-XL white paper, this paper contains
valuable information about:
• Communication between different IG-XL programming layers
• Job to Test Instance and Flow communication
• Interpose Functions
• Test Procedure to VBT Test Element communication
• VBT Functions and Parametric Result usage
• Test Procedure to Nested Test Procedure communication
• Test to Test Site Variables communication
• Flow to Test Enable Word communication
• IPinListData and Decomposed Pin List
Module 21 - 46
- confidential -
Topics
Module 21 - 47
- confidential -
Remember: Good Programming
Practices Apply for All Use Models
Do not use many test elements to do actions on
a set of pins when one element will do
Do not hard code all procedure values and create
multiple unique procedures when one could have
been created with variable input parameters
Try to design procedures and VBT functions that
can be debugged once and reused several times
Module 21 - 48
- confidential -
PSETS
Rev0343
- confidential -
Introduction
Module 22 - 2
- confidential -
How to use PSets
3 Steps:
Module 22 - 3
- confidential -
How to use PSets
Step1: Add a new instrument-specific PSet using VBT
Example: Adding a new PSet called “srcPSet” for DCVI instrument and apply to srcPin
Module 22 - 4
- confidential -
How to use PSets
Step2: Set the properties of the PSet using VBT
Syntax:
thehdw.<instrument>.Pins(<pinName>).Psets(<psetName>).<propertyName> = value
Example: Set the properties of the PSet “srcPSet” for DCVI instrument
Note:
A complete list of
properties specific to
DCVI instruments is
shown in the appendix
of this section
Module 22 - 5
- confidential -
How to use PSets
Step3: Apply the PSet in the pattern using micro code
Syntax: Pset <psetName>
Example:
Note:
The PSet Name must not
be surrounded by any
single or double quotes,
otherwise => runtime error
Module 22 - 6
- confidential -
Appendix
Module 22 - 7
- confidential -
Appendix
Module 22 - 8
- confidential -
Module 22 - 9
- confidential -
IG-XL Mixed Signal
Development
Overview
Rev0343
- confidential -
Mixed Signal testing
Mixed Signal Test Techniques are used to setup source and capture
instruments when testing converters.
An analog
waveform is
sourced to the Digital instrument
device captures the ADC
output
Waveform samples ADC
are represented by
Analog Input Digital Output
voltage levels
Module 23 - 2
- confidential -
IG-XL Mixed Signal Test Development
Module 23 - 3
- confidential -
Step 1a-Create Pinmap/Channel Map
Device Pin-Out Diagram
Module 23 - 4
- confidential -
Step 1b-Digital Specs/Levels/Timing Setup
Digital Interface Specs
Module 23 - 5
- confidential -
Step 2-WaveDesigner
Vertically-sliced,
extensible library of
basic and complex
functions
Module 23 - 6
- confidential -
Step 2a-Coherent Timing Solutions
Mixed-Signal Workshop Clock Coherency Solutions
Module 23 - 7
- confidential -
Step 3 - Test Procedure Design
Procedure Development Environment (PDE)
1
Module 23 - 8
- confidential -
Step 3a-Applying timing solution
to instrument using Elements
Load from Mixed Signal Workshop Define Manually using Variable names
Module 23 - 9
- confidential -
Step 3b - DSP Design Using VBT
FLEX DSP Software: complete, extensible library of DSP algorithms
Complex DSP functions can be added using standard VB language
Module 23 - 10
- confidential -
Step 4 - Create M/S Test Pattern
Mixed Signal
Microcodes
Selecting Microcodes
Module 23 - 11
- confidential -
Step 5 - Test Instance Editor
2
Instance Editor
Forms can be
modified in
VBA
Module 23 - 12
- confidential -
Step 5a-Test Procedure Instantiation
Module 23 - 13
- confidential -
Step 5b - Define Test Sequence
Module 23 - 14
- confidential -
Wave Designer
Rev0343
- confidential -
Wave Designer: Introduction
Consider the problem of defining wave shapes to be sourced in mixed signal
testing
Instead of creating a set of samples that may have to be recreated if the test
program changes, it would be useful to define the shape of a waveform separate
from the sampling information (which would be generated somewhere else)
By doing this, waveform shape definitions can be reused and do not have to be
changed if sampling parameters are changed
The same definitions can also be used to create both digital and analog inputs
An analog waveform is
sourced to the device
Waveform samples are
represented by voltage
levels ADC
Analog Input Digital Output
Module 24 - 2
- confidential -
Wave Designer: Introduction
Module 24 - 3
- confidential -
Wave Definition Worksheet
Wave Definition details are stored on the Wave
Definitions sheet
Module 24 - 4
- confidential -
Wave Designer: Primitives
Module 24 - 5
- confidential -
Wave Designer: Tool Intro
Wave Designer
window for
creating wave
definitions
Wave scope
window for
viewing wave
definitions
Module 24 - 6
- confidential -
Wave Designer: Adding a Worksheet
Module 24 - 7
- confidential -
Wave Designer: Opening Wave Designer
The Wave
Designer tool
runs as part of
TDE
Module 24 - 8
- confidential -
Wave Designer: Create a New Wave
Definition
If there are no
pre-existing Wave
Definitions, Wave
Designer will
create a new
definition called
aSine which
contains a simple
sinewave
Module 24 - 9
- confidential -
Wave Designer: Create a New Wave
Definition
Module 24 - 10
- confidential -
Wave Designer: Adding Waveform
Primitives
Module 24 - 11
- confidential -
Wave Designer: Primitive Options
A simulation of the
wave definition is
shown in the preview
area at the bottom by
selecting sampling
information and
clicking show wave
Module 24 - 12
- confidential -
Wave Designer: Compound Definitions
Further wave
definitions can
contain previously
defined wave
definitions
Module 24 - 13
- confidential -
Excel Range Primitive
The Excel Range primitive allows samples to be generated from a range on a worksheet
1) Create
sample
values on
an excel
worksheet 2) Select
the range
of samples
to use on
the sheet
3) Define
Note: a name for
Excel Range the
requires the samples 4) Type a
number of with insert name for
samples the range
requested to and click
match the OK
size of the
range
Module 24 - 14
- confidential -
Excel Range Primitive
To use excel
range, the
number of
samples asked
for must match
the size of the
range (128 in
this case)
The samples
produced by
the excel range
Module 24 - 15
- confidential -
VBT Primitive
The most flexible way to produce custom wave shapes is to use the VBT primitive
and write a visual basic subroutine to generate waveform samples
The code can be stored in a VB module as part of the workbook
All waveform generating subroutines can have any name but must match the
argument list given below to work with WaveDesigner
Required
calling
format
Samples
are
created in
an array
and then
loaded
into a
DSPWave
Module 24 - 16
- confidential -
VBT Primitive
The samples
produced by
the VBT
subroutine
Module 24 - 17
- confidential -
Multitone Lab Primitive
The Multitone Lab primitive
allows creation of multitone
waveforms with full control
over the tones which
compose the waveform
Each tone can be
represented on a separate
row, and related tones can
be created on one row
The tool can find a set of
phases for the composite
tones to minimize the
multitone crest factor
Clicking the “MultitoneLab
Editor…” button on the
element editor will open this
form
Module 24 - 18
- confidential -
Run the Wave Designer Lab
Module 24 - 19
- confidential -
Module 24 - 20
- confidential -
DSP Introduction
Time to Frequency
Rev0343
- confidential -
Mixed-Signal Device
Consider testing an ADC/DAC IC. A Digital Engineer can easily understand and
analyze the digital input/output. But how do we analyze the analog
input/output? How can we quantify a good sinusoid or a bad sinusoid?
To succesfully test mixed signal devices a Digital Engineer needs to learn a new
set of analog tools and techniques. DSP is fundamental to mixed signal test.
ADC/DAC
Digital Input
Analog Output
DAC
ADC
Analog Input Digital Output
Module 25 - 2
- confidential -
Mixed Signal Tester Synchronization
Module 25 - 3
- confidential -
Sampling Theory
Module 25 - 4
- confidential -
Sampling Theory Fundamentals
Module 25 - 5
- confidential -
Sampling Theory Fundamentals
Module 25 - 6
- confidential -
Sampling Process
Module 25 - 7
- confidential -
Constructing a Sine Wave
• What is needed to create this wave?
Module 25 - 8
- confidential -
Creating a Wave
OUT +
Source Zero-Order
Memory Hold DAC PGA
LPF(s)
OUT -
Module 25 - 9
- confidential -
Constructing a Sine Wave
• What is needed to create a wave?
– Clock (data rate – fs)
– Amplitude (value)
– Frequency (ft)
– Number of Samples (N)
Sample [n(6)]
Step
Amplitude
Sample
Rate
fs
Module 25 - 10
- confidential -
Constructing a Wave
Module 25 - 11
- confidential -
Smoothing Steps
Module 25 - 12
- confidential -
Replicating Single Wave in Tester
Module 25 - 13
- confidential -
Time Domain
Second Harmonic Distortion
Module 25 - 14
- confidential -
Frequency Domain
Second Harmonic Distortion
Module 25 - 15
- confidential -
Fast Fourier Transform
a numerical algorithm
Module 25 - 16
- confidential -
Correlation and DFT
Module 25 - 17
- confidential -
How Does ATE DFT Work? (1/3)
“Correlation” is a measure of how closely related two waveforms are. To
“Correlation”: calculate “correlation” of two sets of N samples, multiply the samples
together point by point, sum the products, and then scale the sum by 2/N.
0 + ½ + 1 + ½ + 0 + ½ + 1 + ½ = 4 ► 4*2/8 = 1
Module 25 - 18
- confidential -
Independent Sample Sets
Module 25 - 19
- confidential -
Component Phase
Module 25 - 20
- confidential -
Sinusoid and Cosinusoid
• Initially, for any Arbitrary Waveform Generator (AWG) the signal has to be
created mathematically. To do this we have to call on some simple trigonometry.
y = sin x
y = cos x
• Every sinusoid can be represented by a phase shifted cosinusoid and vice versa.
y = cos (x – 90º)
Module 25 - 21
- confidential -
Phase-shifted Sinusoid
Module 25 - 22
- confidential -
Phase-shifted Cosinusoid
Later, when you do a Fourier Transform in analyzing a signal, it will return this two numbers, 0.4837, and
1.3289, which are: the amplitude times the cosine of the phase, and the amplitude times the sine of the phase.
Module 25 - 23
- confidential -
How Does ATE DFT Work? (2/3)
A waveform can be decomposed into cosine and sine terms using “correlation”. Start with a Cosine wave
with a phase shift Θ= 53°, and “correlate” this wave with both a sine and a cosine wave to get two vectors.
Cos(t)
Input Waveform “Correlation”
= 0.601815
Cos(t- 53°) Cos(t- 53°) ● Cos(t)
Sin(t)
“Correlation”
= 0.798636
Cos(t- 53°) ● Sin(t)
The angle between these two vectors is 53°, and the magnitude of their sum is 1. The original waveform
can be reconstructed by scaling a cosine wave by the first vectors magnitude, scaling a sine wave by the
second vectors magnitude, and then summing the two waves
Module 25 - 24
- confidential -
How Does ATE DFT Work? (3/3)
A DFT uses “correlation” to transform a time domain waveform to a frequency domain representation.
Cosine(3*t) ► 1
Bin 3, 3*Fres
Sine(3*t) ► 0
The DFT takes the 8 input samples and converts them to an 8 point frequency representation. The
waveform can be completely recovered from the output spectrum.
Module 25 - 25
- confidential -
Analog Signal
Time and Frequency Domains
Sinusoid
1
T
T
2 µs 0.5 MHz
Module 25 - 26
- confidential -
Waveform Signal
Time and Frequency Domains
Rectangular Wave
T
T/5
1 1 1 1 1 1 1 1 1 1
TT T T T T T T T T T T
T
0.2
µs 1 2 3 4 5 6 7 8 9 10 MHz
1
Module 25 - 27
- confidential -
Time vs. Frequency
64 waveform
samples points
containing
1 cycle –
Frequency of
Repetition (1FR)
Signal power is
found in bin 1 of
the 32
spectrum bins
Module 25 - 28
- confidential -
Time vs. Frequency
64 waveform
samples points
containing
3 cycles –
Frequency of
Repetition (3FR)
Signal power is
found in bin 3 of
the 32
spectrum bins
Module 25 - 29
- confidential -
Time vs. Frequency
64 waveform
samples points
containing the
sum of a 1
cycle waveform
and a 3 cycle
waveform
Signal power is
found in bin 1
and bin 3 of the
32 spectrum
bins
Module 25 - 30
- confidential -
Important Relationships for Coherency
FR / Fs = M / N N = 64
F0 = Fs / N M=3
M = FR × N / Fs FS / FR = N / M
= FR / F0 FS / FR = 64 / 3 64 unique samples in 3 cycles
Module 25 - 31
- confidential -
Sampling Theory
The Primitive Frequency
1 x F0
2 x F0
frequency
3 x F0
4 x F0
time Module 25 - 32
- confidential -
ATE Fast Fourier Transform
Amplitude Spectrum
bins (0,1 -> bin 0; 2,3 -> bin 1; 4,5 -> A Sin θ
amplitude
Vector Representation
of a Sinsusoid
FR / Fs = M / N
F0 = Fs / N
Imaginary A
= A Sin θ
M = FR × N / Fs
θ
Real =
= FR / F0
A Cos θ
Module 25 - 33
- confidential -
ATE Fast Fourier Transform
Power Spectrum
Module 25 - 34
- confidential -
Frequency Domain Multitone
Time Domain 1/Fs
wave1 M=3
The bold wave is the sum wave2 M=5
of the two dark waves
amp
with M = 3 for one and M
sum wave1
= 5 for the other.
+ wave2
Fs is frequency of
samples, 1/Fs is time
between samples. Nth (16th)
UTP (unit test period) is sample
time for one set of unique
samples to repeat,
UTP = N * (1/FS) UTP = 1/F0
0 1 2 3 4 5 6 7
Bin 1,
term at F0
Frequency Bins
Module 25 - 35
- confidential -
Frequency Domain Multitone
Time Domain 1/Fs
wave1 M=2
The bold wave is the sum wave2 M=4
of the two dark waves
amp
with M = 2 for one and M
sum wave1
= 4 for the other.
+ wave2
What is wrong with the
choice of M = 2 and M =
4 for the components of Nth (16th)
the composite wave? sample
UTP = 1/F0
0 1 2 3 4 5 6 7
Bin 1,
term at F0
Frequency Bins
Module 25 - 36
- confidential -
A Few Useful Definitions
DC Component The first frequency bin resulting from the FFT is the DC component of
the signal or the average value of the sample points.
Fundamental This is the frequency of interest. The input signal to the A/D.
- confidential -
Coherence
Module 25 - 38
- confidential -
Sampled Signals Example
• The plain old telephone system (POTS) uses an encoder. The standard test
signal used to be 1020Hz. The sample rate is fixed by international agreement
at 8KHz
- confidential -
Repetitive Sample Sets
1
• Note that if Fs is the sampling rate then T = is the sampling period or the time
between samples. FS
• We have to use a discrete formula instead of a continuous one. This means the formula
generates a finite set of points (not all values of time can be used as in a continuous
case):
Vt = sin(2πft ) allows any value of t
Vnt = sin( 2πFt nT ) n = 0, 1, …, N-1
1
Notice that since T = , the formula contains Ft = M
FS FS N
M 51
So, in our math we will use Vnt = sin( 2πn ) For our example: Vnt = sin( 2πn )
N 400
51 cycles
3x45.9º
1x45.9º 399x45.9º
0x45.9º 398x45.9º
2x45.9º
400 samples Module 25 - 40
- confidential -
Frequency Analysis
Module 25 - 41
- confidential -
Single Tone Signal Analysis
• SNR (Signal to Noise Ratio): The power ratio of carrier signal against
the sum of all non-harmonic noise power within a captured waveform.
• THD (Total Harmonic Distortion): The power sum of all harmonics to
the power of the carrier.
• SINAD (Signal to Noise And Distortion): The power ratio of carrier
signal against the sum of all remaining power including noise and
harmonics within a captured waveform.
• SFDR (Spurious Free Dynamic Range): The power ratio of carrier signal
against the power of the second highest frequency component (not
including DC).
Module 25 - 42
- confidential -
Decibel (dB)
2 2
W1 V1 V V V V
= → 10 log 1 = 2 × 10 log 1 = 20 log 1 = 1
W2 V2 V2 V2 V2 V2 dB
Module 25 - 43
- confidential -
Decibel (dB)
Power Ratio Examples
- confidential -
Common Frequency Analysis Algorithms
Module 25 - 45
- confidential -
What are the Spectral Components?
DC Component Second
Harmonic
Noise
Third Components
Harmonic
ƒ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Power Spectrum
Module 25 - 46
- confidential -
Signal to Noise Ratio (SNR)
v2
Store the value of the fundamental
This is the signal power
ƒ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Power Spectrum
Module 25 - 47
- confidential -
Signal to Noise Ratio (SNR)
v2
Stride through the array and zero out fundamental,
harmonics (usually up to 5), and the DC component
ƒ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Power Spectrum
Module 25 - 48
- confidential -
Signal to Noise Ratio (SNR)
v2
Sum all bins of the remaining power spectrum
This gives the noise power
ƒ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Power Spectrum
Module 25 - 49
- confidential -
Signal to Noise Ratio (SNR)
Fundamental
SNRdB = 10 log10
Noise Power
Module 25 - 50
- confidential -
Total Harmonic Distortion (THD)
v2
Store the value of the fundamental tone.
This is the signal power
ƒ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Power Spectrum
Module 25 - 51
- confidential -
Total Harmonic Distortion (THD)
sum
ƒ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Power Spectrum
Module 25 - 52
- confidential -
Total Harmonic Distortion (THD)
Harmonic Power
THDdB = 10 log10
Fundamental
Module 25 - 53
- confidential -
Signal to Noise and Distortion (SINAD)
- confidential -
Spurious Free Dynamic Range (SFDR)
v2
Store the value of the
fundamental
This is the signal power
ƒ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Power Spectrum
Module 25 - 55
- confidential -
Spurious Free Dynamic Range (SFDR)
ƒ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Power Spectrum
Module 25 - 56
- confidential -
Spurious Free Dynamic Range (SFDR)
Fundamental
SFDRdB = 10 log10
Next Highest
Module 25 - 57
- confidential -
Dual-Tone Signal Analysis
Module 25 - 58
- confidential -
Dual-Tone Signal Spectrum
f1 f2
2f1-f2
2f2-f1
2f1+f2 2f2+f1
Module 25 - 59
- confidential -
Aliasing Example
v2
FS/2 FS
Where will the aliased images of the
frequency components located at bins 4,
6, 8 and 10 fall due to undersampling?
ƒ
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Power Spectrum
Module 25 - 60
- confidential -
Digital-to-Analog Conversion
1 data set (words)
00110001
x[n] 2
00110010
00110011
lookup table at Fs
...
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
00111111
xˆ[t ] 3
zero-order hold*
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
* A first-order holder can be
used. Instead of maintaining the
sample’s value for 1/Fs, the first-
x[t ] 4
order holder approximates x(t)
by straight-line segments which
have a slope that is determined
analog LPF
by the current sample x[i] and
the previous sample x[i-1]. ++
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
++ based on Digital Signal Processing, by Proakis and Module
Manolakis
25 - 61
- confidential -
3-bit DAC
Binary Words
User array
What happens when we try to represent a sine
0.000000 0.00 011 wave using a 3 bit DAC? Start with an array of
0.258819 0.25 100 24 points of a sine wave. A 3 bit DAC can only
0.500000 0.50 101 represent 23 = 8 levels, so the original sine data
0.707107 0.75 110 is rounded to the nearest level. Each sample
0.866025 0.75 110 must be represented by a 3 bit binary word.
0.965926 1.00 111
1.000000 1.00 111
0.965926 1.00 111
0.866025 0.75 110
0.707107 0.75 110
0.500000 0.50 101
1/Fs
- confidential -
Analog to Digital Conversion
sampling
x(t ) δ [n]
1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Rev0343
- confidential -
Mixed Signal Workshop: Introduction
Consider the problem of setting up sampling and timing for a mixed
signal test
For proper dsp analysis the input and output must be coherent (the
sample rates and sizes must be related so that a whole number of
cycles is captured)
The user will need to specify (1) the waveforms to be sourced and (2)
the coherent sampling setup which should be created with some sort
of sampling calculator
An analog waveform is
sourced to the device, The digital words from
the source sampling the device must be
setup must be related to captured at a sample rate
the sampling clocking and size that is related to
rate of the ADC for
coherent sampling
ADC the input waveform and
the clocking rate of the
Analog Input Digital Output
device
Module 26 - 2
- confidential -
Mixed Signal Workshop: Introduction
Module 26 - 3
- confidential -
Mixed Signal Workshop:
Anatomy of a Mixed Signal Timing Context
Module 26 - 4
- confidential -
Mixed Signal Workshop:
Mixed Signal Timing Sheet
Module 26 - 5
- confidential -
Mixed Signal Workshop: Mixed Signal
Timing Sheet Column Descriptions
Subset To distinguish multiple clock setups for a test N Number of samples in waveform
Module 26 - 6
- confidential -
Mixed Signal Workshop
Module 26 - 7
- confidential -
Mixed Signal Workshop
Instrument Constraints:
Sample rate,
Bandwidth, etc.
Module 26 - 8
- confidential -
Mixed Signal Workshop
• For example:
– The DUT may require a signal Repeat Frequency ‘Fr’
of 1000Hz, with a Sample Frequency ‘Fs’ of 8000Hz
– DSP may require a Sample Size ‘N’ that is a power of
2, and a Cycle Count ‘M’ that is mutually prime with N
– For N = 512, with Fs/Fr=N/M, M is 64
– Since N and M should be mutually prime, we instead
choose M = 65, and Fr becomes 1015.625
Module 26 - 9
- confidential -
Mixed Signal Workshop
The File menu Subsets are used for including The DUT block is used to define Blocks on the right
allows creation, multiple setups in one context. the relationship between the DUT represent capture
opening, closing Create a new subset with the input and output frequencies. instruments.
and saving of file menu, and change subsets The (…) button brings up an Capture settings
timing contexts with the Subset dropdown list. equation editor. and coherence
error are displayed.
The Edit menu is
Click on the Solve
used to create,
button to bring up
delete and edit
the Solver tool to
timing subsets
find valid solutions.
The MSW menu is
used to add and Any instrument
delete instruments specific settings will
and manage timing appear at the
subsets bottom of the
instrument block.
Click on the
Blocks on the left More/Less button
represent source to hide and unhide
instruments. the extra options.
Signal settings and
the wave definition
to be sourced are
displayed. Click on
the Solve button
to bring up the
Solver tool to find
valid solutions.
Module 26 - 10
- confidential -
Mixed Signal Workshop: Source Detail
Signal sampling FR is the Test Tone
Solve… brings up the solver frequency of the source
information can be directly
window to generate coherent waveform
entered or generated with
solutions which conform to the
the Solver tool
selected instrument Fr = Fs*M/N
Fs is the sampling
frequency, the rate at Bandwith requirements
which samples are come from the wave
produced by the source definition and test tone
instrument frequency
N is the number of
waveform samples used to NOTE: Right clicking on a
represent the given selected instrument will
waveform bring up a menu to view
the waveform samples, to
M is the number of view the simulated
waveform cycles The previously defined waveform instrument output, or
represented by the given shape to be sourced is chosen delete the instrument
set of samples. from the dropdown menu
Module 26 - 11
- confidential -
Mixed Signal Workshop: Capture Detail
Module 26 - 12
- confidential -
Mixed Signal Workshop: Solver
Module 26 - 13
- confidential -
Mixed Signal Workshop: Solver
• Example Solver
solutions for a
DSSCSrc
• FS is selected as
the element to be
computed
Module 26 - 14
- confidential -
Mixed Signal Workshop: Solver
• Example Solver
solutions for a
BBACCap capture
instrument
• FS is selected as
the element to be
computed
• Columns are
different: Fres and
UTP
Module 26 - 15
- confidential -
Mixed Signal Workshop:
Test Time Reduction
• EXAMPLE: Testing
a Codec Receiver
• Fs = 8,000 s/s
• Ft = 1,000 Hz
(nominal)
Module 26 - 16
- confidential -
Mixed Signal Workshop:
Test Time Reduction
• EXAMPLE:
Testing a
Codec Receiver
• Ft = 1,015.625
• UTP = 64 ms
Module 26 - 17
- confidential -
Mixed Signal Workshop:
Test Time Reduction
• If 512 samples
works, maybe
~10% fewer
samples will also
work
• Ft = 1,004.255
• UTP = 58.75 ms
• Fourier transform
up by < 100us
(actually unchanged since
it overlaps with testing)
Module 26 - 18
- confidential -
Run the Mixed Signal Workshop Lab
Module 26 - 19
- confidential -
Module 26 - 20
- confidential -
Digital Signal Processing
Rev0343
- confidential -
FLEX DSP
Module 27 - 2
- confidential -
DSP
Ones and Zeros
1111100000011111000001111110
0100010000100000100000100001
0100010000100000000000100001
0100010000011111000000111110
0100010000000000100000100000
0100010000100000100000100000
1111100000011111000001110000
Module 27 - 3
- confidential -
DSP
DSP
1111100000011111000001111110
0100010000100000100000100001
0100010000100000000000100001
0100010000011111000000111110
0100010000000000100000100000
0100010000100000100000100000
1111100000011111000001110000
Module 27 - 4
- confidential -
System Overview
Hardware
Instrument Initiated Move (IIM)
Parallel Processing
Rev0343
- confidential -
DSP
FLEX DSP: Hardware
left hemisphere right hemisphere
SDRAM
SDRAM MBR 50MByte/sec MBM Slot1 Inst Slot13 Inst MBM 50MByte/sec MBR
SDRAM
SDRAM
1.536Gbit
1.536Gbit 1.536Gbit
1.536Gbit
MBR 50MByte/sec MBM Slot2 Inst Slot14 Inst MBM 50MByte/sec MBR
DSP
DSP MBR 50MByte/sec MBM Slot3 Inst Slot15 Inst MBM 50MByte/sec MBR DSP
DSP
MBR 50MByte/sec MBM Slot4 Inst Slot16 Inst MBM 50MByte/sec MBR
MBR 50MByte/sec MBM Slot5 Inst Slot17 Inst MBM 50MByte/sec MBR
Crosspoint
Matrix
Crosspoint Matrix
Crosspoint Matrix
DSP
DSP MBR 50MByte/sec MBM Slot6 Inst Slot18 Inst MBM 50MByte/sec MBR DSP
DSP
MBR 50MByte/sec MBM Slot7 Inst Slot19 Inst MBM 50MByte/sec MBR
Crosspoint
Matrix
MBR 50MByte/sec MBM MBM 50MByte/sec MBR
DSP
DSP MBR 50MByte/sec MBM Slot9 Inst Slot21 Inst MBM 50MByte/sec MBR DSP
DSP
MBR 50MByte/sec MBM Slot10 Inst Slot22 Inst MBM 50MByte/sec MBR
MBR 50MByte/sec MBM Slot11 Inst Slot23 Inst MBM 50MByte/sec MBR
DSP
DSP DSP
DSP
Test Computer MBR 50MByte/sec MBM Slot12 Inst Slot24 Inst MBM 50MByte/sec MBR
TCIO
Left support board (master) Right support board
Module 27 - 6
- confidential -
DSP
FLEX DSP: Hardware
1‘return the relative gain between two input dSPWaves
Steps that occur before code is run
Public Function Gain(SrcInWv As DSPWave, CapInWv As DSPWave, _ on the embedded processors
AbsGain As Double) As Long
SrcSigLvl = SrcInWv.CalcRMS
CapSigLvl = CapInWv.CalcRMS
‘get source signal magnitude
‘get capture signal magnitude
Visual Basic
‘calculate the gain between the input and output signal 2) The Visual Basic is translated to DSP
Processor Byte-Code with a compiler
AbsGain = 20 * Log(CapSigLvl / SrcSigLvl) / Log(10)
End Function
0010110001100011
1010100001101011
1010100001101011
3
1101100010101000
0111010101011101
1010100001101011
1010100001101011
0010110001100011
0111010101011101
0111010101011101
1101100010101000
0010110001100011
0010110001100011
DSP DSP
1010100001101011
0111010101011101
1101100010101000
0111010101011101
0010110001100011
1010100001101011
0010110001100011
1101100010101000
0111010101011101
1101100010101000
1101100010101000
1010100001101011
1010100001101011
1010100001101011
0111010101011101
0111010101011101
0111010101011101
Module 27 - 7
- confidential -
IIM FLEX DSP: Hardware Moves
Overview
Instrument Boards Support Boards
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
Cap Mem
PatGen
PatGen
Module 27 - 8
- confidential -
IIM FLEX DSP: IIM Example
step 0 - setup
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
Cap Mem
PatGen
PatGen
Module 27 - 9
- confidential -
IIM FLEX DSP: IIM Example
step 1: capture samples
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
Cap Mem
PatGen
TRIG
PatGen
Module 27 - 10
- confidential -
IIM FLEX DSP IIM: Example
step 2 – cont. sampling
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
Cap Mem
PatGen
PatGen
Module 27 - 11
- confidential -
IIM FLEX DSP: IIM Example
step 3: datamove
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
Cap Mem
PatGen
PatGen
Module 27 - 12
- confidential -
IIM FLEX DSP: IIM Example
step 4: upon completion of datamove
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
Cap Mem
PatGen
PatGen 50MB/sec
Module 27 - 13
- confidential -
IIM FLEX DSP: IIM Example
step 5: additional trigger available
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
Cap Mem
PatGen
TRIG
PatGen 50MB/sec
Module 27 - 14
- confidential -
IIM FLEX DSP: IIM Example
step 6 – read/write
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
Cap Mem
PatGen
PatGen 50MB/sec
Data can also be written to capture memory while it is being read out
Module 27 - 15
- confidential -
IIM FLEX DSP: IIM Example
step 7 – processing data
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
Cap Mem
PatGen
PatGen 50MB/sec
Once the move is complete, the support board automatically starts processing the
data
This can occur while data from the next test is moving to the support board
Module 27 - 16
- confidential -
IIM FLEX DSP: IIM Example
note: auto pipelining
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
PatGen
TRIG
PatGen 50MB/sec
Module 27 - 17
- confidential -
IIM FLEX DSP: IIM Example
step 8: result storage
PSET
PSET
G4G4
Digitizer
Digitizer
G4
DSP
PatGen
PatGen 50MB/sec
Module 27 - 18
- confidential -
IIM FLEX DSP: IIM Example
step 9: result retrieval, continue testing
PSET
PSET
Digitizer
Digitizer
G4
DSP DSP Answer
DSP Answer
PatGen
DSP Answer
PatGen 50MB/sec
DSP Answer
Module 27 - 19
- confidential -
DSP Procedures
Test Element
DSP Functions
DspWave Object
Rev0343
- confidential -
DSP Procedures
• This section will cover:
– Using the DspProcedure in PDE – the DSP Test element
– Understanding the DspProcedure test element editor
– DspProcedures in VBT
– Using DspProcedures in a test
– DSP Functions
Module 27 - 21
- confidential -
DSP Test Element: in PDE
Example:Adding elements in the Flow Chart
Module 27 - 22
- confidential -
DSP Test Element: in PDE
How to add a dsp test element
This is the default DSPProcedure
test element editor
Module 27 - 23
- confidential -
DSP Test Element: in PDE
DspProcedure Element Editor
The DspProcedure test element
will add fields to the editor area
depending on the DSP Procedure
selected
The DSP Procedure Name drop-
down will list all valid DSP
Procedures
Depending on the input
parameters for the selected
function, new fields will appear in
the Element Editor
Module 27 - 24
- confidential -
DSP Test Element: in PDE
Variables Table showing DspWave Variables
Module 27 - 25
- confidential -
DSP Language
• A DspWave object is a Class Object
• A newly dimensioned DspWave variable can
be thought of as a pointer to a DspWave
object
• A newly dimensioned DspWave variable must
have its reference set before it can be used
– Dim MyWave as DspWave ‘create variable
– Set MyWave = New DspWave ‘allocate new object
Module 27 - 26
- confidential -
DSP Language: Overview
• DSPWave functions work in two ways
– 1: The function returns a value
– 2: The function changes the DSPWave objects data
• Type 1 function example
– The AddScalar function returns a new DSPWave and does not
change the base DSPWave
– To keep the result it must be set to a DSPWave variable
– Set ResultWave = MyWave.AddScalar(2.3)
• Type 2 function example
– The letdata function is done “in place” and returns no value
– MyWave.letdata Array1 ‘MyWave now holds Array1
– Clear, FileImport, LetData, LetDataInt, LetElement,
Selection, Replace, and FillWithConstant are in place
functions
Module 27 - 27
- confidential -
DSP Language:
Create DSP Procedures in VBT under modules folder
The Visual Basic Editor is where DSP
All DSP Procedures are created in code is written and debugged
VBT under the modules folder The
procedure begins with the string The Editor has a host of tools and
DSP, such as DSP_Procedures. features to aid in debugging and
code development
Module 27 - 28
- confidential -
DSP Language:
Adding a DSP Procedure
Open up a test program and enter the VBT environment by clicking Alt+F11
Once in VBT click on the test program name in the project window
From the insert menu select Module. A new module is added to the modules directory.
Click on the module in the project window and rename it to DSP_Procedures in the
Properties window.
Module 27 - 30
- confidential -
DSP Language:
Creating a DSP Function with a DSP procedure (cont.)
Continue to add arguments and use the type ahead feature selecting
from a drop-down list until all the necessary inputs for the dsp analysis
are included. The number of arguments will be defined by the test
being executed
In this case, the data to be analyzed is in the DspWave Capture, a
calculated signal to noise ratio will be returned in snr, and the total
harmonic distortion will be returned in thd
Module 27 - 31
- confidential -
DSP Language:
Creating a DSP Function with a DSP procedure (cont.)
Dimension a
New DspWave
variable
specwave
Module 27 - 32
- confidential -
DSP Language:
Creating a DSP Function with a DSP procedure (cont.)
Module 27 - 33
- confidential -
DSP Language:
Creating a DSP Function with a DSP procedure (cont.)
Module 27 - 34
- confidential -
DSP Language:
Creating a DSP Function with a DSP procedure (cont.)
Module 27 - 35
- confidential -
DSP Language:
Summary of DSP Wave Objects
Module 27 - 36
- confidential -
DSP Language: Example
Module 27 - 37
- confidential -
DSP Language:
Example: Gain Tracking Error Test Flow
Here is the test flow for the gain tracking procedure. In each loop iteration the amplitude of the sourced
signal will be halved, and the gain between the device input and output will be calculated and compared to
the full scale gain. The worst deviation from the full scale gain will be stored and compared against limits.
- confidential -
DSP Language:
Example: Timing Context and Source Signal
Mixed Signal
Timing Context
Module 27 - 39
- confidential -
DSP Language:
VB Code: DSP Procedure
'calculate the gain between the input signal and output signal
6 AbsGain = 20 * Log(CapSigLvl / SrcSigLvl) / Log(10)
End Function
(1),(2):input dsp waves, (3): input for return of result, (4): create local variables,
(5):calculate signal levels, (6): calculate gain from levels and return results
Module 27 - 40
- confidential -
DSP Language:
VB Code: VBT Element Function
'if first loop, store baseline gain, otherwise check gain tracking
If loopCount = 0 Then
BaseLineGain = AbsGain
3 ElseIf Abs(BaseLineGain - AbsGain) > GainErrMax Then
GainErrMax = Abs(BaseLineGain - AbsGain)
End If
(1):Inputs, (2): Static local variable that holds value between function calls, (3): On first loop
store gain in static variable, otherwise check and store gain tracking values, (4): Increment loop
count, (5): Attenuate source amplitude
Module 27 - 41
- confidential -
DSP Language:
Variable Table and Element Editors
Module 27 - 42
- confidential -
DSP Language:
Test Procedure Instance Editor
The instance editor is used to specify any variable procedure inputs
when creating an instance of the procedure
The Instance Editor Wizard will do most of the work of creating
this form, and the user can customize the results in the Visual
Basic Editor (this example has the inputs sorted onto named tabs)
Module 27 - 43
- confidential -
DSP Language:
Test Procedure Instance Editor
Module 27 - 44
- confidential -
Debugging in VBT:
Visual Basic - Setting Breakpoints
A breakpoint is set
in the code by
clicking in the
gutter area where
the red dot is, by
using the debug
menu, or by right
clicking on a line
and selecting
Toggle/breakpoint
Module 27 - 45
- confidential -
Debugging in VBT:
Using the Step Function
Module 27 - 46
- confidential -
Debugging in VBT:
Visual Basic Add Watch
Variables can be
watched in a
special window so
their values can be
seen at all times
The easiest way to
add a watch is to
select the name of
the desired variable
in the code editor,
right click, and
select Add Watch…
This will bring up
the add watch
dialog with different
watch options
Module 27 - 47
- confidential -
Debugging in VBT:
Visual Basic Step
Module 27 - 48
- confidential -
DSP Functions
Rev0343
- confidential -
DSP Functions
Constructs
Allowed constructs
Resume
Module 27 - 50
- confidential -
DSP Functions
VB Functions
Allowed VB functions
Sin
Cos
Tan
Atn
Rnd
Exp
Log
Sqr
Module 27 - 51
- confidential -
DSP Functions
DataTypes
Allowed datatypes
Module 27 - 52
- confidential -
DSP Functions
Some Key Properties and Functions(1)
MyDspWave.SampleSize
MyDspWave.SampleRate
Set A = B.Add(C)
Set A = B.AddScalar(1.0)
Set A = B.Sin
Set A = B.LogBase(double)
value = A.Element(index)
rmsval = A.CalcRMS
sum = A.CalcSum
snr = A.CalcSNR(bin,#harmonics)
Module 27 - 53
- confidential -
DSP Functions
Some Key Properties and Functions(2)
A.CreateSin omega,phase,size
A.LetData dataArray()
Set A = B.Histogram(bins,min,max)
Set A = B.Spectrum
Set A = B.FFT
Set A = B.FFTInverse([newSampSize])
A.Plot(plotName)
Set A = B.Copy
Module 27 - 54
- confidential -
IIM
Deferred Binning
Test Flow
Setup Measure DSP Bin Setup Measure DSP Bin Setup Measure DSP Bin
time
Module 27 - 55
- confidential -
Deferred Binning
Flow Table
Module 27 - 56
- confidential -
-Appendix-
Module 27 - 57
- confidential -
FLEX VB DSP Code Analysis
Module 27 - 58
- confidential -
Some DSP pieces (lpf)
Module 27 - 59
- confidential -
Some DSP pieces(squareFD)
Module 27 - 60
- confidential -
Some DSP pieces(squareTD)
Module 27 - 61
- confidential -
Some DSP pieces(notch)
Module 27 - 62
- confidential -
Some DSP pieces(rms)
Module 27 - 63
- confidential -
Chaining
• DspWave Functions that return DspWaves as
results can be chained
• Here are two examples
– the first takes a waveform, adds 4.2 to each element,
then divides each element of the result by 1.8, the result
is then stored in the original variable using the set
statement
– The second plots the spectrum of a wave with each
element divided by two, the value of MyWave is not
changed
Module 27 - 64
- confidential -
WaveScope
Module 27 - 65
- confidential -
Properties
Basic Properties
MyDspWave.Name
MyDspWave.DataType
MyDspWave.SampleSize
MyDspWave.SampleRate
MyDspWave.CaptureID
MyDspWave.Data
MyDspWave.Domain
MyDspWave.FrequencyResolution
MyDspWave.Power
myDspWave.SpectrumFormat
MyDspWave.Info…
Module 27 - 66
- confidential -
Usage
Basic Usage
Dim A As DspWave
Dim B As DspWave
Dim C As DspWave
Set A = B.Operation(C)
Module 27 - 67
- confidential -
Selections
Selections
A.Selection(offset,stride,size) *
NOTE:
These three A.Selection().Replace B *
calls are done
in place -> A is A.Selection().FillWithConstant k *
changed after
the function A.Selection().Clear *
call
Set B = A.Copy
A.Concatenate(B)
Module 27 - 68
- confidential -
Functions
Arithmetic functions
Set A = B.Abs #
Set A = B.Negate #
Set A = B.Reciprocate #
Set A = B.Add(C) *
Set A = B.Subtract(C) *
Set A = B.Multiply(C) *
Set A = B.Divide(C) *
Set A = B.AddScalar(1.0) #
Set A = B.SubtractScalar(1.0) #
Set A = B.MultiplyScalar(1.0) #
Set A = B.DivideScalar(1.0) #
Module 27 - 69
- confidential -
Functions
Trigonometric functions (not supported for cplx rect data)
Set A = B.Sin
Set A = B.Cos
Set A = B.Tan
Set A = B.Atan
Set A = B.Atan2(C)
Set A = B.LogBase(double)
Set A = B.LogBase10
Set A = B.LogBaseE
Set A = B.ExpBase(double)
Set A = B.ExpBase10
Set A = B.ExpBaseE
Set A = B.SquareRoot
Set A = B.Square
Module 27 - 70
- confidential -
Scalars(1)
Functions which return scalars (not supported for cplx rect data)
value = A.Element(index)
dotprod = A.CalcDotProduct(B)
rmsval = A.CalcRMS
maxmag = A.CalcMaxMagnitude
maxval = A.CalcMaxValue(returnIndex)
meanval = A.CalcMean
minmag = A.CalcMinMagnitude
minval = A.CalcMinValue(returnIndex)
sum = A.CalcSum
sumsqr = A.CalcSumSquares
Module 27 - 71
- confidential -
Scalars(2)
binval = A.CalcAmplitudeFromSpectrum(bin)
freqval = A.CalcFrequencyFromSpectrum(bin)
sfdr = A.CalcSFDR(bin)
sinad = A.CalcSINAD(bin)
snr = A.CalcSNR(bin,#harmonics)
thd = A.CalcTHD(bin,#harmonics)
Module 27 - 72
- confidential -
Data Creation, Import/Export
A.FillWithConstant val
A.FileExport fileName,fileType
A.FileImport fileName,fileType
A.LetData dataArray()
A.LetDataInt dataArray()
A.LetElement
Module 27 - 73
- confidential -
Functions
Functions
Set A = B.Histogram(bins,min,max) *
Set A = B.Integrate(InitVal) *
Set A = B.IntegrateElements *
Set A = B.Differentiate *
Set A = B.Clip(LowLim,HighLim) *
Set A = B.Lookup(C) *
Set A = B.MatrixMultiply(rows,cols,C) *
Set A = B.ExtractImag #
Set A = B.ExtractReal #
Set A = B.CombineRealAndImag(C) *
Set A = B.ExtractMagnitude #
Set A = B.ExtractMagnitudeSquared #
Set A = B.ExtractPhase #
Set A = B.CombineMagnitudeAndPhase(C) *
*not supported for complex rectangular data
#only complex rectangular data supported
Module 27 - 74
- confidential -
Conversion
Set A = B.ConvertToBinary
Set A = B.ConvertToOffsetBinary
Set A = B.ConvertToInteger
Set A = B.ConvertToReal
Set A = B.ConvertFromFrac2
Set A = B.ConvertTo1sComp
Set A = B.ConvertTo2sComp
Set A = B.ConvertToSerial(…)
Set A = B.ConvertToSignMagnitude(#bits)
Module 27 - 75
- confidential -
Bitwise
Set A = B.BitwiseComplement
Set A = B.BitwiseExtract(#bits, BitPosition)
Set A = B.BitwiseAnd(C)
Set A = B.BitwiseOr (C)
Set A = B.BitwiseXor(C)
Set A = B.BitwiseAndScalar(mask)
Set A = B.BitwiseOrScalar(mask)
Set A = B.BitwiseXor(mask)
Set A = B.BitwiseShiftLeft(#bits)
Set A = B.BitwiseShiftRight(#bits)
Module 27 - 76
- confidential -
Comparison
Set A = B.LogicalEqual(C)
Set A = B.LogicalGreater(C)
Set A = B.LogicalGreaterThanOrEqual(C)
Set A = B.LogicalLessThan(C)
Set A = B.LogicalLessThanOrEqual(C)
Set A = B.LogicalNotEqual(C)
Set A = B.LogicalEqualScalar(val)
Set A = B.LogicalNot
Module 27 - 77
- confidential -
Spectral
Spectral functions
Set A = B.Spectrum *
Set A = B.Convolve(C) *
Set A = B.Correlate(C) *
Set A = B.Filter(C,factor) *
Set A = B.FFT *
Set A = B.FFTInverse([newSampSize]) #
Module 27 - 78
- confidential -
Spectral
Set A = B.Resample(rate,samples)
Set A = B.WindowHamming
Set A = B.WindowHanning
Set A = B.WindowHanning2
Set A = B.WindowBlackmann
Module 27 - 79
- confidential -
Display
A.Plot(plotName)
A.PlotRemove(plotName)
A.PlotRemoveAll
Module 27 - 80
- confidential -
Multiple Captures
Functions
A.Next
Module 27 - 81
- confidential -
VBT DSP Function/Procedure Called From a Test Procedure
Select 50 samples
Module 27 - 82
- confidential -
VBT DSP Function/Procedure Called From a Test Procedure(hard coded):
coded): Inserting
Previous Examples Into Flow Chart Editor
The DspProcedure test element is used in the PDE to call DSP Functions
The name of the DSP procedure to be used must be hard coded in the
PDE and cannot be an instance editor input
Select a user
created DSP
procedure from
the list
The editor
changes to match
the selected DSP
procedures
arguments
The DspWave
contains the input
samples captured
previously, the
second argument
will get the result
Module 27 - 83
- confidential -
VBT DSP Function/Procedure Called From a Test Procedure: Instantiating
Instantiating a Procedure
and Adding it to the Flow Table
Module 27 - 84
- confidential -
Module 27 - 85
- confidential -
Digital Source/Capture
Rev0343
- confidential -
Objective
Module 28 - 2
- confidential -
Outline
¾ DSSC Overview
¾ Pattern Tool
¾ Debug Displays
Module 28 - 3
- confidential -
Converter Testing
DSSC Analog
1111110000 Capture
D/A
0111001100
1010101010
DSSC
1111110000
Analog A/D 0111001100
Source
1010101010
Module 28 - 4
- confidential -
Digital Source/Capture
• Each DSSC can send/capture data to the digital channels
in either serial or parallel. When sending/capturing data
in parallel, the data sample or word width can be :
– Up to 32 bits wide
– Up to 16 bits wide
– Up to 8 bits wide.
• When sending/capturing data in serial, the data can be
sent/captured with the most significant bit (MSB) first or
with the least significant bit LSB) first. The sample or
word width can be
– Up to 32 bits wide
– Up to 16 bits wide
– Up to 8 bits wide
Module 28 - 5
- confidential -
HSD Block Diagram
Patterns LVM
Load
SVM circuit
Opcodes Driver
VIH
VT
DSSC Alternate
B Data Pogo
a Alternate Source
c Data Select VIL
MTO Bus
k
p
SCAN
l
PATGEN Detector Voh
a
PPMU
n
e
History Vol
RAM Voh
PPMU
12 Timing
Generators Vol
VIH Driver
VT
Module 28 - 6
- confidential -
Overview
To DSP
Capture and source instruments can exist
on the same HSD board, a DSSC instrument
can span multiple HSD boards.
Module 28 - 7
- confidential -
DSSC & ADB
Sub- SVM LVM
Routine Microcodes
vector
memory
Large
DSSC Source DSSC Capture vector
MTO
memory
SCAN
Alternate Data Bus (ADB)
6 Independent 16-
bit Digital Signal
Engines per Board
for Digital Signal The data may be sent
Source and to any of the 48
Capture. channels over the
Channels 1-48 HSD 200
alternate data bus.
Module 28 - 8
- confidential -
Architecture
A DSSC instrument can
span multiple HSD Ch #1-16 Ch #17-32 Ch #33-48
boards. However, in
such cases, the same
number of engines will
be allocated on each
board.
A digital channel can
28-bit 28-bit 28-bit be connected to a
Module 28 - 9
- confidential -
Programming the Digital
Signal Source/Capture
1. Waveform Creation
Use Wave designer and Mixed-Signal Workshop to create
primitives and sampling size
4. VBT Language
Use interpose functions when necessary
Module 28 - 10
- confidential -
Wave Definition Worksheet
Module 28 - 11
- confidential -
Mixed Signal Worksheet
Module 28 - 12
- confidential -
Procedure Worksheet
Typically a
procedure will
include DSSC
Add a test procedure instrument setup
worksheet and add a elements and a
DSSC procedure name. pattern start
Click on the Ellipsis element which will
button to enter PDE. be used to start or
trigger the
instrument
Module 28 - 13
- confidential -
Test Elements
Module 28 - 14
- confidential -
DSSC Source Element
Module 28 - 15
- confidential -
DSSC Capture Element
Module 28 - 16
- confidential -
Pattern Start Element
Module 28 - 17
- confidential -
Instance Editor
Module 28 - 18
- confidential -
Instance Editor
Module 28 - 19
- confidential -
Instance Editor
Module 28 - 20
- confidential -
Pattern File Commands
The Digital Source and Capture are typically defined and initiated in the
Pattern File.
For the Digital Signal Source Capture (DSSC) instrument, the
instrument statement defines:
¾ Which pins or channels are to be used for DSSC
¾ How each is to be used for source or for capture
¾ Width of the instrument
¾ Connection mask (optional)
¾ Bit order (optional)
¾ Instrument mode— serial or parallel (optional)
¾ Site uniqueness (optional)
¾ Timing mode (optional)
¾ Format (optional)
Module 28 - 21
- confidential -
Pattern File Header Syntax
Source Instrument
instruments = {
pin-item : digsrc : instrument-width : connection-mask : bit-order :
instrument-mode : site-uniqueness : timing-mode : format ;
}
Capture Instrument
instruments = {
pin-item : digcap : instrument-width : connection-
mask : bit-order : instrument-mode : site- uniqueness : timing-mode :
format ;
}
DSSC Language
Module 28 - 22
- confidential -
Header Syntax Examples
The following are some examples of valid instrument statements:
Parallel Example:
Instruments={
(A7, A6, A5, A4, A3, A2, A1): digsrc:7:connection_mask=00fe:timing_mode=dual;
(RBus, GBus, BBus): digsrc: 8;
(RBus, GBus, BBus): digcap: 8; In the parallel mode of
operation, pin order is always
}
determined by the test pattern.
Module 28 - 23
- confidential -
Pattern File Body Syntax
asine1 is the
General Syntax: name of a
primitive
(pin-item: instrument = microcode) created using
Wave
designer and
Mixed Signal
Workshop.
Module 28 - 24
- confidential -
Source Microcodes
• start <wave name> (512 different names per pattern)
Load a source segment from memory defined by wavename and resets
• starte <wave name>
Load a source segment from memory defined by wavename but wait for
current waveform to complete before beginning.
• start_inst_cond <wave name>
Normal start, but instrument condition is enabled.
• shift
Serially shift the data MSB or LSB as controlled by the instrument setup.
• send
Send Data to the digital channel(s).
• nop
No operation
• stop
Immediately stops the source state machine and clears the data FIFO
Module 28 - 26
- confidential -
DigCap Opcode Display
Module 28 - 27
- confidential -
DigSrc Opcode Display
Module 28 - 28
- confidential -
Source Debug Display
Select Source or
Capture from the
drop down menu.
DIB Slot,
Instrument slot,
ADB line
Source Waveform
Settings
Instrument Slot,
Engine selected.
Module 28 - 29
- confidential -
Capture Debug Display
Module 28 - 30
- confidential -
16-bit Parallel, 50Mbps
In this example:
16 digital channels
16 ADB bits
1 DSSC engine is used
DUT
16 digital channels
16-bits of ADB
Module 28 - 31
- confidential -
32-bit Parallel-dual, 100Mbps
In this example:
32 digital Channels
14 channels from slice 1 any channels
14 channels from slice 2 any channels
4 channels from slice 3 any channels
64 ADB bits – 2 bits per channel DUT
4 DSSC engines are used – 16 bits each Remember: In dual mode
2 adb bits are required for
14 channels 14 channels 4 channels each digital channel.
64-bits of ADB
Module 28 - 32
- confidential -
Width of DUT data bus
DSSC Modes - Examples
Instruments ADB
Engines Channels
Mode Width Speed per board Lines
Used Used
Used
Parallel_dual 32 100 1 4 32 64
Parallel_dual 16 100 2 4 32 64
Parallel_dual 8 100 5 5 40 80
Parallel_single 32 50 1 2 32 32
Parallel_single 16 50 3 3 48 48
Parallel_single 12 50 4 X 4 = 48 48
Serial_dual 32 100 6 6 6 12
Serial_dual 16 100 6 6 6 12
Serial_single 32 50 6 6 6 6
Serial_single 16 50 6 6 6 6
Parallel and serial modes can exist on the same HSD board
Module 28 - 33
- confidential -
Appendix
Rev0343
- confidential -
DSSC Rules
No Pinmap or channel map entries required specifically for DSSC
if a job contains 10 test patterns, and each of these patterns makes use of 1
digital signal source, there are 10 uniquely identifiable instances of the
instrument.
These 10 instances of the digital signal source or capture may or may not
make use of the same DSSC engine(s).
Module 28 - 35
- confidential -
DSSC Language
Instrument width
instrument-width specifies the width of the instrument used for source or capture. This is a
required field.
It is used as follows:
For parallel instruments, instrument-width should equal the total number of pins in the pin
items, except in the case of source fanout.
For serial instruments, instrument-width should equal the number of shifts per word in the
pattern.
To use source fanout, the number of pins must be an integer multiple of the number of bits.
The number of bits for parallel instruments equals the instrument-width. For serial
instruments, the number of bits equals 1. (Capture instruments cannot fanout; each pin
item must have its own capture instrument. This case is not valid for a capture
instrument.) If source fanout is used, each opcode statement for the shared instrument
must specify the same pins in exactly the same way.
Module 28 - 36
- confidential -
DSSC Language
Connection Mask
connection-mask is an optional field used only for parallel modes to indicate the output-bit-to
pin connections. It is only relevant when the number of bits is not equal to 8, 16, or 32. The
syntax is connection_mask=<mask>. This mask must be specified in hex format, and its
maximum value is 32 bits (0xffffffff). If this field is not specified, it defaults to lsb justified.
Bit Order
bit-order is an optional field used only for serial modes to indicate the bit order of the data. The
bit-order value is either msb, meaning the most significant bit is shifted in first, or lsb, meaning
the least significant bit is shifted in first. If the DSSC is in a serial mode, and this field is not
specified, it defaults to msb.
Instrument Mode
instrument-mode is an optional field used to indicate a serial or parallel instrument. The
instrument-mode value is either serial or parallel. If the field is not specified, it defaults to
parallel.
Module 28 - 37
- confidential -
DSSC Language
Site Uniqueness
site-uniqueness is an optional field used only for source instruments to specify source
instrument sharing across sites, where possible. The site-uniqueness value is either
unique_sites or nonunique_sites. If this field is not specified, it defaults to
unique_sites.
Timing Mode
timing-mode is an optional field used to specify the timing mode of the DSSC. The
syntax is timing_mode=<mode>. The valid values for the mode are patgen, single or
dual. If the value is patgen, then the DSSC will run in the same timing mode as the
patgen. If the value is single or dual, the DSSC will run in single or dual timing modes
regardless of the patgen. If this field is not specified, it defaults to patgen.
Format
format is an optional field used to indicate the format of the data being sourced or
captured. The syntax is format=<format>. The valid values for the format are binary,
offset_binary, ones_complement, twos_complement, sign_magnitude,
format_unknown, or frac_twos_complement. If this field is not specified, it defaults to
binary.
Module 28 - 38
- confidential -
Source VBT Language
TheHdw.DSSC.Pins(Din).Pattern(Pattern).Source.Waveforms
Module 28 - 39
- confidential -
Source VBT Language
TheHdw.DSSC.Pins(<pin spec>).Pattern(<pattern spec>).Source
Pin(PinSpec As String) As DriverDSSCPins Pattern(PatternSpec As String) As DriverDSSCPattern
ApplyMSTiming(resourceID As String)
Module 28 - 40
- confidential -
Digital Signal Capture VBT Language
Module 28 - 41
- confidential -
Digital Signal Capture VBT Language
.Waveforms.
TheHdw.DSSC.Pins(Din).Pattern(Pattern).Capture.Waveforms.Item.DSPWave.Pin.Chan(
Module 28 - 42
- confidential -
VBT Language
TheHdw.DSSC.Reset
TheHdw.DSSC.ListInstruments
Module 28 - 43
- confidential -
BBAC
Revision: 0343
- confidential -
Main Objective
• FLEX User-Model
– Worksheet and related tools
OUT +
Source Zero-Order
PGA
Memory Hold DAC LPF(s)
OUT -
• Source Memory used to store digital samples for conversion into a continuous time
waveform
• D/A Converter converts waveform data into stepped analog voltages
• Low Pass Filter smoothes stepped signal into a continuous waveform
• Programmable Gain Amplifier adjusts the signal amplitude
• Output Driver
INPUT + Capture
PGA ADC
INPUT - LPF(s) Memory
SOURCES:
DCVI DCVI AC Source used for power, automotive and low-res converters
BBACSRC Broad Band AC Source used for audio, baseband and DSL
VHFACSource Very High Frequency AC Source for video and consumer device testing
DIGITIZERS:
DCVI DCVI AC Capture used for power, automotive and low-res converters
BBACCAP Broad Band AC Capture used for audio, baseband and DSL
VHFACCapture Very High Frequency AC Capture for video and consumer device testing
UCode
PPMU
PPMU
PPMU
PPMU
PPMU
High BW DataPort
PPMU
PPMU
PPMU
PPMU
PPMU
1 2 3 4 5 6
1. Normalized digital samples of the waveform are loaded into source memory (SMEM).
The source memory is 4M samples in depth.
2. Digital resampling is used to convert the data from the user sample rate (Fs), to the
insturments fixed 100Msps sample rate. This data is then passed through a digital to
analog convertor to generate an analog source signal.
3. The analog signal is then passed through a fixed 15MHz low pass filter to remove
images that were generated from the conversion process.
1 2 3 4 5 6
4. The analog signal passes through a voltage ranging stage, to attenuate the signal
to the desired amplitude. Note that the impedance is controlled to maintain a 50Ω
output.
5. Common mode offset can be added to the source signal using the bias voltage
input on the reference pin, and then additionally using the DC baseline circuitry.
6. The differential signal is delivered to the DUT on the Positive and Negative source
pins.
1 2 3 4 5 6 7 8
1. The signal to be captured enters the BBAC capture differential input pins.
2. If necessary, the signal can be AC coupled to remove the DC components present in
the input signal. Typically, this is only necessary if the input signal has an AC + DC
voltage level that exceeds the instrument compliance (+/-7V with respect to CCC).
3. The DC baseline removal circuitry can be used to adjust the DC signal level of either
the positive pin, the negative pin, or both. This is useful for removing differential
offset in the signal so that a smaller capture range can be used, and so that the AC
component of the signal will make better use of the instruments dynamic range.
PRELIMINARY VERSION Module 29 - 12
- confidential -
BBAC Capture Block Diagram
1 2 3 4 5 6 7 8
4. The voltage ranging circuitry is used to scale the signal to ensure that it fits within
the dynamic range of the analog to digital converters. The range specifies the
maximum instantaneous voltage difference that can be applied between the
positive and negative input pins.
5. The scaled input signal passes through a 15MHz low pass filter to attenuate out of
band frequency components that would result in aliased signal components.
6. The filtered analog signal is then converted to a digital signal using a combination
of low frequency and high frequency analog to digital converters.
PRELIMINARY VERSION Module 29 - 13
- confidential -
BBAC Capture Block Diagram
1 2 3 4 5 6 7 8
7. The high and low frequency digital signals are recombined into one signal by a
digital crossover filter. This fixed data rate signal is then resampled to the user’s
sample rate through states of interpolation and decimation. The signal is then
passed through a ¾ band filter, which removes any aliasing that was introduced
by the resampling process.
8. Digital samples from the resampling and filtering stage are routed to a 1M sample
capture memory. When the capture is complete, the BBAC automatically transfers
the capture data to the support board for DSP processing
• The BBAC Board may be installed in any and all of 24 universal test head slots
• For the following reasons, it is recommended that slot selection guidelines are
adhered to as much as possible when a tester is configured with the BBAC:
– Minimize the number of different configurations within an organization,
which simplifies resource and production planning
– Reduce the likelihood of not being able to move an application from one
tester to another without having to make hardware changes to the second
tester
– Standardize tester configurations at test houses
– Increase the probability of finding a matching tester when outsourcing test
requirements
• Typical test head slots (in recommended order) for the FLEX BBAC are:
1, 14, 13 and 26
• AC Coupling
Maximum DC Input ± 150 Vdc (nominal)
LF cutoff, precharge OFF < 1Hz (nominal)
LF cutoff, precharge ON 68kHz
7
1
Pinmap Specification Sheets 3 Mixed-Signal Pattern
Calls
6a
0 Microcode
DUT pin: name, type Global Wave 1
Specs Definition 2
Wave ASCII
Designer 3 file
2 Tool
Visual Basic Channel Map DC Specs Calls
Interpose Calls 6b Returns
Tester Pin AC Specs Returns
Functions Pattern Tools
channel name
Mixed-Signal
Timing Editor
Mixed-Signal Debugger
8 4 5 Workshop
User defined Tool
procedures Procedures Pin Levels Time Sets
via PDE tool
Returns
Invoke TDE
9 for Hardware Displays
Visual Basic Test
Interpose Instances
Functions
Order
10 Default Programming Sequence:
Tests
Flow Worksheets
Table 1 to 6 7 8 to 10
Opcode (sequencing) Additional Worksheets P attern Worksheets
Worksheets and PDE Tools and PDE
Expected Capture
Frequency
Capture Sample Rate
Capture Sample Size
Source Frequency
Target Capture
Frequency
Source Frequency
• The BBAC Source has a miminum sample size to realize the ESSD performance.
This minimum sample size guarantees that the resampling process meets all
the spur and distortion requirements of the instrument.
• The minimum sample size required is the larger of 20 or the next higher integer
of the ratio of the user sample rate to 100Msps, times 8:
Fs
N = max[ 20 || ceiling ( ) × 8]
100 Msps
Minimum Capture
Bandwidth
20
A tte n u a ti o n
0
-20
-40
N yq u i s t
-60 F re q u e n c y
dB -80
A li a s i n g
-1 00
-1 20
-1 40
-1 60
-1 80
0 1 /8 1 /4 3 /8 1 /2 5 /8 3 /4 7 /8 1
F / Fs
VBT Example:
Public Function Connnect_BBAC_Source(SrcPin As String) As Long
' typical differential instrument connection to DUT/DIB
thehdw.BBACSource(SrcPin).Connect tlBBACSourceFromInst, tlBBACSourceToDUT
End Function
With thehdw.BBACSource(SrcPin).Signals.Item(SigName)
.WaveDefinitionName = "aSine“
.SampleRate = 22500
'.CycleCount = 3
.Phase = 45
.LoadSettings
End With
End Function
Programming Tip:
Using the auto range feature simplifies test development and picks
a range for optimal dynamic performance. However, re-ranging
requires additional instrument settling time.
VBT Example:
Public Function Start_BBAC_Source (SrcPin As String, SigName As String) As Long
' perform a start immediate on the default waveform
thehdw.BBACSource(srcpin).Signals.Item(SigName).Start
End Function
VBT Example:
Public Function Connnect_BBAC_Capture(CapPin As String) As Long
' typical differential instrument connection to DUT/DIB
thehdw.BBACCapture(CapPin).Connect tlBBACCaptureFromInst, tlBBACCaptureToDUT
End Function
Programming Tip:
When DC coupled, the BBAC Capture requires significantly less
settling time as compared to AC coupling. Accordingly, unless
necessary for device/test conditions, using the BBAC Capture DC
coupled is recommended.
Programming Tip:
As can be noticed by the test element, the majority of the BBAC
Capture Setup parameters are not required. During initial test
development it helps to focus on the critical/required test
parameters.
With thehdw.BBACCapture(CapPin).Signals(CapSig)
.SampleRate = 150000
.SampleSize = 512
.CycleCount = 1
.LoadSettings
End With
End Function
VBT Example:
Public Function Trigger_BBAC_Capture (CapPin As String, CapSig As String) As Long
' perform a trigger using the current instrument settings.
thehdw.BBACCapture(CapPin).Signals(CapSig).Trigger
End Function
• Instantiating a Procedure
7
1
Pinmap Specification Sheets 3 Mixed-Signal Pattern
Calls
6a
0 Microcode
DUT pin: name, type Global Wave 1
Specs Definition 2
Wave ASCII
Designer 3 file
2 Tool
Visual Basic Channel Map DC Specs Calls
Interpose Calls 6b Returns
Tester Pin AC Specs Returns
Functions Pattern Tools
channel name
Mixed-Signal
Timing Editor
Mixed-Signal Debugger
8 4 5 Workshop
User defined Tool
procedures Procedures Pin Levels Time Sets
via PDE tool
Returns
Invoke TDE
9 for Hardware Displays
Visual Basic Test
Interpose Instances
Functions
Order
10 Default Programming Sequence:
Tests
Flow Worksheets
Table 1 to 6 7 8 to 10
Opcode (sequencing) Additional Worksheets P attern Worksheets
Worksheets and PDE Tools and PDE
• Create an analog loopback test program using the BBAC Source and BBAC
Capture instruments.
• PSets
• Pattern Microcodes
29
fhsd = 100MHz •2 29
29 I ≥ 1, 0 < J < 2
2 •I+J
fhsd = 53,687,091,200,000,000.00 Hz
N
(N ≥ 536,870,912)
40
fbbac= 100MHz •2 40
40 I ≥ 1, 0 < J < 2
2 •I+J
fbbac = 109,951,162,777,600,000,000.00 Hz
N
(N ≥ 1,099,511,627,776)
Add new PSet “a” to all the instument instances behind pin Ain
TheHdw.BBACSource.Pins(“Ain”).PSets.Add “a”
Set all the parameters of PSet “a” (Amplitude = 2.2, SampleRate = 44kHz,VoltageRange = 2.56)
TheHdw.BBACSource.Pins(“Ain”).PSets(“a”).Set 2.2, 44000, 2.56
Adding a PSet that already exists resets the PSet back to its default state (Amplitude of 1.0V, SampleRate of
10MHz, VoltageRange of 1.28V, all parameters set to tlPSetUseValue).
TheHdw.BBACSource.Pins(“Ain”).PSets.Add “a”
Apply PSet “a”. Since SampleRate is the only tlPSetUseValue parameter SampleRate will be programmed to
1.5MHz, while Amplitude and VoltageRange remain unchanged.
TheHdw.BBACSource.Pins(“Ain”).PSets(“a”).Apply
Add and setup PSet “a” on pin “Aout”. This sets BlockCount to 20, BlockSize to 1024, BlockSpacing to
500, ExtraSamples to 100, SampleRate to 400kHz, and VoltageRange to 5.12V.
TheHdw.BBACCapture.Pins(“Aout”).PSets.Add(“a”).Set 20, 1024, 500, \
100, 400000, 5.12
Try to apply PSet a. This will result in a run-time error, because ExtraSamples.Mode, BlockSize.Mode and
BlockCount.Mode all have to be set the same for the current BBAC Capture.
TheHdw.BBACCapture.Pins(“Aout”).PSets(“a”).Apply
Disable BlockSize and BlockCount from PSet a so the PSet can be applied.
TheHdw.BBACCapture.Pins(“Aout”).PSets(“a”).BlockCount.Mode = tlPSetNoChange
TheHdw.BBACCapture.Pins(“Aout”).PSets(“a”).BlockSize.Mode = tlPSetNoChange
Now the PSet can be applied. This will program ExtraSamples to 100, SampleRate to 400kHz and
VoltageRange to 5.12.
TheHdw.BBACCapture.Pins(“Aout”).PSets(“a”).Apply
START1 <wavename> Start sourcing the named waveform immediately but do not repeat it.
Start sourcing the named waveform at the end of the currently running
STARTE <wavename> segment and repeat it indefinitely.
Start sourcing the named waveform at the end of the currently running
START1E <wavename> segment but do not repeat it.
Stop sourcing any continuously running (only if started with START or
STOP STARTE) segment immediately. Upon a STOP, the BBAC Source jumps to the
last sample in the segment and continuously sources the value.
Forces the source channel clock into phase alignment with the High Speed
RESYNC Digital T0 clock
PSET <name> Change the setup parameters to those specified in the named Parameter Set.
Forces the capture channel clock into phase alignment with the High Speed
RESYNC Digital T0 clock
PSET <name> Change the setup parameters to those specified in the named Parameter Set.
ENABLE_INST_COND Enables the instrument condition bit to drive the condition bus.
DISABLE_INST_COND Disables the instrument condition bit to drive the condition bus.
Enables the alarm window for Capture alarms. Alarm conditions that exist
ENABLE_ALARM after this opcode are reported.
Disables the alarm window for Capture alarms. Alarm conditions that exist
DISABLE_ALARM after this opcode are reported.
• Modify the Lab 1 solution to use pattern microcode control for the BBAC
Source and Capture Instruments
A B
1
2 Src2+
3 Src1+ Src2sh
4 Src1sh Src2Ref
5 Src1Ref Src2Refsh
6 Src1Refsh Src2-
7 Src1-
8 DGSs2
9 DGSs1 DGSs2sh
10 DGSs1sh Cap2+
11 Cap1+ Cap2sh
12 Cap1sh DGSc2
13 DGSc1 DGSc2sh
14 DGSc1sh Cap2-
15 Cap1-
A B A B C D
16 Accs1- 31
17 Accs1+ Accs1-sh 32
18 Accs1+sh Accs1Ref 33
19 Accs2Ref Accs1Refsh 34
20 Accs2Refsh Accs2- 35
21 Accs2+ Accs2-sh 36 DIBtrigs2 DIBtrigc2
22 Accs2+sh AccCap1- 37 DIBtrigs1 DIBtrigs2sh DIBtrigc1 DIBtrigs2sh
23 AccCap1+ AccCap1-sh 38 DIBtrigs1sh DIBtrigc1sh
24 AccCap1+sh AccCap2-
25 AccCap2+ AccCap2-sh
26 AccCap2+sh
27
28
29
30
• Sample memory and control memory are stored in the source memory, or
SMEM.
samples to be calculated
user-specified sample
time-domain samples
* user-specified sampling frequency
SLIDE
CONVOLUTION
• For more information on Noise Shaping, please see Noise Shaping Requantization
0dB
-80dB
15MHz 65MHz
(diff)
REF
LPF
3dB 3dB 3dB 3dB
NEG
• If the peak to peak amplitude of the analog input signal is greater than
10.24Vpp, then it is necessary to attenuate the signal to avoid clipping:
CLIPPED
+ 5.12 V
+ AMPLITUDE
FU LL -S CA LE
R AN GE OF
AIN = 4.0 Vpk 0 0 V ou t
AD C
SCALE FACTOR = 2
– AMPLITUDE
– 5.12 V
CLIPPED
F U LL -S CA LE
0 0 V out R AN G E O F
AIN
ADC
– AMPLITUDE
– 11
- V
5.12V
- 3dB + 3dB
- 3dB + 3dB
- 3dB + 3dB
.
.
.
+ 3dB
0dB
-55dB
15MHz 25MHz
ADC
Crossover Filter
ADC
FS
This ADC structure is optimized to give the best performance in the full
15MHz bandwidth.
1V
calculated samples
samples to be calculated
... ... 100 Msps sample
... ...
new sample at the user-defined
sample rate
time-domain samples
SLIDE
CONVOLUTION
PRELIMINARY VERSION Module 29 - 86
- confidential -
5b
Decimating Filter
• The result equals M * Fs, where 1 ≤ M ≤ 16, and Fs is the user defined
sample rate.
1 1
≥
M 16
-20
-40
Rolloff:
-60
Nyquist
Frequency
3/8 * Fs → Fs/2
dB -80 - 3dB at 0.47 * Fs
-100
Aliasing
-12dB at Fs/2
-120
DSP DSP
BBACCAP #2 CMEM
BBACCAP #3 CMEM
• Acronyms
• References
• Resampling
• Expansion
• Decimation
• Sample Rate Conversion
• Oversampling
• Dither
• Decibel (measurement scale)
• Noise Shaping Requantization
• Multirate Sampling
• Digital Low-pass Filter/Band Limiting Filter
• Digital-to-Analog Conversion
• Analog-to-Digital Conversion
• Conceptually, a signal which has been sampled at one sample rate can be
converted to a continuous waveform, and then resampled at a different
sampling frequency:
Fs1 Fs2
n
x , n/L integer
y[ n ] = L
0,
n/L noninteger
x[n]
0 1 2 3 4 5 6 7 8
n
y[n] = 0 y[n] = x
2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
x[n]
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
y[n] = x[2n]
0 1 2 3 4 5 6 7 8
• Although traditionally M/L has been small, such as ¾ and ½, in ATE DSP M/L ratio
can be ANY double-precision value.
x[n]
y[n]
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Digital-to-Analog Conversion
r h old
- or de
ze ro
yˆ[t ] z[t ]
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
analog LPF
• By oversampling a signal, one can lower the noise power in the band of interest,
i.e., DC to Nyquist.
• In the following example, the noise power is lowered by a factor of 3dB, when
sampling the signal at twice the initial sample rate (2*Fs).
V2
Signal
Noise
V2
DC Fs/2 Fs 2Fs
• Expected SNR (with a full scale signal) due to quantization noise can be calculate,
over the Nyquist band, as:
• Since the total noise power is in fact the area limited by DC and the actual
sample rate, by changing sampling frequency one can change the actual noise floor.
+
LPF
Amp ADC
-
DAC
• In the example below, most of the noise has been moved to beyond Fs/4, which in
this case is out of the band of interest, that is, where the signal’s frequency
component of interest is located.
• However, notice that none of the noise has been eliminated, since the area between
DC and Fs remains the same:
area of = area of
Signal
V2
Noise
• Example:
In certain circumstances, X bits at Y Msps = 2X bits at Y/2 Msps,
a X-bit DAC at Fs could perform similarly as a X/2-DAC at 2Fs Msps:
1/FS
Fs
1 0 1 0 1 0 1 0 4-bit DAC
data set
t + logic
1/(2FS) 1/(2FS)
2Fs
X H
dot-product
(inner-product)
fcutoff fcutoff
=
fcutoff
Σxixhi
PRELIMINARY VERSION Module 29 - 113
- confidential -
Digital-to-Analog Conversion
1 data set (words)
00110001
x[n] 2
00110010
00110011
lookup table at Fs
...
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
00110010
xˆ[t ] 3
zero-order hold*
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
* A first-order holder can be
used. Instead of maintaining the x[t ] 4
sample’s value for 1/Fs, the first-
order holder approximates x(t)
by straight-line segments which analog LPF
have a slope that is determined
by the current sample x[i] and
the previous sample x[i-1]. ++
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
++ based on Digital Signal Processing, by Proakis and Manolakis
PRELIMINARY VERSION Module 29 - 114
- confidential -
Analog-to-Digital Conversion
sampling
x(t ) δ [n]
1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Revision: 0343
PRELIMINARY VERSION - confidential -
Main Objectives of Class
PRELIMINARY VERSION
Session 1
• VHFAC Overview
– High Level Description
– Physical Description
– Licensing
– Use with FLEX Microwave Option
– VHFAC Characteristics
• Source
• Capture
• Time
• Serial Bus
• Trigger Control
• PPMU
PRELIMINARY VERSION
VHFAC
Complete VHF Test Option
Pat
Gen
Up to 2 Source & 2 Capture Instruments
PSETS
PPMU
Features:
SRC
- Independent Instrument Clocks
Event Lines
- Precisely Synchronized Sources
PPMU
- Event Lines Sync’d to Source for TV/VTR
CAP
- Multiport Capture Memory
Move
Bus
- Instrument Initiated Move
TMU
PPMU
- Time Measurement Unit
- Serial Bus Digital
Serial
PPMU - Trigger Control
Bus DIB and Internal Instrument Initiated
- PPMU per I/O
Trigger
DIB Triggers
Control
PRELIMINARY VERSION
Physical Board
Teradyne Part Number 810-330-xx
PO W ER BO A RD
M O TH ER BO ARD
RID ER RI D ER
BO ARD B O ARD
STI
FFEN ER
FRAME
board is composed of a
frame, a power board, B AC KPLANE C O NN . AU X
C O AX C O N N. CO NN
PRELIMINARY VERSION
DIB Interface Cable
PRELIMINARY VERSION
VHFAC Licensing
Instrument Enabling Licenses
Boards
Flexible Configuration
Sources Captures
0 0
- Sources can be selected
1 1 1 0, 1, 2, 4, 6, 8, …, 48
2 2 All with same frequency license
2 4 4
3 6 6 - Capture can be selected
4 8 8 0, 1, 2, 4, 6, 8, …, 48
All with same frequency license
PRELIMINARY VERSION
Mother Board
PO W ER BO A RD
M O TH ER BO ARD
RID ER
Time Trigger RI D ER
Control
BO ARD B O ARD
STI
FFEN ER
Serial Bus
FRAME
PPMU
PPMU
PPMU
PPMU
STU D X 12
B AC KPLANE C O NN . AU X
C O AX C O N N. CO NN
PO G O A SSY
PRELIMINARY VERSION
VHFAC used with Microwave
Microwave Transmit and Receive
Via VHFAC AUX Connector,
PRELIMINARY VERSION
VHFAC Source
Arbitrary Waveform Generator
Condition Bit
Filters
Pattern DAC AC/ DC Single End to
2 MHz
Trigger Memory 400 Msps Coupling, Differential
5.5 MHz
8 MB 14 Bits DC Offset Converter
(Video)
10 MHz
20 MHz
40 MHz
80 MHz
160 MHz
Bypass
Event
Trigger
Memory 8 Event Lines
Control
2 MB
Features:
- High Speed, High Resolution DAC
- DC to 160MHz Analog bandwidth
- Wide Filter Selection
- Harmonics and Spurs –70dB @ 10MHz, –55dB @ 40MHz
- Large Waveform and Event Memory
- Event Lines Synced to Source for TV/VTR
- Multiplexed, Single-ended or Differential Outputs
PRELIMINARY VERSION
VHFAC Source Characteristics
VHFAC Source
AWG Source synchronized with video event lines
Specification Conditions Min Max Units Notes
Sample Rate 0.003434 400 Msps
Resolution 14 bits
PRELIMINARY VERSION
VHFAC Capture
High Resolution Digitizer
Hi Res ADC Filters
Lightening Bus 80 Msps 0.5MHz
14 Bits 2 MHz Peak Detector Impedance
6.1 MHz
Capture Matching,
(Video) Ranging,
Trigger Memory Single End to
10 MHz DC Removal
1 MSample Differential
20 MHz Track and Converter
Hi Speed ADC 40 MHz Hold
Condition Bit 125 Msps 62.5 MHz
12 Bits Bypass
Trigger
Control
Features:
- High Speed and High Resolution ADCs
- Harmonics and Spurs -70dB @ 5Mhz
- Undersampling: DC to 300MHz
- Wide Filter Selection
- Multiport Capture Memory
- Peak Detector for Fast Peak Voltage Measurements
- Multiplexed, Single-ended or Differential Inputs
- Input Voltage Range: 8 mV to 8 V peak
- Instrument Initiated Move Client
PRELIMINARY VERSION
VHFAC Capture Characteristics
VHFAC Capture
Four mode digitizer instrument: high resolution, high speed, undersampling, peak detect
Specification Conditions Min Typ Max Units Notes
High Resolution Sample Rate 0.003343 80 Msps 14 bit resolution
Peak Detector
Frequency Range 0.1 100 MHz 14 bit resolution
Detection Pulse Width 2.0 ns Typical
Reset Pulse Width 1 us Typical
PRELIMINARY VERSION
VHFAC Time
Time Measurement Unit
Trigger 1 (CH3)
Trigger 2 (CH4)
Front End 1
Event A
Single
Capture Time CH1
Memory A Stamper A
Differential
Move Bus
Features:
- Period, Frequency, Duty Cycle, Pulse Width, Rise/Fall Time,
Propagation Delay, Event Capture Measurements
- Average, Minimum, Maximum of multiple samples, Single-
shot, Variation over Samples and over Time
- Edge, Period, Signal-to-Signal, Jitter Frequency Analysis,
Peak-to-Peak and RMS Jitter Measurements
- Single ended and differential inputs
PRELIMINARY VERSION
VHFAC Time Characteristics
VHFAC TMU
Mid-performance time measurement unit with dual time stampers and interleavers
PRELIMINARY VERSION
VHFAC Serial Bus
PRELIMINARY VERSION
VHFAC Trigger Control
Trigger
To DIB
Control
PRELIMINARY VERSION
VHFAC Trigger Control Characteristics
IOL 24 mA Typical
PRELIMINARY VERSION
1/2
Parallel Test Architecture
DIB Access
DIB Access DC30
1A
DCVI
- Reduce the number of relays
SRC 1 1B on DIB
DIB Access
2A
- Enable true parallel testing by
SRC 2 2B allowing multiple devices to
DIB Access
access resources simultaneously
1A
DUT
CAP 1 1B
DIB Access
2A
CAP 2 2B
DIB Access
TMU CH1
CH2
PRELIMINARY VERSION
2/2
Parallel Test Architecture
DIB Access
1:2 MUX Channels
1A
SRC 1 1B
- Reduce the number of relays
DIB Access
on DIB
DUT 0
2A
SRC 2 2B - Assign instrument to 2 DUTs
or 2 pins on one DUT
DIB Access
CAP 1
1A
1B
- Trade off parallel test for
reduced capital cost
DIB Access
2A
CAP 2 2B DUT 1
DIB Access
TMU CH1
CH2
PRELIMINARY VERSION
Session 2
PRELIMINARY VERSION
VHFAC in FLEX
X 24 Slots
Configuration Rules:
PRELIMINARY VERSION
VHFAC in FLEX
TEST TEST
HEAD DIB Pogo DIB Apps DIB DIB Pogo HEAD
SLOT Instrument Description SLOT Space SLOT Description Instrument SLOT
1 1 26
2 27 26
2 3 28
4 29 25
3 VHFAC_1 5 30 VHFAC_4
VHFAC_1 6 31 VHFAC_4 24
4 7 32
Support Board 8 33 Support Board 23
5 9 34
10 35 22
6 11 36
12 Apps 37 21
7 Support Board 13 38 Support Board
(Master) 14 Space 39 (Slave) 20
8 15 40
16 41 19
9 17 42
18 43 18
10 19 44
Support Board 20 45 Support Board 17
11 VHFAC_3 21 46 VHFAC_2
VHFAC_3 22 47 VHFAC_2 16
12 23 48
24 49 15
13 25 50
14
PRELIMINARY VERSION
VHFAC Pinout
1 15 38
D
C
B
CABLE
A
PRELIMINARY VERSION
VHFAC Pinout (DIB View)
VHFAC Hardware Pinout (DIB view) VHFAC Software Tester Channel Type
A B C D A B C D
1 Gnd Gnd Gnd Gnd 1 Gnd Gnd Gnd Gnd
2 Gnd src2a+ Gnd src2b+ 2 Gnd VHFACSourcePrimaryPos Gnd VHFACSourceSecondaryPos
3 src1a+ Gnd src1b+ Gnd 3 VHFACSourcePrimaryPos Gnd VHFACSourceSecondaryPos Gnd
4 Gnd nc Gnd nc 4 Gnd nc Gnd nc
5 nc Gnd nc Gnd 5 nc Gnd nc Gnd
6 Gnd src2a- Gnd src2b- 6 Gnd VHFACSourcePrimaryNeg Gnd VHFACSourceSecondaryNeg
7 src1a- Gnd src1b- Gnd 7 VHFACSourcePrimaryNeg Gnd VHFACSourceSecondaryNeg Gnd
8 Gnd DGSs2 Gnd nc 8 Gnd DGSs2 Gnd nc
9 DGSs1 Gnd nc Gnd 9 DGSs1 Gnd nc Gnd
10 Gnd cap2a+ Gnd cap2b+ 10 Gnd VHFACCapturePrimaryPos Gnd VHFACCaptureSecondaryPos
11 cap1a+ Gnd cap1b+ Gnd 11 VHFACCapturePrimaryPos Gnd VHFACCaptureSecondaryPos Gnd
12 Gnd DGSc2 Gnd nc 12 Gnd DGSc2 Gnd nc
13 DGSc1 Gnd nc Gnd 13 DGSc1 Gnd nc Gnd
14 Gnd cap2a- Gnd cap2b- 14 Gnd VHFACCapturePrimaryNeg Gnd VHFACCaptureSecondaryNeg
15 cap1a- Gnd cap1b- Gnd 15 VHFACCapturePrimaryNeg Gnd VHFACCaptureSecondaryNeg Gnd
16 Gnd accs1- Gnd event2_1 16 Gnd accs1- Gnd VHFACSourceEvent0
17 accs1+ Gnd event1_1 Gnd 17 accs1+ Gnd VHFACSourceEvent0 Gnd
18 Gnd nc Gnd event2_2 18 Gnd nc Gnd VHFACSourceEvent1
19 nc Gnd event1_2 Gnd 19 nc Gnd VHFACSourceEvent1 Gnd
20 Gnd accs2- Gnd event2_3 20 Gnd accs2- Gnd VHFACSourceEvent2
21 accs2+ Gnd event1_3 Gnd 21 accs2+ Gnd VHFACSourceEvent2 Gnd
22 Gnd acccap1- Gnd event2_4 22 Gnd acccap1- Gnd VHFACSourceEvent3
23 acccap1+ Gnd event1_4 Gnd 23 acccap1+ Gnd VHFACSourceEvent3 Gnd
24 Gnd acccap2- Gnd event2_5 24 Gnd acccap2- Gnd VHFACSourceEvent4
25 acccap2+ Gnd event1_5 Gnd 25 acccap2+ Gnd VHFACSourceEvent4 Gnd
26 Gnd tmu_ch1- Gnd event2_6 26 Gnd VHFACTimePrimaryNeg Gnd VHFACSourceEvent5
27 tmu_ch1+ Gnd event1_6 Gnd 27 VHFACTimePrimaryPos Gnd VHFACSourceEvent5 Gnd
28 Gnd tmu_ch2- Gnd event2_7 28 Gnd VHFACTimeSecondaryNeg Gnd VHFACSourceEvent6
29 tmu_ch2+ Gnd event1_7 Gnd 29 VHFACTimeSecondaryPos Gnd VHFACSourceEvent6 Gnd
30 Gnd nc Gnd event2_8 30 Gnd nc Gnd VHFACSourceEvent7
31 tmudgs Gnd event1_8 Gnd 31 tmudgs Gnd VHFACSourceEvent7 Gnd
32 Gnd acctmu- Gnd sb_io2 32 Gnd acctmu- Gnd VHFACSerialBusIO1
33 acctmu+ Gnd sb_io1 Gnd 33 acctmu+ Gnd VHFACSerialBusIO0 Gnd
34 Gnd nc Gnd sb_clk 34 Gnd nc Gnd VHFACSerialBusClock
35 nc Gnd sbdgs Gnd 35 nc Gnd sbdgs Gnd
36 Gnd dibtrig2 Gnd dibtrig4 36 Gnd VHFACTrigControl Gnd VHFACTrigControl
37 dibtrig1 Gnd dibtrig3 Gnd 37 VHFACTrigControl Gnd VHFACTrigControl Gnd
38 Gnd Gnd Gnd Gnd 38 Gnd Gnd Gnd Gnd
Bias T Bias T
Motherboard
L
Differential
Single End
AC
SE to DIFF DC
DC
Offset
AC DC
Gain Gain
Offset
DC
Attenuators
Microwave DC Path
AUX
Microwave AC Path
DAC
14
MUX
14 14 14 14
DDS Cloc k
Generator
Trigger Waveform
Trigger
Control Control
Condition
PG
100 MHz Reference Clock
PRELIMINARY VERSION
2/2
VHFAC Source Block Diagram
EVENTS
acc src + src a+ src b+ acc src - src a- src b- Riderboard
PPMU
PPMU
PPMU
PPMU
Leveling
Detector
ALRO
ADC
PRELIMINARY VERSION
Source Memory
PRELIMINARY VERSION
1/2
VHFAC Capture Block Diagram
acc cap +
PPMU
cap a+ cap b+ cap src - cap a- cap b- Riderboard
PPMU
PPMU
PPMU
AC/ DC SE or DIFF H AC/ DC DIFF L
PRELIMINARY VERSION
2/2
VHFAC Capture Block Diagram
AC/ DC SE or DIFF H AC/ DC DIFF L
L
Motherboard
Differential
Single End
AC DC
SE t o DIFF
AUX
50
Normal Mode
Track and Peak
Hold Det ect or
10K 50
Offset
DC Baseline
DC
Internal DC Of fset
Offset
DC
Calibration DAC
ADC ADC
14 bit 12 bit
80 Msps 125 Msps
14 12
PG
DSP 100 MHz Ref erence Clock
PRELIMINARY VERSION
Programmable Voltage Amplifier
Voltage Scaling
• The VHFAC Capture PGA scales the analog input signal so that it fits within the
range of the A/D converters.
• If the peak to peak amplitude of the analog input signal is greater than
10.24Vpp, then it is necessary to attenuate the signal to avoid clipping:
CLIPPED
+ 5.12 V
+ AMPLITUDE
FU LL -S CA LE
R AN GE OF
AIN = 4.0 Vpk 0 0 V ou t
AD C
SCALE FACTOR = 2
– AMPLITUDE
– 5.12 V
CLIPPED
PRELIMINARY VERSION
Programmable Voltage Amplifier
Voltage Scaling cont’d
• If the peak to peak amplitude of the analog input signal is less than 10.24V, then
the amplitude should be adjusted to occupy as much of the 10.24Vpp dynamic
range of the analog to digital converter as possible:
F U LL -S CA LE
0 0 V out R AN G E O F
AIN
ADC
– AMPLITUDE
– 11
- V
5.12V
PRELIMINARY VERSION
Programmable Voltage Amplifier
Voltage Scaling cont’d
- 3dB + 3dB
- 3dB + 3dB
- 3dB + 3dB
.
.
.
+ 3dB
PRELIMINARY VERSION
Capture Memory → DSP → Host CPU
VHFAC Capture XpT Support Board
Capture #1 Memory
Capture
VHFAC DSP DSP
Memory
Capture #2
VHFAC Capture
Capture #3 Memory
Capture
VHFAC Memory
Capture #4
DSP DSP Host Computer
PRELIMINARY VERSION
Session 3
PRELIMINARY VERSION
Mixed-Signal Basic Test Program
Worksheets Block Diagram
Home
7
1
Pinmap Specification Sheets 3 Mixed-Signal Pattern
6a
Calls
0 Microcode
DUT pin: name, type Global Wave 1
Specs Definition 2
Wave ASCII
Designer 3 file
2 Tool
Visual Basic Channel Map DC Specs Calls
Interpose Calls
6b Returns
Functions Tester Pin AC Specs Ret urns
channel name Pattern Tools
Mixed-Signal
Timing Editor
Mixed-Signal Debugger
8 4 5 Workshop
User defined Tool
procedures Procedures Pin Levels Time Sets
via PDE tool
Returns
Invoke TDE
9 for HardwareDisplays
Visual Basic PDE Test
Interpose Instances
Functions
Order
10 Default Programming Sequence:
Tests
Flow Worksheets
Table 1 to 6 7 8 to 10
Opcode (sequencing) Additional Worksheets P attern Worksheets
Worksheets and PDE Tools and PDE
PRELIMINARY VERSION
Home Worksheet
PRELIMINARY VERSION
Pinmap Worksheet
PRELIMINARY VERSION
Channel Map Worksheet
PRELIMINARY VERSION
Wave Definitions Worksheet
PRELIMINARY VERSION
Mixed Signal Timing Worksheet
PRELIMINARY VERSION
Mixed Signal Workshop Tool
Solving the Coherency Equation
PRELIMINARY VERSION
Test Procedures Worksheet
Show changes
PRELIMINARY VERSION
User Delay Example
PRELIMINARY VERSION
Programming User Delay
PRELIMINARY VERSION
Compound Segments
PRELIMINARY VERSION
Test Instances Worksheet
PRELIMINARY VERSION
Test Instances Editor
PRELIMINARY VERSION
Flow Table Worksheet
PRELIMINARY VERSION
TDE: Flow Chart & Instruments Debug Displays
PRELIMINARY VERSION
VHFAC Test Elements
VHFACSourcAction VHFACTimeCalculateResults
VHFACSourceConnection VHFACTimeCapture
VHFACSourceExternalTriggerCommand VHFACTimeConnection
VHFACSourceInternalConnection VHFACTimeEventCaptureSetup
VHFACSourceSetup VHFACTimeMeasurementSetup
VHFACSourceWaveformPool
VHFACSerialBusAction
VHFACCaptureAction VHFACSerialBusCalculation
VHFACCaptureConnection VHFACSerialBusConnection
VHFACCaptureExternalTriggerCommand VHFACSerialBusInternalConnection
VHFACCaptureInternalConnection VHFACSerialBusSetup
VHFACCaptureSetup
VHFACCaptureCaptureWaveformSetup
VHFACTriggerControlConnection
VHFACTriggerControlInternalConnection
PRELIMINARY VERSION
VHFAC Source Debug Display
PRELIMINARY VERSION
VHFAC Capture Debug Display
PRELIMINARY VERSION
VHFAC Serial Bus Debug Display
PRELIMINARY VERSION
VHFAC Time Debug Display
PRELIMINARY VERSION
VHFAC Trigger Control Debug Display
PRELIMINARY VERSION
TDE: Flow Chart & Pattern Tool
PRELIMINARY VERSION
Mixed-Signal Basic Test Program
Worksheets Block Diagram
Home
7
1
Pinmap Specification Sheets 3 Mixed-Signal Pattern
Calls
6a
0 Microcode
DUT pin: name, type Global Wave 1
Specs Definition 2
Wave ASCII
Designer 3 file
2 Tool
Visual Basic Channel Map DC Specs Calls
Interpose Calls 6b Returns
Tester Pin AC Specs Returns
Functions Pattern Tools
channel name
Mixed-Signal
Timing Editor
Mixed-Signal Debugger
8 4 5 Workshop
User defined Tool
procedures Procedures Pin Levels Time Sets
via PDE tool
Returns
Invoke TDE
9 for Hardware Displays
Visual Basic PDE Test
Interpose Instances
Functions
Order
10 Default Programming Sequence:
Tests
Flow Worksheets
Table 1 to 6 7 8 to 10
Opcode (sequencing) Additional Worksheets P attern Worksheets
Worksheets and PDE Tools and PDE
PRELIMINARY VERSION
Test Procedure Development Environment
PDE
PRELIMINARY VERSION
Test Procedure Development Environment
VHFACSourceSetup
Wave Definition
PRELIMINARY VERSION VHFACSourceAction
Test Procedure Development Environment
VHFACSourceSetup
PRELIMINARY VERSION
Test Procedure Development Environment
VHFACSourceSetup
Select Coupling
PRELIMINARY VERSION
Test Procedure Development Environment
VHFACSourceSetup
PRELIMINARY VERSION
Test Procedure Development Environment
VHFACSourceSetup
Skip DC Offset
Defaults to 0
Skip Calibration
PRELIMINARY VERSION
Test Procedure Development Environment
VHFACSourceSetup
PRELIMINARY VERSION
Test Procedure Development Environment
VHFACSourceSetup
PRELIMINARY VERSION
Test Procedure Development Environment
PDE
Input WaveName
Home
Wave Definition
PRELIMINARY VERSION Back
Pinmap Worksheet
Home
PRELIMINARY VERSION Back
Channel Map Worksheet
The VHFAC DIB Interface Cable is VHFAC Hardware Pinout (DIB view)
A B C D A
V
VHFACSourcePrimaryPos 12
13
Gnd
DGSc1
DGSc2
Gnd
Gnd
nc
nc
Gnd
12
13
Gnd
DGSc1
DGSc2
Gnd
Home
PRELIMINARY VERSION Back
Wave Definitions Worksheet
Home
PRELIMINARY VERSION Back
Session 5
PRELIMINARY VERSION
HSD Optical Reference Clock
29
fhsd = 100MHz •2 29
29 I ≥ 1, 0 < J < 2
2 •I+J
fhsd = 53,687,091,200,000,000.00 Hz
N
(N ≥ 536,870,912)
PRELIMINARY VERSION
VHFAC Optical Reference Clock
40
fbbac= 100MHz •2 40
40 I ≥ 1, 0 < J < 2
2 •I+J
fbbac = 109,951,162,777,600,000,000.00 Hz
N
(N ≥ 1,099,511,627,776)
Update!!
PRELIMINARY VERSION
Visual Basic for Test - VBT
PRELIMINARY VERSION
VHFAC Microcodes
Type Source Capture Time
Instrument Nop Nop Nop
Start Trig Start
StartE Resume Stamp
Start1 Measure_Peak Enable_Trig
StartE1 Enable_Gate_On
Stop Enable_Gate_Off
StopE
State PSet PSet PSet
Enable_Alarm Enable_Alarm Enable_Alarm
Disable_Alarm Disable_Alarm Disable_Alarm
Enable_Inst_Cond Enable_Inst_Cond Enable_Inst_Cond
Disable_Inst_Cond Disable_Inst_Cond Disable_Inst_Cond
Reset_Peak Start_Alt
Resync Resync Sync
PRELIMINARY VERSION
VHFAC Source Microcodes
Type Microcode Parameter Description
Source Nop No operation
Start <wavename> Immediately (on the next available logical analog
clock) start sourcing the named waveform in
SMEM and repeat it continuously until a Stop
microcode is executed or the instrument is reset.
StartE <wavename> At the end of the currently sourced waveform,
source the named waveform in SMEM and
repeat it continuously until a Stop microcode is
executed or the instrument is reset.
Start1 <wavename> Immediately (on the next available logical analog
clock) start sourcing the named waveform in
SMEM and source it exactly once.
StartE1 <wavename> At the end of the currently sourced waveform,
source the named waveform in SMEM and
source it exactly once.
Stop Stop sourcing the currently sourced waveform
immediately.
StopE Stop sourcing the currently sourced waveform at
the end of the waveform.
State PSet <PSet name> Cause the named group of PSetable parameters
to be applied to the VHFAC Capture Instrument.
Enable_Alarm Enable instrument alarms to be latched.
Disable_Alarm Disable alarms from affecting alarm latch.
Latch is cleared by software at pattern start.
Enable_Inst_Cond Enable condition.
Disable_Inst_Cond Disable condition.
Resync Initiate a sequence within the instrument that
synchronizes the instrument clock.
PRELIMINARY VERSION
VHFAC Source PSETable Parameters
PRELIMINARY VERSION
VHFAC Capture Microcodes
PRELIMINARY VERSION
VHFAC Capture PSETable Parameters
PRELIMINARY VERSION
VHFAC Time Microcodes
Type Microcode Parameter Description
Time Nop No operation
Start <wavename> Start is used to begin the measurement
if the Start mode is waiting for a
microcode. The wave name is tagged
to the measurement data. 16 unique
names can be provided.
Stamp Outside of pattern Stamper A and B can
be setup to listen to a pattern event.
When Stamp is used, the appropriate
stamper records the current time off the
counter. This can be used to generate
a reference time. If no stamper is
setup to listen for a pattern event, then
no time is recorded. Under trigger
setup, a Stamp microcode does
nothing.
Enable_Trig This provides an Enable Trigger signal
to the Enable input of the dual stamper,
if the Enable input is set to listen for a
microcode.
Enable_Gate_On This will turn on the Enable Gate
window. While this Gate is open the
time stamper will be enabled
Enable_Gate_Off This will turn off the Enable Gate
window.
State PSet <PSet name> Cause the named group of PSetable
parameters to be applied to the
instrument.
Enable_Alarm Open Alarm Window for VHFAC TMU
Alarms
Disable_Alarm Close Alarm Window for VHFAC TMU
Alarms
Enable_Inst_Cond Enables VHFAC TMU to drive the
PRELIMINARY VERSION condition wire
VHFAC Time PSETable Parameters
Parameter Name Description
CH1 Voltage Range / Selects the Voltage Range and Hysteresis setting for the CH1
Hysteresis side
CH1 Voltage Threshold 14 bit threshold value for the CH1-side of the Front End1
Start Mode Select Select the Start input, start slope select, and Time Range for
the Dual Time Stamper Unit
A Enable Selects the Enable input and mode for Stamper A.
B Enable Selects the Enable input and mode for Stamper B.
Interleave Selects the interleave mode for the dual time stampers
A Event Input Selects the input and the input slope to be stamped using
Stamper A
B Event Input Selects the input and the input slope to be stamped using
Stamper B
A Hold-off Counter Specifies the hold-off count before enabling Stamper A.
B Hold-off Counter Specifies the hold-off count before enabling Stamper B.
CH2 Voltage Range / Selects the Voltage Range and Hysteresis setting for the CH2
Hysteresis side
CH2 Voltage Threshold 14 bit threshold value for the CH2-side of the Front End2
A Sample Counter Specify number of samples on stamper A to make during this
measurement.
B Sample Counter Specify number of samples on stamper B to make during this
measurement.
CH1 V_TERM 14 bit termination value for the CH1-side of the Front End1
CH2 V_TERM 14 bit termination value for the CH2-side of the Front End2
PRELIMINARY VERSION
Distributed Instrument Control
Local control of Architecture Enables:
instrument setup
uCodes from Pat Gen - Control of instruments
Tester
Computer
Sync Bus synchronized with pattern
TCIO
Psets PSET - Independent multisite DUT
Pat MEM
Gen synchronization, can match
uCode PSET
Local Pat
Psets loop per site
MEM
Pattern GenCLK
CLK uCode PSET
Generator Pat
Psets
MEM
- Multiple time domain
GenCLK
CLK uCode PSET
Instrument Channels capability
Psets
Pat MEM
GenCLK Instrument Channels - Concurrent test of IP cores
REF CLK CLK uCode
Instrument Channels
CLK
CLK
Clock Domain C
Instrument Channels
Clock Domain B
Local Digital VHFAC
Synthesized Clock Domain A
Clock
PRELIMINARY VERSION
Appendix
• Acronyms
• VHFAC & BBAC Comparison
PRELIMINARY VERSION
Acronyms
PRELIMINARY VERSION
VHFAC vs. BBAC Pinout
VHFAC Hardware Pinout (DIB view) BBAC Hardware Pinout (DIB view)
A B C D A B C D
1 Gnd Gnd Gnd Gnd 1
2 Gnd src2a+ Gnd src2b+ 2 src2+
3 src1a+ Gnd src1b+ Gnd 3 src1+ src2sh
4 Gnd nc Gnd nc 4 src1sh src2Ref
5 nc Gnd nc Gnd 5 src1Ref src2Refsh
6 Gnd src2a- Gnd src2b- 6 src1Refsh src2-
7 src1a- Gnd src1b- Gnd 7 src1-
8 Gnd DGSs2 Gnd nc 8 DGSs2
9 DGSs1 Gnd nc Gnd 9 DGSs1 DGSs2sh
10 Gnd cap2a+ Gnd cap2b+ 10 DGSs1sh cap2+
11 cap1a+ Gnd cap1b+ Gnd 11 cap1+ cap2sh
12 Gnd DGSc2 Gnd nc 12 cap1sh DGSc2
13 DGSc1 Gnd nc Gnd 13 DGSc1 DGSc2sh
14 Gnd cap2a- Gnd cap2b- 14 DGSc1sh cap2-
15 cap1a- Gnd cap1b- Gnd 15 cap1-
16 Gnd accs1- Gnd event2_1 16 accs1-
17 accs1+ Gnd event1_1 Gnd 17 accs1+ accs1-sh
18 Gnd nc Gnd event2_2 18 accs1+sh accs1Ref
19 nc Gnd event1_2 Gnd 19 accs2Ref accs1Refsh
20 Gnd accs2- Gnd event2_3 20 accs2Refsh accs2-
21 accs2+ Gnd event1_3 Gnd 21 accs2+ accs2-sh
22 Gnd acccap1- Gnd event2_4 22 accs2+sh acccap1-
23 acccap1+ Gnd event1_4 Gnd 23 acccap1+ acccap1-sh
24 Gnd acccap2- Gnd event2_5 24 acccap1+sh acccap2-
25 acccap2+ Gnd event1_5 Gnd 25 acccap2+ acccap2-sh
26 Gnd tmu_ch1- Gnd event2_6 26 acccap2+sh
27 tmu_ch1+ Gnd event1_6 Gnd 27
28 Gnd tmu_ch2- Gnd event2_7 28
29 tmu_ch2+ Gnd event1_7 Gnd 29
30 Gnd nc Gnd event2_8 30
31 tmudgs Gnd event1_8 Gnd 31
32 Gnd acctmu- Gnd sb_io2 32
33 acctmu+ Gnd sb_io1 Gnd 33
34 Gnd nc Gnd sb_clk 34
35 nc Gnd sbdgs Gnd 35
36 Gnd dibtrig2 Gnd dibtrig4 36 DIBtrigs2 DIBtrigc2
37 dibtrig1 Gnd dibtrig3 Gnd 37 DIBtrigs1 DIBtrigs2sh DIBtrigc1 DIBtrigc2sh
38 Gnd Gnd Gnd Gnd 38 DIBtrigs1sh DIBtrigc1sh
PRELIMINARY VERSION
Converter Testing
Option
Preliminary
Analog Source
PRELIMINARY VERSION
CT-30 as an A/D & D/A Converter Test Option
• 30 High Accuracy DC • Pattern Control
Source & Captures • 15 Bit + Sign Resolution
• +/- 0.5, 1, 2, 5, 10, 30v • 2.5K X 16 Source Memory
Ranges • 512 x 16 Capture Memory
PRELIMINARY VERSION
8 bit ADC Test Requirements
PRELIMINARY VERSION
10 bit ADC Test Requirements
PRELIMINARY VERSION
12 bit ADC Test Requirements
PRELIMINARY VERSION
CT-30 Relevant Specs
• INL (2.0 LSB in 16) • Resolution is 15bit + Sign
0.5v range 32uv
5.0v range 313uv • Source Gain & Offset
10v range 625uv 0.5v 0.05% + 0.9mv
1.0v 0.05% + 1.0mv
• DNL (1.5 LSB in 16) 2.0v 0.05% + 1.2mv
0.5v range 47uv 5.0v 0.05% + 1.0mv
5.0v range 469uv 10.0v 0.05% + 1.5mv
10v range 968uv (3.0 lsb)
• Capture Gain & Offset
• Stability 0.5v 0.05% + 0.9mv
110uV per degree C typ 1.0v 0.05% + 1.0mv
2.0v 0.05% + 1.2mv
• Noise 5.0v 0.05% + 1.4mv
150uV < 200Khz, Pk-Pk typ 10.0v 0.05% + 2.5mv
PRELIMINARY VERSION
FLEX CT-30 vs Integra J750 CTO Spec Comparison
CT-30 CT-30
CTO single ramp Segmented Ramp
Voltage Forcing
Nominal Output Range 1 -10 mV to +3v +/- 5v +/- 0.5v
Nominal Output Range 2 -20 mV to +6 V +/- 10v
Gain & Offset Range 1 +/-(30 ppm + 30 uV) 0.05% + 1.0mv 0.05% + 0.9mv
Gain & Offset Range 2 +/-(60 ppm + 60 uV) 0.05% + 1.5mv
Source Linearity 2 LSB in 16 2 LSB in 16 2 LSB in 16
Nominal Resolution Range 1 50 uV 150 uV 15 uV
Nominal Resolution Range 2 100 uV 300 uV
PRELIMINARY VERSION
FLEX CT-30 vs Integra J750 CTO Configuration Comparison
PRELIMINARY VERSION
2 X 8Bit Flash ADC Test using the CT-30
VIH
Tester
Computer
Memory
DAC ADC Functional
2.5kx16 8Bit
VOH VIL
ADC
1. Source 8Bit
Single Burst
Pin Electronic
40.5us/Sample
TCIO 100MBit/s
Segment Burst Time Computer
1/8 LSB 2048Samples*40.5us = 82.94ms
ADC
1. Source 10Bit
Pin Electronic
40.5us/Sample
TCIO 100MBit/s
Computer
1/8 LSB Segment Burst Time
8192 samples =
2048*40.5us = 82.94ms
1024 codes @ 8 Hits per code
Unload 3K HRAM and Transfer = 8ms
Src Memory Reload Time = 4ms
82.94 ms 7ms Pattern restarted 3 times
8192 Samples = (82.94ms ) * 4 + (12ms * 3) = 367.76ms
PRELIMINARY VERSION
Segmented Ramp Technique for 12 bit ADC Testing
• First channel is the “ramp”
• Second channel is the “pedestal”
• Connected together using CT-30 Dib Access, summed via the
dib access and mod in capability, and sent to DUT
Memory Memory
2.5kx16
DAC 2.5kx16 DAC
CT-30 DIB
Memory
2.5kx16
DAC
To DUT
Pedestal
CT-30 Mod In
Summing Junction Dib Access Input
Memory
2.5kx16
DAC
Standard User
Output Supplied
ramp Pins
Loopback
PRELIMINARY VERSION
1 X 12Bit ADC test with Segmented Ramp using the CT-30
VIH
Tester
Computer
Memory
DAC ADC Functional
2.5kx16 12Bit
VOH VIL
Pedestal
Pattern Ramp HRAM
Generator
CT-30 DUT 3k
VOL
Pin Electronic
40.5us/Sample
TCIO 100MBit/s
Computer
1/8 LSB
Segment Burst Time 32768 samples =
2048*40.5us = 82.94 ms
4096 codes @ 8 Hits per code
Unload 3K HRAM and Transfer = 8ms
82.94ms 7ms
Pedestal Step = 1ms Segments sourced 16 times,
But not reloaded!
32768 Samples = (82.94ms * 16) + (9ms * 15) = 1462ms
PRELIMINARY VERSION
1 X 12Bit ADC test with Segmented Ramp & DSSC
VIH
Tester
Computer
Memory
DAC ADC Functional
2.5kx16 12Bit
VOH VIL
Pedestal
Pattern Ramp HRAM
Generator
CT-30 DUT 3k
VOL
Pin Electronic
10us/Sample
PRELIMINARY VERSION
Gain & Offset test with PMO
– Calibrate offset
• Measure CT-30 Source error with PMO
• Apply to measured values
PRELIMINARY VERSION
DUT connections for the PMO
CT-30 DIB
Memory
2.5kx16
DAC
To DUT
Pedestal
Dib Access
Input
TestHead
GPIO
User
Supplied
Loopback
MainFrame
PMO
PRELIMINARY VERSION
Gain & Offset test with DIFF VM
– Calibrate offset
• Measure CT-30 Source error with DIFF VM
• Apply to measured values
PRELIMINARY VERSION
DUT connections for the DIFF VM
CT-30 DIB
Memory
2.5kx16
DAC
To DUT 1
Pedestal
DIFF DGS
VM
Memory
2.5kx16
DAC
Standard
Output
To DUT 2
ramp Pins
PRELIMINARY VERSION
CT-30 - ADC Test Template
Required
Template
Arguments
Optional
Template
Arguments
PRELIMINARY VERSION
CT-30 - ADC Test Template Selectable Parameters
PRELIMINARY VERSION
Standard Ramp Template Tests
• Diff-Err:
– Differential non-linearity error (DNL). This is the difference of the code width
from 1 LSB.
• Int-Err:
– Integral (cumulative) non-linearity error, (INL). This is the difference between the
normalized transition point and the ideal transition point.
• Off-Err:
– Offset error. This is the difference between the first transition point and the ideal
first transition point.
• Absolute error:
– This is the difference between the observed transition point and the ideal
transition point.
• GainErr:
– A gain error, as an allowable percentage of ideal gain. The GainErr drop-down
list contains the integers from 0 to 10.
PRELIMINARY VERSION
CT-30 Debug Tools and Displays
Able to control all relay, gate
functions, voltage settings
and modes.
PRELIMINARY VERSION
CT-30 Source / Capture Waveform Display
PRELIMINARY VERSION
CT-30 Pattern Language Example
Initial
Value
Step
Read
Source
Converted
Value
PRELIMINARY VERSION
CT-30 Pattern Tool Debug
PRELIMINARY VERSION
J750 Software Compatibility
PRELIMINARY VERSION
J750 8 Bit ADC Test Time Comparison
CTO
Flow Step Line Total PreBody Body PostBody
AtoD_8bits 7 0.2127352 0.014536 0.194492 0.003708
CT-30
Flow Step Line Total Prebody Body Postbody
AtoD_8bits 8 0.1818428 0.033372 0.147462 0.001009
PRELIMINARY VERSION
J750 10 bit ADC Test Time Comparison
CTO
Flow Step Line Total PreBody Body PostBody
AtoD_10bits 8 0.471436 0.002068 0.468331 0.001037
CT-30
Flow Step Line Total Prebody Body Postbody
AtoD_10bits 0.636488 0.005161 0.630332 0.000995
PRELIMINARY VERSION
J750 8 Bit Test Result Correlation
• Calibrated CT-30 performance (v3.60.11)
CTO
Misscode Gain DNL INL Offerr ABS
0 -0.07129 0.125 0.75 0.875 0.75
CT-30
Misscode Gain DNL INL Offerr ABS
0 -0.087 0.125 0.625 0.875 0.625
PRELIMINARY VERSION
J750 10 Bit Test Result Correlation
CTO
Misscode Gain DNL INL Offerr ABS
0 -0.0481 0.05 0.55 1.375 0.55
DC30
Misscode Gain DNL INL Offerr ABS
1 -0.0721 -0.875 -1.4625 1.375 1.575
PRELIMINARY VERSION
Differences when using the CT-30 vs the CTO to test ADC
PRELIMINARY VERSION
Integra FLEX New Capabilities
• Multi-Purpose Instrument
– Volt meter, DUT Supply, Converter Test, VLFAC
• New Capabilities
– Positive and Negative Source / Capture Covers a wider
range of converters
– Pattern Control over levels via PSet reprogramability
– 12 bit Converters Test via DIB Access using Segmented
Ramp technique
– Wave form filtering 530hz / 4.6khz / 44kz
• New Instruments
– Differential Voltmeter
– Time Measurement Unit for analog Rise / Fall Time, Slew
Rate measurements
PRELIMINARY VERSION
Backup Slides
PRELIMINARY VERSION
Converter Resolution vs Array & Segment Size
• Shows number of memory reloads and segments based on converter
resolution, reference voltage, and hits per code
PRELIMINARY VERSION
Ramp Analysis Equations
PRELIMINARY VERSION
Diff-Err - Differential non-linearity error - DNL
y
MAX[ABS(ViStart-ViEnd) - Bitweight]
i=x
where
x = location in the normalized results array where a voltage ramp
begins
y = location in the normalized results array where a voltage ramp
ends
ViStart = the input voltage when the observed normalized output
changes
ViEnd = the input voltage when the normalized output changed
previously
Bitweight = volts per LSB step
PRELIMINARY VERSION
Int-Err - Integral non-linearity error - INL
y
MAX[(ViActual - ViIdeal)]
i=x
where
x = location in the normalized results array where a voltage ramp
begins
y = location in the normalized results array where a voltage ramp
ends
ViActual = the input voltage when the observed normalized output
changes
ViIdeal = the input voltage that would ideally cause the observed
output
PRELIMINARY VERSION
Off-Err - Offset error
VActual - VIdeal
where
VActual = the output voltage for the first observed output change
during or after the point at which the input voltage is
increased from VIdeal
VIdeal = the input voltage that would cause the first output
transition above VrefL
PRELIMINARY VERSION
Absolute - Absolute error
y
MAX[(ViActual - ViIdeal)]
i=x
where:
PRELIMINARY VERSION
GainErr - Gain error
(M - 1)*100
where
PRELIMINARY VERSION
Missing Codes/Out
y
[1, if MissCodeArray(i)=0]
i=x
where
CT-30 as
DPS
CT-30
CT-30
CT-30 as
Ref
PRELIMINARY VERSION
Characterization
Rev0343
- confidential -
Outline
• Overview
• Characterization Mode
• Characterization Setup
• Running Characterization
• Lab
Module 30 - 2
- confidential -
Overview
Module 30 - 3
- confidential -
Overview
Module 30 - 4
- confidential -
Overview
General Setups
• Specifies the parameters to be varied, and range over which to
vary them
Module 30 - 5
- confidential -
Overview
Characterization
Setup
Specifies
parameters Varying hardware
to be varied parameter
according to setup
- confidential -
Outline
• Overview
• Characterization Mode
• Characterization Setup
• Running Characterization
• Lab
Module 30 - 7
- confidential -
Characterization Modes
MODE
Shmoo Margin
Adjust
Measure
Module 30 - 8
- confidential -
Characterization Modes
Module 30 - 9
- confidential -
Characterization Modes
Margin
• Vary one primary parameter or spec over a
range while recording Pass/Fail/Error information.
• Cannot be combined with other modes
Module 30 - 10
- confidential -
Characterization Modes
Adjust
Module 30 - 11
- confidential -
Characterization Modes
Input Data t
Input DUT Output
Output Data t
Tadj
- confidential -
Characterization Modes
Measure
Measure one or more parameters, finding the
pass/fail transition point, and return the measured
value.
Module 30 - 13
- confidential -
Characterization Modes
Comparison of modes
Support Tracking
Yes No No No
Parameter
Locate pass/fail
No No Yes Yes
transition?
Each Each At the At the
Datalogs when?
point Point end end
Module 30 - 14
- confidential -
Outline
• Overview
• Characterization Mode
• Characterization Setup
• Running Characterization
• Lab
Module 30 - 15
- confidential -
Characterization Setup
Characterization Sheet
1 2
Module 30 - 16
- confidential -
Characterization Setup
Characterization Sheet
- confidential -
Characterization Setup
Characterization Editor
General
Field
Field specific
to selected
characterization
mode
Output
field
Module 30 - 18
- confidential -
Characterization Setup
Characterization Editor - General Field
"Mode" control
• Two radio buttons: one for Margin and one for all Modes other than Margin.
• A setup that contains a Margin row cannot contain rows of any other mode.
• In non-Margin mode, you can have any combination of Shmoo, Adjust, and
Measure: check the box for one or more of these modes.
Module 30 - 19
- confidential -
Characterization Setup
Worksheet
-> Specify the worksheet to which the characterization data is
to be written.
File
-> Specify the full name of the file to which the characterization
data is to be written.
-> Use the "Browse" button to browse to a folder or file.
Module 30 - 20
- confidential -
Characterization Setup
Shmoo Setup
- confidential -
Characterization Setup
Shmoo Setup
Type -> Select the type parameter to
vary:
Spec Spec Parameter defined on
an AC or DC or Global spec
Edge Timing Parameter defined on
a Time Set or Edge Set sheet
Level DC Parameter defined on a
Pin Levels sheet
Period Period value defined on a
Time Set sheet
Name ->Select or enter the name of
the parameter (level, edge, or
spec) to vary.
A drop-down list may be
available, depending on the
type selected.
Module 30 - 22
- confidential -
Characterization Setup
Shmoo Setup
Algorithm -> Select the algorithm to
be used
Linear - Sweep from "From" to "To" in
"Step Size" steps
List - Use a specific set of values
(specified as Point List)
If Algorithm is List, enter a comma-
separated list of points to be used in
the Point List field
Module 30 - 23
- confidential -
Characterization Setup
Module 30 - 24
- confidential -
Characterization Setup
Module 30 - 25
- confidential -
Characterization Setup
Module 30 - 26
- confidential -
Characterization Setup
Module 30 - 27
- confidential -
Characterization Setup
Margin Setup
• Only X-axis tab appears. No other tabs are used with Margin
• Similar to a one-dimensional (X-axis) Shmoo, except that tracking
parameters are not permitted.
• If a new parameter is added, each parameter is executed independently as
a separate Margin operation.
Module 30 - 28
- confidential -
Characterization Setup
Adjust Setup
Module 30 - 29
- confidential -
Characterization Setup
Module 30 - 30
- confidential -
Characterization Setup
Backoff -> Enter the “backoff" or safety margin value to be applied to the
adjusted value.
Spec Name -> Enter the name of the levels or timing spec that will receive
the results of the Adjust.
The spec value resulting from an Adjust can be applied to subsequent test
instances in the flow. If a "backoff" value is specified, it will be applied to the
result in order to leave the test passing with a certain safety margin.
If a subsequent test instance has an "Overlay" column that specifies the
Adjust setup, the Adjusted value will be overlaid on top of that base timing or
levels definition.
Module 30 - 31
- confidential -
Outline
• Overview
• Characterization Mode
• Characterization Setup
• Running Characterization
• Lab
Module 30 - 32
- confidential -
Running Characterizations
Two ways:
1. Interactive Characterization
2. Characterization in the test program
Module 30 - 33
- confidential -
Running Characterizations
Interactive Characterization
1. Set a breakpoint on the Flow Table sheet at the desired test to be
characterized.
3. When the breakpoint is reached, use the Step key to step through
the Pre-Body. (The Pre-Body is executed.)
4. The yellow flow arrow must be horizontal ,that is, pointing to the
Body.
- confidential -
Running Characterizations
Module 30 - 35
- confidential -
Running Characterizations
Module 30 - 36
- confidential -
Running Shmoo
Module 30 - 37
- confidential -
Running Shmoo
Site buttons
Module 30 - 38
- confidential -
Running Shmoo
Cell Result
P - green = Pass
F - red = Fail
E - gray = Error
(none) - white = No test result, or
unable to test
On the Site Merge display, cells that
have both passing and failing sites
use a mix of green and red to indicate
the relative number of passing and
failing sites.
In addition, these cells display a
percentage of the sites that passed
the test at this cell.
Module 30 - 39
- confidential -
Running Shmoo
Module 30 - 40
- confidential -
Running Shmoo
Module 30 - 41
- confidential -
Running Shmoo
Reshmooing a cell
• Double-click on the cell to be
reshmooed
• Useful for cells to determine the
repeatability of the results
"Zoom" button
1. Drag from one corner to the
opposite corner of a rectangular
area to be zoomed
2. Press Zoom button to display a
new area of Shmoo
Module 30 - 42
- confidential -
Running Adjust
myAdjust
MUX
tadj
Module 30 - 43
- confidential -
Running Shmoo with Measures and Adjusts
Module 30 - 44
- confidential -
Outline
• Overview
• Characterization Mode
• Characterization Setup
• Running Characterization
• Lab
Module 30 - 45
- confidential -
DIB Access
Multiple Resources
Resource Sharing
Rev0343
- confidential -
Objective
Module 31 - 2
- confidential -
Outline
• Typical Configurations
• DIB Access Goals
• DIB Access Configuration
• Instrument DIB Access
• Channel Mapping
• Resource Sharing
• Multiple Resources
• Single-Site Example
• Multi-Site Example
Module 31 - 3
- confidential -
Measurements
Examples:
Module 31 - 4
- confidential -
Typical Configurations
BBAC
Relay
AWG
Test devices which
require multiple
instrument HSD
connections.
Module 31 - 5
- confidential -
Ideal Solution
Universal Instrument
Digital, AC source,
DIB trace AC capture, Time
Measurement,
DUT Microwave, DC,
etc.
Module 31 - 6
- confidential -
DIB Access Design Goals
1. Reduce the number of relays needed to provide access to
multiple tester resources to a device pin.
Module 31 - 7
- confidential -
Flex Solution for DIB Access
Provides electrical
Primary Instrument Secondary Instrument path allowing a
secondary instrument
to be connected to a
device pin through
AC inst. DC inst. the primary
Provides access to instrument.
S F
PPMU
moderately high
TCAL
frequency AC, DC,
high-voltage and Allows the user to
digital resources. program the
secondary instrument
using “pin
programming” as if it
were connected
directly to the pin.
main access main access
Traces on DIB TP
DUT DIB
Module 31 - 8
- confidential -
DCVI
DIB Access
X.a1 X.a2 X.b1 X.a3 X.a4 X.b4 X.b2
F S G F S G
X=<slot #>
Channel 1 Channel 2
Module 31 - 9
- confidential -
DCVI Pins
Module 31 - 10
- confidential -
High Speed Digital
Main Access Main Access
DIB Access DIB Access
X.a33 X.c33 X.b32 X.d32 X.b36 X.a31 X.c31 X.b30 X.d30 X.a35
X=<slot #>
1 2 3 4 5 6 7 8
Module 31 - 11
- confidential -
High Speed Digital Pins
Module 31 - 12
- confidential -
BBAC Source
Differential Output Main Access
POS
REF
NEG
ACDGS
PPMU
PPMU
PPMU
DIB Access
1 DIB Access per BBAC channel line
Module 31 - 13
- confidential -
BBAC Capture
Differential Inputs Main Access
POS
NEG
ACDGS
PPMU
DIB Access
PPMU
Module 31 - 14
- confidential -
Channel Map Syntax
3.b4
MIC1P DUT 3.b3
MIC1N
4.d4 4.b4 4.c5 4.a5 POS NEG
4.d2 4.b2 4.c3 4.a3
HSD BBAC
REF
48 47 46 45 44 43 42 41
Slot 4 Slot 3
Module 31 - 15
- confidential -
Single-Site Example
Slot10 Slot15 Slot25
Channel A1 Channel B1 Channel B1
Syntax for
sharing pinA1 pinA1 pinA1 pinA1
resources
across sites
Module 31 - 17
- confidential -
Resource Sharing
• It is possible for a single instrument to be shared by more than one
DUT pin or by more than one site in a multi-site test environment.
• To indicate that a resource is shared, you use special syntax for the
entry in the Tester Channel Site column of the Channel Map sheet.
– A pin can share a resource with another pin by indicating that the
same tester channel is connected to both pins.
Vcc shares a
dcvi channel
with vcc1
– Two or more sites can share a resource by indicating that the same tester
channel is connected to more than one site.
Dcvi at pins
10.a2 and 10.a6
are shared
between site0
and site1
Module 31 - 18
- confidential -
DIB Access/Resource Sharing
Primary Instrument(A) Secondary Instrument(C) Primary Instrument(B)
Slot 10 Slot 15 Slot 35
Channel A1 Channel B1 Channel B1
Main Access DIB Access Main Access DIB Access DIB Access Main Access
Example 2:
Device pins a1 and
a2 share the same Traces on DIB
secondary resource. pinA1 pinA2
DUT
DIB
Module 31 - 20
- confidential -
DIB Access/Multiple Resource
Instrument(C) Primary Instrument (A)
Secondary Instrument (B)
Slot 25 Slot10 Slot15
Example 4: Channel a1 Channel a1 Channel b1
Device pin a1
connects directly
to two resources Main Access Main Access DIB Access Main Access DIB Access
and indirectly to
another.
pinA1
DIB
Module 31 - 21
- confidential -
Appendix
Rev0343
- confidential -
Single-Site Example
Primary Instrument A Secondary Instrument B
a1 a2 a3 a4
DUT
DIB
A1 1 InstA 10.b2
A1:DA InstB 25.b1
A2 2 InstA 10.b4
A2:DA InstB S:A1
A3 3 InstA 10.c1
A3:DA InstB S:A1
A4 4 InstA 10.c3
A4:DA InstB S:A1
Module 31 - 23
- confidential -
Single-Site Example
Primary Instrument (A) Secondary Instrument (B)
Slot10 Slot25
Channel A1 Channel B1 Using an instrument as a
secondary resource (ie,
through the DA of another
Main Access DIB Access Main Access DIB Access instrument) does not
preclude the possibility of
using it as a primary
instrument (ie, connecting
pinA1 pinA2
it directly to another DUT
pin).
DIB
Module 31 - 24
- confidential -
Multi-Site Example
Secondary Instrument
Primary Instrument
Slot10 Slot15
Channel A1 Channel B1
Sharing a secondary
instrument across Main Access DIB Access Main Access DIB Access
sites is supported.
pinA1 pinA1
Site 0 Site 1
DIB
Module 31 - 25
- confidential -
Multi-Site Example
Primary Instrument Secondary Instrument Primary Instrument Secondary Instrument
Slot 10 Slot 15 Slot 20 Slot25
Channel ch1 Channel ch1 Channel ch1 Channel ch1
Module 31 - 26
- confidential -
Multi-Site Example
Primary Instrument Secondary Instrument
Slot 10 Slot 25
Channel ch1 Channel ch1
This simply shows
the syntax for
sharing instruments
Main Access DIB Access Main Access
across sites and DIB Access
across pins
Site 0 Site 1
DIB
Module 31 - 27
- confidential -
Limitations
Based on premise that device pin requires connection to a primary
resource during most tests, and requirements on secondary resource is
less demanding.
Connection on the DIB must be between the main access of the secondary
instrument and the DIB access of the primary instrument.
Only the use cases described in the preceding section are supported.
Module 31 - 28
- confidential -
Utility Bits & DIB
Power
Rev0343
- confidential -
User Power & Utility Bits
• Purpose:
– User power for supplying voltages to DIB devices such as
relays
• 3 - 5 volt supplies
• 2 - 15 volts supplies
• 1 – 12 volt supply
– Utility bits for driving coils on Dib relays and for low speed
readback of logic states
• 128 Utility bits
Module 32 - 2
- confidential -
Support Boards
There are Two support boards in the Flex test system.
One is designated as the master support board (MSB) (805-003-00) and the other is the slave
support board (SSB) (805-003-01).
Two cables from each board connect to 2 DIB slots. MSB to slots 8 and 20, SSB to slots 33
and 45. Left Hemisphere Right Hemisphere
8 DIB 33
Support Board Support Board
(Master) (Slave)
Slot 7 20 45 Slot 20
Module 32 - 3
- confidential -
Features
Module 32 - 4
- confidential -
Utility Bit Overview
Utility bits provide low-speed logic signals, which are capable of driving relay coils, and with low-speed readback of
The logic state on each pin.
Each circuit is similar to a simple digital channel with a driver, comparator, and digital control to change the state of the
driver and read the state of the comparator.
The driver controls the state of the relays on the DIB. (The driver output is a strong pull-down circuit with a weak pull-up
to 3.3V.)
Each UDB signal is connected to a comparator on the support board. DACs on the support board creates a threshold
voltage for the comparator. There is one DAC for each of the 32 UDBs.
DIB DAC
A
TCIO
Comparators Serial
32 Serial Relay
Drivers Readback
DIB DAC
B
Module 32 - 5
- confidential -
Support Board Pinouts
Module 32 - 6
- confidential -
Utility Bit Test Element
Utility bits are pins that allow a user control over relays or
logic that may be on the DIB. In this element, you must
supply a Utility pinlist
Utility Bits test element allows for turning utility bits on and
off.
Module 32 - 7
- confidential -
Utility Bits Off
• Argument Details
- Optional
- Expression allowed
- Variable type – Pinlist
- Default input parm
- Default Read/Write
Module 32 - 8
- confidential -
Utility Bits On
• Argument Details
- Optional
- Expression allowed
- Variable type – Pinlist
- Default input parm
- Default Read/Write
Module 32 - 9
- confidential -
Pinmap/Channelmap
Module 32 - 10
- confidential -
User Power
• The purpose of user power is to provide voltages to the DIB to power relays,
logic and analog devices in user-supplied circuitry. This external circuitry is
used for additional signal processing capabilities that cannot be provided by
the test system.
• The DC/DC converters are located on the power board, which is mounted to
the support board.
– Two different power boards are used to support the different needs of the
MSB and the SSB.
– The on/off control and the alarm and shutdown circuits are located on the
support board itself.
• There are locations for six DC/DC converters, three on each support board’s
power board.
• Input to the converters comes from the external +48V power supply.
• All six of the user supplies have floating outputs.
– This means that each supply can be either a positive supply or a negative
supply and that they can be stacked to create higher voltages.
Module 32 - 11
- confidential -
User Power Supplies
The user supplies are split between the MSB and SSB as follows:
MSB:+5V (generally used for powering digital circuits)
+5V (generally used for powering digital circuits)
+15V (generally used for powering analog circuits)
SSB: +12V (generally used for powering relays)
+5V (generally used for powering relays)
+15V (generally used for powering analog circuits)
The +15V supplies are filtered to provide an electrically quieter signal to the DIB.
Since each support board drives two DIB locations, the signals are split coming out of the board and driven to both DIB locations.
+ 12
+5
+15 V
+ 48V C onne ctor
to D IB
+ 5V
+ 5V
+15 V
T C IO A larm and
On/ Off C ontrol T C IO
(U se r Contr olle d) S hutdow n
Module 32 - 12
- confidential -
User Power Pins
Master Support Board Left hemisphere connects to Dib slots 8 and 20
Module 32 - 13
- confidential -
User Power Test Element
The DIB Power Test Element is used to turn voltages available on the DIB on or
off.
Voltages can be turned on/off individually by selecting “Turn On”/ “Turn Off”
from the drop down list.
Module 32 - 14
- confidential -
Sync Pulses
The synchronization (sync) pulse system allows the user to view internal test system signals on an oscilloscope while
debugging a test program.
The sync signals pass through the support board to the DIB area via the support board’s I/O connector.
The signals include one analog signal (A1) and two digital signals (D1 and D2).
The backplane contains three buses from the slots to the support board.
The support board takes the three backplane buses, multiplexes them and connects them to the DIB via the I/O
connector.
The muxing and pulse generation are done in the TCIO FPGA. A Sync Microcode must be placed on the appropriate
vector during debug
The support board simply passes the analog signal from the backplane to the DIB.
The A1, D1, and D2 signals are also made available at the test head EMO panel on the test head.
S y n c S ig n al s o n D IB b o ard B ac k p lan e
A1 D1 D2 In s tru m en t
P IO
Pa tG en D A DU T
S y n c P u ls e M u x /S p o t
P u ls e
One-shot 5-8us pulse
F
H UB C
X
Su p p o rt B o ard
D ig S Y N C 1 Tes t H ea d
D ig S Y N C 2 E MO
A n alo g Sy n c P an e l
Module 32 - 15
- confidential -
References
Module 32 - 16
- confidential -
Support Boards
J25 J50
Slot 13 Slot 14
Module 32 - 17
- confidential -
FLEX
FLEX
SCAN Concepts
FLEX
Terms, Acronyms and Abbreviations
Scan Testing:
• “Design for Test for Digital ICs and Embedded Core Systems” by
A. L. Crouch (1999)
Level I:
• FLEX HSD200 SCAN
• Architecture
• Capability
• Scan programming
• Simplified SCAN Optimization Methodology
• Scan chain oriented
• Assess Æ Assign
Level II:
• SCAN Concepts in Detail
• Shared LMV, Packing & ADB Data Path
• SCAN Depth and Data Rate Accounting
FLEX
Flex SCAN Architecture
DIB
16 x 200MHz digital channels
per SCAN region (instrument)
3G “Sea-of-bits” available
to any channel
Flex
FlexChannel
ChannelBoard
Board
FlexHSD200
ChannelBoard
Board
What is optimized?
• Maximum SCAN pattern depth (and/or data rate).
1.First, Calculate then maximum number of chains that will be assigned to a channel
board (Nmax_chains_per_board):
Otherwise:
N max_ chains _ per _ board = N chains _ per _ device ÷ N channel _ boards + 1
Equation 2
2.Calculate the Pattern Memory Configuration Factor (kmem_config) based on the LVM
depth and the parallel pattern memory depth.
3.Next, use the previous calculated Nmax_chains_per_board to lookup the maximum scan
depth (Dmax_scan_depth) from Table 1.
Note: In Table 1 several scan chain configurations offer the option to trade-off maximum
available scan depth to support increased scan data rate. Depending on the application
requirements, this may be desirable.
4. Using the values in steps 2 and 3, calculate the scan depth available for the given
configuration (Dscan_depth) using the following expression:
If Dscan_depth meets the scan testing requirements, then continue. Otherwise, it may be
necessary to add more HSD200 boards to reduce Nmax_chains_per_board . If more boards
are added, you will need to repeat steps 1 through 4.
FLEX
Assign Steps 1 & 2
1. Use the value for the number of scan chains per board (Nmax_chains_per_board calculated in
Assess step 1) to look up an optimal scan channel allocation from Table 2.
2. Assign digital channels to the Channel Map using the channel allocation
recommendations described in Table 2. IMPORTANT: Make sure that the DIB design
conforms to the required channel assignment.
Example 1:
1 site, 32 scan chains per site. At least 256 M cycles of scan data is required and 8
M of LVM will be reserved for parallel pattern data. Scan data will be run at up to 50
MHz. The Flex system is configured with 6 HSD200 boards.
Assess Step 1:
32 chains / 6 boards = 5.33 chains per board
In this case the number of boards does not divide evenly into the number of scan
chains. So, Equation 2 applies and Nmax_chains_per_board = 6
Assess Step 2:
kmem_config= (1 – 8 / 64) = 0.875
Assess Step 3:
Referring to Table 1, and using Nmax_chains_per_board = 6, we find Dmax_scan_depth = 512 M
(with a maximum data rate of 200 MHz)
Assess Step 4:
Calculate Dscan_depth = kmem_config x Dmax_scan_depth
= 0.875 x 512 M = 448 M cycles SCAN (@ up to 200 MHz)
This configuration can support the scan testing requirements (320 M @ up to 50 MHz)
FLEX
Optimization Example
Example 1 (continued):
Assign Step 1:
As noted earlier, 6 does not divide evenly into 32. This implies that some boards will
have 5 chains whild others will have one extra chain. In fact, 5 chains will be
assigned to 4 of the available HSD200 boards and 6 chains will be assigned to
2. (However, the 6-chain boards must be used to calculate the maximum scan
depth.)
From Table 2, the optimal scan channel allocation for each 5-chain board is:
SCAN Region #1 Æ 3 scan-in, 1 scan-out
SCAN Region #2 Æ 1 scan-in, 2 scan-out
SCAN Region #3 Æ 1 scan-in, 2 scan-out
Similarly, the optimal scan channel allocation for each 6-chain board is:
SCAN Region #1 Æ 2 scan-in, 2 scan-out
SCAN Region #2 Æ 2 scan-in, 2 scan-out
SCAN Region #3 Æ 2 scan-in, 2 scan-out
Example 1 (continued):
Assign Step 2:
Channel Assignment Steps:
A. Assign channels to 5-chain channel boards:
Using the per board channel allocation from Step 5:
1) Assign Scan-in channels for one SCAN region
2) Assign Scan-out channels for the same region
3) Repeat 1 and 2 for each of the 3 SCAN regions on a board
4) Copy the channel assignment to the other 5-chain boards
• After assigning channels for the first site, re start the process for the next site
using free channel. Be sure that all channels for a given device pin are part of
the same SCAN region.
FLEX
Multi-site Example
Example 1 for 2 sites:
This is what an optimized channel map could look like:
Scan-in pins Scan-out pins
Scroll down…
Related Topics:
• Scan vector shorthand
• Compiling scan vectors as parallel vectors
FLEX
Pin Map
FLEX
Channel Map
FLEX
Pattern Tool
FLEX
Flex SCAN Calculator
Background Materials
(a.k.a. The Gory Details)
FLEX Flex Alternate Data Bus (ADB)
Key Features:
Shared Linear Vector Memory (LVM)
Alternate Data Bus (ADB)
SCAN concepts:
How pattern data is:
1) Allocated during load
2) Accessed and distributed at run time
FLEX
Flex Shared LVM
Loaded Pattern Data
Parallel Pattern Data
3-bits per cycle loaded behind each
channel.
Up to 64M of parallel cycles stored.
2 channels use the LVM space of one!
(Up to 3 scan in cycles per parallel cycle.)
Scan Pattern Data
Each set of 3-bits is no longer
devoted to a particular channel.
Size of each
LVM vector:
3-bits per channel
per LVM Address
X
16 channels
=
Scan 48-bits per LVM
Data
(8 chains) address
Size of each
LVM vector:
3-bits per channel
per LVM Address
X
16 channels
=
Scan 48-bits per LVM
Data
(1-chain) address
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 50
LVM/ADB MHz
Select
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Parallel
Vector
Data Bus
(16x3 = 48 bits)
48
Note: In this case, 48 bits / 2bits-per-
2 2 2 2 = 242 cycles
cycle 2 data
2 of scan 2 fits in2 2 2 2 2 2 2 2
ADB
Bit Select each LVM location.
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
Vector Parallel
Memory Data 50
(64Mx48 = 3G bits) .. MHz
Scan So, if all 64 M LVM locations are
Data
used for scan data only, 24 x 64
M = 1,536 M cycles of scan
pattern data can be stored!
FLEX
1,536 M cycles: Two Scan-out regions
NOTE: This slide is best understood when viewed in color.
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 50
LVM/ADB MHz
Select
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Parallel
Vector
Data Bus
(16x3 = 48 bits)
48
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ADB
Bit Select
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
Vector Parallel
Memory Data 50
(64Mx48 = 3G bits) .. MHz
Scan
Data
FLEX
How to get up to 1,536 M
Earlier, we saw how a single 1,024 M cycle scan chain will fit
into a single scan region.
DIB
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
LVM/ADB 50/
Select
100/
Parallel 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 200
Vector MHz
Data Bus
(16x3 = 48 bits)
48
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ADB
Bit Select
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
Vector Parallel
Memory Data 50
(64Mx48 = 3G bits) .. MHz
Scan
Data
FLEX
Parallel Vector Only
NOTE: This slide is best understood when viewed in color.
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 50
LVM/ADB MHz
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
Select
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Parallel
Vector
Data Bus
(16x3 = 48 bits)
48
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ADB
Bit Select
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
Vector Parallel
Memory Data 50
(64Mx48 = 3G bits) .. MHz
Scan
Alternate Data Bus
Data is not used at all.
FLEX
8 Chains in Single Mode Example
NOTE: This slide is best understood when viewed in color.
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 50
LVM/ADB MHz
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
Select
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Parallel
Vector
Data Bus
(16x3 = 48 bits)
48
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ADB
Bit Select 1,2 3 4,5 6 7,8 9 10,11 12 13,14 15 16,17 18 19.20 21 22,23 24
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
Vector Parallel
Memory Data 50
(64Mx48 = 3G bits) .. 1 cycle worth of data placed on the MHz
Scan ADB every 20 ns (50 MHz). The
Data total number of bits placed on the
ADB at a time is referred to as the
SCAN Stride.
FLEX
1 Chain in Single Mode Example
NOTE: This slide is best understood when viewed in color.
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 50
LVM/ADB MHz
ADB
ADB
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
Select
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Parallel
Vector
Data Bus
(16x3 = 48 bits)
48
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ADB
Bit Select 2,3 1
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
Vector Parallel
Memory Data 50
(64Mx48 = 3G bits) .. MHz
Scan 1 cycle worth of data placed on
Data
the ADB every 20 ns (50 MHz). scan_setup data applied
(Here, the SCAN Stride = 3) to non-scan channels.
FLEX
1 Chain in Dual Mode Example
NOTE: This slide is best understood when viewed in color.
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 100
LVM/ADB MHz
ADB
ADB
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
Select
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Parallel
Vector ADB bits are
Data Bus multiplexed 2X.
(16x3 = 48 bits)
48
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ADB
Bit Select (2,3)
(5,6)
(1)
(4)
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
Vector Parallel
Memory Data 50
(64Mx48 = 3G bits) 2 cycles’ worth of data .. MHz
placed on the ADB every
Scan The number of cycles
Data 20 ns (50 MHz).
(SCAN Stride = 6) placed on the ADB
depends on the pattern
timing mode.
FLEX
1 Chain in Quad Mode Example
NOTE: This slide is best understood when viewed in color.
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 200
LVM/ADB MHz
ADB
ADB
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
LVM
Select
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Parallel
Vector ADB bits are
Data Bus multiplexed 4X.
(16x3 = 48 bits)
48
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ADB (2,3) (1)
Bit Select (5,6)
(8,9)
(4)
(7)
(11,12) (10)
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
Vector Parallel
Memory Data 50
(64Mx48 = 3G bits) .. 4 cycles’ worth of data MHz
Scan placed on the ADB every
Data
20 ns (50 MHz).
(SCAN Stride = 12)
FLEX
50MHz ADB
Data 1 0 1 0
200MHz
100MHz
Scan
Input
28 bits 16 chans
64Mx48 24
3
6
12
2 bits
bits 12
824bits
bits
bits 18
21scan-out
4 chains
chain
28 bits 16 chans
64Mx48 24
3
6
12
2 bits
bits 12
824bits
bits
bits 18
21scan-out
4 chains
chain
HSD200
Stride Loss:
• Each LVM pattern data memory location is 48-bits wide
• So, if the SCAN Stride does not divide evenly (without a
remainder) into 48, then some LVM bits cannot be used.
FLEX
SCAN Stride Loss
Stride Loss Examples:
1 48
48 mod 9 = 3 bits
(unused)
1 48
48 mod 18 = 12 bits
(unused)
FLEX
SCAN Stride Loss
Stride Loss and Data Rate Example:
1 48
48 mod 9 = 3 bits
(unused)
1 48
48 mod 18 = 12 bits
(unused)
Scan
Data With this channel
(1-chain) configuration, 1536
LVM addresses are
used to store
250x100 = 25,000
cycles of scan data.
bits of SCAN data.
..
. Therefore, 391 sets
of 192 bits are
needed for a total of
391x192 = 75,072 raw
data bits.
..
.
In this example, only 72 out of
Start of data for Calculating the number of lost bits:
75,072 bits are not used.
the next scan =192-3*mod(25000,4*16) = 72
This is a negligible (<1%) loss.
vector loop.
FLEX
SCAN Data Broadcast (1-Chain Example)
NOTE: This slide is best understood when viewed in color.
Site 0 Site 1 Site 2 Site 3 Site 4 Site 5 Site 6 Site 7
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 50
LVM/ADB MHz
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
Select
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Parallel
Vector
Data Bus
(16x3 = 48 bits)
48
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ADB
Bit Select 1,2 3 1,2 3 1,2 3 1,2 3 1,2 3 1,2 3 1,2 3 1,2 3
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
The SCAN data is shared across several
Vector Parallel channels. Effectively, each channel has the
Memory Data 50
(64Mx48 = 3G bits) ..
ability to “tune-into” any ADB bits. In this
example, each red-blue channel pair, MHz
Scan represents the same scan chain data across
Data
8 different device test sites.
FLEX
SCAN Data Broadcast (1-Chain Example)
NOTE: This slide is best understood when viewed in color.
I’ve omitted sites from here because it gets messy when the per-site scan channels are not adjacent to each other.
Pin
Electronics
Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch
Formatters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 50
LVM/ADB MHz
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
ADB
Select
For simplicity, previous examples have illustrated scan channels in pairs
3 3 3 3 3 3 3 of scan-in
3 and3scan-out
3 channels.
3 In3general,3 this is 3not necessary.
3 3
Parallel This slide illustrates, how data is mapped to individual channels is
Vector determined by the IG-XL ADB Resource Manager based on the DIB
Data Bus wiring described in the test program’s Channel Map.
(16x3 = 48 bits)
48
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
ADB
Bit Select 1,2 1,2 1,2 1,2 3 3 3 3 1,2 3 1,2 3 1,2 3 1,2 3
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
Alternate
Data 28
Bus
(28 bits) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 48
Vector Parallel
Memory Data 50
(64Mx48 = 3G bits) .. MHz
Scan
Data
FLEX
More about SCAN Broadcast
SCAN Data Broadcast:
• IG-XL handles broadcast automatically based on the DIB
wiring described in the Channel Map.
• Can use VBT to disable SCAN Broadcast (This is also
available for the J750)
• VBT Code:
(See J750 IG-XL documentation / Contact Bruce Norskog)
• When disabled, more ADB resources are used (one set per site).
So, maximum scan depth per site will be reduced and maximum
data rate will also be reduced.
FLEX
Now Consider 3 SCAN Regions
= (1 − η stride )
6 0 100% 0%
7 6 88% 13% Stride Loss:
8 0 100% 0%
9 3 94% 6%
10 8 83% 17%
11 4 92% 8%
12 0 100% 0%
13
14
9
6
81%
88%
19%
13%
From the table, it is apparent that
15 3 94% 6% Stride Loss can be minimized
16 0 100% 0%
17 14 71% 29% when SCAN Stride is minimized
18 12 75% 25%
19 10 79% 21% and/or an even number value.
20 8 83% 17%
21 6 88% 13%
22 4 92% 8%
23 2 96% 4% Do this by minimizing the number
24
25
0
23
100%
52%
0%
48%
of scan channels assigned to
26 22 54% 46% each SCAN Region.
27 21 56% 44%
28 20 58% 42%
FLEX
Additional SCAN Data “Loss”
• Normally, Stride loss is the dominant loss
• Depends on number of cycles per scan vector loop.
• This will vary between devices and test programs
• So, unlike SCAN Stride loss, we cannot spec this out before
hand.
• Even if the per scan loop loss is high, the overall loss is
negligible so long as the number of scan loops is less than
10,000 or so
• Worst-case Example: Lose 191 raw bits per scan loop.
So:
100 scan loops Æ 19.1 K bits loss (6.4 K single-chain cycles)
1000 loops Æ 191 K bits loss (64 K single-chain cycles)
10 000 l Æ 1 9 M bit l (640 K i l h i l )
FLEX
Optimizing SCAN Configurations
η stride =
48
If Single Mode (50 MHz) : k data _ rate = 1
Higher Data Rates
If Dual Mode (100 MHz) : k data _ rate = 2 require more ADB bits
(48 mod(k data _ rate (1 × N scan _ in + 2 × N scan _ out ))) 48 × (64 − D parallel )
Dscan = 1 − × [Megacycles]
48 (1 × N + 2 × N )
scan _ in scan _ out
Resource Constraints :
k data _ rate (1× N scan _ in + 2 × N scan _ out ) ≤ 28
N scan _ in + N scan _ out ≤ 16
FLEX
Accounting Results
The End
FLEX
Back Up
FLEX
Implication From Moore’s Law
800 800
"Relative Gates"
“The Gap” is driving the
600 need for scan on devices 600
"The Gap"
400 400
200 200
0 0
1 2 3 4 5 6 7 8 9 10
Generations of Devices (18 month steps)
FLEX
Different Approaches
DUT with Narrow Scan DUT with Wide Scan
Total Scan Data Volume Number of scan-in and scan-out pairs. (They often
= Number of Scan Chains come in pairs. One pair per chain.)
Usually this is the number of scan cycles per scan
x Length of Longest Chain vector loop
x Number of Scan Patterns This is the total number of scan vector loops. (A
pattern file will normally have many.)
This does not necessarily equal to required ATE per-pin pattern depth!
To meet test time requirements, Customers will most likely use more
scan chains and/or internally decompressed/compressed scan chains.
FLEX
LVM Data to Parallel Channels