WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Processor condition sensing circuits, systems and methods    
United States Patent5535331   
Link to this pagehttp://www.wikipatents.com/5535331.html
Inventor(s)Swoboda; Gary L. (Sugar Land, TX), Ehlig; Peter N. (Houston, TX)
AbstractOperations of a data processing device are traced by detecting a jump address in the program counter sequence, and pushing the jump address onto a trace stack.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5535331
Processor condition sensing circuits, systems and methods - US Patent 5535331 Drawing
Processor condition sensing circuits, systems and methods
Inventor     Swoboda; Gary L. (Sugar Land, TX) , Ehlig; Peter N. (Houston, TX)
Owner/Assignee     Texas Instruments Incorporated (Dallas, TX)
Patent assignment
All assignments
Publication Date     July 9, 1996
Application Number     07/830,110
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     February 3, 1992
US Classification     714/45 714/28 714/30
Int'l Classification    
Examiner     Baker; Stephen M.
Assistant Examiner    
Attorney/Law Firm     Stahl; Scott B. Donaldson; Richard L. Kesterson; James C.
Address
Parent Case     CROSS-REFERENCE TO RELATED APPLICATIONS This is a division, of application Ser. No. 07/388,286, filed Jul. 31, 1989, now abandoned, which is a continuation in part of the following applications which are hereby incorporated herein by reference: Ser. No. 093,463, filed Sep. 4, 1987, abandoned parent of continuing application Ser. No. 440,454 filed on Nov. 21, 1989, abandoned; Ser. No. 140,055, filed Dec. 31, 1987 and issued as U.S. Pat. No. 5,109,494; Ser. No. 140,192, filed Dec. 31, 1987 and issued as U.S. Pat. No. 5,101,498; Ser. No. 347,968, filed May 4, 1989, abandoned; Ser. No. 347,969, filed May 4, 1989 abandoned parent of continuing application Ser. No. 918,902 filed on Jul. 22, 1992, pending; Ser. No. 347,605, filed May 4, 1989, abandoned; Ser. No. 347,596, filed May 4, 1989 and issued as U.S. Pat. No. 5,072,418; Ser. No. 347,615, filed May 4, 1989 and issued as U.S. Pat. No. 5,142,677; Ser. No. 347,966, filed May 4, 1989, and issued as U.S. Pat. No. 5,155,812; Ser. No. 347,967, filed May 4, 1989, abandoned. The following coassigned applications are also incorporated herein by reference. Ser. No. 386,936, filed Jul. 28, 1989 and issued as U.S. Pat. No. 5,237,672; Ser. No. 387,569, filed Jul. 28, 1989 abandoned; Ser. No. 387,455, filed Jul. 28, 1989 abandoned; Ser. No. 386,850, filed Jul. 28, 1989 abandoned; Ser. No. 387,568, filed Jul. 28, 1989 and issued as U.S. Pat. No. 5,233,690; Ser. No. 948,337, filed Dec. 31, 1986 abandoned; Ser. No. 057,078, filed Jun. 2, 1987 issued Aug. 22, 1989 (U.S. Pat. No. 4,860,290). This application is among and related to coassigned applications Ser. No. 388,270, abandoned parent of continuing application Ser. No. 846,459 filed on Mar. 2, 1992, pending, Ser. No. 387,475, abandoned parent of continuing application Ser. No. 827,549 filed on Jan. 29, 1992, pending, Ser. No. 387,549, abandoned parent of continuing application Ser. No. 911,250 filed on Jul. 7, 1992, abandoned, Ser. No. 387,724, abandoned, and Ser. No. 388,275, abandoned, all filed contemporaneously and hereby incorporated herein by reference.
Priority Data    
USPTO Field of Search     371/16.2 371/22.3
Patent Tags     processor condition sensing circuits, methods
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4860195
Krauskopf
711/202
Aug,1989

[0 after 0 votes]
4788683
Hester
714/30
Nov,1988

[0 after 0 votes]
3673573
Smith
714/45
Jun,1972

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A data processing device comprising:

a program counter, a program counter stack, a trace stack and means for causing the program counter to count through a series of addresses; and

a control circuit for entering a jump address into said program counter in substitution for a current address in the series, thereby establishing a discontinuity, said control circuit including means for pushing the current address onto the program counter stack and the jump address onto the trace stack.

2. The data processing device of claim 1 wherein said control circuit includes means for pushing the current address onto the trace stack also.

3. The data processing device of claim 1 further comprising an interrupt circuit connected to said control circuit and memory means for storing an interrupt routine, said control circuit responsive to the memory means and comprising means also operative upon completion of the interrupt routine for popping the program counter stack and pushing the trace stack.

