Issue
109, August 1999
Using
System-on Chip Design with Virtual components
VC Test
Challenges
By its nature,
a VC is embedded into the SOC design by the VC user.
Once a VC is inside the larger chip design, its
no longer accessible as a stand-alone functional block.
Whatever test vectors or methods the VC supplier provides
can no longer be used without special considerations
to design-for-test (DFT) approaches during chip design.
The challenges
of embedded VC tests depend on the nature of the VC
itself. A synthesizable VC is the easiest case. The
VC user runs synthesis to map the Verilog or VHDL code
to the target technology, lays out the chip following
the suppliers guidelines, and runs timing analysis
with back-annotated postroute delays.
The result,
as I noted, is that the VC follows the same design process
as the rest of the chip. The same is generally true
for chip test methodology, since virtually all test
insertion tools run on the postsynthesis netlist. Whatever
approach the VC user takes for the rest of the chipfull
scan, partial scan, built-in self test (BIST), or JTAGis
usually applied to the soft VC also.
To ensure
that the user has no problems, a soft-VC supplier should
use a clean design style with DFT in mind. Typically,
soft VC designers use simple clocking schemes, avoiding
latches and gated clocks unless they are required.
For example,
the USB protocol has suspend and resume commands that
put a peripheral device into a minimal-power state.
Some amount of clock gating is unavoidable in a USB
device VC because of this requirement.
In contrast,
a hard macro user is stuck with whatever test technique
(if any) is built into the VC. If the VC includes full
scan, partial scan, or BIST technology, its helpful
if the remainder of the chip also uses this approach.
Integrating a VC scan chain into the full-chip scan
chain is usually a simple matter of running scan insertion
and stitching tools.
Sometimes
the hard macro includes no internal DFT at all (often
called legacy VCs because the user needs to treat them
as black boxes in terms of testing). Generally, the
VC supplier provides a set of test vectors, perhaps
guaranteed to provide a certain level of coverage as
defined by the single stuck-at fault (SSF) model. Of
course, running this exact set of tests on the VC once
its embedded in a chip can be a challenge for
the VC user.
When the only
test method available for a legacy VC is "playing"
a set of predefined test vectors, two approaches are
common. The first is simply to bring all VC inputs and
outputs out to external chip I/O pins using multiplexers
as shown in Figure 5.
Figure 5One
test method for legacy VCs is a parallel access
test process. This process uses multiplexers to
bring all inputs and outputs to the external pins
and plays a predefined set of test vectors.
|
The parallel
test-access process can be automated by test-insertion
tools and requires only a VC test-mode pin setup prior
to running functional vectors on the VC. This approach
is attractive for interconnect VCs like PCI because
some VC inputs and outputs will already be connected
to chip I/O pins for functional reasons.
This method
breaks down if there are more VC inputs and outputs
than chip pins available. Staging registers may be needed
to accrue each complete VC vector over several clock
cycles. If the test vectors are also intended to check
VC timing, inserting multiplexers into the path adds
delays and may require changes to the timing vectors.
This approach
doesnt work at all for analog VCs unless some
sort of analog multiplexer is available. Intervening
digital logic makes it impossible to apply or measure
continuous analog values.
The second
approach, called internal boundary scan or VC isolation,
surrounds the legacy VC with a JTAG-like register chain
that can drive the VC inputs and read the VC outputs.
As shown in Figure 6, this setup requires some form
of TAP-like test controller to run the scan chain.
Figure 6Another
approach for testing legacy VC involves serial
access to the virtual-component I/O signals. The
legacy VC is surrounded with a JTAG-like register
chain that can drive VC inputs and read VC outputs.
The disadvantage of this method is that test times
can be very long for complex blocks.
|
Because this
technique relies on serial access to the VC I/O signals,
test times can be long for complex blocks like embedded
microprocessors. So, IP suppliers are developing methods
to test complex VCs using existing functional datapaths,
including on-chip buses.