Find Articles in:
All
Business
Reference
Technology
News
Lifestyle

Host independent emulator software architecture - in reference to the HP 64700 Series emulators - technical

Hewlett-Packard Journal, Dec, 1988 by William A. Fischer, Jr.

Host Independent Emulator Software Architecture

FOR A MICROPROCESSOR EMULATOR, the system software is a significant portion of the overall design. HP 64700 Series emulators have, for the first time, an entire microprocessor development system built into firmware. This firmware lays the groundwork for future emulator design.

When a silicon manufacturer releases a new microprocessor, it is important that emulation support be available in a timely fashion. The present HP 64000-UX Advanced Integration Environment offers more than 40 different microprocessor emulators. A flexible software architecture was developed for the HP 64700 Series that also supports many different emulators. This article will discuss the HP 64700 software architecture. It will be shown how the software architecture improves the emulation development environment and how users benefit with easy-to-use, flexible emulation interfaces.

Software Architecture Overview

The HP 64700 software has a layered architecture. The layers consist of the processor specific drivers, the generic firmware, the terminal interface, the RS-232-D/RS-422 communication channel, the programmatic interface, and the host interface (see Fig. 1). The software layers have well-defined interfaces that permit easy communication between layers. These interfaces facilitated design and implementation without unnecessary concern for the detailed design of the other software layers.

The system design started with the terminal interface. The requirement for host independence (see article, page 45) necessitated development of an easy-to-use interface that connects to a simple ASCII terminal. The needs of the terminal interface user were some of the key system design concerns.

The terminal interface is supported by the generic and processor-specific firmware layers. The generic firmware layer is used by all emulation products. The processor-specific layer customizes emulation product for a specific microprocessor. The terminal interface firmware is primarily generic, but commands for specific processors can be added.

The user interface residing on the host computer makes use of the terminal interface to perform its functions. Some terminal interface commands use an option mode to improve system performance by reducing the information passed over the RS-232-D/RS-422 communication channel.

The prgrammatic interface is the layer between the terminal interface and the host user interface. It resides on the host computer and consists of a library of C function calls that access the entire functionality of the emulation system. The programmatic interface is ported to multiple hosts and allows connection of user interfaces of different flavors including high-level software debuggers.

Terminal Interface

The terminal interface provides for communication between the emulation system and the outside world. Terminal interface commands are designed to be atomic, each performing only one function. Command names are one to five characters in length and form easily remembered mnemonic abbreviations of the emulation functions. Command options provide extra flexibility for the command functions. Command operands are used when additional data is required by the function.

For example, to display registers the simple command reg is used. With no operands, the command displays the entire register set. A single register can be displayed by following the command with an operand, the register name, as in reg pc. To modify a register the command might be used as follows: reg pc = 100h.

The terminal interface command set consists of nearly 100 commands. Almost half of these commands are used to access the functionality of the emulation analyzer (see article, page 45). The other commands provide functionalitiy for memory display, software breakpoints, emulation memory and target memory loading, stepping, running, and system functions.

To help the user with the sheer number of commands that must be remembered, the HP 64700 terminal interface contains an extensive help system. The help system provides detailed descritpions and uses for all commands. User access to the commands is simple and hierarchical so that users can work their way from generic help, through a listing of command groups, and finally to more through help for an individual command. See Fig. 2 for a display of help commands.

Terminal interface system commands are also available for displaying the time and date, controlling the communication port, and running performance verification tests. The HP 64700 Series also allows the user to define system macros, groupings of commands that can be executed by a user-defined name.

Firmware Structure

The firmware consists of generic core code and a set of processor-specific drivers and functions. This division allows easy partitioning of firmware tasks. The generic core code is universal. Only the processor-specific functions are developed for each new emulator. This minimizes the overall development time for a new microprocessor emulator.

 

BNET TalkbackShare your ideas and expertise on this topic

The following tags are supported in BNET comments:
<b></b> <i></i> <u></u> <pre></pre>

Leave a Reply

  1. You are currently a guest | Login?
advertisement
CIO SessionsVision Series on ZDNet

See and hear what CIOs the world over thinks about the business of technology and how it's changing the way we live and work.

Go
advertisement
  • Click Here
  • Click Here
advertisement

Content provided in partnership with http://findarticles.com/source//