A Reconfigurable Platform Architecture for an Automotive Multiple-Target Tracking System



Similar documents
Architectures and Platforms

Radar Signature in Multiple Target Tracking System for Driver Assistant Application

ELEC 5260/6260/6266 Embedded Computing Systems

7a. System-on-chip design and prototyping platforms

Networking Virtualization Using FPGAs

Outline. Introduction. Multiprocessor Systems on Chip. A MPSoC Example: Nexperia DVP. A New Paradigm: Network on Chip

Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip

Lesson 7: SYSTEM-ON. SoC) AND USE OF VLSI CIRCUIT DESIGN TECHNOLOGY. Chapter-1L07: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

FPGA area allocation for parallel C applications

Seeking Opportunities for Hardware Acceleration in Big Data Analytics

NIOS II Based Embedded Web Server Development for Networking Applications

ON SUITABILITY OF FPGA BASED EVOLVABLE HARDWARE SYSTEMS TO INTEGRATE RECONFIGURABLE CIRCUITS WITH HOST PROCESSING UNIT

Model-based system-on-chip design on Altera and Xilinx platforms

NORTHEASTERN UNIVERSITY Graduate School of Engineering

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

BUILD VERSUS BUY. Understanding the Total Cost of Embedded Design.

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM

LMS is a simple but powerful algorithm and can be implemented to take advantage of the Lattice FPGA architecture.

FPGA-based Multithreading for In-Memory Hash Joins

Software Development Under Stringent Hardware Constraints: Do Agile Methods Have a Chance?

Synchronization of sampling in distributed signal processing systems

Part-Based Pedestrian Detection and Tracking for Driver Assistance using two stage Classifier

Embedded System Hardware - Processing (Part II)

Introduction to Xilinx System Generator Part II. Evan Everett and Michael Wu ELEC Spring 2013

Distributed Elastic Switch Architecture for efficient Networks-on-FPGAs

Introduction to System-on-Chip

Accelerate Cloud Computing with the Xilinx Zynq SoC

FPGA. AT6000 FPGAs. Application Note AT6000 FPGAs. 3x3 Convolver with Run-Time Reconfigurable Vector Multiplier in Atmel AT6000 FPGAs.

Extending the Power of FPGAs. Salil Raje, Xilinx

Reconfigurable Computing. Reconfigurable Architectures. Chapter 3.2

International Workshop on Field Programmable Logic and Applications, FPL '99

How To Design An Image Processing System On A Chip

Float to Fix conversion

Performance Oriented Management System for Reconfigurable Network Appliances

Rambus Smart Data Acceleration

Multiprocessor System-on-Chip

Kirchhoff Institute for Physics Heidelberg

FPGA-based MapReduce Framework for Machine Learning

CoProcessor Design for Crypto- Applications using Hyperelliptic Curve Cryptography

What is a System on a Chip?

Aims and Objectives. E 3.05 Digital System Design. Course Syllabus. Course Syllabus (1) Programmable Logic

Implementation of emulated digital CNN-UM architecture on programmable logic devices and its applications

Exploiting Stateful Inspection of Network Security in Reconfigurable Hardware

Systolic Computing. Fundamentals

Run-Time Scheduling Support for Hybrid CPU/FPGA SoCs

HowHow to Get Rid of Unwanted Money

Power Reduction Techniques in the SoC Clock Network. Clock Power

System Software Integration: An Expansive View. Overview

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

MATLAB/Simulink Based Hardware/Software Co-Simulation for Designing Using FPGA Configured Soft Processors

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging

Attaining EDF Task Scheduling with O(1) Time Complexity

Hardware Implementation of Improved Adaptive NoC Router with Flit Flow History based Load Balancing Selection Strategy

Reconfigurable System-on-Chip Design

Low-resolution Image Processing based on FPGA

Lizy Kurian John Electrical and Computer Engineering Department, The University of Texas as Austin

PowerPC Microprocessor Clock Modes

Innovative improvement of fundamental metrics including power dissipation and efficiency of the ALU system

Hardware/Software Co-Design of a Java Virtual Machine

Floating Point Fused Add-Subtract and Fused Dot-Product Units

Building Blocks for PRU Development

Eight Ways to Increase GPIB System Performance

