pyvsc
Classic API (@vsc.randobj)
Introduction
Quickstart Guide
PyVSC Data Types
PyVSC Constraints
PyVSC Coverage
PyVSC Methods
PyVSC Features
Solver Back-ends
Debug
API Reference
Dataclass API (vdc)
Overview
Randomizable Classes
Writing Constraints
Constraint Grammar Reference
Inline Constraints
Generic Constraints
Coverage
Documenting Classes with Sphinx
Porting from the Classic API
pyvsc
PyVSC Documentation
View page source
PyVSC Documentation
Contents:
Classic API (@vsc.randobj)
Introduction
What is PyVSC?
Documenting your classes
Contributors
Quickstart Guide
Installing PyVSC
A Simple Example
PyVSC Data Types
Scalar Standard-Width Attributes
Scalar Arbitrary-Width Attributes
Enum-type Attributes
Class-type Attributes
Accessing Attribute Values
List-type Attributes
PyVSC Constraints
Constraint Blocks
Expressions
Statements
Customizing Constraint Behavior
PyVSC Coverage
Covergroups
Coverpoints
Providing Coverage Data to Sample
Coverage API
Coverage Reports
Saving Coverage Data
Using Coverage Data
PyVSC Methods
Randomization Methods
Managing Random Stability
Weighted-Random Selection Methods
PyVSC Features
Solver Back-ends
Selecting a back-end
Available back-ends
How dv-solve decides
When dv-solve cannot solve a set
Soft constraints
Running a regression under both back-ends
Behavioral notes
Width and sign rules
Debug
Enabling Solve-Fail Debug
Capturing Source Information
API Reference
Domain-Specific Language API
Model API
Dataclass API (vdc)
Overview
Randomizable Classes
Field types
Field declarations
Arrays
Enums
Nested objects
Randomizing
Inheritance
Writing Constraints
Comparisons and arithmetic
Logic:
and
,
or
,
not
,
if
Sets:
in
Arrays
Soft constraints, distributions, ordering, uniqueness
Constants
Reusing constraints
What a constraint cannot contain
Constraint Grammar Reference
The rule
Literals and names
Arithmetic and bitwise operators
Logical operators
Comparisons
Set membership
Fields, arrays and reductions
Statements
Rejected constructs
Widths and signedness
Things to watch for
Not supported yet
Inline Constraints
The body is parsed, not run
Values from the caller
Rules that apply only inline
When the source cannot be read
Moving from the operator path
Generic Constraints
Referencing a generic
Boolean composition (PSS Example 136)
Parameterized generics
Value generics
Referencing in
randomize_with
Inheritance
Errors caught at class-definition time
Coverage
Coverpoints
Sampling inputs
Crosses
The randomize-and-sample loop
Documenting Classes with Sphinx
Enabling it
What is documented
Where the descriptions come from
Configuration
Per-class options
Inheritance
Classic classes
Exact counts and classic fields
Linking to members
Example
Porting from the Classic API
Equivalents
Differences to watch
Indices and tables