15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

FIGURE 45.3<br />

FIGURE 45.4<br />

Robustness Check for Pattern Pairs<br />

The understanding of “robustness” slightly differs between authors. We follow the robustness definition<br />

of Reddy et al., described in [38], avoiding static hazards in the input cone of the fault location.<br />

Since MILEF has no information on timing conditions, a “worst case” analysis for static hazard occurrences<br />

is performed. Starting from the fault location backward to the primary inputs of the circuit, every<br />

constant signal is checked for a static hazard. If both a rising and a falling transition are found at one gate,<br />

the output of the gate is marked hazardous. If for a pattern the static hazard is propagated to the fault<br />

location, the corresponding pattern is marked nonrobust. By using a fault simulator that takes into account<br />

timing conditions such as FEHSIM [39], these nonrobust patterns possibly can be identified as robust.<br />

Inter-Level Communications<br />

In the present version, MILEF works on two levels of hierarchy at the gate-level and the switch-level.<br />

Communication procedures between the gate-level and the switch-level are performed systematically<br />

during several steps of the program execution. The communication functions in Fig. 45.4 are described<br />

as follows:<br />

• get_cubes: The logic function of a switch-level macro is computed and the corresponding values<br />

are prepared to be used at the gate-level.<br />

• put_constraints: Constraints are computed on the gate-level for a block (e.g., by the reconvergency<br />

analysis described in the following section) and stored for a constraint driven ATPG at the switchlevel.<br />

• get_D_cubes: Propagation cubes are computed and prepared to be used for the propagation of<br />

fault effects over a switch-level macro during the test generation at the gate-level.<br />

• generate_test: The previous local io-values of a switch-level macro are used locally as an initpattern<br />

at the switch-level and the computed local test pattern is used at the gate-level for global<br />

propagation and application.<br />

© 2002 by CRC Press LLC<br />

g1<br />

B 0<br />

0-1<br />

A A1<br />

Stuck-open test in gate g1.<br />

Get<br />

Cubes<br />

A2<br />

Communication between MILEF and CTEST.<br />

C<br />

0-1<br />

1-0/1<br />

g2<br />

MILEF = MIxed LEvel FAN<br />

Put<br />

Constraints<br />

Get<br />

D-Cubes<br />

Generate<br />

Test<br />

CTEST = CMOS Test<br />

Reject<br />

D<br />

0/0-1<br />

Simulate<br />

Pattern

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!