Pre-tested System-on-Chip Design. Accelerates PLD Development

Operating Systems 4 th Class

Real-Time Operating Systems for MPSoCs

All Programmable Logic. Hans-Joachim Gelke Institute of Embedded Systems. Zürcher Fachhochschule

CHAPTER 4: SOFTWARE PART OF RTOS, THE SCHEDULER

Rapid System Prototyping with FPGAs

GETTING STARTED WITH LABVIEW POINT-BY-POINT VIS

ELECTENG702 Advanced Embedded Systems. Improving AES128 software for Altera Nios II processor using custom instructions

IMPLEMENTATION OF FPGA CARD IN CONTENT FILTERING SOLUTIONS FOR SECURING COMPUTER NETWORKS. Received May 2010; accepted July 2010

Optimizing Configuration and Application Mapping for MPSoC Architectures

Multi-objective Design Space Exploration based on UML

Using Nios II Floating-Point Custom Instructions Tutorial

Making Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association

LogiCORE IP AXI Performance Monitor v2.00.a

Moving Beyond CPUs in the Cloud: Will FPGAs Sink or Swim?

Operating System Support for Multiprocessor Systems-on-Chip

3D On-chip Data Center Networks Using Circuit Switches and Packet Switches

Chapter 2 Heterogeneous Multicore Architecture

NORTHEASTERN UNIVERSITY Graduate School of Engineering. Thesis Title: CRASH: Cognitive Radio Accelerated with Software and Hardware

FAULT TOLERANCE FOR MULTIPROCESSOR SYSTEMS VIA TIME REDUNDANT TASK SCHEDULING

BEAGLEBONE BLACK ARCHITECTURE MADELEINE DAIGNEAU MICHELLE ADVENA

Data Center and Cloud Computing Market Landscape and Challenges

Architekturen und Einsatz von FPGAs mit integrierten Prozessor Kernen. Hans-Joachim Gelke Institute of Embedded Systems Professur für Mikroelektronik

Integer Computation of Image Orthorectification for High Speed Throughput

A Computer Vision System on a Chip: a case study from the automotive domain

FPGAs in Next Generation Wireless Networks

A Dynamic Link Allocation Router

Low-Overhead Hard Real-time Aware Interconnect Network Router

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

Development of a Research-oriented Wireless System for Human Performance Monitoring

Automotive Software Engineering

Testing of Digital System-on- Chip (SoC)

DS1104 R&D Controller Board

Which ARM Cortex Core Is Right for Your Application: A, R or M?

Architectural Level Power Consumption of Network on Chip. Presenter: YUAN Zheng

Transcription:

A Reconfigurable Platform Architecture for an Automotive Multiple-Target Tracking System Naim Harb, Smail Niar, Jehangir Khan LAMIH Université de Valenciennes et du Hainaut Cambrésis Valenciennes, France {naim.harb,smail.niar,jehangir.khan}@univvalenciennes.fr ABSTRACT This paper reports on our progress in developing a dynamically reconfigurable processing platform for an automotive multiple-target tracking (MTT) system. In addition to motivating our work, we present an overview of our design, some preliminary results, and report on the status of our work. Categories and Subject Descriptors C.3 [Computer Systems Organization]: Special-Purpose and Application-Based Systems real-time and embedded systems General Terms Design, Experimentation, Performance Keywords Automotive multiple target tracking, FPGAs, Multiprocessor system-on-chip, Partial dynamic reconfiguration, Systemlevel optimizations 1. INTRODUCTION The past two decades have witnessed a proliferation of microelectronic devices in automotive systems. Today, such devices are commonly used in a wide range of automotive applications including engine and vehicle control, anti-lock brakes, navigation systems, and car entertainment units. While early automotive systems were designed using microcontrollers, DSPs, and ASICs, some of the newer systems use field-programmable gate arrays (FPGAs) [7]. In addition to providing high logic densities, integrated hardware components, and fast design turnaround times, FPGAs can be easily reconfigured to meet the needs of their operating Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. APRES 2009 Grenoble, France Copyright 2009 ACM X-XXXXX-XX-X/XX/XX...$10.00. Mazen A. R. Saghir Department of Electrical and Computer Engineering Texas A&M University at Qatar Doha, Qatar mazen.saghir@qatar.tamu.edu environments. This makes FPGAs ideal platforms for new automotive applications. An increasingly important class of automotive applications, particularly for commercial vehicles, is driver assistance systems. Such systems reduce a driver s workload and improve road safety in stressful driving conditions (e.g. at night or in bad weather). Driver assistance systems often require real-time monitoring of the driving environment and other vehicles on the road. A multi-target tracking (MTT) system uses an onboard radar to keep track of the speed, distance, and relative position of all vehicles within its field of view. Such information is crucial in applications such as collision avoidance or intelligent cruise control. The computational needs of a MTT system increase with the number of targets that must be tracked. It is therefore very difficult for a single processor to handle these computational requirements alone. In this paper, we present an FPGA-based multiprocessor system-on-chip (MPSoC) architecture for implementing a MTT system. We describe the evolution of our system from a software-based implementation that distributes the computational workload among multiple soft processor cores to a hybrid implementation that combines soft processor cores with dedicated hardware blocks. We also discuss the system-level trade-offs we made and describe our plans to further evolve our architecture to support dynamic reconfiguration. 2. THE MTT APPLICATION The MTT application tracks targets by processing data measured by the radar every 25 ms. This data is processed in three iterative stages. During the observation stage, the MTT application reads speed, distance, and azimuth angle data for each target. During the prediction stage, an adaptive filter, such as a Kalman filter, is used to predict the location of each target on the subsequent radar scan. This prediction is based on the actual location data measured during the observation stage and an estimate of the location data computed by the filter during the previous radar scan. Finally, during the estimate stage, new target location estimates are computed for use in the subsequent prediction stage. Figure 1 shows the structure of the MTT application. A more detailed description of the application and its mathematical formulation can be found in our earlier work [3].

