+ All Categories
Home > Documents > Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital...

Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital...

Date post: 03-Jun-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
9
Teaching advanced digital systems design at FEUP Ant´ onio J. Ara´ ujo; Jos´ e C. Alves Faculdade de Engenharia da Universidade do Porto Departamento de Engenharia Electrot´ ecnica e de Computadores Rua Dr. Roberto Frias, 4200 – 465 Porto, Portugal Email: [email protected]; [email protected] Abstract This paper presents a teaching experience in a hardware course about advanced digital systems design. The course structure, oriented to the development of real working digital systems, challenges the students and increases their motivation. This way, the learning process is improved and the classes are more productive. Projects are the core of the practised teaching methodology and are structured in a pedagogical format according to the course programme. The use of the FPGA technology as the most suitable implementation technology for digital design teaching purposes is discussed. A laboratory development infrastructure based on a FPGA device, used to implement a real-time video processing system, is presented. Examples of laboratory projects implemented with this infrastructure in a recent course edition are described. Index terms: Digital systems design, FPGA, design methodology. I. I NTRODUCTION The course discussed on this paper is a course on advanced digital systems design taught at Faculty of Engineering of the University of Porto (FEUP), Portugal. It is taught in the 4th year of the integrated Master’s Degree (Bologna- compliant graduation) in Electrical and Computer Engineering (ECE) and is the first in a stream of two complementary courses on digital design. It calls Digital Systems Design (DSD), EEC0055 [1], and addresses the front-end design phase of complex digital systems for implementation on microelectronic technologies. The second one, VLSI Circuit Design (EEC0056 [1]), concentrates on the physical design of digital systems in current silicon-based IC (Integrated Circuit) fabrication technologies. The subject of this paper is the DSD course, focusing on the teaching methodology and on the laboratory assignments. The technology and Electronic Design Automation (EDA) tools employed by industry in the design of digital hardware evolve rapidly. Well-prepared engineers, who are able to produce actual designs and adapt to this dynamic world, are in demand. Thus, the training of a digital hardware engineer should be more focused on acquiring designing skills instead on learning, for example, a specific Hardware Description Language (HDL) or software tool. However, proposals such as [2], [3], [4] are too focused on the details of the HDL and do not answer to the necessities of the industry [5]. Nowadays, many proposals are being made to try to reduce the gap between the educational community and industry [6], [7], [8], [9]. In a digital design course, students should work similarly to digital hardware engineers in a company, in particular when it is a course near the end of their graduation. The main objective of the DSD course is to face the students with industrial methodologies and EDA tools, and apply them to complete real working digital systems. Motivation of the students increase if they can see, touch and play with the final results of their projects, going far beyond computer simulations and model abstractions. The Field- Programmable Gate Array (FPGA) [10] helps to get this aim. These aspects have a key role, contributing for an effective strategy of active learning that is being included in the teaching methodology of the DSD course. The contents of the remaining sections are as follows. Section II presents some aspects concerning the importance of assessment and team-working. Section III describes the area of digital design at FEUP. An overview about the courses that are near DSD is included. Section IV details the DSD course. The design process, the current course programme, the practised teaching methodology and the laboratory assignments are described on this section. Section IV-D is dedicated to the laboratory projects of DSD. It starts by explaining why FPGAs are used to implement de laboratory projects, then a laboratory infrastructure used by the students to experiment their projects is presented and, finally, examples of some proposed assignments are referred. Section VI ends the paper by presenting the main conclusions from the central issues discussed along it. II. ASSESSMENT AND TEAM- WORK Assessment is most commonly associated with testing whether students have achieved the learning outcomes of the course. However, used imaginatively, assessment techniques can be used as a part of the learning experience to help foster deeper engagement with the material under study. This is particularly true when continuous assessment results from laboratory assignments. This kind of assessment gives to students a feedback about their current knowledge level, allowing them to improve aspects where they failed. Student participation is widely recognized as being a key point in effective learning. It is also known that the traditional lectures can be augmented with learning experiences that involve and challenge the students [11], [12]. This
Transcript
Page 1: Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital systems design at FEUP Antonio J. Ara´ ujo; Jos´ ´e C. Alves Faculdade de Engenharia

Teaching advanced digital systems design at FEUP

Antonio J. Araujo; Jose C. AlvesFaculdade de Engenharia da Universidade do Porto

Departamento de Engenharia Electrotecnica e de ComputadoresRua Dr. Roberto Frias, 4200 – 465 Porto, Portugal

Email: [email protected]; [email protected]

