When should I use an All Programmable SoC?
Let's just to remind ourselves as to what we're talking about when we say "All Programmable SoC" and make sure we're all tap dancing to the same drum beat (my father was a tap dancer on the variety hall stage prior to WWII, so I know whereof I speak). An All Programmable SoC like the Xilinx Zynq-7000 combines a full hard-core implementation of a dual ARM Cortex-A9 microcontroller subsystem (running at up to 1GHz and including floating-point engines, on-chip cache, counters, timers, etc.), coupled with a wide range of hard-core interface functions (SPI, I2C, CAN, etc.), and a hard-core dynamic memory controller, all augmented with a large quantity of traditional programmable fabric and a substantial number of general-purpose input/output (GPIO) pins.
These devices are available in a variety of configurations starting at only $15 each (when purchased in quantity). So, when is it appropriate to use an All Programmable SoC? Well, let's start with the "low-hanging fruit." Whenever you have an ASIC/ASSP/SoC sitting next to an FPGA, then replacing this two-chip combo with a single All Programmable SoC will reduce the cost, size, weight, and power consumption of your system. Furthermore, having the processor subsystem and programmable FPGA fabric on the same die connected by high-speed AXI busses significantly reduces GPIO usage, dramatically increases performance, and also improves design productivity. All in all, it's a "win-win-win" situation.
I was chatting with the folks at Xilinx about this asking if they had any interesting examples they would care to share. They tell me that All Programmable SoC are being deployed in an incredible number of diverse applications. Although they couldn’t name individual customers, they did tell me about the following:
Driver assistance: In this application, both processors are used for image processing and are tightly coupled to the programmable logic. The processors also communicate with the internal systems in the vehicle and to monitor the local environment. The key benefits are size of the Zynq device combined with the ability to scale across the customer's product portfolio. The customer also valued the ability to off-load some of the video processing algorithms to the programmable logic.
Cryptography: In this application, multiple Zynq devices are being used to run various cryptographic algorithms. The application uses the processor to communicate and manage the system, while the programmable logic is used to accelerate encryption and decryption of the data. The value of Zynq is a more secure solution with information assurance and anti-tamper capabilities in a single chip.
Industrial motor control: In this application, one of the processor cores is running an operating system (OS) that is used for command and control (human-machine interface(HMI), Ethernet) and to communicate status and control information to and from the outside world. Meanwhile, the second processor core is used to carry out the floating-point operations required for the motor control; this second processor core is tightly coupled to the programmable logic that contains the motor control IP, and also to the AMS (Agile Mixed Signal) block that accesses the analog voltage and current data associated with the motors. The key benefits of this Zynq-based solution are the integration of the processor cores, memory, and programmable logic, which improves the performance.
ISM frequency converter: In this application, one of the processor cores is running VxWorks while the other is used to implement custom DSP algorithms. This is similar to the Industrial Motor Control application in that one processor takes care of external communications and control, while the second processor works closely with the programmable logic, which is performing calculations on the frequency data from the external sensors. The key benefits of this Zynq-based solution were increased reliability and performance at a lower cost than competitive alternatives.
Security appliance: The Zynq-7000 All Programmable SoC comes equipped with Information Assurance and Anti-Tamper features in both the processor and programmable logic domains. These features -- combined with TrustZone technology from ARM -- and augmented by the added security of being implemented on a single device, provides the high security levels required in most of today's systems. The key benefits are the high-performance processing system combined with the security features in a single, small device.
Test and measurement: The Zynq-7000 All Programmable Soc is the ideal platform for T&M (test and measure) applications. In this particular example, one of the processor cores is used to run the Windows Embedded Compact 7 operating system with IP from Xylon to drive the GUI (graphical user interface) and control the product; meanwhile, the second processor core is combined with the programmable logic to analyze all of the test signals and measure the test data based on the product and configuration. This is a platform in which the customer can select a different Zynq device (7010 or 7020) depending on the features that are required. Providing customers with the ability to re-use all of the software, OS, and IP across multiple platforms allows them to accelerate product releases across multiple products.
Energy: In this applications, Zynq All Programmable SoCs are is used in wind turbines and also in the central controller for the wind farm. In the case of the wind turbines, a Zynq is used in each turbine to monitor efficiency and control the system. One processor core -- in conjunction with the programmable fabric -- is used to monitor and control the turbine, while the second processor core is used to interface back to the wind farm's central control system in the wind farm. The Zynq allows the system to maximize efficiency, to predict failures, and to schedule pre-emptive maintenance. Meanwhile, in the case of the Zynq in the central controller, one processor core is used to receive and process all of the information from the turbines, while the second processor core is used to display information and accept comments with the master control station.
Good grief! I'm almost sorry I asked! How about you? Can you think of any applications that would benefit from the use of an All Programmable SoC? If so, please share them with the rest of us.
@hash.era: Max I havent tried the 3D IC. Is it costly ? I read the article like 5 times since it was so interesting.
First, thank you so much for your kind words. With regard to price -- I haven't got a clue how much these devices cost, but I don't think they will be cheap :-) Of course 3D ICs are very new -- in a few years trime the price may fall dramatically.