Claims
- 1. A method of tracing different states reached by a signal in a functional verification system, said signal representing the output resulting from the evaluation of a combinatorial block, said combinatorial block being part of a target design of said functional verification system, said method comprising:
assigning a variable to said signal, wherein said variable contains sufficient number of values to indicate whether said signal has reached each possible state; receiving a present value for said signal, wherein said present value is generated by evaluating said combinatorial block; updating said variable to reflect that said signal has attained said present value; and repeating said receiving and said updating for each present value generated for said signal during functional verification, whereby said variable can be examined to determine the different states attained by said signal during functional verification.
- 2. The method of claim 1, wherein said variable can be examined to determine whether said signal has attained all possible states.
- 3. The method of claim 1, wherein all possible states comprise 0 and 1 for said signal, said variable comprising two bits, wherein one bit indicates whether said signal has attained a 0 state and another bit indicates whether said signal has attained a 1 state, wherein said two bits can be examined to determine whether said signal has attained 0 state, 1 state or both states.
- 4. The method of claim 3, further comprising:
initializing both of said bits to 0; setting said one bit to 1 if a present value of 0 is received for said signal; and setting said another bit to 1 if a present value of 1 is received for said signal, whereby a 1 value for both the bits indicates that said signal has attained both 0 and 1 values and a 0 value for both bits indicates that said signal has not been evaluated.
- 5. A tracing circuit to trace different states reached by a signal in a functional verification system, said signal representing the output resulting from the evaluation of a combinatorial block, said combinatorial block being part of a target design of said functional verification system, said tracing circuit comprising:
a seen states memory storing a variable related to said signal, wherein said variable contains sufficient number of values to indicate whether said signal has reached each possible state; and a trace controller receiving a present value for said signal, wherein said present value is generated by evaluating said combinatorial block, said trace controller updating said variable to reflect that said signal has attained said present value, said trace controller updating said variable for each present value generated for said signal during functional verification, whereby said variable can be examined to determine the different states attained by said signal during functional verification.
- 6. The tracing circuit of claim 5, wherein said variable can be examined to determine whether said signal has attained all possible states.
- 7. The tracing circuit of claim 5, wherein all possible states comprise 0 and 1 for said signal, said variable comprising two bits, wherein one bit indicates whether said signal has attained a 0 state and another bit indicates whether said signal has attained a 1 state, wherein said two bits can be examined to determine whether said signal has attained 0 state, 1 state or both states.
- 8. The tracing circuit of claim 7, wherein said both of said two bits are initialized to 0, said trace controller being to designed to set said one bit to 1 if a present value of 0 is received for said signal, said trace controller being designed to set said another bit to 1 if a present value of 1 is received for said signal, whereby a 1 value for both the bits indicates that said signal has attained both 0 and 1 values and a 0 value for both bits indicates that said signal has not been evaluated.
- 9. The tracing circuit of claim 5, wherein said target design is partitioned into a plurality of clusters, with each cluster containing a plurality of combinatorial blocks, the combinatorial blocks within a cluster being evaluated in parallel, said trace controller receiving a cluster identifier along with said present value for said signal, said trace controller storing said variable at a memory location having a memory address of said cluster identifier such that said trace controller can access said variable using said cluster identifier.
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, Ser. No.; UNASSIGNED, Filed on even date herewith;
[0004] (3) Co-pending application entitled, “Tracing the Change of State of a Signal in a Functional Verification System”, Attorney Docket Number: THRS-0003, Ser. No.; 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, Ser. No.; UNASSIGNED, Filed on even date herewith.