Don Dingee Published on 10-19-2016 02:00 PM
We've had several blogs introducing the Juno ARM Development Platform as a vehicle for ARMv8-A software development. S2C has jumped in with a module connecting their FPGA-based prototyping platform to the Juno, enabling more advanced IP block development for ARMv8-A systems.
A quick refresher on the Juno SoC and development board: it's become the defacto reference platform for software development on ARM Cortex-A57 (or Cortex-A72) and Cortex-A53 big.LITTLE clusters, and a newer version with a Cortex-A72 and Cortex-A53 cluster. It also provides a look at a Mali-T624 GPU and the CCI-400 cache coherent interconnect, along with a DDR3 memory subsystem, an optional PCIe controller, and a Cortex-M3 core for system control functions.
By tapping into the LogicTile expansion card interface, a daughtercard has access to the Juno SoC via AXI. That provides enough bandwidth to create custom logic on a FPGA. Extending the concept to a full FPGA-based prototyping platform, custom logic can be created and debugged without having to worry about partitioning the processor and GPU cores into FPGAs. The result is a complete ARMv8-A software environment with a validated Linaro port, plus any custom IP in the FPGA-based prototyping platform.
S2C is the latest vendor to get on board with Juno. The Prodigy Juno ARM Interface Module plugs into the Juno board, cabled to a Prodigy Complete Prototyping Platform.
S2C is taking the concept a bit farther with a complete, easy to set up reference design supporting either Prodigy Virtex UltraScale or Prodigy Kintex UltraScale Logic Modules in this configuration. The reference design illustrates how self-testing works with the two environments connected together, how FPGA capacity is utilized, how OS kernel and driver code for the ARMv8-A processor works with the FPGA-based prototyping system, and how high-speed DDR4 memory access between the Logic Modules and the Juno ARM Development Platform works.
With more ARMv8-A usage coming on line, especially in server-class applications, prototyping other IP blocks for workload-optimized designs is becoming increasingly important. One of the big set up factors in FPGA-based prototyping is having to partition a large processor cluster into several FPGAs successfully. Using the Juno ARM Development Platform helps avoid that step (at least if stock ARM cores are being used) and reduces the overall time to set up an FPGA-based prototype.
The combined environments also enable the FPGA-based prototyping tools to be used. Better debug capability helps designers test and verify IP blocks more thoroughly. Scalability is also a concern – the S2C environment extends all the way from a single logic module to over 1.5B gates with the Prodigy Cloud Cube architecture.