4. The data processing device of claim 3 wherein, upon completion of the interrupt routine, the trace stack is pushed with a most recently accessed address of the interrupt routine and a return address from which operations were interrupted.

5. A data processing device, comprising:

a program counter for holding an address of an instruction currently being processed by said data processing device;

means for causing said program counter ordinarily to count through a continuous sequence of addresses;

a control circuit for entering into said program counter an out-of-sequence address that establishes within the sequence of program counter addresses an address discontinuity defined by the out-of-sequence address and the address which immediately preceded the out-of-sequence address in the program counter;

a program counter stack, and means for selectively pushing an address from said program counter onto said program counter stack; and

a trace stack, said control circuit including means responsive to the address discontinuity for pushing the out-of-sequence address onto said trace stack.

6. The data processing device of claim 5, wherein said control circuit includes means for permitting only those program counter addresses that define address discontinuities to be pushed onto said trace stack.

7. The data processing device of claim 6, wherein said control circuit includes means for causing every program counter address which defines an address discontinuity to be pushed onto said trace stack.

8. The data processing device of claim 5, including a serial scan circuit interconnected with said trace stack and accessible externally of said data processing device.

9. The data processing device of claim 8, wherein said trace stack is connected in series with said serial scan circuit to define therewith a serial scan path for permitting external access to the addresses stored in said trace stack.

10. The data processing device of claim 9, wherein said control circuit includes means for generating a state vector representing whether or not a particular address in said trace stack is a jump address.

11. The data processing device of claim 10, including a shift register operatively associated with said trace stack for storing said state vector, said shift register being located in said serial scan path for permitting external access to said vector.

12. The data processing device of claim 11, wherein said shift register is arranged to permit serial shifting of said state vector out of said shift register along a signal path which is separate and distinct from said serial scan path.

13. The data processing device of claim 12, including means connected to said signal path for examining said state vector to determine when said trace stack is full.

14. A method of tracing operations of a data processing device having a program counter which normally counts through a continuous sequence of addresses at which instructions to be processed by the data processing device reside, comprising the steps of:

providing the data processing device with a trace stack which is separate from a program counter stack of the data processing device;

determining whether a program counter address is an out-of-sequence address that establishes within the sequence of program counter addresses an address discontinuity defined by the out-of-sequence address and the address which immediately precedes the out-of-sequence address; and

responding to a detected address discontinuity by pushing the out-of-sequence address onto the trace stack.

15. The method of claim 14, including the step of permitting only those program counter addresses that define address discontinuities to be pushed onto the trace stack.

16. The method of claim 15, including the step of pushing onto the trace stack every program counter address that defines an address discontinuity.
 Description Submit all comments and votes
 


NOTICE

(C) Copyright 1989 Texas Instruments Incorporated. A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

This invention relates to electronic data processing and emulation, simulation, and testability devices and systems, and methods of their manufacture and operation.

BACKGROUND OF THE INVENTION

Advanced wafer lithography and surface-mount packaging technology are integrating increasingly complex functions at both the silicon and printed circuit board level of electronic design. Diminished physical access is an unfortunate consequence of denser designs and shrinking interconnect pitch. Designed-in testability is needed, so that the finished product is still both controllable and observable during test and debug. Any manufacturing defect is preferably detectable during final test before a product is shipped. This basic necessity is difficult to achieve for complex designs without taking testability into account in the logic design phase, so that automatic test equipment can test the product.

In addition to testing for functionality and for manufacturing defects, application software development requires a similar level of simulation, observability and controllability in the system or sub-system design phase. The emulation phase of design should ensure that an IC (integrated circuit), or set of ICs, functions correctly in the end equipment or application when linked with the software programs.

With the increasing use of ICs in the automotive industry, telecommunications, defense systems, and life support systems, thorough testing and extensive real-time debug becomes a critical need.

Functional testing, wherein a designer is responsible for generating test vectors that are intended to ensure conformance to specification, still remains a widely used test methodology. For very large systems this method proves inadequate in providing a high level of detectable fault coverage. Automatically generated test patterns would be desirable for full testability, and controllability and observability are key goals that span the full hierarchy of test (from the system level to the transistor level).

Another problem in large designs is the long time and substantial expense involved. It would be desirable to have testability circuitry, system and methods that are consistent with a concept of design-for-reusability. In this way, subsequent devices and systems can have a low marginal design cost for testability, simulation and emulation by reusing the testability, simulation and emulation circuitry, systems and methods that are implemented in an initial device. Without a proactive testability, simulation and emulation approach, a large of subsequent design time is expended on test pattern creation and grading.

Even if a significant investment were made to design a module to be reusable and to fully create and grade its test patterns, subsequent use of module may bury it in application specific logic, and make its access difficult or impossible. Consequently, it is desirable to avoid this pitfall.

