3 Essential Considerations for FPGA design in the Cloud

Plunify and Xilinx announced a partnership to make Vivado available on the Plunify Cloud platform, which operates on the Amazon Web Services (AWS) cloud. This is the first time that any fully-featured FPGA software is available under an on-demand cloud model. Cloud adoption is a huge step for any engineering organization. In this article, we discuss the key considerations, impact, benefits of cloud-enabled FPGA design, and how to improve the quality of results.

There are 2 main benefits of this partnership

A. On-demand and scalability

Vivado-cloudThe most obvious benefit of this partnership is the on-demand feature of cloud computing. Licenses and virtual servers are purchased as and when you need them, and only for the amount of time you used them. Resource flexibility and scalability safeguards you from over- or under-provisioning important resources that might have an adverse impact on your projects further down the road. It also removes the burden of on-premise infrastructure maintenance.

 

B. Overcoming the “one engineer, one computer” model

The most overlooked benefit is the potential of (almost) unlimited compute power and licenses. FPGA teams are generally smaller and do not normally work with massive compute farms like their ASIC cousins. The typical FPGA design methodology is based on a setup of what we call the “one engineer, one computer” model.  This model has worked well for the past decade. However, with increasing design complexity and larger device densities, we see that this approach is reaching its limitations. For higher-end device families, build runtime goes up to 24 hours, are more resource-hungry, and the number of build iterations have been steadily increasing.

For teams who are already designing FPGAs on the cloud and for teams who are considering this approach, here are 3 essential considerations.

1. Providing Ease-of-use for FPGA Designers

One of the free-to-download tools under the Plunify Cloud platform is the FPGA Expansion Pack for Vivado. This is a Xilinx Vivado plugin that adds cloud-enhanced functionality right into your Vivado toolbar to speed up design compilations. Together with a Plunify Cloud account, this plugin enables you to conveniently build and optimize designs on tens, even hundreds of Amazon Web Services machines at the same time.

The Expansion Pack enables the user to conveniently click a few buttons to offload compilations to the cloud, check results without having to deal with any cloud infrastructure or file transfer tool. The other key benefit is when the compilation is completed, results can be downloaded back into Vivado and debugged locally. The process is seamless to the user and this significantly lowers the learning curve.

2. Using a Cloud Management Solution (Built for FPGA Designers by FPGA Designers)

AWS is an open platform with transparent pricing – anyone can sign up. An organization must decide between managing the cloud themselves or work with a cloud management platform like Plunify Cloud.

Cloud Considerations

  1. With more than 90 server types on AWS, what type of servers are more suitable and what are the pros and cons?
  2. How to upload design files securely to the cloud? Similarly, how to download result files securely?
  3. What should be the retention policy for data storage in the cloud? How should it be stored securely even temporarily?
  4. How do we ensure that we have the right Vivado versions in the cloud and the necessary licenses to support each of them? Who will maintain these versions and licenses?
  5. How do we optimize for cost? What can we do to prevent hidden and unforeseen bills, e.g. excessive file transfer bandwidth?
  6. How do we track usage? Which team or who is using more resources and licenses?

Why use a cloud management platform?

Increasing the IT burden on your FPGA engineers is not the best use of their time. To address these concerns, the Plunify Cloud platform offers a complete management solution. Our recommendations and best practices are derived from the experience of handling thousands of compilations across multiple device families, tool vendors, and more projects than what a typical company may see in a lifetime.

credits-usage

For example, one of the common unforeseen bills for FPGA projects stems from storage and bandwidth charges. DCP and bit files can be in the range of gigabytes. Files should be cleaned up in cloud storage regularly and automatically. It is easy to forget, thus leaving behind a cost burden as well as heightening security risks. This is all taken care of by Plunify Cloud. All reports and files are deleted within a certain number of days after the results are downloaded.

The other common question posed by management is about usage. How do you know what is used and how much? With the Plunify Cloud portal, you see a complete picture of what is used, how much it costs and for how long.

From data policy to user management, Plunify Cloud is a comprehensive solution built by FPGA designers for FPGA designers.

3. Achieving Better Quality of Results

This is the part of the iceberg that is beneath the water’s surface. How do you turn unlimited and affordable compute power and licenses into a competitive advantage? The first concept that comes to  mind is the use of a brute-force approach to sweep compilation parameters. It is the least mentally taxing of the methods, but it is very inefficient and generally unsuccessful.

However, with Plunify’s InTime tool, this notion becomes a disciplined process rather than a blind approach. Then, the question becomes how and for how long should you run InTime?

InTime

FPGA tools such as Vivado provide massive optimization benefits with the right settings and techniques. Using machine learning techniques, InTime has built-in intelligence to identify optimized strategies for synthesis and place-and-route. InTime runs multiple builds in iterative rounds and actively learns from multiple results to improve over time, extracting up to 80% increase in design performance from the FPGA tools.

FMax_improvements-1-concentrate

The results are achieved without changing any RTL in the project. The InTime approach is extremely powerful in the cloud because of the massive scalability and resource availability the cloud offers.

How long will it take?

One common question is how long it takes to close timing for a design. The largest device families with more than 2M logic elements take no more than 1 week. To be more precise, the time taken is tied to the number of builds. A successful result typically requires around 150-200 builds. That might seem a lot and costly in terms of a “one engineer, one computer” model. However, the whole process is condensed to just 1 day in the cloud for a build that takes 8 hours. Organizations gain the capability to accelerate their time-to-market dramatically, releasing high-performance products better and earlier than their competitors.

header background

The best way to use InTime is to integrate it in a regression flow for releases. In a regression, you are constantly refining the “sweet spot” where your design is sitting in. The sweet spot here refers to the combination of synthesis/place-and-route settings where the design is operating at its maximum performance. While this sounds like a lot of IT management is necessary, this can be scripted to operate with the Plunify Cloud easily.

Taking the next step

Using the cloud for your FPGA design need not be cumbersome or tedious. To deliver projects on time and speed up time-to-market, sign up for a free Plunify Cloud account.  If you have any questions about taking the next step in the cloud, please contact us here.

For more information about Plunify, please subscribe to our blog at https://support.plunify.com/en/blog/