US5751735A - Integrated debug trigger method and apparatus for an integrated circuit - Google Patents

Integrated debug trigger method and apparatus for an integrated circuit Download PDF

Info

Publication number
US5751735A
US5751735A US08/749,188 US74918896A US5751735A US 5751735 A US5751735 A US 5751735A US 74918896 A US74918896 A US 74918896A US 5751735 A US5751735 A US 5751735A
Authority
US
United States
Prior art keywords
trigger
signal
integrated circuit
programmable
match
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US08/749,188
Inventor
Paul G. Tobin
Hosein Naaseh-Shahry
Stephen R. Undy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Priority to US08/749,188 priority Critical patent/US5751735A/en
Assigned to HEWLETT-PACKARD COMPANY reassignment HEWLETT-PACKARD COMPANY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: UNDY, STEPHEN R., NAASEH-SHAHRY, HOSEIN, TOBIN, PAUL G.
Application granted granted Critical
Publication of US5751735A publication Critical patent/US5751735A/en
Assigned to HEWLETT-PACKARD COMPANY reassignment HEWLETT-PACKARD COMPANY MERGER (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD COMPANY
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD COMPANY
Assigned to HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP reassignment HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests

Definitions

  • the present invention relates generally to debugging techniques for integrated circuits, and more particularly, to a system and method for debugging functional and electrical failures of an integrated circuit chip using an internal integrated debug trigger apparatus.
  • Integrated circuit technology has experienced a tremendous growth in the ability to provide ever increasing functional complexity in smaller and smaller integrated circuit packages.
  • the rapid advances in integrated circuit technology provide many benefits.
  • One such benefit is the rapid increase in computer system performance due in part to the decreased distance signals must travel within the system.
  • Another benefit experienced by heavily integrated circuits is increased noise immunity due to fewer non-integrated system components.
  • the testing and debugging process of an integrated circuit chip typically involves monitoring a particular signal or set of signals to ensure that they meet certain criteria.
  • One common and effective method of testing includes the setting of trigger capture events.
  • a trigger capture event is typically configured to capture a signal or set of signals which occur after a specified event, or trigger, occurs.
  • the capturing of signal values which occur after a trigger condition is often invaluable in debugging integrated circuit functional logic failures. Captured events may be compared to expected events which should have occurred after the trigger condition occurs.
  • More sophisticated testing and debugging tools such as logic analyzers, provide the capability for setting multiple trigger capture conditions, and allow repetition and different start and end conditions.
  • the testing and debugging of integrated circuits may involve verification of both functional logic and electrical timing.
  • the test equipment required for verifying the functional logic of the integrated circuit may be different than that required for verifying its electrical timing.
  • functional logic verification requires the ability to capture pipelined signal patterns and match them to expected results.
  • Electrical timing verification requires the ability to measure the timing between signals as they occur rather than between pipeline steps.
  • verification of these two different criteria is performed using different test equipment, as for example, both a logic analyzer for a functional logic verification and debug tool and an oscilloscope for an electrical timing verification and debug tool. In creating a debug tool, it would therefore be desirable to provide the capability of testing and debugging both the functional logic and the electrical timing of an integrated circuit.
  • an object of the invention is to provide a sophisticated low-cost trigger debug apparatus which greatly simplifies precision pin-pointing of integrated circuit problems and failures.
  • Another object of the invention is to provide a method and apparatus for extracting and monitoring integrated circuit signals in the process of testing and debugging integrated circuits.
  • Another object of the invention is to provide a method for making accessible the internal signals of an integrated circuit for use in system testing and debugging.
  • Yet another object of the invention is to provide a technique for applying the sophisticated functionality of powerful external debug tools to difficult-to-access external and inaccessible internal signals of an integrated circuit.
  • Still another object of the invention is to provide a tool for testing and debugging both the functional logic and the electrical timing of an integrated circuit.
  • an apparatus for use in debugging functional and electrical failures of an integrated circuit chip using an internal integrated debug trigger apparatus resides internal and integral to the integrated circuit chip and includes a plurality of software programmable trigger registers and a plurality of software programmable trigger function blocks.
  • Each trigger register monitors a plurality of integrated circuit signals which may include signals sent to the external pins of the integrated circuit and signals present internal to the chip. If the value of the monitored signals matches the programmed trigger condition, the trigger register produces a trigger match signal.
  • Each trigger function block receives a combination of the trigger match signals generated by the trigger registers and each computes its programmed boolean minterm function on its inputs.
  • the boolean minterm is computed by performing a bit-wise logical AND of all possible boolean combinations of the input trigger match signals and their complements with a programmed bit mask supplied by a programmable function, and then performing a bit-wise logical OR of bits in the bit-wise AND result to produce the trigger capture signal.
  • Each trigger function block produces a trigger capture signal which may be true or false according to the computed function of the inputs.
  • the trigger registers include an instruction address trigger register which receives and monitors instruction fetches from an instruction memory address and produces an instruction address trigger match signal, a data address trigger register which receives and monitors data accesses to a data memory address and produces a data address trigger match signal, and an instruction data trigger register which receives and monitors an instruction pattern on an instruction bus and produces an instruction data trigger match signal.
  • the preferred embodiment also includes an iteration counter responsive to a programmable iteration count command for setting an iteration count. The iteration counter is connected to receive a trigger capture signal from one of the trigger function blocks and is configured to keep track of an iteration number indicating a number of times its input trigger capture signal is received.
  • the iteration counter produces an iteration count enable signal when the iteration number reaches the iteration count.
  • the iteration count enable signal may be connected as input to one or more of the plurality of trigger function blocks to provide the ability to define different start and end conditions.
  • the preferred embodiment also includes a countdown timer which is responsive to a programmable countdown time command for setting a clock cycle count.
  • the countdown timer is connected to receive a trigger capture signal from one of the plurality of trigger function blocks.
  • the countdown timer is configured to keep track of a clock cycle number indicating a number of clock cycles which pass since its input trigger capture signal is received, and produces a countdown timer enable signal when the clock cycle number equals the clock cycle count.
  • FIG. 1 is a high-level block diagram of an integrated circuit in which the present invention resides.
  • FIG. 2 is a block diagram of a debug trigger apparatus in accordance with the preferred embodiment of the present invention.
  • FIG. 3 is a more detailed block diagram of the instruction address register, data address register and instruction trigger register of the preferred embodiment debug trigger apparatus of FIG. 2.
  • FIG. 4 is a block diagram of a trigger register block used in the implementation of the trigger registers in the preferred embodiment shown in FIG. 3.
  • FIG. 5 is a schematic diagram of a trigger functional block used in the implementation of the preferred embodiment.
  • FIG. 6 is a schematic diagram of a counter used to implement the iteration counter and the countdown timer in the preferred embodiment.
  • FIG. 7 is a table of diagnose registers implemented in the preferred embodiment for programming each of the trigger registers, trigger functional blocks, and iteration and countdown timers.
  • FIG. 8 is a flowchart of the debug trigger apparatus of FIG. 2 once the debug logic has been programmed.
  • FIG. 1 is a high-level block diagram of an integrated circuit chip 100 in which the present invention is incorporated.
  • the preferred embodiment of the present invention is discussed in the context of an integrated circuit 100 which implements a microprocessor architecture because the microprocessor architecture contains features which are ideally suited to illustrating the inventive principles of the invention.
  • the microprocessor architecture of integrated circuit 100 is not intended in any way to limit the use of the present invention. Accordingly, the integrated circuit to which the present invention may be applied may include any other integrated circuit of interest.
  • the integrated circuit 100 shown in FIG. 1 is a model of the computer architecture of the PA-7300LC RISC chip, manufactured by Hewlett-Packard Company, Palo Alto, Calif.
  • integrated circuit 100 includes a central processing unit (CPU) 102.
  • the CPU 102 receives instructions and executes them. Depending on the instruction, the CPU may delegate certain work to be completed to special function units 104.
  • Special function units are dedicated hardware units optimally designed to perform a given function. The use of special function units substantially increases the performance of a processor.
  • the integrated circuit 100 shown in FIG. 1 also includes an instruction cache 110 and data cache 106. Instruction fetches and data accesses each require access to data from a main memory external to the integrated circuit 100.
  • all instructions executed by the CPU 102 are first moved from main memory into the instruction cache 110 and all data accessed by the CPU 102 is first moved from main memory into the data cache 106.
  • Move-in rules are known in the art. Typically, whenever a request for access to a given data item is issued and the cache does not contain the requested data item, the entire cache line (i.e., block of data) in main memory where the requested data item resides is moved into the cache at the same time. Most modern computer systems also support virtual addressing.
  • a translation lookaside buffer (TLB) is typically used to provide virtual to absolute address translations.
  • the integrated circuit includes a TLB 108 which is a shared data/instruction fetch resource.
  • the CPU 102 requests a memory address to be accessed on either an internal instruction address bus 120 or an internal data address bus 118.
  • the TLB holds the virtual to real address mappings. When presented with a virtual address, it attempts to find the corresponding physical address (real address). On failing to do so, special hardware or software is invoked to place such a translation into the TLB. This is called a "TLB hit" or "TLB miss".
  • the cache is checked to see if that line of data from physical memory is present in the cache. If so, it is a "cache hit” and the data or instruction is immediately available. If not, it is a "cache miss” and the data or instruction must be retrieved from memory. Instructions are sent to the instruction cache 110 on an internal instruction bus 114 and data is sent to the data cache 106 on an internal data bus 112. From the above discussion, it is clear that the signals on the internal instruction address bus 120, data address bus 118, instruction bus 114, data bus 112, and TLB address bus 116 are inaccessible external to the integrated circuit 100 via the system interface 130.
  • the integrated circuit 100 also includes a debug trigger apparatus 122 which contains the heart of the invention.
  • the debug trigger apparatus 122 may receive various signals of interest which are present on nodes located throughout the integrated circuit depending on the integrated circuit design. Accordingly, it may be deemed interesting in the integrated circuit 100 to make available the signals of each of the internal busses of the integrated circuit 100.
  • the debug trigger apparatus 122 is configured to receive signals present on each of the instruction bus 114, instruction address bus 120, data address bus 118, and TLB address bus 116.
  • the debug trigger apparatus 122 includes diagnose registers 124 which may be programmed to set up a variety of trigger capture events, including multiple trigger events, repetitive events, different starting and ending conditions, and arbitrary clock signal delays before triggering.
  • the debug trigger apparatus produces one or more trigger capture signals depending on how it is configured.
  • the trigger capture signals may be used for various functions including to signal an external pulse or cause a hardware breakpoint trap.
  • a trigger capture signal EP -- SIGNAL is used to latch a test access port (TAP) latch 126 and to signal an external pulse on an external pin EP 138.
  • TAP latch 126 is coupled to various test nodes TEST NODE 0-TEST NODE N throughout the integrated circuit 100.
  • an external test system receives the EP -- SIGNAL on the external pin EP 138, it may serially download the contents of the TAP latches 126 via a serial line 134 with the assistance of a TAP controller 128.
  • the TAP controller 128 and external serial TAP retrieval hardware conform to the well-known Institute of Electrical and Electronics Engineers (IEEE) Standard 1149.1, "Test Access Port and Boundary Scan Architecture,” also known as the Joint Test Action Group (JTAG) standard.
  • IEEE Institute of Electrical and Electronics Engineers
  • JTAG Joint Test Action Group
  • FIG. 2 is a block diagram of a preferred embodiment debug trigger apparatus for the integrated circuit 100 of FIG. 1 in accordance with the present invention.
  • the debug trigger apparatus shown generally at 200, includes an instruction address (IA) trigger register 202, a data address (DA) trigger register 204, and an instruction data (ID) trigger register 206.
  • the instruction address trigger register 202 is configured to monitor the internal instruction address bus 120 and look for instruction fetches from a memory address designated by the programmed value of the instruction address trigger register 202. When an instruction is fetched from a memory address which matches the programmed value of the instruction address trigger register 202, the instruction address trigger register 202 produces an instruction address trigger match signal 222.
  • the data address trigger register 204 is configured to monitor the internal data address bus 118 and look for data accesses to and from a memory address designated by the programmed value of the data address trigger register 204. When data is accessed at a memory address which matches the programmed value of the data address trigger register 204, the data address trigger register 204 produces a data address trigger match signal 224.
  • the instruction data trigger register 206 is configured to monitor the internal instruction bus 114 and look for an instruction pattern designated by the programmed value of the instruction data trigger register 206. When an instruction pattern is detected which matches the programmed value of the instruction data trigger register 206, the instruction data trigger register 206 produces an instruction data trigger match signal 226.
  • FIG. 3 is a more detailed block diagram of the instruction address register 202, data address register 204 and instruction trigger register 206 of the preferred embodiment debug trigger apparatus 200 of FIG. 2.
  • the instruction address trigger register 202 comprises an instruction trigger offset data block 302, an instruction trigger space id data block 304, an instruction trigger real page number data block 306 and an instruction trigger virtual mode data block 308.
  • the instruction address trigger register 202 also includes a raw match signal multiplexor 310 which receives a raw trigger match signal MATCHO -- IA -- R, MATCHS -- IA -- R, MATCHR -- IA -- R respectively from instruction trigger offset data block 302, instruction trigger space id data block 304, and instruction trigger real page number data block 306.
  • the instruction address trigger register 202 also includes a pipelined match signal multiplexor 312 which receives a pipelined trigger match signal MATCH0 -- IA -- P, MATCHS -- IA -- P, MATCHR -- IA -- P, MATCHV -- IA -- P respectively from instruction trigger offset data block 302, instruction trigger space id data block 304, instruction trigger real page number data block 306, and instruction trigger virtual mode data block 308.
  • the instruction address trigger register 202 also includes a multiplexor 314 which receives a RAW -- IA -- MATCH signal from multiplexor 310 and a PIPED -- IA -- MATCH signal from multiplexor 312.
  • the multiplexor 314 also receives a programmable select signal IA -- PIPED which controls whether the RAW -- IA -- MATCH signal or the PIPED -- IA -- MATCH signal is output as the instruction address trigger match signal IA -- MATCH 222.
  • the data address trigger register 204 comprises a data trigger offset data block 322, a data trigger space id data block 324, and a data trigger virtual mode data block 326.
  • the data address trigger register 204 also includes a raw match signal multiplexor 328 which receives a raw trigger match signal MATCHO -- DA -- R, MATCHS -- DA -- R, respectively from data trigger offset data block 322, and data trigger space id data block 324.
  • the data address trigger register 204 also includes a pipelined match signal multiplexor 330 which receives a pipelined trigger match signal MATCH0 -- DA -- P, MATCHS -- DA -- P, MATCHV -- DA -- P respectively from data trigger offset data block 322, data trigger space id data block 324, and data trigger virtual mode data block 326.
  • the data address trigger register 204 also includes a multiplexor 332 which receives a RAW -- DA -- MATCH signal from multiplexor 328 and a PIPED -- DA -- MATCH signal from multiplexor 330.
  • the multiplexor 332 also receives a programmable select signal DA -- PIPED which controls whether the RAW -- DA -- MATCH signal or the PIPED -- DA -- MATCH signal is output as the data address trigger match signal DA -- MATCH 224.
  • the instruction trigger register 206 comprises an instruction trigger block 342.
  • the instruction trigger register 206 also includes a multiplexor 352 which receives a raw trigger match signal MATCHI -- ID -- R and a pipelined trigger match signal MATCHI -- ID -- P from the instruction trigger block 342.
  • the multiplexor 352 also receives a programmable select signal ID -- PIPED which controls whether the MATCHI -- ID -- R signal or the MATCHI -- ID -- P signal is output as the instruction address trigger match signal ID -- MATCH 226.
  • FIG. 4 is a more detailed block diagram of a trigger register block 400 used to implement the instruction trigger offset data block 302, instruction trigger space id data block 304, instruction trigger real page number data block 306 of instruction address trigger register 202, the data trigger offset data block 322, data trigger space id data block 324 of data address trigger register 204, and instruction trigger block 342 of instruction trigger register 206.
  • each trigger register block includes a sampler latch 402, a pattern latch 404 and a mask latch 406.
  • the sampler latch 402 is coupled to receive as incoming DATA the signals of the particular bus that it is configured to monitor.
  • the sample latch 402 of the instruction trigger offset data block 302 is connected to receive the portion of the instruction address bus 120 associated with the address offset, while the sample latch 402 of the instruction trigger space id block 304 is connected to receive the portion of the instruction address bus 120 associated with the space id of the instruction address.
  • the sampler latch is clocked by a qualified clock signal CK -- QUAL which may be programmed to enable sampling on each CPU clock cycle or may be programmed to enable sampling in synch with a CPU pipeline signal.
  • the pattern latch 404 is coupled to receive a diagnostic command on DIAGNOSE -- CMD which sets a pattern on which to trigger.
  • the mask latch 406 is coupled to receive a diagnostic command on DIAGNOSE -- CMD which sets a bit mask to enable a pattern range to be set up.
  • the pattern latch 404 and mask latch 406 are set when signals SET1 and SET2 respectively are pulsed high.
  • the comparator 408 receives the contents of each of the latches 402-406 and performs a bit-wise compare of the sample to the pattern for each bits not masked out by the mask. If the sample matches the masked pattern, the comparator signals a match signal MATCH.
  • the debug trigger apparatus 200 of FIG. 2 also includes a trigger functional block 0 (TFBO) 208, a trigger functional block 1 (TFB1) 210, and a trigger functional block 2 (TFB2) 212.
  • each of the trigger functional blocks 208-212 receive each of the instruction address trigger match signal 222, data address trigger match signal 224, and instruction data trigger match signal 226.
  • Each of the trigger functional blocks 208-212 are programmable and form an arbitrary function of their inputs.
  • the programmed functions are performed by computing each boolean minterm of the inputs, performing a logical AND of each minterm with a software programmed mask, and performing a logical OR of the logical AND results to produce respective trigger functional block signals 228, 236, and 242.
  • the software programmed mask for each trigger functional block 208-212 is programmed by sending a command to the integrated circuit 100 on the data and address bus 132. Accordingly, the integrated circuit 100 must have the ability to recognize and process the trigger functional block program commands.
  • the CPU architecture is configured to recognize and process such debug trigger control commands and then set the programmed values of the trigger registers 202-206 and trigger functional blocks 208-212. Because each trigger register 202-206 and each trigger functional block 208-212 may be programmed separately, the user has the ability to set a wide combination of trigger conditions for use in the testing and debugging process.
  • FIG. 5 is a schematic diagram of a trigger functional block 500 used to implement the trigger functional blocks 208-212 in the preferred embodiment.
  • the trigger functional block 500 receives the trigger match signals IA -- MATCH 222, DA -- MATCH 224 and ID -- MATCH 226 from the trigger registers 202-206.
  • Inverters 502, 504, 506 receive each of the trigger match signals 222-226 and produce inverted trigger match signals IA -- MATCH' 522, DA -- MATCH' 524, and ID -- MATCH 526.
  • Logical AND gates 530-544 each receive a different combination of inverted and non-inverted trigger match signals.
  • AND gate 530 receives IA -- MATCH' 522, DA -- MATCH' 524 and ID -- MATCH' 526, while AND gate 544 receives IA -- MATCH 322, DA -- MATCH 324 and ID -- MATCH 326.
  • Each AND gate 530-544 also respectively receives a minterm selector signal min 0!-min 7!.
  • the minterm selector signals min 0 . . . 7! are programmable and allow the user to define an arbitrary number of conditions upon which to signal a trigger capture event. If the minterm selector signal for a given AND gate is enabled (set to true), the AND gate will output a logical true signal if all of its inputs are true.
  • the trigger functional block 500 If the minterm selector signal for a given AND gate is not enabled (set to false), the AND gate will output a logical false regardless of the state of its inputs.
  • the outputs of each of the AND gates are Ored together by logical OR gate 546. If any of the AND gates outputs a logical true signal, the trigger function block match signal TFB -- MATCH is true.
  • the equation performed by the trigger functional block 500 is:
  • Minterm values for some interesting combinations include: 0F hex (Instruction Address), 55 hex (Instruction), 33hex (Data Address), and 7F hex (either of Instruction Address, Instruction, or Data Address).
  • the preferred embodiment debug trigger apparatus 200 of FIG. 2 also includes additional components provided to increase its flexibility and sophistication.
  • An iteration counter 214 is included to force N trigger matches before trigger capture events occur.
  • the iteration counter 214 is configured to receive the trigger functional block signal 228 from trigger functional block 0 (TFB0) 208.
  • the iteration counter 214 is programmable from the external data and address bus 132.
  • the computer architecture of CPU 102 is configured to recognize and process iteration counter program commands and to set an iteration count value for the iteration counter 214.
  • the iteration counter 214 produces an iteration count match signal 230 when the number of the trigger functional block signal 228 equals the programmed iteration count value.
  • the 2 may also include a multiplexor 216 which is connected to receive the iteration count match signal 230 and an iteration counter output enable signal 232.
  • the multiplexor 216 produces an enable signal 234 when either the iteration count match signal 230 or the iteration counter output enable signal 232 is both selected as input and is logically true. If it is not desired to count any iterations, the multiplexor 216 is selected to choose the iteration counter output enable signal 232, which is always logically true, as input. If iterations are to be counted, the multiplexor 216 is selected to choose the iteration count match signal 230 as input.
  • the enable signal 234 is input to both the trigger functional block 1 (TFB1) and the trigger functional block 2 (TFB2) and used by their respective programmed functions in forming the respective trigger functional block signals 236, 242.
  • the debug trigger apparatus 200 of FIG. 2 also includes a countdown timer 218.
  • the countdown timer is connected to receive the trigger functional block signal 236 from trigger functional block 1 (TFB1).
  • the countdown timer 218 is programmable.
  • the computer architecture of CPU 102 is configured to recognize and process countdown timer program commands and to set a countdown timer value for the countdown timer 218.
  • the countdown timer 218 produces a countdown timer match signal 238 when a number of clock cycles pass which equals the programmed countdown timer value. Since the countdown timer counts only the number of clock cycles that pass, it is not dependent on the CPU pipeline or architectural functionality of the integrated circuit 100.
  • the countdown timer 218 is therefore particularly useful in debugging electrical failures of the integrated circuit 100 because signals may be monitored for proper timing rather than only proper logical functionality.
  • the preferred embodiment shown in FIG. 2 may also include a multiplexor 220 which is connected to receive the countdown timer match signal 238 and the trigger functional block signal 236. Multiplexor 220 may be selected to accept as input the trigger functional block signal 236 when no delay is desired or the countdown timer match signal 238 when additional delay is desired. The multiplexor 220 produces a trigger capture signal 240 when the selected input signal (i.e., the countdown timer match signal 238 or the trigger functional block signal 236) is logically true.
  • the trigger capture signal 240 is used as an external pin pulse signal EP -- SIGNAL, which is sent to the system interface 130 and made available external to the chip via external pin EP 138.
  • the external pulse signal EP -- SIGNAL indicates to an external test system that the test access port (TAP) latch 126 coupled to various test nodes throughout the integrated circuit has been latched and may be downloaded in a "sample-on-the-fly" manner to the external test system.
  • TEP test access port
  • the trigger functional block 2 (TFB2) 212 of FIG. 2 directly produces a trigger capture signal 242.
  • the trigger capture signal 242 is used as a hardware breakpoint trap, which may be used to cause a change in the program execution.
  • FIG. 6 is a schematic diagram of a counter 600 used to implement the iteration counter 214 and the countdown timer 218 in the preferred embodiment.
  • the iteration counter 600 includes a 32-bit register 602, an adder 604, and a comparator 606.
  • the register 602 may be programmed with a new value by placing the 32-bit value on input lines 608 and pulsing a set signal SET -- VALUE on a set input 610.
  • the register 602 is clocked by a clock signal CK, which outputs the contents of the register 602 on output lines 612 each clock cycle.
  • the adder 604 receives the contents of the register 602 from lines 612, adds negative one, and outputs the a decremented value on lines 614.
  • the comparator 606 receives the decremented value from lines 614, compares it to zero, and signals a count match signal COUNT -- MATCH if the decremented value is equal to zero.
  • the register 602 is also coupled to lines 614. If a decrement input 616 of the register 602 is high, the register 602 receives the decremented value as input when the clock signal CK clocks the register.
  • the decrement input 616 receives the direct output of trigger functional block TFB0 and thus counts down only on cycles when the TFB0 output signal is true.
  • the decrement input 616 of the register 602 is held low until trigger functional block TFB1 signals a match, and then the decrement input stays true until the timer reaches zero and COUNT -- MATCH is signaled regardless of the state of TFB1.
  • FIG. 7 shows a table of the registers used to program each of the instruction address trigger register 202, data address trigger register 204, instruction data trigger register 206, trigger functional blocks 208-212, iteration counter 214, and countdown timer 218 of FIG. 2.
  • the diagnose registers include an instruction address trigger offset register IATOR DR0 and an instruction address trigger offset enable register IATOER DR1, an instruction address trigger space id register IATSIR DR2 and an instruction address trigger space id enable register IATSIRE DR3, an instruction address trigger real page number register IATRPN DR4 and an instruction address trigger real page number enable register IATRPNE DR5.
  • the diagnose registers also include a data address trigger offset register DATOR DR6 and a data address trigger offset enable register DATOER DR7, and a data address trigger space id register DATSIR DR8 and a data address trigger space id enable register DATSIRE DR9.
  • the diagnose registers also include an instruction trigger register ITR DR10 and an instruction trigger enable register ITER DR11.
  • the diagnose registers also include an arbitrary function minterm selector (or trigger program) register TP DR14, an iteration counter register IC DR15, a countdown timer register CT DR16, and a trigger control register CR DR26.
  • Registers DR0, 2, 4, 6, 8 and 10 correspond to the pattern latch 404 in FIG. 4.
  • Registers DR 1, 3, 5, 7, 9 and 11 correspond to the mask latch 406 in FIG. 4.
  • Register TP comprises the minterm bits min 0 . . . 7! for each of the trigger functional blocks TFB0, TFB1 and TFB2.
  • the control register CR contains bits corresponding to the IA -- PIPED, DA -- PIPED and ID -- PIPED signals among other control information.
  • the diagnose registers are programmed by sending diagnose commands to the integrated circuit 100 on the data and address bus 134 to the system interface 130.
  • the CPU architecture is configured to recognize and process the diagnostics commands and set up the diagnose registers accordingly.
  • FIG. 8 shows a flowchart of the operation, shown generally at 800, of the debug trigger apparatus of FIG. 2 once the debug logic has been programmed.
  • address (IA) trigger register 202, data address (DA) trigger register 204, and instruction data (ID) trigger register 206 begins with a step 802 in which each of the instruction address (IA) trigger register 202, data address (DA) trigger register 204, and instruction data (ID) trigger register 206 produce a logically true signal as its respective instruction address trigger match signal 222, data address trigger match signal 224, and instruction data trigger match signal 226 if its respective programmed trigger value matches the respective signals which it is configured to monitor.
  • a logically false signal is respectively produced by the instruction address (IA) trigger register 202, data address (DA) trigger register 204, and instruction data (ID) trigger register 206 when no match occurs.
  • the operation 800 of the debug trigger apparatus 200 continues in step 804 where trigger functional block 0 (TFB0) 208 computes its programmed boolean function of the three trigger register outputs 222-226.
  • the trigger functional block 0 (TFB0) outputs a logically true trigger functional block signal 228 if the programmed function results in a logically true result, and outputs a logically false signal 228 if the programmed function results in a logically false result.
  • step 806 the debug trigger apparatus determines whether the trigger functional block signal 228 output by trigger functional block 0 (TFB0) is logically true. If the trigger functional block signal 228 is true, the debug trigger apparatus 200 decrements the iteration counter 214 by one in step 808. Then, in step 810 it is determined whether the iteration count has been decremented to 0 or whether there was no initial programmed iteration count. If either of these conditions is true, then in step 812 the iteration counter 214 outputs a logically true enable signal 234. If both of the conditions are false, the enable signal 234 is logically false. It will be noted that if no iteration count was programmed, the iteration counter 214 acts as a pass-through register and the first TFB0 match causes the enable signal 234 to be logically true.
  • TFB0 trigger functional block 0
  • step 814 trigger functional block 1 (TFB1) 210 computes its programmed boolean function of the enable signal 234 and the three trigger register outputs 222-226.
  • step 816 it is determined whether the output trigger functional block signal 236 is logically true or false. If the trigger functional block signal 236 is logically true, the countdown timer 218 is started if not yet started and then decremented in step 820. If the trigger functional block signal 236 is logically false, it is determined in step 818 whether the countdown timer had already been started previously. If the countdown timer 218 had already been started on a previous cycle, the countdown timer is decremented in step 820.
  • step 822 is executed in which it is determined whether the countdown timer has decremented to 0 or whether there was no delay initially programmed. If either of these conditions is true, a trigger capture signal 242 in the form of a sample-on-the-fly (SOF) signal or and external pin (EP) pulse signal is generated in step 824.
  • SOF sample-on-the-fly
  • EP external pin
  • step 826 trigger functional block 2 (TFB2) computes its programmed boolean function of the enable signal 234 and the three trigger outputs 222-226 from the trigger registers 202-206.
  • step 828 it is determined whether the trigger functional block signal 242 is true. If the trigger functional block signal 242 is true, a trigger capture signal 242 is generated in the form of a hardware breakpoint trap in step 830. Steps 802 through 830 are repeated each CPU clock cycle.
  • the present invention provides a sophisticated low-cost debug trigger apparatus for use in precise pinpointing of integrated circuit problems and failures.
  • Internal integrated circuit signals may be monitored for use in testing and debugging integrated circuits.
  • the present invention provides a set of trigger registers internal to the integrated circuit which can be software programmed to recognize a variety of conditions during the operation of the integrated circuit.
  • the debug trigger apparatus provides significant flexibility in trigger conditions by allowing for repetition, different start and end conditions, arbitrary clock cycle delays before the final event, and trigger function blocks to form arbitrary boolean functions of the trigger conditions.
  • the use of any two trigger function blocks provides the ability to specify different starting and ending conditions with an arbitrary number of matches on the start condition and an arbitrary delay on the end condition.
  • the present invention thus provides a technique for applying the sophisticated functionality of powerful external debug tools to difficult-to-access external and inaccessible internal signals of an integrated circuit to detect an enormous number of arbitrary functional logic and electrical events.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Presented is an internal integrated debug trigger apparatus for use in debugging functional and electrical failures of an integrated circuit chip. The debug trigger apparatus includes a plurality of software programmable trigger registers and a plurality of software programmable trigger function blocks. Each trigger register monitors a plurality of integrated circuit signals which may include signals sent to the external pins of the integrated circuit and signals present internal to the chip. If the value of the monitored signals matches the programmed trigger condition, the trigger register produces a trigger match signal. Each trigger function block receives a combination of the trigger match signals generated by the trigger registers and each computes its programmed boolean minterm function on its inputs. Each trigger function block produces a trigger capture signal which may be true or false according to the computed function of the inputs. The debug trigger may also include a programmable iteration counter which allows for repetition of a trigger condition before it is provided external to the chip. The output of the iteration counter may be connected as input to one or more of the other trigger registers to allow for different start and end conditions.

Description

FIELD OF THE INVENTION
The present invention relates generally to debugging techniques for integrated circuits, and more particularly, to a system and method for debugging functional and electrical failures of an integrated circuit chip using an internal integrated debug trigger apparatus.
BACKGROUND OF THE INVENTION
Integrated circuit technology has experienced a tremendous growth in the ability to provide ever increasing functional complexity in smaller and smaller integrated circuit packages. The rapid advances in integrated circuit technology provide many benefits. One such benefit is the rapid increase in computer system performance due in part to the decreased distance signals must travel within the system. Another benefit experienced by heavily integrated circuits is increased noise immunity due to fewer non-integrated system components.
In the field of integrated circuit testing and debugging, however, new problems have arisen. In the past, integrated circuits came in package sizes which had external pins large enough in size and spacing to facilitate connection to external "samplers" for signal monitoring. The signals on the external pins could therefore be input to a logic analyzer, oscilloscope, or other test equipment to monitor and test signals of interest. With smaller package sizes, however, have come fewer, smaller external pins which are often so close together that it becomes harder to sample at higher frequencies, making it impractical to make clean connections for use by external test equipment. A need has arisen, therefore, for an alternative method for extracting and monitoring integrated circuit signals in the process of testing and debugging integrated circuits.
With the increased density of circuit integration has come an increasing number of system signals which remain internal to the integrated circuit chip and which therefore remain inaccessible via external pins of the chip. The inaccessibility of internal chip signals causes great difficulty in locating functional and electrical failures in the integrated circuit during the testing and debugging process. With only the external pins available for monitoring, many functional and electrical problems of the integrated circuit are hidden because the root of the problem may be seen only at the internal signal level. A need exists, therefore, for a method of making accessible the internal signals of an integrated circuit for use in system testing and debugging.
The testing and debugging process of an integrated circuit chip typically involves monitoring a particular signal or set of signals to ensure that they meet certain criteria. One common and effective method of testing includes the setting of trigger capture events. A trigger capture event is typically configured to capture a signal or set of signals which occur after a specified event, or trigger, occurs. The capturing of signal values which occur after a trigger condition is often invaluable in debugging integrated circuit functional logic failures. Captured events may be compared to expected events which should have occurred after the trigger condition occurs. More sophisticated testing and debugging tools, such as logic analyzers, provide the capability for setting multiple trigger capture conditions, and allow repetition and different start and end conditions. With the difficulty in obtaining clean external signals and the inaccessibility of internal signals, the usefulness of external test and debug tools, however, is limited. A need exists, therefore, for a technique for providing the sophisticated functionality of powerful external debug tools to difficult-to-access external and inaccessible internal signals of an integrated circuit.
The testing and debugging of integrated circuits may involve verification of both functional logic and electrical timing. The test equipment required for verifying the functional logic of the integrated circuit may be different than that required for verifying its electrical timing. Specifically, functional logic verification requires the ability to capture pipelined signal patterns and match them to expected results. Electrical timing verification, on the other hand, requires the ability to measure the timing between signals as they occur rather than between pipeline steps. Often, verification of these two different criteria is performed using different test equipment, as for example, both a logic analyzer for a functional logic verification and debug tool and an oscilloscope for an electrical timing verification and debug tool. In creating a debug tool, it would therefore be desirable to provide the capability of testing and debugging both the functional logic and the electrical timing of an integrated circuit.
Accordingly, an object of the invention is to provide a sophisticated low-cost trigger debug apparatus which greatly simplifies precision pin-pointing of integrated circuit problems and failures. Another object of the invention is to provide a method and apparatus for extracting and monitoring integrated circuit signals in the process of testing and debugging integrated circuits. Another object of the invention is to provide a method for making accessible the internal signals of an integrated circuit for use in system testing and debugging. Yet another object of the invention is to provide a technique for applying the sophisticated functionality of powerful external debug tools to difficult-to-access external and inaccessible internal signals of an integrated circuit. Still another object of the invention is to provide a tool for testing and debugging both the functional logic and the electrical timing of an integrated circuit.
SUMMARY OF THE INVENTION
In accordance with a preferred embodiment of the invention, an apparatus for use in debugging functional and electrical failures of an integrated circuit chip using an internal integrated debug trigger apparatus is presented. The debug trigger apparatus resides internal and integral to the integrated circuit chip and includes a plurality of software programmable trigger registers and a plurality of software programmable trigger function blocks. Each trigger register monitors a plurality of integrated circuit signals which may include signals sent to the external pins of the integrated circuit and signals present internal to the chip. If the value of the monitored signals matches the programmed trigger condition, the trigger register produces a trigger match signal. Each trigger function block receives a combination of the trigger match signals generated by the trigger registers and each computes its programmed boolean minterm function on its inputs. In the preferred embodiment, the boolean minterm is computed by performing a bit-wise logical AND of all possible boolean combinations of the input trigger match signals and their complements with a programmed bit mask supplied by a programmable function, and then performing a bit-wise logical OR of bits in the bit-wise AND result to produce the trigger capture signal. Each trigger function block produces a trigger capture signal which may be true or false according to the computed function of the inputs.
In the preferred embodiment, the trigger registers include an instruction address trigger register which receives and monitors instruction fetches from an instruction memory address and produces an instruction address trigger match signal, a data address trigger register which receives and monitors data accesses to a data memory address and produces a data address trigger match signal, and an instruction data trigger register which receives and monitors an instruction pattern on an instruction bus and produces an instruction data trigger match signal. The preferred embodiment also includes an iteration counter responsive to a programmable iteration count command for setting an iteration count. The iteration counter is connected to receive a trigger capture signal from one of the trigger function blocks and is configured to keep track of an iteration number indicating a number of times its input trigger capture signal is received. The iteration counter produces an iteration count enable signal when the iteration number reaches the iteration count. The iteration count enable signal may be connected as input to one or more of the plurality of trigger function blocks to provide the ability to define different start and end conditions. The preferred embodiment also includes a countdown timer which is responsive to a programmable countdown time command for setting a clock cycle count. The countdown timer is connected to receive a trigger capture signal from one of the plurality of trigger function blocks. The countdown timer is configured to keep track of a clock cycle number indicating a number of clock cycles which pass since its input trigger capture signal is received, and produces a countdown timer enable signal when the clock cycle number equals the clock cycle count.
BRIEF DESCRIPTIONS OF THE DRAWINGS
The objects and advantages of the invention will become more apparent and more readily appreciated from the following detailed description of the presently preferred exemplary embodiment of the invention taken in conjunction with the accompanying drawings, of which:
FIG. 1 is a high-level block diagram of an integrated circuit in which the present invention resides.
FIG. 2 is a block diagram of a debug trigger apparatus in accordance with the preferred embodiment of the present invention.
FIG. 3 is a more detailed block diagram of the instruction address register, data address register and instruction trigger register of the preferred embodiment debug trigger apparatus of FIG. 2.
FIG. 4 is a block diagram of a trigger register block used in the implementation of the trigger registers in the preferred embodiment shown in FIG. 3.
FIG. 5 is a schematic diagram of a trigger functional block used in the implementation of the preferred embodiment.
FIG. 6 is a schematic diagram of a counter used to implement the iteration counter and the countdown timer in the preferred embodiment.
FIG. 7 is a table of diagnose registers implemented in the preferred embodiment for programming each of the trigger registers, trigger functional blocks, and iteration and countdown timers.
FIG. 8 is a flowchart of the debug trigger apparatus of FIG. 2 once the debug logic has been programmed.
DETAILED DESCRIPTION OF THE PRESENT INVENTION
The preferred embodiment of the present invention is discussed below with reference to the drawings, where like reference numbers represent like elements.
FIG. 1 is a high-level block diagram of an integrated circuit chip 100 in which the present invention is incorporated. The preferred embodiment of the present invention is discussed in the context of an integrated circuit 100 which implements a microprocessor architecture because the microprocessor architecture contains features which are ideally suited to illustrating the inventive principles of the invention. Although representative of the type of integrated circuit in which the present invention may be utilized to test and debug the integrated circuit, the microprocessor architecture of integrated circuit 100 is not intended in any way to limit the use of the present invention. Accordingly, the integrated circuit to which the present invention may be applied may include any other integrated circuit of interest. The integrated circuit 100 shown in FIG. 1 is a model of the computer architecture of the PA-7300LC RISC chip, manufactured by Hewlett-Packard Company, Palo Alto, Calif.
As shown in FIG. 1, integrated circuit 100 includes a central processing unit (CPU) 102. The CPU 102 receives instructions and executes them. Depending on the instruction, the CPU may delegate certain work to be completed to special function units 104. Special function units are dedicated hardware units optimally designed to perform a given function. The use of special function units substantially increases the performance of a processor.
The integrated circuit 100 shown in FIG. 1 also includes an instruction cache 110 and data cache 106. Instruction fetches and data accesses each require access to data from a main memory external to the integrated circuit 100. In the integrated circuit 100 shown in FIG. 1, all instructions executed by the CPU 102 are first moved from main memory into the instruction cache 110 and all data accessed by the CPU 102 is first moved from main memory into the data cache 106. Move-in rules are known in the art. Typically, whenever a request for access to a given data item is issued and the cache does not contain the requested data item, the entire cache line (i.e., block of data) in main memory where the requested data item resides is moved into the cache at the same time. Most modern computer systems also support virtual addressing. To support virtual addressing, a translation lookaside buffer (TLB) is typically used to provide virtual to absolute address translations. As shown in FIG. 1, the integrated circuit includes a TLB 108 which is a shared data/instruction fetch resource. In operation, the CPU 102 requests a memory address to be accessed on either an internal instruction address bus 120 or an internal data address bus 118. The TLB holds the virtual to real address mappings. When presented with a virtual address, it attempts to find the corresponding physical address (real address). On failing to do so, special hardware or software is invoked to place such a translation into the TLB. This is called a "TLB hit" or "TLB miss". Once a physical address is determined, the cache is checked to see if that line of data from physical memory is present in the cache. If so, it is a "cache hit" and the data or instruction is immediately available. If not, it is a "cache miss" and the data or instruction must be retrieved from memory. Instructions are sent to the instruction cache 110 on an internal instruction bus 114 and data is sent to the data cache 106 on an internal data bus 112. From the above discussion, it is clear that the signals on the internal instruction address bus 120, data address bus 118, instruction bus 114, data bus 112, and TLB address bus 116 are inaccessible external to the integrated circuit 100 via the system interface 130.
The integrated circuit 100 also includes a debug trigger apparatus 122 which contains the heart of the invention. The debug trigger apparatus 122 may receive various signals of interest which are present on nodes located throughout the integrated circuit depending on the integrated circuit design. Accordingly, it may be deemed interesting in the integrated circuit 100 to make available the signals of each of the internal busses of the integrated circuit 100. Thus, as shown in FIG. 1, the debug trigger apparatus 122 is configured to receive signals present on each of the instruction bus 114, instruction address bus 120, data address bus 118, and TLB address bus 116. The debug trigger apparatus 122 includes diagnose registers 124 which may be programmed to set up a variety of trigger capture events, including multiple trigger events, repetitive events, different starting and ending conditions, and arbitrary clock signal delays before triggering. The debug trigger apparatus produces one or more trigger capture signals depending on how it is configured. The trigger capture signals may be used for various functions including to signal an external pulse or cause a hardware breakpoint trap. In the preferred embodiment, a trigger capture signal EP-- SIGNAL is used to latch a test access port (TAP) latch 126 and to signal an external pulse on an external pin EP 138. The TAP latch 126 is coupled to various test nodes TEST NODE 0-TEST NODE N throughout the integrated circuit 100. When an external test system receives the EP-- SIGNAL on the external pin EP 138, it may serially download the contents of the TAP latches 126 via a serial line 134 with the assistance of a TAP controller 128. In the preferred embodiment, the TAP controller 128 and external serial TAP retrieval hardware (not shown) conform to the well-known Institute of Electrical and Electronics Engineers (IEEE) Standard 1149.1, "Test Access Port and Boundary Scan Architecture," also known as the Joint Test Action Group (JTAG) standard.
FIG. 2 is a block diagram of a preferred embodiment debug trigger apparatus for the integrated circuit 100 of FIG. 1 in accordance with the present invention. As shown in FIG. 2, the debug trigger apparatus, shown generally at 200, includes an instruction address (IA) trigger register 202, a data address (DA) trigger register 204, and an instruction data (ID) trigger register 206. The instruction address trigger register 202 is configured to monitor the internal instruction address bus 120 and look for instruction fetches from a memory address designated by the programmed value of the instruction address trigger register 202. When an instruction is fetched from a memory address which matches the programmed value of the instruction address trigger register 202, the instruction address trigger register 202 produces an instruction address trigger match signal 222. The data address trigger register 204 is configured to monitor the internal data address bus 118 and look for data accesses to and from a memory address designated by the programmed value of the data address trigger register 204. When data is accessed at a memory address which matches the programmed value of the data address trigger register 204, the data address trigger register 204 produces a data address trigger match signal 224. The instruction data trigger register 206 is configured to monitor the internal instruction bus 114 and look for an instruction pattern designated by the programmed value of the instruction data trigger register 206. When an instruction pattern is detected which matches the programmed value of the instruction data trigger register 206, the instruction data trigger register 206 produces an instruction data trigger match signal 226.
FIG. 3 is a more detailed block diagram of the instruction address register 202, data address register 204 and instruction trigger register 206 of the preferred embodiment debug trigger apparatus 200 of FIG. 2. As shown in FIG. 3, the instruction address trigger register 202 comprises an instruction trigger offset data block 302, an instruction trigger space id data block 304, an instruction trigger real page number data block 306 and an instruction trigger virtual mode data block 308. The instruction address trigger register 202 also includes a raw match signal multiplexor 310 which receives a raw trigger match signal MATCHO-- IA-- R, MATCHS-- IA-- R, MATCHR-- IA-- R respectively from instruction trigger offset data block 302, instruction trigger space id data block 304, and instruction trigger real page number data block 306. The instruction address trigger register 202 also includes a pipelined match signal multiplexor 312 which receives a pipelined trigger match signal MATCH0-- IA-- P, MATCHS-- IA-- P, MATCHR-- IA-- P, MATCHV-- IA-- P respectively from instruction trigger offset data block 302, instruction trigger space id data block 304, instruction trigger real page number data block 306, and instruction trigger virtual mode data block 308. The instruction address trigger register 202 also includes a multiplexor 314 which receives a RAW-- IA-- MATCH signal from multiplexor 310 and a PIPED-- IA-- MATCH signal from multiplexor 312. The multiplexor 314 also receives a programmable select signal IA-- PIPED which controls whether the RAW-- IA-- MATCH signal or the PIPED-- IA-- MATCH signal is output as the instruction address trigger match signal IA-- MATCH 222.
As also shown in FIG. 3, the data address trigger register 204 comprises a data trigger offset data block 322, a data trigger space id data block 324, and a data trigger virtual mode data block 326. The data address trigger register 204 also includes a raw match signal multiplexor 328 which receives a raw trigger match signal MATCHO-- DA-- R, MATCHS-- DA-- R, respectively from data trigger offset data block 322, and data trigger space id data block 324. The data address trigger register 204 also includes a pipelined match signal multiplexor 330 which receives a pipelined trigger match signal MATCH0-- DA-- P, MATCHS-- DA-- P, MATCHV-- DA-- P respectively from data trigger offset data block 322, data trigger space id data block 324, and data trigger virtual mode data block 326. The data address trigger register 204 also includes a multiplexor 332 which receives a RAW-- DA-- MATCH signal from multiplexor 328 and a PIPED-- DA-- MATCH signal from multiplexor 330. The multiplexor 332 also receives a programmable select signal DA-- PIPED which controls whether the RAW-- DA-- MATCH signal or the PIPED-- DA-- MATCH signal is output as the data address trigger match signal DA-- MATCH 224.
As also shown in FIG. 3, the instruction trigger register 206 comprises an instruction trigger block 342. The instruction trigger register 206 also includes a multiplexor 352 which receives a raw trigger match signal MATCHI-- ID-- R and a pipelined trigger match signal MATCHI-- ID-- P from the instruction trigger block 342. The multiplexor 352 also receives a programmable select signal ID-- PIPED which controls whether the MATCHI-- ID-- R signal or the MATCHI-- ID-- P signal is output as the instruction address trigger match signal ID-- MATCH 226.
FIG. 4 is a more detailed block diagram of a trigger register block 400 used to implement the instruction trigger offset data block 302, instruction trigger space id data block 304, instruction trigger real page number data block 306 of instruction address trigger register 202, the data trigger offset data block 322, data trigger space id data block 324 of data address trigger register 204, and instruction trigger block 342 of instruction trigger register 206. As shown in FIG. 4, each trigger register block includes a sampler latch 402, a pattern latch 404 and a mask latch 406. The sampler latch 402 is coupled to receive as incoming DATA the signals of the particular bus that it is configured to monitor. As an example, the sample latch 402 of the instruction trigger offset data block 302 is connected to receive the portion of the instruction address bus 120 associated with the address offset, while the sample latch 402 of the instruction trigger space id block 304 is connected to receive the portion of the instruction address bus 120 associated with the space id of the instruction address. The sampler latch is clocked by a qualified clock signal CK-- QUAL which may be programmed to enable sampling on each CPU clock cycle or may be programmed to enable sampling in synch with a CPU pipeline signal. The pattern latch 404 is coupled to receive a diagnostic command on DIAGNOSE-- CMD which sets a pattern on which to trigger. The mask latch 406 is coupled to receive a diagnostic command on DIAGNOSE-- CMD which sets a bit mask to enable a pattern range to be set up. The pattern latch 404 and mask latch 406 are set when signals SET1 and SET2 respectively are pulsed high. The comparator 408 receives the contents of each of the latches 402-406 and performs a bit-wise compare of the sample to the pattern for each bits not masked out by the mask. If the sample matches the masked pattern, the comparator signals a match signal MATCH.
The debug trigger apparatus 200 of FIG. 2 also includes a trigger functional block 0 (TFBO) 208, a trigger functional block 1 (TFB1) 210, and a trigger functional block 2 (TFB2) 212. In the preferred embodiment shown in FIG. 2, each of the trigger functional blocks 208-212 receive each of the instruction address trigger match signal 222, data address trigger match signal 224, and instruction data trigger match signal 226. Each of the trigger functional blocks 208-212 are programmable and form an arbitrary function of their inputs. In the preferred embodiment, the programmed functions are performed by computing each boolean minterm of the inputs, performing a logical AND of each minterm with a software programmed mask, and performing a logical OR of the logical AND results to produce respective trigger functional block signals 228, 236, and 242. Generally, the software programmed mask for each trigger functional block 208-212 is programmed by sending a command to the integrated circuit 100 on the data and address bus 132. Accordingly, the integrated circuit 100 must have the ability to recognize and process the trigger functional block program commands. In the integrated circuit 100 shown in FIG. 1, the CPU architecture is configured to recognize and process such debug trigger control commands and then set the programmed values of the trigger registers 202-206 and trigger functional blocks 208-212. Because each trigger register 202-206 and each trigger functional block 208-212 may be programmed separately, the user has the ability to set a wide combination of trigger conditions for use in the testing and debugging process.
FIG. 5 is a schematic diagram of a trigger functional block 500 used to implement the trigger functional blocks 208-212 in the preferred embodiment. As shown in FIG. 5, the trigger functional block 500 receives the trigger match signals IA-- MATCH 222, DA-- MATCH 224 and ID-- MATCH 226 from the trigger registers 202-206. Inverters 502, 504, 506 receive each of the trigger match signals 222-226 and produce inverted trigger match signals IA-- MATCH' 522, DA-- MATCH' 524, and ID-- MATCH 526. Logical AND gates 530-544 each receive a different combination of inverted and non-inverted trigger match signals. In the trigger functional block 500, AND gate 530 receives IA-- MATCH' 522, DA-- MATCH' 524 and ID-- MATCH' 526, while AND gate 544 receives IA-- MATCH 322, DA-- MATCH 324 and ID-- MATCH 326. Each AND gate 530-544 also respectively receives a minterm selector signal min 0!-min 7!. The minterm selector signals min 0 . . . 7! are programmable and allow the user to define an arbitrary number of conditions upon which to signal a trigger capture event. If the minterm selector signal for a given AND gate is enabled (set to true), the AND gate will output a logical true signal if all of its inputs are true. If the minterm selector signal for a given AND gate is not enabled (set to false), the AND gate will output a logical false regardless of the state of its inputs. The outputs of each of the AND gates are Ored together by logical OR gate 546. If any of the AND gates outputs a logical true signal, the trigger function block match signal TFB-- MATCH is true. The equation performed by the trigger functional block 500 is:
__________________________________________________________________________
TFB.sub.-- MATCH =                                                        
        MIN 0!                                                            
            * IA.sub.-- MATCH'                                            
                    * DA.sub.-- MATCH'                                    
                            * ID.sub.-- MATCH' +                          
        MIN 1!                                                            
            * IA.sub.-- MATCH'                                            
                    * DA.sub.-- MATCH'                                    
                            * ID.sub.-- MATCH +                           
        MIN 2!                                                            
            * IA.sub.-- MATCH'                                            
                    * DA.sub.-- MATCH                                     
                            * ID.sub.-- MATCH' +                          
        MIN 3!                                                            
            * IA.sub.-- MATCH'                                            
                    * DA.sub.-- MATCH                                     
                            * ID.sub.-- MATCH +                           
        MIN 4!                                                            
            * IA.sub.-- MATCH                                             
                    * DA.sub.-- MATCH'                                    
                            * ID.sub.-- MATCH' +                          
        MIN 5!                                                            
            * IA.sub.-- MATCH                                             
                    * DA.sub.-- MATCH'                                    
                            * ID.sub.-- MATCH +                           
        MIN 6!                                                            
            * IA.sub.-- MATCH                                             
                    * DA.sub.-- MATCH                                     
                            * ID.sub.-- MATCH' +                          
        MIN 7!                                                            
            * IA.sub.-- MATCH                                             
                    * DA.sub.-- MATCH                                     
                            * ID.sub.-- MATCH.                            
__________________________________________________________________________
All combinations of inputs are legal. Minterm values for some interesting combinations include: 0Fhex (Instruction Address), 55hex (Instruction), 33hex (Data Address), and 7Fhex (either of Instruction Address, Instruction, or Data Address).
The preferred embodiment debug trigger apparatus 200 of FIG. 2 also includes additional components provided to increase its flexibility and sophistication. An iteration counter 214 is included to force N trigger matches before trigger capture events occur. The iteration counter 214 is configured to receive the trigger functional block signal 228 from trigger functional block 0 (TFB0) 208. The iteration counter 214 is programmable from the external data and address bus 132. The computer architecture of CPU 102 is configured to recognize and process iteration counter program commands and to set an iteration count value for the iteration counter 214. The iteration counter 214 produces an iteration count match signal 230 when the number of the trigger functional block signal 228 equals the programmed iteration count value. The preferred embodiment shown in FIG. 2 may also include a multiplexor 216 which is connected to receive the iteration count match signal 230 and an iteration counter output enable signal 232. The multiplexor 216 produces an enable signal 234 when either the iteration count match signal 230 or the iteration counter output enable signal 232 is both selected as input and is logically true. If it is not desired to count any iterations, the multiplexor 216 is selected to choose the iteration counter output enable signal 232, which is always logically true, as input. If iterations are to be counted, the multiplexor 216 is selected to choose the iteration count match signal 230 as input. The enable signal 234 is input to both the trigger functional block 1 (TFB1) and the trigger functional block 2 (TFB2) and used by their respective programmed functions in forming the respective trigger functional block signals 236, 242.
The debug trigger apparatus 200 of FIG. 2 also includes a countdown timer 218. The countdown timer is connected to receive the trigger functional block signal 236 from trigger functional block 1 (TFB1). The countdown timer 218 is programmable. The computer architecture of CPU 102 is configured to recognize and process countdown timer program commands and to set a countdown timer value for the countdown timer 218. The countdown timer 218 produces a countdown timer match signal 238 when a number of clock cycles pass which equals the programmed countdown timer value. Since the countdown timer counts only the number of clock cycles that pass, it is not dependent on the CPU pipeline or architectural functionality of the integrated circuit 100. The countdown timer 218 is therefore particularly useful in debugging electrical failures of the integrated circuit 100 because signals may be monitored for proper timing rather than only proper logical functionality. The preferred embodiment shown in FIG. 2 may also include a multiplexor 220 which is connected to receive the countdown timer match signal 238 and the trigger functional block signal 236. Multiplexor 220 may be selected to accept as input the trigger functional block signal 236 when no delay is desired or the countdown timer match signal 238 when additional delay is desired. The multiplexor 220 produces a trigger capture signal 240 when the selected input signal (i.e., the countdown timer match signal 238 or the trigger functional block signal 236) is logically true. In the preferred embodiment, the trigger capture signal 240 is used as an external pin pulse signal EP-- SIGNAL, which is sent to the system interface 130 and made available external to the chip via external pin EP 138. The external pulse signal EP-- SIGNAL indicates to an external test system that the test access port (TAP) latch 126 coupled to various test nodes throughout the integrated circuit has been latched and may be downloaded in a "sample-on-the-fly" manner to the external test system.
The trigger functional block 2 (TFB2) 212 of FIG. 2 directly produces a trigger capture signal 242. In the preferred embodiment, the trigger capture signal 242 is used as a hardware breakpoint trap, which may be used to cause a change in the program execution.
FIG. 6 is a schematic diagram of a counter 600 used to implement the iteration counter 214 and the countdown timer 218 in the preferred embodiment. As shown in FIG. 6, the iteration counter 600 includes a 32-bit register 602, an adder 604, and a comparator 606. The register 602 may be programmed with a new value by placing the 32-bit value on input lines 608 and pulsing a set signal SET-- VALUE on a set input 610. The register 602 is clocked by a clock signal CK, which outputs the contents of the register 602 on output lines 612 each clock cycle. The adder 604 receives the contents of the register 602 from lines 612, adds negative one, and outputs the a decremented value on lines 614. The comparator 606 receives the decremented value from lines 614, compares it to zero, and signals a count match signal COUNT-- MATCH if the decremented value is equal to zero. The register 602 is also coupled to lines 614. If a decrement input 616 of the register 602 is high, the register 602 receives the decremented value as input when the clock signal CK clocks the register. When the counter 600 is used to implement the iteration counter 314, the decrement input 616 receives the direct output of trigger functional block TFB0 and thus counts down only on cycles when the TFB0 output signal is true. When the counter 600 is used to implement the countdown timer 318, the decrement input 616 of the register 602 is held low until trigger functional block TFB1 signals a match, and then the decrement input stays true until the timer reaches zero and COUNT-- MATCH is signaled regardless of the state of TFB1.
FIG. 7 shows a table of the registers used to program each of the instruction address trigger register 202, data address trigger register 204, instruction data trigger register 206, trigger functional blocks 208-212, iteration counter 214, and countdown timer 218 of FIG. 2. As shown in FIG. 7, the diagnose registers include an instruction address trigger offset register IATOR DR0 and an instruction address trigger offset enable register IATOER DR1, an instruction address trigger space id register IATSIR DR2 and an instruction address trigger space id enable register IATSIRE DR3, an instruction address trigger real page number register IATRPN DR4 and an instruction address trigger real page number enable register IATRPNE DR5. The diagnose registers also include a data address trigger offset register DATOR DR6 and a data address trigger offset enable register DATOER DR7, and a data address trigger space id register DATSIR DR8 and a data address trigger space id enable register DATSIRE DR9. The diagnose registers also include an instruction trigger register ITR DR10 and an instruction trigger enable register ITER DR11. The diagnose registers also include an arbitrary function minterm selector (or trigger program) register TP DR14, an iteration counter register IC DR15, a countdown timer register CT DR16, and a trigger control register CR DR26. Registers DR0, 2, 4, 6, 8 and 10 correspond to the pattern latch 404 in FIG. 4. Registers DR 1, 3, 5, 7, 9 and 11 correspond to the mask latch 406 in FIG. 4. Register TP comprises the minterm bits min 0 . . . 7! for each of the trigger functional blocks TFB0, TFB1 and TFB2. The control register CR contains bits corresponding to the IA-- PIPED, DA-- PIPED and ID-- PIPED signals among other control information. The diagnose registers are programmed by sending diagnose commands to the integrated circuit 100 on the data and address bus 134 to the system interface 130. The CPU architecture is configured to recognize and process the diagnostics commands and set up the diagnose registers accordingly.
FIG. 8 shows a flowchart of the operation, shown generally at 800, of the debug trigger apparatus of FIG. 2 once the debug logic has been programmed. As shown in FIG. 8, address (IA) trigger register 202, data address (DA) trigger register 204, and instruction data (ID) trigger register 206 begins with a step 802 in which each of the instruction address (IA) trigger register 202, data address (DA) trigger register 204, and instruction data (ID) trigger register 206 produce a logically true signal as its respective instruction address trigger match signal 222, data address trigger match signal 224, and instruction data trigger match signal 226 if its respective programmed trigger value matches the respective signals which it is configured to monitor. A logically false signal is respectively produced by the instruction address (IA) trigger register 202, data address (DA) trigger register 204, and instruction data (ID) trigger register 206 when no match occurs. The operation 800 of the debug trigger apparatus 200 continues in step 804 where trigger functional block 0 (TFB0) 208 computes its programmed boolean function of the three trigger register outputs 222-226. The trigger functional block 0 (TFB0) outputs a logically true trigger functional block signal 228 if the programmed function results in a logically true result, and outputs a logically false signal 228 if the programmed function results in a logically false result. In step 806, the debug trigger apparatus determines whether the trigger functional block signal 228 output by trigger functional block 0 (TFB0) is logically true. If the trigger functional block signal 228 is true, the debug trigger apparatus 200 decrements the iteration counter 214 by one in step 808. Then, in step 810 it is determined whether the iteration count has been decremented to 0 or whether there was no initial programmed iteration count. If either of these conditions is true, then in step 812 the iteration counter 214 outputs a logically true enable signal 234. If both of the conditions are false, the enable signal 234 is logically false. It will be noted that if no iteration count was programmed, the iteration counter 214 acts as a pass-through register and the first TFB0 match causes the enable signal 234 to be logically true.
The operation 800 of the debug trigger apparatus then continues in step 814 where trigger functional block 1 (TFB1) 210 computes its programmed boolean function of the enable signal 234 and the three trigger register outputs 222-226. In step 816, it is determined whether the output trigger functional block signal 236 is logically true or false. If the trigger functional block signal 236 is logically true, the countdown timer 218 is started if not yet started and then decremented in step 820. If the trigger functional block signal 236 is logically false, it is determined in step 818 whether the countdown timer had already been started previously. If the countdown timer 218 had already been started on a previous cycle, the countdown timer is decremented in step 820. If the countdown timer gets decremented in step 820, step 822 is executed in which it is determined whether the countdown timer has decremented to 0 or whether there was no delay initially programmed. If either of these conditions is true, a trigger capture signal 242 in the form of a sample-on-the-fly (SOF) signal or and external pin (EP) pulse signal is generated in step 824.
The operation 800 of the debug trigger apparatus 200 then continues in step 826 where trigger functional block 2 (TFB2) computes its programmed boolean function of the enable signal 234 and the three trigger outputs 222-226 from the trigger registers 202-206. In step 828 it is determined whether the trigger functional block signal 242 is true. If the trigger functional block signal 242 is true, a trigger capture signal 242 is generated in the form of a hardware breakpoint trap in step 830. Steps 802 through 830 are repeated each CPU clock cycle.
It will be appreciated from the above discussion that the present invention provides a sophisticated low-cost debug trigger apparatus for use in precise pinpointing of integrated circuit problems and failures. Internal integrated circuit signals may be monitored for use in testing and debugging integrated circuits. The present invention provides a set of trigger registers internal to the integrated circuit which can be software programmed to recognize a variety of conditions during the operation of the integrated circuit. The debug trigger apparatus provides significant flexibility in trigger conditions by allowing for repetition, different start and end conditions, arbitrary clock cycle delays before the final event, and trigger function blocks to form arbitrary boolean functions of the trigger conditions. The use of any two trigger function blocks provides the ability to specify different starting and ending conditions with an arbitrary number of matches on the start condition and an arbitrary delay on the end condition. The present invention thus provides a technique for applying the sophisticated functionality of powerful external debug tools to difficult-to-access external and inaccessible internal signals of an integrated circuit to detect an enormous number of arbitrary functional logic and electrical events.
It will also be appreciated by one skilled in the art that the principles of the present invention may be extended to include any number of combinations of trigger registers, trigger functional blocks, iteration counters and countdown timers. While illustrative and presently preferred embodiments of the invention have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed and that the appended claims are intended to be construed to include such variations except insofar as limited by the prior art.

Claims (17)

What is claimed is:
1. A debug trigger apparatus for use in debugging functional and electrical failures of an integrated circuit, comprising:
a plurality of programmable trigger registers disposed internal and integral to said integrated circuit, each trigger register configured to receive a plurality of integrated circuit signals, to compare each of said plurality of integrated circuit signals of said integrated circuit to a programmed trigger condition, and to produce a trigger match signal when said plurality of integrated circuit signals match said programmed trigger condition;
a plurality of programmable trigger function blocks disposed internal and integral to said integrated circuit, each trigger function block coupled to receive a plurality of said trigger match signals and performing a programmed boolean minterm function on the monitored trigger match signals to produce a trigger capture signal; and
a programmable timer disposed internal and integral to said integrated circuit enabled by said trigger capture signal of a corresponding one of said programmable trigger function blocks to generate a timer enable signal upon completion of a programmed time delay.
2. The debug trigger apparatus of claim 1, wherein said programmed boolean minterm function is computed by performing a bit-wise logical AND of said plurality of said trigger match signals with a programmed bit mask to produce a bit-wise AND result, and then performing a bit-wise logical OR of bits in said bit-wise AND result to produce said trigger capture signal.
3. The debug trigger apparatus of claim 1, wherein each of said plurality of trigger registers comprise:
a sampler latch configured to sample said plurality of said integrated circuit signals according to a system clock signal and hold as output a sampled signal;
a pattern latch configured to set a programmable pattern value according to a set pattern program command and hold as output a pattern signal; and
a comparator configured to compare said sampled signal and said pattern signal, and to output a trigger match signal when said sampled signal and said pattern signal match.
4. The debug trigger apparatus of claim 3, wherein each of said plurality of trigger registers further comprise:
a mask latch configured to set a programmable mask value according to a set mask program command and hold as output a mask signal;
wherein said comparator is configured to ignore, for comparison purposes, bits of said sampled signal and said pattern signal which are masked according to masked bits in said mask signal.
5. The debug trigger apparatus of claim 1, further comprising:
a programmable iteration counter disposed internal and integral to said integrated circuit and coupled to receive said trigger capture signal of a second corresponding one of said programmable trigger function blocks, said programmable iteration counter generating an iteration count enable signal upon receipt of said trigger capture signal of said second corresponding one of said programmable trigger function blocks a programmed iteration count number of times.
6. The debug trigger apparatus of claim 5, wherein one or more of the plurality of trigger function blocks is configured to further monitor said iteration counter enable signal and to include said iteration counter enable signal in performing said programmed boolean minterm function.
7. The debug trigger apparatus of claim 1, wherein said plurality of programmable trigger registers comprise an instruction address trigger register which is configured to monitor instruction addresses from an internal instruction address bus.
8. The debug trigger apparatus of claim 1, wherein said plurality of programmable trigger registers comprise a data address trigger register which monitors data addresses from an internal data address bus.
9. The debug trigger apparatus of claim 1, wherein said plurality of programmable trigger registers comprise an instruction data trigger register which monitors an instruction pattern on an internal instruction bus.
10. A debug trigger apparatus for use in debugging functional and electrical failures of an integrated circuit, comprising:
a plurality of programmable trigger registers disposed internal and integral to said integrated circuit, each trigger register configured to receive a plurality of integrated circuit signals, to compare each of said plurality of integrated circuit signals of said integrated circuit to a programmed trigger condition, and to produce a trigger match signal when said plurality of integrated circuit signals match said programmed trigger condition;
a plurality of programmable trigger function blocks disposed internal and integral to said integrated circuit, each trigger function block coupled to said plurality of trigger registers and receiving a plurality of said trigger match signals and performing a programmed boolean minterm function on the monitored trigger match signals to produce a trigger capture signal;
a programmable timer disposed internal and integral to said integrated circuit enabled by said trigger capture signal of a corresponding one of said programmable trigger function blocks to generate a timer enable signal upon completion of a programmed time delay; and
a programmable iteration counter disposed internal and integral to said integrated circuit and coupled to receive said trigger capture signal of a second corresponding one of said programmable trigger function blocks, said programmable iteration counter generating an iteration count enable signal upon receipt of said trigger capture signal of said second corresponding one of said programmable trigger function blocks a programmed iteration count number of times.
11. The debug trigger apparatus of claim 10, said plurality of programmable trigger function blocks comprising a first trigger function block, a second trigger function block, and a third trigger function block, wherein each produces respectively a first trigger capture signal, a second trigger capture signal, and a third trigger capture signal.
12. The debug trigger apparatus of claim 11, wherein said iteration counter is configured to receive the first trigger capture signal from said first trigger function block.
13. The debug trigger apparatus of claim 12, wherein said first and second trigger function blocks are further configured to monitor and use said iteration count enable signal to perform their respective programmed boolean minterm functions.
14. The debug trigger apparatus of claim 13, wherein said programmable timer is configured to receive said second trigger capture signal from said second trigger function block.
15. The debug trigger apparatus of claim 13, wherein said plurality of trigger registers comprise an instruction address trigger register which monitors instruction addresses from an internal instruction address bus and produces an instruction address trigger match signal, a data address trigger register which monitors data addresses from an internal data address bus and produces a data address trigger match signal, and an instruction data trigger register which monitors an instruction pattern on an internal instruction bus and produces an instruction data trigger match signal.
16. The debug trigger apparatus of claim 10, wherein each of said plurality of programmable trigger registers comprise:
a sampler latch configured to sample said plurality of integrated circuit signals according to a system clock signal and hold as output a sampled signal;
a pattern latch configured to set a programmable pattern value according to a set pattern program command and hold as output a pattern signal; and
a comparator configured to compare said sampled signal and said pattern signal, and to output a trigger match signal when said sampled signal and said pattern signal match.
17. The debug trigger apparatus of claim 16, wherein each of said plurality of trigger registers further comprise:
a mask latch configured to set a programmable mask value according to a set mask program command and hold as output a mask signal;
wherein said comparator is configured to ignore, for comparison purposes, bits of said sampled signal and said pattern signal which are masked according to masked bits in said mask signal.
US08/749,188 1996-11-14 1996-11-14 Integrated debug trigger method and apparatus for an integrated circuit Expired - Lifetime US5751735A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/749,188 US5751735A (en) 1996-11-14 1996-11-14 Integrated debug trigger method and apparatus for an integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/749,188 US5751735A (en) 1996-11-14 1996-11-14 Integrated debug trigger method and apparatus for an integrated circuit

Publications (1)

Publication Number Publication Date
US5751735A true US5751735A (en) 1998-05-12

Family

ID=25012652

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/749,188 Expired - Lifetime US5751735A (en) 1996-11-14 1996-11-14 Integrated debug trigger method and apparatus for an integrated circuit

Country Status (1)

Country Link
US (1) US5751735A (en)

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933626A (en) * 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for tracing microprocessor instructions
US5944841A (en) * 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
US5953684A (en) * 1997-03-17 1999-09-14 Hewlett-Packard Company Methods and apparatus for integrated storage of test environment context information
US6178525B1 (en) * 1997-02-27 2001-01-23 Sgs-Thomson Microelectronics Limited Trigger sequencing controller
US6247119B1 (en) * 1997-11-26 2001-06-12 Texas Instruments Incorporated Apparatus having a flattener for outputting aligned or unaligned information from an instruction execution pipeline
US6453410B1 (en) * 1998-07-03 2002-09-17 Nec Corporation Computer system having a cache memory and a tracing function
US6535011B1 (en) * 1999-07-23 2003-03-18 Sharp Kabushiki Kaisha Testing device and testing method for a semiconductor integrated circuit and storage medium having the testing program stored therein
US6581191B1 (en) 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US20030192034A1 (en) * 2002-04-04 2003-10-09 Mitsubishi Denki Kabushiki Kaisha Trace device preventing loss of trace information which will be important in debugging
US6658557B1 (en) 2000-05-25 2003-12-02 Advanced Micro Devices, Inc. Synthesizing the instruction stream executed by a microprocessor from its branch trace data
US6662313B1 (en) * 2000-04-29 2003-12-09 Hewlett-Packard Development Company, L.P. System and method for multiple cycle capture of chip state
US20040019825A1 (en) * 2002-07-25 2004-01-29 Gergen Joseph P. Method and apparatus for debugging a data processing system
US20040019828A1 (en) * 2002-07-25 2004-01-29 Gergen Joseph P. Method and apparatus for debugging a data processing system
US20040019831A1 (en) * 2002-07-25 2004-01-29 Gergen Joseph P. Method and apparatus for debugging a data processing system
US20040025122A1 (en) * 2000-11-28 2004-02-05 Schubert Nils Endric Hardware-based HDL code coverage and design analysis
US6823497B2 (en) 1999-11-30 2004-11-23 Synplicity, Inc. Method and user interface for debugging an electronic system
US20050010880A1 (en) * 1999-11-30 2005-01-13 Bridges2Silicon, Inc. Method and user interface for debugging an electronic system
US7065481B2 (en) 1999-11-30 2006-06-20 Synplicity, Inc. Method and system for debugging an electronic system using instrumentation circuitry and a logic analyzer
US7072818B1 (en) 1999-11-30 2006-07-04 Synplicity, Inc. Method and system for debugging an electronic system
US20060259774A1 (en) * 2005-05-13 2006-11-16 Texas Instruments Incorporated Watermark counter with reload register
US20080184056A1 (en) * 2007-01-30 2008-07-31 Freescale Semiconductor, Inc. Selective timer control during single-step instruction execution
US20080184055A1 (en) * 2007-01-30 2008-07-31 Freescale Semiconductor, Inc. Instruction-based timer control during debug
US20080191735A1 (en) * 2005-07-15 2008-08-14 Jason Redgrave Accessing multiple user states concurrently in a configurable IC
US20080258761A1 (en) * 2005-07-15 2008-10-23 Brad Hutchings Runtime loading of configuration data in a configurable ic
US20080313499A1 (en) * 2003-09-19 2008-12-18 Yasushi Ueda Debug circuit
US20080320290A1 (en) * 2007-06-20 2008-12-25 Freescale Semiconductor, Inc. Exception-based timer control
US20090002022A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Configurable ic with deskewing circuits
US20090002020A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Dynamically tracking data values in a configurable ic
US20090007027A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Translating a user design in a configurable ic for debugging the user design
US20090002045A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Integrated circuit with delay selecting input selection circuitry
US20090222797A1 (en) * 2008-02-29 2009-09-03 Infineon Technologies Ag Apparatus and method for providing a trigger
WO2010016857A1 (en) * 2008-08-04 2010-02-11 Tabula, Inc. Trigger circuits and event counters for an ic
US20110060546A1 (en) * 2007-09-19 2011-03-10 Marc Miller Intergrated circuit (IC) with primary and secondary networks and device containing such IC
US8072234B2 (en) 2009-09-21 2011-12-06 Tabula, Inc. Micro-granular delay testing of configurable ICs
US8099271B2 (en) 1999-11-30 2012-01-17 Synopsys, Inc. Design instrumentation circuitry
US20130042291A1 (en) * 2011-08-10 2013-02-14 Srikanth Kambhatla Streaming Audio Visual Content Simultaneously to Different Topologies on a Wireless Adapter
US8635497B2 (en) 2011-06-28 2014-01-21 Freescale Semiconductor, Inc. Data processing system having a sequence processing unit and method of operation
US8856406B2 (en) * 2011-09-14 2014-10-07 Microchip Technology Incorporated Peripheral trigger generator
US9154137B2 (en) 2013-07-04 2015-10-06 Altera Corporation Non-intrusive monitoring and control of integrated circuits
US20180180675A1 (en) * 2016-12-22 2018-06-28 Samsung Electronics Co., Ltd. Scan data control apparatus and electronic system having the same
CN108446424A (en) * 2017-02-02 2018-08-24 英特尔公司 The method and apparatus that circuit system for timing of attaching most importance to realizes compensation resetting automatically
US11803455B2 (en) * 2014-04-17 2023-10-31 Texas Instruments Incorporated Processor with debug pipeline

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910417A (en) * 1986-09-19 1990-03-20 Actel Corporation Universal logic module comprising multiplexers
US5084814A (en) * 1987-10-30 1992-01-28 Motorola, Inc. Data processor with development support features
US5317711A (en) * 1991-06-14 1994-05-31 Integrated Device Technology, Inc. Structure and method for monitoring an internal cache
US5383192A (en) * 1992-12-23 1995-01-17 Intel Corporation Minimizing the likelihood of slip between the instant a candidate for a break event is generated and the instant a microprocessor is instructed to perform a break, without missing breakpoints
US5418452A (en) * 1993-03-25 1995-05-23 Fujitsu Limited Apparatus for testing integrated circuits using time division multiplexing
US5473754A (en) * 1993-11-23 1995-12-05 Rockwell International Corporation Branch decision encoding scheme
US5488688A (en) * 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
US5491793A (en) * 1992-07-31 1996-02-13 Fujitsu Limited Debug support in a processor chip
US5515530A (en) * 1993-12-22 1996-05-07 Intel Corporation Method and apparatus for asynchronous, bi-directional communication between first and second logic elements having a fixed priority arbitrator
US5560036A (en) * 1989-12-14 1996-09-24 Mitsubishi Denki Kabushiki Kaisha Data processing having incircuit emulation function
US5590354A (en) * 1993-07-28 1996-12-31 U.S. Philips Corporation Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions
US5617420A (en) * 1992-06-17 1997-04-01 Texas Instrument Incorporated Hierarchical connection method, apparatus, and protocol
US5630102A (en) * 1994-12-19 1997-05-13 Intel Corporation In-circuit-emulation event management system

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910417A (en) * 1986-09-19 1990-03-20 Actel Corporation Universal logic module comprising multiplexers
US5084814A (en) * 1987-10-30 1992-01-28 Motorola, Inc. Data processor with development support features
US5560036A (en) * 1989-12-14 1996-09-24 Mitsubishi Denki Kabushiki Kaisha Data processing having incircuit emulation function
US5317711A (en) * 1991-06-14 1994-05-31 Integrated Device Technology, Inc. Structure and method for monitoring an internal cache
US5617420A (en) * 1992-06-17 1997-04-01 Texas Instrument Incorporated Hierarchical connection method, apparatus, and protocol
US5491793A (en) * 1992-07-31 1996-02-13 Fujitsu Limited Debug support in a processor chip
US5383192A (en) * 1992-12-23 1995-01-17 Intel Corporation Minimizing the likelihood of slip between the instant a candidate for a break event is generated and the instant a microprocessor is instructed to perform a break, without missing breakpoints
US5418452A (en) * 1993-03-25 1995-05-23 Fujitsu Limited Apparatus for testing integrated circuits using time division multiplexing
US5590354A (en) * 1993-07-28 1996-12-31 U.S. Philips Corporation Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions
US5473754A (en) * 1993-11-23 1995-12-05 Rockwell International Corporation Branch decision encoding scheme
US5515530A (en) * 1993-12-22 1996-05-07 Intel Corporation Method and apparatus for asynchronous, bi-directional communication between first and second logic elements having a fixed priority arbitrator
US5488688A (en) * 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
US5630102A (en) * 1994-12-19 1997-05-13 Intel Corporation In-circuit-emulation event management system

Cited By (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178525B1 (en) * 1997-02-27 2001-01-23 Sgs-Thomson Microelectronics Limited Trigger sequencing controller
US5953684A (en) * 1997-03-17 1999-09-14 Hewlett-Packard Company Methods and apparatus for integrated storage of test environment context information
US5944841A (en) * 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
US5933626A (en) * 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for tracing microprocessor instructions
US6247119B1 (en) * 1997-11-26 2001-06-12 Texas Instruments Incorporated Apparatus having a flattener for outputting aligned or unaligned information from an instruction execution pipeline
US6453410B1 (en) * 1998-07-03 2002-09-17 Nec Corporation Computer system having a cache memory and a tracing function
US6535011B1 (en) * 1999-07-23 2003-03-18 Sharp Kabushiki Kaisha Testing device and testing method for a semiconductor integrated circuit and storage medium having the testing program stored therein
US8099271B2 (en) 1999-11-30 2012-01-17 Synopsys, Inc. Design instrumentation circuitry
US20050010880A1 (en) * 1999-11-30 2005-01-13 Bridges2Silicon, Inc. Method and user interface for debugging an electronic system
US7356786B2 (en) 1999-11-30 2008-04-08 Synplicity, Inc. Method and user interface for debugging an electronic system
US20060195822A1 (en) * 1999-11-30 2006-08-31 Beardslee John M Method and system for debugging an electronic system
US7072818B1 (en) 1999-11-30 2006-07-04 Synplicity, Inc. Method and system for debugging an electronic system
US7069526B2 (en) 1999-11-30 2006-06-27 Synplicity, Inc. Hardware debugging in a hardware description language
US6581191B1 (en) 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US7065481B2 (en) 1999-11-30 2006-06-20 Synplicity, Inc. Method and system for debugging an electronic system using instrumentation circuitry and a logic analyzer
US7506286B2 (en) 1999-11-30 2009-03-17 Synopsys, Inc. Method and system for debugging an electronic system
US20050125754A1 (en) * 1999-11-30 2005-06-09 Schubert Nils E. Hardware debugging in a hardware description language
US6823497B2 (en) 1999-11-30 2004-11-23 Synplicity, Inc. Method and user interface for debugging an electronic system
US20030182642A1 (en) * 1999-11-30 2003-09-25 Schubert Nils Endric Hardware debugging in a hardware description language
US6904577B2 (en) 1999-11-30 2005-06-07 Synplicity, Inc. Hardware debugging in a hardware description language
US20040153838A1 (en) * 2000-04-29 2004-08-05 Swanson Jeffrey C. System and method for multiple cycle capture of chip state
US6662313B1 (en) * 2000-04-29 2003-12-09 Hewlett-Packard Development Company, L.P. System and method for multiple cycle capture of chip state
US7325164B2 (en) 2000-04-29 2008-01-29 Hewlett-Packard Development Company, L.P. System and method for multiple cycle capture of chip state
US6658557B1 (en) 2000-05-25 2003-12-02 Advanced Micro Devices, Inc. Synthesizing the instruction stream executed by a microprocessor from its branch trace data
US20040025122A1 (en) * 2000-11-28 2004-02-05 Schubert Nils Endric Hardware-based HDL code coverage and design analysis
US20070198959A1 (en) * 2000-11-28 2007-08-23 Schubert Nils E Hardware-based HDL code coverage and design analysis
US7836416B2 (en) 2000-11-28 2010-11-16 Synopsys, Inc. Hardware-based HDL code coverage and design analysis
US7222315B2 (en) 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
US20030192034A1 (en) * 2002-04-04 2003-10-09 Mitsubishi Denki Kabushiki Kaisha Trace device preventing loss of trace information which will be important in debugging
US7107489B2 (en) 2002-07-25 2006-09-12 Freescale Semiconductor, Inc. Method and apparatus for debugging a data processing system
US20040019825A1 (en) * 2002-07-25 2004-01-29 Gergen Joseph P. Method and apparatus for debugging a data processing system
US20040019828A1 (en) * 2002-07-25 2004-01-29 Gergen Joseph P. Method and apparatus for debugging a data processing system
US20040019831A1 (en) * 2002-07-25 2004-01-29 Gergen Joseph P. Method and apparatus for debugging a data processing system
US7013409B2 (en) 2002-07-25 2006-03-14 Freescale Semiconductor, Inc. Method and apparatus for debugging a data processing system
US20080313517A1 (en) * 2003-09-19 2008-12-18 Yasushi Ueda Debug circuit
US20080313499A1 (en) * 2003-09-19 2008-12-18 Yasushi Ueda Debug circuit
US20060259774A1 (en) * 2005-05-13 2006-11-16 Texas Instruments Incorporated Watermark counter with reload register
US8115510B2 (en) 2005-07-15 2012-02-14 Tabula, Inc. Configuration network for an IC
US8067960B2 (en) 2005-07-15 2011-11-29 Tabula, Inc. Runtime loading of configuration data in a configurable IC
US9018978B2 (en) 2005-07-15 2015-04-28 Tabula, Inc. Runtime loading of configuration data in a configurable IC
US8760194B2 (en) 2005-07-15 2014-06-24 Tabula, Inc. Runtime loading of configuration data in a configurable IC
US8433891B2 (en) 2005-07-15 2013-04-30 Tabula, Inc. Accessing multiple user states concurrently in a configurable IC
US20080258761A1 (en) * 2005-07-15 2008-10-23 Brad Hutchings Runtime loading of configuration data in a configurable ic
US20080191735A1 (en) * 2005-07-15 2008-08-14 Jason Redgrave Accessing multiple user states concurrently in a configurable IC
US20100289520A1 (en) * 2005-07-15 2010-11-18 Jason Redgrave Debug Network for a Configurable IC
US20100295574A1 (en) * 2005-07-15 2010-11-25 Brad Hutchings Runtime Loading of Configuration Data in a Configurable IC
US7788478B2 (en) 2005-07-15 2010-08-31 Tabula, Inc. Accessing multiple user states concurrently in a configurable IC
US7696780B2 (en) 2005-07-15 2010-04-13 Tabula, Inc. Runtime loading of configuration data in a configurable IC
US7853834B2 (en) * 2007-01-30 2010-12-14 Freescale Semiconductor, Inc. Instruction-based timer control during debug
US7831862B2 (en) * 2007-01-30 2010-11-09 Freescale Semiconductor, Inc. Selective timer control during single-step instruction execution
US20080184056A1 (en) * 2007-01-30 2008-07-31 Freescale Semiconductor, Inc. Selective timer control during single-step instruction execution
US20080184055A1 (en) * 2007-01-30 2008-07-31 Freescale Semiconductor, Inc. Instruction-based timer control during debug
US20080320290A1 (en) * 2007-06-20 2008-12-25 Freescale Semiconductor, Inc. Exception-based timer control
US7831818B2 (en) 2007-06-20 2010-11-09 Freescale Semiconductor, Inc. Exception-based timer control
US7652498B2 (en) 2007-06-27 2010-01-26 Tabula, Inc. Integrated circuit with delay selecting input selection circuitry
US8598909B2 (en) 2007-06-27 2013-12-03 Tabula, Inc. IC with deskewing circuits
US20100156456A1 (en) * 2007-06-27 2010-06-24 Brad Hutchings Integrated Circuit with Delay Selecting Input Selection Circuitry
US20090002022A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Configurable ic with deskewing circuits
US7973558B2 (en) 2007-06-27 2011-07-05 Tabula, Inc. Integrated circuit with delay selecting input selection circuitry
US8935640B2 (en) 2007-06-27 2015-01-13 Tabula, Inc. Transport network
US20090002020A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Dynamically tracking data values in a configurable ic
US7839162B2 (en) 2007-06-27 2010-11-23 Tabula, Inc. Configurable IC with deskewing circuits
US8069425B2 (en) 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
US20090007027A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Translating a user design in a configurable ic for debugging the user design
US8429579B2 (en) 2007-06-27 2013-04-23 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
US20090002045A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Integrated circuit with delay selecting input selection circuitry
US8143915B2 (en) 2007-06-27 2012-03-27 Tabula, Inc. IC with deskewing circuits
US8412990B2 (en) 2007-06-27 2013-04-02 Tabula, Inc. Dynamically tracking data values in a configurable IC
US8479069B2 (en) 2007-09-19 2013-07-02 Tabula, Inc. Integrated circuit (IC) with primary and secondary networks and device containing such an IC
US8990651B2 (en) 2007-09-19 2015-03-24 Tabula, Inc. Integrated circuit (IC) with primary and secondary networks and device containing such an IC
US20110060546A1 (en) * 2007-09-19 2011-03-10 Marc Miller Intergrated circuit (IC) with primary and secondary networks and device containing such IC
US20090222797A1 (en) * 2008-02-29 2009-09-03 Infineon Technologies Ag Apparatus and method for providing a trigger
US8755484B2 (en) * 2008-08-04 2014-06-17 Tabula, Inc. Trigger circuits and event counters for an IC
US20130156146A1 (en) * 2008-08-04 2013-06-20 Tabula, Inc. Trigger Circuits and Event Counters for an IC
US8525548B2 (en) 2008-08-04 2013-09-03 Tabula, Inc. Trigger circuits and event counters for an IC
WO2010016857A1 (en) * 2008-08-04 2010-02-11 Tabula, Inc. Trigger circuits and event counters for an ic
US9494967B2 (en) 2008-08-04 2016-11-15 Altera Corporation Trigger circuits and event counters for an IC
US20110199117A1 (en) * 2008-08-04 2011-08-18 Brad Hutchings Trigger circuits and event counters for an ic
US20110206176A1 (en) * 2008-08-04 2011-08-25 Brad Hutchings Trigger circuits and event counters for an ic
US8295428B2 (en) 2008-08-04 2012-10-23 Tabula, Inc. Trigger circuits and event counters for an IC
US8847622B2 (en) 2009-09-21 2014-09-30 Tabula, Inc. Micro-granular delay testing of configurable ICs
US8072234B2 (en) 2009-09-21 2011-12-06 Tabula, Inc. Micro-granular delay testing of configurable ICs
US8635497B2 (en) 2011-06-28 2014-01-21 Freescale Semiconductor, Inc. Data processing system having a sequence processing unit and method of operation
US8918569B2 (en) * 2011-08-10 2014-12-23 Intel Corporation Streaming audio visual content simultaneously to different topologies on a wireless adapter
US20130042291A1 (en) * 2011-08-10 2013-02-14 Srikanth Kambhatla Streaming Audio Visual Content Simultaneously to Different Topologies on a Wireless Adapter
US8856406B2 (en) * 2011-09-14 2014-10-07 Microchip Technology Incorporated Peripheral trigger generator
US9436565B2 (en) 2013-07-04 2016-09-06 Altera Corporation Non-intrusive monitoring and control of integrated circuits
US9154137B2 (en) 2013-07-04 2015-10-06 Altera Corporation Non-intrusive monitoring and control of integrated circuits
US9558090B2 (en) 2013-07-04 2017-01-31 Altera Corporation Non-intrusive monitoring and control of integrated circuits
US10339022B2 (en) 2013-07-04 2019-07-02 Altera Corporation Non-intrusive monitoring and control of integrated circuits
US11803455B2 (en) * 2014-04-17 2023-10-31 Texas Instruments Incorporated Processor with debug pipeline
US20180180675A1 (en) * 2016-12-22 2018-06-28 Samsung Electronics Co., Ltd. Scan data control apparatus and electronic system having the same
US10539616B2 (en) * 2016-12-22 2020-01-21 Samsung Electronics Co., Ltd. Scan data control apparatus and electronic system having the same
CN108446424A (en) * 2017-02-02 2018-08-24 英特尔公司 The method and apparatus that circuit system for timing of attaching most importance to realizes compensation resetting automatically
CN108446424B (en) * 2017-02-02 2024-04-30 英特尔公司 Method and apparatus for automatically implementing a compensation reset for retimed circuitry

Similar Documents

Publication Publication Date Title
US5751735A (en) Integrated debug trigger method and apparatus for an integrated circuit
US5771240A (en) Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
US5951696A (en) Debug system with hardware breakpoint trap
US7325164B2 (en) System and method for multiple cycle capture of chip state
Ko et al. Resource-efficient programmable trigger units for post-silicon validation
US5812830A (en) Debug system with raw mode trigger capability
US6732311B1 (en) On-chip debugger
US6854029B2 (en) DSP bus monitoring apparatus and method
US6516428B2 (en) On-chip debug system
KR0176697B1 (en) Method and apparatus for testing circuit boards
US6081864A (en) Dynamic configuration of a device under test
US6397354B1 (en) Method and apparatus for providing external access to signals that are internal to an integrated circuit chip package
JP2003076578A (en) Microcomputer, debugging system and trace information collecting method
US6154801A (en) Verification strategy using external behavior modeling
US10078113B1 (en) Methods and circuits for debugging data bus communications
US20170115348A1 (en) Methods and circuits for debugging circuit designs
US6073194A (en) Transaction based windowing methodology for pre-silicon verification
US20080313499A1 (en) Debug circuit
US20130097462A1 (en) Embedded logic analyzer
US6173243B1 (en) Memory incoherent verification methodology
Jayaraman et al. Native mode functional self-test generation for systems-on-chip
US7096395B2 (en) Efficient word recognizer for a logic analyzer
US6718498B2 (en) Method and apparatus for the real time manipulation of a test vector to access the microprocessor state machine information using the integrated debug trigger
US7624323B2 (en) Method and apparatus for testing an IC device based on relative timing of test signals
JP2002148311A (en) Test architecture

Legal Events

Date Code Title Description
AS Assignment

Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TOBIN, PAUL G.;NAASEH-SHAHRY, HOSEIN;UNDY, STEPHEN R.;REEL/FRAME:008411/0343;SIGNING DATES FROM 19970220 TO 19970227

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: HEWLETT-PACKARD COMPANY, COLORADO

Free format text: MERGER;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:011523/0469

Effective date: 19980520

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:036518/0623

Effective date: 20150813

AS Assignment

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001

Effective date: 20151027