The advances in IC design, for example, are accompanied by decreased internal visibility and control, reduced fault coverage and reduced ability to toggle states, more test development and verification problems, increased complexity of design simulation and continually increasing cost of CAD (computer aided design) tools. In the board design the side effects include decreased register visibility and control, complicated debug and simulation in design verification, loss of conventional emulation due to loss of physical access by packaging many circuits in one package, increased routing complexity on the board, increased costs of design tools, mixed-mode packaging, and design for produceability. In application development, some side effects are decreased visibility of states, high speed emulation difficulties, scaled time simulation, increased debugging complexity, and increased costs of emulators. Production side effects involve decreased visibility and control, complications in test vectors and models, increased test complexity, mixed-mode packaging, continually increasing costs of automatic test equipment even into the 7-figure range, and tighter tolerances.

SUMMARY OF THE INVENTION

Among the objects of the present invention are to provide improved emulation, simulation and testability architectures and methods which provide visibility and control without physical probing or special test fixtures; to provide improved emulation, simulation and testability architectures and methods which are applicable to critical components of system designs to support test and integration of both hardware and software; to provide improved emulation, simulation and testability architectures and methods that are a viable alternative to high capital-cost test equipment and systems; to provide improved emulation, simulation and testability architectures and methods which integrate access to sophisticated operations in hardware emulation, fault emulation, simulation and built-in test; to provide improved emulation, simulation and testability architectures and methods which apply hardware and software visibility and control to reduce application development time and thus reduce the user manufacturer's time-to-market on new products; and to provide improved emulation, simulation and testability architectures and methods to leverage hierarchical partitioning and automatically generate reusable tests for related chips and systems.

Generally, one form of the invention is a data processing device including a semiconductor chip, an electronic processor on-chip and an on-chip condition sensor connected to the electronic processor for analysis of the operations.

Other device, system and method forms of the invention are also disclosed and claimed herein. Other objects of the invention are disclosed and still other objects will be apparent from the disclosure herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are set forth in the appended claims. The preferred embodiments of the invention as well as other features and advantages thereof will be be best understood by reference to the detailed description which follows, read in conjunction with the accompanying drawings, wherein FIGS. 1-43 are incorporated from any of applications Ser. Nos. 347,605, 347,596, 347,615, 347,966, 347,968, 347,967 and 347,969 and wherein:

FIG. 44 is a pictorial diagram of development tools for developing integrated circuit chips and software;

FIG. 45 is a partially pictorial, partially block diagram of a system configuration for emulation, simulation, testability and attached processor data processing, communications I/O and peripheral access;

FIG. 46 is a diagram of a software configuration for a host computer of FIG. 45;

FIG. 47 is a block diagram of a modular port scan (MPSD) arrangement;

FIG. 48 is a block diagram of a scan test/MPSD configuration;

FIG. 49 is a block diagram of an integrated approach to test and emulation circuitry;

FIG. 50 is a partially block, partially schematic diagram of a scan testability interface;

FIG. 50A is a state transition diagram of a test access port (TAP) controller in FIG. 50;

FIG. 51 is a block diagram of processor chip domains, boundary scan and scan test/emulation circuitry on chip;

FIG. 52 is a block diagram of the processor chip of FIG. 51 showing functional blocks of the chip allocated to the various domains, and showing a message passing circuit;

FIG. 53 is partially pictorial, partially block diagram of the processor chip of FIGS. 51 and 52;

FIG. 54 is a block diagram of scan paths in greater detail than that of FIG. 50;

FIG. 55 is a block of scan paths in greater detail than that of FIG. 54;

FIG. 56 is a block diagram of connections of a control adapter to the domains, showing nomenclature;

FIG. 57 is a block diagram of modules in the domains, also illustrating a mode-driven stops process;

FIG. 58 is a process diagram of operation of the system of FIGS. 45, 50, 57 and 59 for emulation, simulation and testability;

FIG. 59 is a detailed block diagram of the adapter of FIGS. 49, 51, 52, 53, 56 and 57;

FIG. 59A is a compact diagram of shift register latches SRLs in a scan chain in FIG. 59;

FIG. 60 is a schematic diagram of a code state machine and an event manager circuit therefor in the adapter of FIG. 59;

FIG. 61 is a state transition diagram of the code state machine of FIG. 60;

FIG. 62 is a schematic diagram of selection and flip-flop circuitry of the adapter of FIG. 59;

FIG. 63 is a schematic diagram of a lock control circuit of the adapter of FIG. 59;

FIG. 64 is a schematic diagram of one of three identical logic circuits of the adapter of FIG. 59 supplying codes to a domain;

FIG. 65 is a schematic diagram of one of three identical clock control circuits of the adapter of FIG. 59 for switching functional clock FCLK or test clock JCLK to a domain;

