Since the release of the Series 7 devices from Xilinx in 2011, one member of the family is clearly dominating the others in terms of popularity: the Zynq-7000 SoC. Did Xilinx put all their marketing efforts into the Zynq or is this proof of a new trend in FPGA technology?
To answer that question let me talk about why I think the Zynq SoC has been so popular.
The Zynq bridges a gap in the market for high-performance, calculation-intensive devices. In this market, there are generally three types of implementations: microprocessor based solutions (software solutions), FPGA based solutions (hardware solutions) and a combination of both. Most people accept that (at least in theory) the highest performance and energy efficient implementation of most calculation-intensive algorithms is achieved on FPGA technology. The problem is that FPGA designers are hard to find and creating one internally takes a lot of time. Another problem is that the open-source community for IP cores is not very developed, at least in comparison to open-source software. The Zynq SoC bridges that gap by providing a powerful microprocessor based solution, while offering the possibility to accelerate the implementation through hardware offloading to an on-chip FPGA. With the Zynq, a customer can port their existing application to run on the ARM processor, without the need for an FPGA designer. Once the application has been proven on the Zynq, they can then gradually develop the FPGA part of the chip and explore the possibilities for hardware acceleration.
The Zynq supports Linux. A lot of calculation-intensive applications run on Linux and many more will continue to be developed for Linux simply because it allows the developer to leverage a ton of existing drivers and libraries, and it frees the software designer from having to know too much about the underlying hardware. Of course, a pure FPGA can also run Linux, you simply have to implement a soft-microprocessor such as the Microblaze in the FPGA fabric - but the performance isn’t great, the Microblaze is a single core processor that you would typically clock at 100MHz. The Zynq in comparison carries an ARM Dual-core Cortex-A9 processor that clocks at 800MHz. When performance is critical, the processor has to be powerful enough to run the OS fast and transparently, and the Zynq delivers.
The Zynq has a large community of users. Many companies and people in the open source community have recognized the potential of the Zynq and chosen it as the base for several open-source hardware projects such as the Red Pitaya, the Parallella and the ZedBoard. The huge success of these projects and visibility on Kickstarter.com has created a large community of Zynq users. There’s also the huge Linux community that Xilinx is winning over by maintaining a Linux distribution for the Zynq on Github as well as thorough documentation on their wiki page. The open-source community is overrepresented by early adopters and people who are willing to jump on new technologies and spread the word - and in my opinion, Xilinx is doing a great job at winning them over. More users means more support which is exactly what customers want to see when they’re considering adopting new technologies.
In general terms, I believe the Zynq has been successful because it provides FPGA solutions and benefits to customers who did not previously have the expertise/resources to use FPGA technology. In my opinion, that’s the edge that the ARM + FPGA combos bring to the market and I think we’ll only see more of these devices in the future. Although I think there will always be a place for pure FPGAs, the Zynq and other chips like it are going to open up the gates to more widespread FPGA adoption.
If you’ve got an opinion on the ARM+FPGA architecture, I’d love to hear about it, just leave a comment below.