Patents by Inventor William K. Lam

William K. Lam has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7475369
    Abstract: Techniques are disclosed for automatically determining whether a potential constraint set to be applied to a portion of a circuit are overconstrained. An environment circuit supplies inputs to the circuit portion. Embodiments of the invention recognize that if the environment circuit produces a set of outputs that contain a pattern that is not present in the potential constraint set, then the potential constraint set is overconstrained. A verification tool establishes the properties for the environmental circuit based on the potential constraint set. If the verification tool determines that the outputs produced by the environment circuit conflict with the properties of the environment circuit, then the verification tool concludes that the potential constraint set is overconstrained, because the environment circuit produces a pattern that is not present in the potential constraint set.
    Type: Grant
    Filed: March 18, 2005
    Date of Patent: January 6, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: William K. Lam, Shrenik M. Mehta
  • Patent number: 7454726
    Abstract: A design of an integrated circuit is first verified using directed and/or random test cases. For a cover directive not covered by the directed and/or random test cases, a property is created, where a simulation trace that causes the property to fail covers the cover directive. Thereafter, the property is evaluated, and dependent on the evaluation, the simulation trace is dumped and stored for subsequent exercising of the cover directive.
    Type: Grant
    Filed: February 13, 2006
    Date of Patent: November 18, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: William K. Lam, Yick Kei Wong, Harihara Ganesan
  • Patent number: 7447621
    Abstract: A method for providing verification for a simulation design, including obtaining the simulation design comprising a programming language interface system call, encoding a target of the programming language interface system call into the simulation design to obtain a first modified simulation design, modifying the programming language interface system call to reference the target in the first modified simulation design to obtain a second modified simulation design, and verifying the second modified simulation design using a simulation testbench.
    Type: Grant
    Filed: September 29, 2003
    Date of Patent: November 4, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: William K. Lam, Mohamed Soufi, Victor A. Chang
  • Patent number: 7424418
    Abstract: A method for providing verification for a first simulation image involves removing nodes from the first simulation image to produce an optimized image and an optimized nodes image, simulating the optimized image, invoking the optimized nodes image if debugging is selected, reconstructing a second simulation image using the optimized image and the optimized nodes image, simulating the second simulation image to gather simulation data, and debugging the first simulation image using simulation data.
    Type: Grant
    Filed: December 31, 2003
    Date of Patent: September 9, 2008
    Assignee: Sun Microsystems, inc.
    Inventors: Mohamed Soufi, William K. Lam
  • Patent number: 7246053
    Abstract: A method for transforming a behavioral specification involves converting the behavioral specification into a diagram representation, converting a delay from the diagram representation if the behavioral specification comprises a delay, generating a compliant cycle diagram from the diagram representation, and deriving a cycle equivalent behavioral specification from the compliant cycle diagram.
    Type: Grant
    Filed: August 2, 2002
    Date of Patent: July 17, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Mohamed Soufi, William K. Lam, Victor A. Chang
  • Patent number: 7236917
    Abstract: A system for tracing a simulation design involves an encoded assertion asserting a value of a node of the simulation design at a point in a simulation, a fanin cone detection facility configured to obtain a fanin cone for the encoded assertion, a waveform trace facility configured to obtain waveform data including a history of signal values for the node, and a simulation toolkit configured to obtain node data using the fanin cone and the waveform data.
    Type: Grant
    Filed: October 31, 2003
    Date of Patent: June 26, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Nasser Nouri, William K. Lam
  • Patent number: 7051303
    Abstract: A method for providing verification for a simulation design involves analyzing a simulation design using a testbench comprising a rapid bug detection tool, and if a bug is detected, adding a bug isolation tool to the testbench, and isolating and eliminating the bug using the testbench comprising the bug isolation tool.
    Type: Grant
    Filed: December 29, 2003
    Date of Patent: May 23, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: William K. Lam, Mohamed Soufi
  • Patent number: 7017150
    Abstract: The invention provides a method for detecting and isolating software bugs and generating a minimal set of stimuli to reproduce the bugs. The present invention utilizes a recursive algorithm to compare the output of successively smaller software blocks of a program in development to a verified output sample. The smallest software blocks which are found to contain a bug are isolated. For each of these isolated blocks, the smallest input vector is determined such that the application of this vector to the block expresses the bug. The present invention utilizes a separate recursive algorithm to determine these minimal vectors.
    Type: Grant
    Filed: August 29, 2001
    Date of Patent: March 21, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: William K. Lam, Victor Chang
  • Patent number: 6988266
    Abstract: A system and method for processing a variable looping statement into a constant looping statement to enable loop unrolling. A lower bound and an upper bound of the loop index within the variable looping statement are determined. A constant looping statement is then formed using the lower bound and upper bound to define a range over which the loop index varies within the constant looping statement. The constant looping statement further includes a conditional statement that reflects conditions in the initial expression and/or the exit expression of the variable looping statement. The conditional statement controls execution of the body of the generated constant looping statement, which includes the body from the original variable looping statement. Loop unrolling may then be performed on the generated constant looping statement.
    Type: Grant
    Filed: May 8, 2001
    Date of Patent: January 17, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: William K. Lam, David S. Allison
  • Patent number: 6775810
    Abstract: A method for dynamically customizing object code for simulation includes obtaining a statically generated object (SGO) and a first test vector, segmenting the SGO with a marker node to generate a segmented SGO comprising a plurality of SGO segments, generating a first simulation profile using the segmented SGO and the first test vector, locating a first unexercised segment of the plurality of SGO segments using the first simulation profile, and generating a first reduced SGO by removing the first unexercised segment from the segmented SGO.
    Type: Grant
    Filed: October 8, 2002
    Date of Patent: August 10, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Victor A. Chang, William K. Lam, Deepankar Bairagi, Mohamed Soufi
  • Publication number: 20040068701
    Abstract: A method for dynamically customizing object code for simulation includes obtaining a statically generated object (SGO) and a first test vector, segmenting the SGO with a marker node to generate a segmented SGO comprising a plurality of SGO segments, generating a first simulation profile using the segmented SGO and the first test vector, locating a first unexercised segment of the plurality of SGO segments using the first simulation profile, and generating a first reduced SGO by removing the first unexercised segment from the segmented SGO.
    Type: Application
    Filed: October 8, 2002
    Publication date: April 8, 2004
    Inventors: Victor A. Chang, William K. Lam, Deepankar Bairagi, Mohamed Soufi
  • Publication number: 20040025073
    Abstract: A method for transforming a behavioral specification involves converting the behavioral specification into a diagram representation, converting a delay from the diagram representation if the behavioral specification comprises a delay, generating a compliant cycle diagram from the diagram representation, and deriving a cycle equivalent behavioral specification from the compliant cycle diagram.
    Type: Application
    Filed: August 2, 2002
    Publication date: February 5, 2004
    Inventors: Mohamed Soufi, William K. Lam, Victor A. Chang
  • Publication number: 20040015915
    Abstract: A system and method for processing a variable looping statement into a constant looping statement to enable loop unrolling. A lower bound and an upper bound of the loop index within the variable looping statement are determined. A constant looping statement is then formed using the lower bound and upper bound to define a range over which the loop index varies within the constant looping statement. The constant looping statement further includes a conditional statement that reflects conditions in the initial expression and/or the exit expression of the variable looping statement. The conditional statement controls execution of the body of the generated constant looping statement, which includes the body from the original variable looping statement. Loop unrolling may then be performed on the generated constant looping statement.
    Type: Application
    Filed: May 8, 2001
    Publication date: January 22, 2004
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: William K. Lam, David S. Allison
  • Patent number: 6678868
    Abstract: One embodiment of the present invention provides a system that facilitates representing a shape within a layout of an integrated circuit using a Boolean expression. The system operates by first receiving a representation of the shape and then converting the representation of the shape into a Boolean expression that is formed using a Boolean coordinate system expressed in a two-dimensional Gray code. The system then performs operations on the shape by performing Boolean operations on the Boolean expression for the shape.
    Type: Grant
    Filed: April 17, 2002
    Date of Patent: January 13, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: William K. Lam
  • Publication number: 20030200512
    Abstract: One embodiment of the present invention provides a system that facilitates representing a shape within a layout of an integrated circuit using a Boolean expression. The system operates by first receiving a representation of the shape and then converting the representation of the shape into a Boolean expression that is formed using a Boolean coordinate system expressed in a two-dimensional Gray code. The system then performs operations on the shape by performing Boolean operations on the Boolean expression for the shape.
    Type: Application
    Filed: April 17, 2002
    Publication date: October 23, 2003
    Inventor: William K. Lam
  • Publication number: 20030093765
    Abstract: Based upon a circuit design, a system generates a plurality of seed circuits. An initial circuit constraint is used to generate a plurality of constraints sets, one for each seed circuit. The plurality of seed circuits and the corresponding constraint sets are distributed to a plurality of processors. In parallel, the processors execute a design software application to generate a plurality of candidate circuits based on the constraints and the seed circuits. The best candidate of the plurality of candidate circuits may be used for additional iterations in the design process.
    Type: Application
    Filed: November 13, 2001
    Publication date: May 15, 2003
    Inventors: William K. Lam, Liang Chen
  • Publication number: 20030051232
    Abstract: The invention provides a method for detecting and isolating software bugs and generating a minimal set of stimuli to reproduce the bugs. The present invention utilizes a recursive algorithm to compare the output of successively smaller software blocks of a program in development to a verified output sample. The smallest software blocks which are found to contain a bug are isolated. For each of these isolated blocks, the smallest input vector is determined such that the application of this vector to the block expresses the bug. The present invention utilizes a separate recursive algorithm to determine these minimal vectors.
    Type: Application
    Filed: August 29, 2001
    Publication date: March 13, 2003
    Inventors: William K. Lam, Victor Chang
  • Publication number: 20010020290
    Abstract: Based upon a circuit design, a system generates a plurality of subdesigns. An initial circuit constraint is used to generate a plurality of constraints, one for each subdesign. The plurality of subdesigns and the corresponding constraints are distributed to a plurality of processors. In parallel, the processors execute a design software application to generate a plurality of candidate circuits based on the constraints and the subdesigns. The best candidate of the plurality of candidate circuits may be used for additional iterations in the design process.
    Type: Application
    Filed: June 19, 1998
    Publication date: September 6, 2001
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: WILLIAM K LAM, LIANG CHEN