Abstract

This paper presents a teaching experience in a hardware course about advanced digital systems design.The course structure, oriented to the development of real working digital systems, challenges the students andincreases their motivation. This way, the learning process is improved and the classes are more productive.Projects are the core of the practised teaching methodology and are structured in a pedagogical formataccording to the course programme. The use of the FPGA technology as the most suitable implementationtechnology for digital design teaching purposes is discussed. A laboratory development infrastructure basedon a FPGA device, used to implement a real-time video processing system, is presented. Examples oflaboratory projects implemented with this infrastructure in a recent course edition are described.

Index terms: Digital systems design, FPGA, design methodology.

I. INTRODUCTION

The course discussed on this paper is a course on advanced digital systems design taught at Faculty of Engineeringof the University of Porto (FEUP), Portugal. It is taught in the 4th year of the integrated Master’s Degree (Bologna-compliant graduation) in Electrical and Computer Engineering (ECE) and is the first in a stream of two complementarycourses on digital design. It calls Digital Systems Design (DSD), EEC0055 [1], and addresses the front-end designphase of complex digital systems for implementation on microelectronic technologies. The second one, VLSI CircuitDesign (EEC0056 [1]), concentrates on the physical design of digital systems in current silicon-based IC (IntegratedCircuit) fabrication technologies. The subject of this paper is the DSD course, focusing on the teaching methodologyand on the laboratory assignments.

The technology and Electronic Design Automation (EDA) tools employed by industry in the design of digital hardwareevolve rapidly. Well-prepared engineers, who are able to produce actual designs and adapt to this dynamic world, are indemand. Thus, the training of a digital hardware engineer should be more focused on acquiring designing skills insteadon learning, for example, a specific Hardware Description Language (HDL) or software tool. However, proposals suchas [2], [3], [4] are too focused on the details of the HDL and do not answer to the necessities of the industry [5].Nowadays, many proposals are being made to try to reduce the gap between the educational community and industry [6],[7], [8], [9]. In a digital design course, students should work similarly to digital hardware engineers in a company, inparticular when it is a course near the end of their graduation.

The main objective of the DSD course is to face the students with industrial methodologies and EDA tools, andapply them to complete real working digital systems. Motivation of the students increase if they can see, touch andplay with the final results of their projects, going far beyond computer simulations and model abstractions. The Field-Programmable Gate Array (FPGA) [10] helps to get this aim. These aspects have a key role, contributing for aneffective strategy of active learning that is being included in the teaching methodology of the DSD course.

The contents of the remaining sections are as follows. Section II presents some aspects concerning the importance ofassessment and team-working. Section III describes the area of digital design at FEUP. An overview about the coursesthat are near DSD is included. Section IV details the DSD course. The design process, the current course programme,the practised teaching methodology and the laboratory assignments are described on this section. Section IV-D isdedicated to the laboratory projects of DSD. It starts by explaining why FPGAs are used to implement de laboratoryprojects, then a laboratory infrastructure used by the students to experiment their projects is presented and, finally,examples of some proposed assignments are referred. Section VI ends the paper by presenting the main conclusionsfrom the central issues discussed along it.

II. ASSESSMENT AND TEAM-WORK

Assessment is most commonly associated with testing whether students have achieved the learning outcomes of thecourse. However, used imaginatively, assessment techniques can be used as a part of the learning experience to helpfoster deeper engagement with the material under study. This is particularly true when continuous assessment resultsfrom laboratory assignments. This kind of assessment gives to students a feedback about their current knowledge level,allowing them to improve aspects where they failed.

Student participation is widely recognized as being a key point in effective learning. It is also known that thetraditional lectures can be augmented with learning experiences that involve and challenge the students [11], [12]. This

Page 2: Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital systems design at FEUP Antonio J. Ara´ ujo; Jos´ ´e C. Alves Faculdade de Engenharia

is particularly true in a technological area, where a key aspect for a successful learning is the contact of the studentswith laboratory equipments. By this way they can really experiment the solution of their assignments and apply theirskills in an effective manner.

