For example, a high end Zynq has a quad-core ARM Cortex-A53 processor, a dual-core ARM Cortex R-5 processor and an ARM Mali-400MP GPU and an H.265 video Codec. This is more like a blade server on a chip than a traditional FPGA. To accelerate a particular procedure (such as a video or DSP algorithm) it is only necessary to mark it for speed up. Under the hood, the C code will be synthesized into the FPGA fabric and all the plumbing constructed to link it to the C source code. It will run just like the C code on the ARM processor, only faster (and probably with lower power).
Xilinx is at the forefront of this transformation towards software defined systems. It is focused on six markets where this approach is especially well suited:
- 5G wireless
- Software defined networks (SDN) and network functional virtualization (NFV)
- Advanced driver assistance systems (ADAS) for automotive
- Industrial IoT
- Cloud computing
One of the key technologies for doing this is high-level synthesis which is allowing engineers with negligible hardware design experience to implement high performance systems. Xilinx calls this SDx for software-defined systems (OK, systems doesn't begin with "x" but it is more like the automotive term x-by-wire). There are already 3 special environments: SDNet (for networking), SDAccel (for datacenter accelerators to sit alongside the main server processor), SDSoC (for more general systems-on-chip). This is not purely a Xilinx trend: I attended a presentation at DAC last year by engineers from Google who were experts in video standards about how they had implemented their own proprietary algorithms with high level synthesis and no hardware knowledge.
The reason these new software-focused environments are so important is that the experts in the algorithms required for a successful systems all work at a very high level and are not (usually) RTL-literate. Besides, taking an algorithm for something like vision processing and implementing it in RTL is just too slow and each improvement to the algorithm results in too much rework. These are not algorithms that are stable, they are areas where companies attempt to differentiate themselves and continuously improve their solutions. Even where there are standards they are largely still in development (see 5G wireless for a great example).
Next generation systems like this have a new set of requirements:
- These applications require systems to be ‘connected’ (like ‘connected cars’, connected machines, not just chip to chip connectivity)
- If they are connected, they must be much more secure…and safe
- They are ever more ‘software defined’, with support of virtualization,
- Much of their intelligence comes from analytics (of ‘big’ data, video pixels, etc.)
- Typically, they process or transport images & video, which is now ‘everywhere’
- And they all must be supported with some form of heterogeneous multi-processing, with scalable approaches to accelerate key functionality
Xilinx has redesigned their website to reflect this ongoing transformation of their business. Of course most Xilinx revenue comes from production orders for designs that were done several years ago, that is the nature of the business. But new design starts, especially at the high end, are increasingly these new types of systems.
The most recent issue of Xcell Journal covers the end-markets above here. And coming soon, a new quarterly publication the Xcell Software Journal specifically for software engineers. Marc Andreeson is famous for his statements that "software is eating the world." Xilinx is doing their bit to make the prophecy true.
Xilinx's new website is here.