
Explore how digital electronics rely on two states, digital high and digital low, to encode and transmit data using binary one and zero across voltage ranges defined by data sheet.
Explore how digital circuits use binary digits and MSB/LSB to represent data in decimal, binary, and hexadecimal notations. Master decimal-to-binary and binary-to-decimal conversions and interpret MSB and LSB in data.
Explore the arithmetic logic unit (ALU), the computer's math brain, focusing on addition and basic operations built from AND, OR, NOT, and XOR gates, including the Intel 74181.
Explore the full-adder, which takes A, B, and C to produce sum and carry. Build it from two half-adders and an OR gate, then apply to multi-column addition.
Explore how an 8-bit ripple carry adder adds two numbers using half-adders and full adders, highlighting overflow, carry propagation, and the move to carry-lookahead adders for speed.
Explore how random access memory stores data while powered, and compare RAM with persistent memory. Build a one-bit storage circuit and begin forming a memory module for future CPU integration.
Create a memory element by looping back an or gate and an and gate, forming an and-or latch with set and reset inputs to write and read a single bit.
We introduce the central processing unit, show how it executes instructions via the alu and registers, and explain the 16-location 8-bit ram with opcodes and the instruction and address registers.
Execute the fetch–decode–execute cycle to run the program, with the control unit configuring RAM, registers A and B, and the ALU to perform add and store operations.
Discover how high clock speeds and expanding instruction sets create RAM bottlenecks, and how a cache on the CPU reduces data transfer delays to boost performance.
conditional jump instructions affect execution flow, causing stalls; speculative execution and branch prediction help keep pipes full and improve throughput, with superscalar CPUs delivering multiple instructions per cycle.
Examine superscalar processors that fetch and decode multiple instructions, execute in parallel using duplicate ALUs, and extend to multicore designs for parallel instruction streams.
Examine how early tabulating machines used plug boards to pass signals and how swappable boards enabled different programs, leading to memory-based stored programs and the Von Neumann architecture.
Examine how punch card readers load programming data into memory, process stacks of cards, and strip to maintain order, as Sage Air Defense System used 62,500 cards totaling five megabytes.
Panel programming used front-panel switches and indicator lights to enter and monitor memory, as seen with the Altair 8800, highlighting why early programming required hardware knowledge.
Explore how opcodes and memory addresses encode instructions to load data into register A. See an eight-bit instruction where 0010 means load into register A and 1110 designates address 14.
Explore how assemblers translate human-readable assembly language into native machine code, enabling direct hardware interaction, with labels and jump addresses that simplify programming and manage registers and memory.
Explore the evolution of programming languages from COBOL to modern high-level languages, and how compilers enable write once, run anywhere across different machines, lowering barriers to entry.
Welcome to Crash Course Digital Electronics!
CAUTION: If you don't like history, in particular, you are not interested in finding out how the technology has evolved from ancient programming methods to high-level programming languages, or how we scaled from Intel 4004 (first MPU in the world) with a transistor count of just 2300 to modern microprocessors like the M1 microprocessor with a transistor count of a whopping 16 billion, then this course is not for you.
This course was developed to teach not only how the fundamental parts of digital electronics work, but how on earth we have reached to build such amazing things? We are going back all the way to 1839 to the Jacquard machine which is considered as the first programmable mechanical computer that was programmed using punch cards, all the way to modern compilers, programming languages, microprocessors, microcontrollers, and operating systems.
All the tutorials are built using animation techniques to illustrate the concepts and for ease of understanding (I'm not the best animator by far, but I'm trying really hard!).
Your knowledge will be tested! - After finishing a chapter, you will be given a quiz with a plethora of questions (including images and diagrams) you will need to answer. If you get them right, you can be confident that you have understood what I had to say in that chapter.
Overall, what you will learn after finishing this course:
- the basics of digital electronics
- how positive/negative numbers, floating-point numbers, characters are encoded in binary
- how a CPU works by building one from SCRATCH!
- how a program is executed on a CPU
- how to build an external RAM, starting from a 1-bit memory cell and how to scale it up to a bigger one
- the difference between a CPU, a Microprocessor and a Microcontroller
- how a Microprocessor and a Microcontroller work
- the multitude of internal peripherals that can be found inside a modern Microprocessor and a Microcontroller
- how a compiler works, including linker and linker script file
- how to program a microcontroller
- how the different communication protocols work in a microcontroller
- how does an Operating System work and why do we need them
REMEMBER… I'm so confident that you'll love this course that we're offering a FULL money-back guarantee for 30 days! So, it's a complete no-brainer, sign up today with ZERO risk and EVERYTHING to gain.