United Business Media EE Times


Search

HOMEMARKET INTELLIGENCE UNITFORUMSDESIGNNEW PRODUCTSCAREERSBLOGSCONTACTEVENTSSIGN UP!RSSMost Popular contentTrusted Sources

 



System Design

Modeling Issues for Co-Verification

In lieu of any ideal modeling solution, one must plan a co-verification strategy that properly reflects individual design team priorities.

by Steven E. Schulz


In the ideal world, a universal co-verification environment might enjoy the following desirable characteristics: real-time code execution, support for any processor type, robust software debugging capabilities, support for IC/processor design and hardware system design, fast turnaround time, accurate timing information, accurate prediction of system behavior (with full compiled code), cost-effective verification environment, and avoidance of modeling/software development bottlenecks.

In lieu of any ideal modeling solution, however, we must instead plan a co-verification strategy that properly reflects individual design team priorities. In this article, we will summarize the major issues to consider.

Software execution speed Real-time requirements on external interfaces (e.g. networking applications) may not permit interactions to occur at simulated/emulated speeds. When only full-speed interaction is acceptable, then some physical hardware is probably necessary. In many cases, however, "near-speed" performance is sufficient, opening up several modeling options. This tradeoff becomes a necessity when no real processor exists, or exists only as a prototype board.

Software debugging needs In some design scenarios, it can be important to have access to the internal state of the processor (including registers, stacks, and program counters) to diagnose subtle errors in source code logic or algorithms. It can also be desirable to set breakpoints and override the values of registers as a means to greatly enhance the productivity of simulation time. Logic analyzers, source code debuggers, in-circuit emulators, and reverse assemblers are all useful tools; but the choice of hardware modeling approach can limit options.

Hardware debugging needs If the hardware under design is a new processor, then "internal" views of the model become a necessity. It may be critical to see how a conditional branch instruction responds when a non-maskable interrupt arrives, or find the source of a pesky floating-point division error. Oftentimes, however, a commercial off-the-shelf (COTS) microprocessor is being designed into a hardware system, where issues of general timing and external handshaking become more prominent than micro-architectural details.

Hardware computational domain Digital systems are based on one of several basic conceptual domains for delivering functionality. The synchronous dataflow model is typical of DSP applications, where the emphasis is on algorithmic conversion of input data to processed output form. The control flow model is typical with CISC, RISC and microcontroller applications, where the emphasis is on decision-making logic and programmed response to external events. A hybrid model of computation places roughly equal emphasis on both aspects, adding special challenges to prioritizing critical modeling needs in hardware-software co-design.

Existence of processor During system design, a COTS processor may not yet physically exist, forcing the use of emulated and/or simulated models for code execution. Nearly all IC design projects routinely deal with this constraint, although ASIC design utilizing embedded processor cores may find limited relief by running code on a plug-in (equivalent) processor during ASIC emulation.

Turnaround time Depending on overall design priorities, slow iteration time between hardware design changes may be unacceptable. Some modeling approaches require careful tradeoffs between turnaround time and other desired traits, such as code execution speed.

Interaction level The desired aspect of a design requiring focus is dynamic, based upon the highest perceived risks at any given point in the design cycle. The critical risk may be relatively abstract (as in algorithm validation) or highly specific (such as interrupt handshake timing). Each modeling approach has its own limits on visibility of the interaction of software with the surrounding hardware.

Processor/compiler co-design For modern RISC processors to take full advantage of pipelining and superscalar operation, optimizing compilers must carefully arrange the instructions and data operations. In this scenario, the compiler itself is the software under design, and no physical hardware exists--yet interaction is essential. Typically, the IC is modeled by its own specialized processor simulator that has scalable features (such as number of functional units, cache size, and bus width). A flexible, table-driven prototype compiler can then rapidly implement re-scheduled test code for any given architecture selection.


An array of modeling choices

The article text outlines issues that frequently arise when determining a co-verification strategy. We will now examine how these issues can be satisfied by the abundance of modeling alternatives employed ( see Table 1 ).

Full timing: Software model that runs on a software simulator (or hardware accelerator) for simulation of full functionality, possibly including nanosecond-accurate timing. At present it is too slow for execution of any significant code fragments.

