Research Article Practical Education Fostered by Research...

13
Research Article Practical Education Fostered by Research Projects in an Embedded Systems Course Vanderlei Bonato, 1 Marcio M. Fernandes, 2 Joao M. P. Cardoso, 3 and Eduardo Marques 1 1 Department of Computer Systems, Institute of Mathematical and Computing Sciences, e University of Sao Paulo, 13560-970 S˜ ao Carlos, SP, Brazil 2 Department of Computer Science, Federal University of S˜ ao Carlos, 13565-905 S˜ ao Carlos, SP, Brazil 3 Department of Informatics Engineering, Faculty of Engineering, University of Porto, 4200-465 Porto, Portugal Correspondence should be addressed to Vanderlei Bonato; [email protected] Received 30 January 2014; Accepted 21 May 2014; Published 29 June 2014 Academic Editor: Michael H¨ ubner Copyright © 2014 Vanderlei Bonato et al. is is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. e very nature of universities makes them unique environments for research and teaching. Although both activities constantly borrow from each other, a deeper level of interaction is not always achieved for several reasons. is paper presents a successful experience on conducting an undergraduate course on embedded systems, based on strong interaction with related research activities previously conducted by the authors. Known for being everywhere, embedded systems are constantly expanding in both complexity and volume production. In addition, heterogeneous systems are becoming prevalent in modern applications, standing as an additional difficulty to students in this area. In this context, this paper presents experiences in teaching embedded systems using a project-based learning pedagogical approach, with strong emphasis on mobile robotic applications previously developed by MSc and PhD students. As a result, it has been observed that undergraduate students have the opportunity to build a strong background and feel better prepared to face the challenges to be found in their future professional activities. 1. Introduction In recent years embedded computing has emerged as the new paradigm for the design and implementation of modern com- puter systems, succeeding mainframes, minicomputers, and finally desktop computers. ey consist in the fastest growing market share for computing products, already accounting for the largest number of systems being deployed. As shown by Ebert and Jones [1], in 2009 for each person living in a developed country there were about 30 embedded pro- cessors, clearly exceeding the number of any other kind of computing system. Typical examples of embedded systems include tablets, smart phones, digital cameras, TV set-top boxes, security systems, personal robots, automotive control devices, and medical equipment. In addition, as systems requirements grow in complexity, the need for highly special- ized hardware/soſtware platforms becomes more critical. A design option of growing interest is the use of a heterogeneous computing platform, which may contain pos- sible combinations of CPUs, DSPs, and custom devices and accelerators based on reconfigurable hardware. A typical example of such architecture is the MORPHEUS platform [2]. As shown in that article, the platform was shown to be viable for the successful implementation of complex embedded sys- tems such as wireless telecommunications, video processing, networking, and smart cameras. ose implementations also stress the need for a robust toolset, as the programming model for a heterogeneous platform can be quite complex. In the case of the MORPHEUS platform, the toolset is based on the MOLEN paradigm, which allows general purpose conventional code and hardware descriptions to coexist in a program. is programming model was originally employed by the MOLEN Polymorphic Processor, another example of heterogeneous architecture [3]. Heterogeneous computing Hindawi Publishing Corporation International Journal of Reconfigurable Computing Volume 2014, Article ID 287205, 12 pages http://dx.doi.org/10.1155/2014/287205

Transcript of Research Article Practical Education Fostered by Research...

Page 1: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

Research ArticlePractical Education Fostered by Research Projects inan Embedded Systems Course

Vanderlei Bonato1 Marcio M Fernandes2 Joao M P Cardoso3 and Eduardo Marques1

1 Department of Computer Systems Institute of Mathematical and Computing SciencesThe University of Sao Paulo 13560-970 Sao Carlos SP Brazil

2 Department of Computer Science Federal University of Sao Carlos 13565-905 Sao Carlos SP Brazil3 Department of Informatics Engineering Faculty of Engineering University of Porto 4200-465 Porto Portugal

Correspondence should be addressed to Vanderlei Bonato vbonatoicmcuspbr

Received 30 January 2014 Accepted 21 May 2014 Published 29 June 2014

Academic Editor Michael Hubner

Copyright copy 2014 Vanderlei Bonato et al This is an open access article distributed under the Creative Commons AttributionLicense which permits unrestricted use distribution and reproduction in any medium provided the original work is properlycited

The very nature of universities makes them unique environments for research and teaching Although both activities constantlyborrow from each other a deeper level of interaction is not always achieved for several reasons This paper presents a successfulexperience on conducting an undergraduate course on embedded systems based on strong interaction with related researchactivities previously conducted by the authors Known for being everywhere embedded systems are constantly expanding in bothcomplexity and volume production In addition heterogeneous systems are becoming prevalent in modern applications standingas an additional difficulty to students in this area In this context this paper presents experiences in teaching embedded systemsusing a project-based learning pedagogical approach with strong emphasis on mobile robotic applications previously developedby MSc and PhD students As a result it has been observed that undergraduate students have the opportunity to build a strongbackground and feel better prepared to face the challenges to be found in their future professional activities

1 Introduction

In recent years embedded computing has emerged as the newparadigm for the design and implementation ofmodern com-puter systems succeeding mainframes minicomputers andfinally desktop computersThey consist in the fastest growingmarket share for computing products already accounting forthe largest number of systems being deployed As shownby Ebert and Jones [1] in 2009 for each person living ina developed country there were about 30 embedded pro-cessors clearly exceeding the number of any other kind ofcomputing system Typical examples of embedded systemsinclude tablets smart phones digital cameras TV set-topboxes security systems personal robots automotive controldevices and medical equipment In addition as systemsrequirements grow in complexity the need for highly special-ized hardwaresoftware platforms becomes more critical

A design option of growing interest is the use of aheterogeneous computing platform which may contain pos-sible combinations of CPUs DSPs and custom devices andaccelerators based on reconfigurable hardware A typicalexample of such architecture is theMORPHEUSplatform [2]As shown in that article the platform was shown to be viablefor the successful implementation of complex embedded sys-tems such as wireless telecommunications video processingnetworking and smart cameras Those implementations alsostress the need for a robust toolset as the programmingmodel for a heterogeneous platform can be quite complexIn the case of the MORPHEUS platform the toolset is basedon the MOLEN paradigm which allows general purposeconventional code and hardware descriptions to coexist in aprogram This programming model was originally employedby the MOLEN Polymorphic Processor another example ofheterogeneous architecture [3] Heterogeneous computing

Hindawi Publishing CorporationInternational Journal of Reconfigurable ComputingVolume 2014 Article ID 287205 12 pageshttpdxdoiorg1011552014287205

2 International Journal of Reconfigurable Computing

also stresses the need for multitarget programming frame-works able to reduce the required implementation effortTheAccelerator System [4] is an example of this kind of program-ming system being able to target multicore processors withvector instructions GPUs and FPGAs using a single sourcecode described in conventional high level languages such asC++ Liquid metal [5] is a similar tool also targeting CPUsGPUs and FPGAs but using Lime as source code a newprogramming language

As it happens during any technology shift period skillsshortage can be a problem as the current curriculum maynot address the whole set of issues involved According toRicks et al [6] developers need to have a detailed knowledgeabout devices and applications in order to master the currentembedded system sophisticationThe range of skills requiredfor embedded systems design encompasses knowledge aboutdigital logic computer architecture hardware descriptionlanguages real-time requirements and resource-aware soft-ware development Although these topics are adequatelytaught in computer science courses students tend to see themas isolated units with little relation to embedded systemsReconfigurable computing can be used as a common plat-form for teaching all of those subjects and also to expose stu-dents to some of the main concepts and practices in the field

Reconfigurable hardware such as FPGAs (field-program-mable gate arrays) is a rich and flexible platform wherestudents can create any kind of digital system ranging from asingle circuit to a very complex and heterogeneous embed-ded system architecture [7] This is a good platform toteach students hardwaresoftware codesign allowing themto simulate and debug software and hardware together tocreate or configure softcoremicroprocessors and to optimizethe system in terms of performance resources usage andpower consumption However since programming hardwarerequires a different way of thinking than developing softwareit is desirable that computer science degrees add moreemphasis on teaching how to program systems with bothcomponents

Awell-recognizedway tomotivate students to learn aboutdesign implementation and programming of embedded sys-tems is via contemporary and challenging applications suchas those found in the embedded mobile robotics field [8]Practical-based approaches have been used by other educa-tors as away to catch student attention [9ndash11]Mobile roboticsis an emerging topic and although significant advances havebeen observed in recent years there are still many challengesto be faced mainly when autonomous and customized robotsare considered [12] According to Touretzky [13] computerscience students should be better prepared for the roboticrevolution since real robots are computationally complexcomprising both hardware and software processing cores

As a result of studying mobile robotics students learnreconfigurable computing and embedded systems otherwiserather unpopular among many computer science studentsHowever the growing complexity of embedded systemsdesign and applications makes real projects a far goal to thetypical one-semester course One way to bridge this gap isto foster practical teaching by means of stronger interactionbetween classroom and research labs at the university level

In this context the main contributions of this paper are asfollows

(i) showing a way to reinforce undergraduate courseson embedded systems by using research results andexpertise produced by graduate students which canbe seen as a strategy to put a project-based learning(PBL) pedagogical approach into practice

(ii) presenting real teaching experiences (at ICMC-USPBrazil) and reasons for using FPGA platforms andmobile robotics to teach embedded systems in com-puter science programs

(iii) pointing out the main difficulties faced by the stu-dents with this methodology which may help toreproduce and improve the strategies to be presented

2 A Project-Based Learning Approach

The dynamic and multidisciplinary nature of computer sci-ence (CS) both in its core subjects and the ever-growingapplication domains makes CS education particularly chal-lenging The primary approach to CS education is still basedon knowledge transmission which can be considered essen-tial in some instances However it is also perceived as limitedfor a number of reasons such as not promoting higher orderthinking or advanced reasoning skills [14] An alternativeapproach to CS education is project-based learning [15]

According to [16] project-based courses can be con-sidered as a method within the problem-based learningtoolkit being common in computing education Problem-based learning [17] seeks to empower students such that theytake responsibility for their own learning It was originallyenvisioned for medical education a field where it is wellestablished and is considered successful [18]

The difference between problem- and project-basedapproaches may be fuzzy in its principles and strategies Itcan be argued that a problem is more loosely defined whilea project is a well-defined problem with clear objectivesAccording to [19] a project can be considered as an instanceof PBL if it adheres to the following five criteria

(1) Centrality Projects are central not peripheral to thecurriculum contents and main objectives

(2) Driving Question Projects are focused on questionsor problems that ldquodriverdquo students to encounter thecentral concepts and principles of a discipline

(3) Constructive Investigation Projects involve studentsin a constructive investigation (goal directed process)involving inquiry knowledge building and resolu-tion

(4) Autonomy Projects are student-driven to some signif-icant degree not being totally teacher-led scripted orpackaged

(5) Realism Projects are realistic (not school-like) givinga feeling of authenticity to students

A comprehensive analysis and categorization of practicalproblem-based learning in computing education can befound in [14] It has been concluded in that article that

International Journal of Reconfigurable Computing 3

the penetration of problem-based learning into the averagecomputing curricula is still shallow with faculty membersworking in isolation On the other hand it was concludedthat lecturers and studentsrsquo experiences are usually positiveA more specific investigation on project-based course isreported in [16] focusing on course design composition ofgroups and assessment

The educational approach described in this paper fitswell in the five-criterion scenario defined by [19] centralitydriving question constructive investigation autonomy andrealism As such it can be considered as a realistic case studyof a project-based course in the later stages of a computerscience degree

Embedded systems have a complex nature when com-pared to desktop or server software the prevalent platformadopted by most courses in the typical CS curriculum Adiverse mix of software and hardware components func-tional and nonfunctional requirements and significant dif-ferences between target applicationsmake it difficult to adopta conventional approach to embedded systems teaching Pre-vious experiences have shown to the authors that applying theconventional pedagogical approach to embedded systemsteaching can be very effective for the particular scenarioconsidered by the courseHowever it was perceived that a sig-nificant number of students would feel reluctant to undertakea new project in embedded systems even after a successfulcompletion of the standard course One of the reasons forthat the authors believe is that those students would not feelconfident enough to propose by themselves a significantlydifferent design for the new project By adopting a PBLapproach and employing a hands-on and realistic project inthe first course on embedded system the authors aim toempower students with the skills necessary to tackle othercomplex and diverse projects in this field This is a desirableoutcome considering that embedded systems development isan area of ever-increasing interest and presents a shortages ofwell qualified professionals

The use of realistic projects in the course described in thispaper is central to the adopted pedagogical approach Ratherthan using the project as an illustration of theoretical con-cepts it is a trigger for knowledge discovering and assemblingof new and revisited techniques

The remainder of this paper is organized as follows Theimportance of reconfigurable hardware is discussed in thenext section Then Section 4 argues about the importance ofmobile robotics for the success of the approach presented inthis paper Section 5 presents the actual teaching scenario inwhich embedded systems are taught along with the learningoutcomes expected Section 6 details the mobile roboticprojects used in an undergraduate course teaching embeddedsystems Section 7 presents the teaching platforms employed(hardware and software) Section 82 presents and examinesthe feedback given by students followed by conclusions in thelast section

3 Reconfigurable Hardware

Field-programmable gate arrays (FPGAs) are reconfigurablehardware devices composed of an array of logic blocks

an interconnection network and a set of IO cells Theprogrammability of FPGAs comes from the configurabilityof these three elements in such a way that any computationalfunction can be implemented [20] The main FPGA advan-tage over dedicated devicesmdashapplication specific integratedcircuit (ASIC) which is very costly to be designedmdashisthe flexibility of adapting the computational architectureaccording to the user needs after the silicon fabricationprocess is completed However to provide such flexibilityFPGAs come at higher cost in area delay and power con-sumption when compared to ASIC devices [21] In spite ofthose drawbacks FPGA devices are gaining more and moreimportance over the years as they bridge the gap betweenASICs and microprocessors [22] For this reason they havebeen extensively used in both academic and industrial fieldsfor prototyping new hardware architectures for acceleratinga wide variety of applications and also for developing anddeploying commercial products However knowledge aboutdigital systems and hardware description languages is neededto efficiently program reconfigurable hardware which can beconsidered a barrier for an even higher acceptance of thistechnology

The best practices when designing for FPGAs include thedescription of the architecture in a high level descriptionlanguage (HDL) such as VHDL Verilog Bluespec Sys-temVerilog SystemC or Handel-CThe textual description issynthesizable and is used as input to logic and RTL (register-transfer level) synthesis tools that automatically generate thecircuit netlist The netlist is then mapped placed and routedto create the bitstreams that are responsible for programmingthe target FPGA device This development flow does notrequire fullmastering of thosemethods and techniques espe-cially the ones related to logic synthesis and place and routingIn some way the flow can be seen as a black box similar tothe one used by students when compiling a software programto a target microprocessor As it happens with softwareprogramming to optimize or use some specific resourcesof the target system students may need some knowledgeabout the underlying target architecture Of course if fullyoptimized hardware is required more knowledge abouthardware design the underlying FPGA architecture and thetools used in the development flow may be necessary

University programs maintained by companies such asthe one fromXilinx [23] andAlterarsquos companies [24] allow theuse of state-of-the-art commercial tools to program FPGAsDespite of presenting some restrictions simulators such asModelSim [25] are also freely available for teaching purposesStudents can also download copies of those tools to useat home to work on homework assignments thus improv-ing their experience The available EDA tools and FPGAplatforms provide nearly every resource needed to masterembedded systems design Project development may have toaccomplish the partitioning of software code in order to shiftsome processing tasks to dedicated hardware componentsThe first implementation may be a software-centric one afterwhich students may realize that hardwaresoftware partition-ing can be the only alternative to enforce system constraints(eg energy consumption performance etc) By doing sostudents can acquire knowledge related toAmdahlrsquos Law [26]

4 International Journal of Reconfigurable Computing

profiling identification of the computational structures moresuited to be implemented as dedicated hardware componentsinterfacing schemes communication overheads and so forth

To conduct the necessary practical experiments there ishowever the need to expose students to complex examplesallowing them to have a perception of the problems theymight face in the real world So a question may arise whatkind of applications shall students work on in order to acquireall the expertise that is needed to develop embedded systemsBearing in mind the answer to this question mobile roboticstasks and applications have been selected as described in thenext sections

4 Why Mobile Robotics

Developing mobile robots encompasses several challengesand can be a suitable set-up to teach students many aspectsof modern and future embedded systems Personal robotsfor instance are usually mobile and need a large degree ofautonomy for localization navigation and mapping tasksMany of the requirements usually presented by this kindof system are prevalent in almost all other kinds of theembedded system applications More specifically mobilerobotics has been chosen as the target application for teachingpurposes based on the following reasons

(i) It includes all the characteristics of embedded sys-tems ranging from simple to complex ones

(ii) It requires students to deal with concepts such asvideo audio sensors wireless networking motorcontrol and navigation

(iii) It usually demands miniaturization frequently lead-ing to a system-on-a-chip (SoC) solution

(iv) It accommodatesmany interesting requirements suchas low cost low energy consumption andhigh perfor-mance

(v) It needs flexibility and programmability(vi) It typically needs hardwaresoftware codesign since

for most robotic kernels using software implementa-tions alone does not permit achieving the requiredperformance

(vii) It is a very attractive topic to students(viii) All of those reasons are desirable when conducting a

PBL course

Based on previous and ongoing experiences conductedby our research group on this field students seem to bevery motivated to study subjects and work with examplestargeting a mobile robot platform Since embedded systemsand reconfigurable computing expertise is acquired duringthe implementation of robotic kernels the strategy can beconsidered as an important element to attract computerscience students to topics otherwise not considered by themOther authors have also successfully used robotics to teachconcepts in digital design and in other courses aswell [27 28]The work presented in this paper is similar to the ones in abroader context but differs significantly by the nature of the

Table 1 SSC0711 course schedule

Week TopicsTheoretical Practical

1 Introduction embedded systems mdash2 Embedded systems design flow Tools3 State machines Candidate projects4 Concurrent process Problem analysis5 Interfaces and protocols SW implementation6 Control systems SW implementation7 HWSW partitioning Performance analysis8 HWSW integration HWmodelling9 mdash HW implementation10 mdash HW implementation11 mdash HW implementation12 SoC technology HW implementationtests13 State-of-art HWSW codesign HWSW integration14 mdash HWSW integrationtests15 mdash Demonstration

applications worked on by the students Bindalrsquos work focuseson a robotic arm while Kimrsquos work employs the well-knownLego Mindstorms kits

5 Teaching Embedded Systems toUndergraduate Students

At ICMC-USP one of the leading computer science depart-ments in Brazil mobile robotics has been used as practicalstudy cases to teach embedded system theory and practice inan undergraduate one-semester course offered as part of theComputer Science Bachelors curriculumThe course is inter-nally referred to as SSC0711mdashEmbedded SystemsHWSWCo-Design (more information about this course (in Portuguese)can be obtained at httpssistemasuspbrjupiterwebobter-Disciplinasgldis=SSC0711 or directly from the first author)running during 15 weeks In terms of supervised teachingthe course is equally split between theory and practice (2hoursweek each) However students spend significantlymore time developing their chosen projects out of classesreceiving help from tutors whenever necessary

Table 1 shows a summary of the course contents Thetheoretical part of this course starts giving a brief reviewabout ASICs and general purpose processors in the embed-ded system scenario Performance power consumptiondevelopment and update costs are also analysed (week 1)Then a typical embedded system design flow is presented(week 2) followed by HWSW specification and modelingComputation models are presented including finite statemachine data flow and Petri nets (weeks 3 and 4) Thenext topics give an overview about interfaces protocols andcontrol systems (weeks 5 and 6) After this point teachingis focused on process and development tools showing howto identify HWSW partitioning (week 7) design HWSWintegration and synthesize the whole computing system ona SoPC using FPGA technology (week 8) Different ICtechnologies for implementing SoCs are discussed (week

International Journal of Reconfigurable Computing 5

12) Finally state-of-the-art work is presented regardingembedded system development encompassing new toolsmodels and integrated circuit technology (week 13)

In practical terms the initial 4 weeks are devoted to theset-up of EDA tools and definition and analysis of the projectsto be undertaken by each group (limited to 3 students) Dur-ing weeks 5 and 7 students work on a preexisting software-only solution The emphasis is on functionality and perfor-mance analysis trying to identify possible bottlenecks to beimproved by using hardware implementations This leads toa SWHW partitioning modelling and implementation ofa hardware solution for selected processing kernels (weeks8ndash12) Typically the hardware implementation is in the formof a custom instruction for the Nios II processor Integrationand tests of the whole HWSW solution are carried out inweeks 13-14 followed by the system final demonstration forevaluation purposes

The core objective of this course is to teach hardwaresoftware and system design in an embedded system contextStudents are allowed to take this course only after a seriesof prerequisites is met which give them a solid backgroundon digital logic computer architecture and organization andHDL languages Students typically enroll for this course intheir 4th year of studies The practical projects used in thecourse are based on fundamental tasks used in autonomousmobile robotics localizationmapping and navigation alongwith image processing algorithms for data extraction fromthe operating environment and for human-robot interfaceThe adopted algorithms are implemented as embedded sys-tems based on FPGAs with students being asked to achievea set of goals for each problem as defined by the assignedinstructor The learning outcomes (119871

119894) expected from those

students after successfully developing such projects can besummarized by the 5 items shown below

L1 ability to design and implement custom embeddedsystems in the form of SoCs

L2 ability to perform hardwaresoftware codesign for arealistic project

L3 fluency in using a HDL for the development of amedium-complexity problem

L4 experience in using embedded operating systemspossibly an RTOS (real-time operating systems)

L5 ability to engage on graduate-level research on customembedded systems based on reconfigurable comput-ing

51 Course Overview As already said the course contents areequally divided between theoretical and practical activitiesThe robotic-based applications come as a complement to thematerial found in theoretical-orientated embedded systembooks such as Marwedel [29] Wolf [30] and Vahid andGivargis [31] They give students the essential knowledgeabout embedded systems describing the main hardware andsoftware components along with some design techniquesGiven the theoretical background needed to develop embed-ded systems students start to work on practical experimentscustomizing systems for robotic algorithms computations

The details of the assigned projects are presented in Section 6The algorithms are initially provided to the undergraduatestudents as CC++ code developed by graduate studentsduring their research projects As shown in Figure 1 thedevelopment flow for a practical project is divided into fivesteps

(1) Run the CC++ code on a PC platform in order tobetter understand the algorithm implementation andalso to gather code profiling information using gccand gprof Linux toolsThese first steps aim to identifythe most demanding sections of code by measuringthe number of function calls and the time spent oneach of them

(2) Run the CC++ code again on an embedded proces-sor in order to get new profiling information com-paring it with the previous run That helps studentsto understand the main differences and limitationsbetween a standard PC platform and an embeddedprocessor (possibly a softcore such as Alterarsquos Nios II)

(3) Reason and exploit the possibilities tomeet the systemrequirements such as performance resources usageand flexibility In this phase students basically engageon the hardwaresoftware codesign considering pos-sible software optimizations new custom instructions(implementing the corresponding custom hardware)multicore solutions operating system tuning and thedevelopment of new hardware components In thatcase they could operate as stand-alone blocks or asa coprocessor either by directly being connected to acentral processor or via a DMA channel

(4) Analyse the performance and reliability of the newcustomized embedded system for both hardwareand software modules using software profiling toolssuch as gprof and hardware simulation tools suchas ModelSim Students have also the opportunity tovalidate their final projects in a real mobile robotintegrating it with on-going research developmentsundertaken by graduate students

(5) Present the project to instructors and classmates andwrite a technical report for evaluation purposes

6 Practical Projects in Embedded Robotics

Every project used in the undergraduate course has alreadybeen deeply exploited by other graduate students from thedepartment as part of their MSc or PhD degrees as docu-mented in these publications [32ndash38]This knowledge is thenpresented to the undergraduate students via papers or thesesas reference material which gives them a detailed descriptionof the problem and corresponding algorithms along witha reference design for comparison purposes All of thosematerials along with tutorials tools and source code arecentral to conduct the PBL course described in this paperThenext subsections describe the main robotic-based projectsused so far in this course format Each of those projects canbe developed by a group of up to 3 students

6 International Journal of Reconfigurable Computing

PC (SW)

Nios II (SW)

Design exploration

HWSW codesign

Presentation of the results and

technical report preparation

Work evaluation

Real robot experiment

HWSW cosimulation

gt gcc ldquo-pgrdquogt gprof

gt nios2-gccgt nios2-elf-gprof

gt nios2-gccgt nios2-elf-gprof

gt Modelsim

mobile robotic applications

gtgt INPUT ltlt

CC++ code of

gt HW monitor

Figure 1 Embedded system development flow adopted by students

