A Basic Processor for Teaching
Digital Circuits and Systems Design with FPGA
Maicon Carlos Pereira, Paulo Viniccius Viera, André Luis Alice Raabe and Cesar Albenes Zeferino
Master Program on Applied Computer Science
University of Vale do Itajaí, UNIVALI
Itajaí, BRAZIL
{maicon, pauloviniccius, raabe, zeferino}@univali.br
Abstract—Design of digital circuits and systems are topics
covered in undergraduate courses on Computer Science,
Computer Engineering, and Electrical Engineering. Simple
processor architectures are used as example of digital systems to
apply and integrate the concepts studied in these courses. In this
paper, we discuss the use of a simple processor named BIP (Basic
Instruction-set Processor) in courses on digital circuits and
systems design. BIP is distinguished from similar processors
because it was developed by applying a multidisciplinary
approach in order to allow its use in introductory courses on
computer programming and in several other courses in the
Computer Science area.
Keywords-FPGA in education; digital circuits; digital systems;
computer programming
I. INTRODUCTION
The design of digital circuits and systems is typically
studied in undergraduate courses on Computer Science,
Computer Engineering and Electrical Engineering.
Courses about digital circuits design cover concepts on data
representation, number systems, Boolean algebra,
combinational and sequential circuits, memories and
technologies for Integrated Circuits (ICs). In courses on digital
systems design, these concepts are applied on the design of
datapaths, control units, general-purpose and special-purpose
processors, by applying design methodologies and
technologies, like Register-Transfer Level (RTL) design,
Hardware Description Languages (HDLs) and Field
Programmable Gate Arrays (FPGAs).
Many books on digital circuits and systems design (as well
on computer architecture and organization) use simple general-
purpose processors as example of digital systems to apply and
integrate the concepts covered along the text. Some of them
include SAP (Simple-As-Possible) computer [1] and MARIE
(Machine Architecture that is Really Intuitive and Easy) [2].
These simple processors are useful because they make easier
the learning by the students, and are easily implemented by
using current technologies and design methodologies and tools.
In this paper, we describe another simple processor
architecture that, at the first view, has no major difference with
other processors described in the literature. However, it is
distinguished from the other processors because it was
designed by using an interdisciplinary approach. This
processor, named BIP (Basic Instruction-set Processor), was
specified by a team of professors that work with courses on
“Introductory Programming”, “Digital Circuits”, “Digital
Systems”, “Computer Architecture and Organization”, and
“Compilers Design”. All these disciplines of Computer Science
were taken into account at the moment of specifying a family
of processors with an incremental architecture that could be
used in the first weeks of an undergraduate course on
Computer Science. Also, we considered its use on advanced
courses as a first example of processor architecture and
organization, or as an alternative for assembly code generation.
In the digital circuits and systems domain, BIP has shown
to be a didactic example of processor. After learning the major
concepts on digital circuits, technologies, and design
methodologies and tools, any student can easily learn the BIP
architecture, design its organization, describe it with any HDL
(or with a schematic entry tool) and synthesize it in an FPGA.
In the next sections, we firstly present an overview about
the specification process of BIP (Section II). After that, in
Section III, we describe the architecture and the organization of
the first two BIP models (BIP I and BIP II). Following, we
discuss issues regarding the use of BIP in courses on digital
circuit and systems design (Section IV). Finally, we present our
conclusions in Section V.
II. THE INTERDISCIPLINARY APPROACH TO SPECIFY BIP
A. Motivation
The major motivation for the developing of BIP, was the
observation that many undergraduate students in introductory
programming had difficult to understand some important
concepts. This problem is also discussed in the literature.
Khalife [3], for instance, consider that students in their initial
studies on computer programming have difficult to develop a
proper mental model to capture the internal structure of
computers, what makes harder the Teaching and Learning
process. Other authors also consider that such students still
have not the necessary logic and formal reasoning to
understand the high level of abstraction involved in the
programming of computers [4-5]. Furthermore, as we had
observed, hypothetical computer models used to illustrate some
concepts are too abstract, and do not help the students in
understanding some underlying concepts of computer
programming.
978-1-4673-0186-2/12/$31.00 ©2012 IEEE