FIG. 66 is a pictorial diagram of a testing system for testing numerous integrated circuits on a wafer in wafer fabrication;

FIG. 67 is a process flow diagram of operation of the testing system of FIG. 66;

FIGS. 68A and 68B are two halves of a block diagram of a central processing unit CPU core improved for emulation, simulation and testability;

FIG. 69 is a block diagram of an analysis circuit for monitoring the operations of an integrated circuit device;

FIG. 70 is a process flow diagram of operations of the analysis circuit of FIG. 69;

FIG. 71 is a block diagram of a hardware breakpoint circuit in FIG. 68A;

FIG. 72 is a block diagram of a trace stack in FIG. 68A;

FIG. 73 is a process flow diagram of operations of the trace stack and a program counter stack of FIG. 68A;

FIG. 74 is an address map of a processor device;

FIG. 75 is a time-series diagram of the contents of the program counter stack and not the trace stack;

FIG. 76 is a partially pictorial, partially block diagram of a system for simulated peripheral accesses;

FIG. 77 is a process flow diagram of operations of the system of FIG. 76;

FIG. 78 is a block diagram of the message passing circuitry of FIG. 52;

FIG. 79 is a process flow diagram of an attached processor method of operating the system of FIG. 45;

FIG. 80 is a block diagram of a graphic system processor GSP chip;

FIG. 81 is a more detailed block diagram of a CPU portion of the GSP chip of FIG. 80 showing testability, emulation and simulation circuitry;

FIG. 82 is a waveform diagram of clock waveforms for operating the GSP chip of FIG. 80;

FIG. 83 is a schematic of a parallel register latch for use in the GSP chip of FIG. 80;

FIG. 84 is a schematic of a serial register latch for use in the GSP chip of FIG. 80;

FIG. 85 is a block diagram of a control read only memory (CROM) for the GSP chip of FIG. 80;

FIG. 86 is a detailed block diagram of signature analysis test circuitry for the CROM of FIG. 85; and

FIG. 87 is a schematic diagram of a cell in the signature analysis test circuitry of FIG. 86.

Corresponding numerals and other corresponding symbols refer to corresponding parts in the various Figures of drawing except where the context indicates otherwise.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Various inventive electronic architectures, devices, systems and methods were described extensively in the detailed description and drawings 1-43 common to all of the coassigned applications with Ser. Nos. 347,605; 347,596 issued Oct. 10, 1991 (U.S. Pat. No. 5,072,418); 347,615; 347,966; 347,968; 347,967; and 347,969. All of these foregoing coassigned applications are incorporated herein by reference. Numbering of Figures in the present application begins with FIG. 44 to continue the sequence of detailed description. Corresponding numerals in this application and said coassigned applications refer to corresponding parts for clarity of exposition.

A device 11, described in the coassigned applications and further described herein, is adapted for sophisticated interfacing with development tools illustrated in FIG. 44. Hardware design tools include an extended development system 1101 interfaced by a serial line 1103 to a circuit board 1043 holding device 11. Also provided in the development tools are an evaluation module 1111 connected to an analog interface board AIB 1113.

A software development system SWDS provides for user entry of source code 1121 in the C computer language which source code then is compiled by a C compiler 1123 into code 1125.

C compiler 1123 is an optimizing compiler fully implementing the standard Kernighan and Ritchie C language, for instance. The compiler 1123 accepts programs written in C and produces assembly language source code, which is then converted into object code by the assembler 1127. This high-level language compiler 1123 allows time-critical routines written in assembly language to be called from within the C program. Conversely, assembly routines may call C functions. The output of the compiler is suitably edited before assembly and link to further optimize the performance of the code. The compiler 1123 supports the insertion of assembly language code into C source code, so that the relative proportions of high-level and assembly language code are tailored according to the needs of a given application.

The code 1125 is assembled by an assembler 1127 into relocatable object code. A linker 1129 produces non-relocatable machine code or linked object code which is then downloaded into the device 11 through the development system.

Assembler 1127 and linker 1129 comprise a software development tool that converts assembly language files into executable object code. Key features are macro capabilities and library functions, conditional assembly, relocatable modules, complete error diagnostics, and symbol table and cross reference. Four programs address specific software development needs, discussed next.

The assembler 1127 translates assembly language source files into machine language object files. Source files contain instructions, assembler directives and macro directives. Assembler directives are used to control various aspects of the assembly process, such as the source listing format, data alignment and section content.

The linker 1129 combines object files into a single executable object module. As the linker creates an executable module, it performs relocation and resolves external references. The linker accepts relocatable object files created by the assembler as input. It also accepts archive library members and output modules created by a previous linker run. Linker directives allow combining or binding of file sections or symbols to addresses and defining or redefining global symbols.