61 Localization Theproblem of autonomous robot localiza-tion can be solved using theMonte Carlo localization (MCL)algorithm [39] which uses a set of particles to estimatethe real robot position inside a map constantly updated bysensor readings during its movements (most experiments areevaluated with offline data from test bench maps availablefrom Radish [40]) This algorithm is quite interesting sinceeach particle can be evaluated independently of each otherallowing the students to exploit a high level of parallelismin hardware As the number of particles scales subject toa set of conditions such as sensor type and environmentcharacteristics balancing the computing hardware to meetsystem requirements is an interesting challenge The easiestsolution would be to code the wholeMCL algorithm in C andrun it in an embedded processor (software) while the hardestwould be to code it in a synthesizable HDL and then generatethe custom hardware To find the balance between those twoalternatives is a typical hardwaresoftware codesign problemIn addition to design options influencing performance thestudents also need to pay attention to some qualitative aspectsof the system such as random number generator supportingthe MCL algorithm and the numerical precision regardingfloating to fixed-point conversions Bonato et al [32] presentthe MCL algorithm implemented on an FPGA using theMersenne Twister pseudorandomnumber generator where agood balance between hardware and software is achievedThedesign described in that paper is presented to the students andused as a guide for developing and evaluating their solutions

62 Mapping In mobile robotics a mapping algorithm aimsto create a map of the navigation environment This problemcan be subdivided in two classes whenmapping is performedwith knowledge of the robot position and when the positionis estimated simultaneously during the mapping processThe latter case is known as simultaneous localization andmapping (SLAM) problem with most solutions being basedon probabilistic inferences derived from Bayesian filtersinvolving high computational complexity and a large volumeof data The extended Kalman filter (EKF) algorithm [41] isa classical Bayesian derived solution able to build a feature-based map without previously knowing the robot positionBonato et al [33] presented the first SoPC (system-on-a-programmable chip) of the EKF applied to the SLAMproblemwhich has been used as reference by students duringthe course Differently thanMCL the implementation of thismethod exhibits high data dependency basically consistingof multiplication and addition of matrices In this caseparallelism exploitation is more complicated as the studentsneed to look more carefully to the problem in order to findhow to split the internal operationswithout violating the codesemantics To better understand how to optimize the matrixoperations on hardware students are encouraged during thecourse to investigate state-of-the-art solutions such as thosepresented by Irturk et al [42]

63 Navigation The navigation problem consists of defininga way for the robot to achieve its destination following some

International Journal of Reconfigurable Computing 7

Hardware

Software

DoG

OriMag

KpGaussian filter

cascade anddifference of

Gaussians

Source (up to 30 fps-320 times 240pixels)

Orientation andgradient

magnitudecomputation

Key pointdetection withstability checks

Descriptorcomputation

(Nios IIprocessor)

Pixel stream

Ori and mag (25bits)

FIFO octv0 (42 times 127)FIFO octv1 (40 times 256)FIFO octv2 (38 times 512)

FIFOA (32 times 2048)

FIFOB (32 times 1024)

FIFOC (32 times 512)

FIFOD (24 times 1024)

Figure 2 A hardwaresoftware embedded system codesign comprising of three hardware blocks to extract features from images andprecompute data for the descriptors and one software block to associate descriptors with features the blocks communicate via dedicatedchannels along with FIFOs to store temporary data while receiver blocks are busy [34]

strategy such as the fastest the safest or the easiest pathA quite simple algorithm used for navigation is potentialfields (PF) In spite of presenting some limitations such astrapping the robot in a particular place due to local minima[43] it is a well-known solution used in mobile robotics Inthis method the navigation strategy is to reach a destinationwithout collision with obstacles being the repulsive forces andthe destination being the attraction force Due to its simplicitya software-only implementation of the PF algorithm is not asinteresting as a design option in an embedded system courseHowever a hardware implementation poses some challengesin particular a set of trigonometric functions that can bedifficult to be implemented as custom hardware For thisreason students are first asked to optimize the software bysolving trigonometric functions based on Taylor series andthen try to solve the problem in hardware using CORDICalgorithms and fixed-point representation The hardwaresolution is similar to the one previously presented in [32]where a hardware implementation of the CORDIC algorithmis integrated into the system as custom instruction as well

64 Image Processing An interesting application in termsof students motivation and learning outcomes is the scale-invariant feature transform (SIFT) algorithm [44] which isconsidered one of themost robust solutions to extract featuresfrom images This algorithm has been applied to many areasIn mobile robotics mapping it can be used as a data sourceto build feature-basedmaps from images Its implementationas an embedded system is quite complex specially if a highframe processing rate is required (eg 30 framessecond)A software-only implementation such as running the appli-cation on the softcore Nios II processor at 150MHz wouldtake more than one hour to extract the features from a singleinput image of 320 times 240 pixels However hardware andsoftware customizations can lead to an embedded system ableto process the input image in 130 seconds For instancea typical SIFT algorithm configuration needs to apply 18different Gaussian filter kernels over an image in orderto extract a feature candidate (known as key point) Thisthroughput requirement represents 181M pixels which can

be achieved by an efficient pipeline architecture as demon-strated in Bonato et al [34] As the entire SIFT algorithmis too complex to be implemented by one student groupduring a semester the problem is split between a num-ber of groups with each of them having to meet perfor-mance targets for its corresponding assignment Figure 2demonstrates the whole SIFT algorithm divided in blockswith each block being assigned to a group of students

65 Auxiliary Resources In order to validate the embeddedsystem produced students are encouraged to integrate theirsystem into a real Pioneer 3DX robot [45] running the Playercontrol software [46] Instructors provide students with aclient for this software running on an embedded processorin order to mitigate the integration task [35] Additionallystudents are given a set of auxiliary cores (in VHDLVerilog)to support the project implementation such as the IEEE-754 FPU (floating-point unit) module an AMBA bus con-troller (ARM standard) an Ethernet module (MAC 10100)hardware performancemonitors and a pseudorandom num-ber generator based on the Mersenne Twister algorithmStudents are also allowed to get other cores from third-party providers for instance from the OpenCores website(httpopencoresorg) We believe this kind of support isparticularly important to give a ldquoreal worldrdquo aspect to thecourse and would be infeasible without close interactionbetween undergraduate and graduate projects

7 Teaching Platforms and Tools

FPGAs are a suitable alternative to introduce many con-cepts in labs and to let students implement real systemsThat is mainly due to their programmability availabilityof intellectual property (IP) cores for easy interfacing toexternal devices availability of softcores that program partof the FPGA resources as a microprocessor and availabilityof embedded hardcore components (DSPsmdashdigital signalprocessors memory blocks and high speed IO ports) Allthose features are extensively used throughout the course andlab projects presented in this paper In addition they are

8 International Journal of Reconfigurable Computing

widely available at a relatively low cost with good supply ofdevelopment tools This is a desirable feature for an eventualreplication of the PBL course described in this paper

71 FPGA Boards Typical FPGA boards include the neces-sary physical interfaces to connect them to other componentsin order to set up an almost real operating environment Inour laboratory experiments we have adopted Altera DE2-70development board provided by Terasic company equippedwith a 4310158401015840 LCD touch panel with resolution of 800 times 480points and a 5M pixel CMOS camera The DE2-70 boardfeatures an Altera Cyclone II 2C35 FPGA and a myriad ofother interfaces Experience shows that when students workwith an environment close to what they are used to see ontheir gadgets (eg touch screen display from smart phones)there is an extra motivation for embracing exercises andprojects related to embedded systems since they get curiousto understand how the actually system works internally

72 Microprocessor Cores FPGA companies provide RISCsoftcores that can be used in FPGA devices Examplesof such softcores are Xilinxrsquos MicroBlaze Alterarsquos Nios IIand Aeroflex Gaislerrsquos LEON They also permit exploitingof multiprocessor systems by instantiating more than onesoftcore in the same FPGA Those companies provide theintegrated design environments needed to develop complexsystems using hardwaresoftware components With thoseenvironments students can start with software solutions andthen add cores to improve performance for instance Thoseenvironments include C compilers debuggers and simula-tors to program target microprocessors

By practising such approach students can also acquire therequired skills in computing system organization since theyare real system architects during the development of theirprojects The impact of cache floating-point units multipli-ers and dividers on system performance is easily realized bystudents through executionThey study the impact on perfor-mance of the adopted scheme to couple dedicated hardwarecomponents to a microprocessor To measure performancestudents understand the need for hardware monitors All ofthose features have proven to be valuable in the teachingprocess

Using softcore processors allows students to acquiremany embedded systems conceptsMemorymapped devicesinputoutput ports existence or not of instruction and datamemory caches existence or not of an operating systemand existence or not of floating-point units are all conceptsacquired by students when developing those systems As theaforementioned the reuse policy when developing tasks isalso fomented Students are also required to use modulesalready developed by others and to deal with the neededinterfaces

73 Custom Instructions and Coupling HardwareModules Byusing the Nios II microprocessor students also study theimpact of adding custom instructions to the softcore whichare used to improve the performance of time critical sectionsof code With this approach they realize the need and

advantages of doing hardwaresoftware codesign at the verybeginning of the project Facing students with the design ofsystems including both hardware and software componentshas shown to be a key element to tackle embedded systemconcepts

74 EDA Tools The practical experiments developed alongthe course can be conducted with either Altera or Xilinxrsquostools However in this course we have adopted the firstoption since the development kit available in the laboratoryis the DE2-70 featuring an Alterarsquos FPGA The tools usedare SoPC Builder and Quartus II for hardware developmentand nios2-gcc and nios2-elf-gprof for software compilationdebugging and profiling for the Nios II processor [24]Additionally Alterarsquos ecosystem also provides the ModelSimtool for hardware and software simulation and hardwaremonitors for online performance analysis

8 Evaluation of the Pedagogical Approach

In order to evaluate the effectiveness of the pedagogicalapproach described in this paper two kinds of analysis wereconducted one is based on the instructor point of view andthe other is based on the studentrsquos perceptions and feedbackThose analyses are presented in the next subsections

81 Instructorrsquos Evaluation We believe the desired learningoutcomes listed in Section 5 are achieved noticed via thefinal project quality Most projects are as complete as thereference one encompassing software and hardware on asingle chip accessing external and onchip memory usingembedded operating system or a single hardware abstractionlayer and also using external interface for debugging andfor sending and receiving data to the embedded system Forinstance a group of students developed a project evolvingthe potential field algorithm where optimized mathematicaloperations for hardware were applied in such a way that theachieved results in relation to performance and area werebetter than the reference project adopted This medium tohigh complexity problem prepares the students to face realproject development

Around 15 of the students that completed this courseare working directly with embedded systems developmentin Brazilian companies and 20 have engaged in graduatecourse in the same area What students have said is that thepractical approach of the course gives them more confidenceto face a job interview in the area of embedded systems andalso to perform the actual work for those who get the job Wealso have had the opportunity to analyse the students duringtheir graduate course and we could notice that they were ableto produce research results very soonwhen compared to theircolleagues with other backgrounds

82 Studentsrsquo Feedback We have collected responses to ananonymous questionnaire given to students All the studentshave answered mobile robotics as the most important factorto motivate them to realize the embedded systems projectsusing reconfigurable computing technology One of the

International Journal of Reconfigurable Computing 9

200

133

133267

133

133

Problems with thedevelopment boardLack of necessaryknowledgeProblems with VHDL

Problems with EDA tools

Problems with VHDLsimulatorOthers

Figure 3 Percentage of student responses concerning the difficul-ties in concluding their projects

reasons is that the students quickly realize the importance ofthe work to be done and see the results once it is implemented(eg image processing tasks) Based on the experiences wehave had their motivation is ldquoapplication-drivenrdquo and theyalways pay more attention to and concentrate their energieson more visible and stand-alone projects

The student responses concerning the aspects they hadmore difficulties when exposed to this teaching approach areshown in Figure 3 In general the main set of complaintsis about the EDA tools and FPGA boards The second setof aspects they refer more often are related to the VHDLsimulator the VHDL language and the lack of some specificbackground knowledge Some of the students indicate thememory limitations of the board as the main difficulty toimplement someprojects Another important difficulty factorpointed out by students is the problems related to developingCprogramswhenno operating system is used In this contextthey refer to the problems associated with allocating andreallocating memory as the most difficult one Some of themalso refer to the rather long initial time needed to begin aproject which is strongly related to the long learning curvesneeded to master the initial skills on using the tools and theVHDL language

In terms of the skills students recognize they should havebeen acquired before 50 of themmention advanced digitaldesign as the most important one About 10 of them referto the need for learning more about computer architectureThese two aspects reinforce the importance of having coursesin computer architecture where the design of a microproces-sor is fully understood (including pipelining issues) and notonly courses explaining assembly languages and superficialcomputer architecture concepts About 30 refer to the needof learning more about applications (control systems digitalsignal processing image processing etc) Only one studentreferred to the importance of knowledge on parallel andmultiprocessing systems

Concerning the VHDL language a very high percentageof students (about 50) refer to its concurrency model as themost difficult issue to master About 30 refer to the globalsemantic of theVHDL language as a difficult property tomas-ter One of them refers to the previous and long experiencesin software imperative programming as one of the reasons forthe difficulties Strangely another onementioned that his pre-vious experience in designing hardware using schematics didnot help and created some confusion in the first time usingVHDL According to the responses students do not find thesyntax and structure of the language a problem but reveal thenew programming paradigm as the most difficult issue Onestudent complained about the lack of good tutorials whileanother one about the complexity of the language and thenot so clear and understandable subset of VHDL behavioursfor synthesis Those complaints were somehow expectedgiven the major areas those students are undertaking (eithercomputer science or computer engineering)

The increasing importance of heterogeneous architec-tures has led to a number of projects aiming to develop com-piling environments targeting multiple executing platformssuch as CPUs GPUs DSPs and even FPGAs [47] Thosetools use in source code either well-established programminglanguages such as CC++ [4] or special purpose languagessuch as Lime [5] Hardware and FPGAs targets are ofparticular interest and have been the object of several effortstrying to automatically bridge the gap between high level pro-gramming languages and hardware custom structures [48]Although several research tools have been developed andmade available we believe they are currently not appropriateto be used in a first course in embedded systems for under-graduate students as they may abstract important aspectsthat should be exposed to them Nonetheless some of thosetools and technologies are reaching mainstream use suchas Xilinx Vivado Design Suite [49] and should be adoptedat least partially in our course as those kinds of tools aregaining increasing importancewhen targeting heterogeneousplatforms Another promising alternative is Altera SDK forOpenCL [50] a framework allowing software programmersto write kernel functions in OpenCL C to be compiled forexecution on FPGA targets The typical use of such systemis mixing hardware accelerated functions with host coderunning on a CPU (eg ARM Cortex A9)

Concerning the level of difficulties of the projects about56 of the students reckon that the difficulty level is similarto the most difficult problems they have experienced duringtheir academic trail The remaining students consider thedifficulty level of the proposed projects to be average whencompared to other assignments Interestingly none of thestudents considered the projects as being the easiest onesduring hisher undergraduate or graduate program

83 Ongoing Improvements Current research work in thedepartment is concernedwith an EDA tool dubbedRoboArchbeing developed byMSc students RoboArch is a component-based tool for developing hardware architectures for mobilerobots [36]The tool supports systemmodelling based on theMARTE profile [51] and simulation in electronic system level(ESL) integrated into realsimulated mobile robot platforms

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 2: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

2 International Journal of Reconfigurable Computing

also stresses the need for multitarget programming frame-works able to reduce the required implementation effortTheAccelerator System [4] is an example of this kind of program-ming system being able to target multicore processors withvector instructions GPUs and FPGAs using a single sourcecode described in conventional high level languages such asC++ Liquid metal [5] is a similar tool also targeting CPUsGPUs and FPGAs but using Lime as source code a newprogramming language

As it happens during any technology shift period skillsshortage can be a problem as the current curriculum maynot address the whole set of issues involved According toRicks et al [6] developers need to have a detailed knowledgeabout devices and applications in order to master the currentembedded system sophisticationThe range of skills requiredfor embedded systems design encompasses knowledge aboutdigital logic computer architecture hardware descriptionlanguages real-time requirements and resource-aware soft-ware development Although these topics are adequatelytaught in computer science courses students tend to see themas isolated units with little relation to embedded systemsReconfigurable computing can be used as a common plat-form for teaching all of those subjects and also to expose stu-dents to some of the main concepts and practices in the field

Reconfigurable hardware such as FPGAs (field-program-mable gate arrays) is a rich and flexible platform wherestudents can create any kind of digital system ranging from asingle circuit to a very complex and heterogeneous embed-ded system architecture [7] This is a good platform toteach students hardwaresoftware codesign allowing themto simulate and debug software and hardware together tocreate or configure softcoremicroprocessors and to optimizethe system in terms of performance resources usage andpower consumption However since programming hardwarerequires a different way of thinking than developing softwareit is desirable that computer science degrees add moreemphasis on teaching how to program systems with bothcomponents

Awell-recognizedway tomotivate students to learn aboutdesign implementation and programming of embedded sys-tems is via contemporary and challenging applications suchas those found in the embedded mobile robotics field [8]Practical-based approaches have been used by other educa-tors as away to catch student attention [9ndash11]Mobile roboticsis an emerging topic and although significant advances havebeen observed in recent years there are still many challengesto be faced mainly when autonomous and customized robotsare considered [12] According to Touretzky [13] computerscience students should be better prepared for the roboticrevolution since real robots are computationally complexcomprising both hardware and software processing cores

As a result of studying mobile robotics students learnreconfigurable computing and embedded systems otherwiserather unpopular among many computer science studentsHowever the growing complexity of embedded systemsdesign and applications makes real projects a far goal to thetypical one-semester course One way to bridge this gap isto foster practical teaching by means of stronger interactionbetween classroom and research labs at the university level

In this context the main contributions of this paper are asfollows

(i) showing a way to reinforce undergraduate courseson embedded systems by using research results andexpertise produced by graduate students which canbe seen as a strategy to put a project-based learning(PBL) pedagogical approach into practice

(ii) presenting real teaching experiences (at ICMC-USPBrazil) and reasons for using FPGA platforms andmobile robotics to teach embedded systems in com-puter science programs

(iii) pointing out the main difficulties faced by the stu-dents with this methodology which may help toreproduce and improve the strategies to be presented

2 A Project-Based Learning Approach

The dynamic and multidisciplinary nature of computer sci-ence (CS) both in its core subjects and the ever-growingapplication domains makes CS education particularly chal-lenging The primary approach to CS education is still basedon knowledge transmission which can be considered essen-tial in some instances However it is also perceived as limitedfor a number of reasons such as not promoting higher orderthinking or advanced reasoning skills [14] An alternativeapproach to CS education is project-based learning [15]

According to [16] project-based courses can be con-sidered as a method within the problem-based learningtoolkit being common in computing education Problem-based learning [17] seeks to empower students such that theytake responsibility for their own learning It was originallyenvisioned for medical education a field where it is wellestablished and is considered successful [18]

The difference between problem- and project-basedapproaches may be fuzzy in its principles and strategies Itcan be argued that a problem is more loosely defined whilea project is a well-defined problem with clear objectivesAccording to [19] a project can be considered as an instanceof PBL if it adheres to the following five criteria

(1) Centrality Projects are central not peripheral to thecurriculum contents and main objectives

(2) Driving Question Projects are focused on questionsor problems that ldquodriverdquo students to encounter thecentral concepts and principles of a discipline

(3) Constructive Investigation Projects involve studentsin a constructive investigation (goal directed process)involving inquiry knowledge building and resolu-tion

(4) Autonomy Projects are student-driven to some signif-icant degree not being totally teacher-led scripted orpackaged

(5) Realism Projects are realistic (not school-like) givinga feeling of authenticity to students

A comprehensive analysis and categorization of practicalproblem-based learning in computing education can befound in [14] It has been concluded in that article that

International Journal of Reconfigurable Computing 3

the penetration of problem-based learning into the averagecomputing curricula is still shallow with faculty membersworking in isolation On the other hand it was concludedthat lecturers and studentsrsquo experiences are usually positiveA more specific investigation on project-based course isreported in [16] focusing on course design composition ofgroups and assessment

The educational approach described in this paper fitswell in the five-criterion scenario defined by [19] centralitydriving question constructive investigation autonomy andrealism As such it can be considered as a realistic case studyof a project-based course in the later stages of a computerscience degree

Embedded systems have a complex nature when com-pared to desktop or server software the prevalent platformadopted by most courses in the typical CS curriculum Adiverse mix of software and hardware components func-tional and nonfunctional requirements and significant dif-ferences between target applicationsmake it difficult to adopta conventional approach to embedded systems teaching Pre-vious experiences have shown to the authors that applying theconventional pedagogical approach to embedded systemsteaching can be very effective for the particular scenarioconsidered by the courseHowever it was perceived that a sig-nificant number of students would feel reluctant to undertakea new project in embedded systems even after a successfulcompletion of the standard course One of the reasons forthat the authors believe is that those students would not feelconfident enough to propose by themselves a significantlydifferent design for the new project By adopting a PBLapproach and employing a hands-on and realistic project inthe first course on embedded system the authors aim toempower students with the skills necessary to tackle othercomplex and diverse projects in this field This is a desirableoutcome considering that embedded systems development isan area of ever-increasing interest and presents a shortages ofwell qualified professionals

The use of realistic projects in the course described in thispaper is central to the adopted pedagogical approach Ratherthan using the project as an illustration of theoretical con-cepts it is a trigger for knowledge discovering and assemblingof new and revisited techniques

The remainder of this paper is organized as follows Theimportance of reconfigurable hardware is discussed in thenext section Then Section 4 argues about the importance ofmobile robotics for the success of the approach presented inthis paper Section 5 presents the actual teaching scenario inwhich embedded systems are taught along with the learningoutcomes expected Section 6 details the mobile roboticprojects used in an undergraduate course teaching embeddedsystems Section 7 presents the teaching platforms employed(hardware and software) Section 82 presents and examinesthe feedback given by students followed by conclusions in thelast section

3 Reconfigurable Hardware

Field-programmable gate arrays (FPGAs) are reconfigurablehardware devices composed of an array of logic blocks

an interconnection network and a set of IO cells Theprogrammability of FPGAs comes from the configurabilityof these three elements in such a way that any computationalfunction can be implemented [20] The main FPGA advan-tage over dedicated devicesmdashapplication specific integratedcircuit (ASIC) which is very costly to be designedmdashisthe flexibility of adapting the computational architectureaccording to the user needs after the silicon fabricationprocess is completed However to provide such flexibilityFPGAs come at higher cost in area delay and power con-sumption when compared to ASIC devices [21] In spite ofthose drawbacks FPGA devices are gaining more and moreimportance over the years as they bridge the gap betweenASICs and microprocessors [22] For this reason they havebeen extensively used in both academic and industrial fieldsfor prototyping new hardware architectures for acceleratinga wide variety of applications and also for developing anddeploying commercial products However knowledge aboutdigital systems and hardware description languages is neededto efficiently program reconfigurable hardware which can beconsidered a barrier for an even higher acceptance of thistechnology

The best practices when designing for FPGAs include thedescription of the architecture in a high level descriptionlanguage (HDL) such as VHDL Verilog Bluespec Sys-temVerilog SystemC or Handel-CThe textual description issynthesizable and is used as input to logic and RTL (register-transfer level) synthesis tools that automatically generate thecircuit netlist The netlist is then mapped placed and routedto create the bitstreams that are responsible for programmingthe target FPGA device This development flow does notrequire fullmastering of thosemethods and techniques espe-cially the ones related to logic synthesis and place and routingIn some way the flow can be seen as a black box similar tothe one used by students when compiling a software programto a target microprocessor As it happens with softwareprogramming to optimize or use some specific resourcesof the target system students may need some knowledgeabout the underlying target architecture Of course if fullyoptimized hardware is required more knowledge abouthardware design the underlying FPGA architecture and thetools used in the development flow may be necessary

University programs maintained by companies such asthe one fromXilinx [23] andAlterarsquos companies [24] allow theuse of state-of-the-art commercial tools to program FPGAsDespite of presenting some restrictions simulators such asModelSim [25] are also freely available for teaching purposesStudents can also download copies of those tools to useat home to work on homework assignments thus improv-ing their experience The available EDA tools and FPGAplatforms provide nearly every resource needed to masterembedded systems design Project development may have toaccomplish the partitioning of software code in order to shiftsome processing tasks to dedicated hardware componentsThe first implementation may be a software-centric one afterwhich students may realize that hardwaresoftware partition-ing can be the only alternative to enforce system constraints(eg energy consumption performance etc) By doing sostudents can acquire knowledge related toAmdahlrsquos Law [26]

4 International Journal of Reconfigurable Computing

profiling identification of the computational structures moresuited to be implemented as dedicated hardware componentsinterfacing schemes communication overheads and so forth

To conduct the necessary practical experiments there ishowever the need to expose students to complex examplesallowing them to have a perception of the problems theymight face in the real world So a question may arise whatkind of applications shall students work on in order to acquireall the expertise that is needed to develop embedded systemsBearing in mind the answer to this question mobile roboticstasks and applications have been selected as described in thenext sections

4 Why Mobile Robotics

Developing mobile robots encompasses several challengesand can be a suitable set-up to teach students many aspectsof modern and future embedded systems Personal robotsfor instance are usually mobile and need a large degree ofautonomy for localization navigation and mapping tasksMany of the requirements usually presented by this kindof system are prevalent in almost all other kinds of theembedded system applications More specifically mobilerobotics has been chosen as the target application for teachingpurposes based on the following reasons

(i) It includes all the characteristics of embedded sys-tems ranging from simple to complex ones

(ii) It requires students to deal with concepts such asvideo audio sensors wireless networking motorcontrol and navigation

(iii) It usually demands miniaturization frequently lead-ing to a system-on-a-chip (SoC) solution

