Source: Part One: Tech Design Forum, Part Two: Tech Design Forum
By Lauro Rizzatti and Gabriele Pulini | May 01, 2019
Hardware emulation can be deployed in two modes.
- In-circuit-emulation (ICE): This consists of testing the design-under-test (DUT) with real traffic in a physical environment.
- Virtual mode: The DUT is here verified via a test environment modeled in software.
The first part of this article describes the advantages of the virtual mode over ICE. The second details a verification strategy, Veloce VirtuaLAB, built on top of the virtual mode. Two test cases will then show the benefits of Veloce VirtuaLAB.
Emulation in virtual mode
The virtual mode boosts emulation productivity in several ways. It simplifies the emulator’s deployment, eases design debug, increases debug accuracy, expands verification possibilities beyond testing a DUT with real-world traffic, and extends utilization to multiple concurrent users through remote access.
Is virtual mode emulation melting away the advantages of ICE?
In ICE mode, the emulator’s deployment needs the insertion of speed adapters and cabling/connectors between the target system and the emulator to accommodate the fast clock rate of the target system and the comparatively slow clock rate of the emulator. The assembly creates a series of problems with installation, use, and system reliability.
The target system in virtual mode consists of software code running in a host workstation connected to the emulator via a PCIe card.
Initializing the DUT in virtual mode is much easier than for ICE. The lack of physical dependencies because of the speed adapter (such as hardware reset, cabling/connectors, noise, and RF interference) simplifies the process.
Easier design debug
Design debug in ICE mode is constrained by poor design visibility, which is limited to small subsets of internal signals over short time spans. When tracing a bug, constraints make the user perform multiple runs to guess the signals to monitor in given time windows.
It is difficult to reproduce debug conditions in ICE mode because the physical environment behaves in a random, non-deterministic way that leads to non-repetitive runs. It may happen that in two consecutive runs the bug appears and disappears, leading to inconclusive results.
Design debug in virtual mode is far easier because visibility extends to the entire design space without limits in time.
More to the point, the environment in virtual mode is deterministic. This allows full control of the DUT by the software testbed. By making multiple runs repetitive, it removes the uncertainty and confusion from bug tracing.
More accurate design debug
In ICE mode, the test environment and DUT operate in two different time domains connected by a speed adapter. This leads to errors and inaccuracies because what is being measured is physically separated from where it is being measured.
By contrast, the test environment and DUT in virtual mode run in a single time domain ensuring that what is being measured happens where it is measured.
More verification tasks
Early hardware emulation was focused on the ability to perform functional verification of larger CPU/Graphics designs with real traffic. At the time, ICE mode was the only deployment mode available.
Virtual mode revealed more verification opportunities. These include the ability to control the DUT, start/stop and repeat a run consistently, retrieve the activity of all internal signals and show them in waveforms. They became the foundation for new verification tasks.
The tasks include:
- Hardware debugging: Today’s emulators support the leading methodologies used by verification engineers, such Universal Verification Methodology (UVM), SystemVerilog Assertions (SVAs), and forms of functional coverage.
- Hardware/software integration: Hardware emulation ensures that embedded system software works as intended with the hardware. Users can trace a software bug in the hardware and, conversely, a hardware bug that affects the software.
- Low-power verification: By controlling power islands and related issues, such as retention, corruption, isolation, and level shifting (as defined in the unified power format (UPF)), a thorough verification of the power domain can be performed.
- Power estimation: Emulation can track switching activity at the functional level and generate a database for use with power estimation tools, including the creation of a ‘power histogram’.
- Performance characterization: Emulation, while not timing accurate, is cycle-accurate and can be used to characterize design performance by counting the number of cycles required to complete a specific function or task.
Multi-user and remote access
It is theoretically possible to have multiple users in ICE mode, but in practice the setup prevents resource sharing among users because physical connections limit or lock out emulation partitions. The limited number of I/O channels reduces communication bandwidth. So in reality multiple users is not a pragmatically viable idea.
Remote access is also possible in ICE mode, but again not practical. It requires on-site supervision to serve users and change the ICE target environment to meet their needs 24/7 from anywhere in the world.
In virtual mode, emulation resources are efficiently shared with no physical constraints so user configurations can be changed with software, In addition, I/O bandwidth in co-modeling is rather large, and multiple users can access the emulator remotely without a single supervisor in the loop.
The virtual mode relocates the emulator in a datacenter, eliminating downtime caused by cable dislodgement, pin breakage and delays until local staff can swap cables to provide access for various external hardware target systems. Virtual mode transforms the emulator into an enterprise resource, sharable with a reproducible environment and more reliable with higher uptime.
In conclusion, the virtual mode outperforms the ICE mode in many respects at the conceptual level, but requires the creation of the stimulus or testbench that the physical mode gets via real-world traffic.
In Part Two, we will look at how these various advantages can be exploited in actual verification scenarios.
By Lauro Rizzatti and Gabriele Pulini | May 14, 2019
Gabriele Pulini is a product marketing manager in the Emulation Division of Mentor. Dr Lauro Rizzatti is a verification consultant and industry expert on hardware emulation.
This two-part article describes the advantages achievable in deploying a hardware emulation platform in virtual mode that boosts the design verification productivity by an order of magnitude versus in-circuit-emulation (ICE) mode.
The first part of this series detailed the virtual mode and its advantages over traditional in-circuit emulation (ICE). This second part describes an implementation called Veloce VirtuaLAB that increases your return-on-investment (ROI) from an emulation platform used in virtual mode.
Currently, all hardware emulation suppliers support the virtual mode and capitalize on the benefits discussed in Part 1 of this two-part series.
The Mentor Veloce VirtualLAB technique arguably goes a step further. It encapsulates an entire virtual test environment that can be customized for specific applications as a replacement for an equivalent physical testbench.
Veloce VirtuaLAB replaces hardware models with accurate virtual peripherals, such as software models consisting of pre-validated IP that process target hardware protocols in software. The virtual setup is functionally equivalent to that for a physical lab, but the process happens in software that is controlled by the host workstation. Virtual models can be connected or disconnected in software, and can be configured to serve the specific DUT instead of connecting different pieces of hardware with cables as required by ICE.
This approach offers all the benefits of the virtual mode and adds an embedded testbench in the form of a target OS, drivers and applications running on a virtual machine on the host workstation.
While ICE supports a handful of engineers per emulator, Veloce VirtuaLAB provides access to hundreds, making much wider use of a valuable resource.
Let’s look at how Veloce VirtuaLAB can be applied to three illustrative use cases:
- Ethernet for networking applications
- HDMI for video/audio applications
- PCIe for PC interface applications
VirtuaLAB Ethernet for networking applications
The proliferation of the Internet of Things (IoT) has boosted demand for more powerful Ethernet switches with designs reaching into the thousands of ports and bandwidths around 400GPS.
In this example, Veloce VirtuaLAB Ethernet was used to verify an Ethernet switch design that included a 128-port interface and a variable bandwidth of 1/10/25/40/50/100/120/200/400 Gbps. The SoC size reached 700-million ASIC-equivalent gates.
Emulating the design in ICE mode would have required 128 Ethernet testers and 128 speed adapters, making the testing setup massive, messy, complex, unreliable and costly (Figure 1).
With Veloce VirtuaLAB Ethernet, Ethernet testers are modeled in software running on a Linux workstation connected to the emulator. The software model is an accurate representation of the physical tester, based on proven implementation IP.
This virtual tester includes an Ethernet Packet Generator and Monitor (EPGM) with the ability to configure GMII, XGMII, XLGMII, CGMII, CXGMII, CCMII and CDMII interfaces for 1G, 10G, 25G, 40G, 50G, 100G, 120G, 200G and 400G respectively (Figure 2).
Multiple Veloce VirtuaLAB instances can be bundled together across multiple workstations to support large port-count configurations using High Speed Link (HSL) cards to connect co-model channels from workstations to the emulator. This tightly integrated transport mechanism is tuned for wall clock performance and transparent to the testbench. Data plane emulation throughput scales linearly with the port count because of this parallel runtime and debug architecture.
The Veloce VirtuaLAB Ethernet aims to provide a fast, accurate and easy-to-use functional verification solution to bring complex Ethernet SoC designs to market on schedule. It provides a software-controlled environment for generating, transmitting and analyzing Ethernet packets to test Ethernet designs mapped inside an emulation system. It performs off-line analysis of the traffic, provides statistics, and supports several other fuctions.
Reconfiguring the virtual tester to perform various functions is done through remote access to a workstation, a stable and reliable piece of equipment less costly than a complex Ethernet tester with equivalent functionality. It has the ability to support multiple users concurrently in a large software development team.
Veloce VirtuaLAB HDMI for Video/Audio Applications
The High-Definition Multimedia Interface (HDMI) is a digital audio/video protocol. It transmits uncompressed video data and compressed or uncompressed digital audio data from an HDMI-compliant source device (e.g., a display controller) to a compatible computer monitor (e.g., video projector, digital television, or digital audio device).
Several versions of HDMI have been deployed since its initial release in 2003. Each version improved audio and video capacity, performance, resolution and color spaces, and newer versions added 4K, 3D, Ethernet data connection, and Consumer Electronics Control (CEC) extensions. The current 2.1 version is one of the most complex interface standards.
The Veloce VirtuaLAB HDMI is aimed at verifying advanced video/audio designs. It consists of two parts, a generator and a receiver.
The first part generates thousands of video/audio HDMI frames from multimedia files (e.g., avi, tiff, bmp, etc.) compliant with the HDMI 2.0 standard, and at resolution of up to 4K60fps with RGB 4:4:4 color space. This stream is directly fed into the DUT sitting in the emulator and exercises the video/audio processing of a pre-silicon design. The frame generation is fully automatic, saving on time-consuming manual work.
The second part captures the DUT’s output and feeds it into a graphical HDMI analyzer to verify the correctness of the multimedia output, providing quick feedback on the quality of the images.
The speed of emulation ensures that streams of thousands of 4K frames (input and output) are processed in an acceptable time.
Veloce VirtuaLAB PCIe for PC Interface Applications
On the emulator side, a virtual PCIe PHY that is compatible with the physical PCIe PHY makes switching between the two straightforward, easy and safe. A Veloce Root Port model communicates with a virtual machine (e.g., a Quick EMUlator) running on a server hosting a Linux OS, via a PCIe transactor.
The VirtuaLAB PCIe enables applications to interact with the emulated DUT as if it were real silicon on the testbench.
VirtuaLAB includes a dedicated protocol analyzer. The protocol analyzer use mode is familiar to the designer community. The analyzer shown in Figure 5 disassembles all Data Link Layer Packets (DLLP) and Transaction Layer Packets (TLP), and supports many other statistical and tracing capabilities. A detailed GUI front end organizes this information into a single utility that has access across the entire PCIe stack. The analyzer is coupled directly to the VM PCIe stack to support extremely fast time-to-visibility (TTV) on all trace and analysis.
VirtuaLAB PCIe provides 100% visibility into all transactions between the host and the emulator.
VirtuaLAB PCIe enables development of software and drivers in parallel with the hardware. software and hardware architectures can be co-verified and confirmed early in the development cycle, requiring less re-coding. Functional software APIs can be tested using VirtuaLAB PCIe.
VirtuaLAB PCIe can be used in pre and post-silicon to reduce the development and maintenance load on the hardware and software teams.
The deployment of an emulation platform in virtual mode simplifies deployment, eases debug, improves debug accuracy, creates new applications for emulation, and broadens access to multiple concurrent users through remote access. Ultimately, the ability to move the emulator to the data center provides such an improvement in ROI that the virtual mode is increasingly replacing ICE.
The advantages of the virtual mode and the specific benefits offered by Veloce VirtuaLAB have boosted emulation platform productivity by an order of magnitude, enabling more test on shorter schedules. All this also helps to avoid silicon re-spins and reduce risk.