Cycle accurate: Includes device functionality, accurate only at clock cycle boundaries; performance is greatly improved over full timing models, and may be suitable for code execution.

Instruction level: Provides the functionality of the processor's instruction set without regard to hardware architecture, implementation, or timing. It is fast for code execution purposes only.

Bus functional: Contains accurate timing, but lacks all substantial device functionality. It is fast, but is only useful in hardware timing verification.

Physical model: Actual processor is interfaced to the simulator with custom hardware attached to the workstation. Performance for code execution is generally constrained by the approach required to apply stimulus vectors (which must first "replay" all previous vectors), and also by limited communication paths with the host workstation.

Logic emulation (hardware system): Dedicated array of programmable devices emulate hardware logic in conjunction with real plug-in components (for the processor). It is very fast for code execution, but debugging features may be limited, and turnaround time for design changes can be slow.

Logic emulation (microprocessor): Same as above, but programmable logic is configured to represent the gate-level equivalent of the processor being designed. This approach allows access and control of the internal processor state.

Specialized simulator: Custom software program that simulates the micro-architectural features of a processor design and executes compiled code. Each hardware feature is described in a flexible manner that allows for rapid "what if" prototyping along with the compiler design. It is used primarily by processor development groups.

No processor model: If the code is compiled to run on the workstation, and its only communication with hardware is through high-level messages, then the compiled software can act as the combined software-processor combination. It has very fast code execution, but only abstract hardware/software interaction is possible.


Table 1. Co-verification modeling approaches.
Modeling
approach
COTS
P?
Custom
P?
HW
debugging?
SW
debugging?
Runs
code
Timing
accuracy
Turnaround
time
Interaction
level
HW model
"runs" on:
SW code
"runs" on:
Full timing No Yes "Sys, µP" NA NA Good Medium None "SW sim,
HW accel"
SW sim
Cycle accurate Yes Yes Sys Good Medium Poor Medium Binary "SW sim,
HW accel"
SW sim
Instruction level Yes Yes Sys Medium Fast Poor Fast Assembly Host CPU µP sim
Bus functional Yes Yes Sys NA Medium Good Fast PCL SW simulator HW model
Physical model Yes No Sys Poor Slow Good Medium Binary Real µP Real µP
Logic emulation Yes Yes "Sys, µP" Good Fast NA Slow Binary FPGAs or
real µP
Real µP
Specialized
simulator
No Yes "µP, arch" Medium Fast Poor Fast Assy/Binary Host CPU µP sim
No HW model Yes No Sys Medium Fast NA Fast Abstract NA Host CPU



Contributing editor Steven Schulz is a member of the design automation division of Dallas-based Texas Instruments' Semiconductor group.

To voice an opinion on this or any Integrated System Design article, please e-mail your message to: michael@asic.com.


integrated system design  August 1995



[ Articles from Integrated System Design Magazine ] [ ICs and uPs ]
[ Custom ICs and Programmable Logic ] [ Vendor Guide ]
[ Design and Development Tools ] [ Home ]


For more information about isdmag.com e-mail cam@isdmag.com
For advertising information e-mail amstjohn@mfi.com
Comments on our editorial are welcome.
Copyright © 1996 - Integrated System Design Magazine

  Free Subscription to EE Times
First Name Last Name
Company Name Title
Email address
  Click here for your Free Subscription to EETimes Europe
 
CAREER CENTER
Looking for a new job?
SEARCH JOBS
SPONSOR

RECENT JOB POSTINGS
CAREER NEWS
SRC Expands R&D Centers
The Semiconductor Research Corp has added a new center to its university R&D efforts.

For more great jobs, career related news, features and services, please visit EETimes' Career Center.


All White Papers »   

 
Education and
Learning


Learn Now:












Home | About | Editorial Calendar | Feedback | Subscriptions | Newsletter | Media Kit | Contact | Reprints|  RSS|   Digital|  Mobile
Network Websites
International
Network Features




All materials on this site Copyright © 2009 TechInsights, a Division of United Business Media LLC All rights reserved.
Privacy Statement | Terms of Service | About