The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Apr. 22, 2003
Filed:
Jun. 24, 1999
Won Sub Kim, Fremont, CA (US);
Mary Lynn Meyer, Mountain View, CA (US);
Daniel Marcos Chapiro, Palo Alto, CA (US);
Synopsys, Inc., Mountain View, CA (US);
Abstract
The present invention adds capabilities to a Hardware Verification Language (HVL) which facilitate the generation of random test data. Sources of random numbers are easily produced by simply adding a randomness attribute to a variable declaration of a class definition. Such variables are called random variables. A “randomize” method call may be made to an instance of the class definition to produce random values for each random variable. The values assigned to random variables are controlled using constraint blocks, which are part of the class definition. A constraint block is comprised of constraint expressions. The constraint expressions may impose a linear ordering in which random variable values must be assigned and this dependency is expressed by directed acyclic graphs (DAGs). The constraint expressions constraining each random variable are converted into ranges of permissible values from which a value is chosen at random. Rather than selecting a value for each random variable from within one of its ranges, as done for the randomize method, each boundary method call sequentially selects a combination of boundary values, for each random variable, from each random variable's set of ranges. By selecting a boundary value for each random variable of the instance, in a coordinated fashion, all combinations of boundary values can be produced through successive calls to the boundary function. As with the randomize method, since random variables may depend upon each other, the selection of a boundary value for one random variable may change the selection of boundary values available for other random variables.