Various sources have propounded the advantages offered by considering a teamwork-based methodology with uni-versity students. On the one hand, it enables students to experiment and acquire the skills that they will need intheir future jobs on a company environment, e. g., interpersonal communication, teamwork, group problem-solving,time management, leadership and negotiation. On the other, teamwork used in a context of active methodologiesprovides profounder and more significant learning. In addition, positive effects have been shown on the academicperformance of students, motivation and their attitudes towards learning [13]. Some of these advantages have also beenunderscored by students, who consider group activities and active methodologies to be more interesting, entertainingand learning facilitating than traditional teaching [14]. One important aspect that can be practised with team-working isthe competition. This feature plays an important role in most of the companies. On an assessment methodology wherelaboratory projects are done by student teams it is possible to establish some criteria around which they can compete.As will be seen later(section IV-D.3), the several teams can compete when searching for the best solution of a project.Considering both the advantages and drawbacks of team-working, the first ones overcome the last ones. In a courseof technological nature that conclusion is reinforced.

III. THE AREA OF DIGITAL SYSTEMS AT FEUPThis section presents an overview about the area of digital systems at FEUP.The courses currently offered by the ECE programme in the area of electronic digital systems assure the covering

of the different phases of designing digital systems. Using a Y-chart [15], figure 1 illustrates the distribution of thesubjects that represent the central themes taught in those main disciplines.

Digital Systems Design Digital Systems Laboratory

physical

behaviouralstructural

abstractionlevels

Digital Signal Processing,

Principles of Telecommunications,

Telecommunication Systems,

Image Processing

Microprocessors,

Computer Architectures,

Microprocessor Based Systems

VLSI Circuit Design

system

RTL

logic

device

PCB boardsMCMs

set of organizedcells (chip)

standard-cells

geometries oftransistors

transistors

algorithms

transfersamong registers

electricalbehaviour

booleanfunctions

processorsmemories

registersmultiplexersALUs logic gates

flip-flops

Electronics III

Fig. 1. Courses on digital systems area at FEUP.

The design at the system level is done in courses as Digital Signal Processing, Principles of Telecommunications, bothat the 3rd year, Telecommunication Systems and Image Processing, these two on the 4th year. On these courses theyare studied algorithms and manipulated abstract functional models of systems in the areas of corresponding application,that could be performed as implementations of digital circuits, computational applications or materializations based onmicroprocessors or signal processors. The content of these courses allows to place them in the Y-chart over the axisthat represents the behavioural domain and in the highest abstraction level, the system level.

Another group of courses, where both processing architectures and systems based in processors are studied (Micro-processors, Microprocessor Based Systems and Computer Architectures), is located on the system level and partiallyalso at the Register Transfer Level (RTL), but according to the structural domain.

Page 3: Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital systems design at FEUP Antonio J. Ara´ ujo; Jos´ ´e C. Alves Faculdade de Engenharia

The design at the physical level is done in the courses of Electronics III and VLSI Circuit Design. In the first onethey are studied the fundamental aspects of the production technology of integrated circuits and of the CMOS process.The operation, implementation and characterization of fundamental logical blocks are studied. This course, ElectronicsIII, can be located on the three representation domains in the lowest abstraction level, the physical domain. On theother hand, VLSI Circuit Design focuses the design of integrated digital circuits according to all of the levels of thephysical domain, covering all of the steps of the back-end design phase, considering an ASIC as the target technology.

Digital Systems Laboratory is a 1st year course, where the design at the logic level is taught. Its main purpose is tointroduce fundamental concepts that are required by posterior courses on the area. Theoretical principles and practicalaspects of the analysis and synthesis of digital systems are taught. By the acquired competences about these severalthemes, this course can be located in the Y-chart over the logic level, covering essentially the structural and behaviouraldomains.

The design at the RTL level is covered in the course of Digital Systems Design. The main topics are digitalsystems modelling at the RTL level, with both behavioural and structural models, using hardware description languages,functional validation of those models, the RTL synthesis and the validation of the synthesized model. It is also includeda reduced component of physical design, that is fundamental so that the students can perform the back-end phase fora FPGA where are implemented the laboratory projects of the course. It is still established the bridge for the designat the system level, with the study of mechanisms used in the high-level synthesis process and of problems associatedto the construction of datapaths and arithmetic operators. This way, the focus of the course locates on the RTL level,from the behavioural to structural axes.

The depicted areas in figure 1, associated to the nuclear areas focused by each course, cover in a complete way allof the representation domains and abstraction levels, although with reduced, but necessary, interception areas amongsome courses. In matter, the design task at the logic and RTL levels are both covered by the courses of Digital SystemsLaboratory and Digital Systems Design, but with different depths.

IV. DIGITAL SYSTEMS DESIGN COURSE

The aim of DSD course is to supply the students with technological skills and methodological aspects about the designof complex digital systems, considering their implementation in microelectronic technologies or in reconfigurable digitalsystems. For that, it is intended to give them the necessary competences to design digital systems using a structuredapproach, based on digital HDLs at different abstraction levels and using commercial design tools.

