Claims
- 1. A tracing circuit to trace the change of state of a plurality of signals, wherein each of said signals represents the output resulting from the evaluation of a combinatorial block and/or a plurality of state elements, said combinatorial blocks and/or a plurality of state elements together forming a target design of a functional verification system, the present value of a cluster of said signals being received in pre-specified bit positions of a bus, said tracing circuit comprising:
a mask memory containing a plurality of mask locations, each mask location indicating the bit positions of said bus on which the present value of each of a corresponding cluster of signals is to be received; a previous state memory storing a previous value for each of said plurality of signals; a trace buffer; and a trace controller coupled to said mask memory, said previous state memory and said trace buffer, said trace controller receiving a cluster identifier and a plurality of bits, said cluster identifier identifying the corresponding cluster to which said plurality of bits relate to, said plurality of bits being received on said bus and representing present values for the signals in the cluster identified by said cluster identifier at bit positions indicated by the corresponding mask location, said trace controller comparing said plurality of bits with corresponding previous values to determine if there is a change in any of the signal values in said cluster identified by said cluster identifier, said trace controller storing an entry in said trace buffer indicating that change has occurred if a change is detected based on the comparison.
- 2. The tracing circuit of claim 1, wherein each of said mask memory and said previous state memory comprise a number of locations equal to the number of clusters such that said trace controller can access said mask memory and said previous state memory using said cluster identifier.
- 3. The tracing circuit of claim 1, wherein said trace controller stores said plurality of bits into said previous state memory to reflect the change in values of corresponding signals if a change is detected.
- 4. The tracing circuit of claim 1, wherein said trace controller is designed to receive a push timer signal, said trace controller storing an entry in said trace buffer responsive to the assertion of said push timer signal, wherein said entry enables the status of different signals to be examined at the time of assertion of said push timer signal.
- 5. The tracing circuit of claim 1, wherein said trace buffer is implemented as a plurality of banks such that said trace controller can write into at least one of the banks while the trace results can be retrieved from another bank in parallel.
- 6. The tracing circuit of claim 5, wherein each of said banks is implemented as a random access memory (RAM), with each RAM location storing said cluster number and said plurality of bits.
- 7. The tracing circuit of claim 1, wherein said mask memory is configured with the corresponding masks prior to the beginning of the functional verification.
- 8. A method of tracing the change of state of a plurality of signals, wherein each of said signals represents the output resulting from the evaluation of a combinatorial block and/or a plurality of state elements, said combinatorial blocks and/or a plurality of state elements together forming a target design of a functional verification system, the present value of a cluster of said signals being received in pre-specified bit positions of a bus, said method comprising:
setting up a mask memory to indicate the bit positions of said bus on which the present value of each of a corresponding cluster of signals is to be received; storing a previous value for each of said plurality of signals in a previous state memory; receiving a cluster identifier and a plurality of bits, said cluster identifier identifying the corresponding cluster to which said plurality of bits relate to, said plurality of bits being received on said bus and representing present values for the signals in the cluster identified by said cluster identifier at bit positions indicated by the corresponding mask location; comparing said plurality of bits with corresponding previous values to determine if there is a change in any of the signal values in said cluster identified by said cluster identifier; and generating an entry in a trace buffer indicating that change has occurred if a change is detected based on the comparison.
- 9. The method of claim 8, further comprising wherein each of said mask memory and said previous state memory comprise a number of locations equal to the number of clusters such that said mask memory and said previous state memory can be accessed using said cluster identifier.
- 10. The method of claim 8, further comprising storing said plurality of bits into said previous state memory to reflect the change in values of corresponding signals if a change is detected.
- 11. The method of claim 8, further comprising:
receiving a push timer signal; and generation another entry in said trace buffer responsive to the reception of said push timer signal, wherein said another entry enables the status of different signals to be examined at the time of reception of said push timer signal.
RELATED APPLICATIONS
[0001] The present application is related to the following commonly assigned U.S. Patent Applications, which are all incorporated in their entirety herewith:
[0002] (1) Application entitled, “Functional Verification of Integrated Circuit Designs”, Ser. No.: 09/097,874, Filed: Jun. 15, 1998, now U.S. Pat. No.: 6,138,266, and is incorporated in its entirety herewith;
[0003] (2) Co-pending application entitled, “An Improved Functional Verification System”, Attorney Docket Number: THRS-0002, Serial Number; UNASSIGNED, Filed on even date herewith;
[0004] (3) Co-pending application entitled, “Tracing Different States Reached by a Signal in a Functional Verification System”, Attorney Docket Number: THRS-0005, Serial Number; UNASSIGNED, Filed on even date herewith;
[0005] (4) Co-pending application entitled, “Run-Time Controller in a Functional Verification System”, Attorney Docket Number: THRS-0006, Serial Number; UNASSIGNED, Filed on even date herewith; and
[0006] (5) Co-pending application entitled, “Functional Verification of Both Cycle-Based and Non-cycle based Designs”, Attorney Docket Number: THRS-0007, Serial Number; UNASSIGNED, Filed on even date herewith.