(iv) It accommodatesmany interesting requirements suchas low cost low energy consumption andhigh perfor-mance

(v) It needs flexibility and programmability(vi) It typically needs hardwaresoftware codesign since

for most robotic kernels using software implementa-tions alone does not permit achieving the requiredperformance

(vii) It is a very attractive topic to students(viii) All of those reasons are desirable when conducting a

PBL course

Based on previous and ongoing experiences conductedby our research group on this field students seem to bevery motivated to study subjects and work with examplestargeting a mobile robot platform Since embedded systemsand reconfigurable computing expertise is acquired duringthe implementation of robotic kernels the strategy can beconsidered as an important element to attract computerscience students to topics otherwise not considered by themOther authors have also successfully used robotics to teachconcepts in digital design and in other courses aswell [27 28]The work presented in this paper is similar to the ones in abroader context but differs significantly by the nature of the

Table 1 SSC0711 course schedule

Week TopicsTheoretical Practical

1 Introduction embedded systems mdash2 Embedded systems design flow Tools3 State machines Candidate projects4 Concurrent process Problem analysis5 Interfaces and protocols SW implementation6 Control systems SW implementation7 HWSW partitioning Performance analysis8 HWSW integration HWmodelling9 mdash HW implementation10 mdash HW implementation11 mdash HW implementation12 SoC technology HW implementationtests13 State-of-art HWSW codesign HWSW integration14 mdash HWSW integrationtests15 mdash Demonstration

applications worked on by the students Bindalrsquos work focuseson a robotic arm while Kimrsquos work employs the well-knownLego Mindstorms kits

5 Teaching Embedded Systems toUndergraduate Students

At ICMC-USP one of the leading computer science depart-ments in Brazil mobile robotics has been used as practicalstudy cases to teach embedded system theory and practice inan undergraduate one-semester course offered as part of theComputer Science Bachelors curriculumThe course is inter-nally referred to as SSC0711mdashEmbedded SystemsHWSWCo-Design (more information about this course (in Portuguese)can be obtained at httpssistemasuspbrjupiterwebobter-Disciplinasgldis=SSC0711 or directly from the first author)running during 15 weeks In terms of supervised teachingthe course is equally split between theory and practice (2hoursweek each) However students spend significantlymore time developing their chosen projects out of classesreceiving help from tutors whenever necessary

Table 1 shows a summary of the course contents Thetheoretical part of this course starts giving a brief reviewabout ASICs and general purpose processors in the embed-ded system scenario Performance power consumptiondevelopment and update costs are also analysed (week 1)Then a typical embedded system design flow is presented(week 2) followed by HWSW specification and modelingComputation models are presented including finite statemachine data flow and Petri nets (weeks 3 and 4) Thenext topics give an overview about interfaces protocols andcontrol systems (weeks 5 and 6) After this point teachingis focused on process and development tools showing howto identify HWSW partitioning (week 7) design HWSWintegration and synthesize the whole computing system ona SoPC using FPGA technology (week 8) Different ICtechnologies for implementing SoCs are discussed (week

International Journal of Reconfigurable Computing 5

12) Finally state-of-the-art work is presented regardingembedded system development encompassing new toolsmodels and integrated circuit technology (week 13)

In practical terms the initial 4 weeks are devoted to theset-up of EDA tools and definition and analysis of the projectsto be undertaken by each group (limited to 3 students) Dur-ing weeks 5 and 7 students work on a preexisting software-only solution The emphasis is on functionality and perfor-mance analysis trying to identify possible bottlenecks to beimproved by using hardware implementations This leads toa SWHW partitioning modelling and implementation ofa hardware solution for selected processing kernels (weeks8ndash12) Typically the hardware implementation is in the formof a custom instruction for the Nios II processor Integrationand tests of the whole HWSW solution are carried out inweeks 13-14 followed by the system final demonstration forevaluation purposes

The core objective of this course is to teach hardwaresoftware and system design in an embedded system contextStudents are allowed to take this course only after a seriesof prerequisites is met which give them a solid backgroundon digital logic computer architecture and organization andHDL languages Students typically enroll for this course intheir 4th year of studies The practical projects used in thecourse are based on fundamental tasks used in autonomousmobile robotics localizationmapping and navigation alongwith image processing algorithms for data extraction fromthe operating environment and for human-robot interfaceThe adopted algorithms are implemented as embedded sys-tems based on FPGAs with students being asked to achievea set of goals for each problem as defined by the assignedinstructor The learning outcomes (119871

119894) expected from those

students after successfully developing such projects can besummarized by the 5 items shown below

L1 ability to design and implement custom embeddedsystems in the form of SoCs

L2 ability to perform hardwaresoftware codesign for arealistic project

L3 fluency in using a HDL for the development of amedium-complexity problem

L4 experience in using embedded operating systemspossibly an RTOS (real-time operating systems)

L5 ability to engage on graduate-level research on customembedded systems based on reconfigurable comput-ing

51 Course Overview As already said the course contents areequally divided between theoretical and practical activitiesThe robotic-based applications come as a complement to thematerial found in theoretical-orientated embedded systembooks such as Marwedel [29] Wolf [30] and Vahid andGivargis [31] They give students the essential knowledgeabout embedded systems describing the main hardware andsoftware components along with some design techniquesGiven the theoretical background needed to develop embed-ded systems students start to work on practical experimentscustomizing systems for robotic algorithms computations

The details of the assigned projects are presented in Section 6The algorithms are initially provided to the undergraduatestudents as CC++ code developed by graduate studentsduring their research projects As shown in Figure 1 thedevelopment flow for a practical project is divided into fivesteps

(1) Run the CC++ code on a PC platform in order tobetter understand the algorithm implementation andalso to gather code profiling information using gccand gprof Linux toolsThese first steps aim to identifythe most demanding sections of code by measuringthe number of function calls and the time spent oneach of them

(2) Run the CC++ code again on an embedded proces-sor in order to get new profiling information com-paring it with the previous run That helps studentsto understand the main differences and limitationsbetween a standard PC platform and an embeddedprocessor (possibly a softcore such as Alterarsquos Nios II)

(3) Reason and exploit the possibilities tomeet the systemrequirements such as performance resources usageand flexibility In this phase students basically engageon the hardwaresoftware codesign considering pos-sible software optimizations new custom instructions(implementing the corresponding custom hardware)multicore solutions operating system tuning and thedevelopment of new hardware components In thatcase they could operate as stand-alone blocks or asa coprocessor either by directly being connected to acentral processor or via a DMA channel

(4) Analyse the performance and reliability of the newcustomized embedded system for both hardwareand software modules using software profiling toolssuch as gprof and hardware simulation tools suchas ModelSim Students have also the opportunity tovalidate their final projects in a real mobile robotintegrating it with on-going research developmentsundertaken by graduate students

(5) Present the project to instructors and classmates andwrite a technical report for evaluation purposes

6 Practical Projects in Embedded Robotics

Every project used in the undergraduate course has alreadybeen deeply exploited by other graduate students from thedepartment as part of their MSc or PhD degrees as docu-mented in these publications [32ndash38]This knowledge is thenpresented to the undergraduate students via papers or thesesas reference material which gives them a detailed descriptionof the problem and corresponding algorithms along witha reference design for comparison purposes All of thosematerials along with tutorials tools and source code arecentral to conduct the PBL course described in this paperThenext subsections describe the main robotic-based projectsused so far in this course format Each of those projects canbe developed by a group of up to 3 students

6 International Journal of Reconfigurable Computing

PC (SW)

Nios II (SW)

Design exploration

HWSW codesign

Presentation of the results and

technical report preparation

Work evaluation

Real robot experiment

HWSW cosimulation

gt gcc ldquo-pgrdquogt gprof

gt nios2-gccgt nios2-elf-gprof

gt nios2-gccgt nios2-elf-gprof

gt Modelsim

mobile robotic applications

gtgt INPUT ltlt

CC++ code of

gt HW monitor

Figure 1 Embedded system development flow adopted by students

61 Localization Theproblem of autonomous robot localiza-tion can be solved using theMonte Carlo localization (MCL)algorithm [39] which uses a set of particles to estimatethe real robot position inside a map constantly updated bysensor readings during its movements (most experiments areevaluated with offline data from test bench maps availablefrom Radish [40]) This algorithm is quite interesting sinceeach particle can be evaluated independently of each otherallowing the students to exploit a high level of parallelismin hardware As the number of particles scales subject toa set of conditions such as sensor type and environmentcharacteristics balancing the computing hardware to meetsystem requirements is an interesting challenge The easiestsolution would be to code the wholeMCL algorithm in C andrun it in an embedded processor (software) while the hardestwould be to code it in a synthesizable HDL and then generatethe custom hardware To find the balance between those twoalternatives is a typical hardwaresoftware codesign problemIn addition to design options influencing performance thestudents also need to pay attention to some qualitative aspectsof the system such as random number generator supportingthe MCL algorithm and the numerical precision regardingfloating to fixed-point conversions Bonato et al [32] presentthe MCL algorithm implemented on an FPGA using theMersenne Twister pseudorandomnumber generator where agood balance between hardware and software is achievedThedesign described in that paper is presented to the students andused as a guide for developing and evaluating their solutions

62 Mapping In mobile robotics a mapping algorithm aimsto create a map of the navigation environment This problemcan be subdivided in two classes whenmapping is performedwith knowledge of the robot position and when the positionis estimated simultaneously during the mapping processThe latter case is known as simultaneous localization andmapping (SLAM) problem with most solutions being basedon probabilistic inferences derived from Bayesian filtersinvolving high computational complexity and a large volumeof data The extended Kalman filter (EKF) algorithm [41] isa classical Bayesian derived solution able to build a feature-based map without previously knowing the robot positionBonato et al [33] presented the first SoPC (system-on-a-programmable chip) of the EKF applied to the SLAMproblemwhich has been used as reference by students duringthe course Differently thanMCL the implementation of thismethod exhibits high data dependency basically consistingof multiplication and addition of matrices In this caseparallelism exploitation is more complicated as the studentsneed to look more carefully to the problem in order to findhow to split the internal operationswithout violating the codesemantics To better understand how to optimize the matrixoperations on hardware students are encouraged during thecourse to investigate state-of-the-art solutions such as thosepresented by Irturk et al [42]

63 Navigation The navigation problem consists of defininga way for the robot to achieve its destination following some

International Journal of Reconfigurable Computing 7

Hardware

Software

DoG

OriMag

KpGaussian filter

cascade anddifference of

Gaussians

Source (up to 30 fps-320 times 240pixels)

Orientation andgradient

magnitudecomputation

Key pointdetection withstability checks

Descriptorcomputation

(Nios IIprocessor)

Pixel stream

Ori and mag (25bits)

FIFO octv0 (42 times 127)FIFO octv1 (40 times 256)FIFO octv2 (38 times 512)

FIFOA (32 times 2048)

FIFOB (32 times 1024)

FIFOC (32 times 512)

FIFOD (24 times 1024)

Figure 2 A hardwaresoftware embedded system codesign comprising of three hardware blocks to extract features from images andprecompute data for the descriptors and one software block to associate descriptors with features the blocks communicate via dedicatedchannels along with FIFOs to store temporary data while receiver blocks are busy [34]

strategy such as the fastest the safest or the easiest pathA quite simple algorithm used for navigation is potentialfields (PF) In spite of presenting some limitations such astrapping the robot in a particular place due to local minima[43] it is a well-known solution used in mobile robotics Inthis method the navigation strategy is to reach a destinationwithout collision with obstacles being the repulsive forces andthe destination being the attraction force Due to its simplicitya software-only implementation of the PF algorithm is not asinteresting as a design option in an embedded system courseHowever a hardware implementation poses some challengesin particular a set of trigonometric functions that can bedifficult to be implemented as custom hardware For thisreason students are first asked to optimize the software bysolving trigonometric functions based on Taylor series andthen try to solve the problem in hardware using CORDICalgorithms and fixed-point representation The hardwaresolution is similar to the one previously presented in [32]where a hardware implementation of the CORDIC algorithmis integrated into the system as custom instruction as well

64 Image Processing An interesting application in termsof students motivation and learning outcomes is the scale-invariant feature transform (SIFT) algorithm [44] which isconsidered one of themost robust solutions to extract featuresfrom images This algorithm has been applied to many areasIn mobile robotics mapping it can be used as a data sourceto build feature-basedmaps from images Its implementationas an embedded system is quite complex specially if a highframe processing rate is required (eg 30 framessecond)A software-only implementation such as running the appli-cation on the softcore Nios II processor at 150MHz wouldtake more than one hour to extract the features from a singleinput image of 320 times 240 pixels However hardware andsoftware customizations can lead to an embedded system ableto process the input image in 130 seconds For instancea typical SIFT algorithm configuration needs to apply 18different Gaussian filter kernels over an image in orderto extract a feature candidate (known as key point) Thisthroughput requirement represents 181M pixels which can

be achieved by an efficient pipeline architecture as demon-strated in Bonato et al [34] As the entire SIFT algorithmis too complex to be implemented by one student groupduring a semester the problem is split between a num-ber of groups with each of them having to meet perfor-mance targets for its corresponding assignment Figure 2demonstrates the whole SIFT algorithm divided in blockswith each block being assigned to a group of students

65 Auxiliary Resources In order to validate the embeddedsystem produced students are encouraged to integrate theirsystem into a real Pioneer 3DX robot [45] running the Playercontrol software [46] Instructors provide students with aclient for this software running on an embedded processorin order to mitigate the integration task [35] Additionallystudents are given a set of auxiliary cores (in VHDLVerilog)to support the project implementation such as the IEEE-754 FPU (floating-point unit) module an AMBA bus con-troller (ARM standard) an Ethernet module (MAC 10100)hardware performancemonitors and a pseudorandom num-ber generator based on the Mersenne Twister algorithmStudents are also allowed to get other cores from third-party providers for instance from the OpenCores website(httpopencoresorg) We believe this kind of support isparticularly important to give a ldquoreal worldrdquo aspect to thecourse and would be infeasible without close interactionbetween undergraduate and graduate projects

7 Teaching Platforms and Tools

FPGAs are a suitable alternative to introduce many con-cepts in labs and to let students implement real systemsThat is mainly due to their programmability availabilityof intellectual property (IP) cores for easy interfacing toexternal devices availability of softcores that program partof the FPGA resources as a microprocessor and availabilityof embedded hardcore components (DSPsmdashdigital signalprocessors memory blocks and high speed IO ports) Allthose features are extensively used throughout the course andlab projects presented in this paper In addition they are

8 International Journal of Reconfigurable Computing

widely available at a relatively low cost with good supply ofdevelopment tools This is a desirable feature for an eventualreplication of the PBL course described in this paper

71 FPGA Boards Typical FPGA boards include the neces-sary physical interfaces to connect them to other componentsin order to set up an almost real operating environment Inour laboratory experiments we have adopted Altera DE2-70development board provided by Terasic company equippedwith a 4310158401015840 LCD touch panel with resolution of 800 times 480points and a 5M pixel CMOS camera The DE2-70 boardfeatures an Altera Cyclone II 2C35 FPGA and a myriad ofother interfaces Experience shows that when students workwith an environment close to what they are used to see ontheir gadgets (eg touch screen display from smart phones)there is an extra motivation for embracing exercises andprojects related to embedded systems since they get curiousto understand how the actually system works internally

72 Microprocessor Cores FPGA companies provide RISCsoftcores that can be used in FPGA devices Examplesof such softcores are Xilinxrsquos MicroBlaze Alterarsquos Nios IIand Aeroflex Gaislerrsquos LEON They also permit exploitingof multiprocessor systems by instantiating more than onesoftcore in the same FPGA Those companies provide theintegrated design environments needed to develop complexsystems using hardwaresoftware components With thoseenvironments students can start with software solutions andthen add cores to improve performance for instance Thoseenvironments include C compilers debuggers and simula-tors to program target microprocessors

By practising such approach students can also acquire therequired skills in computing system organization since theyare real system architects during the development of theirprojects The impact of cache floating-point units multipli-ers and dividers on system performance is easily realized bystudents through executionThey study the impact on perfor-mance of the adopted scheme to couple dedicated hardwarecomponents to a microprocessor To measure performancestudents understand the need for hardware monitors All ofthose features have proven to be valuable in the teachingprocess

Using softcore processors allows students to acquiremany embedded systems conceptsMemorymapped devicesinputoutput ports existence or not of instruction and datamemory caches existence or not of an operating systemand existence or not of floating-point units are all conceptsacquired by students when developing those systems As theaforementioned the reuse policy when developing tasks isalso fomented Students are also required to use modulesalready developed by others and to deal with the neededinterfaces

73 Custom Instructions and Coupling HardwareModules Byusing the Nios II microprocessor students also study theimpact of adding custom instructions to the softcore whichare used to improve the performance of time critical sectionsof code With this approach they realize the need and

advantages of doing hardwaresoftware codesign at the verybeginning of the project Facing students with the design ofsystems including both hardware and software componentshas shown to be a key element to tackle embedded systemconcepts

74 EDA Tools The practical experiments developed alongthe course can be conducted with either Altera or Xilinxrsquostools However in this course we have adopted the firstoption since the development kit available in the laboratoryis the DE2-70 featuring an Alterarsquos FPGA The tools usedare SoPC Builder and Quartus II for hardware developmentand nios2-gcc and nios2-elf-gprof for software compilationdebugging and profiling for the Nios II processor [24]Additionally Alterarsquos ecosystem also provides the ModelSimtool for hardware and software simulation and hardwaremonitors for online performance analysis

8 Evaluation of the Pedagogical Approach

In order to evaluate the effectiveness of the pedagogicalapproach described in this paper two kinds of analysis wereconducted one is based on the instructor point of view andthe other is based on the studentrsquos perceptions and feedbackThose analyses are presented in the next subsections

81 Instructorrsquos Evaluation We believe the desired learningoutcomes listed in Section 5 are achieved noticed via thefinal project quality Most projects are as complete as thereference one encompassing software and hardware on asingle chip accessing external and onchip memory usingembedded operating system or a single hardware abstractionlayer and also using external interface for debugging andfor sending and receiving data to the embedded system Forinstance a group of students developed a project evolvingthe potential field algorithm where optimized mathematicaloperations for hardware were applied in such a way that theachieved results in relation to performance and area werebetter than the reference project adopted This medium tohigh complexity problem prepares the students to face realproject development

Around 15 of the students that completed this courseare working directly with embedded systems developmentin Brazilian companies and 20 have engaged in graduatecourse in the same area What students have said is that thepractical approach of the course gives them more confidenceto face a job interview in the area of embedded systems andalso to perform the actual work for those who get the job Wealso have had the opportunity to analyse the students duringtheir graduate course and we could notice that they were ableto produce research results very soonwhen compared to theircolleagues with other backgrounds

82 Studentsrsquo Feedback We have collected responses to ananonymous questionnaire given to students All the studentshave answered mobile robotics as the most important factorto motivate them to realize the embedded systems projectsusing reconfigurable computing technology One of the

International Journal of Reconfigurable Computing 9

200

133

133267

133

133

Problems with thedevelopment boardLack of necessaryknowledgeProblems with VHDL

Problems with EDA tools

Problems with VHDLsimulatorOthers

Figure 3 Percentage of student responses concerning the difficul-ties in concluding their projects

reasons is that the students quickly realize the importance ofthe work to be done and see the results once it is implemented(eg image processing tasks) Based on the experiences wehave had their motivation is ldquoapplication-drivenrdquo and theyalways pay more attention to and concentrate their energieson more visible and stand-alone projects

The student responses concerning the aspects they hadmore difficulties when exposed to this teaching approach areshown in Figure 3 In general the main set of complaintsis about the EDA tools and FPGA boards The second setof aspects they refer more often are related to the VHDLsimulator the VHDL language and the lack of some specificbackground knowledge Some of the students indicate thememory limitations of the board as the main difficulty toimplement someprojects Another important difficulty factorpointed out by students is the problems related to developingCprogramswhenno operating system is used In this contextthey refer to the problems associated with allocating andreallocating memory as the most difficult one Some of themalso refer to the rather long initial time needed to begin aproject which is strongly related to the long learning curvesneeded to master the initial skills on using the tools and theVHDL language

In terms of the skills students recognize they should havebeen acquired before 50 of themmention advanced digitaldesign as the most important one About 10 of them referto the need for learning more about computer architectureThese two aspects reinforce the importance of having coursesin computer architecture where the design of a microproces-sor is fully understood (including pipelining issues) and notonly courses explaining assembly languages and superficialcomputer architecture concepts About 30 refer to the needof learning more about applications (control systems digitalsignal processing image processing etc) Only one studentreferred to the importance of knowledge on parallel andmultiprocessing systems

Concerning the VHDL language a very high percentageof students (about 50) refer to its concurrency model as themost difficult issue to master About 30 refer to the globalsemantic of theVHDL language as a difficult property tomas-ter One of them refers to the previous and long experiencesin software imperative programming as one of the reasons forthe difficulties Strangely another onementioned that his pre-vious experience in designing hardware using schematics didnot help and created some confusion in the first time usingVHDL According to the responses students do not find thesyntax and structure of the language a problem but reveal thenew programming paradigm as the most difficult issue Onestudent complained about the lack of good tutorials whileanother one about the complexity of the language and thenot so clear and understandable subset of VHDL behavioursfor synthesis Those complaints were somehow expectedgiven the major areas those students are undertaking (eithercomputer science or computer engineering)

The increasing importance of heterogeneous architec-tures has led to a number of projects aiming to develop com-piling environments targeting multiple executing platformssuch as CPUs GPUs DSPs and even FPGAs [47] Thosetools use in source code either well-established programminglanguages such as CC++ [4] or special purpose languagessuch as Lime [5] Hardware and FPGAs targets are ofparticular interest and have been the object of several effortstrying to automatically bridge the gap between high level pro-gramming languages and hardware custom structures [48]Although several research tools have been developed andmade available we believe they are currently not appropriateto be used in a first course in embedded systems for under-graduate students as they may abstract important aspectsthat should be exposed to them Nonetheless some of thosetools and technologies are reaching mainstream use suchas Xilinx Vivado Design Suite [49] and should be adoptedat least partially in our course as those kinds of tools aregaining increasing importancewhen targeting heterogeneousplatforms Another promising alternative is Altera SDK forOpenCL [50] a framework allowing software programmersto write kernel functions in OpenCL C to be compiled forexecution on FPGA targets The typical use of such systemis mixing hardware accelerated functions with host coderunning on a CPU (eg ARM Cortex A9)

Concerning the level of difficulties of the projects about56 of the students reckon that the difficulty level is similarto the most difficult problems they have experienced duringtheir academic trail The remaining students consider thedifficulty level of the proposed projects to be average whencompared to other assignments Interestingly none of thestudents considered the projects as being the easiest onesduring hisher undergraduate or graduate program

83 Ongoing Improvements Current research work in thedepartment is concernedwith an EDA tool dubbedRoboArchbeing developed byMSc students RoboArch is a component-based tool for developing hardware architectures for mobilerobots [36]The tool supports systemmodelling based on theMARTE profile [51] and simulation in electronic system level(ESL) integrated into realsimulated mobile robot platforms

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 3: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

International Journal of Reconfigurable Computing 3

the penetration of problem-based learning into the averagecomputing curricula is still shallow with faculty membersworking in isolation On the other hand it was concludedthat lecturers and studentsrsquo experiences are usually positiveA more specific investigation on project-based course isreported in [16] focusing on course design composition ofgroups and assessment

The educational approach described in this paper fitswell in the five-criterion scenario defined by [19] centralitydriving question constructive investigation autonomy andrealism As such it can be considered as a realistic case studyof a project-based course in the later stages of a computerscience degree

Embedded systems have a complex nature when com-pared to desktop or server software the prevalent platformadopted by most courses in the typical CS curriculum Adiverse mix of software and hardware components func-tional and nonfunctional requirements and significant dif-ferences between target applicationsmake it difficult to adopta conventional approach to embedded systems teaching Pre-vious experiences have shown to the authors that applying theconventional pedagogical approach to embedded systemsteaching can be very effective for the particular scenarioconsidered by the courseHowever it was perceived that a sig-nificant number of students would feel reluctant to undertakea new project in embedded systems even after a successfulcompletion of the standard course One of the reasons forthat the authors believe is that those students would not feelconfident enough to propose by themselves a significantlydifferent design for the new project By adopting a PBLapproach and employing a hands-on and realistic project inthe first course on embedded system the authors aim toempower students with the skills necessary to tackle othercomplex and diverse projects in this field This is a desirableoutcome considering that embedded systems development isan area of ever-increasing interest and presents a shortages ofwell qualified professionals

The use of realistic projects in the course described in thispaper is central to the adopted pedagogical approach Ratherthan using the project as an illustration of theoretical con-cepts it is a trigger for knowledge discovering and assemblingof new and revisited techniques

The remainder of this paper is organized as follows Theimportance of reconfigurable hardware is discussed in thenext section Then Section 4 argues about the importance ofmobile robotics for the success of the approach presented inthis paper Section 5 presents the actual teaching scenario inwhich embedded systems are taught along with the learningoutcomes expected Section 6 details the mobile roboticprojects used in an undergraduate course teaching embeddedsystems Section 7 presents the teaching platforms employed(hardware and software) Section 82 presents and examinesthe feedback given by students followed by conclusions in thelast section

3 Reconfigurable Hardware

