Intel Whitepaper - FPGA Adaptive Software Debug and Performance Analysis
Intel Whitepaper - FPGA Adaptive Software Debug and Performance Analysis
Intel® FPGA
Authors Abstract
Javier Orensanz The availability of devices incorporating hardened ARM* applications processors
Director of Product Management, closely coupled to an on-chip FPGA fabric opens a world of possibilities to
System Design Division electronic system designers. However, these devices also introduce novel design,
ARM debug, and optimization challenges. New development methodologies are
required to address software and hardware integration issues and system-level
Stefano Zammattio performance optimizations efficiently at a price affordable by small- and medium-
Product Manager sized companies. This white paper outlines Intel's and ARM’s latest innovations
Intel® Corporation in on-chip debug logic, FPGAs, and software debug and analysis tools aimed to
address these challenges.
Introduction
Current tools deal well with software problems and FPGA problems, but do not
offer much help for problems arising in systems that tightly integrate software and
custom hardware—as will inevitably occur in devices that contain processors and
FPGAs on a single die. These integration debug challenges can be addressed using
EDA tools in register transfer level (RTL) simulation and emulation environments,
but these solutions are often too complex, slow, and expensive for companies who
are not developing their own silicon devices.
Intel and ARM have collaborated on the development of FPGAs and software
debug tools in order to create new methodologies that leverage the on-chip debug
logic and enhance software development capabilities for the new Intel® SoCs. This
white paper uses examples based on the ARM Development Studio 5* (DS-5*) Intel
SoC FPGA Edition software tool chain and Intel Signal Tap tools to illustrate debug
solutions, although the technologies implemented are generic in nature.
I2C
L2 Cache GPIO
(x2)
DMA
NAND SD/SDIO/ Timers UART
(8
Flash MMC (x11) (x2)
Channels)
The single-die integration of processor and FPGA fabric in Intel's SoCs enables implementation of high data bandwidth
AMBA* connections between processor system, FPGA intellectual property (IP), and the memory system. No special software
or interface logic is required—the registers of the FPGA IP are simply mapped directly into the processor memory space,
making communication with software simple and direct. Having the two devices on the same chip also makes it possible to
connect other interfaces and signals between the FPGA and processor, thereby delivering a much higher level of integration
than is possible with discrete devices. For example, between the processor and FPGA there are 64 interrupt signals, a custom
general- purpose I/O (GPIO) interface, signals enabling processor sleep, wake, and reset from the FPGA, and FPGA access
to the ARM CoreSight* debug infrastructure implemented in the processor system. These features enable sophisticated
processor or FPGA designs that previously were simply not possible. In addition, access to the CoreSight infrastructure
delivers the ability to debug the system in ways that are not possible with discrete devices or other integrated processors or
FPGAs.
2
White Paper | FPGA Adaptive Software Debug and Performance Analysis
hardware error condition, and may be calculated as a combinatorial function of several signals in the RTL—such as when a
hardware state machine enters a certain stage and the critical RTL signals are set to an illegal set of values, or when an input
pin goes high or low.
Cortex*-A9 Cortex-A9
PTM PTM
Cross-Trigger Matrix
FPGA Fabric
3
White Paper | FPGA Adaptive Software Debug and Performance Analysis
Software developers normally know that something is wrong because an assertion failure occurs, or because the software
enters an error handling function. If the processor just crashes, they might restart the system and step through the code until
the crash occurs. Once that critical point or instruction in the software is located, they use DS-5 to configure the trace
macrocell to generate a trigger on or before that instruction, and use Signal Tap to configure the FPGA to capture RTL signals
around the same incoming trigger. The next time the software is executed and the processor reaches that critical instruction,
the FPGA will capture waveforms of the selected RTL signals around that point in time.
Developers often decide to initially capture waveforms of the system bus from the processor to decode what memory-
mapped component was being accessed at the critical time. Once the faulty component has been identified, the same
methodology can be used to analyze its internal hardware implementation.
Similarly, SignalT ap can be used to configure the FPGA to generate a trigger when a particular combination of RTL signals
occurs, as shown in Figure 4. The DS-5 is then used to configure the cross-trigger matrix so that the FPGA trigger either stops
the processor execution or starts the capture of the software instruction trace.
Hardware Trigger
Execution
Stop
SW Trace Trigger
FPGA Fabric
4
White Paper | FPGA Adaptive Software Debug and Performance Analysis
Figure 6. Automatic Import and Display of Peripheral Registers on the DS-5 Debugger
5
White Paper | FPGA Adaptive Software Debug and Performance Analysis
While a large part of the FPGA design often consists of IP blocks provided by the FPGA vendor, developers frequently design
their own IP blocks with proprietary register interfaces. Developers can manually add their register interface to the DS-5 view.
However, if a peripheral description file for the IP blocks is added to the Platform Designer (formerly Qsys) component then
the Intel development flow will integrate the custom IP register map to the description files in the same way as with standard
Intel components. This ability enables DS-5 to deliver a complete view of the SoC system memory-map automatically even if
custom FPGA IP blocks are used.
6
White Paper | FPGA Adaptive Software Debug and Performance Analysis
On fixed hardware targets, the information provided by Streamline can only be used to optimize the software. However, on
an Intel SoC, it can be used to simultaneously optimize both hardware and software by choosing the right FPGA acceleration
blocks and adapting the software to use those blocks efficiently. The only infrastructure required in the FPGA hardware is
memory-mapped registers that count the level of utilization of each different IP block. Streamline can then be configured to
access those new counters and display their value over time correlated with CPU activity and other system-level counters.
Users interested in power consumption can extend Streamline with an ARM Energy Probe or National Instruments* data
acquisition hardware to monitor and visualize voltage and current consumption on a number of power rails on the target.
On SoCs, these power rails would normally be the ones used to power the CPU subsystem, FPGA core, and FPGA I/Os, but
you could also choose to monitor the main power supply of the board or even the whole product. Again, by visualizing the
dependency of power consumption with software activity and system utilization, and being able to easily benchmark the
energy consumption required to complete a task, developers can optimize the system for power consumption and battery life.
Conclusion
The new class of SoCs integrating ARM applications processors and Intel FPGA fabric opens a wealth of possibilities for faster,
cheaper, and more energy-efficient electronic products. The innovation in the hardware has been matched by innovation in
the FPGA tools, on-chip debug hardware, and software debug and analysis tools, so that development with these devices, and
making the most of their features, is as easy and efficient as software development on fixed processor devices.
References
• SoC Overview: www.altera.com/socfpga
• Cyclone V SoC Hard Processor System: www.altera.com/products/fpga/features/cyv-soc-hps.html
• ARM Development Studio 5 (DS-5) Intel SoC FPGA Edition Toolkit:
• www.altera.com/DS5AE
• www.arm.com/ds5altera
© Intel Corporation. All rights reserved. Intel, the Intel logo, the Intel Inside mark and logo, the Intel. Experience What’s Inside mark and logo, Altera, Arria, Cyclone, Enpirion, Intel Atom, Intel
Core, Intel Xeon, MAX, Nios, Quartus and Stratix are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries. Intel reserves the right to make changes to any products
and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly
agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or
services. *Other marks and brands may be claimed as the property of others.
WP-01198-1.1