Next section details the DSD course.

A. The design processThe digital systems design is centred in modelling, validation and synthesis tasks. They can occur at different

abstraction levels and representation domains, depending on the complexity of the project. Figure 2 represents them.

algorithm

RTL model

high-levelsynthesis

functionalvalidation

logic model

RTLvalidation

post-synthesisvalidation

timingverification

RTLsynthesis

physicalsynthesis

device fabrication

system design

physical model

RTL design

physical design

fron

t-en

d de

sign

back

-end

des

ign

Fig. 2. Digital design tasks, abstraction levels and representation domains.

Page 4: Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital systems design at FEUP Antonio J. Ara´ ujo; Jos´ ´e C. Alves Faculdade de Engenharia

At the system level, the starting point is generally the study and evaluation of an algorithm to use in the system tobe designed. For that, behavioural models are used to choose and evaluate a resolution method for the problem. Themodelling and validation processes are based on modelling and simulation tools, e.g. Matlab/Simulink and programminglanguages. Synthesize a model at the system level consists on translate it to a representation in a lower abstractionlevel, i.e. the Register Transfer Level (RTL), based on RTL blocks that implement functional elements.

Perform a design at the RTL level consists on to build and to validate a RTL model, in a behavioural or structuralmode, and translate it to a structural representation at the logic level that is functionally equivalent to the initial model.This constitutes an important task when designing complex digital systems and is supported by simulation and automaticsynthesis tools that reveal essential in this activity. The result of this process is a model that represents a netlist ofavailable logic elements of the target technology, each one corresponding to a physical cell on that technology. Thisphase and the previous one complete the front-end design phase where an algorithm is converted in a digital system.

The translation of that structural model into a physical representation is the physical design task, also known as back-end. This process is specific of the target technology. It involves the spatial organization of blocks over the physicalarea of the target device, the placement and routing of cells, and the extraction of physical characteristics after thatplacement and routing.

B. Course programmeThe course is composed by the following main topics:• Structured design of digital systems: design flow, top-down and bottom-up design methodologies, modelling at

different abstraction stages, modularity and hierarchy concepts;• Hardware description languages: modelling, verification and synthesis perspectives, and Verilog HDL;• Verification of the project: functional validation, logical verification and temporal analysis, and techniques for

writing testbenches;• Synthesis of digital systems: RTL and behavioural synthesis, and RTL synthesis under temporal constraints;• Synchronous digital systems: problems related with the clock generation, management and distribution, and

systems with several clock domains;• Reconfigurable implementation technologies: FPGAs and combined FPGA/microprocessor systems;• Control and datapath synthesis: synthesis of control units and custom processing units, architectures of both

fixed-point and floating-point arithmetic operators;• Low power: design principles and techniques oriented for the reduction of power consumption.

As far as possible, these topics are maintained independent of the implementation technology.

C. Teaching methodologyThe topics in the DSD programme are taught on the theoretical classes. During the lectures, slides are employed as

a teaching aid. The slides and other materials of the course are available for the students before the start of the course,allowing the students to make better use of in-class time. Whenever opportune, exercises are solved to exemplify orclarify some particular aspects. The evaluation of the knowledge acquired by the students on the theoretical classesis done by two mini-exams, each one graded with 4 in 20. This examination is mainly used to clarify for possibleinequities of effort among team members when working on laboratory projects.

The practical classes are used mainly to develop laboratory assignments that exercise the design methodologies, thedevelopment tools and concepts presented in the theoretical classes. In terms of assessment, the grade of the assignmentsis 12 in 20, since the core of the adopted teaching methodology is the set of laboratory projects.

By the reasons described in Section V-A, the laboratory assignments are addressed to use reconfigurable circuits toimplement the developed digital systems. Concretely, Xilinx FPGAs are used for that purpose with the ISE developmenttools [16] and the used HDL is Verilog [17]. The design approach consists on using the top-down methodology,automatic synthesis and implementation on a Xilinx Spartan-3 FPGA contained in a prototyping board [18].

The first stage of the design cycle, the functional verification, is essential for a successful design. Wrong models thatnot satisfy the project specifications can not result in correct hardware solutions. As part of the teaching methodology,the students are alerted to this fact and to the importance of the functional verification of a digital system as a way toguarantee its correctness. To put this in practice, the students are encouraged to exchange the testbenches among them.This reveals a very useful practice to avoid incomplete or wrong design verification because their testbenches can beaddicted. If the model under checking is wrong, due to a mistake on the interpretation of the project specification, thenthe testbench also tends to be wrong.