Field-programmable gate arrays (FPGAs) are reconfigurablehardware devices composed of an array of logic blocks

an interconnection network and a set of IO cells Theprogrammability of FPGAs comes from the configurabilityof these three elements in such a way that any computationalfunction can be implemented [20] The main FPGA advan-tage over dedicated devicesmdashapplication specific integratedcircuit (ASIC) which is very costly to be designedmdashisthe flexibility of adapting the computational architectureaccording to the user needs after the silicon fabricationprocess is completed However to provide such flexibilityFPGAs come at higher cost in area delay and power con-sumption when compared to ASIC devices [21] In spite ofthose drawbacks FPGA devices are gaining more and moreimportance over the years as they bridge the gap betweenASICs and microprocessors [22] For this reason they havebeen extensively used in both academic and industrial fieldsfor prototyping new hardware architectures for acceleratinga wide variety of applications and also for developing anddeploying commercial products However knowledge aboutdigital systems and hardware description languages is neededto efficiently program reconfigurable hardware which can beconsidered a barrier for an even higher acceptance of thistechnology

The best practices when designing for FPGAs include thedescription of the architecture in a high level descriptionlanguage (HDL) such as VHDL Verilog Bluespec Sys-temVerilog SystemC or Handel-CThe textual description issynthesizable and is used as input to logic and RTL (register-transfer level) synthesis tools that automatically generate thecircuit netlist The netlist is then mapped placed and routedto create the bitstreams that are responsible for programmingthe target FPGA device This development flow does notrequire fullmastering of thosemethods and techniques espe-cially the ones related to logic synthesis and place and routingIn some way the flow can be seen as a black box similar tothe one used by students when compiling a software programto a target microprocessor As it happens with softwareprogramming to optimize or use some specific resourcesof the target system students may need some knowledgeabout the underlying target architecture Of course if fullyoptimized hardware is required more knowledge abouthardware design the underlying FPGA architecture and thetools used in the development flow may be necessary

University programs maintained by companies such asthe one fromXilinx [23] andAlterarsquos companies [24] allow theuse of state-of-the-art commercial tools to program FPGAsDespite of presenting some restrictions simulators such asModelSim [25] are also freely available for teaching purposesStudents can also download copies of those tools to useat home to work on homework assignments thus improv-ing their experience The available EDA tools and FPGAplatforms provide nearly every resource needed to masterembedded systems design Project development may have toaccomplish the partitioning of software code in order to shiftsome processing tasks to dedicated hardware componentsThe first implementation may be a software-centric one afterwhich students may realize that hardwaresoftware partition-ing can be the only alternative to enforce system constraints(eg energy consumption performance etc) By doing sostudents can acquire knowledge related toAmdahlrsquos Law [26]

4 International Journal of Reconfigurable Computing

profiling identification of the computational structures moresuited to be implemented as dedicated hardware componentsinterfacing schemes communication overheads and so forth

To conduct the necessary practical experiments there ishowever the need to expose students to complex examplesallowing them to have a perception of the problems theymight face in the real world So a question may arise whatkind of applications shall students work on in order to acquireall the expertise that is needed to develop embedded systemsBearing in mind the answer to this question mobile roboticstasks and applications have been selected as described in thenext sections

4 Why Mobile Robotics

Developing mobile robots encompasses several challengesand can be a suitable set-up to teach students many aspectsof modern and future embedded systems Personal robotsfor instance are usually mobile and need a large degree ofautonomy for localization navigation and mapping tasksMany of the requirements usually presented by this kindof system are prevalent in almost all other kinds of theembedded system applications More specifically mobilerobotics has been chosen as the target application for teachingpurposes based on the following reasons

(i) It includes all the characteristics of embedded sys-tems ranging from simple to complex ones

(ii) It requires students to deal with concepts such asvideo audio sensors wireless networking motorcontrol and navigation

(iii) It usually demands miniaturization frequently lead-ing to a system-on-a-chip (SoC) solution

(iv) It accommodatesmany interesting requirements suchas low cost low energy consumption andhigh perfor-mance

(v) It needs flexibility and programmability(vi) It typically needs hardwaresoftware codesign since

for most robotic kernels using software implementa-tions alone does not permit achieving the requiredperformance

(vii) It is a very attractive topic to students(viii) All of those reasons are desirable when conducting a

PBL course

Based on previous and ongoing experiences conductedby our research group on this field students seem to bevery motivated to study subjects and work with examplestargeting a mobile robot platform Since embedded systemsand reconfigurable computing expertise is acquired duringthe implementation of robotic kernels the strategy can beconsidered as an important element to attract computerscience students to topics otherwise not considered by themOther authors have also successfully used robotics to teachconcepts in digital design and in other courses aswell [27 28]The work presented in this paper is similar to the ones in abroader context but differs significantly by the nature of the

Table 1 SSC0711 course schedule

Week TopicsTheoretical Practical

1 Introduction embedded systems mdash2 Embedded systems design flow Tools3 State machines Candidate projects4 Concurrent process Problem analysis5 Interfaces and protocols SW implementation6 Control systems SW implementation7 HWSW partitioning Performance analysis8 HWSW integration HWmodelling9 mdash HW implementation10 mdash HW implementation11 mdash HW implementation12 SoC technology HW implementationtests13 State-of-art HWSW codesign HWSW integration14 mdash HWSW integrationtests15 mdash Demonstration

applications worked on by the students Bindalrsquos work focuseson a robotic arm while Kimrsquos work employs the well-knownLego Mindstorms kits

5 Teaching Embedded Systems toUndergraduate Students

At ICMC-USP one of the leading computer science depart-ments in Brazil mobile robotics has been used as practicalstudy cases to teach embedded system theory and practice inan undergraduate one-semester course offered as part of theComputer Science Bachelors curriculumThe course is inter-nally referred to as SSC0711mdashEmbedded SystemsHWSWCo-Design (more information about this course (in Portuguese)can be obtained at httpssistemasuspbrjupiterwebobter-Disciplinasgldis=SSC0711 or directly from the first author)running during 15 weeks In terms of supervised teachingthe course is equally split between theory and practice (2hoursweek each) However students spend significantlymore time developing their chosen projects out of classesreceiving help from tutors whenever necessary

Table 1 shows a summary of the course contents Thetheoretical part of this course starts giving a brief reviewabout ASICs and general purpose processors in the embed-ded system scenario Performance power consumptiondevelopment and update costs are also analysed (week 1)Then a typical embedded system design flow is presented(week 2) followed by HWSW specification and modelingComputation models are presented including finite statemachine data flow and Petri nets (weeks 3 and 4) Thenext topics give an overview about interfaces protocols andcontrol systems (weeks 5 and 6) After this point teachingis focused on process and development tools showing howto identify HWSW partitioning (week 7) design HWSWintegration and synthesize the whole computing system ona SoPC using FPGA technology (week 8) Different ICtechnologies for implementing SoCs are discussed (week

International Journal of Reconfigurable Computing 5

12) Finally state-of-the-art work is presented regardingembedded system development encompassing new toolsmodels and integrated circuit technology (week 13)

In practical terms the initial 4 weeks are devoted to theset-up of EDA tools and definition and analysis of the projectsto be undertaken by each group (limited to 3 students) Dur-ing weeks 5 and 7 students work on a preexisting software-only solution The emphasis is on functionality and perfor-mance analysis trying to identify possible bottlenecks to beimproved by using hardware implementations This leads toa SWHW partitioning modelling and implementation ofa hardware solution for selected processing kernels (weeks8ndash12) Typically the hardware implementation is in the formof a custom instruction for the Nios II processor Integrationand tests of the whole HWSW solution are carried out inweeks 13-14 followed by the system final demonstration forevaluation purposes

The core objective of this course is to teach hardwaresoftware and system design in an embedded system contextStudents are allowed to take this course only after a seriesof prerequisites is met which give them a solid backgroundon digital logic computer architecture and organization andHDL languages Students typically enroll for this course intheir 4th year of studies The practical projects used in thecourse are based on fundamental tasks used in autonomousmobile robotics localizationmapping and navigation alongwith image processing algorithms for data extraction fromthe operating environment and for human-robot interfaceThe adopted algorithms are implemented as embedded sys-tems based on FPGAs with students being asked to achievea set of goals for each problem as defined by the assignedinstructor The learning outcomes (119871

119894) expected from those

students after successfully developing such projects can besummarized by the 5 items shown below

L1 ability to design and implement custom embeddedsystems in the form of SoCs

L2 ability to perform hardwaresoftware codesign for arealistic project

L3 fluency in using a HDL for the development of amedium-complexity problem

L4 experience in using embedded operating systemspossibly an RTOS (real-time operating systems)

L5 ability to engage on graduate-level research on customembedded systems based on reconfigurable comput-ing

51 Course Overview As already said the course contents areequally divided between theoretical and practical activitiesThe robotic-based applications come as a complement to thematerial found in theoretical-orientated embedded systembooks such as Marwedel [29] Wolf [30] and Vahid andGivargis [31] They give students the essential knowledgeabout embedded systems describing the main hardware andsoftware components along with some design techniquesGiven the theoretical background needed to develop embed-ded systems students start to work on practical experimentscustomizing systems for robotic algorithms computations

The details of the assigned projects are presented in Section 6The algorithms are initially provided to the undergraduatestudents as CC++ code developed by graduate studentsduring their research projects As shown in Figure 1 thedevelopment flow for a practical project is divided into fivesteps

(1) Run the CC++ code on a PC platform in order tobetter understand the algorithm implementation andalso to gather code profiling information using gccand gprof Linux toolsThese first steps aim to identifythe most demanding sections of code by measuringthe number of function calls and the time spent oneach of them

(2) Run the CC++ code again on an embedded proces-sor in order to get new profiling information com-paring it with the previous run That helps studentsto understand the main differences and limitationsbetween a standard PC platform and an embeddedprocessor (possibly a softcore such as Alterarsquos Nios II)

(3) Reason and exploit the possibilities tomeet the systemrequirements such as performance resources usageand flexibility In this phase students basically engageon the hardwaresoftware codesign considering pos-sible software optimizations new custom instructions(implementing the corresponding custom hardware)multicore solutions operating system tuning and thedevelopment of new hardware components In thatcase they could operate as stand-alone blocks or asa coprocessor either by directly being connected to acentral processor or via a DMA channel

(4) Analyse the performance and reliability of the newcustomized embedded system for both hardwareand software modules using software profiling toolssuch as gprof and hardware simulation tools suchas ModelSim Students have also the opportunity tovalidate their final projects in a real mobile robotintegrating it with on-going research developmentsundertaken by graduate students

(5) Present the project to instructors and classmates andwrite a technical report for evaluation purposes

6 Practical Projects in Embedded Robotics

Every project used in the undergraduate course has alreadybeen deeply exploited by other graduate students from thedepartment as part of their MSc or PhD degrees as docu-mented in these publications [32ndash38]This knowledge is thenpresented to the undergraduate students via papers or thesesas reference material which gives them a detailed descriptionof the problem and corresponding algorithms along witha reference design for comparison purposes All of thosematerials along with tutorials tools and source code arecentral to conduct the PBL course described in this paperThenext subsections describe the main robotic-based projectsused so far in this course format Each of those projects canbe developed by a group of up to 3 students

6 International Journal of Reconfigurable Computing

PC (SW)

Nios II (SW)

Design exploration

HWSW codesign

Presentation of the results and

technical report preparation

Work evaluation

Real robot experiment

HWSW cosimulation

gt gcc ldquo-pgrdquogt gprof

gt nios2-gccgt nios2-elf-gprof

gt nios2-gccgt nios2-elf-gprof

gt Modelsim

mobile robotic applications

gtgt INPUT ltlt

CC++ code of

gt HW monitor

Figure 1 Embedded system development flow adopted by students

61 Localization Theproblem of autonomous robot localiza-tion can be solved using theMonte Carlo localization (MCL)algorithm [39] which uses a set of particles to estimatethe real robot position inside a map constantly updated bysensor readings during its movements (most experiments areevaluated with offline data from test bench maps availablefrom Radish [40]) This algorithm is quite interesting sinceeach particle can be evaluated independently of each otherallowing the students to exploit a high level of parallelismin hardware As the number of particles scales subject toa set of conditions such as sensor type and environmentcharacteristics balancing the computing hardware to meetsystem requirements is an interesting challenge The easiestsolution would be to code the wholeMCL algorithm in C andrun it in an embedded processor (software) while the hardestwould be to code it in a synthesizable HDL and then generatethe custom hardware To find the balance between those twoalternatives is a typical hardwaresoftware codesign problemIn addition to design options influencing performance thestudents also need to pay attention to some qualitative aspectsof the system such as random number generator supportingthe MCL algorithm and the numerical precision regardingfloating to fixed-point conversions Bonato et al [32] presentthe MCL algorithm implemented on an FPGA using theMersenne Twister pseudorandomnumber generator where agood balance between hardware and software is achievedThedesign described in that paper is presented to the students andused as a guide for developing and evaluating their solutions

62 Mapping In mobile robotics a mapping algorithm aimsto create a map of the navigation environment This problemcan be subdivided in two classes whenmapping is performedwith knowledge of the robot position and when the positionis estimated simultaneously during the mapping processThe latter case is known as simultaneous localization andmapping (SLAM) problem with most solutions being basedon probabilistic inferences derived from Bayesian filtersinvolving high computational complexity and a large volumeof data The extended Kalman filter (EKF) algorithm [41] isa classical Bayesian derived solution able to build a feature-based map without previously knowing the robot positionBonato et al [33] presented the first SoPC (system-on-a-programmable chip) of the EKF applied to the SLAMproblemwhich has been used as reference by students duringthe course Differently thanMCL the implementation of thismethod exhibits high data dependency basically consistingof multiplication and addition of matrices In this caseparallelism exploitation is more complicated as the studentsneed to look more carefully to the problem in order to findhow to split the internal operationswithout violating the codesemantics To better understand how to optimize the matrixoperations on hardware students are encouraged during thecourse to investigate state-of-the-art solutions such as thosepresented by Irturk et al [42]

63 Navigation The navigation problem consists of defininga way for the robot to achieve its destination following some

International Journal of Reconfigurable Computing 7

Hardware

Software

DoG

OriMag

KpGaussian filter

cascade anddifference of

Gaussians

Source (up to 30 fps-320 times 240pixels)

Orientation andgradient

magnitudecomputation

Key pointdetection withstability checks

Descriptorcomputation

(Nios IIprocessor)

Pixel stream

Ori and mag (25bits)

FIFO octv0 (42 times 127)FIFO octv1 (40 times 256)FIFO octv2 (38 times 512)

FIFOA (32 times 2048)

FIFOB (32 times 1024)

FIFOC (32 times 512)

FIFOD (24 times 1024)

Figure 2 A hardwaresoftware embedded system codesign comprising of three hardware blocks to extract features from images andprecompute data for the descriptors and one software block to associate descriptors with features the blocks communicate via dedicatedchannels along with FIFOs to store temporary data while receiver blocks are busy [34]

strategy such as the fastest the safest or the easiest pathA quite simple algorithm used for navigation is potentialfields (PF) In spite of presenting some limitations such astrapping the robot in a particular place due to local minima[43] it is a well-known solution used in mobile robotics Inthis method the navigation strategy is to reach a destinationwithout collision with obstacles being the repulsive forces andthe destination being the attraction force Due to its simplicitya software-only implementation of the PF algorithm is not asinteresting as a design option in an embedded system courseHowever a hardware implementation poses some challengesin particular a set of trigonometric functions that can bedifficult to be implemented as custom hardware For thisreason students are first asked to optimize the software bysolving trigonometric functions based on Taylor series andthen try to solve the problem in hardware using CORDICalgorithms and fixed-point representation The hardwaresolution is similar to the one previously presented in [32]where a hardware implementation of the CORDIC algorithmis integrated into the system as custom instruction as well

64 Image Processing An interesting application in termsof students motivation and learning outcomes is the scale-invariant feature transform (SIFT) algorithm [44] which isconsidered one of themost robust solutions to extract featuresfrom images This algorithm has been applied to many areasIn mobile robotics mapping it can be used as a data sourceto build feature-basedmaps from images Its implementationas an embedded system is quite complex specially if a highframe processing rate is required (eg 30 framessecond)A software-only implementation such as running the appli-cation on the softcore Nios II processor at 150MHz wouldtake more than one hour to extract the features from a singleinput image of 320 times 240 pixels However hardware andsoftware customizations can lead to an embedded system ableto process the input image in 130 seconds For instancea typical SIFT algorithm configuration needs to apply 18different Gaussian filter kernels over an image in orderto extract a feature candidate (known as key point) Thisthroughput requirement represents 181M pixels which can

be achieved by an efficient pipeline architecture as demon-strated in Bonato et al [34] As the entire SIFT algorithmis too complex to be implemented by one student groupduring a semester the problem is split between a num-ber of groups with each of them having to meet perfor-mance targets for its corresponding assignment Figure 2demonstrates the whole SIFT algorithm divided in blockswith each block being assigned to a group of students

65 Auxiliary Resources In order to validate the embeddedsystem produced students are encouraged to integrate theirsystem into a real Pioneer 3DX robot [45] running the Playercontrol software [46] Instructors provide students with aclient for this software running on an embedded processorin order to mitigate the integration task [35] Additionallystudents are given a set of auxiliary cores (in VHDLVerilog)to support the project implementation such as the IEEE-754 FPU (floating-point unit) module an AMBA bus con-troller (ARM standard) an Ethernet module (MAC 10100)hardware performancemonitors and a pseudorandom num-ber generator based on the Mersenne Twister algorithmStudents are also allowed to get other cores from third-party providers for instance from the OpenCores website(httpopencoresorg) We believe this kind of support isparticularly important to give a ldquoreal worldrdquo aspect to thecourse and would be infeasible without close interactionbetween undergraduate and graduate projects

7 Teaching Platforms and Tools

FPGAs are a suitable alternative to introduce many con-cepts in labs and to let students implement real systemsThat is mainly due to their programmability availabilityof intellectual property (IP) cores for easy interfacing toexternal devices availability of softcores that program partof the FPGA resources as a microprocessor and availabilityof embedded hardcore components (DSPsmdashdigital signalprocessors memory blocks and high speed IO ports) Allthose features are extensively used throughout the course andlab projects presented in this paper In addition they are

8 International Journal of Reconfigurable Computing

widely available at a relatively low cost with good supply ofdevelopment tools This is a desirable feature for an eventualreplication of the PBL course described in this paper

71 FPGA Boards Typical FPGA boards include the neces-sary physical interfaces to connect them to other componentsin order to set up an almost real operating environment Inour laboratory experiments we have adopted Altera DE2-70development board provided by Terasic company equippedwith a 4310158401015840 LCD touch panel with resolution of 800 times 480points and a 5M pixel CMOS camera The DE2-70 boardfeatures an Altera Cyclone II 2C35 FPGA and a myriad ofother interfaces Experience shows that when students workwith an environment close to what they are used to see ontheir gadgets (eg touch screen display from smart phones)there is an extra motivation for embracing exercises andprojects related to embedded systems since they get curiousto understand how the actually system works internally

72 Microprocessor Cores FPGA companies provide RISCsoftcores that can be used in FPGA devices Examplesof such softcores are Xilinxrsquos MicroBlaze Alterarsquos Nios IIand Aeroflex Gaislerrsquos LEON They also permit exploitingof multiprocessor systems by instantiating more than onesoftcore in the same FPGA Those companies provide theintegrated design environments needed to develop complexsystems using hardwaresoftware components With thoseenvironments students can start with software solutions andthen add cores to improve performance for instance Thoseenvironments include C compilers debuggers and simula-tors to program target microprocessors

By practising such approach students can also acquire therequired skills in computing system organization since theyare real system architects during the development of theirprojects The impact of cache floating-point units multipli-ers and dividers on system performance is easily realized bystudents through executionThey study the impact on perfor-mance of the adopted scheme to couple dedicated hardwarecomponents to a microprocessor To measure performancestudents understand the need for hardware monitors All ofthose features have proven to be valuable in the teachingprocess

Using softcore processors allows students to acquiremany embedded systems conceptsMemorymapped devicesinputoutput ports existence or not of instruction and datamemory caches existence or not of an operating systemand existence or not of floating-point units are all conceptsacquired by students when developing those systems As theaforementioned the reuse policy when developing tasks isalso fomented Students are also required to use modulesalready developed by others and to deal with the neededinterfaces

73 Custom Instructions and Coupling HardwareModules Byusing the Nios II microprocessor students also study theimpact of adding custom instructions to the softcore whichare used to improve the performance of time critical sectionsof code With this approach they realize the need and

advantages of doing hardwaresoftware codesign at the verybeginning of the project Facing students with the design ofsystems including both hardware and software componentshas shown to be a key element to tackle embedded systemconcepts

74 EDA Tools The practical experiments developed alongthe course can be conducted with either Altera or Xilinxrsquostools However in this course we have adopted the firstoption since the development kit available in the laboratoryis the DE2-70 featuring an Alterarsquos FPGA The tools usedare SoPC Builder and Quartus II for hardware developmentand nios2-gcc and nios2-elf-gprof for software compilationdebugging and profiling for the Nios II processor [24]Additionally Alterarsquos ecosystem also provides the ModelSimtool for hardware and software simulation and hardwaremonitors for online performance analysis

8 Evaluation of the Pedagogical Approach

In order to evaluate the effectiveness of the pedagogicalapproach described in this paper two kinds of analysis wereconducted one is based on the instructor point of view andthe other is based on the studentrsquos perceptions and feedbackThose analyses are presented in the next subsections

81 Instructorrsquos Evaluation We believe the desired learningoutcomes listed in Section 5 are achieved noticed via thefinal project quality Most projects are as complete as thereference one encompassing software and hardware on asingle chip accessing external and onchip memory usingembedded operating system or a single hardware abstractionlayer and also using external interface for debugging andfor sending and receiving data to the embedded system Forinstance a group of students developed a project evolvingthe potential field algorithm where optimized mathematicaloperations for hardware were applied in such a way that theachieved results in relation to performance and area werebetter than the reference project adopted This medium tohigh complexity problem prepares the students to face realproject development

Around 15 of the students that completed this courseare working directly with embedded systems developmentin Brazilian companies and 20 have engaged in graduatecourse in the same area What students have said is that thepractical approach of the course gives them more confidenceto face a job interview in the area of embedded systems andalso to perform the actual work for those who get the job Wealso have had the opportunity to analyse the students duringtheir graduate course and we could notice that they were ableto produce research results very soonwhen compared to theircolleagues with other backgrounds

82 Studentsrsquo Feedback We have collected responses to ananonymous questionnaire given to students All the studentshave answered mobile robotics as the most important factorto motivate them to realize the embedded systems projectsusing reconfigurable computing technology One of the

International Journal of Reconfigurable Computing 9

200

133

133267

133

133

Problems with thedevelopment boardLack of necessaryknowledgeProblems with VHDL

Problems with EDA tools

Problems with VHDLsimulatorOthers

Figure 3 Percentage of student responses concerning the difficul-ties in concluding their projects

reasons is that the students quickly realize the importance ofthe work to be done and see the results once it is implemented(eg image processing tasks) Based on the experiences wehave had their motivation is ldquoapplication-drivenrdquo and theyalways pay more attention to and concentrate their energieson more visible and stand-alone projects

The student responses concerning the aspects they hadmore difficulties when exposed to this teaching approach areshown in Figure 3 In general the main set of complaintsis about the EDA tools and FPGA boards The second setof aspects they refer more often are related to the VHDLsimulator the VHDL language and the lack of some specificbackground knowledge Some of the students indicate thememory limitations of the board as the main difficulty toimplement someprojects Another important difficulty factorpointed out by students is the problems related to developingCprogramswhenno operating system is used In this contextthey refer to the problems associated with allocating andreallocating memory as the most difficult one Some of themalso refer to the rather long initial time needed to begin aproject which is strongly related to the long learning curvesneeded to master the initial skills on using the tools and theVHDL language

In terms of the skills students recognize they should havebeen acquired before 50 of themmention advanced digitaldesign as the most important one About 10 of them referto the need for learning more about computer architectureThese two aspects reinforce the importance of having coursesin computer architecture where the design of a microproces-sor is fully understood (including pipelining issues) and notonly courses explaining assembly languages and superficialcomputer architecture concepts About 30 refer to the needof learning more about applications (control systems digitalsignal processing image processing etc) Only one studentreferred to the importance of knowledge on parallel andmultiprocessing systems

Concerning the VHDL language a very high percentageof students (about 50) refer to its concurrency model as themost difficult issue to master About 30 refer to the globalsemantic of theVHDL language as a difficult property tomas-ter One of them refers to the previous and long experiencesin software imperative programming as one of the reasons forthe difficulties Strangely another onementioned that his pre-vious experience in designing hardware using schematics didnot help and created some confusion in the first time usingVHDL According to the responses students do not find thesyntax and structure of the language a problem but reveal thenew programming paradigm as the most difficult issue Onestudent complained about the lack of good tutorials whileanother one about the complexity of the language and thenot so clear and understandable subset of VHDL behavioursfor synthesis Those complaints were somehow expectedgiven the major areas those students are undertaking (eithercomputer science or computer engineering)