An archiver allows collection of a group of files into a single archive file. For example, several macros are suitably collected into a macro library. The assembler searches through the library and uses the members that are called as macros by the source code 1125. The archiver also suitably collects a group of object files into an object library such as files that resolve external references during linking.

An object format converter converts an object file into any one of several EPROM programmer formats, such as TI-TAG format. The converted file is then downloaded to an EPROM programmer so that the EPROM code so established is then executed on the device 11 target chip in system 1043.

Simulator 1131 executes a software program that simulates operation of the target chip for cost-effective software development and program verification in non-realtime. The simulator simulates the entire target chip instruction set and simulates the key peripheral features including DMA, timers and serial port when the target chip includes them. Command entry is accepted from either menu-driven keystrokes (menu mode) or from a batch file (line mode). Help menus are provided for all screen modes. Its standard interface can be user customized. Simulation parameters are quickly stored/retrieved from files to facilitate preparation for individual sessions. Reverse assembly allows editing and reassembly of source statements. Memory is displayed as hexadecimal 32 bit values and assembled source code, separately or at the same time.

Simulator 1131 execution modes include 1) single/multiple instruction count, 2) single/multiple cycle count, 3) Until Condition Is Met, 4) While Condition Exists, 5) For Set Loop Count and 6) Unrestricted Run with Halt by Key Input. Trace expressions are readily defined. In trace execution, display choices include 1) designated expression values, 2) cache registers, and 3) instruction pipeline for easy optimization of code. Breakpoint conditions include Address Read, Address Write, Address Read or Write, Address Execute, and Expression Valid. Simulator 1131 simulates cache utilization and does cycle counting. For example, in cycle counting the number of clock cycles in single step mode or run mode are displayed. External memory is suitably configured with wait states for accurate cycle counting.

Simulator 1131 accepts object code produced by the assembler 1127 and linker 1129. Input and output files are suitable associated with the port addresses of the I/O instructions to simulate I/O devices connected to the processor. Before starting program execution, any breakpoints are set and the trace format defined.

During program execution on simulator 1131, the internal registers and memory of the simulated target chip are modified as each instruction is interpreted by the simulator 1131. Execution is suspended when a breakpoint or error is encountered or when execution is halted. When program execution is suspended, the internal registers and both program and data memories can be inspected and modified. A trace memory is also displayable. A record of the simulation session can be maintained in a journal file so that it can be re-executed to regain the same machine state during another simulation session.

The simulator 1131 allows verification and monitoring of the state of the target chip without the requirements of hardware. Simulation speed is on the order of hundreds or thousands of instructions per second depending on the operating system and hardware selected for simulator 1131. A state-accurate simulation might be as slow as 1-2 instructions per second. Emulation at the higher real-time functional clock rate is performed by development system 1101 instead of simulator 1131.

Simulator 1131 provides for complete computer simulation not only of the device 11, but also its peripherals on the board 1043 through file I/O for example.

Extended development system 1101 provides full-speed, in-circuit emulation for system design and for hardware and software debug on widely available personal computer systems. The development tools provide technological support from system concept to prototype. The development system elements provide ease of use and offer the designer the tools needed to significantly reduce application system development time and cost to put designs into production faster.

FIG. 45 illustrates in even more detail the emulation environment provided by the extended development system 1101. A controller card 1141 compatible with IEEE JTAG standards is included in the emulation host computer 1101. This controller card 1141 communicates by serial line 1103 to PC board 1043 and DSP device 11 of FIG. 45. System 1043 has Texas Instruments Scope (TM) testability meshed with Texas Instruments MPSD (Modular Port Scan Design) emulation for a complete solution from development, through manufacture, and including field test. The inventive approaches are applicable in digital signal processors (DSP), graphics signal processors (GSP), memories (MEM), programmable array logic (PAL), application specific integrated circuits (ASIC), and general purpose logic (GPL) general purpose Micro Computers and Micro processors, and any device requiring test or code development.

Host computer 1101 of FIG. 45 has peripherals including a printer 1143, hard disk 1145, and telecommunications modem 1143 connected to a telephone line for uploading to a remote mainframe in field test and other procedures. The peripheral capabilities of bus 1149 of host computer 1101 are not only available for emulation, but also provide access by application system 1043 to these peripherals along serial line 1103. Host computer 1101 thus is not only available to the system 1043 as an emulation host but also as an attached processor itself and as a port for communications I/O and to other peripheral capabilities temporarily needed by system 1043 but ordinarily unavailable to system 1043.

FIG. 46 illustrates an emulation and simulation software configuration for computer 1101 wherein device independent emulator software has a window driven user interface and a test executive program.

