The way companies use hardware emulation has changed. Historically, emulators were used in a lab, at one location, executing one job at a time. Because of this, an emulator often sat idle. In this scenario, project scheduling for the emulator was done manually by allocating fixed time slots to project teams. An inherently inflexible and inefficient way to manage a valuable resource, especially for global teams.
Emulators are not confined to this arrangement anymore. They are now managed as a corporate-wide shared resource in a datacenter. Initially, the efforts to meet the requirements for a shared resource depended on standard job management software, such as LSF and Sun Grid. But these approaches treated emulators like any other hardware in a datacenter. The truth is that emulators are far more complex and specialized than general purpose systems. Every emulation job is different in terms of size, duration, verification requirements and priority.
To satisfy these requirements, Mentor developed the Veloce® Enterprise Server App, aka the Veloce ES App. The Veloce ES App delivers a fully-integrated solution for complete, transparent access to emulation resources worldwide for concurrent projects. It significantly enhances emulator use by delivering advanced features like suspend, resume, relocate, high priority, and large job scheduling as well as access to utilization statistics over a period of time. These unique features make Veloce emulation a trusted enterprise datacenter resource.
EMULATION WITH ENTERPRISE SERVER APP SW
Understanding how a datacenter-based emulator works starts by looking at how an emulator is built. An emulator begins with a chassis. The chassis is equipped with a number of slots to support a number of boards — aka AVBs. The more boards, the more capacity and the more users running emulation concurrently. Designs are mapped to the Veloce emulator in a way that makes the most of the boards in the system.
When an emulator is used as a datacenter resource the capacity (number of boards) in the emulator becomes a shared resource, and effective job scheduling software is needed to “share” the emulation resource. In a datacenter environment, job scheduling software is just as important as the capacity of the emulator.
What is the boundary to capacity? In the context of this article, it is sufficient to know that a single Veloce chassis can support up to 2 billion gate designs and 128 simultaneous users. How can all of these users be accommodated while maximizing the productivity and quality of verification?.
The answer is relatively simple, the Veloce ES App allows job management software to understand how to manage an influx of emulation jobs. It serves as an interface between job management software and the Veloce hardware platform.
Figure 1: System flexibility minimizes idle hardware by allowing individual designs to be distributed across emulation boards in several ways.
The Veloce ES App recognizes the configuration of the emulator and the requirements of the emulation job in the queue at any given time. It also knows what a piece of hardware can do, and where there is flexibility in the system. For example, it knows how many emulation boards are available, where they are, and what can be done with them. It also knows which users have priority, and it can suspend lower priority jobs to get more important ones done. Also it can suspend several small jobs to accommodate a bigger job — i.e., one that requires more emulation resources.
A TRANSPARENT, FLEXIBLE USE MODEL
In an emulation datacenter model, it is critical that all of the job allocation activity is transparent to the verification engineer. They do not need to know, and should not be bothered with where the emulator is, how to access it, or how the various jobs in the queue are distributed and managed.
With the Veloce ES App, verification engineers simply upload their emulation jobs using normal job submission commands. Once a job is in the queue, the Veloce ES App identifies the best possible resource to run the job. Once resources become available, the job is dispatched and the resource is marked as busy. The job runs and the verification engineer gets the results. When a job is completed, the next job in the queue is started. Bottom line: No emulator downtime and no human interaction or communication is needed.
The Veloce ES App eliminates the need for managers and administrators to manually assign emulation resources, and future enhancements to the Veloce ES App are implemented such that users do not need to worry about making changes to the script or test environment.
THE SUSPEND-RESUME-RELOCATE FLOW
The notion of “no downtime” is reinforced by a capability unique to the Veloce emulation platform called “suspend-resume-relocate.” 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 (see Figure 2, below).
Figure 2: The suspend-resume use flow
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 in order to run the higher priority job. When the high-priority job is completed, Veloce resumes the suspended job from the exact timeframe where it was suspended.
A third capability, relocate, complements suspend and resume by transparently reassigning a suspended job to different AVBs or emulators. 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. Suspend-resume-relocate 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.
MAXIMIZING EMULATION RESOURCE UTILIZATION
The Veloce ES App also promotes productivity and maximum utilization of emulation resources through two other capabilities: faulty component detection and utilization history reporting.
Any high-performance piece of equipment needs maintenance from time to time. Emulators are no different. The Veloce ES App ensures that when the need for maintenance occurs, there will be no loss in productivity. The Veloce ES App automatically detects and handles many of the error conditions that can otherwise plague large distributed environments. For example, if a component is nonfunctional, the Veloce ES App marks it as “out of service” for future job scheduling until it is back online. This level of flexibility and intelligence ensures that jobs are assigned to functioning AVBs.
The Veloce ES App also generates and stores history data by capturing all activity happening in an emulator over days, months, and years. It gathers information such as: type of design running on the emulator, size of the design, how fast the design is running, the number of designs that come from different users, and what type of emulation is being done.
This data collection allows teams to create reports that help reset priorities and assign resources. For example, they can see the speed a design is running at and compare it to how fast it should run in order to spot any hardware or network problems. Full accounting and reporting for the entire workload permits internal cost recovery against individual engineers, projects, or departments based on their usage profiles. Other related metrics ensure appropriate and optimal use of Veloce emulation.
The Veloce ES App is unique, making Mentor the only EDA vendor to offer this kind of specialized job scheduling. This is a highly efficient flow because the Veloce ES App is built with the intelligence to know how to extract the relevant information about emulation and use that to distribute the design over different AVBs and even multiple emulators.
The Veloce ES App enables 24x7 utilization of emulation resources by verification teams worldwide, allowing companies to greatly reduce the total cost of ownership. It also ensures maximum use of the entire infrastructure by providing a robust, efficient, and scalable job scheduling solution that matches the most appropriate resources with the needs of the workload.
The Veloce ES App supports efficient management of the emulator resources and minimizes added cycles. A fully integrated solution, it significantly enhances administrator and engineer productivity through highly efficient, transparent job scheduling for the Veloce emulation platform. Thus, extremely valuable Veloce emulation resources are allocated to jobs according to the objectives and goals of the business, via operational policies configured by verification managers using standard job management tools like LSF, Univa, and NC.
Consequently, users typically see a 20% increase in emulation capacity with the Veloce ES App — now that’s real money.
Back to Top