Data Association Track Maintenance Obs-less New Target Identifier Identifier Track Init / Del Function I$ D$ PDM FPU Int Latency Kalman 4KB 2KB Yes 3 ms Gating 16KB 2KB 3KB Yes 23 ms Solver 8KB 16KB Yes 24 ms Track 8 ms Incoming Observations Checker Obs-to-Track Assignment Cost Matrix Assignment Generator Solver Tracking Filters Target- Coordinate Estimates Table 1: Optimizations applied to various functions and resulting execution latencies Compute Fig. 3. the observed state coordinates received from the radar. At this stage the pairing between the prediction and the observations not done in a strictly one-to-one fashion. A single observation may be paired with several predictions and vice versa, if the probability is high enough to be accepted by the gate checking step. The costs associated with the pairings are put together in the cost matrix. This matrix is then passed to the assignment solver to determine the finalized one-to-one pairings. The pairings are made in a way to ensure minimum total cost for all the pairings. The finalized observation-track pairings are passed on to the tracking filters which use them for estimating the current states of targets and predicting the next states as well as the error covariance associated with these predictions. The predicted states and predicted error covariance are used by the Compute block to define probability gates or windows around the predicted states. The dimensions of the gates being dictated by the prediction error covariance, these gates demarcate the probability boundaries for the next state coordinate measurements. The Gating process can be viewed as the first level of eliminating the unlikely target-track associations in case multiple observations are paired with a single prediction or vice versa. In the second level of screening, functions. namely observation-to-track assignment, a strictly one-to-one coupling is established between observations and tracks. The Track Maintenance sub-block consists of three functions. The obs-less Identifier identifies the gate where no observation falls. SoC) This indicates configuration. a probable disappearance of an already known target and hence the need for deletion of its track after confirmation. The New Target Identifier detects the observations that fall outside all the gates. These observations are potential candidates for initiating new tracks after confirmation. The Track Init/Del function initiates new tracks or deletes existing ones when needed. In context of this The Proposed MTT implementation Figure 1: The MTT Application 3. BASELINE MTT SYSTEM work, the following rule has demonstrate experimentally good results: three observations out of five scans for the same target initiate a new track while three consecutive misses out of five scans for an existing target prompts the deletion of its track. The Tracking filters block in figure 3, is particularly important Figure 2 shows our baseline MTT system implementation, which uses multiple Nios-II soft processor cores [5] implemented in an Altera Stratix-II FPGA. To map the MTT application onto multiple processors, we divided our code into functions that interact in a producer-consumer fashion. We then distributed the functions among the processors to meet the 25 ms real-time constraint imposed by the radar scan window. To help us profile the run-time characteristics of our application and guide the allocation of functions to processors, we used dedicated hardware profiling counters to measure the latency and execution frequency of individual Our baseline system consists of 23 heterogeneous processor cores arranged in a multiprocessor-system-on-chip (MP- Due to the time-critical nature and floating-point requirements of the Kalman filter, and the need to track up to 20 targets simultaneously, our baseline system includes 20 dedicated processors configured with single-precision floating-point units that execute the Kalman filtering function. Moreover, the assignment solver, gating, and track maintenance functions [3] are each allocated to a different processor to minimize execution time and communication overhead. Where needed, processors are configured with appropriately sized instruction and data caches and local memories. Processors with interacting functions are also interconnected using appropriately sized FIFO buffers. To meet the 25 ms real-time constraint, we applied a number of optimizations to reduce the execution times of different functions. These included sizing the on-chip instruction and data cache memories for different processors to reduce off-chip memory access times; introducing on-chip private data memory (PDM) banks to store the system stack and the heap to reduce the cost of dynamic memory allocation in various functions; adding floating-point hardware support to some processors to execute floating-point operations more efficiently; and transforming some functions to only use integer data types and reduce overall execution time. Table 1 shows the different optimizations applied to various functions along with their final, corresponding, execution times. 4. HYBRID MTT SYSTEM Our baseline MTT system demonstrated the feasibility of using software-programmable processor cores to execute as the number of filters employed is equal to the maximum number of targets to be tracked. In our current work we have fixed this number at 20 as the radar we are using can measure the coordinates of at most 20 targets. Hence this block will use 20 similar filters in the final system. We use Kalman filters for this block. For linear Gaussian systems, this filter is known to be relatively efficient [1], [4], [5]. At start up, at most 20 of the incoming observations would Fig. 9. The proposed MPSoC architecture simply pass through the gate checker, Cost Matrix Generator and Assignment Solver on to the filters memories inputs. and A filter peripherals takes can varyfigure from system2: to system. Baseline TheMTT three blocks System of the Track Maintenance sub-func an observation as an inaccurate representation The architecture of the true hides statethe hardware details from the programmer, soofprogrammers the observationcan develop NiosII applications without of the target and the amount of inaccuracy individually don t demand heavy computational resources we group them together for mapping onto a processor. As depends on the measurement variancespecific of the sensor. knowledge The filter of the hardware implementation. be seen in Figure 9, every processor has an I-cache, a D-ca estimates the current state of the target Theand NiosII predicts architecture its anext complex uses separate application instructionand data still meet and a local itsmemory. real-time Sinceconstraints. the execution time of the individ state before the next observation is available. buses, classifying To estimate it the It as Harvard also demonstrated architecture. Both theinstruc- tion and data buses importance functions and of optimizing their latencies tothe access system a large shared m state of a target, we need a process model, a measurement model and an estimator. These are detailed below. are implemented implementation as Avalon-MM to meet masterthese ory, are performance not identical, dependence constraints. exclusively on a comm ports that adhere to the Avalon-MM interface specification. system bus would become a bottleneck. Additionally, si A. Process Model The data master port However, connects to both it also memory demonstrated and peripheral the the communication high cost, between in various area functions and is of produc The process model mathematicallycomponents projects current whileresource the stateinstructionutilization, master port connects associated only to consumer with anature, software-only complicated synchronization implementation. and arbitra This is particularly to the process to the future. This canmemory be presented components. in a linear protocols evident are notwith necessary. thehence Kalman we chose to have a sm stochastic difference equation as: The Kalman filter, as mentioned earlier, is recursive algorithm local memory for every processor and a large off-chip mem looping around prediction filtering andblock correction where steps. Both dedicated these device processors, as shared memory configured for nonwith critical sections of Y k = A Y k 1 + B U k + steps W k 1 involve matrix (IV-A.1) floating-point operations on floating units, point cache numbers. memories, application and modules. private As a result data themem- individual processors h ories, state heavy In equation (IV-A.1), Y k 1 and Y k These are n-dimensional operations demand are processing used toresources execute to complete estimated. in a timely Vectorway. Y k 1 This makes the filter a strong candidate the performance critical codes. In sections VII-B and VII-D the Kalman lower latencies filtering for accessing codetheir forlocal each memories contain vectors that include the quantities to be represents the state at instant k 1for while mapping Y k represents onto target. a the separate processor. Even Thus when for tracking multiple 20 targets shall demonstrate could howbe to systematically tracked by determine the opti state at instant k. The n x n matrix A in targets the difference at a time, equation we a single need 20Kalman identical processors filtering executing block, sizes theofcost these of caches implementing and the local memories. an (3.1) relates the state at time step k-1kalman to the state filters. at time step entire processor in the logic fabric Everyof processor an FPGA communicates to only withsup- port its neighboring proc The Computation block regularly passes information to sors through buffers. These buffers are dual-port FIFOs w Checker which in turn, a single, is in constant dedicated communication function handshaking may be signals tooindicating high. Awhen more the buffers are full with Cost Matrix Generator. cost-effective In view solution of these dependencies, would beempty to use and ahence hybrid regulating system the data that transfer between we group these three integrates blocks together, dedicated collectively Kalman call them filtering processors. hardware This arrangement blocks formswith a system level pipe the Gating Module and map them onto a single processor among the processors. At the lower level, the process to minimize inter-processor software-programmable communication. Inter-processor processor themselves cores. have a pipelined architecture (refer to TableI). T communication wouldto have better required understand additional logic theand functional the advantages andof numerical pipelined processing charac- are taken both at to the complexity of of the system. Kalman Avoiding filtering system level block, as well as weat the developed processor level. An additio would have addedteristics unnecessary inter-processor communication is also desirable advantage of this arrangement is that changes made to for reducing powera consumption. MATLAB model using single-precision functions running floating-point on different processors arithmetic. is an algorithm Details consisting of the of six mathematical distinct drastic effects model on the overall are described system behavior as long as do not have The assignment-solver iterative steps [9]. in Looping [3] and through [2]. thesewe stepsthen demands tested a interfaces our model remain unchanged. using two The buffers data are flushed w long execution time. Moreover, these steps have dependencies they are full and data transfer resumes after mutual cons among them. Hence sets: the assignment a random solverset has toof betarget kept together and cannot be tional combined range with any (i.e. of the distances other functions. fromthis 0 to procedure 150 meters doesn t affect andthe azimuth accuracy because the d data of the concerned from the processors. radar s Theopera- loss of information dur So we allocated a separate processor to the assignment solver. sampling frequency, as set by the radar PRT, is high eno angles from -6 to +6 degrees); and a more realistic data set that emulates a target being overtaken by the vehicle with the radar. Gaussian noise was also added to both data sets to model the error introduced by the radar sensors. 4.1 Filter Coefficients Stability Figure 3 shows the output response curves of different Kalman filter implementations for the distance measurements of the realistic data set. After a transient training interval, the filter output stabilizes and begins to track the input data (represented on the graph by the solid line). When analyzing our results, we noticed that for all filter implementations, and for both data sets, the elements of the

160 140 120 100 Distance (measured versus estimated) Distance measured Distance estimated (calculated Pk) Distance estimated (stable K) Distance estimated (4 bit precision K) Distance estimated (6 bit precision K) Distance estimated (9 bit precision K) Distance estimated (11 bit precision K) Distance estimated (13 bit precision K) Distance estimated (16 bit precision K) 76 74 72 Distance (measured versus estimated) Distance measured Distance estimated (calculated Pk) Distance estimated (stable K) Distance estimated (4 bit precision K) Distance estimated (6 bit precision K) Distance estimated (9 bit precision K) Distance estimated (11 bit precision K) Distance estimated (13 bit precision K) Distance estimated (16 bit precision K) Distance (m) 80 60 Distance (m) 70 68 66 40 64 20 62 0 0 2 4 6 8 10 12 14 16 Time (sec) Figure 3: Kalman filter response for distance measurements. 8.4 8.6 8.8 9 9.2 9.4 9.6 9.8 10 Time (sec) Figure 4: Filter response errors for different precision levels. estimation covariance matrix [3][2] converge to optimal values and stabilize. This suggests that these elements, which are computed iteratively and depend on the characteristics of the radar, can be fixed at their optimal values. By setting these elements to constant values, the elements of other matrices (e.g. the Kalman gain matrix [3][2]) also become constants. This significantly reduces both the computational complexity and execution time of the filter, and leads to a more efficient implementation of the filter block. It also leads to a faster filter response time (c.f. the curves labeled calculated Pk and stable K in Figure 3). Our hardware implementation of the Kalman filter block was therefore designed using the optimal constant values of various filter coefficients. 4.2 Fixed-Point Data Precision The software implementation of the Kalman filter block uses single-precision floating-point arithmetic and requires a processor with a floating-point unit to execute. However, the dynamic range of the data obtained from the radar s sensors (150-meter distances and -6 to +6 degree angles, respectively) is significantly smaller than the range supported by a floating-point unit. Furthermore, an automotive target can still be tracked effectively even when the level of numerical precision is low. For example, the MTT system will likely behave the same way whether a target is determined to be at 29.8 or 29.7889993 meters away. This suggests that a fixed-point Kalman filter block that provides acceptable levels of numerical accuracy and precision is a more costeffective alternative to a floating-point implementation. Figure 4 shows a close-up view of the Kalman filter s response curves for the distance measurements after the output has stabilized. The solid line corresponds to the floatingpoint implementation while the other curves correspond to fixed-point implementations at different levels of precision. Since the radar has a range of 150 meters, only 9 bits are needed to represent the (signed) integer portion of the distance measurement. The curves in Figure 4 therefore cor- respond to the filter response as we increase the fractional portion of the distance measurement from 4 to 16 bits. Figure 4 clearly shows that the error between the floatingpoint reference and the various curves decreases as the fractional precision level increases. However, even when designing with the fast and area-efficient on-chip hardware multipliers found in most high-density FPGAs, increasing precision levels typically result in larger and slower hardware. To optimize the utilization of 18 18 hardware multipliers, we implemented our filter block using an 18-bit fixed-point data format. For distance computations we used a 9-bit, signed, integer component and a 9-bit fractional component, and for angle computations, we used a 4-bit, signed, integer component and a 14-bit fractional component. 4.3 Software vs. Hardware Implementation Table 2 shows the FPGA resources used by both the software and hardware implementations, which, unlike our baseline system, targeted the Xilinx XC4VFX12 Virtex-4 FPGA and Xilinx MicroBlaze soft processor core, respectively [4]. The reason for this change is that, currently, only Xilinx FPGAs and design tools support dynamic partial reconfiguration [1]. Since we are interested in exploring dynamically reconfigurable MPSoC architectures, we are limited to using Xilinx devices and tools. However, this does not diminish the results of our baseline implementation, which demonstrated the feasibility of implementing a heterogeneous MP- SoC architecture using customized soft processor cores. Our results show that the hardware implementation uses almost 80% fewer logic resources (LUTs and slices) and no slice flip-flops or BRAMs compared to the software implementation. On the other hand, the hardware implementation uses four times as many DSP48 blocks as the software implementation. These results clearly demonstrate the architectural characteristics of the hardware implementation, which makes use of the constant filter coefficient and fixedpoint arithmetic optimizations described earlier, in addition to making use of the fast and area-efficient DSP48 hardware

FPGA Resources Available Used (SW) Used (HW) Slices 5,472 1,265 (23%) 265 (4%) Slice Flip Flops 10,944 1,347 (12%) 0 (0%) 4 input LUT 10,944 1,902 (17%) 403 (3%) DSP48s 32 3 (9%) 12 (37%) RAMBs 36 8 (22%) 0 (0%) ICAP Configuration Memory HW Block Slot Bus Macro Configuration Bus HW Block Slot Bus Macro Soft Processor Soft Processor Table 2: Hardware resources used by the software and hardware Kalman implementations. blocks. Conversely, the software implementation requires enough logic and storage resources to implement a pipelined processor datapath. We also compared the software and hardware implementations in terms of latency. For both implementations we used a 100 MHz system clock. To measure the latency of the Kalman software function we used a hardware timer to measure the number of CPU clock cycles spent inside the function. We then multiplied the clock cycle count by the period of the system clock, which showed the latency of the software implementation to be 268.0325 µsec. To measure the latency of the Kalman hardware block we used the results of the post-placement and routing timing report, which showed the latency to be 0.033 µsec. Our results therefore show that the hardware implementation is 8,122 times faster than our software implementation. 5. DYNAMICALLY RECONFIGURABLE MTT SYSTEM One of the disadvantages of a hybrid MTT system is that the hardware blocks used in the system may become obsolete if the application or the algorithms around which they are based change. For example, different types of filters may be needed for tracking targets in different driving environments (e.g. urban, suburban, rural, etc...). One way around this problem is to implement a system with all the necessary hardware blocks, and to select and use the appropriate blocks at run-time. However, this is not a very area-efficient solution, and it does not safeguard against hardware block obsolescence. Another solution, particularly for systems implemented in FPGAs, is to reconfigure the entire FPGA to implement a new system with new hardware blocks. However, this also is not very efficient since only a small portion of the hardware implementation typically needs to be reconfigured. A better solution would be to build a dynamically reconfigurable system that enables an application to replace obsolete or inadequate hardware blocks with new ones on the fly. However, such a solution requires FPGA devices and tools capable of supporting partial dynamic reconfiguration. 5.1 Partial Dynamic Reconfiguration Xilinx is currently the only FPGA vendor that provides devices and tools that support partial dynamic reconfiguration [1]. This technology allows designers to map presynthesized, implemented, and routed blocks onto specific regions of an FPGA device. The bit streams needed to reconfigure a portion of an FPGA can be stored either onor off-chip. An internal configuration access port (ICAP) controller [6] can be added to the system to manage the reconfiguration process, and dedicated bus macros [1] can be Interconnect Figure 5: Proposed dynamically reconfigurable system architecture. used to interface the reconfigurable portions of the architecture with the rest of the system. 5.2 Proposed System Architecture Figure 5 shows a high-level view of our proposed system architecture. Like the hybrid MTT system, it includes a number of soft processor cores for executing the controlintensive portions of the MTT application. It also includes a number of slots that can be configured with pre-designed hardware blocks for accelerating the performance-critical portions of the application. The soft processors and hardware blocks would be able to exchange data through interconnected FIFO buffers. The system also includes an ICAP controller for managing the configuration of hardware blocks on the fly. The configuration bit streams could be stored on- or off-chip, while the loading, removal, and swapping of hardware blocks would be controlled by the main MTT application software using various performance-enhancing heuristics. 6. STATUS AND REMAINING WORK We have implemented the baseline and hybrid MTT systems and evaluated both in terms of performance and FPGA resource utilization. We are currently implementing the dynamically reconfigurable MTT system using the Xilinx ICAP and bus macro technologies. Once we complete developing and validating our new hardware platform, we will focus on developing the software mechanisms for managing the dynamic reconfiguration of hardware accelerators and the heuristics for maximizing run-time performance. Our long-term goal is to develop a dynamically reconfigurable platform architecture that would be suitable for a wide range of automotive applications. 7. REFERENCES [1] J. Becker et. al. Dynamic and Partial FPGA Exploitation, Proceedings of the IEEE, pp. 438-452, Vol. 95, No. 2, IEEE, 2007. [2] S. Blackman and R. Popoli, Design and Analysis of Modern Tracking Systems, Artech House Publishers, 1999. [3] J. Khan et. al. An MPSoC Architecture for the Multiple Target Tracking Application in Driver Assistance System, Proceedings of the 19th

International Conference on Application-Specific Systems, Architectures and Processors (ASAP), pp. 126-131, IEEE, 2008. [4] MicroBlaze Processor Reference Guide. UG081 (v9.0). http://www.xilinx.com. [5] NIOS-II Processor Reference Handbook. http://www.altera.com. [6] OPB HWICAP Data Sheet. DS 280. http://www.xilinx.com. [7] M. Ullmann et. al. On-Demand FPGA Run-Time System for Dynamic Reconfiguration with Adaptive Priorities, Proceedings of the 14th International Conference on Field-Programmable Logic and Applications (FPL), pp. 454-463, Springer-Verlag LNCS Vol. 0302, 2004.