Device specific configuration files for each of the devices on board 1043 are provided. For example, there is a DSP configuration file, a GSP (graphic signal processor) configuration, a programmable array logic (PAL) file, an ASIC file and a GPL register file.

The emulation hardware and software of FIGS. 45 and 46 provide a user-friendly, personal-computer or work station-based development system which provides all the features necessary to perform full-speed in-circuit emulation with target chips on board 1043. For example, DSP 11 is suitably a Texas Instruments 320 series digital signal processor disclosed in coassigned U.S. Pat. No. 4,912,636 hereby incorporated herein by reference; or a 320C50 digital signal processor disclosed in U.S. Pat. No. 5,072,418 which is incorporated herein by reference. An exemplary graphics signal processor is the Texas Instruments 34020 GSP disclosed in the GSP coassigned applications incorporated hereinabove and having inventive emulation circuitry more fully described hereinbelow.

The emulator comprised of FIG. 45 host computer 1101 with controller card 1141 and software of FIG. 46 allows the user to perform software and hardware development, and to integrate the software and hardware with the target system. An important emulation interface provides control and access to every memory location and register of the target chip and extend the device architecture as an attached processor.

Emulator controller card 1141 provides full-speed execution and monitoring of each target chip such as device 11 in the user's target system 1043 via a multi-pin target connector. In one embodiment, thirty software and hardware breakpoints, software and hardware trace and timing, and single-step execution are provided. The emulator has capability to load, inspect, and modify all device 11 registers. Program data and program memory can be uploaded or downloaded. The user interface of host computer 1101 for emulation purposes is a windowed user interface designed to be identical to the windowed user interface of simulator 1131 for the corresponding target chip. The emulator 1101 is portable and reconnectable for multiprocessing. Emulator 1101 provides a benchmark of execution time clock cycles in realtime.

Full-speed execution and monitoring of the target system is suitably controlled via a multi-wire interface or scan path in the multi-pin target connector. The scan path controls the target chip in the system 1043, providing access to all the registers as well as associated internal and external memory.

Program execution takes place on the target chip (e.g. 11) in the target system 1043. Accordingly, there are no timing differences during emulation, as might occur without the in-circuit emulation provided by this preferred embodiment. Heretofore, emulation may have involved sending signals over a cable to emulate the target chip 11 in its absence. Advantageously, the present embodiment is a non-intrusive system that utilizes chip 11 itself, and avoids cable length and transmission problems. Loading problems on signals are avoided, and artificial memory limitations are obviated. Emulation performance coincides with specifications for the emulated target chip itself.

Software breakpoints allow program execution to be halted at a specified instruction address. Hardware breakpoints are also advantageously operative on-chip. When a given breakpoint is reached, the program either halts execution to permit user observation of memory and status registers, or the breakpoint is included in a more complex condition, which when satisfied results in an appropriate stop mode being executed. At this point, the status of the target chip or system is available for display by the user with as little as a single command.

Software trace and hardware program counter trace permit the user to view the state of target chip 11 when a breakpoint is reached. This information is suitably saved on command in a file for future analysis. Software timing allows the user to track clock cycles between breakpoints for benchmarking time critical code.

Single-step execution gives the user the ability to step through the program one instruction at a time. After each instruction, the status of the registers and CPU are displayed. This provides greater flexibility during software debug and helps reduce development time.

Object code is downloaded on command to any valid program memory location or data memory location via the interface. Downloading a 1K-byte object program illustratively takes on the order of 100 milliseconds. By inspecting and modifying the registers while single-stepping through a program, the user can examine and modify program code or parameters.

A windowed user interface for emulator 1101 is suitably made identical to that of simulator 1131, affording a straightforward migration from simulator-based development to emulator-based development. The user-friendly screen displays the program code in mnemonics and equivalent hexadecimal code. Windowed displays are suitably provided for extended precision registers, the CPU status and memory locations.

A first screen option is a primary screen that includes a command line displayed at top of screen, functions of special-function keys, and four status windows which are individually accessed using the F1 key of commercially available keyboards. The windows include a source code window, an auxiliary display window, a CPU status window, and an extended precision registers window. The contents of the windows are made accessible for user inspection and modification.

Commands are entered in a MENU mode or a LINE mode. In the MENU mode, a menu at the top of the screen permits the user to view every option available while entering a single command. Further menus are then displayed until the entire command has been entered. The LINE mode allows user to enter an entire command expression. A summary of commands is provided in Appendix I.

