Actel

Processor Firmware

 Software Drivers    Hardware Abstraction Layer    Real-Time Operating Systems  

The firmware in a design using a processor in an Actel FPGA is organized into layers. The bottom layer consists of the processor, peripheral IP cores, and the FPGA device (collectively called the hardware platform). The hardware platform is highly configurable due to the flexibility of FPGA-based designs and can be based around one or more processors and any number of IP cores. The hardware platform operating frequency is also variable. At the top layer of the firmware is the application layer, which is the user's application domain. Ideally, the application layer should be completely isolated from variations in the hardware platform. Variations in processor type or operating frequency should be transparent to the application layer. Isolation between the hardware platform and the application layer is achieved through the use of two additional layers: the hardware abstraction layer (HAL) and the software drivers.

Bare Metal Firmware Architecture
Bare Metal Firmware Architecture

Software Drivers

Back to top

Actel has a range of processors and subsystem IP available for use in building system-level designs in our FPGA devices. Actel has developed software drivers to ease the use of the subsystem cores with the Cortex™-M1, CoreMP7 (ARM7), and Core8051s processors. The drivers are available for FREE and delivered as C source, so that they can be easily edited, if needed, and included in a program file. The drivers provide a set of functions used to make use of the subsystem peripherals. These drivers hide the implementation details of a peripheral's operations behind a driver application programming interface (API). This allows the application developer to be only concerned with a peripheral's function and not its internal operation.

Software drivers are available for the following cores and can be individually downloaded by clicking on the links below:

You can also download all of the drivers in a bundle.

Hardware Abstraction Layers

Back to top

The HALs enable the software drivers to be used without modification with Cortex-M1, CoreMP7 and Core8051s and are available for FREE. The software driver's interaction with the hardware platform is done through the HAL. This isolates the driver's implementation from the hardware platform variations. A driver implementation typically interacts with the hardware peripheral it is controlling through sequences of register reads and register writes. The implementation of the HAL translates the read and write requests into the bus transactions relevant to the hardware platform. This enables programmers to seamlessly reuse code even when the hardware platform changes.

The Cortex-M1 HAL is included with each individual software driver that is available for download.

Real-Time Operating Systems

Back to top

Using a Real-Time Operating System (RTOS) adds two layers to the basic bare metal architecture described above. The application is written using the RTOS API. An RTOS adaptation layer is used to interface the Actel HAL and bare metal drivers to the RTOS driver framework.

RTOS-based System Firmware Architecture
RTOS-based System Firmware Architecture

The software drivers and HALs can be used in systems that use the following RTOS: