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