Skip to content
LAM
Read Home Blog
Make Projects HTML Tools Games
Touch grass Notes Resume Links
Home Blog HTML Projects
Tools Games Notes Resume Links
Back EEE120: Digital Design Fundamentals Programming
Download Open
Show description 2,184 chars · Programming

EEE120: Digital Design Fundamentals

EEE120: Digital Design Fundamentals


















EEE120 Course



Core Topics
Labs & Simulation
Outcomes














Master Digital Design Fundamentals



An interactive guide to the foundational building blocks of digital hardware, logic circuits, and modern computing. Welcome to EEE120.









Core Topics Covered












Logic Signals & Gates

The basic building blocks of all digital systems.








Digital systems operate on discrete signals. A logic signal represents one of two states: HIGH (1) or LOW (0). Logic gates are electronic circuits that perform a logical operation on one or more of these signals to produce a single output signal.



Common Logic Gates



AND Gate: Output is HIGH only if all inputs are HIGH.





OR Gate: Output is HIGH if any input is HIGH.





NOT Gate (Inverter): Output is the opposite of the input.









Glossary of Terms


Truth Table: A table listing all possible combinations of inputs and their corresponding output for a logic gate or circuit.

Boolean Expression: An algebraic expression representing the function of a logic circuit (e.g., F = A AND B).

Logic Level: The voltage level used to represent a binary 1 (HIGH) or 0 (LOW).
















Number Systems & Arithmetic

How computers represent and manipulate numbers.








Computers use the binary (base-2) system. For human convenience, we often use octal (base-8) and hexadecimal (base-16) as a shorthand for long binary numbers.



Number System Conversion


Decimal
Binary
Hexadecimal



0
0000
0


1
0001
1


...
...
...


9
1001
9


10
1010
A


15
1111
F




Two's Complement: The standard method for representing negative integers in binary. To find the two's complement of a number, you invert all the bits and add 1.



Glossary of Terms


Bit: A single binary digit (0 or 1).

Byte: A group of 8 bits.

Radix: The base of a number system (e.g., 2 for binary, 10 for decimal).



















Labs & Simulation

Theory meets practice. Our hands-on approach ensures you can build what you learn.…

EEE120: Digital Design Fundamentals

21,388 bytes · HTML source
<!DOCTYPE html>
<html lang="en" class="scroll-smooth">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>EEE120: Digital Design Fundamentals</title>
    
    <!-- Tailwind CSS -->
    <script src="https://cdn.tailwindcss.com"></script>
    
    <!-- Google Fonts: Inter -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
    
    <!-- Custom CSS for theme and layout -->
    <style>
        body {
            font-family: 'Inter', sans-serif;
            background-color: #0a192f; /* A deep navy blue */
            color: #cbd5e1; /* slate-300 */
        }
        .glass-card {
            background: rgba(17, 34, 64, 0.75); /* Semi-transparent darker blue */
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            border: 1px solid rgba(45, 212, 191, 0.1);
        }
        .text-highlight {
            color: #5eead4; /* teal-300 */
        }
        .section-heading {
            color: #f8fafc; /* slate-50 */
        }
        .icon-glow {
            filter: drop-shadow(0 0 5px rgba(94, 234, 212, 0.7));
        }
        /* Accordion styles */
        .accordion-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.5s ease-out;
        }
        .visualization-box {
            background-color: #0f2342;
            border: 1px solid #1e3a5f;
            padding: 1.5rem;
            border-radius: 0.75rem;
            margin-top: 1rem;
            margin-bottom: 1rem;
        }
        .truth-table {
            width: auto;
            margin: 1rem auto;
            border-collapse: collapse;
            text-align: center;
        }
        .truth-table th, .truth-table td {
            border: 1px solid #334155;
            padding: 0.5rem 1rem;
        }
        .truth-table th {
            background-color: #1e293b;
            color: #94a3b8;
        }
    </style>
</head>
<body class="antialiased">

    <!-- Sticky Navigation -->
    <nav class="sticky top-0 z-50 glass-card shadow-lg">
        <div class="container mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
            <div class="flex justify-between items-center h-16">
                <div class="flex-shrink-0 text-white font-bold text-lg">EEE120 Course</div>
                <div class="hidden md:block">
                    <div class="ml-10 flex items-baseline space-x-4">
                        <a href="#core-topics" class="text-slate-300 hover:bg-slate-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Core Topics</a>
                        <a href="#labs" class="text-slate-300 hover:bg-slate-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Labs & Simulation</a>
                        <a href="#outcomes" class="text-slate-300 hover:bg-slate-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Outcomes</a>
                    </div>
                </div>
            </div>
        </div>
    </nav>


    <!-- Header Section -->
    <header class="container mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-16 text-center">
        <h1 class="text-4xl md:text-6xl font-extrabold tracking-tight section-heading">
            Master <span class="text-highlight">Digital Design</span> Fundamentals
        </h1>
        <p class="mt-4 max-w-3xl mx-auto text-lg md:text-xl text-slate-400">
            An interactive guide to the foundational building blocks of digital hardware, logic circuits, and modern computing. Welcome to EEE120.
        </p>
    </header>

    <main class="container mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">

        <!-- Core Topics Section -->
        <section id="core-topics" class="my-20">
            <h2 class="text-3xl md:text-4xl font-bold tracking-tight text-center section-heading">Core Topics Covered</h2>
            <div class="mt-12 space-y-4">
                
                <!-- Accordion Item 1: Logic Gates -->
                <div class="glass-card rounded-xl">
                    <button class="accordion-toggle flex justify-between items-center w-full p-6 text-left">
                        <div class="flex items-center">
                            <div class="flex items-center justify-center h-12 w-12 rounded-lg bg-slate-800 border border-slate-700 icon-glow mr-4">
                                <svg class="h-6 w-6 text-highlight" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 10l-2 1m0 0l-2-1m2 1v2.5M20 7l-2 1m2-1l-2-1m2 1v2.5M14 4l-2-1-2 1M4 7l2 1M4 7l2-1M4 7v2.5M12 21l-2-1m2 1l2-1m-2 1v-2.5M6 18l-2-1v-2.5M18 18l2-1v-2.5" /></svg>
                            </div>
                            <div>
                                <h3 class="text-xl font-semibold section-heading">Logic Signals & Gates</h3>
                                <p class="text-slate-400">The basic building blocks of all digital systems.</p>
                            </div>
                        </div>
                        <svg class="h-6 w-6 text-highlight transform transition-transform duration-300" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>
                    </button>
                    <div class="accordion-content px-6 pb-6">
                        <p class="text-slate-300">Digital systems operate on discrete signals. A <strong class="text-white">logic signal</strong> represents one of two states: HIGH (1) or LOW (0). <strong class="text-white">Logic gates</strong> are electronic circuits that perform a logical operation on one or more of these signals to produce a single output signal.</p>
                        
                        <div class="visualization-box">
                            <h4 class="text-lg font-semibold text-white mb-4">Common Logic Gates</h4>
                            <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
                                <div>
                                    <p><strong class="text-highlight">AND Gate:</strong> Output is HIGH only if <span class="font-mono">all</span> inputs are HIGH.</p>
                                    <svg viewBox="0 0 100 50" class="my-2 h-12 bg-slate-900 rounded"><path d="M10 10 H 40 C 60 10, 60 40, 40 40 H 10 Z" stroke="#5eead4" fill="none" stroke-width="2"/><line x1="0" y1="15" x2="10" y2="15" stroke="#cbd5e1" stroke-width="2"/><line x1="0" y1="35" x2="10" y2="35" stroke="#cbd5e1" stroke-width="2"/><line x1="55" y1="25" x2="70" y2="25" stroke="#cbd5e1" stroke-width="2"/></svg>
                                </div>
                                <div>
                                    <p><strong class="text-highlight">OR Gate:</strong> Output is HIGH if <span class="font-mono">any</span> input is HIGH.</p>
                                    <svg viewBox="0 0 100 50" class="my-2 h-12 bg-slate-900 rounded"><path d="M10 10 C 20 15, 20 35, 10 40 Q 40 25, 10 10" stroke="#5eead4" fill="none" stroke-width="2"/><line x1="0" y1="15" x2="10" y2="15" stroke="#cbd5e1" stroke-width="2"/><line x1="0" y1="35" x2="10" y2="35" stroke="#cbd5e1" stroke-width="2"/><line x1="35" y1="25" x2="50" y2="25" stroke="#cbd5e1" stroke-width="2"/></svg>
                                </div>
                                <div>
                                    <p><strong class="text-highlight">NOT Gate (Inverter):</strong> Output is the <span class="font-mono">opposite</span> of the input.</p>
                                    <svg viewBox="0 0 100 50" class="my-2 h-12 bg-slate-900 rounded"><path d="M10 10 L 40 25 L 10 40 Z" stroke="#5eead4" fill="none" stroke-width="2"/><circle cx="45" cy="25" r="5" stroke="#5eead4" fill="none" stroke-width="2"/><line x1="0" y1="25" x2="10" y2="25" stroke="#cbd5e1" stroke-width="2"/><line x1="50" y1="25" x2="65" y2="25" stroke="#cbd5e1" stroke-width="2"/></svg>
                                </div>
                            </div>
                        </div>

                        <h4 class="text-lg font-semibold text-white mt-4">Glossary of Terms</h4>
                        <ul class="list-disc list-inside mt-2 space-y-2 text-slate-300">
                           <li><strong class="text-white">Truth Table:</strong> A table listing all possible combinations of inputs and their corresponding output for a logic gate or circuit.</li>
                           <li><strong class="text-white">Boolean Expression:</strong> An algebraic expression representing the function of a logic circuit (e.g., F = A AND B).</li>
                           <li><strong class="text-white">Logic Level:</strong> The voltage level used to represent a binary 1 (HIGH) or 0 (LOW).</li>
                        </ul>
                    </div>
                </div>

                <!-- Accordion Item 2: Number Systems -->
                <div class="glass-card rounded-xl">
                     <button class="accordion-toggle flex justify-between items-center w-full p-6 text-left">
                        <div class="flex items-center">
                            <div class="flex items-center justify-center h-12 w-12 rounded-lg bg-slate-800 border border-slate-700 icon-glow mr-4">
                               <svg class="h-6 w-6 text-highlight" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>
                            </div>
                            <div>
                                <h3 class="text-xl font-semibold section-heading">Number Systems & Arithmetic</h3>
                                <p class="text-slate-400">How computers represent and manipulate numbers.</p>
                            </div>
                        </div>
                        <svg class="h-6 w-6 text-highlight transform transition-transform duration-300" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" /></svg>
                    </button>
                    <div class="accordion-content px-6 pb-6">
                        <p class="text-slate-300">Computers use the <strong class="text-white">binary</strong> (base-2) system. For human convenience, we often use <strong class="text-white">octal</strong> (base-8) and <strong class="text-white">hexadecimal</strong> (base-16) as a shorthand for long binary numbers.</p>
                        
                        <div class="visualization-box">
                            <h4 class="text-lg font-semibold text-white mb-4">Number System Conversion</h4>
                            <table class="truth-table">
                                <thead><tr><th>Decimal</th><th>Binary</th><th>Hexadecimal</th></tr></thead>
                                <tbody>
                                    <tr><td>0</td><td>0000</td><td>0</td></tr>
                                    <tr><td>1</td><td>0001</td><td>1</td></tr>
                                    <tr><td>...</td><td>...</td><td>...</td></tr>
                                    <tr><td>9</td><td>1001</td><td>9</td></tr>
                                    <tr><td>10</td><td>1010</td><td>A</td></tr>
                                    <tr><td>15</td><td>1111</td><td>F</td></tr>
                                </tbody>
                            </table>
                            <p class="mt-4 text-slate-300"><strong class="text-white">Two's Complement:</strong> The standard method for representing negative integers in binary. To find the two's complement of a number, you invert all the bits and add 1.</p>
                        </div>
                         <h4 class="text-lg font-semibold text-white mt-4">Glossary of Terms</h4>
                        <ul class="list-disc list-inside mt-2 space-y-2 text-slate-300">
                           <li><strong class="text-white">Bit:</strong> A single binary digit (0 or 1).</li>
                           <li><strong class="text-white">Byte:</strong> A group of 8 bits.</li>
                           <li><strong class="text-white">Radix:</strong> The base of a number system (e.g., 2 for binary, 10 for decimal).</li>
                        </ul>
                    </div>
                </div>

                <!-- More accordion items would follow this pattern... -->
                
            </div>
        </section>


        <!-- Labs & Simulation Section -->
        <section id="labs" class="my-24">
            <div class="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
                <div>
                    <h2 class="text-3xl md:text-4xl font-bold tracking-tight section-heading">Labs & Simulation</h2>
                    <p class="mt-4 text-lg text-slate-400">Theory meets practice. Our hands-on approach ensures you can build what you learn. You'll use industry-standard tools to bring your digital creations to life.</p>
                    <ul class="mt-8 space-y-4">
                        <li class="flex items-start">
                            <div class="flex-shrink-0">
                                <svg class="h-6 w-6 text-highlight" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg>
                            </div>
                            <div class="ml-4">
                                <h4 class="font-semibold text-white">Digital Logic Simulation Software</h4>
                                <p class="text-slate-400">Use tools like Digital, iVerilog, or Logisim to construct and simulate designs before implementation.</p>
                            </div>
                        </li>
                        <li class="flex items-start">
                            <div class="flex-shrink-0">
                                <svg class="h-6 w-6 text-highlight" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg>
                            </div>
                            <div class="ml-4">
                                <h4 class="font-semibold text-white">Progressive Hands-on Experiments</h4>
                                <p class="text-slate-400">Labs progress from basic adders to a simple, fully functional CPU, with optional FPGA implementation.</p>
                            </div>
                        </li>
                        <li class="flex items-start">
                            <div class="flex-shrink-0">
                                <svg class="h-6 w-6 text-highlight" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg>
                            </div>
                            <div class="ml-4">
                                <h4 class="font-semibold text-white">Capstone Project</h4>
                                <p class="text-slate-400">Design, implement, and test a finite state machine or logic system, emphasizing documentation and problem-solving.</p>
                            </div>
                        </li>
                    </ul>
                </div>
                <div class="glass-card rounded-xl p-8 hidden lg:block">
                    <h4 class="text-lg font-semibold text-white mb-4 text-center">Visualization: Half-Adder Circuit</h4>
                    <!-- SVG Visualization of a Half-Adder -->
                    <svg viewBox="0 0 200 120" xmlns="http://www.w3.org/2000/svg" class="w-full">
                        <style>
                            .label { font-family: 'Inter', sans-serif; font-size: 10px; fill: #94a3b8; }
                            .line { stroke: #38bdf8; stroke-width: 1.5; }
                            .gate { stroke: #5eead4; stroke-width: 1.5; fill: none; }
                        </style>
                        <!-- Inputs -->
                        <text x="5" y="20" class="label">A</text>
                        <line x1="10" y1="25" x2="50" y2="25" class="line" />
                        <text x="5" y="60" class="label">B</text>
                        <line x1="10" y1="65" x2="50" y2="65" class="line" />

                        <!-- XOR Gate for SUM -->
                        <path d="M50 15 C 60 20, 60 40, 50 45 Q 80 30, 50 15" class="gate" />
                        <line x1="50" y1="25" x2="55" y2="25" class="line" />
                        <line x1="50" y1="65" x2="55" y2="65" class="line" />
                        <line x1="75" y1="30" x2="150" y2="30" class="line" />
                        <text x="155" y="34" class="label">SUM</text>
                        
                        <!-- AND Gate for CARRY -->
                        <path d="M50 55 H 80 C 95 55, 95 85, 80 85 H 50 Z" class="gate" />
                        <!-- Connections to AND gate -->
                        <circle cx="50" cy="25" r="2" fill="#38bdf8"/>
                        <line x1="50" y1="25" x2="50" y2="60" class="line" />
                        <line x1="50" y1="60" x2="55" y2="60" class="line" />
                        <line x1="50" y1="65" x2="50" y2="80" class="line" />
                        <line x1="50" y1="80" x2="55" y2="80" class="line" />
                        <line x1="90" y1="70" x2="150" y2="70" class="line" />
                        <text x="155" y="74" class="label">CARRY</text>
                    </svg>
                </div>
            </div>
        </section>

        <!-- Skills & Outcomes Section -->
        <section id="outcomes" class="my-24 text-center">
             <h2 class="text-3xl md:text-4xl font-bold tracking-tight section-heading">Skills & Learning Outcomes</h2>
             <p class="mt-4 max-w-3xl mx-auto text-lg text-slate-400">By the end of this course, you will have mastered the fundamentals and be prepared for advanced topics in computer architecture and hardware design.</p>
             <div class="mt-10 max-w-5xl mx-auto grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 text-left">
                <div class="bg-slate-800/50 p-4 rounded-lg border border-slate-700">Analyze, design, build, and debug digital circuits.</div>
                <div class="bg-slate-800/50 p-4 rounded-lg border border-slate-700">Apply Boolean algebra to evaluate and optimize circuit design.</div>
                <div class="bg-slate-800/50 p-4 rounded-lg border border-slate-700">Gain familiarity with CAD tools for logic design and simulation.</div>
                <div class="bg-slate-800/50 p-4 rounded-lg border border-slate-700">Simulate the workings of a microprocessor.</div>
                <div class="bg-slate-800/50 p-4 rounded-lg border border-slate-700">Program instruction sets at the hardware level.</div>
                <div class="bg-slate-800/50 p-4 rounded-lg border border-slate-700">Build a strong foundation for advanced hardware topics.</div>
             </div>
        </section>

    </main>

    <!-- Footer -->
    <footer class="mt-24 pb-8 text-center text-slate-500">
        <p>&copy; 2024 Digital Design Fundamentals. All rights reserved.</p>
        <p class="text-sm">Inspired by ASU's EEE120 curriculum.</p>
    </footer>

    <script>
        document.addEventListener('DOMContentLoaded', function () {
            const accordions = document.querySelectorAll('.accordion-toggle');

            accordions.forEach(button => {
                button.addEventListener('click', () => {
                    const content = button.nextElementSibling;
                    const icon = button.querySelector('svg:last-child');

                    // Toggle active class for styling if needed
                    button.classList.toggle('active');

                    if (content.style.maxHeight) {
                        content.style.maxHeight = null;
                        icon.style.transform = 'rotate(0deg)';
                    } else {
                        // Close other open accordions
                        accordions.forEach(otherButton => {
                            if (otherButton !== button) {
                                otherButton.nextElementSibling.style.maxHeight = null;
                                otherButton.querySelector('svg:last-child').style.transform = 'rotate(0deg)';
                            }
                        });
                        content.style.maxHeight = content.scrollHeight + "px";
                        icon.style.transform = 'rotate(180deg)';
                    }
                });
            });
        });
    </script>

</body>
</html>