The increasing importance of heterogeneous architec-tures has led to a number of projects aiming to develop com-piling environments targeting multiple executing platformssuch as CPUs GPUs DSPs and even FPGAs [47] Thosetools use in source code either well-established programminglanguages such as CC++ [4] or special purpose languagessuch as Lime [5] Hardware and FPGAs targets are ofparticular interest and have been the object of several effortstrying to automatically bridge the gap between high level pro-gramming languages and hardware custom structures [48]Although several research tools have been developed andmade available we believe they are currently not appropriateto be used in a first course in embedded systems for under-graduate students as they may abstract important aspectsthat should be exposed to them Nonetheless some of thosetools and technologies are reaching mainstream use suchas Xilinx Vivado Design Suite [49] and should be adoptedat least partially in our course as those kinds of tools aregaining increasing importancewhen targeting heterogeneousplatforms Another promising alternative is Altera SDK forOpenCL [50] a framework allowing software programmersto write kernel functions in OpenCL C to be compiled forexecution on FPGA targets The typical use of such systemis mixing hardware accelerated functions with host coderunning on a CPU (eg ARM Cortex A9)

Concerning the level of difficulties of the projects about56 of the students reckon that the difficulty level is similarto the most difficult problems they have experienced duringtheir academic trail The remaining students consider thedifficulty level of the proposed projects to be average whencompared to other assignments Interestingly none of thestudents considered the projects as being the easiest onesduring hisher undergraduate or graduate program

83 Ongoing Improvements Current research work in thedepartment is concernedwith an EDA tool dubbedRoboArchbeing developed byMSc students RoboArch is a component-based tool for developing hardware architectures for mobilerobots [36]The tool supports systemmodelling based on theMARTE profile [51] and simulation in electronic system level(ESL) integrated into realsimulated mobile robot platforms

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 4: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

4 International Journal of Reconfigurable Computing

profiling identification of the computational structures moresuited to be implemented as dedicated hardware componentsinterfacing schemes communication overheads and so forth

To conduct the necessary practical experiments there ishowever the need to expose students to complex examplesallowing them to have a perception of the problems theymight face in the real world So a question may arise whatkind of applications shall students work on in order to acquireall the expertise that is needed to develop embedded systemsBearing in mind the answer to this question mobile roboticstasks and applications have been selected as described in thenext sections

4 Why Mobile Robotics

Developing mobile robots encompasses several challengesand can be a suitable set-up to teach students many aspectsof modern and future embedded systems Personal robotsfor instance are usually mobile and need a large degree ofautonomy for localization navigation and mapping tasksMany of the requirements usually presented by this kindof system are prevalent in almost all other kinds of theembedded system applications More specifically mobilerobotics has been chosen as the target application for teachingpurposes based on the following reasons

(i) It includes all the characteristics of embedded sys-tems ranging from simple to complex ones

(ii) It requires students to deal with concepts such asvideo audio sensors wireless networking motorcontrol and navigation

(iii) It usually demands miniaturization frequently lead-ing to a system-on-a-chip (SoC) solution

(iv) It accommodatesmany interesting requirements suchas low cost low energy consumption andhigh perfor-mance

(v) It needs flexibility and programmability(vi) It typically needs hardwaresoftware codesign since

for most robotic kernels using software implementa-tions alone does not permit achieving the requiredperformance

(vii) It is a very attractive topic to students(viii) All of those reasons are desirable when conducting a

PBL course

Based on previous and ongoing experiences conductedby our research group on this field students seem to bevery motivated to study subjects and work with examplestargeting a mobile robot platform Since embedded systemsand reconfigurable computing expertise is acquired duringthe implementation of robotic kernels the strategy can beconsidered as an important element to attract computerscience students to topics otherwise not considered by themOther authors have also successfully used robotics to teachconcepts in digital design and in other courses aswell [27 28]The work presented in this paper is similar to the ones in abroader context but differs significantly by the nature of the

Table 1 SSC0711 course schedule

Week TopicsTheoretical Practical

1 Introduction embedded systems mdash2 Embedded systems design flow Tools3 State machines Candidate projects4 Concurrent process Problem analysis5 Interfaces and protocols SW implementation6 Control systems SW implementation7 HWSW partitioning Performance analysis8 HWSW integration HWmodelling9 mdash HW implementation10 mdash HW implementation11 mdash HW implementation12 SoC technology HW implementationtests13 State-of-art HWSW codesign HWSW integration14 mdash HWSW integrationtests15 mdash Demonstration

applications worked on by the students Bindalrsquos work focuseson a robotic arm while Kimrsquos work employs the well-knownLego Mindstorms kits

5 Teaching Embedded Systems toUndergraduate Students

At ICMC-USP one of the leading computer science depart-ments in Brazil mobile robotics has been used as practicalstudy cases to teach embedded system theory and practice inan undergraduate one-semester course offered as part of theComputer Science Bachelors curriculumThe course is inter-nally referred to as SSC0711mdashEmbedded SystemsHWSWCo-Design (more information about this course (in Portuguese)can be obtained at httpssistemasuspbrjupiterwebobter-Disciplinasgldis=SSC0711 or directly from the first author)running during 15 weeks In terms of supervised teachingthe course is equally split between theory and practice (2hoursweek each) However students spend significantlymore time developing their chosen projects out of classesreceiving help from tutors whenever necessary

Table 1 shows a summary of the course contents Thetheoretical part of this course starts giving a brief reviewabout ASICs and general purpose processors in the embed-ded system scenario Performance power consumptiondevelopment and update costs are also analysed (week 1)Then a typical embedded system design flow is presented(week 2) followed by HWSW specification and modelingComputation models are presented including finite statemachine data flow and Petri nets (weeks 3 and 4) Thenext topics give an overview about interfaces protocols andcontrol systems (weeks 5 and 6) After this point teachingis focused on process and development tools showing howto identify HWSW partitioning (week 7) design HWSWintegration and synthesize the whole computing system ona SoPC using FPGA technology (week 8) Different ICtechnologies for implementing SoCs are discussed (week

International Journal of Reconfigurable Computing 5

12) Finally state-of-the-art work is presented regardingembedded system development encompassing new toolsmodels and integrated circuit technology (week 13)

In practical terms the initial 4 weeks are devoted to theset-up of EDA tools and definition and analysis of the projectsto be undertaken by each group (limited to 3 students) Dur-ing weeks 5 and 7 students work on a preexisting software-only solution The emphasis is on functionality and perfor-mance analysis trying to identify possible bottlenecks to beimproved by using hardware implementations This leads toa SWHW partitioning modelling and implementation ofa hardware solution for selected processing kernels (weeks8ndash12) Typically the hardware implementation is in the formof a custom instruction for the Nios II processor Integrationand tests of the whole HWSW solution are carried out inweeks 13-14 followed by the system final demonstration forevaluation purposes

The core objective of this course is to teach hardwaresoftware and system design in an embedded system contextStudents are allowed to take this course only after a seriesof prerequisites is met which give them a solid backgroundon digital logic computer architecture and organization andHDL languages Students typically enroll for this course intheir 4th year of studies The practical projects used in thecourse are based on fundamental tasks used in autonomousmobile robotics localizationmapping and navigation alongwith image processing algorithms for data extraction fromthe operating environment and for human-robot interfaceThe adopted algorithms are implemented as embedded sys-tems based on FPGAs with students being asked to achievea set of goals for each problem as defined by the assignedinstructor The learning outcomes (119871

119894) expected from those

students after successfully developing such projects can besummarized by the 5 items shown below

L1 ability to design and implement custom embeddedsystems in the form of SoCs

L2 ability to perform hardwaresoftware codesign for arealistic project

L3 fluency in using a HDL for the development of amedium-complexity problem

L4 experience in using embedded operating systemspossibly an RTOS (real-time operating systems)

L5 ability to engage on graduate-level research on customembedded systems based on reconfigurable comput-ing

51 Course Overview As already said the course contents areequally divided between theoretical and practical activitiesThe robotic-based applications come as a complement to thematerial found in theoretical-orientated embedded systembooks such as Marwedel [29] Wolf [30] and Vahid andGivargis [31] They give students the essential knowledgeabout embedded systems describing the main hardware andsoftware components along with some design techniquesGiven the theoretical background needed to develop embed-ded systems students start to work on practical experimentscustomizing systems for robotic algorithms computations

The details of the assigned projects are presented in Section 6The algorithms are initially provided to the undergraduatestudents as CC++ code developed by graduate studentsduring their research projects As shown in Figure 1 thedevelopment flow for a practical project is divided into fivesteps

(1) Run the CC++ code on a PC platform in order tobetter understand the algorithm implementation andalso to gather code profiling information using gccand gprof Linux toolsThese first steps aim to identifythe most demanding sections of code by measuringthe number of function calls and the time spent oneach of them

(2) Run the CC++ code again on an embedded proces-sor in order to get new profiling information com-paring it with the previous run That helps studentsto understand the main differences and limitationsbetween a standard PC platform and an embeddedprocessor (possibly a softcore such as Alterarsquos Nios II)

(3) Reason and exploit the possibilities tomeet the systemrequirements such as performance resources usageand flexibility In this phase students basically engageon the hardwaresoftware codesign considering pos-sible software optimizations new custom instructions(implementing the corresponding custom hardware)multicore solutions operating system tuning and thedevelopment of new hardware components In thatcase they could operate as stand-alone blocks or asa coprocessor either by directly being connected to acentral processor or via a DMA channel

(4) Analyse the performance and reliability of the newcustomized embedded system for both hardwareand software modules using software profiling toolssuch as gprof and hardware simulation tools suchas ModelSim Students have also the opportunity tovalidate their final projects in a real mobile robotintegrating it with on-going research developmentsundertaken by graduate students

(5) Present the project to instructors and classmates andwrite a technical report for evaluation purposes

6 Practical Projects in Embedded Robotics

Every project used in the undergraduate course has alreadybeen deeply exploited by other graduate students from thedepartment as part of their MSc or PhD degrees as docu-mented in these publications [32ndash38]This knowledge is thenpresented to the undergraduate students via papers or thesesas reference material which gives them a detailed descriptionof the problem and corresponding algorithms along witha reference design for comparison purposes All of thosematerials along with tutorials tools and source code arecentral to conduct the PBL course described in this paperThenext subsections describe the main robotic-based projectsused so far in this course format Each of those projects canbe developed by a group of up to 3 students

6 International Journal of Reconfigurable Computing

PC (SW)

Nios II (SW)

Design exploration

HWSW codesign

Presentation of the results and

technical report preparation

Work evaluation

Real robot experiment

HWSW cosimulation

gt gcc ldquo-pgrdquogt gprof

gt nios2-gccgt nios2-elf-gprof

gt nios2-gccgt nios2-elf-gprof

gt Modelsim

mobile robotic applications

gtgt INPUT ltlt

CC++ code of

gt HW monitor

Figure 1 Embedded system development flow adopted by students

61 Localization Theproblem of autonomous robot localiza-tion can be solved using theMonte Carlo localization (MCL)algorithm [39] which uses a set of particles to estimatethe real robot position inside a map constantly updated bysensor readings during its movements (most experiments areevaluated with offline data from test bench maps availablefrom Radish [40]) This algorithm is quite interesting sinceeach particle can be evaluated independently of each otherallowing the students to exploit a high level of parallelismin hardware As the number of particles scales subject toa set of conditions such as sensor type and environmentcharacteristics balancing the computing hardware to meetsystem requirements is an interesting challenge The easiestsolution would be to code the wholeMCL algorithm in C andrun it in an embedded processor (software) while the hardestwould be to code it in a synthesizable HDL and then generatethe custom hardware To find the balance between those twoalternatives is a typical hardwaresoftware codesign problemIn addition to design options influencing performance thestudents also need to pay attention to some qualitative aspectsof the system such as random number generator supportingthe MCL algorithm and the numerical precision regardingfloating to fixed-point conversions Bonato et al [32] presentthe MCL algorithm implemented on an FPGA using theMersenne Twister pseudorandomnumber generator where agood balance between hardware and software is achievedThedesign described in that paper is presented to the students andused as a guide for developing and evaluating their solutions

62 Mapping In mobile robotics a mapping algorithm aimsto create a map of the navigation environment This problemcan be subdivided in two classes whenmapping is performedwith knowledge of the robot position and when the positionis estimated simultaneously during the mapping processThe latter case is known as simultaneous localization andmapping (SLAM) problem with most solutions being basedon probabilistic inferences derived from Bayesian filtersinvolving high computational complexity and a large volumeof data The extended Kalman filter (EKF) algorithm [41] isa classical Bayesian derived solution able to build a feature-based map without previously knowing the robot positionBonato et al [33] presented the first SoPC (system-on-a-programmable chip) of the EKF applied to the SLAMproblemwhich has been used as reference by students duringthe course Differently thanMCL the implementation of thismethod exhibits high data dependency basically consistingof multiplication and addition of matrices In this caseparallelism exploitation is more complicated as the studentsneed to look more carefully to the problem in order to findhow to split the internal operationswithout violating the codesemantics To better understand how to optimize the matrixoperations on hardware students are encouraged during thecourse to investigate state-of-the-art solutions such as thosepresented by Irturk et al [42]

63 Navigation The navigation problem consists of defininga way for the robot to achieve its destination following some

International Journal of Reconfigurable Computing 7

Hardware

Software

DoG

OriMag

KpGaussian filter

cascade anddifference of

Gaussians

Source (up to 30 fps-320 times 240pixels)

Orientation andgradient

magnitudecomputation

Key pointdetection withstability checks

Descriptorcomputation

(Nios IIprocessor)

Pixel stream

Ori and mag (25bits)

FIFO octv0 (42 times 127)FIFO octv1 (40 times 256)FIFO octv2 (38 times 512)

FIFOA (32 times 2048)

FIFOB (32 times 1024)

FIFOC (32 times 512)

FIFOD (24 times 1024)

Figure 2 A hardwaresoftware embedded system codesign comprising of three hardware blocks to extract features from images andprecompute data for the descriptors and one software block to associate descriptors with features the blocks communicate via dedicatedchannels along with FIFOs to store temporary data while receiver blocks are busy [34]

strategy such as the fastest the safest or the easiest pathA quite simple algorithm used for navigation is potentialfields (PF) In spite of presenting some limitations such astrapping the robot in a particular place due to local minima[43] it is a well-known solution used in mobile robotics Inthis method the navigation strategy is to reach a destinationwithout collision with obstacles being the repulsive forces andthe destination being the attraction force Due to its simplicitya software-only implementation of the PF algorithm is not asinteresting as a design option in an embedded system courseHowever a hardware implementation poses some challengesin particular a set of trigonometric functions that can bedifficult to be implemented as custom hardware For thisreason students are first asked to optimize the software bysolving trigonometric functions based on Taylor series andthen try to solve the problem in hardware using CORDICalgorithms and fixed-point representation The hardwaresolution is similar to the one previously presented in [32]where a hardware implementation of the CORDIC algorithmis integrated into the system as custom instruction as well

64 Image Processing An interesting application in termsof students motivation and learning outcomes is the scale-invariant feature transform (SIFT) algorithm [44] which isconsidered one of themost robust solutions to extract featuresfrom images This algorithm has been applied to many areasIn mobile robotics mapping it can be used as a data sourceto build feature-basedmaps from images Its implementationas an embedded system is quite complex specially if a highframe processing rate is required (eg 30 framessecond)A software-only implementation such as running the appli-cation on the softcore Nios II processor at 150MHz wouldtake more than one hour to extract the features from a singleinput image of 320 times 240 pixels However hardware andsoftware customizations can lead to an embedded system ableto process the input image in 130 seconds For instancea typical SIFT algorithm configuration needs to apply 18different Gaussian filter kernels over an image in orderto extract a feature candidate (known as key point) Thisthroughput requirement represents 181M pixels which can

be achieved by an efficient pipeline architecture as demon-strated in Bonato et al [34] As the entire SIFT algorithmis too complex to be implemented by one student groupduring a semester the problem is split between a num-ber of groups with each of them having to meet perfor-mance targets for its corresponding assignment Figure 2demonstrates the whole SIFT algorithm divided in blockswith each block being assigned to a group of students

65 Auxiliary Resources In order to validate the embeddedsystem produced students are encouraged to integrate theirsystem into a real Pioneer 3DX robot [45] running the Playercontrol software [46] Instructors provide students with aclient for this software running on an embedded processorin order to mitigate the integration task [35] Additionallystudents are given a set of auxiliary cores (in VHDLVerilog)to support the project implementation such as the IEEE-754 FPU (floating-point unit) module an AMBA bus con-troller (ARM standard) an Ethernet module (MAC 10100)hardware performancemonitors and a pseudorandom num-ber generator based on the Mersenne Twister algorithmStudents are also allowed to get other cores from third-party providers for instance from the OpenCores website(httpopencoresorg) We believe this kind of support isparticularly important to give a ldquoreal worldrdquo aspect to thecourse and would be infeasible without close interactionbetween undergraduate and graduate projects

7 Teaching Platforms and Tools

FPGAs are a suitable alternative to introduce many con-cepts in labs and to let students implement real systemsThat is mainly due to their programmability availabilityof intellectual property (IP) cores for easy interfacing toexternal devices availability of softcores that program partof the FPGA resources as a microprocessor and availabilityof embedded hardcore components (DSPsmdashdigital signalprocessors memory blocks and high speed IO ports) Allthose features are extensively used throughout the course andlab projects presented in this paper In addition they are

8 International Journal of Reconfigurable Computing

widely available at a relatively low cost with good supply ofdevelopment tools This is a desirable feature for an eventualreplication of the PBL course described in this paper

71 FPGA Boards Typical FPGA boards include the neces-sary physical interfaces to connect them to other componentsin order to set up an almost real operating environment Inour laboratory experiments we have adopted Altera DE2-70development board provided by Terasic company equippedwith a 4310158401015840 LCD touch panel with resolution of 800 times 480points and a 5M pixel CMOS camera The DE2-70 boardfeatures an Altera Cyclone II 2C35 FPGA and a myriad ofother interfaces Experience shows that when students workwith an environment close to what they are used to see ontheir gadgets (eg touch screen display from smart phones)there is an extra motivation for embracing exercises andprojects related to embedded systems since they get curiousto understand how the actually system works internally

72 Microprocessor Cores FPGA companies provide RISCsoftcores that can be used in FPGA devices Examplesof such softcores are Xilinxrsquos MicroBlaze Alterarsquos Nios IIand Aeroflex Gaislerrsquos LEON They also permit exploitingof multiprocessor systems by instantiating more than onesoftcore in the same FPGA Those companies provide theintegrated design environments needed to develop complexsystems using hardwaresoftware components With thoseenvironments students can start with software solutions andthen add cores to improve performance for instance Thoseenvironments include C compilers debuggers and simula-tors to program target microprocessors

By practising such approach students can also acquire therequired skills in computing system organization since theyare real system architects during the development of theirprojects The impact of cache floating-point units multipli-ers and dividers on system performance is easily realized bystudents through executionThey study the impact on perfor-mance of the adopted scheme to couple dedicated hardwarecomponents to a microprocessor To measure performancestudents understand the need for hardware monitors All ofthose features have proven to be valuable in the teachingprocess

Using softcore processors allows students to acquiremany embedded systems conceptsMemorymapped devicesinputoutput ports existence or not of instruction and datamemory caches existence or not of an operating systemand existence or not of floating-point units are all conceptsacquired by students when developing those systems As theaforementioned the reuse policy when developing tasks isalso fomented Students are also required to use modulesalready developed by others and to deal with the neededinterfaces

73 Custom Instructions and Coupling HardwareModules Byusing the Nios II microprocessor students also study theimpact of adding custom instructions to the softcore whichare used to improve the performance of time critical sectionsof code With this approach they realize the need and

advantages of doing hardwaresoftware codesign at the verybeginning of the project Facing students with the design ofsystems including both hardware and software componentshas shown to be a key element to tackle embedded systemconcepts

74 EDA Tools The practical experiments developed alongthe course can be conducted with either Altera or Xilinxrsquostools However in this course we have adopted the firstoption since the development kit available in the laboratoryis the DE2-70 featuring an Alterarsquos FPGA The tools usedare SoPC Builder and Quartus II for hardware developmentand nios2-gcc and nios2-elf-gprof for software compilationdebugging and profiling for the Nios II processor [24]Additionally Alterarsquos ecosystem also provides the ModelSimtool for hardware and software simulation and hardwaremonitors for online performance analysis

8 Evaluation of the Pedagogical Approach

In order to evaluate the effectiveness of the pedagogicalapproach described in this paper two kinds of analysis wereconducted one is based on the instructor point of view andthe other is based on the studentrsquos perceptions and feedbackThose analyses are presented in the next subsections

81 Instructorrsquos Evaluation We believe the desired learningoutcomes listed in Section 5 are achieved noticed via thefinal project quality Most projects are as complete as thereference one encompassing software and hardware on asingle chip accessing external and onchip memory usingembedded operating system or a single hardware abstractionlayer and also using external interface for debugging andfor sending and receiving data to the embedded system Forinstance a group of students developed a project evolvingthe potential field algorithm where optimized mathematicaloperations for hardware were applied in such a way that theachieved results in relation to performance and area werebetter than the reference project adopted This medium tohigh complexity problem prepares the students to face realproject development

Around 15 of the students that completed this courseare working directly with embedded systems developmentin Brazilian companies and 20 have engaged in graduatecourse in the same area What students have said is that thepractical approach of the course gives them more confidenceto face a job interview in the area of embedded systems andalso to perform the actual work for those who get the job Wealso have had the opportunity to analyse the students duringtheir graduate course and we could notice that they were ableto produce research results very soonwhen compared to theircolleagues with other backgrounds

82 Studentsrsquo Feedback We have collected responses to ananonymous questionnaire given to students All the studentshave answered mobile robotics as the most important factorto motivate them to realize the embedded systems projectsusing reconfigurable computing technology One of the

International Journal of Reconfigurable Computing 9

200

133

133267

133

133

Problems with thedevelopment boardLack of necessaryknowledgeProblems with VHDL

Problems with EDA tools

Problems with VHDLsimulatorOthers

Figure 3 Percentage of student responses concerning the difficul-ties in concluding their projects

reasons is that the students quickly realize the importance ofthe work to be done and see the results once it is implemented(eg image processing tasks) Based on the experiences wehave had their motivation is ldquoapplication-drivenrdquo and theyalways pay more attention to and concentrate their energieson more visible and stand-alone projects

The student responses concerning the aspects they hadmore difficulties when exposed to this teaching approach areshown in Figure 3 In general the main set of complaintsis about the EDA tools and FPGA boards The second setof aspects they refer more often are related to the VHDLsimulator the VHDL language and the lack of some specificbackground knowledge Some of the students indicate thememory limitations of the board as the main difficulty toimplement someprojects Another important difficulty factorpointed out by students is the problems related to developingCprogramswhenno operating system is used In this contextthey refer to the problems associated with allocating andreallocating memory as the most difficult one Some of themalso refer to the rather long initial time needed to begin aproject which is strongly related to the long learning curvesneeded to master the initial skills on using the tools and theVHDL language

In terms of the skills students recognize they should havebeen acquired before 50 of themmention advanced digitaldesign as the most important one About 10 of them referto the need for learning more about computer architectureThese two aspects reinforce the importance of having coursesin computer architecture where the design of a microproces-sor is fully understood (including pipelining issues) and notonly courses explaining assembly languages and superficialcomputer architecture concepts About 30 refer to the needof learning more about applications (control systems digitalsignal processing image processing etc) Only one studentreferred to the importance of knowledge on parallel andmultiprocessing systems

Concerning the VHDL language a very high percentageof students (about 50) refer to its concurrency model as themost difficult issue to master About 30 refer to the globalsemantic of theVHDL language as a difficult property tomas-ter One of them refers to the previous and long experiencesin software imperative programming as one of the reasons forthe difficulties Strangely another onementioned that his pre-vious experience in designing hardware using schematics didnot help and created some confusion in the first time usingVHDL According to the responses students do not find thesyntax and structure of the language a problem but reveal thenew programming paradigm as the most difficult issue Onestudent complained about the lack of good tutorials whileanother one about the complexity of the language and thenot so clear and understandable subset of VHDL behavioursfor synthesis Those complaints were somehow expectedgiven the major areas those students are undertaking (eithercomputer science or computer engineering)

The increasing importance of heterogeneous architec-tures has led to a number of projects aiming to develop com-piling environments targeting multiple executing platformssuch as CPUs GPUs DSPs and even FPGAs [47] Thosetools use in source code either well-established programminglanguages such as CC++ [4] or special purpose languagessuch as Lime [5] Hardware and FPGAs targets are ofparticular interest and have been the object of several effortstrying to automatically bridge the gap between high level pro-gramming languages and hardware custom structures [48]Although several research tools have been developed andmade available we believe they are currently not appropriateto be used in a first course in embedded systems for under-graduate students as they may abstract important aspectsthat should be exposed to them Nonetheless some of thosetools and technologies are reaching mainstream use suchas Xilinx Vivado Design Suite [49] and should be adoptedat least partially in our course as those kinds of tools aregaining increasing importancewhen targeting heterogeneousplatforms Another promising alternative is Altera SDK forOpenCL [50] a framework allowing software programmersto write kernel functions in OpenCL C to be compiled forexecution on FPGA targets The typical use of such systemis mixing hardware accelerated functions with host coderunning on a CPU (eg ARM Cortex A9)

