FPGA BASED INDIVIDUAL COMPUTER ARCHITECTURE LABORATORY EXERCISES
Keywords:Computer Architecture, Microprocessor, FPGA, Laboratory Exercises
Computer Architecture is the study of digital computers towards designing, building and operating digital computers. Digital computers are vital for the modern living because they are essential in providing the intelligences in devices such as self-driving cars and smartphones. Computer Architecture is a core subject for the Electronic (Computer) Engineering course at the Universiti Malaysia Sabah that is compliant to the requirement of the Washington Accord as accredited by the Engineering Accreditation Council of the Board of Engineers of Malaysia (EAC). An FPGA (Field Programmable Gate Array) based Computer Architecture Laboratory had been developed to support the curriculum of this course. FPGA allows a sustainable implementation of laboratory exercises without resorting to poisonous fabrication of microelectronic devices and installation of integrated circuits. An FPGA is just a configurable and therefore reusable digital design component. Two established organisations promoting computer engineering curriculum, ACM and IEEE, encourages the use of FPGA in digital design in their latest recommendation and together with the EAC, emphasises the grasp of the fundamentals for each student. The laboratory exercises are individual exercises where each student is given a unique assignment. A laboratory manual is provided as a guide and project specification for each student but overall the concept of the laboratory exercise is a student-centred one. Each student is allowed to pace their effort to achieve the sessions of the laboratory exercises starting from session one to session ten. A quantitative analysis of the effectiveness of these laboratory sessions is carried out based on the numbers of students completing the laboratory sessions. These sessions start from an 1:FPGA tutorial to implementations of features of a microprocessor of 2:Immediate Load, 3:Immediate Load to Multiple Registers, 4:Addition, 5:Operation Code, 6:Program Memory, 7:Jump, 8:Conditional Jump, 9:Register to Register and 10:Input-Output. The results of three batches of students show that within the time limits of a one credit hour course, students had managed to complete some aspects of the implementation of a simple microprocessor.
ACM and IEEE Computer Society, 2005. Computing Curricula 2005. [Online] Available at: http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf
Ahmad, O., 2014. Implementing a Cpu using Fpga. s.l.:Smashwords.
Association for Computing Machinery (ACM) and IEEE Computer Society, 2016. Computer Engineering Curricula 2016: Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering. [Online] Available at: https://www.computer.org/cms/Computer.org/professional-education/curricula/ComputerEngineeringCurricula2016.pdf
Department of Computing, Imperial College London, 2016. CO332-Advanced Computer Architecture. [Online] Available at: http://www.imperial.ac.uk/computing/current-students/courses/332/ [Accessed 10 Jan 2017].
Feldman, M., 2017. Putting the Rise of Chinese Supercomputing in Perspective. [Online] Available at: https://www.top500.org/news/putting-the-rise-of-chinese-supercomputing-in-perspective/
Institute of Computer Engineering, Austria, 2016. Digital Design and Computer Architecture (WS 2016). [Online] Available at: http://ti.tuwien.ac.at/ecs/teaching/courses/ddca16 [Accessed 10 Jan 2017].
International Engineering Alliance, 2013. Graduate Attributes and Professional Competencies Version 3. [Online] Available at: http://www.ieagreements.org/IEA-Grad-Attr-Prof-Competencies.pdf [Accessed 10 Jan 2017].
Lee, J. H., Lee, S., Yu, H. C. & Suh, T., 2012. Pipelined CPU design with FPGA in teaching computer architecture. IEEE Transactions on Education, August, 55(3), pp. 55(3):341-348.
Li, Y. & Chu, W., 1996. Using FPGA for Computer Architecture/Organization Education. s.l., ACM.
Mano, M. M. & R. Kime, C., 2008. Logic and Computer Design Fundamentals - 4th International Edition. Singapore: Pearson Prentice Hall.
Nelson, V. P. et al., 2004. The Computing Curriculum - Computer Engineering (CCCE) A MODEL FOR COMPUTER ENGINEERING CURRICULA IN THE NEXT DECADE. s.l., Amerian Society for Engineering Education, p. Session 2532.
Nikolic, B., Radivojevic, Z., Djordjevic, J. & Milutinovic, V., 2009. A Survey and Evaluation of Simulators Suitable for Teaching Courses in Computer Architecture and Organization. IEEE TRANSACTIONS ON EDUCATION, NOVEMBER, 52(4), pp. 449-458.
Schoeberl, M., 2016. Computer Architecture Lab. [Online] Available at: https://en.wikiversity.org/wiki/Computer_Architecture_Lab [Accessed 10 January 2017].