Monday, August 29, 2016
FPGA technology for design prototypes is making new inroads as demands increase for better integration between hardware and software.
FPGA prototyping, also known as physical prototyping, has been supported by all of the major EDA players for some time, and it has been considered an essential tool for the largest chipmakers, along with emulation and simulation. But its reach is growing, spurred by the Internet of Things (IoT), a variety of new markets, and most importantly the tighter connection that exists between hardware and software in sophisticated chips, which can have a significant impact on power and performance.
Still, FPGA prototyping isn’t always user-friendly. It’s difficult to work with, particularly when it comes to partitioning. And while the technology is fast, it has limits.
There has always been plenty of praise for this technology. “It’s a unique combination of speed and accuracy before your first silicon comes back,” Doug Amos, ASIC prototyping and FPGA activist at Mentor Graphics, says of FPGA prototyping.
Designers can resort to a SystemC virtual model to get close to what a device can do very early in the design flow, but they do have differences, especially with respect to timing that can cause software to execute differently. Many prefer to wait until RTL is available.
“With emulators and simulators , you can look at everything—you’ve got all the visibility you need,” Amos says. “But I can’t run enough of the software stack, so I’m down at the bottom of the stack, at the hardware-dependent end of the software. I believe that prototyping is unique in its ability to take the whole stack of software, run it at the fastest speed—probably not anywhere near what the final silicon’s going to be, but it’s the best you’re going to get before that silicon is available. And then, off you go. You’re really exercising the SoC functions to its high-wall use. You’ve got the chance to integrate your hardware and software together, and run those within real-world data streams. That’s why people go to all these lengths to create these FPGA prototypes.”
So where does FPGA prototyping fit into the tools lineup?
“Emulation runs much faster than simulation,” says Frank Schirrmeister, group director for product marketing of Cadence’s System Development Suite, which includes FPGA prototyping, emulation, and simulation with a common front-end. “Emulation is typically in the megahertz range. It’s available fairly early in the flow because over the years we have developed complex compile front-ends to bring your RTL up fast. FPGA-based prototyping, where you’re now inherently taking your design and mapping into a set of FPGAs, is fairly automated once you have manually optimized the design for FPGA. It can be in the tens of megahertz range, so an order of magnitude faster than emulation. As such, it is very applicable to software development. The main use for FPGA-based prototyping is software development, and that’s how design teams bring up their operating systems. They’ll bring up bare-metal software running on the design well before the silicon is available.”
Tom De Schutter, director of product marketing for physical prototyping at Synopsys, cites the complexity of design cycles in FPGA-based prototyping. “When designing a high-performance and low-power device, there’s a huge amount of software that needs to run on that device,” he says. “You need a high-speed development system to verify all that.”
Zibi Zalewski, general manager of the hardware division at Aldec, agrees. “Selection between FPGA prototyping and emulation is a tradeoff between speed and debugging capabilities. Prototyping provides higher speeds, since clocks are driven directly from clock oscillators or PLLs. But they run at constant frequency and cannot be stopped, which is necessary for advanced debugging. In emulation, the emulation controller generates and controls all design clocks and can stop them at any time for the sake of debugging. The result is that prototyping speed is faster than emulation, but emulation provides debugging capabilities closer to simulation and different options of integration with other tools like simulators (acceleration) or virtual platform (hybrid). That’s why prototyping is used for software projects, where developers need the highest possible speed of OS bootup or application execution, for example, while emulation can be used by hardware teams for verification and debugging, or system-level teams in hybrid modes with virtual platforms connected with an emulator.”
By: DocMemory Copyright © 2023 CST, Inc. All Rights Reserved
|