There are many reasons why hardware-based emulation is a “must have” for an effective verification flow. Increased complexity, protocols, embedded software, power and verification at the system level all drive the need for the kind of performance, capacity, and “shift-left” methodology that only emulation delivers.
But this growing need for emulation is still met with some resistance by management and verification teams primarily because some regard emulation as an expensive and hard to use resource. What is at the heart of these perceptions, and how can an emulation job management strategy address these misconceptions?
OVERCOMING RESISTANCE TO EMULATION
Buying an emulator is an investment in equipment that solves a large scale problem. It’s a complex piece of hardware that doesn’t come cheap. The price of the ticket, though, in no way equates to the value that emulation delivers. Quite the contrary, the value of an emulator-based flow is immeasurable. One of the critical pieces of the buying decision is how well the emulator is utilized. Can it be used 100 percent of the time, 24/7, by a worldwide engineering workforce where everyone is efficiently supported?
Hard To Use
The term hard to use is relative. Most verification engineers, with some guidance, can bring up an emulator with a minimum amount of effort. This is especially true when an emulator is being used in a virtual mode, in a data center implementation. These days, there are also many resources to help the uninitiated verification engineer use emulation. Even though emulator vendors provide a vast array of resources to help bring an emulator to a functional state, customers demand easy and transparent access to emulation with minimal human involvement.
EMULATION JOB MANAGEMENT STRATEGY — HOW DOES IT WORK?
Maximizing Emulator Use
There are several ways that companies make sure their emulation resources are fully utilized. One is to provide access to verification teams worldwide, 24/7. This starts with making an emulator a data center resource. Put bluntly, every second that the emulation technology is not actively running a test scenario represents both a drag on time-to-market and a waste of dollars invested in the solution. As chip architectures have grown in complexity, and as expertise and testing teams have spread across multiple countries and time zones, it has become ever harder to ensure the optimal sharing of central computing resources—which potentially leads to more idle periods and the corresponding wasted investment. Having emulation resources in the data center is the first step to maximizing emulator use.
The second is to understand that job scheduling software is crucial for emulator utilization. The key to job scheduling is defined in two parts. The first part is automation. Just like any hardware scheduling software, a level of automation is expected that takes a significant portion of the effort off the user. The second part is priority-based control of the automated system. It is essential that verification managers be able to respond intuitively to changing priorities by actively modifying the criteria for jobs in the queue in favor of time-critical, high-importance verification tasks. Thus the tools used for job scheduling have to be flexible enough so that a CAD manager can adjust the constraints provided by the user. These user constraints fall into three main categories: job priority, design size (i.e., what resources are required), and how long it takes to run the design. The ability to interactively control emulation scheduling allows the CAD manager to take into consideration all the jobs that are running on the emulator and make adjustments to maximize up-time.
Figure 1. Flexible job management makes the most efficient use of emulator resources
Such a solution allows the lab manager to schedule a job on the emulator based on the priority of the job, how critical the job is, and whether there are alternative verification solutions, such as a simulation environment, that can finish the job within the required completion window. If necessary, the lab manager can use these controls to override user constraints to make sure jobs get access to the right resource.
The ability to view and monitor how verification resources are being used is essential to this solution. Managers need live data, based on emulation utilization, to make informed decisions on what’s going on. For example, project managers can make decisions as to whether they need more emulation capacity or whether they can spread out or reassign verification projects to balance emulation utilization. As well, often companies provide services internally, and they can use this data to calculate what to charge different divisions or teams based on their utilization of the emulation resources.
Make It Easy
Giving the CAD or verification managers these tools also gives the emulation users what they want: an emulation platform that is easier to use. This solution allows users to simply submit a job, input the important constraints, and leave it to the tools to determine the resources assigned to this job. It is also important that the job management tool has a complete view of current jobs and jobs in the queue to assign resources to a particular job in a way that the other jobs in the pipeline can be also executed most efficiently and according to their constraints. The bottom line is that the user submits their job with the constraints and knows the job will be completed as expected.
THE IMPORTANCE OF SYSTEM FLEXIBILITY
System flexibility is also very important. If an emulation platform doesn’t have flexibility, it does not matter how smart the scheduling software is; there will always be inefficiencies, idle cycles, or idle hardware. The Veloce® Enterprise Server (ES) App offers distinctive scheduling flexibility capabilities that optimize emulation use and support flexible resource sharing with no extra work on the user’s part.
A unique Veloce ES App feature lets the system dynamically suspend, resume, and relocate projects running on the Veloce emulation platform in order to service large or high priority jobs. Suspend and resume substantially increases emulator utilization as advanced blocking of resources is not needed. In other words, the Veloce ES App enables the scheduling of low priority jobs without sacrificing performance or capacity for higher priority jobs. Typically, jobs immediately go on the emulator if resources are available to run them. When a high priority job needs to run immediately, the Veloce ES App saves the entire state space of the job currently running on the emulator and suspends it to run the higher priority job. When the high-priority job is completed, Veloce resumes the suspended job from the exact state space where it was stopped, so nothing is lost from that suspended run.
Figure 2. Suspend-resume substantially increases emulator utilization
The relocate capability complements suspend and resume by transparently reassigning a suspended job to different advanced verification board (AVB) in the same emulator or to a different emulator in the data center. And the AVBs used for a particular job do not have to be contiguous. This gives users the flexibility to either resume a suspended job on the same emulation hardware or relocate the verification run to similar hardware that is immediately available. The capability to redistribute jobs provides optimum scheduling flexibility and maximum system availability. The suspend-resume-relocate feature is a testbench-agnostic capability, fully handled by the Veloce ES App, so no additional work is needed on the user’s part.
Suspend-resume-relocate allows the emulator to be used to the fullest possible extent. High priority jobs get serviced immediately, and managers do not have to worry about reserving emulator resources for high priority and time critical jobs. This feature is critical for running a scheduled big job by temporarily suspending several smaller jobs after the bigger job has waited in the queue for a specified amount of time. Ultimately, there is no loss of emulation time and verification productivity.
All this automated job scheduling and built-in flexibility isn’t any good if the user does not have a very high degree of confidence that they will get results when they need them. For the user, it is very important that when a job is put into the queue with the constraints, they know they will get a response back. The Veloce ES App provides an affirmation that a resource has been found, and the emulator will run the job. Conversely, it informs the user when a job cannot be run with the constraints given, if that is the case. It then provides a description of the constraints or design aspects that do not allow that job to be executed on the emulator.
MAINTAINING YOUR INVESTMENT
In addition to its functions as a way to improve emulator utilization, live reporting and statistical analysis ensures that the performance of the Veloce ES App is improved over time. It accomplishes this in two ways.
First, whenever enhancements are made to the integrated job scheduling system and the Veloce hardware platform, the Veloce ES App is automatically upgraded so it can take advantage of all the new features and capabilities.
The second also has to do with the live data collection capabilities. The Veloce ES App collects a great deal of information and stores it in a compressed database. This information includes who is using the emulator, their location, their group, type of design, design size, and how fast the design runs in emulation. This data allows verification and CAD managers to analyze things like how long a team or project is using an emulator and whether their resource requirements have gone up or down.
The Veloce ES App also protects a company’s investment in their job management tools by giving users the flexibility to use the job management tools of their choice. The primary job management tools available (LSF® from IBM®, SGE from Univa®, and NC from RTDA) are tightly integrated with the Veloce ES App, which makes introducing the Veloce emulator into an existing environment much easier.
REAL WORLD RESULTS
To make all of this a reality, the scheduling software and emulation platform must support several key capabilities: working with user constraints and allocating the right resources; making sure the system is in use 24/7 by people from different locations and on different projects; and taking care of both high and low priority jobs as well as large, medium, and small tasks.
The integration of the Veloce ES App and leading job management software delivers the special features that erase the perception that emulation is hard to use and too expensive. These include constraint controls, scheduling flexibility, suspend/resume/relocate, global accessibility, and live reporting and analysis. With the Veloce ES App automated job management flow, customers are seeing a 20 to 30 percent improvement in emulation utilization…and that’s just a start.
You can learn more about how the Veloce ES App will help you maximize emulation utilization and ROI in our whitepaper 24 x 7 Productivity: Veloce Enterprise Server App Does the Job.
Back to Top