
Explore the foundations of computer design from logic gates to memory, and learn to design a programmable computer capable of addition, subtraction, and memory storage.
Explore how electricity encodes numbers, letters, and symbols through on/off wire states, building binary representations from zero to seven with three switches.
Explore why binary numbers use only 0 and 1, and how counting, carrying to the next column, and bit representations enable computing with on and off states.
Explore how binary numbers translate to familiar decimal values by doubling each binary column, comparing base-2 and base-10 systems, and converting large figures through stepwise bit positions.
Learn how hexadecimal base 16 simplifies reading and writing binary numbers by grouping bits into chunks and using digits 0-9 and A-F, enabling easy conversion between binary and hexadecimal.
Explore octal as a base-8 numbering system with symbols 0 through 7, group binary digits in threes for octal conversion, and relate binary to octal and hexadecimal.
Explore how binary addition works by carrying bits, comparing decimal and binary methods, and converting sums such as 8+9 and 19+93 to their binary representations.
Learn how binary represents negative numbers by flipping all the bits and adding one. See how the first bit determines whether the value is negative or positive.
Explore how negative numbers behave in binary addition and subtraction, showing carries, sign extension, and the idea of infinite ones, with a preview of a future circuit diagram.
Explore binary and hexadecimal numbers, perform binary addition and subtraction, and build a circuit that uses electronics to change current output, illustrating how a logic gate inverts or preserves signal.
Learn how the not gate flips its input to opposite output, turning 0 into 1 and 1 into 0, so the output is on when the input is off.
Explore two-input gate behavior and how the output activates only when both inputs A and B have power, illustrating the and gate concept.
The or gate outputs on when either A or B is on. The only time the output is off is when both A and B are off.
demystify the nand gate as the opposite of a gate, where the output stays on unless both a and b are on. combine a not gate to create the nand.
Explore the exclusive or gate, which powers the output only when exactly one of inputs A or B is on; learn how this gate shapes electronic circuit design.
Explore how four input combinations of wires A and B yield sixteen possible output variations, and learn that five primary gates can be combined to design all circuits.
Design a circuit that adds two binary numbers using an exclusive OR for the sum and an AND for the carry, then combine adders to support multi-column addition.
Explore building a circuit that adds bigger numbers by chaining full adders, wiring carry outputs to the next stage, and interpreting sums like 8 plus 9 as 17.
Explore how a full adder underpins the computer cpu by enabling binary addition and subtraction. Learn a simple sine extender that extends the first column for large-number calculations.
Learn how a decoder uses input wires to turn on a single output wire for each input pattern, using not and gates, extending to two or three inputs.
This lecture explains a two-input multiplexer controlled by selector S, passing A or B to the output C by turning one gate on and the other off.
Programmers set a two-bit operation input on programmable multiplexer with a full adder to produce and, or, or sum outputs, with carry in and carry out, scalable to 32-bit processor.
Explains building a 32-bit arithmetic logic unit by wiring multiplexers and inverters to perform and, or, add, subtract, set-on-less-than, with overflow and zero detection.
Examine how a latch stores a bit using cross-coupled nor gates with s and r inputs, preserving q and q not. Beware the indeterminate state when both inputs are active.
Discover how a computer clock alternates between 0 and 1, defines rising and falling edges, and uses the clock period to describe how fast the clock runs.
Learn how a D latch remembers the data when the clock toggles, how a second inverted latch creates a falling-edge flip-flop, and why this design underpins computer memory and registers.
Explore building a cpu register file by combining 32-bit registers, using a decoder and clocked write enable to store data, and employing multiplexers to read two registers simultaneously.
Explore a simple two-by-four RAM memory block that can read, write, and store four two-bit values, controlled by a write enable, a decoder, and latches.
Explore how MIPS assembly performs addition and subtraction using two inputs and one output, with chaining to handle multiple numbers. Note the dollar-sign notation and 32-bit word size.
Learn how to move data from memory into registers using load word, perform arithmetic, and store results back in memory, using base addresses and offsets.
Encode instructions into binary by using opcode, source and destination registers, and function code to form 32-bit MIPS machine words for operations like load word and store word.
Design and understand a simple computer with 32-bit instruction memory, a program counter advancing by four per clock, and an adder that fetches the next 4-byte instruction.
Explain r-type instructions by wiring two read registers and a write register to the Alieu, using six-bit opcode and six-bit function code, and writing results back in one clock cycle.
Examine how memory access uses a sign-extended 32-bit address from a 16-bit instruction, the alu, and multiplexers to drive the register file for loads, stores, and r-type write-back.
Explain conditional branching by testing equality of two registers via the ALU, then selecting the branch target or pc+4; offset is multiplied by four to form a byte address.
Combine the diagram pieces to form a complete computer, decoding 32-bit instructions into rs, rt, and destination fields, and routing inputs via the main control and ALU control.
Explore the ALU control and main control units, mapping opcodes and function fields to ALU inputs, with truth-table design and instruction-specific control signals for load, store, and branch.
Explore how the main control wires instruction bits through multiplexers and data blocks to perform add, subtract, branch, and load-store operations, revealing how MIPS programs run at hardware level.
Learn how a computer works with this basic, but detailed course on the foundations of computer design. In this course you will learn how a computer really works and by the end you will be able to understand the design of a programmable central processing unit. This class is the foundation of a computer science curriculum.
Designing your first computer!
A building block to more advanced computer topics
This course starts from the ground up and completes with a fully functioning programmable computer. Advanced computer design topics such as power or speed optimizations are not covered but all the information needed to understand basic computer design is packed into this course. A total beginner will likely need to repeat a few of the lectures but it can be understood by anyone who takes the time to study each of the lectures. Anyone who desires to become a computer science expert must know how processors really work and this course is the first step towards that goal.