Emulator card 1141 of FIG. 45 suitably occupies slots in an IBM PC-XT/AT computer when the latter is used as host computer 1101. The card 1141 is detached and transferred to another PC (personal computer of equivalent functionality) as needed, affording emulator portability. For simulation, a memory map for the controller card 1141, which may include EPROM (erasable programmable read only memory), SRAM (static random access memory), DRAM (dynamic random access memory), and on-chip memory and peripherals, can be configured by the designer to reflect the actual environment of the target system 1043, including wait states and access privileges. In this way, card 1141 and host computer 1101 simulate peripherals which are as yet absent from board 1043 in a particular development context.

In one embodiment, multiprocessing applications are emulated by extending line 1103 between each of several application boards from one to the next, maintaining real-time emulation and preserving the information on each target chip.

The development system 1141 operates in two modes: emulation mode and algorithm development and verification mode. In the algorithm verification mode, the target chip 11 debugs its software at full speed before the target system is complete. To accomplish this, code is downloaded into the memory on the board 1043 and executed at full speed via the interface on an application board used in place of the incomplete target system. A suitable application board includes a DSP 11, 16K=32 bits of full-speed (zero wait states) SRAM on a primary bus, two selectable banks of 8K=32 bits full speed (zero wait state) SRAM on an expansion bus, and 512K=32 bits DRAM. With ample SRAM, the user has realtime emulation capabilities and memory storage flexibility for a variety of algorithms. Zero wait state capability in SRAM allows memory read/write in realtime.

For algorithim development and code verification the system can single step and run until breakpoint is reached. Algorithim verifiction runs data through the algorithim and verifies its function. Burst execution, I/O and other functions are available.

Page mode DRAM improves bulk storage performance. Three types of DRAM cycles are used on one example of an application board. These are single-word read, single-word write and page-mode read which respectively have wait states of four, two, and one wait state per access. Page mode read cycles are automatically evoked when device 11 performs two or more back-to-back read cycles on the same memory page (256 words). Utilizing page-mode results in a decrease in wait states when accessing on application board 1043 DRAM on application board 1043.

In FIG. 45 both test and development support system access to the application system resource is via a serial scan bus master or scan interface on controller card 1141, and described later hereinbelow. Sophisticated emulation and simulation functions are built out of primitives. Primitives are sets of bits that define control operations (like commands or instructions) available through controller card 1141.

The functionality of the device 11 can be accessed by each of two illustrative inventive serial implementations. A first implementation is Texas Instruments Modular Port Scan Design (MPSD) as shown in FIG. 47 and disclosed in coassigned application Ser. No. 057,078 issued Aug. 22, 1989 (U.S. Pat. No. 4,860,290) and incorporated herein by reference. Shift register latches (SRLs) designated "S" are distributed through the device 11 like a string of beads on a serial scan path respective to each module to provide access to all important registers.

In FIG. 48, a second approach uses a SCOPE transmission medium combined with MPSD technology in a SCOPE interface 1150.

In FIG. 49 device 11 has an on-chip JTAG interface 1149 as described herein. The scan interface is connected to line 1103 of FIG. 45 and has inputs for test clock TCK, mode select TMS, and test data input TDI (scan in), as well as a test data output TDO (scan out). A special emulation adapter 1203 is connected between the scan interface 1149 and MPSD modules of the functional circuitry 1213 of device 11. Emulation adapter 1203 in different forms involves hardwired state machine circuitry, assembly language, or microcoded state machine embodiments.

The characteristics of some implementations when used in support of emulation are shown in Table I:

TABLE I ______________________________________ SCOPE/ MPSD SCOPE MPSD ______________________________________ Industry Standard No Yes Yes Communication Max Clock Period Depends Unlimited Unlimited Functional Clock No Yes Yes Independence Boundary Scan Support No Yes Yes Silicon Efficiency Yes No Yes Most Emulation Capability No Yes Yes Number of Extra Pins Four Six Six ______________________________________

The implementation SCOPE/MPSD capitalizes on the strengths of MPSD and SCOPE individually to create a hybrid emulation technology.

FIG. 50 shows a block diagram of improved SCOPE hardware which is provided on each of the chips such as device 11 on PC board 1043. Four pins TDI, TMS, TCK and TDO communicate with the system. TMS and TCK communicate with a tap controller 1151 which is connected to an instruction register 1153 and an instruction decoding circuit 1155.

Test access port (TAP) controller 1151 is in turn coupled to instruction register (IR) 1153 and a first multiplexer 1173. The instruction register can receive serial scan signals from the TDI line and output serially to MUX 1173. MUX 1173 is under control of the TAP and can select the output signal from the instruction register or from another MUX 1171.

The instruction register also controls a bypass register (BR) 1167 and one or more boundary scan registers (BSR) 1161. The bypass register receives the TDI signal and outputs it to MUX 1171. MUX 1171 is under control of the instruction register 1153. Based on the instruction loaded into the instruction register, MUX 1171 outputs its input from the bypass register or its input from one or more BSRs, or internal device register scan. Each boundary scan register is controlled via the test access port and the instruction register.

