Background: AVIPs let you emulate and verify a Design Under Test (DUT) on a custom hardware platform (such as the Cadence Palladium Z3), thereby reducing your testing times compared to regular simulations. You can read more about them here.
Writing a testbench requires us to connect the AVIP interfaces to the corresponding DUT interfaces along with the sideband signals (such as clocks and resets); and hence doing it by hand for large DUTs is error prone and leads to wasted hours in debugging.
My automation framework lets users easily create basic testbenches for large ARM designs with standard protocol interfaces, and allows them to configure specific AVIPs they would like to attach to the DUT.
My work reduced testbench setup time of higher core count designs of the ARM Neoverse Compute Subsystem (CSS) V3 from over a month to less than a week.
I also got a chance to work on cutting-edge technologies in the EDA industry while boosting my skills in tracing issues across the low-level stack: right from analysing waveforms at the nanosecond timescale up to debugging C programs running on the emulated ARM cores.
| A | B | C | |
|---|---|---|---|
| 0 | 0 | 0 | <<< |
| 0 | 0 | 1 | <<< |
| 0 | 1 | 1 | <<< |
| 1 | 0 | 0 | <<< |
| 1 | 0 | 1 | <<< |
| 0 | 1 | 0 | <<< |
| 1 | 1 | 0 | <<< |
| 1 | 1 | 1 | <<< |
My favorite place on the web is Neocities.