Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability
Reexamination Certificate
1998-05-14
2001-01-09
Beausoliel, Jr., Robert W. (Department: 2785)
Error detection/correction and fault detection/recovery
Data processing system error or fault handling
Reliability and availability
C717S152000
Reexamination Certificate
active
06173419
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to an emulator for debugging software that operates on a target micro-controller in a target circuit environment. More specifically, the invention relates to the emulator being programmed into a field programmable gate array (FPGA).
2. Description of the Related Art
An example of a generic micro-controller is the industry standard 8051 originally designed by Intel. New software for different applications of the 8051 is constantly being written and must be debugged.
There are currently two conventional hardware techniques used by programmers to debug computer software code. These techniques include program monitors and microprocessor emulators.
With a program monitor the software debugging is done on the target micro-controller. The program monitor is intrusive software located in code RAM with the operating program that controls the functions of the micro-controller. The program monitor operates in conjunction with and monitors the operation of the operating program. A programmer uses the program monitor to send his own instructions to the micro-controller when it is code fetching and he is able to make the micro-controller interrogate itself. Not all signals in the micro-controller are available to the programmer so the amount of control is limited.
The use of program monitors is advantageous because they are relatively inexpensive and find the majority of errors or “bugs” located in the main program. One drawback of program monitors is that they require the use of resources in the target circuit and typically are ineffective in detecting more difficult problems in the associated program code.
The second type of software debugging tool is an emulator that substitutes for the target micro-controller during target circuit testing and execution. The emulator is non-intrusive and contains a micro-controller and debugging software. A host computer operates in conjunction with the emulator to provide transparent operation of the emulator micro-controller embedded in the target circuit. The emulator traces all activity that occurs at the micro-controller. The emulator provides a complex breakpoint system that monitors the micro-controller activity and stops the micro-controller operations at predetermined points for analysis of certain target circuit signals. The emulator is designed for use primarily in full system integration and for solving real-time problems.
An advanced version of an emulator has a micro-controller and monitoring logic integrated into a bondout integrated circuit. The bondout IC contains monitoring or debug circuitry which provides a window into the operations of the micro-controller. The bondout IC replaces the target micro-controller in the target circuitry. A host computer has a commercially available software debug program which works with the monitoring circuitry to look at the response of the micro-controller as instructions are executed from the program being debugged. The emulator is designed for use primarily in full system integration and for solving real-time problems.
This performance, however, comes at a price. The bondout IC is typically a low volume more complex version of the production device. Thus, one major drawback of emulators is that they are relatively expensive, thereby making them inaccessible to a significant percentage of the growing number of software engineers participating in micro-controller-based circuit design tasks.
What is needed is an emulator for debugging software that operates in real time, is economical to create, and may be programmed to have a variety of configurations.
SUMMARY OF THE INVENTION
The present invention is an emulator for debugging software operating on a target micro-controller in a target circuit environment. The emulator contains a field programmable gate array that is programmed to contain an emulated target micro-controller and an emulated monitoring circuit which monitors the operations of the emulated micro-controller.
A host computer contains a source level program which contains the models for the emulated target micro-controller and the emulated monitoring circuit emulator. The host computer compiles the source level program and reads and configures it into the FPGA so that the emulated target micro-controller and the emulated monitoring circuit are programmed into the FPGA.
The emulated target micro-controller receives signals from the target circuit environment. The signals from the target circuit environment are communicated to the emulated target micro-controller by one or more channels, such as a data channel and a timing channel. The number of channels is limited so signals from the target environment do not degrade the performance of the emulator.
The host computer contains a software debug program that works with the emulated monitoring circuit to monitor the emulated micro-controller. A RAM contains the code store program that is used to provide instructions to the micro-controller.
The FPGA is programmed to have the characteristics of one or more types of memory, for example ROM, PROM and EEPROM. The FPGA cooperates with the RAM to emulate the different types of memory.
One novel feature of the invention is the programming of the emulated micro-controller and emulated monitoring circuit into the FPGA. The major advantage of this approach is that it allows the same general purpose hardware (i.e. FPGA and RAM) to be used in the emulation of different configurations of the micro-controller without any hardware modifications which reduces cost and speeds time to market. In addition, it enables the incorporation of additional logic for the monitoring circuit to speed the customers software debugging process without undermining the security of the target IC.
A second novel feature is that new and different memory technologies may be implemented (i.e. ROM, PROM, EEPROM) with the same hardware.
REFERENCES:
patent: 4674089 (1987-06-01), Poret et al.
patent: 5228039 (1993-07-01), Knoke et al.
patent: 5313618 (1994-05-01), Pawloski
patent: 5325365 (1994-06-01), Moore et al.
patent: 5537536 (1996-07-01), Groves
patent: 5541862 (1996-07-01), Bright et al.
patent: 5590354 (1996-12-01), Klapproth et al.
patent: 5603043 (1997-02-01), Taylor et al.
patent: 5604888 (1997-02-01), Kiani-Shabestari et al.
patent: 5640337 (1997-06-01), Huang et al.
patent: 5657441 (1997-08-01), Kurose et al.
patent: 5664198 (1997-09-01), Chen et al.
patent: 5670897 (1997-09-01), Kean et al.
patent: 5903718 (1999-05-01), Marik
patent: 5911059 (1999-06-01), Profit, Jr.
Advanced Technology & Materials Inc.
Beausoliel, Jr. Robert W.
Elisca Pierre E.
Rasmussen David G.
Zitzmann Oliver A.
LandOfFree
Field programmable gate array (FPGA) emulator for debugging... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Field programmable gate array (FPGA) emulator for debugging..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Field programmable gate array (FPGA) emulator for debugging... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2508518