| 5 min read

Not your Average UVM Testbench Generator – Unveiling at DAC 2019

By Louie De Luna, Agnisys Chief Product Evangelist

Being so immersed in the work and technology, it’s easy to forget where we are in this technological revolution. Many of us underestimated the internet's impact until we could hold it in our hands, navigating through seemingly boundless information. In the last decade, the automotive industry transitioned its mechanical systems to electronics, incorporating Advanced Driving Assistance Systems (ADAS) for passenger and vehicle safety. Simultaneously, home automation reshaped daily life through the integration of Automatic Speech Recognition (ASR) and low-power wireless technology.

The upcoming decade brings excitement with AI-driven SoCs impacting lives and industries. Anticipate rising design challenges and costs, prompting EDA's preparation using Accellera standards like UVM and PSS.

As a company focused on the design/verification of critical aspects of SoCs, we understand our place and know our role. Our goal is two-fold: automate verification and minimize functional flaws. At this year’s Design Automation Conference (DAC) in Las Vegas, we will showcase our most innovative solution yet which is built on top of our core code-generation technology. We call it Specta-AV™,  a massive UVM testbench generator that automates verification and minimizes functional flaws that originate from errors or changes in the spec.

UVM has been good and useful to us and will continue to do so in the coming decade. But UVM is notorious for two main problems; its steep learning curve and the staggering amount of UVM code required to verify a full SoC. Verifying a custom IP with one master and slave agent requires tens of thousands of lines of UVM code. Verifying a full SoC requires multi-million lines of UVM code (in addition to the array of standard VIPs). Automating the process of creating UVM code is critical, and is a great solution to these two problems.

With Specta-AV the generation of the complete UVM testbench architecture including sequence items, configurations, checkers, coverage, and even the plumbing within UVM are all automated – and not just for registers but also for custom IPs! Its core engine comes from our flagship product IDesignSpec™ which can parse hierarchical register specifications in IP-XACT, SystemRDL, Word, Excel, or YAML, and generate register RTL, UVM model, and C Header. Specta-AV generates code from a golden specification which can synchronize all design and verification activities. Changes in the specification only require re-generation of the code which prevents any disconnect between SoC groups that can be a culprit of SoC functional flaws and project delays.

Generated UVM Testbench Agnisys Specta-AV

The tool flow consists of three main basic parts:

  1. The user specifies register and memory map definitions, functional and test sequences for custom IPs, UVM configurations, checkers, and interesting coverage.
  2. The user specifies commercial protocol VIPs and instantiates the DUT module.
  3. The user generates the following code:
  • Register RTL, UVM model, C Headers, HTML
  • Bus Interface Logic: AXI, APB, AHB, Proprietary
  • UVM Environment, Sequences (C, SV-UVM, SystemC, PSS), Checkers, CoverGroups, Assertions
  • Simulation Makefiles
  • C-Based Tests for Firmware
  • Post-Silicon Validation Tests

Additionally, we’re also presenting our latest complementary solutions at DAC that automate verification and minimize SoC functional flaws, and they are as follows:

Cloud-Based Code Generator for Registers and Sequences

Yes! We are taking IDS NextGen™ to the cloud.  This will revolutionize how the files are managed: no hassles in managing local files, no issues with storage, and no local software installation required for the product.

IDS NextGen handles individual IP to sub-system to SoC level and is compatible with registers specs in Word, Excel, IP-XACT, RALF, CSV, or System RDL.  It generates design and verification code for not just registers but also sequences in a single integrated environment compatible with Windows, Linux, or MAC. It reduces the creation of sequences by having the user define sequences in pseudo-code and generate the sequence code in either SystemVerilog or C.

IDS NextGen in the cloud will enable the teams to collaborate online with secure cloud servers from AWS™ or Azure™. The team can access the data accessible from anywhere, from any device.

Support for RISC-V TileLink Bus Protocol

New generation SoCs such as those for machine learning applications require new types of processor architecture, and the open-source RISC-V ISA is picking up a lot of steam. Moore’s Law has ended and standard CPUs are not able to meet the performance and power requirements of new-generation SoCs. Domain-specific architectures with the help of open-source concepts will play a critical role in pushing innovations forward.  TileLink is an open-source bus protocol with low latency and cache-coherent shared memory designed for RISC-V, and it’s now supported in IDesignSpec.

Sequences in Python or NLP-based Sequence Detection

We now have come to a point where we can pick the sequence of operations from a functional specification and create meaningful code from it.

Many power users of our sequence generator tool ISequenceSpec™ wanted to enter sequences in simple text independent of other tools (Word, Excel, or Calc). They wanted their sequences easy and simple to make with a quick turnaround without any applications consuming too much CPU and memory resources. The sequences are entered as pseudo-codes, and from there, users can re-target into SystemVerilog for simulation, C for firmware tests, and CSV for post-silicon validation tests.

 In an ideal world, some of our users don’t want to capture sequences in pseudo-code (even though it’s really easy!). Their biggest pain is to understand the spec in order to create the required sequences. They want a Neural Language Processor (NLP) algorithm to parse the spec and auto-generate the sequences.  This is really a hard problem to solve, but we have started the initial phase. Using the NLP algorithm we can parse a spec in Word and generate sequences in C or SystemVerilog.

Vertical Reuse of Registers and Sequences

Register design and verification at the IP level can be straightforward, but painful challenges start to creep up as the IPs are integrated into the subsystem and the final system. In this presentation, we will discuss various verification and firmware use cases that are common. We will discuss the underlying challenges and demonstrate best practices on how to reuse the auto-generated register RTL, UVM model, UVM test environment, and configuration/test sequences at the subsystem and final system. Most importantly, we will show specific features in IDesignSpec and ISequenceSpec that enable vertical reuse.

Register Design for Low-Power

In order for IoT devices to become as ubiquitous as we have envisioned it to be, low power is one of the main requirements. IDesignSpec now supports the following features for low-power RTL design:

  • Clock Gating is the methodology by which the clock is turned off when it is not required so that dynamic power consumption is reduced. It saves power by adding more logic to the circuit to prune the tree. This pruning disables portions of the circuitry so that flip-flops in them do not have to switch states.
  • Hierarchical Decode: Regarding the decoding of addresses for IP blocks, hierarchical decode involves dividing address bits into two parts. The MSB part decodes the block, and once selected, the LSB part decodes the register. This affects the synthesis and place-and-routing phases. Address decoding occurs at a single point, and select lines choose the blocks, reducing routing congestion and power consumption.
  • Low Power Optimization: IDesignSpec can generate low-power optimized code by eliminating the assignment of the same value at every clock edge or eliminating write operations altogether.

As the EDA community braces for the upcoming design/verification challenges brought upon by new applications in AI, autonomous cars, 5G, IoT, and cloud computing – as a company, it’s good to know our place and focus. It’s good to know that we are contributing value and where we stand during this technological revolution.

I invite you to come visit us at DAC at Booth #812 and see our presentations all throughout the day. Don’t forget to visit our coffee bar while you’re there and take our Design/Verification Quiz to win a wireless charger -we’re giving six wireless chargers this year. See you in Vegas!

ic designer's guide to automating design through implementation of semiconductors