05.03.2013 Views

Xcell Journal Issue 78: Charge to Market with Xilinx 7 Series ...

Xcell Journal Issue 78: Charge to Market with Xilinx 7 Series ...

Xcell Journal Issue 78: Charge to Market with Xilinx 7 Series ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

XCELLENCE IN AUTOMOTIVE APPLICATIONS<br />

other modules (inter- or intra-ECU)<br />

only via the runtime environment.<br />

As ECUs continue <strong>to</strong> integrate ever<br />

more functionality, FPGA devices can<br />

be a sensible alternative <strong>to</strong> single- or<br />

multicore MCUs. This overview of the<br />

different AUTOSAR layers may hint at<br />

the benefits that designers can extract<br />

from this architecture when deploying<br />

it in programmable logic. Let’s take a<br />

closer look at how our design could<br />

RTE<br />

Flash<br />

Memory<br />

RTE<br />

RAM<br />

Memory<br />

potentially implement a solution<br />

based on cus<strong>to</strong>m static hardware<br />

(flash- or SRAM-based FPGA technology),<br />

and then extend this approach <strong>to</strong><br />

a runtime reconfigurable hardware<br />

implementation (SRAM-based partially<br />

reconfigurable FPGA).<br />

ECU DESIGN ON FPGA-BASED<br />

STATIC HARDWARE<br />

The AUTOSAR architecture fits well<br />

in an embedded system composed of<br />

a CPU, memory and programmable<br />

logic. The ECU platform requires one<br />

CPU or host processor <strong>to</strong> manage the<br />

application and process the different<br />

functions distributed in software<br />

components through the APP layer. At<br />

the same time, the MCU layer and part<br />

of the basic software layer can be synthesized<br />

in hardware in the programmable<br />

logic fabric. Hence, in addition<br />

<strong>to</strong> implementing standard peripherals<br />

attached <strong>to</strong> the CPU, other cus<strong>to</strong>m<br />

RTE<br />

Standard<br />

Peripherals<br />

peripherals and coprocessors can<br />

coexist in hardware and be <strong>to</strong>tally or<br />

partially managed in software.<br />

Dedicated coprocessors or core<br />

processors are suitable from the point<br />

of view of functional safety <strong>to</strong>o, since<br />

they can implement functionality <strong>with</strong><br />

inherent freedom of interference in<br />

hardware, bringing a high level of flexibility—and<br />

even redundancy when<br />

required—<strong>to</strong> the system design. Also,<br />

SYSTEM BUS<br />

RTE<br />

HOST<br />

CPU<br />

Cus<strong>to</strong>m<br />

Coprocessors<br />

the intermediate RTE layer can be synthesized<br />

in RAM blocks distributed<br />

along the FPGA or in flip-flops embedded<br />

in the logic cells of the device, as<br />

well as external memory. Moreover, it’s<br />

easy <strong>to</strong> design the RTE signal interfaces<br />

<strong>to</strong> allow both read and write operations<br />

(via single-port memories) or <strong>to</strong> restrict<br />

the architecture <strong>to</strong> either read or write<br />

transactions only (by means of single<br />

dual-port memories <strong>with</strong> two independent<br />

read and write ports) as a protective<br />

measure against interference, like the<br />

counterpart sender and receiver software<br />

ports that AUTOSAR defines.<br />

Figure 2 shows the proposed porting<br />

of the MCU-based AUTOSAR<br />

ECU architecture in<strong>to</strong> an Extensible<br />

Processing Platform (EPP) or FPGA<br />

device, keeping a clear system partitioning<br />

in layers. Below the RTE layer<br />

are the operating system (OS), memory<br />

stack, communication stack, I/O stack<br />

and so on. Above it are the software<br />

components, which implement the<br />

applications and communicate <strong>with</strong> the<br />

RTE through AUTOSAR interfaces.<br />

Due <strong>to</strong> the inherent complexity of<br />

the AUTOSAR architecture, its deployment<br />

demands powerful embedded<br />

computing platforms. Today, the typical<br />

ECU implementation is based on a<br />

32-bit single-core processor on an<br />

MCU platform. However, more and<br />

more, a single core is not going <strong>to</strong> be<br />

enough <strong>to</strong> deliver all the computational<br />

power demanded. Yet the use of multicore<br />

CPUs can degrade performance<br />

if they share the program/data memory<br />

through a multiprocessor bus <strong>with</strong><br />

arbitration mechanisms, often necessitating<br />

a highly complex solution.<br />

Instead, we propose a new alternative<br />

based on programmable logic and<br />

composed of only one single-core<br />

processor playing the role of host CPU<br />

but surrounded by more-intelligent<br />

peripherals, coprocessors or even slave<br />

processors. All these computing units<br />

can be instantiated in the FPGA fabric<br />

as new soft-core processors, such as the<br />

<strong>Xilinx</strong> PicoBlaze and MicroBlaze,<br />

which run their own code from dedicated<br />

RAM blocks of the FPGA (separate<br />

soft-core processors <strong>with</strong> dedicated<br />

program memories), or as made-<strong>to</strong>measure<br />

hardware accelera<strong>to</strong>rs. In both<br />

cases, the <strong>to</strong>pology is one host CPU<br />

<strong>with</strong> smart peripherals that offload<br />

24 <strong>Xcell</strong> <strong>Journal</strong> First Quarter 2012<br />

RTE<br />

I/O<br />

Registers<br />

Interrupt<br />

Controller<br />

Figure 3 – Block diagram of an au<strong>to</strong>motive ECU deployed in an FPGA<br />

RTE<br />

Functional<br />

Safety Cores<br />

RTE<br />

System<br />

Timer

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!