Part three of our series looks at the choices you face as you decide whether to build or buy a board.
One consistent theme in this series has been the increasing number of use-cases for FPGA-based prototyping. Beyond that, boards have long been built and sold in various configurations, both bespoke and off-the-shelf.
Target ASICs vary according to anticipated gate count and the range of IP and I/O they will include. Design budgets are always a consideration. There is no ‘one size fits all’.
FPGA-based prototyping options
The HAPS family from Synopsys includes the HAPS-Developer eXpress (HAPS-DX) for quick and easy bring-up of projects up to 4 million ASIC-equivalent gates; and the HAPS-70 Series, for projects up to 288 million gates using Virtex-7 FPGAs. Next generation HAPS systems based on Xilinx VU440 FPGAs will scale to 1.6 billion gates.
HAPS also boasts a range of add-ons and daughter boards to account for different I/O, memory and interconnect configurations, as well as advanced debug options.
It is also possible that the FPGA-based prototyping boards can be used in different ways and configurations on the same project.
Sometimes, the target ASIC gate-count and need for the highest performance may make the decision for you. But even then, you may need to consider the use of multiple boards on a single project (or across an entire company).
As we noted in Part Two, a complex board assembly with many test points to assist in debugging RTL may not be convenient or robust enough for use as a stand-alone software target on the same design.
So, whether you choose to buy or build, there are some important choices to be made. How do you develop a project to the right specification or opt for the best off-the-shelf option?
This article presents a high-level matrix that can help you make those decisions. It is illustrated here based on the validation demands of generic projects.
Enter the matrix
For ease of reference, here again are the nine standalone use-cases that account for the bulk of FPGA-based prototyping projects.
- In-system validation of your RTL;
- In-system test of algorithms and IP under internal development;
- In-system validation of external IP;
- Regression test for late-stage ECOs;
- In-system test of physical-layer software and drivers;
- Early app integration into embedded operating systems;
- In-system validation of software on a standalone target platforms;
- Early delivery of evaluation and software development platforms to partners; and
- Implementing a company-wide standard verification and prototyping infrastructure for use across multiple projects.
Let’s now take those cases and assign some requirements and their priorities to each.
Before going any further, the weightings that have been applied here are broadly generic. You may want to rework the table according to your own internal priorities or indeed those of your partners, where your goal is an evaluation board for external use.
However, it is worth looking at some of these use-cases in more detail now. They highlight universal and important criteria.
For self-evident reasons, cost, robustness and delivery are primary considerations where the idea is to ship the boards to market the end-product ASIC to a customer (Option #8). You want to make a good impression.
By contrast, where the boards are intended to form part of a common internal design methodology, they need to support that framework but also be flexible enough for adaptation, reconfiguration and plug-ins that will target different applications on different projects.
Part Two of the series highlighted how the design and debug environment for the hardware delivers unique features that are difficult for most firms replicate with in-house prototypes. This is one of the main attractions users cite for commercial hardware/software FPGA-based prototyping systems like Synopsys HAPS.
While the HAPS hardware has distinct architectural elements and reliability features, it is the design and debugging tools that differentiate it from custom-built and most competing commercial systems by helping to better satisfy the goals of the matrix presented above.
For example in the Visibility category, internal signal visibility and storage depth is often is a priority in multiple use scenarios. ProtoCompiler enables RTL and netlist debug instrumentation, gigabytes of trace storage across FPGAs by using DDR3 SDRAM, and hardware-to-RTL event correlation to ease troubleshooting.
The Delivery category is often a priority given the tight schedules prototypers face. Again ProtoCompiler helps accelerate availability of the prototype with automation to rapidly find a feasible floorplan to partition large ASIC design across multiple FPGAs and fast compile modes that make HDL review as fast a possible.
Beyond the matrix
Now that you have a formal sense of what you want from the board and the development environment, you need to choose one.
Before going any further, keep this one rule of thumb in mind. The highest viable specification will offer the broadest flexibility. Given how designs evolve, factoring in some headroom above your initial requirements is a good idea.
At the very least, now is the time to talk to your experts – internal and external.
For example, you may have an experienced in-house prototyping board team. But if time (delivery) is a first-order consideration and the project has some very specific characteristics, can those engineers get a board ready in time?
Other questions might include the potential for re-use. For example, we only list standalone FPGA-based prototyping use-cases here. But in a virtual prototyping scenario, you may be able to re-use a board with established and stable RTL alongside the transaction-level model of functionality intended for a new design.
Most FPGA-based prototyping customers are drawn toward the option of buying-in a vendor board such as one from the HAPS family. They reduce risk, are highly configurable and delivered rapidly.
But most important of all, ‘buy’ allows you to draw on the vendor’s expertise. Armed with the goals ranked in your matrix, a good vendor will guide you to the right kind of FPGA-based prototyping system for the job.