Concerning the level of difficulties of the projects about56 of the students reckon that the difficulty level is similarto the most difficult problems they have experienced duringtheir academic trail The remaining students consider thedifficulty level of the proposed projects to be average whencompared to other assignments Interestingly none of thestudents considered the projects as being the easiest onesduring hisher undergraduate or graduate program

83 Ongoing Improvements Current research work in thedepartment is concernedwith an EDA tool dubbedRoboArchbeing developed byMSc students RoboArch is a component-based tool for developing hardware architectures for mobilerobots [36]The tool supports systemmodelling based on theMARTE profile [51] and simulation in electronic system level(ESL) integrated into realsimulated mobile robot platforms

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 5: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

International Journal of Reconfigurable Computing 5

12) Finally state-of-the-art work is presented regardingembedded system development encompassing new toolsmodels and integrated circuit technology (week 13)

In practical terms the initial 4 weeks are devoted to theset-up of EDA tools and definition and analysis of the projectsto be undertaken by each group (limited to 3 students) Dur-ing weeks 5 and 7 students work on a preexisting software-only solution The emphasis is on functionality and perfor-mance analysis trying to identify possible bottlenecks to beimproved by using hardware implementations This leads toa SWHW partitioning modelling and implementation ofa hardware solution for selected processing kernels (weeks8ndash12) Typically the hardware implementation is in the formof a custom instruction for the Nios II processor Integrationand tests of the whole HWSW solution are carried out inweeks 13-14 followed by the system final demonstration forevaluation purposes

The core objective of this course is to teach hardwaresoftware and system design in an embedded system contextStudents are allowed to take this course only after a seriesof prerequisites is met which give them a solid backgroundon digital logic computer architecture and organization andHDL languages Students typically enroll for this course intheir 4th year of studies The practical projects used in thecourse are based on fundamental tasks used in autonomousmobile robotics localizationmapping and navigation alongwith image processing algorithms for data extraction fromthe operating environment and for human-robot interfaceThe adopted algorithms are implemented as embedded sys-tems based on FPGAs with students being asked to achievea set of goals for each problem as defined by the assignedinstructor The learning outcomes (119871

119894) expected from those

students after successfully developing such projects can besummarized by the 5 items shown below

L1 ability to design and implement custom embeddedsystems in the form of SoCs

L2 ability to perform hardwaresoftware codesign for arealistic project

L3 fluency in using a HDL for the development of amedium-complexity problem

L4 experience in using embedded operating systemspossibly an RTOS (real-time operating systems)

L5 ability to engage on graduate-level research on customembedded systems based on reconfigurable comput-ing

51 Course Overview As already said the course contents areequally divided between theoretical and practical activitiesThe robotic-based applications come as a complement to thematerial found in theoretical-orientated embedded systembooks such as Marwedel [29] Wolf [30] and Vahid andGivargis [31] They give students the essential knowledgeabout embedded systems describing the main hardware andsoftware components along with some design techniquesGiven the theoretical background needed to develop embed-ded systems students start to work on practical experimentscustomizing systems for robotic algorithms computations

The details of the assigned projects are presented in Section 6The algorithms are initially provided to the undergraduatestudents as CC++ code developed by graduate studentsduring their research projects As shown in Figure 1 thedevelopment flow for a practical project is divided into fivesteps

(1) Run the CC++ code on a PC platform in order tobetter understand the algorithm implementation andalso to gather code profiling information using gccand gprof Linux toolsThese first steps aim to identifythe most demanding sections of code by measuringthe number of function calls and the time spent oneach of them

(2) Run the CC++ code again on an embedded proces-sor in order to get new profiling information com-paring it with the previous run That helps studentsto understand the main differences and limitationsbetween a standard PC platform and an embeddedprocessor (possibly a softcore such as Alterarsquos Nios II)

(3) Reason and exploit the possibilities tomeet the systemrequirements such as performance resources usageand flexibility In this phase students basically engageon the hardwaresoftware codesign considering pos-sible software optimizations new custom instructions(implementing the corresponding custom hardware)multicore solutions operating system tuning and thedevelopment of new hardware components In thatcase they could operate as stand-alone blocks or asa coprocessor either by directly being connected to acentral processor or via a DMA channel

(4) Analyse the performance and reliability of the newcustomized embedded system for both hardwareand software modules using software profiling toolssuch as gprof and hardware simulation tools suchas ModelSim Students have also the opportunity tovalidate their final projects in a real mobile robotintegrating it with on-going research developmentsundertaken by graduate students

(5) Present the project to instructors and classmates andwrite a technical report for evaluation purposes

6 Practical Projects in Embedded Robotics

Every project used in the undergraduate course has alreadybeen deeply exploited by other graduate students from thedepartment as part of their MSc or PhD degrees as docu-mented in these publications [32ndash38]This knowledge is thenpresented to the undergraduate students via papers or thesesas reference material which gives them a detailed descriptionof the problem and corresponding algorithms along witha reference design for comparison purposes All of thosematerials along with tutorials tools and source code arecentral to conduct the PBL course described in this paperThenext subsections describe the main robotic-based projectsused so far in this course format Each of those projects canbe developed by a group of up to 3 students

6 International Journal of Reconfigurable Computing

PC (SW)

Nios II (SW)

Design exploration

HWSW codesign

Presentation of the results and

technical report preparation

Work evaluation

Real robot experiment

HWSW cosimulation

gt gcc ldquo-pgrdquogt gprof

gt nios2-gccgt nios2-elf-gprof

gt nios2-gccgt nios2-elf-gprof

gt Modelsim

mobile robotic applications

gtgt INPUT ltlt

CC++ code of

gt HW monitor

Figure 1 Embedded system development flow adopted by students

61 Localization Theproblem of autonomous robot localiza-tion can be solved using theMonte Carlo localization (MCL)algorithm [39] which uses a set of particles to estimatethe real robot position inside a map constantly updated bysensor readings during its movements (most experiments areevaluated with offline data from test bench maps availablefrom Radish [40]) This algorithm is quite interesting sinceeach particle can be evaluated independently of each otherallowing the students to exploit a high level of parallelismin hardware As the number of particles scales subject toa set of conditions such as sensor type and environmentcharacteristics balancing the computing hardware to meetsystem requirements is an interesting challenge The easiestsolution would be to code the wholeMCL algorithm in C andrun it in an embedded processor (software) while the hardestwould be to code it in a synthesizable HDL and then generatethe custom hardware To find the balance between those twoalternatives is a typical hardwaresoftware codesign problemIn addition to design options influencing performance thestudents also need to pay attention to some qualitative aspectsof the system such as random number generator supportingthe MCL algorithm and the numerical precision regardingfloating to fixed-point conversions Bonato et al [32] presentthe MCL algorithm implemented on an FPGA using theMersenne Twister pseudorandomnumber generator where agood balance between hardware and software is achievedThedesign described in that paper is presented to the students andused as a guide for developing and evaluating their solutions

62 Mapping In mobile robotics a mapping algorithm aimsto create a map of the navigation environment This problemcan be subdivided in two classes whenmapping is performedwith knowledge of the robot position and when the positionis estimated simultaneously during the mapping processThe latter case is known as simultaneous localization andmapping (SLAM) problem with most solutions being basedon probabilistic inferences derived from Bayesian filtersinvolving high computational complexity and a large volumeof data The extended Kalman filter (EKF) algorithm [41] isa classical Bayesian derived solution able to build a feature-based map without previously knowing the robot positionBonato et al [33] presented the first SoPC (system-on-a-programmable chip) of the EKF applied to the SLAMproblemwhich has been used as reference by students duringthe course Differently thanMCL the implementation of thismethod exhibits high data dependency basically consistingof multiplication and addition of matrices In this caseparallelism exploitation is more complicated as the studentsneed to look more carefully to the problem in order to findhow to split the internal operationswithout violating the codesemantics To better understand how to optimize the matrixoperations on hardware students are encouraged during thecourse to investigate state-of-the-art solutions such as thosepresented by Irturk et al [42]

63 Navigation The navigation problem consists of defininga way for the robot to achieve its destination following some

International Journal of Reconfigurable Computing 7

Hardware

Software

DoG

OriMag

KpGaussian filter

cascade anddifference of

Gaussians

Source (up to 30 fps-320 times 240pixels)

Orientation andgradient

magnitudecomputation

Key pointdetection withstability checks

Descriptorcomputation

(Nios IIprocessor)

Pixel stream

Ori and mag (25bits)

FIFO octv0 (42 times 127)FIFO octv1 (40 times 256)FIFO octv2 (38 times 512)

FIFOA (32 times 2048)

FIFOB (32 times 1024)

FIFOC (32 times 512)

FIFOD (24 times 1024)

Figure 2 A hardwaresoftware embedded system codesign comprising of three hardware blocks to extract features from images andprecompute data for the descriptors and one software block to associate descriptors with features the blocks communicate via dedicatedchannels along with FIFOs to store temporary data while receiver blocks are busy [34]

strategy such as the fastest the safest or the easiest pathA quite simple algorithm used for navigation is potentialfields (PF) In spite of presenting some limitations such astrapping the robot in a particular place due to local minima[43] it is a well-known solution used in mobile robotics Inthis method the navigation strategy is to reach a destinationwithout collision with obstacles being the repulsive forces andthe destination being the attraction force Due to its simplicitya software-only implementation of the PF algorithm is not asinteresting as a design option in an embedded system courseHowever a hardware implementation poses some challengesin particular a set of trigonometric functions that can bedifficult to be implemented as custom hardware For thisreason students are first asked to optimize the software bysolving trigonometric functions based on Taylor series andthen try to solve the problem in hardware using CORDICalgorithms and fixed-point representation The hardwaresolution is similar to the one previously presented in [32]where a hardware implementation of the CORDIC algorithmis integrated into the system as custom instruction as well

64 Image Processing An interesting application in termsof students motivation and learning outcomes is the scale-invariant feature transform (SIFT) algorithm [44] which isconsidered one of themost robust solutions to extract featuresfrom images This algorithm has been applied to many areasIn mobile robotics mapping it can be used as a data sourceto build feature-basedmaps from images Its implementationas an embedded system is quite complex specially if a highframe processing rate is required (eg 30 framessecond)A software-only implementation such as running the appli-cation on the softcore Nios II processor at 150MHz wouldtake more than one hour to extract the features from a singleinput image of 320 times 240 pixels However hardware andsoftware customizations can lead to an embedded system ableto process the input image in 130 seconds For instancea typical SIFT algorithm configuration needs to apply 18different Gaussian filter kernels over an image in orderto extract a feature candidate (known as key point) Thisthroughput requirement represents 181M pixels which can

be achieved by an efficient pipeline architecture as demon-strated in Bonato et al [34] As the entire SIFT algorithmis too complex to be implemented by one student groupduring a semester the problem is split between a num-ber of groups with each of them having to meet perfor-mance targets for its corresponding assignment Figure 2demonstrates the whole SIFT algorithm divided in blockswith each block being assigned to a group of students

65 Auxiliary Resources In order to validate the embeddedsystem produced students are encouraged to integrate theirsystem into a real Pioneer 3DX robot [45] running the Playercontrol software [46] Instructors provide students with aclient for this software running on an embedded processorin order to mitigate the integration task [35] Additionallystudents are given a set of auxiliary cores (in VHDLVerilog)to support the project implementation such as the IEEE-754 FPU (floating-point unit) module an AMBA bus con-troller (ARM standard) an Ethernet module (MAC 10100)hardware performancemonitors and a pseudorandom num-ber generator based on the Mersenne Twister algorithmStudents are also allowed to get other cores from third-party providers for instance from the OpenCores website(httpopencoresorg) We believe this kind of support isparticularly important to give a ldquoreal worldrdquo aspect to thecourse and would be infeasible without close interactionbetween undergraduate and graduate projects

7 Teaching Platforms and Tools

FPGAs are a suitable alternative to introduce many con-cepts in labs and to let students implement real systemsThat is mainly due to their programmability availabilityof intellectual property (IP) cores for easy interfacing toexternal devices availability of softcores that program partof the FPGA resources as a microprocessor and availabilityof embedded hardcore components (DSPsmdashdigital signalprocessors memory blocks and high speed IO ports) Allthose features are extensively used throughout the course andlab projects presented in this paper In addition they are

8 International Journal of Reconfigurable Computing

widely available at a relatively low cost with good supply ofdevelopment tools This is a desirable feature for an eventualreplication of the PBL course described in this paper

71 FPGA Boards Typical FPGA boards include the neces-sary physical interfaces to connect them to other componentsin order to set up an almost real operating environment Inour laboratory experiments we have adopted Altera DE2-70development board provided by Terasic company equippedwith a 4310158401015840 LCD touch panel with resolution of 800 times 480points and a 5M pixel CMOS camera The DE2-70 boardfeatures an Altera Cyclone II 2C35 FPGA and a myriad ofother interfaces Experience shows that when students workwith an environment close to what they are used to see ontheir gadgets (eg touch screen display from smart phones)there is an extra motivation for embracing exercises andprojects related to embedded systems since they get curiousto understand how the actually system works internally

72 Microprocessor Cores FPGA companies provide RISCsoftcores that can be used in FPGA devices Examplesof such softcores are Xilinxrsquos MicroBlaze Alterarsquos Nios IIand Aeroflex Gaislerrsquos LEON They also permit exploitingof multiprocessor systems by instantiating more than onesoftcore in the same FPGA Those companies provide theintegrated design environments needed to develop complexsystems using hardwaresoftware components With thoseenvironments students can start with software solutions andthen add cores to improve performance for instance Thoseenvironments include C compilers debuggers and simula-tors to program target microprocessors

By practising such approach students can also acquire therequired skills in computing system organization since theyare real system architects during the development of theirprojects The impact of cache floating-point units multipli-ers and dividers on system performance is easily realized bystudents through executionThey study the impact on perfor-mance of the adopted scheme to couple dedicated hardwarecomponents to a microprocessor To measure performancestudents understand the need for hardware monitors All ofthose features have proven to be valuable in the teachingprocess

Using softcore processors allows students to acquiremany embedded systems conceptsMemorymapped devicesinputoutput ports existence or not of instruction and datamemory caches existence or not of an operating systemand existence or not of floating-point units are all conceptsacquired by students when developing those systems As theaforementioned the reuse policy when developing tasks isalso fomented Students are also required to use modulesalready developed by others and to deal with the neededinterfaces

73 Custom Instructions and Coupling HardwareModules Byusing the Nios II microprocessor students also study theimpact of adding custom instructions to the softcore whichare used to improve the performance of time critical sectionsof code With this approach they realize the need and

advantages of doing hardwaresoftware codesign at the verybeginning of the project Facing students with the design ofsystems including both hardware and software componentshas shown to be a key element to tackle embedded systemconcepts

74 EDA Tools The practical experiments developed alongthe course can be conducted with either Altera or Xilinxrsquostools However in this course we have adopted the firstoption since the development kit available in the laboratoryis the DE2-70 featuring an Alterarsquos FPGA The tools usedare SoPC Builder and Quartus II for hardware developmentand nios2-gcc and nios2-elf-gprof for software compilationdebugging and profiling for the Nios II processor [24]Additionally Alterarsquos ecosystem also provides the ModelSimtool for hardware and software simulation and hardwaremonitors for online performance analysis

8 Evaluation of the Pedagogical Approach

In order to evaluate the effectiveness of the pedagogicalapproach described in this paper two kinds of analysis wereconducted one is based on the instructor point of view andthe other is based on the studentrsquos perceptions and feedbackThose analyses are presented in the next subsections

81 Instructorrsquos Evaluation We believe the desired learningoutcomes listed in Section 5 are achieved noticed via thefinal project quality Most projects are as complete as thereference one encompassing software and hardware on asingle chip accessing external and onchip memory usingembedded operating system or a single hardware abstractionlayer and also using external interface for debugging andfor sending and receiving data to the embedded system Forinstance a group of students developed a project evolvingthe potential field algorithm where optimized mathematicaloperations for hardware were applied in such a way that theachieved results in relation to performance and area werebetter than the reference project adopted This medium tohigh complexity problem prepares the students to face realproject development

Around 15 of the students that completed this courseare working directly with embedded systems developmentin Brazilian companies and 20 have engaged in graduatecourse in the same area What students have said is that thepractical approach of the course gives them more confidenceto face a job interview in the area of embedded systems andalso to perform the actual work for those who get the job Wealso have had the opportunity to analyse the students duringtheir graduate course and we could notice that they were ableto produce research results very soonwhen compared to theircolleagues with other backgrounds

82 Studentsrsquo Feedback We have collected responses to ananonymous questionnaire given to students All the studentshave answered mobile robotics as the most important factorto motivate them to realize the embedded systems projectsusing reconfigurable computing technology One of the

International Journal of Reconfigurable Computing 9

200

133

133267

133

133

Problems with thedevelopment boardLack of necessaryknowledgeProblems with VHDL

Problems with EDA tools

Problems with VHDLsimulatorOthers

Figure 3 Percentage of student responses concerning the difficul-ties in concluding their projects

reasons is that the students quickly realize the importance ofthe work to be done and see the results once it is implemented(eg image processing tasks) Based on the experiences wehave had their motivation is ldquoapplication-drivenrdquo and theyalways pay more attention to and concentrate their energieson more visible and stand-alone projects

The student responses concerning the aspects they hadmore difficulties when exposed to this teaching approach areshown in Figure 3 In general the main set of complaintsis about the EDA tools and FPGA boards The second setof aspects they refer more often are related to the VHDLsimulator the VHDL language and the lack of some specificbackground knowledge Some of the students indicate thememory limitations of the board as the main difficulty toimplement someprojects Another important difficulty factorpointed out by students is the problems related to developingCprogramswhenno operating system is used In this contextthey refer to the problems associated with allocating andreallocating memory as the most difficult one Some of themalso refer to the rather long initial time needed to begin aproject which is strongly related to the long learning curvesneeded to master the initial skills on using the tools and theVHDL language

In terms of the skills students recognize they should havebeen acquired before 50 of themmention advanced digitaldesign as the most important one About 10 of them referto the need for learning more about computer architectureThese two aspects reinforce the importance of having coursesin computer architecture where the design of a microproces-sor is fully understood (including pipelining issues) and notonly courses explaining assembly languages and superficialcomputer architecture concepts About 30 refer to the needof learning more about applications (control systems digitalsignal processing image processing etc) Only one studentreferred to the importance of knowledge on parallel andmultiprocessing systems

Concerning the VHDL language a very high percentageof students (about 50) refer to its concurrency model as themost difficult issue to master About 30 refer to the globalsemantic of theVHDL language as a difficult property tomas-ter One of them refers to the previous and long experiencesin software imperative programming as one of the reasons forthe difficulties Strangely another onementioned that his pre-vious experience in designing hardware using schematics didnot help and created some confusion in the first time usingVHDL According to the responses students do not find thesyntax and structure of the language a problem but reveal thenew programming paradigm as the most difficult issue Onestudent complained about the lack of good tutorials whileanother one about the complexity of the language and thenot so clear and understandable subset of VHDL behavioursfor synthesis Those complaints were somehow expectedgiven the major areas those students are undertaking (eithercomputer science or computer engineering)

The increasing importance of heterogeneous architec-tures has led to a number of projects aiming to develop com-piling environments targeting multiple executing platformssuch as CPUs GPUs DSPs and even FPGAs [47] Thosetools use in source code either well-established programminglanguages such as CC++ [4] or special purpose languagessuch as Lime [5] Hardware and FPGAs targets are ofparticular interest and have been the object of several effortstrying to automatically bridge the gap between high level pro-gramming languages and hardware custom structures [48]Although several research tools have been developed andmade available we believe they are currently not appropriateto be used in a first course in embedded systems for under-graduate students as they may abstract important aspectsthat should be exposed to them Nonetheless some of thosetools and technologies are reaching mainstream use suchas Xilinx Vivado Design Suite [49] and should be adoptedat least partially in our course as those kinds of tools aregaining increasing importancewhen targeting heterogeneousplatforms Another promising alternative is Altera SDK forOpenCL [50] a framework allowing software programmersto write kernel functions in OpenCL C to be compiled forexecution on FPGA targets The typical use of such systemis mixing hardware accelerated functions with host coderunning on a CPU (eg ARM Cortex A9)

Concerning the level of difficulties of the projects about56 of the students reckon that the difficulty level is similarto the most difficult problems they have experienced duringtheir academic trail The remaining students consider thedifficulty level of the proposed projects to be average whencompared to other assignments Interestingly none of thestudents considered the projects as being the easiest onesduring hisher undergraduate or graduate program

83 Ongoing Improvements Current research work in thedepartment is concernedwith an EDA tool dubbedRoboArchbeing developed byMSc students RoboArch is a component-based tool for developing hardware architectures for mobilerobots [36]The tool supports systemmodelling based on theMARTE profile [51] and simulation in electronic system level(ESL) integrated into realsimulated mobile robot platforms

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 6: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

6 International Journal of Reconfigurable Computing

PC (SW)

Nios II (SW)

Design exploration

HWSW codesign

Presentation of the results and

technical report preparation

Work evaluation

Real robot experiment

HWSW cosimulation

gt gcc ldquo-pgrdquogt gprof

gt nios2-gccgt nios2-elf-gprof

gt nios2-gccgt nios2-elf-gprof

gt Modelsim

mobile robotic applications

gtgt INPUT ltlt

CC++ code of

gt HW monitor

Figure 1 Embedded system development flow adopted by students

61 Localization Theproblem of autonomous robot localiza-tion can be solved using theMonte Carlo localization (MCL)algorithm [39] which uses a set of particles to estimatethe real robot position inside a map constantly updated bysensor readings during its movements (most experiments areevaluated with offline data from test bench maps availablefrom Radish [40]) This algorithm is quite interesting sinceeach particle can be evaluated independently of each otherallowing the students to exploit a high level of parallelismin hardware As the number of particles scales subject toa set of conditions such as sensor type and environmentcharacteristics balancing the computing hardware to meetsystem requirements is an interesting challenge The easiestsolution would be to code the wholeMCL algorithm in C andrun it in an embedded processor (software) while the hardestwould be to code it in a synthesizable HDL and then generatethe custom hardware To find the balance between those twoalternatives is a typical hardwaresoftware codesign problemIn addition to design options influencing performance thestudents also need to pay attention to some qualitative aspectsof the system such as random number generator supportingthe MCL algorithm and the numerical precision regardingfloating to fixed-point conversions Bonato et al [32] presentthe MCL algorithm implemented on an FPGA using theMersenne Twister pseudorandomnumber generator where agood balance between hardware and software is achievedThedesign described in that paper is presented to the students andused as a guide for developing and evaluating their solutions

62 Mapping In mobile robotics a mapping algorithm aimsto create a map of the navigation environment This problemcan be subdivided in two classes whenmapping is performedwith knowledge of the robot position and when the positionis estimated simultaneously during the mapping processThe latter case is known as simultaneous localization andmapping (SLAM) problem with most solutions being basedon probabilistic inferences derived from Bayesian filtersinvolving high computational complexity and a large volumeof data The extended Kalman filter (EKF) algorithm [41] isa classical Bayesian derived solution able to build a feature-based map without previously knowing the robot positionBonato et al [33] presented the first SoPC (system-on-a-programmable chip) of the EKF applied to the SLAMproblemwhich has been used as reference by students duringthe course Differently thanMCL the implementation of thismethod exhibits high data dependency basically consistingof multiplication and addition of matrices In this caseparallelism exploitation is more complicated as the studentsneed to look more carefully to the problem in order to findhow to split the internal operationswithout violating the codesemantics To better understand how to optimize the matrixoperations on hardware students are encouraged during thecourse to investigate state-of-the-art solutions such as thosepresented by Irturk et al [42]

63 Navigation The navigation problem consists of defininga way for the robot to achieve its destination following some

International Journal of Reconfigurable Computing 7

Hardware

Software

DoG

OriMag

KpGaussian filter

cascade anddifference of

Gaussians

Source (up to 30 fps-320 times 240pixels)

Orientation andgradient

magnitudecomputation

Key pointdetection withstability checks

Descriptorcomputation

(Nios IIprocessor)

Pixel stream

Ori and mag (25bits)

FIFO octv0 (42 times 127)FIFO octv1 (40 times 256)FIFO octv2 (38 times 512)

FIFOA (32 times 2048)

FIFOB (32 times 1024)

FIFOC (32 times 512)

FIFOD (24 times 1024)

Figure 2 A hardwaresoftware embedded system codesign comprising of three hardware blocks to extract features from images andprecompute data for the descriptors and one software block to associate descriptors with features the blocks communicate via dedicatedchannels along with FIFOs to store temporary data while receiver blocks are busy [34]

strategy such as the fastest the safest or the easiest pathA quite simple algorithm used for navigation is potentialfields (PF) In spite of presenting some limitations such astrapping the robot in a particular place due to local minima[43] it is a well-known solution used in mobile robotics Inthis method the navigation strategy is to reach a destinationwithout collision with obstacles being the repulsive forces andthe destination being the attraction force Due to its simplicitya software-only implementation of the PF algorithm is not asinteresting as a design option in an embedded system courseHowever a hardware implementation poses some challengesin particular a set of trigonometric functions that can bedifficult to be implemented as custom hardware For thisreason students are first asked to optimize the software bysolving trigonometric functions based on Taylor series andthen try to solve the problem in hardware using CORDICalgorithms and fixed-point representation The hardwaresolution is similar to the one previously presented in [32]where a hardware implementation of the CORDIC algorithmis integrated into the system as custom instruction as well

