Direct Tests

Verification engineers will first create something known as a verification plan that details every feature of the design required to be tested in RTL simulations and how each test will create independent scenarios that target a particular feature. For example, if there's a peripheral that needs its registers to be configured such that it starts an AXI bus transaction, then we would have different tests to configure those registers differently and achieve a good coverage. These are direct tests where each test does a particular task to accomplish something.

Randomized Tests

Complex designs have a lot of scenarios and many corner cases that are better verified by randomized tests and result in much less effort and time. Taking the same example from above, a test will configure the peripheral registers with random values every time the test is run with a different seed thereby achieving different scenarios for every run. This will ensure that we hit corner cases and uncover any hidden bugs.

Login to your free account to read more ...

Was this article helpful ?