Tips For Simulation Debug PDF
Tips For Simulation Debug PDF
December 2015
How and where to start?
#after run_build,run_drc
source tmax2pt.tcl
write_timing_constraints cap.tcl -mode capture -replace
write_timing_constraints shift.tcl –mode shift -replace
In PrimeTime:
Verify any other exceptions read in and used
Pattern 0 (basic_scan-chain_test)
Time 0: load c1 = 0011001 Scan Chain load
Time 1: force_all_pis = 010001
Time 2: measure_all_pos = Z0 Scan chain unload
set_simulation -xclock_gives_xout
set_simulation –bidi_fill
set_rule C12 –nomask
set_rule S18 warning
• Check log file for any other S22 and S29 violations, and any C
violations that might not be masked
• If failure is seen in parallel only check number of serial shifts being
used in TestBench
• Run both types of patterns serial and parallel, to narrow down which
one fails
• Testbench used should be “MAX Testbench”
• Recommended to do a subset of serial patterns to ensure full
simulation of the shift path as well as complete exercise of all
compression logic
• Rest of patterns can be done in parallel mode.
– With compression this mode bypasses simulation through CODEC
– Understand scan cells are measured and loaded
– Understand if Shadow cells need serial shifts to load correctly
– Understand any issues with S29 and lockups on trailing edge flops
– Investigate memory models with wrapper chains
• There are tags in the MAXTestbench you can display in waves to see
force/strobe/release times for parallel testbench
Strobe/force
release
Procedures {
"load_unload" {
W "_default_WFT_";
C { "test_si2"=Z;
"test_si1"=Z; "test_so2"=X;
"test_so1"=X; "clk2"=0;
"clk1"=0; "clk3"=0; "reset"=1; Changing C to V
"SCAN_EN"=1; "reset"=1; will add an extra
} test_cycle that
Shift { might be needed
W "_default_WFT_"; with long scan_en
V { "_si"=##; "_so"=##; insertion delay
"clk2"=P; "clk1"=P; }
}
}
Timing {
WaveformTable "_default_WFT_" {
Period '100ns';
Waveforms { Having clock edge
too late in the
"clk2" { P { '0ns' D; '45ns' U; '55ns' D; cycle effects
} } parallel testbench
"clk1" { P { '0ns' D; ‘85ns' U; ‘95ns' D; with SDF max
} } timing
Due to insertion delay falling edge flops will get their clock edge too late
causing failures in Parallel Testbench only due to broadside load issues.
Serial sims will pass. Release of SI is done before clock edge reaches flop
D E
A H
D E
C F
B G
A H
SI SO Exp 1 got X