The organization and the contents of the laboratory assignments where this methodology is applied are described inthe next section.

D. Laboratory assignmentsThe DSD course has a strong hands-on practical component based on three main laboratory assignments. The practical

classes are planned to allow the execution of these projects in articulation with the theoretical classes. By this waythe background topics are guaranteed. These assignments allows the students to progressively contact with the design

Page 5: Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital systems design at FEUP Antonio J. Ara´ ujo; Jos´ ´e C. Alves Faculdade de Engenharia

flow and methodologies as well as the corresponding tools. Every assignment teaches students a new concept abouthardware design.

The organization of these three projects, their objectives and corresponding pedagogical contributions, is explainedas follows.

1) Lab 1: The first of these projects intends to face the students with modelling and functional verification of digitalsystems, familiarizing with the Verilog HDL and the ModelSim simulator [19]. For this purpose a control-dominatedsynchronous digital system is designed. The main issues addressed on this assignment are the correct understanding ofRTL modelling of sequential and combinational logic circuits, building basic testbenches with automatic verificationprocedures, practice with the front-end design stage through the design cycle and verify the project against specifications.

This first assignment is initiated after a tutorial about ModelSim utilization. The specification is given to the studentsin a class, where they should answer to a short questionnaire. This intends to motivate them to clarify what they shoulddo and how. At the end of the session the students have their own architecture of the circuit to be modelled.

In this initial project, for the first time they experiment to exchange their testbenches between them as a manner toget a more robust validation process.

2) Lab 2: The second project is intended to obtain a circuit, implementing it in a FPGA and see it working. For thefirst time the students visit all the design stages: modelling, functional validation, synthesis, implementation and finalexperimentation. A basic ISE project is supplied with the basic necessary resources to implement it in the Spartan-3prototyping board. The students add the module that they should develop to this ISE project.

It is intended with this approach that the students concentrate on the circuit to be developed, once this second projectstill usually reveals some flaws of the students at the modelling level. The reason for that is the improper use of theHDL constructions that not synthesize properly. This is one of the main difficulties when students start work with aHDL, because they tend to confuse a HDL with a programming language. Several authors relate this problem [20]. Thisapproach still allows the students to understand the overall organization of a complete ISE project and learn how todefine design constraints, like assigning signals to the input/output pins of the FPGA circuit, and setting the maximumdelay for some critical signals. Additionally, the students familiarize with the remaining design tools.

As occurred in the previous project, this one starts after a tutorial. In this case it is about the ISE package, showingthe use of the main tools.

3) Lab 3: The third project is a more complex assignment. Students have to conceive and develop core parts ofa given design, exploring and evaluating alternatives to meet realistic design constraints and optimize some qualitycriteria. In the past few years several different projects were proposed, spanning diverse application areas such as audiocoding and processing, software radio, processor design and real-time video processing. Although the proposed projectsare quite simple to be compatible with the student’s skills, they result in interesting demonstrators and motivate thestudents into an active learning process.

Due to the design of a concrete application and to the used methodologies and tools, the students are involved inan activity that is close to the realities that they will find in companies within the area of electronic digital systemsdesign at the job market.

The largest duration and complexity of this last project justify its greater weight comparing to the other courseassignments. The grade of the third project is normally 6 to 8 in 12. The evaluation is made considering aspects likethe organization and quality of the Verilog code of both developed modules and testbenches, the produced datasheetabout the developed system including a brief characterization and the results of the implementation, and obviouslyconsidering the fundamental aspect that is the correct functionality of the system. The optimization of the systemimplementation, measured by the gate count, is also valued serving to distinguish the several teams.

V. LABORATORY PROJECTS

This section describes some implemented laboratory projects. Prior to this, the infrastructure used to implement themis presented as well as the reasons that justified our choice on the used technology.

A. Implementation technologiesConsidering the various actual technologies, an important decision is what technology is the most adequate to teach

a course on advanced digital systems design.To practice the complete design-verification-physical implementation design cycle for a complex digital system within

a 14-week course (one semester) it is necessary to adopt a convenient implementation technology that allow the studentsto see and experiment the results of their projects in the laboratory. Although FEUP, as a member of the EuropeanEUROPRACTICE programme [21], has easy access to the fabrication of integrated circuit prototypes, the typical 2-3month turnaround time invalidates the utilisation of this solution as the target technology. Besides that, the relativehigh costs of IC fabrication represents a huge limitation for practical design iterations, which is inevitable to happenduring the learning process.

