SynthWorks announces Methodology and Open-Source Packages for Constrained Random Tests in VHDL

SynthWorks announced its VHDL based constrained random and coverage driven random testbench methodology. At the heart of this methodology are packages for randomization and functional coverage that SynthWorks' has released as an open source download.

Constrained random testbenches create tests by successively randomizing sequences (transactions or groups of transactions) that are valid for a particular environment. This approach quickly generates test sequences saving test development time. It is particularly effective for designs where the diversity of transactions and sequences make it otherwise difficult to generate. Functional coverage counts what transactions occur, and hence, indicates when a test is done.
SynthWorks' Methodology
SynthWorks' constrained random methodology has been in use since 2006. This methodology allows you to add constrained random testing to your existing VHDL testbenches. There is no new language to learn and no throwing out your current testbench or testbench models.
SynthWorks' methodology marries randomization and functional coverage subprograms from the packages with VHDL programming constructs. Each test sequence is derived by randomly selecting either branches of code or values for operations. Randomization constraints are created using normal sequential coding techniques (such as nesting of case, if, loop, and assignment statements). Functional coverage counts which test cases are generated using subprograms (either custom or from the coverage package) or VHDL code. Functional coverage is stored in signals and can be used as randomization constraints to generate missing coverage items. SynthWorks has developed templates for common problems to accelerate test development.
Download Open Source Packages
The open source packages can be downloaded at: The download includes compilation instructions and slides showing how to do basic operations.
To learn the latest verification techniques using VHDL, including constrained and coverage driven randomization, functional coverage, transaction-based testing, bus functional modeling, self-checking, and data structures (linked-lists, scoreboards, memories), see SynthWorks' VHDL Testbenches and Verification class at: