Fusing Hardware and Simulation Test Bench Development
with Virtual Prototyping Techniques
Designers are looking for new methods to reduce verification time for both simulation models and hardware
prototypes. In many ways both of these environments suffer from the same problems of test vector creation,
test coverage, analysis of results, and detection of elusive timing problems. There are many EDA tools
and hardware test systems available to help solve these problems in each environment, but in the past
there has not been a way to leverage the work done in one environment into the other. In this paper,
we propose several techniques that unite the worlds of simulation and hardware verification and which
take advantage of strengths offer by each environment.
2.0 Basic Virtual Prototyping Setup
Our proposed solution uses a technique called virtual prototyping, which employs a combination of pattern
generators, logic analyzers, and EDA software. Figure 1 shows the basic virtual prototyping setup. SynaptiCAD
offers products that can act as two way waveform translators between the simulation and hardware environments
and provide an analysis platform for comparing and measuring the results. Virtual prototyping techniques
are divided into two categories: EDA-assisted hardware verification and Hardware-assisted simulation
verification.
Figure 1: Virtual Prototyping Setup
3.0 EDA-Assisted Hardware Verification
In the following virtual prototyping setups, we will show several ways to leverage the work done during
the design phase of the product to simplify the development of a hardware test environment. These include:
using waveform data from the simulation phase to generate pattern generator stimulus, comparing captured
waveform results against simulated results to detect hardware errors, and using the simulation environment
to help troubleshoot detected errors.
3.1 Generating Stimulus for Pattern Generators
Programming a pattern generator with enough stimulus to adequately exercise a hardware prototype has
traditionally been a very labor intensive and error prone process. SynaptiCAD's WaveFormer Pro eliminates
this problem by allowing the reuse of waveforms from the simulation phase to serve as the waveform stimulus.
In addition to direct translation, WaveFormer can generate stimulus waveforms using a combination of
graphically drawn signals, timing parameters that constrain waveform edges, clock signals, and temporal
and Boolean equations for describing complex, quasi-repetitive signal behavior. Advanced operations
on signals such as time scaling and shifting, and block copy and pasting of signal behavior over an
interval of time are also supported. This simple, but powerful environment dramatically eases the labor
associate with the generation of complex stimulus. The resulting hardware test benches also have the
same functional coverage of the simulation models ensuring that the hardware prototype is adequately
tested. Figure 2 shows the design flow for the test bench conversion.
Figure 2: Creating Stimulus Vectors for a Pattern Generator
3.1 Verifying Hardware Response with Simulation Compare
Traditionally, waveform data from a logic analyzer has required visual inspection by an engineer familiar
with the operation of the circuit to verify proper operation or to troubleshoot an error. As the number
of waveforms and the amount of data captured increases manual inspection is no longer feasible due to
the sheer amount of data that must be analyzed. SynaptiCAD's VeriLogger Pro software overcomes this
problem by providing a set of automated comparison functions with the ability to compare logic analyzer
data to simulation results as shown in Figure 3. Automated comparison guarantees a rigorous check of
each data point, ensuring the detection of "small impact" errors that are easily missed during visual
inspection of the waveforms.
Another important advantage of automated verification is it reduces the amount of knowledge required
by the verification engineer to test the system. Rarely does even the designer of a system keep a detailed
vision of the operation of all the signals in his design (that's the reason for simulators), yet that
is exactly the capability needed to spot a hardware error. The simulation environment, however, knows
exactly how the signals should be acting, so it is the ideal tool for identifying any differences between
the actual response and the correct response.
Figure 3: Verifying Hardware Response using the Simulation Results
3.3 Simulate and Visualize Acitivity on Internal Nodes
One of the most frustrating problems encountered when debugging a circuit is the inability to see what
is happening on all the internal signal nodes of an FPGA or ASIC. A logic analyzer can only show the
activity on signals that are brought out on device pins. Unfortunately, many designs are I/O limited.
Even when there are no limitations, there are almost never enough pins available to bring out all the
useful nodes.
To combat this problem, WaveFormer Pro contains a built-in interactive simulation engine that can simulate
registered logic equations like those used in FPGAs or CPLDs. Engineers can quickly generate internal
signals to check specific points. If a broader view is needed, then WaveFormer can generate a VHDL,
Verilog, SPICE or gate-level stimulus file which can be simulated with the original design models to
view the entire circuit operation.
3.4 Find Elusive Setup and Hold Violations
Another benefit of combining a simulation environment with a hardware prototyping setup is the ability
to generate complex timing analysis reports. For example, the simulation environment can generate a
report of ALL setup and hold timing violations specified between any two signals in a timing diagram
regardless of whether this signal is a captured waveform or a simulated waveform (logic analyzers typically
only flag the first violation). Setup and hold time violations in ASICs and PLDs are particularly troublesome
because the timing violations usually occur on flip-flop inputs that are not directly available at device
pins, but are instead a logical function of the device's inputs. Using conventional debugging techniques,
these timing violations are extremely difficult to catch because they cannot be directly measured. Using
a simulator, we can determine the response of the internal signals, simplifying the detection of timing
violations between signals buried inside the chip.
4.0 Hardware Assisted HDL Simulation Verification
Just as design data can be transferred into the test domain to help verify hardware, the reverse process
can also be successfully applied to the design and simulation of new systems. Most systems being designed
need to interface with already existing hardware (IC's or entire boards) and simulation models are frequently
not available for that hardware. Waveforms from the existing hardware can be captured with a logic analyzer
and converted to HDL test bench code or SPICE stimulus and used to test the new system. Existing hardware
can also be use to verify that a next-generation system's interface is compatible with the older hardware.
4.1 Generating Stimulus for Simulation Environment
In Figure 4, we use the logic analyzer to capture the raw waveforms from an existing hardware system
and convert that data into a VHDL or Verilog test bench. This method is particularly effective for testing
FPGA's and ASIC's which interface to existing systems. Instead of spending weeks developing a test bench
the engineer can capture real world stimulus and begin testing within minutes of capturing the data.
WaveFormer's built-in timing diagram editor can also scale and manipulate the captured waveforms. For
example, assume a set of waveform data was captured from a current generation system running at 50Mhz
and the new (not yet completed) system will run at 90Mhz. The captured waveforms can be scaled to the
higher speed and then used to test the new system's simulation models.
Figure 4: Use Existing Hardware to generate stimulus models for a new simulation model
4.2 Interface Functional Testing
Often the system being designed is the next generation of an existing product with similar functionality.
In this case, the new system must generally mimic at least part of the interface of the older system.
By performing a waveform comparison between the old system and the new design, correct functioning of
the new system can be assured. Figure 5 shows the design flow for this type of verification.
Figure 5: Using an existing system to test interface compatibility with a new design
5.0 Summary
By using the techniques discussed above, engineers are able to exchange waveform data between their
simulation and hard test environments. Re-use of this type of data dramatically reduces the time required
for both design and hardware verification and produces more comprehensive test suites. This results
in the best of both worlds: faster time-to-market for new products and reduced chance for errors after
product introduction.
Author
Donna Mitchell is vice president of strategic marketing at SynaptiCAD Inc. She received her BS and MS
degrees in electrical engineering from Virginia Polytechnic Institute and State University. Mitchell
is one of the two founders of SynaptiCAD Inc. She co-developed SynaptiCAD's first product, a timing
diagram editor called Timing Diagrammer. Mitchell's industry experience includes 14 years of hardware
and software development. Prior to her work at SynaptiCAD she designed board-level mixed-signal systems
at Analog Devices and Burr Brown Corporation.
Back to Technical Papers page
|