FPGA is now a mature technology for the implementation of digital systems [22]. These are completely fabricatedcommercial ICs that can be configured an unlimited number of times by the end user in a matter of seconds using lowcost equipment. It allows the rapid implementation of multi-million gate-equivalent digital systems with no real costsof silicon fabrication, providing high-performance digital systems competing, in same cases, with custom made ICs.

Page 6: Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital systems design at FEUP Antonio J. Ara´ ujo; Jos´ ´e C. Alves Faculdade de Engenharia

Although the emphasis of the DSD course is not FPGA-targeted design, this technology was adopted in the course asthe implementation target for the laboratory projects due to various reasons: fast design cycle with no costs of designiterations, support for high-performance and complex digital systems, and availability of a large variety of commercialdevelopment platforms that include various peripherals and interfaces (e.g. RAM, analogue-digital signal converters,network interfaces, etc.). According to published experiences [23], [24], [25], [26], several other engineering schoolsaround the world have adopted FPGA circuits to teach their digital design courses.

By the given reasons and considering the context of the DSD course in the ECE graduation programme, the FPGAtechnology was chosen to implement the laboratory projects.

B. Laboratory infrastructureThis infrastructure was developed and implemented two years ago and since that it is being used successfully. It

is based on a FPGA reconfigurable device, allowing to implement a design virtually an unlimited number of times.With this infrastructure the students can really implement and experiment several video image processing operationsin an effective manner, i.e., they can see the result of what is implemented by observing the effect that is caused inthe image.

It consists on a processing chain that receives data from a OmniVision 7120 [27] monochromatic camera, performsome image processing operation and supplies the resultant signals to the board that interfaces with the VGA monitor.This basic real-time video processing system, 30 frames per second and 8 bits per pixel, is built on a XILINX Spartan-3FPGA board. The FPGA implements the video processing system and other modules. It includes circuitry to interfacewith a PC and to define some parameters that control the operation of the digital camera. This infrastructure is depictedin Figure 3, showing their composition and the physical resources.

Pin

8

Poutvideo

processing

chain

video

memory

digital

camera

VGA

PC

control

via

RS-232

8

Fig. 3. Laboratory infrastructure.

An ISE project with all the blocks that support the implementation of image processing operations is normally givento the students with a module that exemplifies how to integrate in the system the modules that they must develop.Normally, a module that calculates the negative image is included, serving also to show how they can use the busesthat transmit the image data. Figure 4 shows a structural view of the given top-level design, with emphasis on thevideo processing module inserted on the chain.

One of the blocks included in the given ISE design, synchronize the signals coming from the digital camera with the100 MHz system clock. The pixel values are generated at 12.5 MHz, and for each one the correspondent coordinatesare also generated, considering that (0, 0) corresponds to the upper left corner of the image. Besides that, horizontaland vertical synchronism signals are also produced. The system still includes an interface with the digital camera I2Cbus, allowing the configuration of several parameters of the camera by setting proper configuration registers, e. g., itis possible to define the image scan mode, choosing the interlaced form or the sequential one, etc.

Various image processing operations, normally known by the 4th year graduation students, can be implemented. Forall of them, the implementation methodology consists on defining an architecture that satisfies the required specification,its modelling and functional verification, its integration on the system by joining it to the whole design, and finally

Page 7: Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital systems design at FEUP Antonio J. Ara´ ujo; Jos´ ´e C. Alves Faculdade de Engenharia

FIFO

write

port

clock100MHz

enable

Pin8

pclken

vsyncin

hrefin

vsyncout

8Pout

hrefout

Video

Processing

Module

Fig. 4. Insertion of a video processing module on the given design.

the synthesis and implementation of the entire design. To implement the entire system in a synchronous manner, theinput signals should be read with the 100 MHz global clock using the signal that validates each new arrived pixel asa clock enable. In spite of that, the local processing operations can use all of the global clock cycles. By this way, aprocessing module can use up to 8 clock cycles to do some operation over each pixel of the image. However, this isonly possible since that the line and frame synchronism signals suffer a delay with exactly the same number of cycles,guaranteeing the correct timing of the signals outputted by that module. This is the reason why the synchronism signalspass throughout the module to be added.

After being processed, the image is sent to an external board that is equipped with a set of FIFO memories where itis saved. These memories are then read, synchronously with the produced VGA synchronism signals, and applied toa digital-analogue converter that produces the analogue signal to the VGA monitor.

