Quantcast
Channel: Cadence Functional Verification
Viewing all articles
Browse latest Browse all 652

Applying Software-Driven Development Techniques to Testbench Development

$
0
0

Over the past couple of years there has been some interest in applying a software development technique called unit testing in the hardware development flow. One of the reasons is that unit tests allow customers to validate their testbench in isolation, enabling very fast and thorough tests. Some customers have developed their own framework to accomplish this testing. In the Incisive 13.2 release, Cadence has introduced this functionality with Specman/e to enable customers to apply the unit test approach to save long simulation times, since they can isolate functions and test them without actually running any simulation, thus improving the testbench quality and potentially reducing the debug time for testbench code more than 30%.

What are unit tests?

-          Simple and directed tests

-          Checks that a feature does something as expected (e.g. a parity calculation method returns the correct parity for a handful of values)

-          Created by the developer that develops/writes the source code

 

What are unit tests used for?

-          To check that the implementation of a small piece of code (e.g. a single method/function) is correct

Some customers may think that unit testing is an extra overhead, and there is little automation for creating test cases. So, why should they develop and use unit tests?

-          Customers can check the implementation of a method that normally takes many simulation cycles in no simulation time (e.g. a complex checking method which requires streams of input, output, and control data). in unit testing, you would provide all the input/output and control data, call the method, and check that is calculates the correct result

-          If other teams reuse code (and this happens a lot with verification code), they can check if the core testbench functions still work, or if something is broken

If you want some more details, have a look at this archived webinar - Testing the Testbench on the e-unit package and/or read the blog on Agile SOC ... Finally... A Reason For Me to Try Specman

Other references worthwhile reviewing are some articles and a unit test framework utility by AgileSOC

Happy testing,


-Hannes Froehlich


Viewing all articles
Browse latest Browse all 652

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>