If you want to know how a computer works then this course is for you. I work through the design of a simple CPU (Central Processing Unit) which is the beating heart of a modern computer. I design and simulate each block of the CPU in an online tool called Logisim. You can download the tool and simulate the CPU on your own computer or if you like you can take a copy of my simulation files and just load them into the tool and simulate what you have learned in the videos or just listen along to the videos (it's up to you).
If you want to know how a computer works then this course is for you. I work through the design of a simple CPU (Central Processing Unit) which is the beating heart of a modern computer. I design and simulate each block of the CPU in an online tool called Logisim. You can download the tool and simulate the CPU on your own computer or if you like you can take a copy of my simulation files and just load them into the tool and simulate what you have learned in the videos or just listen along to the videos (it's up to you).
I have added subtitles for 78 different languages. If your language is not there then get in touch and I will add it in. If you are not a native English speaker then try the subtitles and run the videos at 0.75x speed.
First we download the free design tool called LOGISIM in which we design and simulate our CPU and take a look around the tool and show you how it works. Then the fun begins. We design and simulate the following blocks
Simple logic gates
1 bit memory cell
8 bit memory cell
8 bit register
Decoder
RAM (Random Access Memory)
ALU (Arithmetic Logic Unit)
Clock
We then take a break from our hard work (pheeewww. ) and ask the question , ' Can a computer answer the question of Life the Universe and Everything ? ' We look at some of the ideas behind what a computer is and what it can and more importantly cannot do . We answer this question in the next two videos.
Algorithms
Turing Machines
After this little break we then get back to designing our CPU. We design and simulate the most difficult section called the Control Unit. This is where the MAGIC happens and you will get that amazing EUREKA moment when you can say, '. ' In this section we build up the This Once you get to this point you will know and you will be home and dry . )
We then model the CPU using Excel VBA and from this build an This will help us write our Finally we are in a position to load the CPU up with our first assembly language program. An algorithm that multiplies 2 numbers together (might not sound like much but you can then design your own algorithms and simulate them on YOUR OWN CPU).
We then look at the Top Level Simulation. We load up the CPU RAM (memory) with our first program and watch it running through the program live right in front of our eyes. You can let it execute the code quickly or you can step through a 0 and a 1 at a time and see every little detail of what is happening inside the CPU that YOU have just designed .
Also keep a look out in the bonus section for extra material that I will be periodically adding. I expand the CPU from 8 bits to 16 bits , create some more assembly language algorithms that run on the CPU and explain in detail the VBA code from the assembler and debugger (
This course follows the CPU design in the book ButHowDoItKnow (The Basic Principles of Computers for Everyone). You do not need to buy the book to follow the course but I would highly recommend the book.
.
Welcome to the course. To get started right away you can download the circuit design tool LOGISIM from the resource link. You will need to have java running on your machine as well so click the java link to download this. The third link will give you access to 3 files, we only need one at the moment the CPU_DESIGN file. If you open this file in LOGISIM then you will see the WELCOME screen. Just click on the CPU_MEM_1 block to start simulating your first circuit. Or just start building your own copy in LOGISIM along with the videos. Note the other 2 files called ASSEMBLER and MULTIPLYSIM will be used at the end of the video series. I have also added 9 simulation files that I used to build up the control section if you want to re-create these simulations (the links are in the resources of the control section videos. HAVE FUN !!!
A couple of students say they couldn't download the files in the resources section so I have added the extra zip file so if you have any difficulties then try downloading from downloadable materials or External Resources.
In this video we take a look at the software tool that we will be using throught the rest of the course. Logisim is a free tool which can be downloaded from the following address http://www.cburch.com/logisim/download.html just press the download link on bullet point 2. New course video.
In this video we look at building AND , OR ,NOT, XOR ,NOR gates using the NAND gate. This is an easy introduction to get you used to using the simulation tool. New course video.
A look ahead at what we will build over the next 10 video lectures. This video will give you a road map to what we will learn in the next 10 videos. New course video.
In this video we build up a 1 bit memory cell. New course video.
In this video we take the 1 bit memory cell and expand it to a 1 byte memory cell. New course video.
In this video we take the 8 bit memory cell and produce a single 8 bit register.New course video.
In this video we build up the decoder block. Don't worry if you don't know what this is as it is all explained in the video.New course video.
An automated method of designing combinational logic circuits in Logisim.
In this video I describe the control buffer which is used throughout the rest of the CPU design. This is also known as a unity gain buffer.
In this video we build up the 256 byte RAM. New course video.
In this video we build up the Arithmetic Logic Unit. New course video.
In this video we design the clock circuit. New course video.
In this video we start bringing some of our blocks together and have an overview of the final design in order to see our road map ahead. New course video.
Over the next 2 videos we look at what an algorithm is and what it can and more important cannot do for you. If you are not interested in the mathematics then just skip the next 2 videos and move right onto the CONTROL SECTION. New course video.
We continue our mathematical look at computers with the idea of a Turing Machine. I have used the book ' The Emperors New Mind ' by Roger Penrose chapter 2 in order to produce this video. If you are interested in the content of this video then I would recommend reading this.New course video.
In this video we start building up the most complicated section of our cpu the Control Section. We start by adding 2 numbers. New course video.
In this video we will take a look at the stepper that is used in the control section.
In this video we look at the fetch execute cycle that is at the heart of every cpu. New course video.
In this video we look at the ALU instruction within the control unit. New course video.
In this video we look at the Load and Store instructions within the control unit. New course video.
In this video we look at the data instruction within the control unit. New course video.
In this video we look at the Jump Register instruction within the control unit. New course video.
In this video we look at the jump address instruction within the control unit. New course video.
In this video we look at the jump if instruction within the control unit.
In this video we look at the clear flags instruction. New course video.
In this video we look at a simple assembler for the cpu built in microsoft excel. You can download the assembler for excel from the link below. Make sure you ENABLE MACROS in excel for it to work. Also it asks for a path to save the file to , for example 'C:\Users\Ross\Desktop' , this is the path to my desktop but you can change this to suit yourself. Good luck.
In this video we design our first assembly language program. New course video.
I this video we look at a model of the CPU in Excel VBA and see how this allows us to create an Assembly Language Debugger. SEE THE UPDATED VERSION IN THE RESOURCES SECTION.
In this video we complete the control section then build up the CPU using all the blocks that we have designed so far.
In this video we provide a method to reset the CPU so at initialisation all the registers and address locations contain zeros.
We need an automated method for loading a program into the CPU.
A final simulation at the top level multiplying 2 numbers together.
Goodbye and some suggestions for further study.
Here is one suggestion to improve the running of the CPU.
In this video I go into detail as to how I wrote the Assembly Language Debugger.
In this video I show how to use the debugger in Excel to write the assembly language code for the Fibonacci series and then simulate the assembly language code in the CPU.
In this video we look at extending the 8 bit design to a 16 bit design.
It's been a while since I first put this course on Udemy. It's about time I did something useful with this CPU. This is a taster of for the next course DESIGN A CPU (SUPERCHARGED) where we design a calculator using our CPU. I will update this section with my progress and let you know when the new course will be available. I will also leave my new designs in the resources section if you want to have a play.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.