Creating Soft-Core MIPS Processor Using Step-By-Step Components’ Integration Approach
Total Page:16
File Type:pdf, Size:1020Kb
International Journal of Information and Education Technology, Vol. 1, No. 5, December 2011 A Processor Design Course Project: Creating Soft-Core MIPS Processor Using Step-by-Step Components’ Integration Approach Ali Elkateeb will then integrate these components in designing their Abstract—Design and implementation of a soft-core MIPS processor for the final course project. Such design approach processor using field-programmable gate array (FPGA) will aid students in gradually gaining experience in processor technology will be addressed in this paper. Teaching processor design. architecture and design is considered the key element of the Student learning of top-down and bottom-up design student learning in the undergraduate Computer Engineering program; as such, this project was developed to enrich students’ methodologies, in addition to the structural, behavioral, and experience in this field. This paper presents a practical mixed modeling using hardware description language (HDL), introduction to soft-core processor design through the use of are essential to achieve processor design and development step-by-step integrating of the processor’s components. successfully. These design methods and HDL modeling Students implemented their processors using Xilinx ISE design constitute the core of the teaching materials for processor tools and downloaded their designs to Xilinx ML 501 FPGA design where students will not only streamline the design but boards, which used Xilinx Virtex 5 chips. A designed and developed soft-core processor provided students with a starting also shorten the processor implementation time [3], [4]. For point for applying their designed processors in follow-up example, using the VHDL structural and behavior modeling courses such as Embedded Systems and Senior Design Project. are required for learning bottom-up and top-down design Students’ assessment of the soft-core processor design was methodology. Also, learning mixed modeling is important to analyzed, which indicated that they are confident in confronting connect and integrate all processor’s components to achieve the next step of constructing advanced processor architecture. the final design. Index Terms—MIPS processor, field-programmable gate The use of reconfigurable technology such as the field array (FPGA), Xilinx design tools, VHDL. programmable gate array (FPGA) has become very effective and suitable for teaching processor design. Students can implement their design on the FPGA chip; if the processor I. INTRODUCTION fails to function according to the design specifications, Teaching processor design is considered the key element students have the option to modify their designs. In addition, in student learning for the undergraduate computer students can take advantage of the FPGA technology feature engineering program. It is essential that students obtain of providing fast design updates in which they can reprogram strong knowledge in processor architecture concepts, design their designs until they become satisfied with the design methodology, design tools, and technology during their outcomes. processor design course. Using the design tools such as ISE from Xilinx will help The concepts of complex instruction set computer (CISC) students simulate and verify their design functionality and and reduced instruction set computer (RISC) have been performance before implementing their final processor. Also, taught in the processor design course for many years. the design tools can be used to produce the design’s However, the design simplicity feature of the RISC-based downloadable file, also called ‘bit’ file, that can be processors, specifically MIPS architecture, makes such downloaded to program the FPGA chip. Furthermore, architecture very attractive in teaching processor design exposing students to the use of logic analyzers devices will courses at the undergraduate level [1]. be useful for design testing and debugging. The processor design approach using components The processor design approach using components integration can serve as a model for teaching processor integration will help students to integrate the processor design and development [2]. In this approach, the processor’s components in a step by step manner until they completed components that students designed, simulated, and tested their final processor design. MIPS non-pipelining processor during the processor design course will be used in their final designs. Students’ perception of using the step by step processor design project course. For example, students can approach in developing their final processors and using the start their course with developing the processor’s FPGA board for their design implementations will be components such as arithmetic logic unit (ALU), register file obtained during the end of the term course. (RF), control unit (CU), and program counter (PC). Students This paper is organized as follows: in Section II we examine previous work related to teaching processor design. The course structure and teaching methodology will be Manuscript received November 8, 2011; revised December 25, 2011. discussed in Section III. In Section IV, the laboratory A. Elkateeb is with the Department of Electrical and Computer Engineering at University of Michigan, Dearborn, USA (e-mail: assignments will be discussed, while the details of step [email protected]). 432 International Journal of Information and Education Technology, Vol. 1, No. 5, December 2011 bystep development of the soft-core MIPS processor will be FPGA boards) and exposes students to the use of logic presented in Section V. Students’ feedback is addressed in analyzed devices in design testing. Section VI. The paper is concluded in Section VII. III. COURSE STRUCTURE AND TEACHING METHODOLOGY ECE 475 is the processor design course that must be taken II. PREVIOUS WORK by all senior computer engineering students at University of Typically, all computer engineering undergraduate Michigan-Dearborn. The course materials include teaching programs offer one or more courses on computer architecture students the theoretical aspects of the MIPS computer and design. However, the teaching depth of these courses architecture in addition to the hardware description language, materials is varied from one university to the other. While specifically VHDL. All students attending ECE 475 course some universities are focused on the theoretical concepts of have already learned the basic concepts of computer processor design, other universities cover all the key organization during their computer organization course (ECE elements required for teaching processor design that are 375), which is the prerequisite course for ECE 475. Also, the mentioned in the previous section [5]-[8]. ECE 375 course provides students with hands-on experience The flexibility and reprogramming capability of the field in using ISE Xilinx FPGA design tools and specifically the schematic capture. programmable gate array (FPGA) has made such technology The ECE 475L is a laboratory section of the ECE 475 widely used in academic environments for teaching processor design course, where students are introduced to processors design. Students can download their designs on VHDL design flow using Xilinx ISE design tools, and learn the same FPGA chip numerous times until they are assured processor design implementations and testing using the that their designs are operating according to the FPGA technology where students use ML501 Virtex 5 FPGA specifications. Hence, students can gain the essential boards in their laboratory work. Also, students learn the use hands-on-experience on designing, implementing, testing, of the logic analyzed device in testing their designs. and debugging processors using actual FPGA-based Students learn, during their first three weeks of the ECE hardware [9]. 475L laboratory section, the VHDL design flow, using logic The students’ knowledge on HDL languages, such as analyzer device, and implementing a simple VHDL code VHDL and Verilog HDL, is an essential requirement to learn using ML 501 Virtex 5 FPGA boards. The instructor processor design [10]. However, insufficient training in HDL conducts demonstrations to help students learn logic analyzer for undergraduate students was reported in many U.S. and the ML501 board. These demonstrations are essential to Universities [11]. To cope with this problem, instructors need accelerate student learning and refresh students’ memory to provide more intensive HDL learning techniques within with using ISE and schematic capture design tools which was the processor design course timeframe. This task has been taught in the previous computer organization course ECE achieved through the systematic use of auxiliary materials, 375. During this period, students learn the VHDL structural such as processor components’ templates, tutorials, and a modeling at their ECE 475 course. We believe that start library of design templates that are synthesized with teaching VHDL language with VHDL structural modeling industrial standard programmable design tools such as Xilinx will provide students with smooth transition from what they ISE [12]. learned at ECE 375 of schematic capture to VHDL design The availability of the inexpensive FPGA boards, low-cost using structural modeling at ECE 475 course. For instance, PC-based logic analyzers, and free FPGA design tools have students work on design and developing MIPS Arithmetic made processor design affordable as well as easily and Logic Unit (ALU) that supports few simple