A Course On Reconfigurable Processors
A Course On Reconfigurable Processors
PROCESSORS
ABDULHADI SHOUFAN AND SORIN A. HUSS
Integrated Circuits and Systems Lab.
_________________________________________________________________
Reconfigurable computing is an established field in computer science. Teaching this field to computer science
students demands special attention due to limited student experience in electronics and digital system design.
This paper presents a compact course on reconfigurable processors, which was offered at the Technische
Universität Darmstadt, and is intended for instructors aiming to introduce a new course in reconfigurable
computing. Therefore, a detailed description of the course structure and content is provided. In contrast to
courses on digital system design, which use FPGAs as a case platform, our course places this platform at the
centre of its focus and highlights its features as a basis for reconfigurable computing. Both declarative
knowledge and functioning knowledge are considered in defining learning outcomes based on a novel What-
Why-How-Model. Lab activities were designated to deepen the functioning knowledge. The written exam is
aligned to learning outcomes and shows that most students acquired the intended outcomes.
Categories and Subject Descriptors: K.3 [Computer and Education]: Computer and Information Science
Education – Computer science education; Curriculum
Additional Key Words and Phrases: Design process, VHDL, configuration resources, configuration
technologies
_________________________________________________________________
1. INTRODUCTION
Field Programmable Gate Arrays (FPGAs) present a trade-off between software
solutions with high availability, high flexibility, and low costs, and application
specific integrated circuits (ASICs) with high performance, low power, and small
space. By combining the advantages of these two extremes, FPGAs increase in
importance. As an alternative to ASICs, FPGAs were originally introduced for
engineers facing high demands on short time-to-market. With their increasing
integration densities and their computational capabilities on the one hand, and
with their rising performance on the other, FPGAs are invading computer
architectures considerably, for example, as application accelerators [Intel 2008].
Thus, understanding system design with FPGAs is not limited to students focused
primarily on hardware design. Rather, students focused on software and
algorithms, such as most computer science majors, will benefit from these
architectures to build high-performance coprocessors, which serve several
applications due to reconfigurability. To qualify those students for this field,
special courses on reconfigurable computing should be offered. Unfortunately,
most related work on teaching configurable hardware is either specific to
students of electrical engineering with corresponding previous knowledge [
LOYA-HERNANDEZ 2007, SKLYAROV 2005], or uses FPGA platforms to
teach different topics such as digital design foundations and computer
architectures [TEUSCHER 1999, HALL 2006, VERA 2006, STANLEY 2007,
TORRESEN 2007] with corresponding abstractions from the FPGA platform.
3. The course aims at increasing both the width of declarative knowledge by the
variety of lecture topics and the depth of functioning knowledge by lab
design assignments.
Knowing its importance and its challenges, which were recently recognized by
the Association for Computer Machinery by establishing the Transactions on
Reconfigurable Technology and Systems journal [ACM2009], it is evident that
learning reconfigurable computing at universities is essential for its success.
From this table it is obvious that FPGAs do not take a central role in any unit, as
they do in reconfigurable computing. Therefore, it is highly advantageous to
introduce a new unit (course) which tackles reconfigurable computing with
FPGAs at its center and addresses other aspects of reconfigurable computing
based on a thorough understanding of this platform. Putting the FPGA at the
center is essential for two reasons. First, it is almost the only reconfigurable
platform, which can be deployed in labs to enhance functioning knowledge.
Secondly, to understand why and how reconfigurable computing aims at new
platforms, it is essential to understand all the details and limits of current FPGAs.
In the department of computer science at TUD the following courses are offered,
which relate in some way to Reconfigurable Processors. Besides each course or
course set, the main topic of that course is given. The core courses are
prerequisites for our course, which is an elective one.
Core courses
Elective Courses
3. COURSE CONSTRUCTION
The WWH-Model represents a suitable means to introduce students to a new
course, to derive the learning outcomes, and to define the course structure and
topics aligned to the learning outcomes. In this respect, the WWH-Model can be
seen as an application of the constructive alignment [Biggs2007] to a large
extent. In the following we first discuss how this model is used to introduce the
new course. Afterwards, we explain the relation between the model and the
learning outcomes already given in Section 2.3. Lastly, the lecture structure is
derived based on that model.
A course title is the most essential keyword, which often presents a novel and
sometimes mysterious concept for students. An early understanding of the
dimensions of this keyword is essential for familiarizing students with the new
topic. In engineering fields, a course title has often three dimensions which are
highlighted by asking questions of the form: what?, why?, and how? (See Figure
1.).
As mentioned earlier, the WWH model can assist in writing learning outcomes.
The constructor may ask as many questions as the learning outcomes or vice
versa. For our course, Table II maps to the questions from the WWH model to
the learning outcomes given in Section 2.3.
Table II. From WWH-Model to Learning Outomes
System specification and design entry are the most important and time-
consuming tasks performed by designer. Today, the standard way for design
entry relies on hardware description languages such as VHDL. VHDL represents
the designer interface with the design tools and ultimately with the design
running on the FPGA. Changing the function of the FPGA begins with re-coding
the VHDL model. Therefore, learning VHDL is essential at the start of the
course. Lectures 4 to 7 make use of VHDL to point out how different language
constructs affect the configuration resources on the FPGA. Treating the topics of
Lectures 8, 9 earlier would be less motivating, especially as these topics are not
supported by labs. Lectures 8 and 9 are planned between two more challenging
topic blocks: lectures 2 to 7 on the one hand and lectures 10 to 12 on the other.
4. LECTURE CONTENT
4.1 Lecture 1
Because of its hardware relation, VHDL is not easy to learn, especially for
students of computer science. Understanding VHDL depends on an accurate
understanding of hardware properties. Therefore, lecture 2 starts with an
overview of essential hardware properties and illustrating how VHDL reflects
these properties by its different language constructs. Figure 4 outlines the fact
that a hardware unit has an interface and an internal architecture. The architecture
can be described by its structure as a connection of smaller components or by the
function it realizes. A hardware function relates to processing signals by applying
some operation on them and to the time of this processing. Timing behavior of
hardware can be specified by the processing delay, on the one hand, and by the
speed of hardware reaction on changes of input signals, on the other.
Asynchronous logic is specified by immediate reaction. Synchronous logic, in
contrast, reacts only after a clock edge.
5. Multiple-valued logic
6. Combinatorial loops
4.4 Lecture 4
1. Mapping VHDL models to logic cells. This task, denoted as logic synthesis,
is demonstrated by applying the ISE design process to a VHDL model and by
inspecting the resulted netlist. Additionally, the placed and routed design is
inspected using the FPGA Editor, which shows how look-up tables are
configured. The FPGA Editor, which is delivered by Xilinx as an accessory
program under ISE, is very powerful for both verification and configuration.
Because of its advanced graphical interface, we highly recommend using
FPGA Editor in class room to illustrate several aspects of FPGA fabric and
design.
2. Basics of logic synthesis and the interplay between synthesis algorithms, the
size of a look-up table and the synthesis result. This effect is considered by
FPGA vendors to decide on an appropriate size for look-up tables. This was
observed by using 6-input LUTs in the Virtex-5 family instead of 4-input
LUTs in older generations.
4. Building structural VHDL models based on vendor libraries, and showing the
advantage, e.g. performance, and disadvantage, e.g. portability, of this
modeling style.
4.5 Lecture 5
1. Explaining the concepts of wafer, die, chip, pad, and pin and illustrating that
an FPGA with n pins includes n pads and thus n IOBs.
2. Input and output buffers, tri-state buffers, and related topics such as pull-up,
pull-down resistors, bus keepers and slew rate control.
4.6 Lecture 6
4. Static timing analysis to inspect the timing behavior of the design. This
includes investigating three paths: flip-flop to flip-flop path (critical path),
which define the clock frequency, input-pad to flip-flop path, which defines
timing constraints on input signals, and the flip-flop to output-pad path,
which defines constraints on output signals. Aside from an analytical
investigation, this topic is demonstrated using the Timing Analyzer from
Xilinx, which is embedded in ISE.
4.7 Lecture 7
High-end FPGAs enable the design of system-on-chip and provide, for this
purpose, coarse-grain resources which are pre-placed and partially routed.
Examples of these resources are embedded memories and embedded multipliers.
Library cells are available which enable the usage of these resources with
different configurations, such as different word widths of a block memory. The
following topics are treated in Lecture 7:
2. Illustrating the usage of these resources in VHDL models. This can occur
either structurally by direct instantiation of appropriate library elements or
behaviorally in consideration of some coding guidelines provided by
synthesis tool vendors.
4.8 Lecture 8
4.9 Lecture 9
4.10 Lecture 10
3. Overview of research work on the integrity and authenticity of the bit stream.
4.11 Lecture 11
1. Single-context configuration
2. Multi-context configuration
3. Partial configuration
5. The modular design process for Xilinx PFGAs including the partial
configuration for Virtex II.
4.12 Lecture 12
4.13 Lecture 13
5. EXERCISE CONTENT
In the lab, students use commercial design tools which include the ISE, EDK,
and PlanAhead from Xilinx, ActiveHDL simulator from Aldec, and DK Design
Suite from Agility. Two hardware platforms are available for lab purposes:
Spartan III Starter Board [DIGILENT 2008] and Xilinx University Program
Board [XILINX 2008]. The lab assignments are divided into two classes: short
assignments and projects assignments.
Project assignments: Two large projects are handled in the course of the
semester to cope with the design process of reconfigurable architectures. Both
projects relate to cryptographic topics, as security hardware is an important
research area at our institute. Students implement the following algorithms:
2. The Meyer hash function, which ensures data integrity [MATYAS 1985].
6. ASSESSMENT
The assessment for our course can be described both as formative and
summative, according to Biggs [Biggs2007]. In the formative assessment, which
is usually applied in the lab, students perform the design assignments described
above to deepen the functioning knowledge. In the lab, students have the
possibility to ask questions and get feedback about their design and the results
reached. Lab assignments are not graded. In this way, we intend that students feel
relaxed in accomplishing the assignments, which is essential for success. The
summative assessment is performed at the end of the semester in form of a
written exam, which takes 90 minutes. In this exam we assess the students to see
whether and how well they acquired the intended functioning and declarative
knowledge. Apparently, the functioning knowledge cannot be assessed
thoroughly in such a short exam. Instead, representative assignments with focus
on essential design aspects are set. We make clear that such assignments are not
evaluated strictly regarding syntax. In real life, advanced editors and compiler
messages assist designers and make learning syntax by rote less necessary. We
expect, for instance, that students declare an array of standard logic vector to
model a memory behavior, which leads to inferring a block RAM by synthesis
program. Forgetting a semi-colon during that or writing stad_logic instead of
std_logic is tolerated. Besides functioning knowledge, the written exam assesses
the declarative knowledge. For this purpose we try to cover as many topics as
possible to prevent chance governing whether a student is successful or not.
Covering several topics in short exam is well done by asking short questions and
false-right or “missing-word” assignments.
As a rule, we present the solution of all assignments and discuss the grading of
each task directly after the exam, usually in the same exam room. This has
several advantages. Students feel relieved, as they can estimate how many points
they will achieve and they do not need to have sleepless nights waiting for their
result. Students perceive the solution presentation as a signal of respect for their
effort, especially as they have the chance to comment on the presented solution
and discuss other alternatives, which may not have crossed our mind. By this
means, we get feedback from students which we consider during evaluating the
exam. Another advantage is that most students know what they wrote, what the
right solutions are, and how many points they will expect. Thus, they ask for an
insight into their exam only if the result does not correspond to this expectation.
This saves their and our time.
In 2007 the exam was written by 25 students and passed by 20 of them, which
corresponds to the general experience with this course. However, the assessment
success rate is not the only signal for achieving the intended learning outcomes.
Rather, a relatively high number of course attendees ask us later to do master and
diploma theses in the field of reconfigurable processors. We can observe that
most those students work on their theses with high interest and independence.
Five running or nearly-completed theses, for example, deal with the design and
implementation of crypto processors for post quantum computer cryptography on
Virtex-5. This research work is being funded by the German Federal Office for
Information Security. Two milestones of this project were already completed
with high success due to the involvement of students, who all learned
reconfigurable design in our course sometime before.
7. COURSE EVALUATION
The Technische Universität Darmstadt has a high-school didactics center
(HDA) for quality assurance in teaching. To assess courses technically and
didactically, the HDA distributes forms which are anonymously filled in by
students. The forms are then evaluated and the results are made available for each
instructor for her or his own courses together with the average of other courses in
the same department and semester. The evaluation form contains various
questions relating to the lecture and the exercise. Each question can be graded by
1 for the best case and 5 for the worst case. For brevity, Table IV shows the
percentage of students, who gave best grade (i.e., 1) for the course
“Reconfigurable Processors” (Column 2). Column 3 shows the average
percentage for all other courses in the department of computer science. The
course was attended by about 25 students, whereas only 19 students filled in the
forms. The relatively lower grades regarding motivation in our course (questions
10 and 17) are very likely because of selecting many case studies and lab
exercises from the field of cryptography. In spite of their sophistication,
cryptographic algorithms do not provide sufficient motivation, apparently. This is
attributed to the fact that a cipher text does have any meaning for a designer.
Therefore, we are planning to update the lab exercises by introducing further,
more interesting topics from the field of DSP or video and audio processing.
It is worth mentioning that the course was named the best course in the winter
semester 2007/2008 by the student council, which represents student interests in
the department of computer science.
8. CONCLUSION
We presented a course on reconfigurable processors suitable for students of
computer science. In contrast to courses on digital system design, which use
FPGAs as a case platform, our course placed this platform in the center of focus
and highlights its features as a basis for reconfigurable computing. Both
declarative knowledge and functioning knowledge are considered while defining
learning outcomes based on a novel WWH-Model. Lab activities were
designated to deepen the functioning knowledge with tutor feedback. The written
exam is aligned to learning outcomes and shows that most students acquired the
intended outcomes. Relatively high numbers of students are motivated by this
course to do their theses on topics relating to reconfigurable processors.
REFERENCES
ACM. Transactions on Reconfigurable Technology and Systems.
http://trets.cse.sc.edu/index.html
ASHENDEN, P. 2002. The Designers Guide to VHDL. Morgan Kaufmann ,San Diego, CA.
BAILEY, B., MARTIN, G., AND PIZIALI, A. 2007. ESL Design AND Verification. Morgan Kaufmann, San
Francisco, CA.
B)GGS, J., AND TANG, C. , Teaching for Quality Learning at University. th Edition, McGraw‐(ill
Education, New York, USA.
ECTS: European Credit Transfer and Accumulation System, 2009. ECTS Users’ Guide. Available online at:
http://ec.europa.eu/education/lifelong-learning-policy/doc/ects/guide_en.pdf
GEREZ, S. H. 2005. Algorithms for VLSI Design Automation. John Wiley & Sons Ltd, West Sussex, England.
(reprint with corrections)
GUILLERMO, A.V., PARRA J., KIEF C., PATTICHIS, M., AND POLLARD, H. 2006. Integrating
Reconfigurable Logic in the First Digital Logic Course. In Proceedings of 9th International Conference on
Engineering Education. San Juan, Puerto Ricos, July 2006, T1A1-T1A7.
HALL, T.S., AND HAMBLEN, J.O. 2006. Using FPGAs to Simulate and Implement Digital Design Systems
in the Classroom. In Proceedings of 2000 American Society for Engineering Education Southeastern Setion
Annual Meeting. Tuscaloosa, AL, April 2006.
HAUCK, A., AND DEHON, A. 2007. Reconfigurable Computing. Morgan Kaufmann, Burlington, MA.
IEEE, ACM.Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering, 2004.
http://www.eng.auburn.edu/ece/CCCE/CCCE-FinalReport-2004Dec12.pdf
IHT. http://www.iht.tu-darmstadt.de/
Intel Corporation 2008. Enabling Consistent Platform-Level Services for Tightly Coupled Accelerators. White
paper 2008. Available on-line at: http://download.intel.com/technology/platforms/quickassist/quickassist_aal_
whitepaper.pdf
MATYAS, S., MEYER, C., AND OSEAS 1985. Generating Strong One-Way Functions with Cryptographic
Algorithm. IBM Disclosure Bulletin, 27 (10A): 5658-5659, March 1985.
NIST 2001. U.S. Federal Information Processing Standard. Publication 197. Advanced Encryption Standard
(AES), November 2001.
SHOUFAN, A., LAUE, R., AND HUSS, S. 2007. High-Flexibility Rekeying Processor for Key Management in
Secure Multicast. In Proceedings of IEEE International Symposium on Embedded Computing SEC-07. Niagra
Falls, Canada, May, 2007
SKLYAROV, V., AND SKLIAROVA, I. 2005. Teaching Reconfigurable Systems: Methods, Tools, Tutorials,
and Projects. IEEE Transactions on Education, Vol. 48, NO. 2, May 2005, 290-300.
SMITH, M. J. S. 1997. Application-Specific Integrated Circuits. Addison Wesley.
STANLEY, T.D., XUAN, T.Q., FIFE, L., AND OLTON, D. 2007. Simple Eight Bit, Emulated Computers for
Illustrating Computer Architecture Concepts and Providing a Starting Point for Student Designs. In Proceedings
of 9th Australasian Computing Education Conference. Ballarat, Victoria, Australia, January, 2007.
TANENBAUM, A. S., AND GOODMAN, J. 2001. Computerarchitektur. Prentice Hall, Munich, Germany. (in
German).
TEUSCHER, C., HAENNI, J.O., GOMEZ, F.J., RESTREPO, H.F., AND SANCHEZ, E. 1999.A Tool for
Teaching and Research on Computer Architecture and Reconfigurable Systems. In Proceedings of 25th
Euromicro Conference. Milant, Italy, September, 1999.
TORRESON, J., NORENDAL, J., AND Glette, K. 2007. Establishing a New Course in Reconfigurable Logic
System Design. In Proceedings of 10th IEEE Workshop on Design and Diagnostics of Electronic Circuits and
Systems, Krakow, Poland, April 2007, IEEE, 1-4.
TREDENICK, H.L. 2003. The Inevitability of Reconfigurable Systems. ACM Queue, Vol. 1, No. 7, 2003, 21-
38.