Complementing this hardware infrastructure, it is also supplied a PC application to interface the FPGA circuit,allowing a bi-directional communication via RS-232. This tool reveals very useful, once that the students can controltheir modules and, particularly, they can debug them by observing problematic signals to understand what can bewrong with them. Figure 5 shows the interface of a version of this application. This version has been used to facilitatedata input on some recently implemented projects that uses the video processing platform. On the left side 16 outputports are visible, as well as the set of 4 output ports at the right side, according to the circuit in the FPGA that isbeing controlled or observed, respectively. As can be seen on the figure, this version also includes two scroll bars. Forexample, they can be used to define by an easy way the location of an image window where a certain operation willbe done.

C. Examples of implemented projectsSome of the laboratory projects proposed on the third assignment in recent course editions are presented to show

what is involved in them. In all of them, the students have to integrate some proposed processing functions in thevideo processing system, i.e. they add some modules to a given base ISE project to then implement and try it.

1) Histogram making: This project consisted on the determination and visualization of the real-time histogramcorresponding to the captured image. To define the visualization place, the coordinates are defined using the PCcommunication interface (section V-B). The counting of the pixel’s frequencies on a frame is saved in the FPGAinternal memory to allow the visualization of the current histogram within the next frame. Actually, this was theprincipal challenge to the students as well as the normalization of the histogram to allow a convenient representationscale.

2) Motion detection: A basic technique for motion detection is based on the difference of two consecutive videoframes. This was applied in a project that consisted in the implementation of a motion detector based on the videoimage system. It allows the end user setting threshold levels that establish when it is considered motion. To help theend user having movement perception, the level of movement is represented as a bar over the original image. The sizeof that bar is proportional to the detected movement. It is also possible to specify in run-time the coordinates of thewindow where the motion should be detected. That region is highlighted to differentiate it in the whole image on thescreen.

3) Bi-dimensional convolution: A 2D convolution was also implemented in a recent laboratory assignment. A3 × 3 matrix was used in the convolution operator. Choosing appropriate values to that 9 coefficients result variousfiltering effects, e.g. edge detection, blur, emboss, sharpen, etc. The principal challenges were the arithmetic involved,i.e. how to allocate and schedule the operators, saving the line of the current pixel and the previous two, and also the

Page 8: Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital systems design at FEUP Antonio J. Ara´ ujo; Jos´ ´e C. Alves Faculdade de Engenharia

Fig. 5. Aspect of the developed application allowing the PC/hardware communication.

effect of the image borders. These situations were problematic due to the FPGA available space and system timingconstraints to allow the real-time system operation.

VI. CONCLUSION

The fast design cycle allowed by FPGA devices and the possibility to reconfigure that circuits allow the studentsto perform unlimited design iterations without additional costs. By this way they can explore the solution space of adigital system implementation considering the consumed resources and its performance. These features improve theproductivity of the classes and the learning process results more appellative and attractive.

This paper presented a digital systems design course with emphasis on laboratory projects. The teaching methodologyand the laboratory projects of the course were presented. These projects are implemented in FPGA devices. For that, adeveloped infrastructure was presented. It was implemented two years ago and since that it is being used successfully.It is based on a FPGA reconfigurable device, allowing to implement a design a virtually unlimited number of times.With this laboratory infrastructure the students can really implement and experiment several video image processingoperations in an effective manner, i.e., they can see the result of what is implemented by observing the effect that iscaused in the image.

With this practised approach, the students acquire valuable knowledge and skills on an actual technology that assumesa role with growing importance in the development of digital hardware. Moreover, considering the subjects, tools andteaching methodology, they work similarly to digital hardware designers in a company.

REFERENCES

[1] http://www.fe.up.pt.[2] Zainalabedin Navabi. The impact of hardware description languages on the education of hardware design. In Proceedings of

the 8th IEEE University/Government/Industry Symposium, pages 235–239, Westborough, MA, USA, June 1989.[3] Assim Sagahyroon and Mehran Massoumi. On the use of hardware description languages in teaching VLSI design courses. In

Proceedings of the 26th. ASEE/IEEE Frontiers in Education Conference, pages 713–716, Salt Lake City, UT, USA, November1996.

[4] Assim Sagahyroon. From AHPL to VHDL: A course in hardware description languages. IEEE Transactions on Education,43(4):449–454, November 2000.

[5] Don M. Gruenbacher. An active learning/teamwork approach to implementing an integrated circuit design cycle in an advancedhardware description language course. In Proceedings of the 29th. ASEE/IEEE Frontiers in Education Conference, San Juan,Puerto Rico, November 1999.

