The rise of the microprocessor revolutionized electronics design by allowing functionality to be moved from the hard-wired constraints of the board to the easily changeable realm of software. This allowed the ‘intelligence’ of the product to be separated to some degree from the underlying hardware, and provided a development methodology that allowed more features and functionality to be embedded into the product without increasing the hardware cost, component count or board real estate.
The availability today of high-capacity, low-cost programmable hardware in the form of FPGAs has the potential to change the way you think about the design process by allowing you to create both the software and the execution platform that it runs on in an easily changeable and updateable realm.
By moving system processing functionality inside an FPGA, you can simplify and shrink the board design, reduce overall system design time and change both the software and the hardware execution platform at any time in the design process. You can even update the entire system in the field, allowing extensive fixes and feature upgrades to be done without altering the physical hardware.
Choose your processor platform
Altium Designer offers you a wide choice of processor platforms, allowing you to work with a range of soft processors or hybrid hard-processor/FPGA devices. This means you can choose the appropriate execution platform for your specific application.
Altium Designer comes supplied with a versatile 32-bit RISC soft processor – the TSK3000 – and a range of general purpose 8-bit soft processors. These processors are target-independent and can be used on any suitably-sized FPGA device supported by the system. Like all Altium Designer FPGA components, the processors are supplied pre-synthesized for a wide range of target devices.
Altium Designer’s TSK3000, internally based on the Harvard architecture, features a simplified memory structure and sophisticated interrupt handling to make coding simpler. It has been specifically designed to simplify the development of 32-bit systems targeted for FPGA implementation and to allow the migration of existing 8-bit systems to the 32-bit domain with relative ease and low risk. The processor also simplifies the connection of peripherals with support for the Wishbone microprocessor bus.
Third-party processor support
Altium Designer supports a range of soft processors supplied by major FPGA device vendors. Because these processors are targeted and optimized for specific FPGA device families, these processors can offer a higher level of performance, but lock you in to specific target FPGAs. The Altium Designer system includes special schematic-based components that provide direct access to these vendor-specific soft processors from within the Altium Designer environment. This allows you to work with these processors in the same way that you design with the native Altium Designer soft processors – simply place the components from the libraries to construct your system.
In a similar way you can target hard processors within hybrid processor/FPGA devices, or discrete processors coupled to an external FPGA. Altium Designer provides ‘wrapper’ core components that are implemented within the FPGA to interface to the processor. This gives you full access to the power and performance of these devices from within the Altium Designer environment.
Easily modify or change the execution platform
In traditional board-level design flows, the hard-wired execution platform is defined and fixed early in the design process. The processor is selected, the peripherals specified and the partitioning of functions between hardware and software is tied down at the start of the design cycle to allow prototype hardware to be manufactured and software development to proceed. Discovering late in the design cycle that you need to implement a function in dedicated hardware because the processor is running out of steam can mean major re-engineering and extensive delays in manufacturing new prototype boards. This can play havoc with release schedules.
Altium Designer has been created to overcome these barriers and give you complete freedom to change both the software and the execution platform that it runs on throughout the development process. It does this by allowing you to harness the potential of large-scale programmable devices to provide a soft-wired execution platform in which the processor, peripheral devices and glue logic can all be easily changed and reconfigured ‘on-the-fly’ to accommodate design modifications.
Because Altium Designer provides hardware- and software-level compatibility between processors and lets you work in a consistent way regardless of the target, you are free to choose the appropriate processing platform for your specific application. If necessary, you can even change processors during development with minimal system re-engineering.
Connect processor peripherals
Altium Designer simplifies the connection of processors to peripherals and memory by making extensive use of the Wishbone bus, an open source standard that has been specifically designed for processor/peripheral interconnect within a chip.
The Altium Designer FPGA component libraries include configurable Wishbone interconnect components that can be used to connect both peripheral devices and memory to the processor core at the schematic level. Once placed, you can configure these devices directly on the schematic sheet, adding and defining devices as needed. The schematic symbol is automatically updated to include the defined sets of connections. You can then simply add Wishbone-compatible peripheral and memory controller devices from the supplied FPGA component libraries to complete the processor system.
The ease and simplicity that the Wishbone bus brings to system configuration allows you to rapidly define system functionality, and lets you reconfigure or add hardware functionality to the execution platform at any stage of the development process.
Develop and debug embedded software
Altium Designer’s unification of the electronic product development process extends to the creation of embedded software running on FPGA-hosted processors. From within the Altium Designer environment you can create and edit your code, compile and simulate your program and undertake complete source-level debugging on the target system.
Altium Designer includes full compiler tool chains for all supported processors. The compilers are based on Altium’s advanced Viper compiler framework, which provides fast, highly-optimized code that is finely tuned to the target processor architecture. The Viper technology provides C-level code compatibility across all processor platforms, allowing you to easily migrate your application code between processors. This complements the hardware-level processor compatibility and facilitates complete system migration between different execution platforms.
All Altium Designer processors feature on-chip debug capabilities. When the design is downloaded to a suitable FPGA development board, such as Altium’s NanoBoard, Altium Designer communicates with the processors via a secondary JTAG communications chain established within the FPGA. You can then debug your software from the source code or disassembly view, with full control over processor execution. Altium Designer natively supports the simultaneous debugging of multiple processors, allowing independent debug sessions for each processor running in the design.