The boundary scan arrangement operates in a normal mode or a test mode. During the normal mode, input data entering terminals of IC logic passes through the boundary scan register, into the IC logic and out to the normal output terminals without any change due to the BSR. During the test mode, normal input data is interrupted, and test input data is captured, shifted, and updated within the boundary scan register. The boundary scan register includes two memories, a first memory for receiving and shifting data from the TDI line and a second memory for holding output data. The second memory is selectively operable to transfer data from the first memory to the second memory.

Generally, in FIG. 50, serial information is down loaded from emulation computer 1101 via the SCOPE controller card 1141 through pin TDI and enters any one of a number of shift registers, including a boundary scan register 1161, a device identification register 1163 and design specific test data registers 1165. A bypass register 1167 is also provided. These shift registers or serial scan registers are selected via a MUX 1171 under the control of instruction decode circuitry 1155. The selected output from MUX 1171 is fed to a MUX 1173 so that under control of tap controller 1151 the instruction register 1153 or MUX 1173 output are fed to flip flop 1175 which in turn is connected to a serial return circuit 1177 which is suitably enabled to return or send serial outputs from all parts of the on-chip JTAG circuitry back to computer JTAG card 1141 via output serial pin TDO.

In FIG. 50A a state transition diagram of TAP controller 1151 has one and zero signal values entered adjacent to each state transition arc. These are values of signal TMS at the time of a rising edge on signal TCK. The states of the JTAG TAP (Test Access Port) controller are described in "A Standard Test Bus and Boundary Scan Architecture" by L. Whetsel, Texas Instruments Technical Journal, Vol. 5, No. 4, 1988, pp. 48-59 and L. Whetsel coassigned patent applications Ser. Nos. 241,439, abandoned parent of continuing application Ser. No. 908,760 filed Jul. 1, 1992, abandoned 241,520, abandoned parent of continuing application Ser. No. 876,694 filed Apr. 28, 1992, abandoned 241,511 (issued as U.S. Pat. No. 5,084,874) cofiled on Sep. 7, 1988 and 282,827, issued as U.S. Pat. No. 4,872,169 filed Nov. 8, 1988, all of which are hereby incorporated herein by reference.

Turning to basic concepts recognized and utilized herein, emulation involves hardware support built around each circuit so that operations can be executed within the circuit while doing analysis in parallel as the circuit runs. Emulation permits the circuits to be run at full speed in real time as the emulator computer 1101 monitors the circuits and starts and stops them. The user defines and develops software in the environment of the target system. Put another way, emulation reads inputs from the board 1043 and produces outputs to the board as if device 11 were absent, for the purpose of determining appropriate software and operation signals. Ultimately, when the device 11 is supplied with the appropriate software resulting from emulation work, the device 11 operates in a manner which is compatible with the rest of the circuitry of board 1043. Advantageously, in the improved system disclosed herein, the device 11 is actually on the board and with the serial communication capabilities, all of the operations of device 11 are monitored directly from the device itself. In view of the extremely high speed of device 11, the device itself assists in its own emulation.

In a previous approach, a cable is terminated in a pin-plug that mates to a socket provided on the board in place of the emulated device. The socket introduces a noise issue. A socket may be impractical when a surface mount device is to be emulated, due to limited board space. Advantageously, device 11 is soldered onto board 1043 and emulation is mediated by the device itself.

The few pins utilized by the scan interface 1150 eliminate the need for conventional full pin-out target connectors and eliminate problems associated with cable reliability, transmission effects and timing differences. In this way, board 1043 can be probed with logic analyzers and oscilloscopes in the improved system without physical or electromagnetic interference from a heavy cable. Moreover, clock rates in excess of 20 megaHertz for device 11 are so fast that previous emulation schemes may be incapable of emulating it.

Simulation as the term is used herein creates a software representation of the target board 1043 so that the entire board can be developed in simulation on simulator 1131 of FIG. 44 (or by running the simulator program on computer 1101). In another aspect of simulation, when the device 11 is available but the rest of the circuitry for target board 1043 is incomplete, the simulator can mimic the planned complete board by serial scan upload or download from device 11 to computer 1101, and then serial scan download or upload from computer 1101 to device 11 in substitution for the missing circuitry of board 1043. In this aspect, simulation is accelerated by running the device 11 itself at full speed according to the improvements described herein. Even when computer 1101 runs at a slower speed than device 11, simulation is effective to simulate peripherals which are accessed infrequently by device 11.

Test as the term is used herein has four different areas. The first area--Device Test--is test of a device 11 itself before the device manufacturer ships it.

The second area of test is Device Verification--verification of full functionality of the device in every aspect.

The third ar