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.

using ad hoc methodologies that are localized and specific to the design. Test reuse is the ability to provide<br />

access to the individual IPs embedded in the SoC so that the test for the IP can be applied and observed<br />

at the chip level. This ability to reuse becomes more complex when the IPs come from multiple sources<br />

with different test methods. It becomes difficult to achieve plug and play capability in the test domain.<br />

Without a standard, the SoC design team is faced with multiple challenges such as a test model for the<br />

delivery of cores, the controllability and observability of cores from the chip I/O, and finally testing the<br />

entire chip with embedded IPs, user defined logic, and embedded memories.<br />

Core Delivery Model<br />

Core test is an evolving industry-wide issue, so no set standards are available to guide the testing of cores<br />

and core-based designs. Cores are often delivered as RTL models, which enable the end-users to optimize<br />

the cores for the targeted application; however, the current test practices that exist in the “soft core” based<br />

design environment are very ad hoc. To a large extent it depends on whether the “soft core” model is<br />

delivered to the end user without any DFT built into the core itself. The core vendors provide only<br />

functional vectors that verify the core functionality. Again, these vectors are valid only at the core I/O<br />

level and have to be mapped to the chip I/O level in order to verify the core functionality at the chip<br />

level. Functional testing has its own merits and demerits, but the use of functional tests as manufacturing<br />

tests without fault simulation cannot provide a product with deterministic quality. It can easily be seen<br />

that any extensive fault simulation would not only result in increased resources, but also an extended<br />

test development time to satisfy a certain quality requirement.<br />

Controllability and Observability of Cores<br />

A key problem in testing cores is the ability to control and observe the core I/O when it is embedded<br />

within a larger design. Typically, an ASIC or IC is tested using the parallel I/O or a smaller subset of<br />

serial ports if boundary scan is used. In the case of the embedded core, an ideal approach would be to<br />

have direct access to its I/O. A typical I/O count for cores would be in the order of 300–400 signals. Using<br />

a brute-force approach all 300 signals could be brought out to the chip I/O resulting in a minimum of<br />

300 extra multiplexers. The overhead in such a case is not only multiplexers, but also extra routing area<br />

for routing the core I/O to the chip I/O and most of all, the performance degradation of at least one gate<br />

delay on the entire core I/O. For most performance driven products, this will be unacceptable. Another<br />

approach would be to access the core I/O using functional (parallel) vectors. In order to set each core<br />

I/O to a known value, it may be necessary to apply many thousands of clocks at the chip I/O. (This is<br />

because, the chip being a sequential state machine, it has to be cycled through hundreds of states before<br />

arriving at a known state—the value on the core I/O signal).<br />

Test Integration<br />

Yet another issue is the integration of test with multiple cores potentially from multiple sources. Along<br />

with the ability to integrate one or more cores on an ASIC, comes other design challenges such as layout<br />

and power constraints and, very importantly, testing the embedded core(s) and the interconnect logic.<br />

The test complexity arises from the fact that each core could be designed with different clocking, timing,<br />

and power requirement. Test becomes a bottleneck in such an environment where the designer has to<br />

develop a test methodology, either for each core or for the entire design. In either case, it is going to impact<br />

the overall design cycle. Even if the individual cores are delivered with embedded test, the end user will have<br />

to ensure testing of the interconnects between the multiple cores and the user logic. Although functional<br />

testing can verify most of these and can be guaranteed by fault simulation, it would be a return to<br />

resource-intensive ways of assuring quality.<br />

Because many cores are physically distinct blocks at the layout level, manufacturing test of the cores<br />

has to be done independent of other logic in the design. This means that the core must be isolated from the<br />

rest of the logic and then tested as an independent entity. Conventional approaches to isolation and test<br />

© 2002 by CRC Press LLC

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

Saved successfully!

Ooh no, something went wrong!