Testing and Debugging
Debugging is the act of testing you hardware design and any embedded software (running on 'soft' processors therein), to obtain the desired (correct) performance and functionality. Debugging is an important element of the overall design strategy, and effective debugging can save a lot of time and money when it comes time to deploy your end design in the field.
Virtual Instrumentation
In Altium Designer, debugging of hardware is provided courtesy of 'virtual' instruments – components which are 'wired' into the actual FPGA design but which, on programming the physical device, offer software-based controls for interrogation and control of nodes within the design. Imagine being able to walk around inside the physical FPGA device, armed with your favorite test instruments, and you'll have some idea of what these instruments can offer as part of a 'live' debugging environment.
Virtual instruments are placed from the \Library\Fpga\FPGA Instruments.IntLib
library.
In addition, a number of legacy instruments are available, from the \Library\Fpga\Legacy Libraries\FPGA Legacy Instruments.IntLib
library.
Additional Hardware Monitoring Tools
In addition to the range of virtual instrumentation available for use in an FPGA design, there are also tools available to interrogate the activity at the pins of the physical FPGA device, or to probe nets within the design. Use the following links to take a closer look at these tools.
Embedded Software Debugging Tools
Debugging of the hardware side of an electronic product is, to coin a phrase, only half the battle. The intelligence of the product and the source of real sustainable differentiation, is the embedded software code running on a processor in the design. It is this code that gives the product it's 'smarts' – the basis of the product's functionality.
Altium Designer provides extensive on-chip debugging capabilities for each available 32-bit processor, allowing you to examine and change memory and register values in real-time, as well as performing source-level debugging of your embedded code.