64 Image Processing An interesting application in termsof students motivation and learning outcomes is the scale-invariant feature transform (SIFT) algorithm [44] which isconsidered one of themost robust solutions to extract featuresfrom images This algorithm has been applied to many areasIn mobile robotics mapping it can be used as a data sourceto build feature-basedmaps from images Its implementationas an embedded system is quite complex specially if a highframe processing rate is required (eg 30 framessecond)A software-only implementation such as running the appli-cation on the softcore Nios II processor at 150MHz wouldtake more than one hour to extract the features from a singleinput image of 320 times 240 pixels However hardware andsoftware customizations can lead to an embedded system ableto process the input image in 130 seconds For instancea typical SIFT algorithm configuration needs to apply 18different Gaussian filter kernels over an image in orderto extract a feature candidate (known as key point) Thisthroughput requirement represents 181M pixels which can

be achieved by an efficient pipeline architecture as demon-strated in Bonato et al [34] As the entire SIFT algorithmis too complex to be implemented by one student groupduring a semester the problem is split between a num-ber of groups with each of them having to meet perfor-mance targets for its corresponding assignment Figure 2demonstrates the whole SIFT algorithm divided in blockswith each block being assigned to a group of students

65 Auxiliary Resources In order to validate the embeddedsystem produced students are encouraged to integrate theirsystem into a real Pioneer 3DX robot [45] running the Playercontrol software [46] Instructors provide students with aclient for this software running on an embedded processorin order to mitigate the integration task [35] Additionallystudents are given a set of auxiliary cores (in VHDLVerilog)to support the project implementation such as the IEEE-754 FPU (floating-point unit) module an AMBA bus con-troller (ARM standard) an Ethernet module (MAC 10100)hardware performancemonitors and a pseudorandom num-ber generator based on the Mersenne Twister algorithmStudents are also allowed to get other cores from third-party providers for instance from the OpenCores website(httpopencoresorg) We believe this kind of support isparticularly important to give a ldquoreal worldrdquo aspect to thecourse and would be infeasible without close interactionbetween undergraduate and graduate projects

7 Teaching Platforms and Tools

FPGAs are a suitable alternative to introduce many con-cepts in labs and to let students implement real systemsThat is mainly due to their programmability availabilityof intellectual property (IP) cores for easy interfacing toexternal devices availability of softcores that program partof the FPGA resources as a microprocessor and availabilityof embedded hardcore components (DSPsmdashdigital signalprocessors memory blocks and high speed IO ports) Allthose features are extensively used throughout the course andlab projects presented in this paper In addition they are

8 International Journal of Reconfigurable Computing

widely available at a relatively low cost with good supply ofdevelopment tools This is a desirable feature for an eventualreplication of the PBL course described in this paper

71 FPGA Boards Typical FPGA boards include the neces-sary physical interfaces to connect them to other componentsin order to set up an almost real operating environment Inour laboratory experiments we have adopted Altera DE2-70development board provided by Terasic company equippedwith a 4310158401015840 LCD touch panel with resolution of 800 times 480points and a 5M pixel CMOS camera The DE2-70 boardfeatures an Altera Cyclone II 2C35 FPGA and a myriad ofother interfaces Experience shows that when students workwith an environment close to what they are used to see ontheir gadgets (eg touch screen display from smart phones)there is an extra motivation for embracing exercises andprojects related to embedded systems since they get curiousto understand how the actually system works internally

72 Microprocessor Cores FPGA companies provide RISCsoftcores that can be used in FPGA devices Examplesof such softcores are Xilinxrsquos MicroBlaze Alterarsquos Nios IIand Aeroflex Gaislerrsquos LEON They also permit exploitingof multiprocessor systems by instantiating more than onesoftcore in the same FPGA Those companies provide theintegrated design environments needed to develop complexsystems using hardwaresoftware components With thoseenvironments students can start with software solutions andthen add cores to improve performance for instance Thoseenvironments include C compilers debuggers and simula-tors to program target microprocessors

By practising such approach students can also acquire therequired skills in computing system organization since theyare real system architects during the development of theirprojects The impact of cache floating-point units multipli-ers and dividers on system performance is easily realized bystudents through executionThey study the impact on perfor-mance of the adopted scheme to couple dedicated hardwarecomponents to a microprocessor To measure performancestudents understand the need for hardware monitors All ofthose features have proven to be valuable in the teachingprocess

Using softcore processors allows students to acquiremany embedded systems conceptsMemorymapped devicesinputoutput ports existence or not of instruction and datamemory caches existence or not of an operating systemand existence or not of floating-point units are all conceptsacquired by students when developing those systems As theaforementioned the reuse policy when developing tasks isalso fomented Students are also required to use modulesalready developed by others and to deal with the neededinterfaces

73 Custom Instructions and Coupling HardwareModules Byusing the Nios II microprocessor students also study theimpact of adding custom instructions to the softcore whichare used to improve the performance of time critical sectionsof code With this approach they realize the need and

advantages of doing hardwaresoftware codesign at the verybeginning of the project Facing students with the design ofsystems including both hardware and software componentshas shown to be a key element to tackle embedded systemconcepts

74 EDA Tools The practical experiments developed alongthe course can be conducted with either Altera or Xilinxrsquostools However in this course we have adopted the firstoption since the development kit available in the laboratoryis the DE2-70 featuring an Alterarsquos FPGA The tools usedare SoPC Builder and Quartus II for hardware developmentand nios2-gcc and nios2-elf-gprof for software compilationdebugging and profiling for the Nios II processor [24]Additionally Alterarsquos ecosystem also provides the ModelSimtool for hardware and software simulation and hardwaremonitors for online performance analysis

8 Evaluation of the Pedagogical Approach

In order to evaluate the effectiveness of the pedagogicalapproach described in this paper two kinds of analysis wereconducted one is based on the instructor point of view andthe other is based on the studentrsquos perceptions and feedbackThose analyses are presented in the next subsections

81 Instructorrsquos Evaluation We believe the desired learningoutcomes listed in Section 5 are achieved noticed via thefinal project quality Most projects are as complete as thereference one encompassing software and hardware on asingle chip accessing external and onchip memory usingembedded operating system or a single hardware abstractionlayer and also using external interface for debugging andfor sending and receiving data to the embedded system Forinstance a group of students developed a project evolvingthe potential field algorithm where optimized mathematicaloperations for hardware were applied in such a way that theachieved results in relation to performance and area werebetter than the reference project adopted This medium tohigh complexity problem prepares the students to face realproject development

Around 15 of the students that completed this courseare working directly with embedded systems developmentin Brazilian companies and 20 have engaged in graduatecourse in the same area What students have said is that thepractical approach of the course gives them more confidenceto face a job interview in the area of embedded systems andalso to perform the actual work for those who get the job Wealso have had the opportunity to analyse the students duringtheir graduate course and we could notice that they were ableto produce research results very soonwhen compared to theircolleagues with other backgrounds

82 Studentsrsquo Feedback We have collected responses to ananonymous questionnaire given to students All the studentshave answered mobile robotics as the most important factorto motivate them to realize the embedded systems projectsusing reconfigurable computing technology One of the

International Journal of Reconfigurable Computing 9

200

133

133267

133

133

Problems with thedevelopment boardLack of necessaryknowledgeProblems with VHDL

Problems with EDA tools

Problems with VHDLsimulatorOthers

Figure 3 Percentage of student responses concerning the difficul-ties in concluding their projects

reasons is that the students quickly realize the importance ofthe work to be done and see the results once it is implemented(eg image processing tasks) Based on the experiences wehave had their motivation is ldquoapplication-drivenrdquo and theyalways pay more attention to and concentrate their energieson more visible and stand-alone projects

The student responses concerning the aspects they hadmore difficulties when exposed to this teaching approach areshown in Figure 3 In general the main set of complaintsis about the EDA tools and FPGA boards The second setof aspects they refer more often are related to the VHDLsimulator the VHDL language and the lack of some specificbackground knowledge Some of the students indicate thememory limitations of the board as the main difficulty toimplement someprojects Another important difficulty factorpointed out by students is the problems related to developingCprogramswhenno operating system is used In this contextthey refer to the problems associated with allocating andreallocating memory as the most difficult one Some of themalso refer to the rather long initial time needed to begin aproject which is strongly related to the long learning curvesneeded to master the initial skills on using the tools and theVHDL language

In terms of the skills students recognize they should havebeen acquired before 50 of themmention advanced digitaldesign as the most important one About 10 of them referto the need for learning more about computer architectureThese two aspects reinforce the importance of having coursesin computer architecture where the design of a microproces-sor is fully understood (including pipelining issues) and notonly courses explaining assembly languages and superficialcomputer architecture concepts About 30 refer to the needof learning more about applications (control systems digitalsignal processing image processing etc) Only one studentreferred to the importance of knowledge on parallel andmultiprocessing systems

Concerning the VHDL language a very high percentageof students (about 50) refer to its concurrency model as themost difficult issue to master About 30 refer to the globalsemantic of theVHDL language as a difficult property tomas-ter One of them refers to the previous and long experiencesin software imperative programming as one of the reasons forthe difficulties Strangely another onementioned that his pre-vious experience in designing hardware using schematics didnot help and created some confusion in the first time usingVHDL According to the responses students do not find thesyntax and structure of the language a problem but reveal thenew programming paradigm as the most difficult issue Onestudent complained about the lack of good tutorials whileanother one about the complexity of the language and thenot so clear and understandable subset of VHDL behavioursfor synthesis Those complaints were somehow expectedgiven the major areas those students are undertaking (eithercomputer science or computer engineering)

The increasing importance of heterogeneous architec-tures has led to a number of projects aiming to develop com-piling environments targeting multiple executing platformssuch as CPUs GPUs DSPs and even FPGAs [47] Thosetools use in source code either well-established programminglanguages such as CC++ [4] or special purpose languagessuch as Lime [5] Hardware and FPGAs targets are ofparticular interest and have been the object of several effortstrying to automatically bridge the gap between high level pro-gramming languages and hardware custom structures [48]Although several research tools have been developed andmade available we believe they are currently not appropriateto be used in a first course in embedded systems for under-graduate students as they may abstract important aspectsthat should be exposed to them Nonetheless some of thosetools and technologies are reaching mainstream use suchas Xilinx Vivado Design Suite [49] and should be adoptedat least partially in our course as those kinds of tools aregaining increasing importancewhen targeting heterogeneousplatforms Another promising alternative is Altera SDK forOpenCL [50] a framework allowing software programmersto write kernel functions in OpenCL C to be compiled forexecution on FPGA targets The typical use of such systemis mixing hardware accelerated functions with host coderunning on a CPU (eg ARM Cortex A9)

Concerning the level of difficulties of the projects about56 of the students reckon that the difficulty level is similarto the most difficult problems they have experienced duringtheir academic trail The remaining students consider thedifficulty level of the proposed projects to be average whencompared to other assignments Interestingly none of thestudents considered the projects as being the easiest onesduring hisher undergraduate or graduate program

83 Ongoing Improvements Current research work in thedepartment is concernedwith an EDA tool dubbedRoboArchbeing developed byMSc students RoboArch is a component-based tool for developing hardware architectures for mobilerobots [36]The tool supports systemmodelling based on theMARTE profile [51] and simulation in electronic system level(ESL) integrated into realsimulated mobile robot platforms

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 7: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

International Journal of Reconfigurable Computing 7

Hardware

Software

DoG

OriMag

KpGaussian filter

cascade anddifference of

Gaussians

Source (up to 30 fps-320 times 240pixels)

Orientation andgradient

magnitudecomputation

Key pointdetection withstability checks

Descriptorcomputation

(Nios IIprocessor)

Pixel stream

Ori and mag (25bits)

FIFO octv0 (42 times 127)FIFO octv1 (40 times 256)FIFO octv2 (38 times 512)

FIFOA (32 times 2048)

FIFOB (32 times 1024)

FIFOC (32 times 512)

FIFOD (24 times 1024)

Figure 2 A hardwaresoftware embedded system codesign comprising of three hardware blocks to extract features from images andprecompute data for the descriptors and one software block to associate descriptors with features the blocks communicate via dedicatedchannels along with FIFOs to store temporary data while receiver blocks are busy [34]

strategy such as the fastest the safest or the easiest pathA quite simple algorithm used for navigation is potentialfields (PF) In spite of presenting some limitations such astrapping the robot in a particular place due to local minima[43] it is a well-known solution used in mobile robotics Inthis method the navigation strategy is to reach a destinationwithout collision with obstacles being the repulsive forces andthe destination being the attraction force Due to its simplicitya software-only implementation of the PF algorithm is not asinteresting as a design option in an embedded system courseHowever a hardware implementation poses some challengesin particular a set of trigonometric functions that can bedifficult to be implemented as custom hardware For thisreason students are first asked to optimize the software bysolving trigonometric functions based on Taylor series andthen try to solve the problem in hardware using CORDICalgorithms and fixed-point representation The hardwaresolution is similar to the one previously presented in [32]where a hardware implementation of the CORDIC algorithmis integrated into the system as custom instruction as well

64 Image Processing An interesting application in termsof students motivation and learning outcomes is the scale-invariant feature transform (SIFT) algorithm [44] which isconsidered one of themost robust solutions to extract featuresfrom images This algorithm has been applied to many areasIn mobile robotics mapping it can be used as a data sourceto build feature-basedmaps from images Its implementationas an embedded system is quite complex specially if a highframe processing rate is required (eg 30 framessecond)A software-only implementation such as running the appli-cation on the softcore Nios II processor at 150MHz wouldtake more than one hour to extract the features from a singleinput image of 320 times 240 pixels However hardware andsoftware customizations can lead to an embedded system ableto process the input image in 130 seconds For instancea typical SIFT algorithm configuration needs to apply 18different Gaussian filter kernels over an image in orderto extract a feature candidate (known as key point) Thisthroughput requirement represents 181M pixels which can

be achieved by an efficient pipeline architecture as demon-strated in Bonato et al [34] As the entire SIFT algorithmis too complex to be implemented by one student groupduring a semester the problem is split between a num-ber of groups with each of them having to meet perfor-mance targets for its corresponding assignment Figure 2demonstrates the whole SIFT algorithm divided in blockswith each block being assigned to a group of students

65 Auxiliary Resources In order to validate the embeddedsystem produced students are encouraged to integrate theirsystem into a real Pioneer 3DX robot [45] running the Playercontrol software [46] Instructors provide students with aclient for this software running on an embedded processorin order to mitigate the integration task [35] Additionallystudents are given a set of auxiliary cores (in VHDLVerilog)to support the project implementation such as the IEEE-754 FPU (floating-point unit) module an AMBA bus con-troller (ARM standard) an Ethernet module (MAC 10100)hardware performancemonitors and a pseudorandom num-ber generator based on the Mersenne Twister algorithmStudents are also allowed to get other cores from third-party providers for instance from the OpenCores website(httpopencoresorg) We believe this kind of support isparticularly important to give a ldquoreal worldrdquo aspect to thecourse and would be infeasible without close interactionbetween undergraduate and graduate projects

7 Teaching Platforms and Tools

FPGAs are a suitable alternative to introduce many con-cepts in labs and to let students implement real systemsThat is mainly due to their programmability availabilityof intellectual property (IP) cores for easy interfacing toexternal devices availability of softcores that program partof the FPGA resources as a microprocessor and availabilityof embedded hardcore components (DSPsmdashdigital signalprocessors memory blocks and high speed IO ports) Allthose features are extensively used throughout the course andlab projects presented in this paper In addition they are

8 International Journal of Reconfigurable Computing

widely available at a relatively low cost with good supply ofdevelopment tools This is a desirable feature for an eventualreplication of the PBL course described in this paper

71 FPGA Boards Typical FPGA boards include the neces-sary physical interfaces to connect them to other componentsin order to set up an almost real operating environment Inour laboratory experiments we have adopted Altera DE2-70development board provided by Terasic company equippedwith a 4310158401015840 LCD touch panel with resolution of 800 times 480points and a 5M pixel CMOS camera The DE2-70 boardfeatures an Altera Cyclone II 2C35 FPGA and a myriad ofother interfaces Experience shows that when students workwith an environment close to what they are used to see ontheir gadgets (eg touch screen display from smart phones)there is an extra motivation for embracing exercises andprojects related to embedded systems since they get curiousto understand how the actually system works internally

72 Microprocessor Cores FPGA companies provide RISCsoftcores that can be used in FPGA devices Examplesof such softcores are Xilinxrsquos MicroBlaze Alterarsquos Nios IIand Aeroflex Gaislerrsquos LEON They also permit exploitingof multiprocessor systems by instantiating more than onesoftcore in the same FPGA Those companies provide theintegrated design environments needed to develop complexsystems using hardwaresoftware components With thoseenvironments students can start with software solutions andthen add cores to improve performance for instance Thoseenvironments include C compilers debuggers and simula-tors to program target microprocessors

By practising such approach students can also acquire therequired skills in computing system organization since theyare real system architects during the development of theirprojects The impact of cache floating-point units multipli-ers and dividers on system performance is easily realized bystudents through executionThey study the impact on perfor-mance of the adopted scheme to couple dedicated hardwarecomponents to a microprocessor To measure performancestudents understand the need for hardware monitors All ofthose features have proven to be valuable in the teachingprocess

Using softcore processors allows students to acquiremany embedded systems conceptsMemorymapped devicesinputoutput ports existence or not of instruction and datamemory caches existence or not of an operating systemand existence or not of floating-point units are all conceptsacquired by students when developing those systems As theaforementioned the reuse policy when developing tasks isalso fomented Students are also required to use modulesalready developed by others and to deal with the neededinterfaces

73 Custom Instructions and Coupling HardwareModules Byusing the Nios II microprocessor students also study theimpact of adding custom instructions to the softcore whichare used to improve the performance of time critical sectionsof code With this approach they realize the need and

advantages of doing hardwaresoftware codesign at the verybeginning of the project Facing students with the design ofsystems including both hardware and software componentshas shown to be a key element to tackle embedded systemconcepts

74 EDA Tools The practical experiments developed alongthe course can be conducted with either Altera or Xilinxrsquostools However in this course we have adopted the firstoption since the development kit available in the laboratoryis the DE2-70 featuring an Alterarsquos FPGA The tools usedare SoPC Builder and Quartus II for hardware developmentand nios2-gcc and nios2-elf-gprof for software compilationdebugging and profiling for the Nios II processor [24]Additionally Alterarsquos ecosystem also provides the ModelSimtool for hardware and software simulation and hardwaremonitors for online performance analysis

8 Evaluation of the Pedagogical Approach

In order to evaluate the effectiveness of the pedagogicalapproach described in this paper two kinds of analysis wereconducted one is based on the instructor point of view andthe other is based on the studentrsquos perceptions and feedbackThose analyses are presented in the next subsections

81 Instructorrsquos Evaluation We believe the desired learningoutcomes listed in Section 5 are achieved noticed via thefinal project quality Most projects are as complete as thereference one encompassing software and hardware on asingle chip accessing external and onchip memory usingembedded operating system or a single hardware abstractionlayer and also using external interface for debugging andfor sending and receiving data to the embedded system Forinstance a group of students developed a project evolvingthe potential field algorithm where optimized mathematicaloperations for hardware were applied in such a way that theachieved results in relation to performance and area werebetter than the reference project adopted This medium tohigh complexity problem prepares the students to face realproject development

Around 15 of the students that completed this courseare working directly with embedded systems developmentin Brazilian companies and 20 have engaged in graduatecourse in the same area What students have said is that thepractical approach of the course gives them more confidenceto face a job interview in the area of embedded systems andalso to perform the actual work for those who get the job Wealso have had the opportunity to analyse the students duringtheir graduate course and we could notice that they were ableto produce research results very soonwhen compared to theircolleagues with other backgrounds

82 Studentsrsquo Feedback We have collected responses to ananonymous questionnaire given to students All the studentshave answered mobile robotics as the most important factorto motivate them to realize the embedded systems projectsusing reconfigurable computing technology One of the

International Journal of Reconfigurable Computing 9

200

133

133267

133

133

Problems with thedevelopment boardLack of necessaryknowledgeProblems with VHDL

Problems with EDA tools

Problems with VHDLsimulatorOthers

Figure 3 Percentage of student responses concerning the difficul-ties in concluding their projects

reasons is that the students quickly realize the importance ofthe work to be done and see the results once it is implemented(eg image processing tasks) Based on the experiences wehave had their motivation is ldquoapplication-drivenrdquo and theyalways pay more attention to and concentrate their energieson more visible and stand-alone projects

The student responses concerning the aspects they hadmore difficulties when exposed to this teaching approach areshown in Figure 3 In general the main set of complaintsis about the EDA tools and FPGA boards The second setof aspects they refer more often are related to the VHDLsimulator the VHDL language and the lack of some specificbackground knowledge Some of the students indicate thememory limitations of the board as the main difficulty toimplement someprojects Another important difficulty factorpointed out by students is the problems related to developingCprogramswhenno operating system is used In this contextthey refer to the problems associated with allocating andreallocating memory as the most difficult one Some of themalso refer to the rather long initial time needed to begin aproject which is strongly related to the long learning curvesneeded to master the initial skills on using the tools and theVHDL language

In terms of the skills students recognize they should havebeen acquired before 50 of themmention advanced digitaldesign as the most important one About 10 of them referto the need for learning more about computer architectureThese two aspects reinforce the importance of having coursesin computer architecture where the design of a microproces-sor is fully understood (including pipelining issues) and notonly courses explaining assembly languages and superficialcomputer architecture concepts About 30 refer to the needof learning more about applications (control systems digitalsignal processing image processing etc) Only one studentreferred to the importance of knowledge on parallel andmultiprocessing systems

Concerning the VHDL language a very high percentageof students (about 50) refer to its concurrency model as themost difficult issue to master About 30 refer to the globalsemantic of theVHDL language as a difficult property tomas-ter One of them refers to the previous and long experiencesin software imperative programming as one of the reasons forthe difficulties Strangely another onementioned that his pre-vious experience in designing hardware using schematics didnot help and created some confusion in the first time usingVHDL According to the responses students do not find thesyntax and structure of the language a problem but reveal thenew programming paradigm as the most difficult issue Onestudent complained about the lack of good tutorials whileanother one about the complexity of the language and thenot so clear and understandable subset of VHDL behavioursfor synthesis Those complaints were somehow expectedgiven the major areas those students are undertaking (eithercomputer science or computer engineering)

The increasing importance of heterogeneous architec-tures has led to a number of projects aiming to develop com-piling environments targeting multiple executing platformssuch as CPUs GPUs DSPs and even FPGAs [47] Thosetools use in source code either well-established programminglanguages such as CC++ [4] or special purpose languagessuch as Lime [5] Hardware and FPGAs targets are ofparticular interest and have been the object of several effortstrying to automatically bridge the gap between high level pro-gramming languages and hardware custom structures [48]Although several research tools have been developed andmade available we believe they are currently not appropriateto be used in a first course in embedded systems for under-graduate students as they may abstract important aspectsthat should be exposed to them Nonetheless some of thosetools and technologies are reaching mainstream use suchas Xilinx Vivado Design Suite [49] and should be adoptedat least partially in our course as those kinds of tools aregaining increasing importancewhen targeting heterogeneousplatforms Another promising alternative is Altera SDK forOpenCL [50] a framework allowing software programmersto write kernel functions in OpenCL C to be compiled forexecution on FPGA targets The typical use of such systemis mixing hardware accelerated functions with host coderunning on a CPU (eg ARM Cortex A9)

Concerning the level of difficulties of the projects about56 of the students reckon that the difficulty level is similarto the most difficult problems they have experienced duringtheir academic trail The remaining students consider thedifficulty level of the proposed projects to be average whencompared to other assignments Interestingly none of thestudents considered the projects as being the easiest onesduring hisher undergraduate or graduate program

83 Ongoing Improvements Current research work in thedepartment is concernedwith an EDA tool dubbedRoboArchbeing developed byMSc students RoboArch is a component-based tool for developing hardware architectures for mobilerobots [36]The tool supports systemmodelling based on theMARTE profile [51] and simulation in electronic system level(ESL) integrated into realsimulated mobile robot platforms

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 8: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

8 International Journal of Reconfigurable Computing

widely available at a relatively low cost with good supply ofdevelopment tools This is a desirable feature for an eventualreplication of the PBL course described in this paper

71 FPGA Boards Typical FPGA boards include the neces-sary physical interfaces to connect them to other componentsin order to set up an almost real operating environment Inour laboratory experiments we have adopted Altera DE2-70development board provided by Terasic company equippedwith a 4310158401015840 LCD touch panel with resolution of 800 times 480points and a 5M pixel CMOS camera The DE2-70 boardfeatures an Altera Cyclone II 2C35 FPGA and a myriad ofother interfaces Experience shows that when students workwith an environment close to what they are used to see ontheir gadgets (eg touch screen display from smart phones)there is an extra motivation for embracing exercises andprojects related to embedded systems since they get curiousto understand how the actually system works internally

72 Microprocessor Cores FPGA companies provide RISCsoftcores that can be used in FPGA devices Examplesof such softcores are Xilinxrsquos MicroBlaze Alterarsquos Nios IIand Aeroflex Gaislerrsquos LEON They also permit exploitingof multiprocessor systems by instantiating more than onesoftcore in the same FPGA Those companies provide theintegrated design environments needed to develop complexsystems using hardwaresoftware components With thoseenvironments students can start with software solutions andthen add cores to improve performance for instance Thoseenvironments include C compilers debuggers and simula-tors to program target microprocessors

