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 ...
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