4 FPGA-based Embedded Processor
With rising gate densities of FPGA devices, many FPGA vendors now offer a processor that either exists in silicon as a hard IP or can be incorporated within the programmable device as a soft IP. The purpose of having a processor co-exist with conventional digital logic components is to provide flexilibility of combining software and hardware based control in one chip. Many algorithms that are difficult to code in HDL and have update time requirements in milliseconds can use the processor inside the FPGA. A whole suite of tools, consisting of compilers and assemblers help the designer code in C or C++. The motivation of this chapter is to introduce the use of FPGA embedded processors and to integrate custom digitial logic with FPGA-based processors.
4.1 Hardware–Software Task Partitioning
Referencing trajectory control
Control of position and speed loop, sequencing logic
Current and power device PWM control
Fig 4.1. Task update rates
A designer of a digital system identifies tasks and their update time requirements. As shown in Fig. 4.1, a robot controller task pyramid consists of tasks that need microsecond or millisecond update time. In our hypothetical robot control system, the task of robot joint trajectory computation, which needs 10–100 ms update time, is assigned to a processor. The processor is driven by a timer interrupt that updates
Introduction to Embedded System Design Using Field Programmable Gate Arrays
the trajectory profile every 10–100 ms. The task of motor current and power device PWM control is part of hardware logic (designed using HDL) because it needs to update every 50 μs.
4.2 FPGA Fabric Immersed Processors
The ability to support processor logic has brought a new dimension to the use of FPGA devices. It has provided designers the freedom to partition their designs either for single-threaded software flow or to use concurrent digital logic. A quick search on the internet shows that several 8- and 32-bit proprietary processors are offered by leading FPGA vendors along with established processors. The motivation for using the time tested, established processor is to shorten the learning curve of designers and build confidence in their use. Almost all major vendors of field programmable devices provide processors, for use with their respective devices. Table 4.1 shows a partial list of vendors and the processors they offer. Table 4.1. Partial list of contemporary FPGA-based processors Processor name MicroBlazeTM NIOS® LatticeMico32 CoreMP7 ARM Cortex-M1 LatticeMico8 Core8051 Core8051s PicoBlazeTM PowerPC AVR Type/Bits Soft/32 Soft/32 Soft/32 Soft/32 Soft/32 Soft/8 Soft/8 Soft/8 Soft/8 Hard/32 Hard/8 Interface bus IBM Coreconnect Avalon Wishbone APB AHB Input/Output ports Nil APB Input/Output ports IBM Coreconnect Input/Output ports FPGA vendor Xilinx Altera Lattice Actel Vendor independent Lattice Actel Actel Xilinx Xilinx Atmel
4.2.1 Soft Processors Soft processors exist as synthesized netlists incorporated in the FPGA using logic block resources of a particular FPGA. FPGA vendors offer soft processors catering to 8-bit and 32-bit applications. The 8-bit processor occupies a small footprint on the FPGA device and it uses the FPGA embedded memory for program and data
FPGA-based Embedded Processor
memory storage. Figure 4.2 shows the block diagram of PicoBlazeTM, an 8-bit soft controller from Xilinx. The PicoBlazeTM controller consists of an 8-bit input and an 8-bit output port. It also supports interrupt. The embedded block RAM of the FPGA serves as a location for program and data memory for the PicoBlazeTM. The PicoBlazeTM assembler takes the program file and creates the coefficient (.coe) file, loaded in the embedded memory of the FPGA. Among the 32-bit soft processors, two of the leading 32-bit proprietary soft processors are NIOS® from Altera and MicroBlazeTM from Xilinx....
Please join StudyMode to read the full document