[6] Jose N. Amaral, Paul Berube, and Paras Mehta. Teaching digital design to computing science students in a single academicterm. IEEE Transactions on Education, 48(1):127–132, February 2005.

Page 9: Teaching advanced digital systems design at FEUP · 2009-09-30 · Teaching advanced digital systems design at FEUP Antonio J. Ara´ ujo; Jos´ ´e C. Alves Faculdade de Engenharia

[7] Valery Sklyarov and Iouliia Skliarova. Teaching reconfigurable systems: methods, tools, tutorials and projects. IEEETransactions on Education, 48(2):290–300, May 2005.

[8] Hugo Hedberg, Joachim N. Rodrigues, Fredrik Kristensen, Henrik Svensson, Matthias Kamuf, and Viktor Owall. Teachingdigital ASIC design to students with heterogeneous previous knowledge. In Proceedings of the 2005 International Conferenceon Microelectronic Systems Education, pages 15–16, Anaheim, CA, USA, June 2005.

[9] Igone Velez and Juan F. Sevillano. A course to train digital hardware designers for industry. IEEE Transactions on Education,50(3):236–243, August 2007.

[10] Stephen D. Brown, Robert J. Francis, Jonathan Rose, and Zvonko G. Vranesic. Field-Programmable Gate Arrays. KluwerAcademic Publishers, 1992.

[11] Juan A. Marin-Garcia and Jaime Lloret. Improving teamwork with university engineering students. The effect of an assessmentmethod to prevent shirking. WSEAS Transactions on Advances in Engineering Education, 5(1), January 2008.

[12] Saumil Merchant, Gregory D. Peterson, and Don Bouldin. Improving embedded systems education: Laboratory enhancementsusing programmable systems on chip. In Proceedings of the 2005 International Conference on Microelectronic SystemsEducation, Anaheim, CA, USA, June 2005.

[13] C. M. Anson, L. E. Bernold, C. Crossland, J. Spurlin, M. McDermott, and S. Weiss. Empowerment to learn in engineering:Preparation for an urgently-needed paradigm shift. In Proceedings of the 6th UICEE Annual Conference on EngineeringEducation, pages 10–14, Queensland, Australia, February 2003.

[14] Olga Pierrakos, Maura Borrego, and Jenny Lo. Assessment of student’s learning outcomes during design experiences: Empiricalevidence to support interdisciplinary teams. In Proceedings of the 4th IASME/WSEAS International Conference on EngineeringEducation, pages 24–26, Crete, Greece, July 2007.

[15] D. Gajski and R. Kuhn. Guest’s editors introduction: New VLSI tools. IEEE Computer, December 1983.[16] http://www.xilinx.com.[17] The Institute of Electrical and Electronics Engineers, New York. IEEE Standard Verilog hardware description language,

September 2001. IEEE Standard 1364-2001.[18] Xilinx. Spartan–3 Starter kit board User Guide, 2005. http://digilentinc.com/Data/

Products/S3BOARD/S3BOARD-rm.pdf.[19] http://www.mentor.com.[20] R. James Duckworth. Embedded system design with FPGAs using HDLs (lessons learned and pitfalls to be avoided). In

Proceedings of the 2005 International Conference on Microelectronic Systems Education, Anaheim, CA, USA, June 2005.[21] http://www.europractice.com.[22] R. C. Cofer and Benjamin Harding. Rapid System Prototyping with FPGAs: Accelerating the Design Process. Elsevier, 2005.[23] Don Bouldin. Impacting education using FPGAs. In Proceedings of the 18th International Symposium on Parallel and

Distributed Processing, Santa Fe, USA, April 2004.[24] Stephen A. Edwards. Experiences teaching an FPGA-based embedded systems class. In Proceedings of the Workshop on

Embedded Systems Education (WESE), New Jersey, USA, 2005.[25] Yong-K. Jung. Work in progress – a rapid design methodology for FPGA-based processor platform design education. In

Proceedings of the 35th. ASEE/IEEE Frontiers in Education Conference, Indianapolis, USA, October 2005.[26] Dong-Soo Kang, Soo Yun Hwang, Kyoung-Son Jhang, and Kang Yi. A low cost and interactive rapid prototyping platform for

digital system design education. In Proceedings of the 2007 International Conference on Microelectronic Systems Education,San Diego, CA, USA, June 2007.

[27] OmniVision Technologies, Inc. OV7120 single-chip CMOS VGA b&w digital camera, 2001. http://www.ovt.com.


Recommended