By practising such approach students can also acquire therequired skills in computing system organization since theyare real system architects during the development of theirprojects The impact of cache floating-point units multipli-ers and dividers on system performance is easily realized bystudents through executionThey study the impact on perfor-mance of the adopted scheme to couple dedicated hardwarecomponents to a microprocessor To measure performancestudents understand the need for hardware monitors All ofthose features have proven to be valuable in the teachingprocess

Using softcore processors allows students to acquiremany embedded systems conceptsMemorymapped devicesinputoutput ports existence or not of instruction and datamemory caches existence or not of an operating systemand existence or not of floating-point units are all conceptsacquired by students when developing those systems As theaforementioned the reuse policy when developing tasks isalso fomented Students are also required to use modulesalready developed by others and to deal with the neededinterfaces

73 Custom Instructions and Coupling HardwareModules Byusing the Nios II microprocessor students also study theimpact of adding custom instructions to the softcore whichare used to improve the performance of time critical sectionsof code With this approach they realize the need and

advantages of doing hardwaresoftware codesign at the verybeginning of the project Facing students with the design ofsystems including both hardware and software componentshas shown to be a key element to tackle embedded systemconcepts

74 EDA Tools The practical experiments developed alongthe course can be conducted with either Altera or Xilinxrsquostools However in this course we have adopted the firstoption since the development kit available in the laboratoryis the DE2-70 featuring an Alterarsquos FPGA The tools usedare SoPC Builder and Quartus II for hardware developmentand nios2-gcc and nios2-elf-gprof for software compilationdebugging and profiling for the Nios II processor [24]Additionally Alterarsquos ecosystem also provides the ModelSimtool for hardware and software simulation and hardwaremonitors for online performance analysis

8 Evaluation of the Pedagogical Approach

In order to evaluate the effectiveness of the pedagogicalapproach described in this paper two kinds of analysis wereconducted one is based on the instructor point of view andthe other is based on the studentrsquos perceptions and feedbackThose analyses are presented in the next subsections

81 Instructorrsquos Evaluation We believe the desired learningoutcomes listed in Section 5 are achieved noticed via thefinal project quality Most projects are as complete as thereference one encompassing software and hardware on asingle chip accessing external and onchip memory usingembedded operating system or a single hardware abstractionlayer and also using external interface for debugging andfor sending and receiving data to the embedded system Forinstance a group of students developed a project evolvingthe potential field algorithm where optimized mathematicaloperations for hardware were applied in such a way that theachieved results in relation to performance and area werebetter than the reference project adopted This medium tohigh complexity problem prepares the students to face realproject development

Around 15 of the students that completed this courseare working directly with embedded systems developmentin Brazilian companies and 20 have engaged in graduatecourse in the same area What students have said is that thepractical approach of the course gives them more confidenceto face a job interview in the area of embedded systems andalso to perform the actual work for those who get the job Wealso have had the opportunity to analyse the students duringtheir graduate course and we could notice that they were ableto produce research results very soonwhen compared to theircolleagues with other backgrounds

82 Studentsrsquo Feedback We have collected responses to ananonymous questionnaire given to students All the studentshave answered mobile robotics as the most important factorto motivate them to realize the embedded systems projectsusing reconfigurable computing technology One of the

International Journal of Reconfigurable Computing 9

200

133

133267

133

133

Problems with thedevelopment boardLack of necessaryknowledgeProblems with VHDL

Problems with EDA tools

Problems with VHDLsimulatorOthers

Figure 3 Percentage of student responses concerning the difficul-ties in concluding their projects

reasons is that the students quickly realize the importance ofthe work to be done and see the results once it is implemented(eg image processing tasks) Based on the experiences wehave had their motivation is ldquoapplication-drivenrdquo and theyalways pay more attention to and concentrate their energieson more visible and stand-alone projects

The student responses concerning the aspects they hadmore difficulties when exposed to this teaching approach areshown in Figure 3 In general the main set of complaintsis about the EDA tools and FPGA boards The second setof aspects they refer more often are related to the VHDLsimulator the VHDL language and the lack of some specificbackground knowledge Some of the students indicate thememory limitations of the board as the main difficulty toimplement someprojects Another important difficulty factorpointed out by students is the problems related to developingCprogramswhenno operating system is used In this contextthey refer to the problems associated with allocating andreallocating memory as the most difficult one Some of themalso refer to the rather long initial time needed to begin aproject which is strongly related to the long learning curvesneeded to master the initial skills on using the tools and theVHDL language

In terms of the skills students recognize they should havebeen acquired before 50 of themmention advanced digitaldesign as the most important one About 10 of them referto the need for learning more about computer architectureThese two aspects reinforce the importance of having coursesin computer architecture where the design of a microproces-sor is fully understood (including pipelining issues) and notonly courses explaining assembly languages and superficialcomputer architecture concepts About 30 refer to the needof learning more about applications (control systems digitalsignal processing image processing etc) Only one studentreferred to the importance of knowledge on parallel andmultiprocessing systems

Concerning the VHDL language a very high percentageof students (about 50) refer to its concurrency model as themost difficult issue to master About 30 refer to the globalsemantic of theVHDL language as a difficult property tomas-ter One of them refers to the previous and long experiencesin software imperative programming as one of the reasons forthe difficulties Strangely another onementioned that his pre-vious experience in designing hardware using schematics didnot help and created some confusion in the first time usingVHDL According to the responses students do not find thesyntax and structure of the language a problem but reveal thenew programming paradigm as the most difficult issue Onestudent complained about the lack of good tutorials whileanother one about the complexity of the language and thenot so clear and understandable subset of VHDL behavioursfor synthesis Those complaints were somehow expectedgiven the major areas those students are undertaking (eithercomputer science or computer engineering)

The increasing importance of heterogeneous architec-tures has led to a number of projects aiming to develop com-piling environments targeting multiple executing platformssuch as CPUs GPUs DSPs and even FPGAs [47] Thosetools use in source code either well-established programminglanguages such as CC++ [4] or special purpose languagessuch as Lime [5] Hardware and FPGAs targets are ofparticular interest and have been the object of several effortstrying to automatically bridge the gap between high level pro-gramming languages and hardware custom structures [48]Although several research tools have been developed andmade available we believe they are currently not appropriateto be used in a first course in embedded systems for under-graduate students as they may abstract important aspectsthat should be exposed to them Nonetheless some of thosetools and technologies are reaching mainstream use suchas Xilinx Vivado Design Suite [49] and should be adoptedat least partially in our course as those kinds of tools aregaining increasing importancewhen targeting heterogeneousplatforms Another promising alternative is Altera SDK forOpenCL [50] a framework allowing software programmersto write kernel functions in OpenCL C to be compiled forexecution on FPGA targets The typical use of such systemis mixing hardware accelerated functions with host coderunning on a CPU (eg ARM Cortex A9)

Concerning the level of difficulties of the projects about56 of the students reckon that the difficulty level is similarto the most difficult problems they have experienced duringtheir academic trail The remaining students consider thedifficulty level of the proposed projects to be average whencompared to other assignments Interestingly none of thestudents considered the projects as being the easiest onesduring hisher undergraduate or graduate program

83 Ongoing Improvements Current research work in thedepartment is concernedwith an EDA tool dubbedRoboArchbeing developed byMSc students RoboArch is a component-based tool for developing hardware architectures for mobilerobots [36]The tool supports systemmodelling based on theMARTE profile [51] and simulation in electronic system level(ESL) integrated into realsimulated mobile robot platforms

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 9: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

International Journal of Reconfigurable Computing 9

200

133

133267

133

133

Problems with thedevelopment boardLack of necessaryknowledgeProblems with VHDL

Problems with EDA tools

Problems with VHDLsimulatorOthers

Figure 3 Percentage of student responses concerning the difficul-ties in concluding their projects

reasons is that the students quickly realize the importance ofthe work to be done and see the results once it is implemented(eg image processing tasks) Based on the experiences wehave had their motivation is ldquoapplication-drivenrdquo and theyalways pay more attention to and concentrate their energieson more visible and stand-alone projects

The student responses concerning the aspects they hadmore difficulties when exposed to this teaching approach areshown in Figure 3 In general the main set of complaintsis about the EDA tools and FPGA boards The second setof aspects they refer more often are related to the VHDLsimulator the VHDL language and the lack of some specificbackground knowledge Some of the students indicate thememory limitations of the board as the main difficulty toimplement someprojects Another important difficulty factorpointed out by students is the problems related to developingCprogramswhenno operating system is used In this contextthey refer to the problems associated with allocating andreallocating memory as the most difficult one Some of themalso refer to the rather long initial time needed to begin aproject which is strongly related to the long learning curvesneeded to master the initial skills on using the tools and theVHDL language

In terms of the skills students recognize they should havebeen acquired before 50 of themmention advanced digitaldesign as the most important one About 10 of them referto the need for learning more about computer architectureThese two aspects reinforce the importance of having coursesin computer architecture where the design of a microproces-sor is fully understood (including pipelining issues) and notonly courses explaining assembly languages and superficialcomputer architecture concepts About 30 refer to the needof learning more about applications (control systems digitalsignal processing image processing etc) Only one studentreferred to the importance of knowledge on parallel andmultiprocessing systems

Concerning the VHDL language a very high percentageof students (about 50) refer to its concurrency model as themost difficult issue to master About 30 refer to the globalsemantic of theVHDL language as a difficult property tomas-ter One of them refers to the previous and long experiencesin software imperative programming as one of the reasons forthe difficulties Strangely another onementioned that his pre-vious experience in designing hardware using schematics didnot help and created some confusion in the first time usingVHDL According to the responses students do not find thesyntax and structure of the language a problem but reveal thenew programming paradigm as the most difficult issue Onestudent complained about the lack of good tutorials whileanother one about the complexity of the language and thenot so clear and understandable subset of VHDL behavioursfor synthesis Those complaints were somehow expectedgiven the major areas those students are undertaking (eithercomputer science or computer engineering)

The increasing importance of heterogeneous architec-tures has led to a number of projects aiming to develop com-piling environments targeting multiple executing platformssuch as CPUs GPUs DSPs and even FPGAs [47] Thosetools use in source code either well-established programminglanguages such as CC++ [4] or special purpose languagessuch as Lime [5] Hardware and FPGAs targets are ofparticular interest and have been the object of several effortstrying to automatically bridge the gap between high level pro-gramming languages and hardware custom structures [48]Although several research tools have been developed andmade available we believe they are currently not appropriateto be used in a first course in embedded systems for under-graduate students as they may abstract important aspectsthat should be exposed to them Nonetheless some of thosetools and technologies are reaching mainstream use suchas Xilinx Vivado Design Suite [49] and should be adoptedat least partially in our course as those kinds of tools aregaining increasing importancewhen targeting heterogeneousplatforms Another promising alternative is Altera SDK forOpenCL [50] a framework allowing software programmersto write kernel functions in OpenCL C to be compiled forexecution on FPGA targets The typical use of such systemis mixing hardware accelerated functions with host coderunning on a CPU (eg ARM Cortex A9)

Concerning the level of difficulties of the projects about56 of the students reckon that the difficulty level is similarto the most difficult problems they have experienced duringtheir academic trail The remaining students consider thedifficulty level of the proposed projects to be average whencompared to other assignments Interestingly none of thestudents considered the projects as being the easiest onesduring hisher undergraduate or graduate program

83 Ongoing Improvements Current research work in thedepartment is concernedwith an EDA tool dubbedRoboArchbeing developed byMSc students RoboArch is a component-based tool for developing hardware architectures for mobilerobots [36]The tool supports systemmodelling based on theMARTE profile [51] and simulation in electronic system level(ESL) integrated into realsimulated mobile robot platforms

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 10: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

10 International Journal of Reconfigurable Computing

Embedded system architecture

Stimulus

Test bench

Playerstage(sensors)

Monitor

Playerstage(actuators)

Figure 4 A hardware-in-the-loop simulation environment forembedded mobile robotics development

(see Figure 4) When available the tool should allow foreasier access to more realistic experiences with roboticsThe components will be stored in a repository using IP-XACT pattern [52] facilitating the exchange of hardwareand software kernels among students Considering that ESLsimulation can be more than 3 orders of magnitude fasterthan register-transfer level (RTL) simulation undergraduatestudents benefit from this bymodelling and debugging wholeembedded system in a feasible time even before havingthe actual hardware implemented Having the ESL modelvalidated the hardware part of the systemcan eithermanuallyor automatically be converted into RTL (VerilogVHDL)depending on the ESL language adopted When available toundergraduate students we believe it should improve thedevelopment flow as a whole and so the students motivationand commitment to the assigned projects As already pointedout the use of HLS tools is an option which has beenconsidered to complement developments based on VHDLlanguage In particular some experiments are being carriedout to evaluate the suitability of Xilinx Vivado [49] for thecourse purposes

9 Concluding Remarks

This paper has shown experiences in using mobile robotickernels to teach embedded systems based on reconfig-urable hardware Specifically FPGAs and related EDA toolsare being used so that students can realize systems withhardware and software components Mobile robotic kernelsaccommodate most embedded system characteristics andrequirements and students seem to have higher levels ofmotivation to accomplish the kind of tasks that have beenproposed in this area A crucial aspect of the methodology isthe close interaction between teaching and related researchactivities which has allowed the development and testingof rather complex projects not otherwise feasible usingstandard textbooks This strategy effectively implements aproject-based learning approach which is specially desirabletowards the end of a studentrsquos graduation period After someyears of developing and applying this methodology some

satisfactory results have been achieved That is revealed bythe increased interest shown by students to follow researchprojects related to embedded systems the improved per-formance of graduates working in this area and also somefeedback from former students working in the industry Itshould be noticed that students do not need deep skillsin robotics to implement robotic kernels for their projectsHowever some of the students feel so motivated that theylearn by themselvesmany concepts related tomobile roboticswhich is obviously very positive and has encouraged theauthors to refine and continue using the PBL pedagogicalapproach described in this paper

Conflict of Interests

The authors declare that there is no conflict of interestsregarding the publication of this paper

Acknowledgments

The authors would like to acknowledge the partial supportgiven by the bilateral cooperation CNPqGrices (BrazilPortugal) program that permittedmissions from both groupsto Brazil and Portugal during 4 years and thus the exchange ofexperiences and knowledge between the authorsThe authorsalso would like to thank FAPESP for the financial supportgiven to publish this work

References

[1] C Ebert and C Jones ldquoEmbedded software facts figures andfuturerdquo Computer vol 42 no 4 pp 42ndash52 2009

[2] N S Voros M Hubner J Becker et al ldquoMOrpheus a het-erogeneous dynamically reconfigurable platform for designinghighly complex embedded systemsrdquo Transactions on EmbeddedComputing Systems vol 12 no 3 article 70 2013

[3] S Vassiliadis S Wong G N Gaydadjiev K L M Bertels GKuzmanov and E M Panainte ldquoThe MOLEN polymorphicprocessorrdquo IEEE Transactions on Computers vol 53 no 11 pp1363ndash1375 2004

[4] S Singh ldquoComputing without processorsrdquo Communications ofthe ACM vol 54 no 8 pp 46ndash54 2011

[5] J Auerbach D F Bacon I Burcea et al ldquoA compiler and run-time for heterogeneous computingrdquo in Proceedings of the 49thAnnual Design Automation Conference (DAC rsquo12) pp 271ndash276ACM New York NY USA 2012

[6] K G Ricks D J Jackson and W A Stapleton ldquoAn embeddedsystems curriculum based on the IEEEACM model curricu-lumrdquo IEEE Transactions on Education vol 51 no 2 pp 262ndash270 2008

[7] S Vassiliadis and D Soundris Fine-and Coarse-Grain Reconfig-urable Computing Springer Berlin Germany 2007

[8] T Braunl Embedded Robotics Mobile Robot Design and Appli-cations with Embedded Systems Springer Berlin Germany 2ndedition 2006

[9] C S Lee J H Su K E Lin J H Chang and G H Lin ldquoAproject-based laboratory for learning embedded system designwith industry supportrdquo IEEE Transactions on Education vol 53no 2 pp 173ndash181 2010

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 11: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

International Journal of Reconfigurable Computing 11

[10] B Benson A Arfaee C Kim R Kastner and R K GuptaldquoIntegrating embedded computing systems into high schooland early undergraduate educationrdquo IEEE Transactions on Edu-cation vol 54 no 2 pp 197ndash202 2011

[11] P Bertels M DrsquoHaene T Degryse and D StroobandtldquoTeaching skills and concepts for embedded systems designrdquoSIGBEDRevelation 6 41ndash48 2009

[12] S Thrun W Burgard and D Fox Probabilistic Robotics MITPress Cambridge Mass USA 2005

[13] D S Touretzky ldquoPreparing computer science students for therobotics revolutionrdquo Communications of the ACM vol 53 pp27ndash29 2010

[14] M J OrsquoGrady ldquoPractical problem-based learning in computingeducationrdquo ACMTransactions on Computing Education vol 12no 3 article 10 2012

[15] J S Krajcik and P C BlumenfeldThe Cambridge Handbook ofthe Learning Sciences Cambridge University Press CambridgeUK 2006

[16] D Richards ldquoDesigning project-based courses with a focuson group formation and assessmentrdquo ACM Transactions onComputing Education vol 9 no 1 article 2 2009

[17] D Boud and G FelettiThe Challenge of Problem-Based Learn-ing Kogan Page London UK 1997

[18] J Strobel and A van Barneveld ldquoWhem is pbl more effeectiveA meta-synthesis of meta-analyses comparing pbl to conven-tional classroomsrdquo Interdisciplinary Journal of Problem-BasedLearning vol 3 no 1 pp 44ndash58 2009

[19] J WThomas ldquoA review of research on project-based learningrdquo2000 httpwwwbieorg

[20] C Bobda Introduction to Reconfigurable Computing Architec-tures Algorithms and Applications Springer Berlin Germany1st edition 2007

[21] I Kuon R Tessier and J Rose ldquoFPGA architecture Surveyand challengesrdquo Foundations and Trends in Electronic DesignAutomation vol 2 no 2 pp 135ndash253 2007

[22] R Hartenstein ldquoA decade of reconfigurable computing avisionary retrospectivrdquo in Proceedings of the conference onDesign Automation and Test in Europe Table of Contents pp642ndash649

[23] Xilinx Inc ISE Design Suite 2014 httpwwwxilinxcom[24] Altera Corporation Quartus II Web Edition 2011 httpwww

alteracom[25] Mentor Graphics ModelSimmdashAdvanced Simulation and

Debugging 2011 httpwwwmentorcom[26] M D Hill andM R Marty ldquoAmdahlrsquos law in the multicore erardquo

Computer vol 41 no 7 pp 33ndash38 2008[27] A Bindal S Mann B N Ahmed and L A Raimundo

ldquoAn undergraduate system-on-chip (SoC) course for computerengineering studentsrdquo IEEE Transactions on Education vol 48no 2 pp 279ndash289 2005

[28] S H Kim and JW Jeon ldquoIntroduction for freshmen to embed-ded systems using LEGO mindstormsrdquo IEEE Transactions onEducation vol 52 no 1 pp 99ndash108 2009

[29] P Marwedel Embedded System Design Embedded SystemsFoundations of Cyber-Physical Systems Springer Berlin Ger-many 2nd edition 2011

[30] W Wolf Computers as Components Second Edition Principlesof EmbeddedComputing SystemDesignMorganKaufmann SanFrancisco Calif USA 2008

[31] F Vahid and T Givargis Embedded System Design A UnifiedHardwareSoftware Introduction JohnWiley amp Sons NewYorkNY USA 1st edition 2002

[32] V Bonato B F Mazzotti M M Fernandes and E MarquesldquoA mersenne twister hardware implementation for the MonteCarlo localization algorithmrdquo Journal of Signal Processing Sys-tems vol 70 no 1 pp 75ndash85 2013

[33] V Bonato E Marques and G A Constantinides ldquoA floating-point extended kalman filter implementation for autonomousmobile robotsrdquo Journal of Signal Processing Systems vol 56 no1 pp 41ndash50 2009

[34] V Bonato E Marques and G A Constantinides ldquoA parallelhardware architecture for scale and rotation invariant featuredetectionrdquo IEEE Transactions on Circuits and Systems for VideoTechnology vol 18 no 12 pp 1703ndash1712 2008

[35] D E Wolf J A Holanda V Bonato R Peron and E MarquesldquoAn FPGA-based mobile robot controllerrdquo in Proceedings of the3rd Southern Conference on Programmable Logic (SPL rsquo07) pp119ndash123 February 2007

[36] V Bonato and E Marques ldquoRoboarch a component-basedtool proposal for developing hardware architecture for mobilerobotsrdquo in Proceedings of the 4th IEEE International Symposiumon Industrial Embedded Systems (SIES rsquo09) pp 249ndash252 July2009

[37] M C Sacchetin J J Lopes D F Wolf J L Silva and EMarques ldquoAnalysis and implementation of localization andmapping algorithms for mobile robots based on reconfigurablecomputingrdquo Latin American Applied Research vol 37 no 1 pp31ndash34 2007

[38] J Silva M M Fernandes V Bonato R Menotti J M Cardosoand E Marques ldquoUsing mobile robotics to teach reconfigurablecomputingrdquo in Proceedings of the IEEE Computer Society Work-shop on Reconfigurable Computing Education (WRCE rsquo06) p 6Karlsruhe Germany 2006

[39] F Dellaert D Fox W Burgard and S Thrun ldquoMonte Carlolocalization for mobile robotsrdquo in Proceedings of the IEEEInternational Conference on Robotics and Automation (ICRArsquo99) vol 2 pp 1322ndash1328 Detroit Mich USA May 1999

[40] A Howard and N Roy ldquoRadish the robotics data set reposi-toryrdquo 2003 httpradishsourceforgenet

[41] R Smith M Self and P Cheeseman ldquoEstimating uncertainspatial relationships in roboticsrdquo Autonomous Robot Vehiclespp 167ndash193 1990

[42] A Irturk B Benson S Mirzaei and R Kastner ldquoGUSTOAn automatic generation and optimization tool for matrixinversion architecturesrdquo Transactions on Embedded ComputingSystems vol 9 no 4 article 32 2010

[43] Y Koren and J Borenstein ldquoPotential field methods and theirinherent limitations formobile robot navigationrdquo inProceedingsof the IEEE International Conference on Robotics and Automa-tion (ICRA rsquo91) pp 1398ndash1404 Sacramento Calif USA April1991

[44] D G Lowe ldquoDistinctive image features from scale-invariantkeypointsrdquo International Journal of Computer Vision vol 60 no2 pp 91ndash110 2004

[45] Adept Technology Inc Research Robots 2011 httpwwwmobilerobotscomResearchRobotsaspx

[46] B P Gerkey R T Vaughan K Stoslashy A Howard G S Sukhatmeand M J Mataric ldquoMost valuable player a robot device serverfor distributed controlrdquo in Proceedings of the IEEERSJ Interna-tional Conference on Intelligent Robots and Systems (IROS rsquo01)pp 1226ndash1231 Maui Hawaii Maui November 2001

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 12: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

12 International Journal of Reconfigurable Computing

[47] D F Bacon and S Singh ldquoCompiling complete programs intocircuits (ccpc 2012)rdquo in A Workshop Co-Located with ASPLOSLondon UK 2012

[48] J M P Cardoso and P C Diniz Compilation Techniquesfor Reconfigurable Architectures Springer Berlin Germany 1stedition 2009

[49] Xilinx Inc Vivado Design Suite 2014 httpwwwxilinxcom[50] Altera Corporation Altera SDK for OpenCL 2014 httpwww

alteracom[51] OMG UML Profile for MARTE Modeling and Analysis of

Real-Time Embedded Systems 2009 httpwwwomgmarteorg

[52] Spirit Consortium IP-XACT v14 a specification for XMLmeta-data and tool interfaces 2008 httpwwwspiritconsor-tiumorghome

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of

Page 13: Research Article Practical Education Fostered by Research …downloads.hindawi.com/journals/ijrc/2014/287205.pdf · 2019-07-31 · Research Article Practical Education Fostered by

International Journal of

AerospaceEngineeringHindawi Publishing Corporationhttpwwwhindawicom Volume 2014

RoboticsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Active and Passive Electronic Components

Control Scienceand Engineering

Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

International Journal of

RotatingMachinery

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporation httpwwwhindawicom

Journal ofEngineeringVolume 2014

Submit your manuscripts athttpwwwhindawicom

VLSI Design

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Shock and Vibration

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Civil EngineeringAdvances in

Acoustics and VibrationAdvances in

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Electrical and Computer Engineering

Journal of

Advances inOptoElectronics

Hindawi Publishing Corporation httpwwwhindawicom

Volume 2014

The Scientific World JournalHindawi Publishing Corporation httpwwwhindawicom Volume 2014

SensorsJournal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Modelling amp Simulation in EngineeringHindawi Publishing Corporation httpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Chemical EngineeringInternational Journal of Antennas and

Propagation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

Navigation and Observation

International Journal of

Hindawi Publishing Corporationhttpwwwhindawicom Volume 2014

DistributedSensor Networks

International Journal of