Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

Implementing a Cpu using Fpga
Implementing a Cpu using Fpga
Implementing a Cpu using Fpga
Ebook120 pages1 hour

Implementing a Cpu using Fpga

Rating: 0 out of 5 stars

()

Read preview

About this ebook

This book is a practical guide to designing a CPU using Altera Quartus II software which is free. Readers need the Terasic DE2 or DE2-115 in order to accomplish the assignments given in the laboratory work sheets. The concept is not the same as normal manufacturers' tutorial which is completely guided. Only reference circuit diagrams are provided but only at the later stages. The design assignment starts at implementing an immediate load instruction. It is based on Mano's RISC architecture but unlike Mano's book, jump and conditional jumps reference circuits are provided as guidance. Each reader should be able to adapt the questions to design various versions of the CPU. The questions are actually directed at students, not individual readers but individuals and hobbyists should be able to use these work sheets. The experiments in the work sheets had been tested on Computer Engineering Students at Universiti Malaysia Sabah. The book consists of chapters of complete laboratory worksheets, assignments and a Bison assembler source-code. Lecturers can use these course-works as references in designing a practical course on designing a microprocessor. The author who was the instructor, inserts comments in strategic places in the worksheets.

LanguageEnglish
PublisherOthman Ahmad
Release dateJan 21, 2014
ISBN9781311908117
Implementing a Cpu using Fpga
Author

Othman Ahmad

Othman bin Ahmad is a professional engineer registered with the Malaysian Board of Engineers. He graduated with BSc First Class Honours in Electronic Engineering at City University, London in 1981 taking various modules which included Computer Engineering. Later in 1986, he completed his MSc in Information Technology where he finished various assignments which included two integrated circuit designs and a compiler. He worked as a Telecommunication Engineer at Telekom Malaysia Berhad, from 1981 to 2009 with breaks to complete his MSc and study leave at Nanyang Technological University from 1990 to 1993 where he also worked as a lecturer teaching Assembler and Loader. His main research as well as registered PhD topic was Computer Architecture. From 2009 he worked as a Senior Lecturer at University Malaysia Sabah for the Computer Engineering Department teaching Computer Architecture. Retiring from UMS in 2021 as an Associate Professor in the renamed Electronic Engineering(Computer) program.His was awarded the ASDK by the State Government of Sabah for contribution to Sabah. He had completed many Telecommunication projects which include solar powered rural communication, and transfered to all the various engineering departments. He had published conference papers and journals which include indexed publishers. He has self published only in eBooks at both Smashwords and Apple Books using research materials that include his own papers either published by other publishers or not.He has filed 6 patents at UKIPO, USPTO and MYIPO, with a few of them granted with titles such as Zero Energy Transportation System, Zero Aerodynamic Drag Vehicles, An Optimum Hybrid Vehicle, Optimum Collision Damage Reduction System, Imperfect Perpetual Motion Heat Engine and Simplest Word-size Scalable Processor. Despite their controversial topics Zero Aerodynamic Drag Vehicles and Imperfect Perpetual Motion Heat Engine were granted by UKIPO. None had been granted b USPTO but the reasons for rejection are just absurd so need to proceed to the Supreme Court of the USA to get approval.He is active in self publishing in eBooks such as Smashwords and Blogs. eBooks allow more structured and thorough reading but Blogs and discussion groups allow instant backup of articles and views on certain topics which had come handy for inclusion in the eBooks.The author may seem to cover a very wide topics but they were actually part of his expertise and hobby. Road Traffic enginneering is just an adaptation of Telecommunication Engineering and research results were actually published in conferences. Mechanical Engineering topics were just basic physics subjects that are part of the basic course in an Engineering Course and so are Management Courses, which should include an understanding of economics.

Read more from Othman Ahmad

Related to Implementing a Cpu using Fpga

Related ebooks

Electrical Engineering & Electronics For You

View More

Related articles

Reviews for Implementing a Cpu using Fpga

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    Implementing a Cpu using Fpga - Othman Ahmad

    Preface

    The objective of this book is to allow students to learn how to implement microprocessors themselves. The best way is by using laboratory sessions. There are already many books on methods on how to design microprocessors but very few show methods on how to design the simplest microprocessors possible with the least cost.

    This eBook is actually the Laboratory instruction sheets that are used by the students at the Universiti Malaysia Sabah doing Computer Engineering Bachelor of Engineering with Honours degree. These students are at the third year of a 4 year course when they start taking a course on Computer Architecture subject with the course code KS31904.

    In the first semester of the 2013-2014 academic sessions, for the first time, a laboratory course work is included in the syllabus of the Computer Architecture subject. When I first started teaching the subject in 2009, I notice that many students have difficulty in understanding the fundamentals of computer design. I postulated this as due to the lack of any practical work on designing microprocessors even for students who major in Computer Engineering.

    This is in contrast to my experience as a student of Electronic Engineering at City University, London graduating in 1981. City University was one of the few Universities that offer courses in Computer Engineering. Students who major in Computer Engineering are taking extra courses in software such as operating systems but share many courses together with us, the Electronic Engineering students.

    Despite majoring in Electronic Engineering, we are offered elective courses in Computer Engineering, one of which is the subject called Computer Engineering which I took. I was fascinated by the subject but was not particularly keen to specialise in Computer Engineering because of the perceived lack of jobs in industry at that time.

    Probably because of the strong Computer Engineering background of City University in 1981, I was well versed in Computer Architecture especially with the basic designs. It could also be due to one of my laboratory sessions with bit-slice computers. In that laboratory session, I still remember vividly, playing with functional units of adders. That experience convince me that some methods of giving hands-on experience with the fundamental low level designs of computers is very important.

    It is not sufficient to just experience higher level aspects of Computer Engineering in order to really master the art of computing. No matter how much exposure you have on the higher levels of a computer, it will never be the same as knowing the simplest circuits that make up a computer.

    It should not be too difficult to know the low level circuits because they are just registers and arithmetic units. It is the way they are connected that allows them to be able to solve the most complex problems that we may encounter.

    Despite my reluctance to engage in Computer Engineering profession, I cannot avoid using computers. It is such as essential tool that everything depends on the computer for the proper functioning and efficiency of the devices that I have come across. This is not surprising when a computer is the brain of any device.

    There are actually alternatives to Digital Electronic Computers. We can use electronic logic circuits to solve any computing problem. Digital Electronic Computers are not even particularly fast or efficient at solving computing problems. Analogue computers are even faster but analogue computers are not so precise or accurate. Logic circuits are fast and accurate but very hard to port their designs to other devices. FPGA is an exception but FPGA is still not as easy and flexible as computer programs in portability across devices and ease of program development.

    While we are still waiting for the appearance of the High Level Language compilers with the power of the C language for FPGA to become more widely available and cost effective, we are still stuck with Digital Electronic Computers as the most widely used option in solving computing problems that pervades our daily living from social networking to business transactions.

    The applications of Digital Electronic Computers are no longer limited to numeric computations but also involve transferring data among devices. Transferring data is actually implemented easily in a microprocessor because it is just a move instruction.

    Therefore, it is sufficient for students to master the move instructions in computers instead of the complex arithmetic functions that are best designed using logic gates. For an understanding of computer design, an implementation of a move instruction should be sufficient in order to provide the basic understanding of the inner aspects of implementing a microprocessor.

    Current microprocessors appear complex because they are bogged down with so many instructions. Students are stuck with trying to understand the large number of possibilities that a computer is capable of doing while not really understanding the fundamentals of a computer design.

    Enjoying the preview?
    Page 1 of 1