{
  "metadata": {
    "title": "Introduction to Digital System Design",
    "description": "A comprehensive learning graph covering digital system fundamentals including number systems, Boolean algebra, logic gates, combinational circuits, canonical forms, and Karnaugh map simplification techniques for EE 2301.",
    "creator": "University of Minnesota - Twin Cities",
    "date": "2026-02-04",
    "version": "1.0",
    "format": "Learning Graph JSON v1.0",
    "schema": "https://raw.githubusercontent.com/dmccreary/learning-graphs/refs/heads/main/src/schema/learning-graph-schema.json",
    "license": "CC BY-NC-SA 4.0 DEED"
  },
  "groups": {
    "FOUND": {
      "classifierName": "Foundation Concepts",
      "color": "LightCoral",
      "font": {
        "color": "white"
      }
    },
    "NUMSYS": {
      "classifierName": "Number Systems",
      "color": "PeachPuff",
      "font": {
        "color": "black"
      }
    },
    "CONV": {
      "classifierName": "Number Conversions",
      "color": "LightYellow",
      "font": {
        "color": "black"
      }
    },
    "ARITH": {
      "classifierName": "Binary Arithmetic",
      "color": "PaleGreen",
      "font": {
        "color": "black"
      }
    },
    "BOOLF": {
      "classifierName": "Boolean Fundamentals",
      "color": "PowderBlue",
      "font": {
        "color": "black"
      }
    },
    "GATES": {
      "classifierName": "Logic Gates",
      "color": "Thistle",
      "font": {
        "color": "black"
      }
    },
    "THEOR": {
      "classifierName": "Boolean Theorems",
      "color": "LightSteelBlue",
      "font": {
        "color": "black"
      }
    },
    "FORMS": {
      "classifierName": "Boolean Forms",
      "color": "Lavender",
      "font": {
        "color": "black"
      }
    },
    "COMB": {
      "classifierName": "Combinational Circuits",
      "color": "MistyRose",
      "font": {
        "color": "black"
      }
    },
    "ACIR": {
      "classifierName": "Arithmetic Circuits",
      "color": "Honeydew",
      "font": {
        "color": "black"
      }
    },
    "CANON": {
      "classifierName": "Canonical Forms",
      "color": "LavenderBlush",
      "font": {
        "color": "black"
      }
    },
    "KMAP": {
      "classifierName": "Karnaugh Maps",
      "color": "Aquamarine",
      "font": {
        "color": "black"
      }
    },
    "QM": {
      "classifierName": "Quine-McCluskey Method",
      "color": "Wheat",
      "font": {
        "color": "black"
      }
    },
    "MLEV": {
      "classifierName": "Multi-Level Circuits",
      "color": "Khaki",
      "font": {
        "color": "black"
      }
    },
    "CMOD": {
      "classifierName": "Combinational Modules",
      "color": "LightSalmon",
      "font": {
        "color": "black"
      }
    },
    "SEQF": {
      "classifierName": "Sequential Fundamentals",
      "color": "LightCyan",
      "font": {
        "color": "black"
      }
    },
    "SEQD": {
      "classifierName": "Sequential Design",
      "color": "Plum",
      "font": {
        "color": "white"
      }
    },
    "PLD": {
      "classifierName": "Programmable Logic",
      "color": "Tan",
      "font": {
        "color": "black"
      }
    },
    "VHDL": {
      "classifierName": "VHDL",
      "color": "LightSkyBlue",
      "font": {
        "color": "black"
      }
    },
    "SYSI": {
      "classifierName": "System Integration",
      "color": "Gold",
      "font": {
        "color": "black"
      }
    }
  },
  "concepts": {
    "1": {
      "id": 1,
      "label": "Digital Systems",
      "group": "FOUND",
      "category": "Foundation Concepts",
      "definition": "A system that processes, stores, or transmits information using discrete signal levels rather than continuous quantities, forming the basis of computers and digital electronics.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [],
      "dependents": [
        2,
        3,
        44
      ],
      "microsims": [
        "course-structure-tree"
      ]
    },
    "2": {
      "id": 2,
      "label": "Analog vs Digital Signals",
      "group": "FOUND",
      "category": "Foundation Concepts",
      "definition": "The distinction between continuously varying analog signals and digital signals restricted to a finite set of discrete voltage levels.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        1
      ],
      "dependents": [],
      "microsims": [
        "analog-vs-digital-signals"
      ]
    },
    "3": {
      "id": 3,
      "label": "Binary Number System",
      "group": "NUMSYS",
      "category": "Number Systems",
      "definition": "A base-2 positional number system using only two symbols (0 and 1) that maps directly to the two voltage states in digital circuits, making it the native language of computers.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        1,
        4
      ],
      "dependents": [
        10,
        14,
        15,
        16,
        17,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        41,
        44,
        119,
        120,
        204
      ],
      "microsims": []
    },
    "4": {
      "id": 4,
      "label": "Decimal Number System",
      "group": "NUMSYS",
      "category": "Number Systems",
      "definition": "The base-10 positional number system using ten symbols (0 through 9), where each position represents a power of 10; the familiar number system used in everyday human arithmetic.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [],
      "dependents": [
        3,
        5,
        6,
        7,
        16,
        17,
        18,
        19,
        20,
        21,
        119
      ],
      "microsims": []
    },
    "5": {
      "id": 5,
      "label": "Octal Number System",
      "group": "NUMSYS",
      "category": "Number Systems",
      "definition": "A base-8 positional number system using eight symbols (0 through 7), where each octal digit corresponds to exactly three binary digits; used in Unix file permissions and some assembly language contexts.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        4,
        7
      ],
      "dependents": [
        18,
        19,
        22,
        23
      ],
      "microsims": []
    },
    "6": {
      "id": 6,
      "label": "Hexadecimal Number System",
      "group": "NUMSYS",
      "category": "Number Systems",
      "definition": "A base-16 positional number system using sixteen symbols (0\u20139 and A\u2013F, where A=10 through F=15), where each hex digit corresponds to exactly four binary digits, making it the preferred shorthand for binary data.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        4,
        7
      ],
      "dependents": [
        20,
        21,
        24,
        25,
        123
      ],
      "microsims": []
    },
    "7": {
      "id": 7,
      "label": "Positional Notation",
      "group": "NUMSYS",
      "category": "Number Systems",
      "definition": "A numeral system in which the value of each digit is determined by both the digit itself and its position within the number, with each position representing a successive power of the base.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        4
      ],
      "dependents": [
        5,
        6,
        8,
        9,
        16,
        17,
        18,
        19,
        20,
        21
      ],
      "microsims": [
        "positional-notation-explorer"
      ]
    },
    "8": {
      "id": 8,
      "label": "Base of Number System",
      "group": "NUMSYS",
      "category": "Number Systems",
      "definition": "The number of unique digit symbols a positional number system uses, such as 2 for binary, 8 for octal, or 16 for hexadecimal.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        7
      ],
      "dependents": [
        9
      ],
      "microsims": [
        "number-systems-concept-map"
      ]
    },
    "9": {
      "id": 9,
      "label": "Radix Point",
      "group": "NUMSYS",
      "category": "Number Systems",
      "definition": "The symbol (such as a decimal point in base 10 or a binary point in base 2) that separates the integer portion of a number from its fractional portion in positional notation.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        7,
        8
      ],
      "dependents": [],
      "microsims": []
    },
    "10": {
      "id": 10,
      "label": "Bit",
      "group": "FOUND",
      "category": "Foundation Concepts",
      "definition": "The fundamental unit of digital information, representing a single 0 or 1; the term is a portmanteau of \"binary\" and \"digit.\"",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3
      ],
      "dependents": [
        11,
        14,
        15,
        26,
        27,
        30,
        31
      ],
      "microsims": []
    },
    "11": {
      "id": 11,
      "label": "Nibble",
      "group": "FOUND",
      "category": "Foundation Concepts",
      "definition": "A unit of digital data consisting of 4 bits that can represent 16 distinct values (0\u201315 in decimal, or 0\u2013F in hexadecimal); each hexadecimal digit corresponds to exactly one nibble.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        10
      ],
      "dependents": [
        12,
        24,
        25
      ],
      "microsims": []
    },
    "12": {
      "id": 12,
      "label": "Byte",
      "group": "FOUND",
      "category": "Foundation Concepts",
      "definition": "A unit of digital data comprising 8 bits (2 nibbles) that can represent 256 distinct values (0\u2013255 unsigned) and serves as the standard addressable unit of memory in most computer architectures.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        11
      ],
      "dependents": [
        13,
        35
      ],
      "microsims": []
    },
    "13": {
      "id": 13,
      "label": "Word",
      "group": "FOUND",
      "category": "Foundation Concepts",
      "definition": "A processor-specific unit of data representing the natural data size for a particular architecture (e.g., 32 bits or 64 bits), affecting memory addressing, register width, and arithmetic precision.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        12
      ],
      "dependents": [],
      "microsims": []
    },
    "14": {
      "id": 14,
      "label": "Most Significant Bit",
      "group": "FOUND",
      "category": "Foundation Concepts",
      "definition": "The leftmost bit in a binary number, which contributes the largest positional value; in signed number representations, the MSB typically indicates the sign of the number.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        10
      ],
      "dependents": [
        32,
        35,
        132,
        133
      ],
      "microsims": []
    },
    "15": {
      "id": 15,
      "label": "Least Significant Bit",
      "group": "FOUND",
      "category": "Foundation Concepts",
      "definition": "The rightmost bit in a binary number, which contributes the smallest positional value (either 0 or 1) to the overall number.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        10
      ],
      "dependents": [
        132,
        133
      ],
      "microsims": []
    },
    "16": {
      "id": 16,
      "label": "Binary to Decimal Conversion",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of finding the decimal value of a binary number by summing the weights of each bit position that contains a 1.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        4,
        7
      ],
      "dependents": [],
      "microsims": [
        "base-converter",
        "base-conversion-walkthrough"
      ]
    },
    "17": {
      "id": 17,
      "label": "Decimal to Binary Conversion",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of expressing a decimal number in base 2, typically found by repeated division by 2 and recording the remainders.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        4,
        7
      ],
      "dependents": [],
      "microsims": [
        "base-converter",
        "base-conversion-walkthrough"
      ]
    },
    "18": {
      "id": 18,
      "label": "Octal to Decimal Conversion",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of finding the decimal value of an octal number by summing each digit multiplied by its positional power of 8.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        4,
        5,
        7
      ],
      "dependents": [],
      "microsims": [
        "base-converter"
      ]
    },
    "19": {
      "id": 19,
      "label": "Decimal to Octal Conversion",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of expressing a decimal number in base 8, typically found by repeated division by 8 and recording the remainders.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        4,
        5,
        7
      ],
      "dependents": [],
      "microsims": [
        "base-converter"
      ]
    },
    "20": {
      "id": 20,
      "label": "Hexadecimal to Decimal",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of finding the decimal value of a hexadecimal number by summing each digit multiplied by its positional power of 16.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        4,
        6,
        7
      ],
      "dependents": [],
      "microsims": [
        "base-converter"
      ]
    },
    "21": {
      "id": 21,
      "label": "Decimal to Hexadecimal",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of expressing a decimal number in base 16, typically found by repeated division by 16 and recording the remainders.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        4,
        6,
        7
      ],
      "dependents": [],
      "microsims": [
        "base-converter"
      ]
    },
    "22": {
      "id": 22,
      "label": "Binary to Octal Conversion",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of converting a binary number to octal by grouping bits in sets of three from the radix point and converting each group to its octal digit.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        5
      ],
      "dependents": [],
      "microsims": [
        "base-converter"
      ]
    },
    "23": {
      "id": 23,
      "label": "Octal to Binary Conversion",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of converting an octal number to binary by expanding each octal digit into its three-bit binary equivalent.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        5
      ],
      "dependents": [],
      "microsims": [
        "base-converter"
      ]
    },
    "24": {
      "id": 24,
      "label": "Binary to Hexadecimal",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of converting a binary number to hexadecimal by grouping bits in sets of four from the radix point and converting each group to its hex digit.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        6,
        11
      ],
      "dependents": [],
      "microsims": [
        "base-converter"
      ]
    },
    "25": {
      "id": 25,
      "label": "Hexadecimal to Binary",
      "group": "CONV",
      "category": "Number Conversions",
      "definition": "The process of converting a hexadecimal number to binary by expanding each hex digit into its four-bit binary equivalent.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        6,
        11
      ],
      "dependents": [],
      "microsims": [
        "base-converter"
      ]
    },
    "26": {
      "id": 26,
      "label": "Binary Addition",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "The process of adding two binary numbers using the rules \\(0+0=0\\), \\(0+1=1\\), \\(1+0=1\\), and \\(1+1=10\\) (0 with a carry of 1), following the same columnar approach as decimal addition.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        10
      ],
      "dependents": [
        27,
        28,
        36,
        102,
        104
      ],
      "microsims": [
        "binary-arithmetic-practice",
        "binary-adder-visualizer"
      ]
    },
    "27": {
      "id": 27,
      "label": "Binary Subtraction",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "The process of subtracting one binary number from another using the rules \\(0-0=0\\), \\(1-0=1\\), \\(1-1=0\\), and \\(0-1=1\\) (with a borrow from the next higher position).",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        10,
        26
      ],
      "dependents": [
        29,
        37,
        107,
        109
      ],
      "microsims": [
        "binary-arithmetic-practice"
      ]
    },
    "28": {
      "id": 28,
      "label": "Binary Multiplication",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "The process of multiplying binary numbers where each partial product is either zero or the multiplicand itself (shifted appropriately), since the only possible multiplier digits are 0 and 1.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        26
      ],
      "dependents": [
        29
      ],
      "microsims": []
    },
    "29": {
      "id": 29,
      "label": "Binary Division",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "The process of dividing binary numbers using the long division algorithm, simplified by the fact that only 0 and 1 are possible quotient digits at each step.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        27,
        28
      ],
      "dependents": [],
      "microsims": []
    },
    "30": {
      "id": 30,
      "label": "Signed Numbers",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "Binary representations that encode both the magnitude and the sign (positive or negative) of a number.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        10
      ],
      "dependents": [
        32,
        33,
        35,
        38,
        40
      ],
      "microsims": []
    },
    "31": {
      "id": 31,
      "label": "Unsigned Numbers",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "Binary representations in which all bits contribute to the magnitude, with no bit reserved to indicate sign.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        3,
        10
      ],
      "dependents": [
        40
      ],
      "microsims": []
    },
    "32": {
      "id": 32,
      "label": "Sign Magnitude",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "A signed number encoding where the most significant bit indicates the sign (0 for positive, 1 for negative) and the remaining bits represent the magnitude, mirroring how humans write signed numbers but having two representations of zero.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        14,
        30
      ],
      "dependents": [
        40
      ],
      "microsims": [
        "signed-number-comparison"
      ]
    },
    "33": {
      "id": 33,
      "label": "Ones Complement",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "A signed number representation in which negative values are formed by inverting every bit of the positive magnitude.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        30,
        50
      ],
      "dependents": [
        34,
        40
      ],
      "microsims": [
        "signed-number-comparison"
      ]
    },
    "34": {
      "id": 34,
      "label": "Twos Complement",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "A signed number representation in which negative values are formed by inverting every bit of the positive magnitude and adding 1, allowing addition and subtraction to share the same hardware.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        33
      ],
      "dependents": [
        36,
        37,
        40
      ],
      "microsims": [
        "signed-number-comparison"
      ]
    },
    "35": {
      "id": 35,
      "label": "Sign Extension",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "The technique of preserving the numerical value of a signed binary number when increasing its bit width by replicating the sign bit (0s for positive, 1s for negative) into the additional higher-order positions.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        12,
        14,
        30
      ],
      "dependents": [
        37
      ],
      "microsims": []
    },
    "36": {
      "id": 36,
      "label": "Twos Complement Addition",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "Adding two's complement numbers using ordinary binary addition, where the sign is handled automatically and any carry out of the most significant bit is discarded.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        26,
        34
      ],
      "dependents": [
        37,
        38
      ],
      "microsims": []
    },
    "37": {
      "id": 37,
      "label": "Twos Complement Subtraction",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "Subtracting two's complement numbers by adding the minuend to the two's complement (negation) of the subtrahend.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        27,
        34,
        35,
        36
      ],
      "dependents": [
        38
      ],
      "microsims": []
    },
    "38": {
      "id": 38,
      "label": "Overflow Detection",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "An arithmetic error condition that occurs when the result of an operation is too large (positive) to be represented within the available bit width, detected in two's complement when the carry into the MSB differs from the carry out of the MSB.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        30,
        36,
        37
      ],
      "dependents": [
        39
      ],
      "microsims": [
        "overflow-detection-simulator"
      ]
    },
    "39": {
      "id": 39,
      "label": "Underflow",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "An arithmetic error condition that occurs when the result of an operation is too small (too negative) to be represented within the available bit width for the given signed number format.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        38
      ],
      "dependents": [],
      "microsims": []
    },
    "40": {
      "id": 40,
      "label": "Range of Signed Numbers",
      "group": "ARITH",
      "category": "Binary Arithmetic",
      "definition": "The span of representable values for a signed number format of a given bit width, bounded by its most negative and most positive encodable values.",
      "chapter": 1,
      "chapterTitle": "Number Systems",
      "chapterDir": "unit1-number-systems",
      "chapterUrl": "../../unit1-number-systems/",
      "glossaryUrl": "../../unit1-number-systems/glossary/",
      "quizUrl": "../../unit1-number-systems/quiz/",
      "problemsUrl": "../../unit1-number-systems/problems/",
      "challengeUrl": "../../unit1-number-systems/challenge/",
      "prerequisites": [
        30,
        31,
        32,
        33,
        34
      ],
      "dependents": [],
      "microsims": []
    },
    "41": {
      "id": 41,
      "label": "Boolean Algebra",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "A mathematical system developed by George Boole in 1854 for manipulating logical values, operating exclusively on binary values (0 and 1) and forming the theoretical foundation for digital logic design.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        3
      ],
      "dependents": [
        42,
        43,
        67,
        68,
        69,
        70,
        71,
        72,
        73,
        74,
        75,
        76,
        77,
        78,
        79
      ],
      "microsims": []
    },
    "42": {
      "id": 42,
      "label": "Boolean Variable",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "An unknown quantity in Boolean algebra that can take on only one of two values (0 or 1), typically denoted by uppercase letters such as A, B, C.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41
      ],
      "dependents": [
        46,
        47,
        48,
        49,
        65,
        81,
        155,
        156,
        164,
        199
      ],
      "microsims": []
    },
    "43": {
      "id": 43,
      "label": "Boolean Constant",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "A fixed Boolean value that is either 0 or 1, as opposed to a variable whose value can change.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41
      ],
      "dependents": [
        46
      ],
      "microsims": []
    },
    "44": {
      "id": 44,
      "label": "Logic Levels",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "The designation of voltage ranges in digital circuits as either HIGH or LOW, corresponding to the Boolean values 1 and 0, with specific voltage thresholds defined by the logic family (e.g., TTL: LOW = 0\u20130.8V, HIGH = 2.0\u20135.0V).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        1,
        3
      ],
      "dependents": [
        45,
        51
      ],
      "microsims": []
    },
    "45": {
      "id": 45,
      "label": "High and Low States",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "The two voltage levels in physical digital circuits (HIGH and LOW) that correspond to the binary logic values 1 and 0 respectively in positive logic convention.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        44
      ],
      "dependents": [
        100
      ],
      "microsims": []
    },
    "46": {
      "id": 46,
      "label": "Truth Value",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "One of the two possible values, 0 (false) or 1 (true), that a Boolean variable or expression can take.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        42,
        43
      ],
      "dependents": [
        47,
        48,
        49,
        64,
        99
      ],
      "microsims": []
    },
    "47": {
      "id": 47,
      "label": "AND Operation",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "The fundamental Boolean operation (logical conjunction) that produces a 1 output only when all inputs are 1, denoted by a dot (\\(\\cdot\\)), adjacency, or the wedge symbol, and analogous to multiplication in ordinary algebra.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        42,
        46
      ],
      "dependents": [
        51,
        52,
        64,
        65,
        67,
        68,
        69,
        72,
        73,
        74,
        77,
        82,
        85,
        86
      ],
      "microsims": [
        "boolean-operations-visualizer"
      ]
    },
    "48": {
      "id": 48,
      "label": "OR Operation",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "The fundamental Boolean operation (logical disjunction) that produces a 1 output when at least one input is 1, denoted by a plus sign or the \"vee\" symbol, and analogous to addition in ordinary algebra.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        42,
        46
      ],
      "dependents": [
        51,
        53,
        64,
        65,
        67,
        68,
        69,
        72,
        73,
        74,
        78,
        83,
        84,
        86
      ],
      "microsims": [
        "boolean-operations-visualizer"
      ]
    },
    "49": {
      "id": 49,
      "label": "NOT Operation",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "The fundamental Boolean operation (logical negation) that inverts the input value, changing 0 to 1 and 1 to 0, denoted by an overbar, prime symbol, or the logical negation symbol.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        42,
        46
      ],
      "dependents": [
        50,
        51,
        54,
        64,
        65,
        70,
        71,
        77,
        78,
        86
      ],
      "microsims": [
        "boolean-operations-visualizer"
      ]
    },
    "50": {
      "id": 50,
      "label": "Complement",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "The result of inverting a Boolean value or variable, where the complement of 0 is 1 and the complement of 1 is 0, denoted by an overbar, prime, or the NOT symbol.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        49
      ],
      "dependents": [
        33,
        70,
        71,
        144
      ],
      "microsims": []
    },
    "51": {
      "id": 51,
      "label": "Logic Gates",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "Physical electronic devices that implement Boolean operations, each having one or more inputs and producing an output based on a specific Boolean function, serving as the building blocks of all digital circuits.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        44,
        47,
        48,
        49
      ],
      "dependents": [
        52,
        53,
        54,
        60,
        62,
        88,
        89,
        90,
        91,
        93,
        195,
        238,
        239,
        278
      ],
      "microsims": []
    },
    "52": {
      "id": 52,
      "label": "AND Gate",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A logic gate that implements the AND operation, producing a HIGH output only when all of its inputs are HIGH. Its standard symbol features a flat left edge and a curved right edge (D-shape).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        47,
        51
      ],
      "dependents": [
        56,
        58,
        102,
        112,
        235,
        236
      ],
      "microsims": [
        "and-gate-truth-table",
        "3-input-and-gate"
      ]
    },
    "53": {
      "id": 53,
      "label": "OR Gate",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A basic logic gate that implements the OR operation, producing a HIGH output when any of its inputs is HIGH. Its standard symbol features a curved left edge and a pointed right edge.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        48,
        51
      ],
      "dependents": [
        57,
        58,
        235,
        236
      ],
      "microsims": [
        "or-gate-truth-table",
        "3-input-or-gate"
      ]
    },
    "54": {
      "id": 54,
      "label": "NOT Gate",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A basic logic gate (also called an inverter) that implements the NOT operation by inverting its single input, drawn as a triangle with a bubble at the output.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        49,
        51
      ],
      "dependents": [
        55,
        56,
        57,
        59
      ],
      "microsims": [
        "not-gate-truth-table"
      ]
    },
    "55": {
      "id": 55,
      "label": "Inverter",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "Another name for the NOT gate, a logic gate that inverts its single input, drawn as a triangle with a small circle (bubble) at the output to indicate inversion.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        54
      ],
      "dependents": [
        107,
        117
      ],
      "microsims": [
        "not-gate-truth-table"
      ]
    },
    "56": {
      "id": 56,
      "label": "NAND Gate",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A derived logic gate (NOT-AND) that produces the complement of the AND operation, outputting LOW only when all inputs are HIGH, and recognized as a universal gate.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        52,
        54
      ],
      "dependents": [
        61,
        229,
        233,
        235,
        280
      ],
      "microsims": [
        "nand-gate-truth-table",
        "3-input-nand-gate"
      ]
    },
    "57": {
      "id": 57,
      "label": "NOR Gate",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A derived logic gate (NOT-OR) that produces the complement of the OR operation, outputting HIGH only when all inputs are LOW, and recognized as a universal gate.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        53,
        54
      ],
      "dependents": [
        61,
        230,
        233,
        236,
        279
      ],
      "microsims": [
        "nor-gate-truth-table",
        "3-input-nor-gate"
      ]
    },
    "58": {
      "id": 58,
      "label": "XOR Gate",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A derived logic gate (exclusive OR) that produces a HIGH output when inputs differ (odd number of 1s among inputs), expressed as \\(F = A \\oplus B = \\overline{A}B + A\\overline{B}\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        52,
        53
      ],
      "dependents": [
        59,
        102,
        105,
        107,
        110,
        112,
        114,
        122
      ],
      "microsims": [
        "xor-gate-truth-table",
        "3-input-xor-gate"
      ]
    },
    "59": {
      "id": 59,
      "label": "XNOR Gate",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A derived logic gate (exclusive NOR) that produces a HIGH output when all inputs are the same (equality detector), expressed as \\(F = \\overline{A \\oplus B} = AB + \\overline{A}\\,\\overline{B}\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        54,
        58
      ],
      "dependents": [
        112
      ],
      "microsims": [
        "xnor-gate-truth-table"
      ]
    },
    "60": {
      "id": 60,
      "label": "Buffer Gate",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A logic gate that passes its input unchanged to the output (\\(F = A\\)), providing signal amplification, isolation, and timing delay in physical circuits despite performing no logical transformation.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        51
      ],
      "dependents": [
        273
      ],
      "microsims": [
        "buffer-gate-truth-table"
      ]
    },
    "61": {
      "id": 61,
      "label": "Universal Gates",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A gate type, such as NAND or NOR, from which any Boolean function can be implemented using only gates of that single type.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        56,
        57
      ],
      "dependents": [
        229,
        230
      ],
      "microsims": [
        "universal-gate-simulator",
        "nand-nor-converter"
      ]
    },
    "62": {
      "id": 62,
      "label": "Gate Symbols",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "The standard schematic shapes used to represent each type of logic gate in a circuit diagram.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        51
      ],
      "dependents": [
        63
      ],
      "microsims": []
    },
    "63": {
      "id": 63,
      "label": "IEEE Gate Symbols",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "The ANSI/IEEE standard distinctive schematic shapes (as opposed to rectangular shapes) used to represent each type of logic gate.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        62
      ],
      "dependents": [],
      "microsims": []
    },
    "64": {
      "id": 64,
      "label": "Truth Table",
      "group": "BOOLF",
      "category": "Boolean Fundamentals",
      "definition": "A systematic tabular listing of all possible input combinations and their corresponding outputs for a Boolean function, containing \\(2^n\\) rows for \\(n\\) input variables.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        46,
        47,
        48,
        49
      ],
      "dependents": [
        66,
        94,
        125,
        128,
        129,
        145,
        148,
        157,
        158,
        161,
        301,
        321,
        352
      ],
      "microsims": [
        "truth-table-generator"
      ]
    },
    "65": {
      "id": 65,
      "label": "Boolean Expression",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "An algebraic formula composed of Boolean variables, constants, and operations (AND, OR, NOT) that can be represented by a truth table and evaluated to produce a binary output.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        42,
        47,
        48,
        49
      ],
      "dependents": [
        66,
        80,
        81,
        87,
        95,
        97,
        160
      ],
      "microsims": []
    },
    "66": {
      "id": 66,
      "label": "Logic Function",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "A mapping from all possible input combinations to output values, where multiple different Boolean expressions can represent the same logic function.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        64,
        65
      ],
      "dependents": [
        91,
        98,
        125,
        144,
        145,
        148,
        157,
        158,
        258
      ],
      "microsims": []
    },
    "67": {
      "id": 67,
      "label": "Identity Law",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean identity stating that a variable operated with an identity element returns the variable: \\(A + 0 = A\\) and \\(A \\cdot 1 = A\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        47,
        48
      ],
      "dependents": [
        80
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "68": {
      "id": 68,
      "label": "Null Law",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean identity stating that a variable operated with a dominant element returns the dominant element: \\(A + 1 = 1\\) and \\(A \\cdot 0 = 0\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        47,
        48
      ],
      "dependents": [
        80
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "69": {
      "id": 69,
      "label": "Idempotent Law",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean identity stating that a repeated operation of a variable with itself returns the variable unchanged: \\(A + A = A\\) and \\(A \\cdot A = A\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        47,
        48
      ],
      "dependents": [
        80
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "70": {
      "id": 70,
      "label": "Involution Law",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean identity stating that complementing a variable twice returns the original value: \\(\\overline{\\overline{A}} = A\\), also known as the double complement law.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        49,
        50
      ],
      "dependents": [
        80
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "71": {
      "id": 71,
      "label": "Complement Law",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean identity stating that a variable operated with its own complement produces a constant: \\(A + \\overline{A} = 1\\) and \\(A \\cdot \\overline{A} = 0\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        49,
        50
      ],
      "dependents": [
        80
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "72": {
      "id": 72,
      "label": "Commutative Law",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean algebraic law stating that the order of operands does not affect the result: \\(A + B = B + A\\) and \\(A \\cdot B = B \\cdot A\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        47,
        48
      ],
      "dependents": [
        80
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "73": {
      "id": 73,
      "label": "Associative Law",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean algebraic law stating that the grouping of operands does not affect the result: \\((A + B) + C = A + (B + C)\\) and \\((A \\cdot B) \\cdot C = A \\cdot (B \\cdot C)\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        47,
        48
      ],
      "dependents": [
        80,
        88
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "74": {
      "id": 74,
      "label": "Distributive Law",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean algebraic law that allows distribution of one operation over another: \\(A(B + C) = AB + AC\\) and, uniquely in Boolean algebra, \\(A + BC = (A + B)(A + C)\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        47,
        48
      ],
      "dependents": [
        75,
        80,
        154,
        247
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "75": {
      "id": 75,
      "label": "Absorption Law",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean theorem that eliminates redundant terms from an expression, stated as \\(A + AB = A\\) and \\(A(A + B) = A\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        74
      ],
      "dependents": [
        76,
        80
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "76": {
      "id": 76,
      "label": "Consensus Theorem",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "A Boolean theorem that identifies and eliminates a redundant consensus term, stated as \\(AB + \\overline{A}C + BC = AB + \\overline{A}C\\), where the \\(BC\\) term is already covered by the other two terms.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        75
      ],
      "dependents": [
        80
      ],
      "microsims": [
        "boolean-laws-explorer"
      ]
    },
    "77": {
      "id": 77,
      "label": "DeMorgans First Theorem",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "The Boolean law stating that the complement of a product equals the sum of the complements of its terms.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        47,
        49
      ],
      "dependents": [
        79,
        144,
        233
      ],
      "microsims": [
        "demorgans-theorem-visualizer"
      ]
    },
    "78": {
      "id": 78,
      "label": "DeMorgans Second Theorem",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "The Boolean law stating that the complement of a sum equals the product of the complements of its terms.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        48,
        49
      ],
      "dependents": [
        79,
        144,
        233
      ],
      "microsims": [
        "demorgans-theorem-visualizer"
      ]
    },
    "79": {
      "id": 79,
      "label": "Duality Principle",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "The principle stating that any valid Boolean theorem remains valid if AND and OR operators are interchanged and the constants 0 and 1 are interchanged throughout the expression.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        41,
        77,
        78
      ],
      "dependents": [
        200
      ],
      "microsims": []
    },
    "80": {
      "id": 80,
      "label": "Algebraic Simplification",
      "group": "THEOR",
      "category": "Boolean Theorems",
      "definition": "The process of reducing a Boolean expression to a simpler equivalent form by systematically applying Boolean theorems and identities to minimize the number of literals, terms, and gates needed for implementation.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        65,
        67,
        68,
        69,
        70,
        71,
        72,
        73,
        74,
        75,
        76
      ],
      "dependents": [
        95,
        200,
        244,
        247
      ],
      "microsims": [
        "boolean-simplification-tutor",
        "boolean-proof-walkthrough"
      ]
    },
    "81": {
      "id": 81,
      "label": "Literal",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "A Boolean variable or its complement appearing in a Boolean expression; for example, the expression \\(AB + \\overline{A}C\\) contains four literals: \\(A\\), \\(B\\), \\(\\overline{A}\\), and \\(C\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        42,
        65
      ],
      "dependents": [
        82,
        83,
        160,
        196
      ],
      "microsims": []
    },
    "82": {
      "id": 82,
      "label": "Product Term",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "A single literal or an AND (product) of multiple literals in a Boolean expression, such as \\(A\\), \\(AB\\), or \\(\\overline{A}BC\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        47,
        81
      ],
      "dependents": [
        84,
        128,
        180
      ],
      "microsims": []
    },
    "83": {
      "id": 83,
      "label": "Sum Term",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "A single literal or an OR (sum) of multiple literals in a Boolean expression, such as \\(A\\), \\(A + B\\), or \\(\\overline{A} + B + C\\).",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        48,
        81
      ],
      "dependents": [
        85,
        129
      ],
      "microsims": []
    },
    "84": {
      "id": 84,
      "label": "Sum of Products",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "A standard Boolean expression form structured as an OR of AND terms (product terms), mapping directly to an AND-OR two-level circuit implementation, preferred when the function has few 1-output rows.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        48,
        82
      ],
      "dependents": [
        126,
        130,
        227,
        229,
        244,
        245,
        257,
        344
      ],
      "microsims": [
        "sop-pos-converter"
      ]
    },
    "85": {
      "id": 85,
      "label": "Product of Sums",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "A standard Boolean expression form structured as an AND of OR terms (sum terms), mapping directly to an OR-AND two-level circuit implementation, preferred when the function has few 0-output rows.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        47,
        83
      ],
      "dependents": [
        126,
        131,
        227,
        230,
        244,
        246
      ],
      "microsims": [
        "sop-pos-converter"
      ]
    },
    "86": {
      "id": 86,
      "label": "Precedence of Operators",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "The evaluation order of Boolean operators when an expression is not fully parenthesized: NOT before AND, and AND before OR.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        47,
        48,
        49
      ],
      "dependents": [
        87
      ],
      "microsims": []
    },
    "87": {
      "id": 87,
      "label": "Parentheses in Boolean",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "Grouping symbols used in a Boolean expression to override default operator precedence and explicitly control evaluation order.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        65,
        86
      ],
      "dependents": [],
      "microsims": []
    },
    "88": {
      "id": 88,
      "label": "Multiple Input Gates",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "Logic gates extended beyond two inputs to accept \\(n\\) inputs, where an \\(n\\)-input AND outputs 1 only if all \\(n\\) inputs are 1, and an \\(n\\)-input XOR outputs 1 if an odd number of inputs are 1.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        51,
        73
      ],
      "dependents": [
        89,
        90,
        242
      ],
      "microsims": [
        "gate-cascade-simulator"
      ]
    },
    "89": {
      "id": 89,
      "label": "Cascading Gates",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "A technique of connecting multiple gates in series to handle more inputs than a single gate can accommodate, such as using three 2-input AND gates to implement a 4-input AND function.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        51,
        88
      ],
      "dependents": [
        106,
        114,
        226,
        228,
        243,
        253,
        254,
        263,
        265,
        275
      ],
      "microsims": [
        "gate-cascade-simulator"
      ]
    },
    "90": {
      "id": 90,
      "label": "Fan-In and Fan-Out",
      "group": "GATES",
      "category": "Logic Gates",
      "definition": "The maximum number of gate inputs that a single gate output can drive without signal degradation, typically limited to 10 for standard TTL gates.",
      "chapter": 2,
      "chapterTitle": "Boolean Algebra",
      "chapterDir": "unit2-boolean-algebra",
      "chapterUrl": "../../unit2-boolean-algebra/",
      "glossaryUrl": "../../unit2-boolean-algebra/glossary/",
      "quizUrl": "../../unit2-boolean-algebra/quiz/",
      "problemsUrl": "../../unit2-boolean-algebra/problems/",
      "challengeUrl": "../../unit2-boolean-algebra/challenge/",
      "prerequisites": [
        51,
        88
      ],
      "dependents": [
        242,
        272,
        274,
        275
      ],
      "microsims": []
    },
    "91": {
      "id": 91,
      "label": "Combinational Logic",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "A category of digital circuits whose outputs depend solely on the current values of the inputs, with no memory of past states, so the same input combination always produces the same output.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        51,
        66
      ],
      "dependents": [
        92,
        93,
        98,
        112,
        118,
        226,
        251,
        261,
        267,
        276,
        366
      ],
      "microsims": []
    },
    "92": {
      "id": 92,
      "label": "Sequential Logic",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "A category of digital circuits whose outputs depend on both the current inputs and the circuit's stored internal state (history), requiring memory elements such as flip-flops and typically operating under clock synchronization.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        91
      ],
      "dependents": [
        276
      ],
      "microsims": []
    },
    "93": {
      "id": 93,
      "label": "Logic Circuit",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "A physical or schematic realization of a Boolean function using interconnected logic gates.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        51,
        91
      ],
      "dependents": [
        94,
        95,
        226,
        227,
        238,
        252,
        261,
        262,
        271,
        355,
        366,
        396
      ],
      "microsims": []
    },
    "94": {
      "id": 94,
      "label": "Circuit Analysis",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "The process of starting with an existing logic circuit and determining its behavior by deriving its Boolean expression and truth table from the gate-level connections.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        64,
        93
      ],
      "dependents": [
        335
      ],
      "microsims": [
        "circuit-analysis-synthesis"
      ]
    },
    "95": {
      "id": 95,
      "label": "Circuit Synthesis",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "The process of starting with a behavioral specification and creating a logic circuit that implements it, following the systematic design flow of truth table, Boolean expression, simplification, and gate implementation.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        65,
        80,
        93
      ],
      "dependents": [
        96,
        118,
        258,
        266,
        302,
        316,
        324
      ],
      "microsims": [
        "circuit-analysis-synthesis"
      ]
    },
    "96": {
      "id": 96,
      "label": "Specification to Circuit",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "The design process of translating a word description or functional specification into a truth table and then into a logic circuit.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        95
      ],
      "dependents": [
        97
      ],
      "microsims": []
    },
    "97": {
      "id": 97,
      "label": "Word Problems to Boolean",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "The design skill of translating a natural-language description of a digital system's required behavior into a Boolean expression or truth table.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        65,
        96
      ],
      "dependents": [],
      "microsims": [
        "word-problem-translator"
      ]
    },
    "98": {
      "id": 98,
      "label": "Switching Functions",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "Another name for Boolean functions, reflecting their origin in describing the behavior of switching (relay and gate) circuits.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        66,
        91
      ],
      "dependents": [
        99,
        100
      ],
      "microsims": []
    },
    "99": {
      "id": 99,
      "label": "Binary Decision",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "A decision point in a digital system with exactly two possible outcomes, modeled naturally by a single Boolean variable.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        46,
        98
      ],
      "dependents": [],
      "microsims": []
    },
    "100": {
      "id": 100,
      "label": "Enable Signal",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "A control input that, when active (typically 1), permits a circuit to operate normally and, when inactive (0), forces all outputs to a disabled state regardless of other inputs.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        45,
        98
      ],
      "dependents": [
        101,
        251,
        256,
        264,
        269,
        282
      ],
      "microsims": []
    },
    "101": {
      "id": 101,
      "label": "Control Signal",
      "group": "COMB",
      "category": "Combinational Circuits",
      "definition": "A binary input that selects between different operating modes of a circuit, such as choosing between addition and subtraction in an adder-subtractor.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        100
      ],
      "dependents": [
        111,
        251,
        255,
        268,
        273,
        274,
        285,
        401,
        402
      ],
      "microsims": []
    },
    "102": {
      "id": 102,
      "label": "Half Adder",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A combinational circuit that adds two single-bit inputs and produces a sum bit (via XOR) and a carry bit (via AND), called \"half\" because it has no carry-in and cannot be directly cascaded for multi-bit addition.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        26,
        52,
        58
      ],
      "dependents": [
        103,
        104,
        105
      ],
      "microsims": []
    },
    "103": {
      "id": 103,
      "label": "Full Adder",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A combinational circuit that adds three single-bit inputs (two operand bits A and B plus a carry-in from a previous stage) and produces a sum bit and a carry-out bit, enabling multi-bit cascaded addition.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        102,
        104,
        105
      ],
      "dependents": [
        106
      ],
      "microsims": [
        "full-adder-walkthrough"
      ]
    },
    "104": {
      "id": 104,
      "label": "Carry Bit",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "The output of an adder circuit that represents the overflow from adding bits in a single column, to be propagated to the next more significant bit position.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        26,
        102
      ],
      "dependents": [
        103
      ],
      "microsims": []
    },
    "105": {
      "id": 105,
      "label": "Sum Bit",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "The lower-order output of an adder circuit, representing the single-bit arithmetic sum of the input bits at a given position (computed as the XOR of the inputs and any carry-in).",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        58,
        102
      ],
      "dependents": [
        103
      ],
      "microsims": []
    },
    "106": {
      "id": 106,
      "label": "Ripple Carry Adder",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A multi-bit adder constructed by chaining \\(n\\) full adders in series, where the carry-out of each stage connects to the carry-in of the next, causing carries to \"ripple\" sequentially from LSB to MSB.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        89,
        103
      ],
      "dependents": [
        111
      ],
      "microsims": [
        "binary-adder-visualizer"
      ]
    },
    "107": {
      "id": 107,
      "label": "Half Subtractor",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A combinational circuit that subtracts one single-bit input B from another A, producing a difference bit (\\(A \\oplus B\\)) and a borrow bit (\\(\\overline{A} \\cdot B\\)), without accounting for an incoming borrow from a prior stage.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        27,
        55,
        58
      ],
      "dependents": [
        108,
        109,
        110
      ],
      "microsims": []
    },
    "108": {
      "id": 108,
      "label": "Full Subtractor",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A combinational circuit that subtracts one bit from another while accounting for a borrow-in from a previous stage, producing a difference bit and a borrow-out bit for cascaded multi-bit subtraction.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        107,
        109,
        110
      ],
      "dependents": [
        111
      ],
      "microsims": [
        "adder-subtractor-builder"
      ]
    },
    "109": {
      "id": 109,
      "label": "Borrow Bit",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "The output of a subtractor circuit that indicates when the minuend bit is smaller than the subtrahend bit (plus any incoming borrow), requiring a borrow from the next higher bit position.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        27,
        107
      ],
      "dependents": [
        108
      ],
      "microsims": []
    },
    "110": {
      "id": 110,
      "label": "Difference Bit",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "The output of a subtractor circuit that represents the result of subtracting one bit from another, computed as the XOR of the inputs and any incoming borrow.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        58,
        107
      ],
      "dependents": [
        108
      ],
      "microsims": []
    },
    "111": {
      "id": 111,
      "label": "Adder Subtractor Circuit",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A combinational circuit that uses a shared set of full adders with XOR gates and a mode control signal M to perform either binary addition (M=0) or two's complement subtraction (M=1) on multi-bit operands.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        101,
        106,
        108
      ],
      "dependents": [
        398
      ],
      "microsims": [
        "adder-subtractor-builder"
      ]
    },
    "112": {
      "id": 112,
      "label": "Comparator Circuit",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A combinational circuit that determines the relative magnitude relationship (greater than, less than, or equal) between two binary numbers by comparing corresponding bits from the most significant to the least significant.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        52,
        58,
        59,
        91
      ],
      "dependents": [
        113
      ],
      "microsims": []
    },
    "113": {
      "id": 113,
      "label": "Magnitude Comparator",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A multi-bit comparator circuit that compares two \\(n\\)-bit binary numbers and produces three outputs indicating whether the first number is greater than, less than, or equal to the second.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        112
      ],
      "dependents": [
        271
      ],
      "microsims": [
        "magnitude-comparator"
      ]
    },
    "114": {
      "id": 114,
      "label": "Parity Generator",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A circuit that computes a parity bit for a given data word by XORing all data bits together, producing the bit needed to establish even or odd parity for error detection during transmission.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        58,
        89
      ],
      "dependents": [
        115,
        116,
        117
      ],
      "microsims": [
        "parity-circuit-simulator"
      ]
    },
    "115": {
      "id": 115,
      "label": "Parity Checker",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A circuit that receives a data word together with its parity bit and XORs all bits together, outputting a 1 (error detected) if the total parity does not match the expected convention.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        114,
        116,
        117
      ],
      "dependents": [],
      "microsims": [
        "parity-circuit-simulator"
      ]
    },
    "116": {
      "id": 116,
      "label": "Even Parity",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "An error-detection scheme in which the parity bit is chosen so that the total number of 1-bits in the data word (including the parity bit itself) is even.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        114
      ],
      "dependents": [
        115
      ],
      "microsims": []
    },
    "117": {
      "id": 117,
      "label": "Odd Parity",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "An error-detection scheme in which the parity bit is chosen so that the total number of 1-bits in the data word (including the parity bit itself) is odd.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        55,
        114
      ],
      "dependents": [
        115
      ],
      "microsims": []
    },
    "118": {
      "id": 118,
      "label": "Code Converter",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A combinational circuit that translates data from one binary representation (such as BCD, Gray code, or Excess-3) to another, enabling interoperability between subsystems that use different encoding schemes.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        91,
        95
      ],
      "dependents": [
        121,
        122,
        124
      ],
      "microsims": [
        "code-converter-demo"
      ]
    },
    "119": {
      "id": 119,
      "label": "BCD Code",
      "group": "NUMSYS",
      "category": "Number Systems",
      "definition": "Binary-Coded Decimal, a code that represents each decimal digit (0-9) independently using a 4-bit binary pattern.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        3,
        4
      ],
      "dependents": [
        121
      ],
      "microsims": []
    },
    "120": {
      "id": 120,
      "label": "Gray Code",
      "group": "NUMSYS",
      "category": "Number Systems",
      "definition": "A binary encoding in which consecutive values differ in exactly one bit position, eliminating ambiguous intermediate readings in applications such as rotary position encoders and providing the ordering used in Karnaugh maps.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        3
      ],
      "dependents": [
        122,
        169
      ],
      "microsims": [
        "binary-gray-converter"
      ]
    },
    "121": {
      "id": 121,
      "label": "BCD to Binary Converter",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A code conversion circuit that translates a BCD representation into pure binary by multiplying the tens digit by ten and adding the units digit, requiring multiplier and adder sub-circuits.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        118,
        119
      ],
      "dependents": [],
      "microsims": [
        "code-converter-demo"
      ]
    },
    "122": {
      "id": 122,
      "label": "Binary to Gray Converter",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A circuit that converts a standard binary number to Gray code by keeping the MSB unchanged and XORing each pair of adjacent binary bits to produce the remaining Gray code bits.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        58,
        118,
        120
      ],
      "dependents": [],
      "microsims": [
        "binary-gray-converter"
      ]
    },
    "123": {
      "id": 123,
      "label": "Seven Segment Display",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "An output device consisting of seven independently controlled LED segments (labeled a through g) arranged in a figure-eight pattern, capable of displaying decimal digits 0\u20139 and selected letters.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        6
      ],
      "dependents": [
        124
      ],
      "microsims": []
    },
    "124": {
      "id": 124,
      "label": "Seven Segment Decoder",
      "group": "ACIR",
      "category": "Arithmetic Circuits",
      "definition": "A combinational circuit that converts a 4-bit BCD input into seven output signals (a through g), each controlling one segment of a seven-segment display to form a visible decimal digit.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        118,
        123
      ],
      "dependents": [],
      "microsims": [
        "seven-segment-decoder"
      ]
    },
    "125": {
      "id": 125,
      "label": "Incompletely Specified Func",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A Boolean function whose output is not defined for every possible input combination, leaving some input combinations as don't-care conditions.",
      "chapter": 3,
      "chapterTitle": "Applications of Boolean Algebra",
      "chapterDir": "unit3-applications-boolean-algebra",
      "chapterUrl": "../../unit3-applications-boolean-algebra/",
      "glossaryUrl": "../../unit3-applications-boolean-algebra/glossary/",
      "quizUrl": "../../unit3-applications-boolean-algebra/quiz/",
      "problemsUrl": "../../unit3-applications-boolean-algebra/problems/",
      "challengeUrl": "../../unit3-applications-boolean-algebra/challenge/",
      "prerequisites": [
        64,
        66,
        148
      ],
      "dependents": [
        149
      ],
      "microsims": []
    },
    "126": {
      "id": 126,
      "label": "Canonical Form",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A standard representation of a Boolean function where each term contains all variables in the function, either in complemented or uncomplemented form.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        84,
        85
      ],
      "dependents": [
        127,
        138,
        139
      ],
      "microsims": []
    },
    "127": {
      "id": 127,
      "label": "Standard Form",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A Boolean expression written as either sum-of-products or product-of-sums but not necessarily in canonical form.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        126
      ],
      "dependents": [
        184
      ],
      "microsims": []
    },
    "128": {
      "id": 128,
      "label": "Minterm",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A product term containing all variables of a function, each appearing either complemented or uncomplemented.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        64,
        82
      ],
      "dependents": [
        130,
        132,
        134,
        136,
        137,
        146,
        157,
        161,
        163,
        202,
        204,
        261
      ],
      "microsims": [
        "minterm-visualizer"
      ]
    },
    "129": {
      "id": 129,
      "label": "Maxterm",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A sum term containing all variables of a function, each appearing either complemented or uncomplemented.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        64,
        83
      ],
      "dependents": [
        131,
        133,
        135,
        136,
        137,
        147,
        158,
        161
      ],
      "microsims": []
    },
    "130": {
      "id": 130,
      "label": "Minterm Expansion",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The expression of a Boolean function as a sum of all minterms for which the function equals 1.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        84,
        128
      ],
      "dependents": [
        134
      ],
      "microsims": [
        "minterm-expansion-walkthrough"
      ]
    },
    "131": {
      "id": 131,
      "label": "Maxterm Expansion",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The expression of a Boolean function as a product of all maxterms for which the function equals 0.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        85,
        129
      ],
      "dependents": [
        135
      ],
      "microsims": []
    },
    "132": {
      "id": 132,
      "label": "Minterm Designation",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The notation identifying a minterm by its decimal index, equal to the input combination that makes it 1.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        14,
        15,
        128
      ],
      "dependents": [
        140
      ],
      "microsims": []
    },
    "133": {
      "id": 133,
      "label": "Maxterm Designation",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The notation identifying a maxterm by its decimal index, equal to the input combination that makes it 0.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        14,
        15,
        129
      ],
      "dependents": [
        141
      ],
      "microsims": []
    },
    "134": {
      "id": 134,
      "label": "Sum of Minterms",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A Boolean expression formed by ORing multiple minterms together.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        128,
        130
      ],
      "dependents": [
        138,
        140,
        266
      ],
      "microsims": [
        "minterm-visualizer"
      ]
    },
    "135": {
      "id": 135,
      "label": "Product of Maxterms",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A Boolean expression formed by ANDing multiple maxterms together.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        129,
        131
      ],
      "dependents": [
        139,
        141
      ],
      "microsims": [
        "pi-chart-interactive"
      ]
    },
    "136": {
      "id": 136,
      "label": "Minterm to Maxterm",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The conversion between minterm and maxterm indices for a function and its complement.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        128,
        129,
        144
      ],
      "dependents": [
        152
      ],
      "microsims": [
        "minterm-maxterm-converter"
      ]
    },
    "137": {
      "id": 137,
      "label": "Maxterm to Minterm",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The conversion between maxterm and minterm indices using the complement relationship.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        128,
        129,
        144
      ],
      "dependents": [
        153
      ],
      "microsims": [
        "minterm-maxterm-converter"
      ]
    },
    "138": {
      "id": 138,
      "label": "Canonical SOP Form",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A Boolean expression written as a sum of minterms, where each minterm contains all variables.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        126,
        134
      ],
      "dependents": [
        150,
        152,
        153,
        184
      ],
      "microsims": []
    },
    "139": {
      "id": 139,
      "label": "Canonical POS Form",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A Boolean expression written as a product of maxterms, where each maxterm contains all variables.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        126,
        135
      ],
      "dependents": [
        151,
        152,
        153,
        185
      ],
      "microsims": []
    },
    "140": {
      "id": 140,
      "label": "Minterm List Notation",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A compact representation listing the indices of minterms that form a function's SOP expression.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        132,
        134
      ],
      "dependents": [
        142
      ],
      "microsims": []
    },
    "141": {
      "id": 141,
      "label": "Maxterm List Notation",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A compact representation listing the indices of maxterms that form a function's POS expression.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        133,
        135
      ],
      "dependents": [
        143
      ],
      "microsims": []
    },
    "142": {
      "id": 142,
      "label": "Sigma Notation",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The summation notation using the Greek letter \u03a3 to represent a Boolean function as a sum of minterms.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        140
      ],
      "dependents": [
        201
      ],
      "microsims": [
        "minterm-visualizer"
      ]
    },
    "143": {
      "id": 143,
      "label": "Pi Notation",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The product notation using the Greek letter \u03a0 to represent a Boolean function as a product of maxterms.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        141
      ],
      "dependents": [
        201
      ],
      "microsims": [
        "pi-chart-interactive"
      ]
    },
    "144": {
      "id": 144,
      "label": "Complement of Function",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The Boolean function formed by inverting every output value of a given function, exchanging its minterms and maxterms.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        50,
        66,
        77,
        78
      ],
      "dependents": [
        136,
        137,
        152,
        153,
        154
      ],
      "microsims": []
    },
    "145": {
      "id": 145,
      "label": "Function from Truth Table",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The process of deriving a Boolean expression from a truth table by identifying rows where the output is 1.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        64,
        66
      ],
      "dependents": [
        146,
        147
      ],
      "microsims": [
        "truth-table-canonical-form"
      ]
    },
    "146": {
      "id": 146,
      "label": "Minterm from Truth Table",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The process of writing a minterm for each row where the function output is 1.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        128,
        145
      ],
      "dependents": [
        161
      ],
      "microsims": []
    },
    "147": {
      "id": 147,
      "label": "Maxterm from Truth Table",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The process of writing a maxterm for each row where the function output is 0.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        129,
        145
      ],
      "dependents": [],
      "microsims": []
    },
    "148": {
      "id": 148,
      "label": "Dont Care Condition",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "An input combination for which the output value is unspecified, allowing flexibility in optimization.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        64,
        66
      ],
      "dependents": [
        125,
        149,
        150,
        151,
        159,
        188,
        218
      ],
      "microsims": [
        "dont-care-optimizer"
      ]
    },
    "149": {
      "id": 149,
      "label": "Incompletely Specified",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A Boolean function for which some input combinations have undefined (don't care) outputs.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        125,
        148
      ],
      "dependents": [
        188
      ],
      "microsims": []
    },
    "150": {
      "id": 150,
      "label": "Dont Care in SOP",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The use of unspecified output conditions as 1s when simplifying using sum-of-products form.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        138,
        148
      ],
      "dependents": [
        189
      ],
      "microsims": [
        "dont-care-optimizer"
      ]
    },
    "151": {
      "id": 151,
      "label": "Dont Care in POS",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The use of unspecified output conditions as 1s when simplifying using product-of-sums form.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        139,
        148
      ],
      "dependents": [
        189
      ],
      "microsims": [
        "dont-care-optimizer"
      ]
    },
    "152": {
      "id": 152,
      "label": "Converting SOP to POS",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The process of transforming a sum-of-products expression into an equivalent product-of-sums expression, typically via double complementation and DeMorgan's theorem.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        136,
        138,
        139,
        144
      ],
      "dependents": [
        184
      ],
      "microsims": []
    },
    "153": {
      "id": 153,
      "label": "Converting POS to SOP",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The process of transforming a product-of-sums expression into an equivalent sum-of-products expression, typically via double complementation and DeMorgan's theorem.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        137,
        138,
        139,
        144
      ],
      "dependents": [],
      "microsims": []
    },
    "154": {
      "id": 154,
      "label": "Expansion Theorem",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A theorem allowing a Boolean function to be expressed in terms of its cofactors with respect to a variable.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        74,
        144
      ],
      "dependents": [
        155
      ],
      "microsims": []
    },
    "155": {
      "id": 155,
      "label": "Shannon Expansion",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "A theorem expressing a Boolean function as a sum of two cofactors, each restricted to one value of a chosen expansion variable.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        42,
        154
      ],
      "dependents": [
        156,
        259
      ],
      "microsims": [
        "shannon-expansion-explorer"
      ]
    },
    "156": {
      "id": 156,
      "label": "Cofactor",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The resulting function when a variable in a Boolean function is set to a constant value (0 or 1).",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        42,
        155
      ],
      "dependents": [
        259
      ],
      "microsims": []
    },
    "157": {
      "id": 157,
      "label": "On-Set of Function",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The set of input combinations for which a Boolean function evaluates to 1.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        64,
        66,
        128
      ],
      "dependents": [
        159,
        174
      ],
      "microsims": []
    },
    "158": {
      "id": 158,
      "label": "Off-Set of Function",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The set of input combinations for which a Boolean function evaluates to 0.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        64,
        66,
        129
      ],
      "dependents": [
        159,
        175
      ],
      "microsims": []
    },
    "159": {
      "id": 159,
      "label": "DC-Set of Function",
      "group": "CANON",
      "category": "Canonical Forms",
      "definition": "The set of input combinations for which an incompletely specified Boolean function's output is unspecified (don't-care), as distinguished from its on-set and off-set.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        148,
        157,
        158
      ],
      "dependents": [
        188
      ],
      "microsims": []
    },
    "160": {
      "id": 160,
      "label": "Literal Count",
      "group": "FORMS",
      "category": "Boolean Forms",
      "definition": "The total number of variable appearances in a Boolean expression, used as a primary metric for expression complexity and implementation cost.",
      "chapter": 4,
      "chapterTitle": "Minterm and Maxterm Expansions",
      "chapterDir": "unit4-minterm-maxterm-expansions",
      "chapterUrl": "../../unit4-minterm-maxterm-expansions/",
      "glossaryUrl": "../../unit4-minterm-maxterm-expansions/glossary/",
      "quizUrl": "../../unit4-minterm-maxterm-expansions/quiz/",
      "problemsUrl": "../../unit4-minterm-maxterm-expansions/problems/",
      "challengeUrl": "../../unit4-minterm-maxterm-expansions/challenge/",
      "prerequisites": [
        65,
        81
      ],
      "dependents": [
        186,
        187,
        194
      ],
      "microsims": []
    },
    "161": {
      "id": 161,
      "label": "Karnaugh Map",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A graphical method for simplifying Boolean expressions using a grid where adjacent cells differ by one variable.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        64,
        128,
        129,
        146
      ],
      "dependents": [
        162,
        188,
        199
      ],
      "microsims": [
        "kmap-solver",
        "kmap-practice-challenge"
      ]
    },
    "162": {
      "id": 162,
      "label": "K-Map Structure",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The two-dimensional grid layout of a Karnaugh map with Gray-coded row and column headers.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        161
      ],
      "dependents": [
        163,
        164,
        165,
        169,
        170
      ],
      "microsims": []
    },
    "163": {
      "id": 163,
      "label": "K-Map Cell",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A single square in a Karnaugh map representing one minterm or maxterm of the function.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        128,
        162
      ],
      "dependents": [
        164
      ],
      "microsims": []
    },
    "164": {
      "id": 164,
      "label": "K-Map Variables",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The Boolean variables represented by the rows and columns of a Karnaugh map.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        42,
        162,
        163
      ],
      "dependents": [
        165
      ],
      "microsims": []
    },
    "165": {
      "id": 165,
      "label": "Two Variable K-Map",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A Karnaugh map with 4 cells for functions of two variables.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        162,
        164
      ],
      "dependents": [
        166
      ],
      "microsims": []
    },
    "166": {
      "id": 166,
      "label": "Three Variable K-Map",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A Karnaugh map with 8 cells for functions of three variables.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        165
      ],
      "dependents": [
        167
      ],
      "microsims": [
        "kmap-3var-simulator"
      ]
    },
    "167": {
      "id": 167,
      "label": "Four Variable K-Map",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A Karnaugh map with 16 cells arranged in a 4\u00d74 grid for functions of four variables.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        166
      ],
      "dependents": [
        168,
        197
      ],
      "microsims": []
    },
    "168": {
      "id": 168,
      "label": "Five Variable K-Map",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A Karnaugh map for functions of five variables, typically drawn as two adjacent 4-variable maps.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        167
      ],
      "dependents": [
        197,
        198
      ],
      "microsims": []
    },
    "169": {
      "id": 169,
      "label": "K-Map Gray Code Order",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The arrangement of K-map rows and columns using Gray code sequence so adjacent cells differ by one bit.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        120,
        162
      ],
      "dependents": [
        170
      ],
      "microsims": []
    },
    "170": {
      "id": 170,
      "label": "K-Map Adjacency",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The property where cells in a Karnaugh map differ by exactly one variable, allowing them to be grouped.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        162,
        169
      ],
      "dependents": [
        171,
        172,
        173,
        178
      ],
      "microsims": []
    },
    "171": {
      "id": 171,
      "label": "Logical Adjacency",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The property of two K-map cells differing in exactly one variable, allowing them to be grouped.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        170
      ],
      "dependents": [
        173,
        206
      ],
      "microsims": []
    },
    "172": {
      "id": 172,
      "label": "Physical Adjacency",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The spatial nearness of cells on a K-map grid, not always matching logical adjacency due to wraparound.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        170
      ],
      "dependents": [
        173
      ],
      "microsims": []
    },
    "173": {
      "id": 173,
      "label": "K-Map Grouping",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The process of combining adjacent cells in a K-map to simplify Boolean expressions.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        170,
        171,
        172
      ],
      "dependents": [
        174,
        175,
        176,
        177,
        180,
        190
      ],
      "microsims": [
        "kmap-simplification-walkthrough"
      ]
    },
    "174": {
      "id": 174,
      "label": "Group of Ones",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A rectangular grouping of cells containing 1s on a K-map, used for SOP simplification.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        157,
        173
      ],
      "dependents": [
        184,
        191
      ],
      "microsims": []
    },
    "175": {
      "id": 175,
      "label": "Group of Zeros",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A rectangular grouping of cells containing 0s on a K-map, used for POS simplification.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        158,
        173
      ],
      "dependents": [
        185,
        192
      ],
      "microsims": []
    },
    "176": {
      "id": 176,
      "label": "Valid Group Sizes",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The allowable number of cells in a K-map group, which must be powers of 2 (1, 2, 4, 8, 16, ...).",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        173
      ],
      "dependents": [
        177
      ],
      "microsims": []
    },
    "177": {
      "id": 177,
      "label": "Rectangular Groups",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "Valid K-map groupings that form rectangles (including squares) with sides of power-of-2 length.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        173,
        176
      ],
      "dependents": [
        178
      ],
      "microsims": []
    },
    "178": {
      "id": 178,
      "label": "Wrapping in K-Maps",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The property that K-map edges are logically adjacent, allowing groups to wrap around the map.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        170,
        177
      ],
      "dependents": [
        179
      ],
      "microsims": []
    },
    "179": {
      "id": 179,
      "label": "Corner Grouping",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The technique in K-maps of grouping cells at opposite corners that are logically adjacent due to wraparound.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        178
      ],
      "dependents": [
        184
      ],
      "microsims": []
    },
    "180": {
      "id": 180,
      "label": "Implicant",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A product term that evaluates to 1 only for input combinations where the function also equals 1.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        82,
        173
      ],
      "dependents": [
        181,
        190,
        203
      ],
      "microsims": []
    },
    "181": {
      "id": 181,
      "label": "Prime Implicant",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "An implicant that cannot be combined with another to form a larger implicant.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        180
      ],
      "dependents": [
        182,
        183,
        184,
        185,
        201,
        210
      ],
      "microsims": [
        "prime-implicant-finder"
      ]
    },
    "182": {
      "id": 182,
      "label": "Essential Prime Implicant",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A prime implicant that is the only one covering at least one minterm of the function.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        181
      ],
      "dependents": [
        183,
        184,
        185,
        201,
        212
      ],
      "microsims": [
        "prime-implicant-finder"
      ]
    },
    "183": {
      "id": 183,
      "label": "Redundant Prime Implicant",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A prime implicant that is not essential and whose minterms are all covered by other prime implicants.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        181,
        182
      ],
      "dependents": [
        193
      ],
      "microsims": []
    },
    "184": {
      "id": 184,
      "label": "K-Map SOP Simplification",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The process of using a K-map to derive a minimal sum-of-products expression by grouping 1-cells.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        127,
        138,
        152,
        174,
        179,
        181,
        182
      ],
      "dependents": [
        186,
        193,
        200
      ],
      "microsims": [
        "kmap-simplification-walkthrough"
      ]
    },
    "185": {
      "id": 185,
      "label": "K-Map POS Simplification",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The process of using a K-map to derive a minimal product-of-sums expression by grouping 0-cells.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        139,
        175,
        181,
        182
      ],
      "dependents": [
        187,
        193,
        200
      ],
      "microsims": []
    },
    "186": {
      "id": 186,
      "label": "Minimal SOP Expression",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A sum-of-products expression with the minimum number of product terms and literals.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        160,
        184
      ],
      "dependents": [
        194,
        201,
        217,
        328
      ],
      "microsims": []
    },
    "187": {
      "id": 187,
      "label": "Minimal POS Expression",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A product-of-sums expression with the minimum number of maxterms and literals.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        160,
        185
      ],
      "dependents": [
        194
      ],
      "microsims": []
    },
    "188": {
      "id": 188,
      "label": "K-Map with Dont Cares",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A Karnaugh map containing cells marked with 'X' or 'd' representing don't care conditions.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        148,
        149,
        159,
        161
      ],
      "dependents": [
        189
      ],
      "microsims": [
        "kmap-dont-cares"
      ]
    },
    "189": {
      "id": 189,
      "label": "Using Dont Cares",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The technique of treating don't care conditions as 1s or 0s to create larger K-map groups.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        150,
        151,
        188
      ],
      "dependents": [
        200
      ],
      "microsims": [
        "kmap-dont-cares"
      ]
    },
    "190": {
      "id": 190,
      "label": "Overlapping Groups",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The practice in K-map simplification of allowing groups to share cells, which is valid and often necessary.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        173,
        180
      ],
      "dependents": [
        191,
        192
      ],
      "microsims": []
    },
    "191": {
      "id": 191,
      "label": "Covering All Ones",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The process in K-map SOP simplification of ensuring every cell containing a 1 belongs to at least one group.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        174,
        190
      ],
      "dependents": [
        193
      ],
      "microsims": []
    },
    "192": {
      "id": 192,
      "label": "Covering All Zeros",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The process in K-map POS simplification of ensuring every cell containing a 0 belongs to at least one group.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        175,
        190
      ],
      "dependents": [
        193
      ],
      "microsims": []
    },
    "193": {
      "id": 193,
      "label": "Multiple Solutions",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The existence of more than one minimal Boolean expression with the same cost.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        183,
        184,
        185,
        191,
        192
      ],
      "dependents": [
        194
      ],
      "microsims": []
    },
    "194": {
      "id": 194,
      "label": "Cost of Expression",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A metric measuring the complexity of a Boolean expression, typically counting the number of gates or literals required.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        160,
        186,
        187,
        193
      ],
      "dependents": [
        195,
        196,
        250
      ],
      "microsims": []
    },
    "195": {
      "id": 195,
      "label": "Gate Count Minimization",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The optimization goal of implementing a Boolean function with the fewest possible logic gates.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        51,
        194
      ],
      "dependents": [
        224,
        241,
        248,
        250
      ],
      "microsims": []
    },
    "196": {
      "id": 196,
      "label": "Literal Minimization",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The optimization goal of reducing the number of variable occurrences in a Boolean expression.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        81,
        194
      ],
      "dependents": [
        223
      ],
      "microsims": []
    },
    "197": {
      "id": 197,
      "label": "K-Map Limitations",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The practical constraints of Karnaugh maps, including difficulty with more than 5-6 variables and potential for human error.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        167,
        168
      ],
      "dependents": [
        198
      ],
      "microsims": []
    },
    "198": {
      "id": 198,
      "label": "Five Variable Technique",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "The method of handling 5-variable K-maps by comparing corresponding cells in two 4-variable submaps.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        168,
        197
      ],
      "dependents": [
        199
      ],
      "microsims": []
    },
    "199": {
      "id": 199,
      "label": "Entered Variable K-Map",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A K-map technique where cells contain variables or expressions instead of just 0s and 1s, reducing the map size.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        42,
        161,
        198
      ],
      "dependents": [
        200
      ],
      "microsims": []
    },
    "200": {
      "id": 200,
      "label": "K-Map vs Algebraic Method",
      "group": "KMAP",
      "category": "Karnaugh Maps",
      "definition": "A comparison of the graphical K-map approach versus algebraic simplification using Boolean laws.",
      "chapter": 5,
      "chapterTitle": "Karnaugh Maps",
      "chapterDir": "unit5-karnaugh-maps",
      "chapterUrl": "../../unit5-karnaugh-maps/",
      "glossaryUrl": "../../unit5-karnaugh-maps/glossary/",
      "quizUrl": "../../unit5-karnaugh-maps/quiz/",
      "problemsUrl": "../../unit5-karnaugh-maps/problems/",
      "challengeUrl": "../../unit5-karnaugh-maps/challenge/",
      "prerequisites": [
        79,
        80,
        184,
        185,
        189,
        199
      ],
      "dependents": [
        220
      ],
      "microsims": []
    },
    "201": {
      "id": 201,
      "label": "Quine-McCluskey Algorithm",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "A systematic tabular method for finding the minimal sum-of-products form of a Boolean function.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        142,
        143,
        181,
        182,
        186
      ],
      "dependents": [
        202,
        218,
        219,
        220
      ],
      "microsims": [
        "qm-method-walkthrough",
        "qm-complete-walkthrough"
      ]
    },
    "202": {
      "id": 202,
      "label": "Tabular Minimization Method",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "A systematic algorithm for Boolean function simplification using organized tables of minterms.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        128,
        201
      ],
      "dependents": [
        203
      ],
      "microsims": []
    },
    "203": {
      "id": 203,
      "label": "Implicant Table Construction",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The first phase of the Quine-McCluskey method where minterms are listed and grouped by the number of 1-bits.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        180,
        202
      ],
      "dependents": [
        205,
        211
      ],
      "microsims": []
    },
    "204": {
      "id": 204,
      "label": "Binary Representation of Minterms",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The encoding of each minterm as a binary number where each bit indicates whether a variable appears in complemented (0) or uncomplemented (1) form.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        3,
        128
      ],
      "dependents": [
        205,
        207
      ],
      "microsims": []
    },
    "205": {
      "id": 205,
      "label": "Grouping by Number of Ones",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The initial step in the Quine-McCluskey method where minterms are organized by the count of 1-bits in their binary representation.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        203,
        204
      ],
      "dependents": [
        206
      ],
      "microsims": [
        "qm-grouping-visualization"
      ]
    },
    "206": {
      "id": 206,
      "label": "Adjacency Criterion in QM",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The requirement in the Quine-McCluskey method that two terms can combine only if they differ in exactly one bit position while having identical values elsewhere.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        171,
        205
      ],
      "dependents": [
        207
      ],
      "microsims": []
    },
    "207": {
      "id": 207,
      "label": "Combining Adjacent Minterms",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The process in the Quine-McCluskey method of merging two minterms that differ in exactly one variable to form a larger implicant.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        204,
        206
      ],
      "dependents": [
        208,
        209
      ],
      "microsims": [
        "qm-combination-simulator"
      ]
    },
    "208": {
      "id": 208,
      "label": "Dash Notation for Combined Terms",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The convention in the Quine-McCluskey method of using a dash (-) to represent a variable that has been eliminated through combination.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        207
      ],
      "dependents": [
        209
      ],
      "microsims": []
    },
    "209": {
      "id": 209,
      "label": "Iterative Combination Process",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The repeated application of the combination step in the Quine-McCluskey method until no more combinations are possible.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        207,
        208
      ],
      "dependents": [
        210,
        222
      ],
      "microsims": []
    },
    "210": {
      "id": 210,
      "label": "Unchecked Terms as Prime Implicants",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "Terms in the Quine-McCluskey combination table that cannot combine further, identified as prime implicants.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        181,
        209
      ],
      "dependents": [
        211,
        221,
        222
      ],
      "microsims": []
    },
    "211": {
      "id": 211,
      "label": "Prime Implicant Chart Construction",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The creation of a table showing which minterms each prime implicant covers, used to find minimum covers.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        203,
        210
      ],
      "dependents": [
        212,
        213,
        214,
        221,
        222
      ],
      "microsims": [
        "qm-complete-walkthrough"
      ]
    },
    "212": {
      "id": 212,
      "label": "Essential Prime Implicants Selection",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The process in the Quine-McCluskey method of identifying and selecting prime implicants that must appear in any minimum solution.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        182,
        211
      ],
      "dependents": [
        213,
        214,
        216
      ],
      "microsims": []
    },
    "213": {
      "id": 213,
      "label": "Row Dominance",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "A technique in prime implicant chart reduction where a PI covering a superset of another's minterms can replace it.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        211,
        212
      ],
      "dependents": [
        215
      ],
      "microsims": []
    },
    "214": {
      "id": 214,
      "label": "Column Dominance",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "A technique in prime implicant chart reduction where a minterm column covered by the same or more prime implicants as another can be removed.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        211,
        212
      ],
      "dependents": [
        215
      ],
      "microsims": []
    },
    "215": {
      "id": 215,
      "label": "Cyclic Prime Implicant Charts",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "Prime implicant charts with no essential prime implicants, where every minterm is covered by multiple prime implicants equally.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        213,
        214
      ],
      "dependents": [
        216
      ],
      "microsims": []
    },
    "216": {
      "id": 216,
      "label": "Petrick's Method",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "An algebraic technique for finding all minimum covers in cyclic prime implicant charts.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        212,
        215
      ],
      "dependents": [
        217
      ],
      "microsims": []
    },
    "217": {
      "id": 217,
      "label": "Minimal Cover Selection",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The process of choosing the smallest set of prime implicants that covers all required minterms.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        186,
        216
      ],
      "dependents": [
        221,
        223,
        224
      ],
      "microsims": []
    },
    "218": {
      "id": 218,
      "label": "QM Method with Don't Cares",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The application of the Quine-McCluskey algorithm when don't care conditions are present.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        148,
        201
      ],
      "dependents": [],
      "microsims": []
    },
    "219": {
      "id": 219,
      "label": "Computational Complexity of QM",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The measure of time and space resources required by the Quine-McCluskey algorithm, which grows exponentially with the number of variables.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        201,
        222
      ],
      "dependents": [
        220
      ],
      "microsims": [
        "qm-complexity-chart"
      ]
    },
    "220": {
      "id": 220,
      "label": "QM versus K-map Comparison",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "An analysis of the relative advantages of the Quine-McCluskey method and Karnaugh maps.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        200,
        201,
        219
      ],
      "dependents": [
        225
      ],
      "microsims": []
    },
    "221": {
      "id": 221,
      "label": "Multi-Output Function Minimization",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The optimization of multiple Boolean functions simultaneously to share common product terms.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        210,
        211,
        217
      ],
      "dependents": [
        225
      ],
      "microsims": []
    },
    "222": {
      "id": 222,
      "label": "Computer Implementation of QM",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The encoding of the Quine-McCluskey algorithm as software that systematically finds minimum Boolean expressions.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        209,
        210,
        211
      ],
      "dependents": [
        219
      ],
      "microsims": []
    },
    "223": {
      "id": 223,
      "label": "Literal Count Optimization",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The process of minimizing the total number of literals in a Boolean expression.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        196,
        217
      ],
      "dependents": [],
      "microsims": []
    },
    "224": {
      "id": 224,
      "label": "Gate Count Optimization",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The process of reducing the total number of gates required to implement a Boolean function.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        195,
        217
      ],
      "dependents": [
        225
      ],
      "microsims": []
    },
    "225": {
      "id": 225,
      "label": "Systematic Approach Advantages",
      "group": "QM",
      "category": "Quine-McCluskey Method",
      "definition": "The benefits of using algorithmic methods like Quine-McCluskey that guarantee finding optimal solutions.",
      "chapter": 6,
      "chapterTitle": "Quine-McCluskey Method",
      "chapterDir": "unit6-quine-mccluskey",
      "chapterUrl": "../../unit6-quine-mccluskey/",
      "glossaryUrl": "../../unit6-quine-mccluskey/glossary/",
      "quizUrl": "../../unit6-quine-mccluskey/quiz/",
      "problemsUrl": "../../unit6-quine-mccluskey/problems/",
      "challengeUrl": "../../unit6-quine-mccluskey/challenge/",
      "prerequisites": [
        220,
        221,
        224
      ],
      "dependents": [],
      "microsims": []
    },
    "226": {
      "id": 226,
      "label": "Two-Level vs Multi-Level Circuits",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A comparison of circuits limited to two gate levels (SOP/POS) against circuits with three or more cascaded gate levels, trading speed for reduced gate count.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        89,
        91,
        93
      ],
      "dependents": [
        228,
        336,
        351
      ],
      "microsims": [
        "multi-level-analyzer"
      ]
    },
    "227": {
      "id": 227,
      "label": "Two-Level Circuit Definition",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A logic circuit with exactly two levels of gates (such as AND-OR for SOP or OR-AND for POS), providing minimum propagation delay but potentially requiring high fan-in gates and large gate counts for complex functions.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        84,
        85,
        93
      ],
      "dependents": [
        228,
        237
      ],
      "microsims": []
    },
    "228": {
      "id": 228,
      "label": "Multi-Level Circuit Definition",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A logic circuit with three or more levels of gates between inputs and outputs, trading increased propagation delay for reduced gate count, lower fan-in, and smaller chip area compared to two-level implementations.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        89,
        226,
        227
      ],
      "dependents": [
        240,
        242,
        243,
        245,
        246,
        248,
        336
      ],
      "microsims": []
    },
    "229": {
      "id": 229,
      "label": "NAND-NAND Realization",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A two-level circuit implementation in which a sum-of-products expression is realized entirely with NAND gates in place of AND and OR gates.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        56,
        61,
        84
      ],
      "dependents": [
        231,
        232,
        234
      ],
      "microsims": [
        "nand-conversion-walkthrough"
      ]
    },
    "230": {
      "id": 230,
      "label": "NOR-NOR Realization",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A two-level circuit implementation in which a product-of-sums expression is realized entirely with NOR gates in place of OR and AND gates.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        57,
        61,
        85
      ],
      "dependents": [
        231,
        232,
        234
      ],
      "microsims": []
    },
    "231": {
      "id": 231,
      "label": "NAND-NOR Mixed Networks",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "Multi-level circuits that combine NAND and NOR gates to realize a function more efficiently than a single-gate-type implementation.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        229,
        230
      ],
      "dependents": [],
      "microsims": [
        "nand-nor-converter"
      ]
    },
    "232": {
      "id": 232,
      "label": "NOR-NAND Mixed Networks",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "Multi-level circuits built from a mixture of NOR and NAND gates, used when it reduces the total gate or level count.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        229,
        230
      ],
      "dependents": [],
      "microsims": []
    },
    "233": {
      "id": 233,
      "label": "Bubble Pushing Technique",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A visual technique for converting circuits between gate types by systematically moving inversion bubbles through a circuit, applying De Morgan's theorem graphically at each gate boundary.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        56,
        57,
        77,
        78
      ],
      "dependents": [
        234
      ],
      "microsims": [
        "bubble-pushing-simulator"
      ]
    },
    "234": {
      "id": 234,
      "label": "Gate-Level Transformation",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "The systematic conversion of a gate network from one logically equivalent form to another, such as AND/OR to NAND/NAND, using Boolean identities.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        229,
        230,
        233
      ],
      "dependents": [],
      "microsims": []
    },
    "235": {
      "id": 235,
      "label": "AOI Gate",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A complex CMOS gate that computes the complement of the OR of multiple AND terms in a single transistor structure, implementing functions of the form &overline;(AB + CD) with approximately one gate delay.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        52,
        53,
        56
      ],
      "dependents": [
        237
      ],
      "microsims": []
    },
    "236": {
      "id": 236,
      "label": "OAI Gate",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A complex CMOS gate that computes the complement of the AND of multiple OR terms in a single transistor structure, implementing functions of the form &overline;((A+B)(C+D)) as the dual of the AOI gate.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        52,
        53,
        57
      ],
      "dependents": [
        237
      ],
      "microsims": []
    },
    "237": {
      "id": 237,
      "label": "AOI-OAI Circuit Forms",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "Circuit structures built from AND-OR-Invert and OR-AND-Invert gates that realize a two-level function in a single physical gate.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        227,
        235,
        236
      ],
      "dependents": [],
      "microsims": []
    },
    "238": {
      "id": 238,
      "label": "Propagation Delay",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "The time required for a signal change at a gate input to produce a corresponding change at its output, measured from the input transition midpoint to the output transition midpoint.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        51,
        93
      ],
      "dependents": [
        239,
        240,
        296,
        404
      ],
      "microsims": [
        "critical-path-delay-explorer"
      ]
    },
    "239": {
      "id": 239,
      "label": "Gate Delay Model",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "The propagation delay through a single logic gate, typically measured in nanoseconds, used as the basic unit for calculating total circuit delay along signal paths.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        51,
        238
      ],
      "dependents": [
        240
      ],
      "microsims": []
    },
    "240": {
      "id": 240,
      "label": "Critical Path Analysis",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "The longest signal propagation path from any primary input to any primary output in a circuit, measured in total gate delays, which determines the worst-case propagation delay of the entire circuit.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        228,
        238,
        239
      ],
      "dependents": [
        241,
        249
      ],
      "microsims": [
        "critical-path-delay-explorer"
      ]
    },
    "241": {
      "id": 241,
      "label": "Circuit Delay Optimization",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "Restructuring a multi-level circuit's gates and levels to reduce its worst-case propagation delay.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        195,
        240
      ],
      "dependents": [
        250,
        405
      ],
      "microsims": []
    },
    "242": {
      "id": 242,
      "label": "Fan-In Constraints",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "The number of inputs to a logic gate, limited by electrical constraints in CMOS technology (typically 2\u20134 inputs in standard cell libraries), with higher fan-in increasing propagation delay and reducing noise margins.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        88,
        90,
        228
      ],
      "dependents": [
        243
      ],
      "microsims": []
    },
    "243": {
      "id": 243,
      "label": "Multi-Level Fan-In Reduction",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "Restructuring a multi-level circuit so that no gate exceeds a target number of inputs, typically by introducing extra levels of smaller-fan-in gates.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        89,
        228,
        242
      ],
      "dependents": [
        249
      ],
      "microsims": []
    },
    "244": {
      "id": 244,
      "label": "Factoring Boolean Expressions",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A multi-level optimization technique that extracts common factors from a two-level sum-of-products expression to reduce total gate and literal count.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        80,
        84,
        85
      ],
      "dependents": [
        245,
        246,
        247
      ],
      "microsims": []
    },
    "245": {
      "id": 245,
      "label": "Multi-Level Synthesis from SOP",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "The process of factoring a sum-of-products expression into a multi-level network to reduce gate count or fan-in.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        84,
        228,
        244
      ],
      "dependents": [],
      "microsims": []
    },
    "246": {
      "id": 246,
      "label": "Multi-Level Synthesis from POS",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "The process of factoring a product-of-sums expression into a multi-level network to reduce gate count or fan-in.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        85,
        228,
        244
      ],
      "dependents": [],
      "microsims": []
    },
    "247": {
      "id": 247,
      "label": "Algebraic Factoring",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "The application of Boolean algebra identities, such as the distributive law, to manually factor an expression into a more compact multi-level form.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        74,
        80,
        244
      ],
      "dependents": [
        248,
        249
      ],
      "microsims": []
    },
    "248": {
      "id": 248,
      "label": "Common Sub-expression Elimination",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A Boolean sub-expression that appears in multiple output functions and can be computed once and shared, reducing overall gate count in a multi-output circuit.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        195,
        228,
        247
      ],
      "dependents": [],
      "microsims": []
    },
    "249": {
      "id": 249,
      "label": "Level Reduction Techniques",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "A set of optimization techniques (flattening, partial flattening, algebraic restructuring) that decrease the number of gate levels in a multi-level circuit to reduce propagation delay.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        240,
        243,
        247
      ],
      "dependents": [
        250
      ],
      "microsims": []
    },
    "250": {
      "id": 250,
      "label": "Multi-Level Cost Analysis",
      "group": "MLEV",
      "category": "Multi-Level Circuits",
      "definition": "Evaluating a multi-level circuit implementation by its gate count, literal count, and number of levels to compare design alternatives.",
      "chapter": 7,
      "chapterTitle": "Multi-Level Gate Circuits",
      "chapterDir": "unit7-multi-level-gates",
      "chapterUrl": "../../unit7-multi-level-gates/",
      "glossaryUrl": "../../unit7-multi-level-gates/glossary/",
      "quizUrl": "../../unit7-multi-level-gates/quiz/",
      "problemsUrl": "../../unit7-multi-level-gates/problems/",
      "challengeUrl": "../../unit7-multi-level-gates/challenge/",
      "prerequisites": [
        194,
        195,
        241,
        249
      ],
      "dependents": [],
      "microsims": []
    },
    "251": {
      "id": 251,
      "label": "Multiplexer",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A combinational circuit that selects one of 2^n data inputs and routes it to a single output, controlled by n select signals that determine which input is connected to the output.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        91,
        100,
        101
      ],
      "dependents": [
        252,
        255,
        256,
        270,
        307,
        375
      ],
      "microsims": [
        "mux-simulator"
      ]
    },
    "252": {
      "id": 252,
      "label": "2-to-1 Multiplexer",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A multiplexer with two data inputs and a single select line that chooses which input is passed to the output.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        93,
        251
      ],
      "dependents": [
        253,
        257
      ],
      "microsims": []
    },
    "253": {
      "id": 253,
      "label": "4-to-1 Multiplexer",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A multiplexer with four data inputs and two select lines that choose which one input is passed to the output.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        89,
        252
      ],
      "dependents": [
        254
      ],
      "microsims": []
    },
    "254": {
      "id": 254,
      "label": "8-to-1 Multiplexer",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A multiplexer with eight data inputs and three select lines that choose which one input is passed to the output.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        89,
        253
      ],
      "dependents": [
        260
      ],
      "microsims": []
    },
    "255": {
      "id": 255,
      "label": "MUX Select Lines",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "The control inputs of a multiplexer that determine which one of its data inputs is routed to the output.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        101,
        251
      ],
      "dependents": [
        257
      ],
      "microsims": []
    },
    "256": {
      "id": 256,
      "label": "MUX Data Lines",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "The set of input lines to a multiplexer, one of which is selected and passed to the output based on the select lines.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        100,
        251
      ],
      "dependents": [
        257
      ],
      "microsims": []
    },
    "257": {
      "id": 257,
      "label": "MUX Boolean Expression",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "The Boolean equation describing a multiplexer's output as the sum of each data input ANDed with its corresponding select-line minterm.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        84,
        252,
        255,
        256
      ],
      "dependents": [
        258
      ],
      "microsims": [
        "mux-function-walkthrough"
      ]
    },
    "258": {
      "id": 258,
      "label": "MUX-Based Function Implementation",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A design technique that implements an arbitrary Boolean function directly by wiring its truth table values to the data inputs of a multiplexer.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        66,
        95,
        257
      ],
      "dependents": [
        259,
        260
      ],
      "microsims": []
    },
    "259": {
      "id": 259,
      "label": "Shannon Expansion for MUX",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "The application of Shannon's expansion theorem to implement a Boolean function directly with a multiplexer, using the expansion variable as the select input and the cofactors as the data inputs.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        155,
        156,
        258
      ],
      "dependents": [
        260
      ],
      "microsims": [
        "mux-function-walkthrough"
      ]
    },
    "260": {
      "id": 260,
      "label": "MUX Tree Implementation",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A technique for building a multiplexer with more select lines than a single device supports by cascading smaller multiplexers in a tree structure.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        254,
        258,
        259
      ],
      "dependents": [],
      "microsims": []
    },
    "261": {
      "id": 261,
      "label": "Decoder",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A combinational circuit that converts an n-bit binary input code into 2^n output lines, activating exactly one output corresponding to the input value while all other outputs remain inactive.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        91,
        93,
        128
      ],
      "dependents": [
        262,
        266,
        267,
        270,
        340
      ],
      "microsims": [
        "decoder-simulator"
      ]
    },
    "262": {
      "id": 262,
      "label": "2-to-4 Decoder",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A decoder with two inputs that activates exactly one of its four output lines based on the binary input code.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        93,
        261
      ],
      "dependents": [
        263,
        264
      ],
      "microsims": []
    },
    "263": {
      "id": 263,
      "label": "3-to-8 Decoder",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A decoder with three inputs that activates exactly one of its eight output lines based on the binary input code.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        89,
        262
      ],
      "dependents": [
        265
      ],
      "microsims": []
    },
    "264": {
      "id": 264,
      "label": "Decoder with Enable",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A decoder with an additional enable input that must be asserted for any output line to activate, allowing decoders to be cascaded or gated.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        100,
        262
      ],
      "dependents": [
        265
      ],
      "microsims": []
    },
    "265": {
      "id": 265,
      "label": "Decoder Expansion",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "The technique of combining smaller decoders and enable logic to build a decoder with more inputs and output lines than a single device provides.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        89,
        263,
        264
      ],
      "dependents": [
        272,
        275
      ],
      "microsims": []
    },
    "266": {
      "id": 266,
      "label": "Decoder-Based Function Implementation",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A design technique that implements a Boolean function by ORing together the decoder output lines corresponding to the function's minterms.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        95,
        134,
        261
      ],
      "dependents": [],
      "microsims": []
    },
    "267": {
      "id": 267,
      "label": "Encoder",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A combinational circuit that converts a set of input lines, typically in one-hot format, into a compact binary code representing which input is active.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        91,
        261
      ],
      "dependents": [
        268
      ],
      "microsims": []
    },
    "268": {
      "id": 268,
      "label": "Priority Encoder",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "An encoder that accepts multiple simultaneously active inputs and produces the binary code of the highest-priority (typically highest-numbered) active input.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        101,
        267
      ],
      "dependents": [
        269
      ],
      "microsims": [
        "priority-encoder-simulator"
      ]
    },
    "269": {
      "id": 269,
      "label": "Priority Encoder Valid Output",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A status output on a priority encoder that indicates whether any input is currently active, distinguishing a valid all-zero output code from the case where no input is asserted.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        100,
        268
      ],
      "dependents": [],
      "microsims": []
    },
    "270": {
      "id": 270,
      "label": "Demultiplexer",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A combinational circuit that routes a single data input to one of 2^n outputs based on n select signals, with all non-selected outputs remaining at their inactive level.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        251,
        261
      ],
      "dependents": [
        274
      ],
      "microsims": []
    },
    "271": {
      "id": 271,
      "label": "Magnitude Comparator Module",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A circuit that compares two multi-bit binary numbers and outputs their relative magnitude relationship.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        93,
        113
      ],
      "dependents": [
        272
      ],
      "microsims": [
        "magnitude-comparator"
      ]
    },
    "272": {
      "id": 272,
      "label": "Cascading Comparators",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "Connecting multiple magnitude comparator modules together, using their cascade inputs/outputs, to compare operands wider than a single comparator supports.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        90,
        265,
        271
      ],
      "dependents": [
        275
      ],
      "microsims": []
    },
    "273": {
      "id": 273,
      "label": "Tri-State Buffer",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A buffer with three possible output states \u2014 logic 0, logic 1, and high-impedance (disconnected) \u2014 controlled by an enable input, used to share a common bus.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        60,
        101
      ],
      "dependents": [
        274,
        353
      ],
      "microsims": [
        "tri-state-buffer-truth-table"
      ]
    },
    "274": {
      "id": 274,
      "label": "Bus Architecture",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "A shared set of wires that multiple digital devices connect to, using tri-state outputs so only one device drives the bus at a time.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        90,
        101,
        270,
        273
      ],
      "dependents": [],
      "microsims": []
    },
    "275": {
      "id": 275,
      "label": "Cascading Combinational Modules",
      "group": "CMOD",
      "category": "Combinational Modules",
      "definition": "Connecting multiple identical combinational modules, such as adders or comparators, to extend their function to a wider bit width.",
      "chapter": 8,
      "chapterTitle": "Combinational Logic Modules",
      "chapterDir": "unit8-combinational-modules",
      "chapterUrl": "../../unit8-combinational-modules/",
      "glossaryUrl": "../../unit8-combinational-modules/glossary/",
      "quizUrl": "../../unit8-combinational-modules/quiz/",
      "problemsUrl": "../../unit8-combinational-modules/problems/",
      "challengeUrl": "../../unit8-combinational-modules/challenge/",
      "prerequisites": [
        89,
        90,
        265,
        272
      ],
      "dependents": [],
      "microsims": []
    },
    "276": {
      "id": 276,
      "label": "Sequential vs Combinational Logic",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "Digital circuits whose outputs depend on both current inputs and the history of past inputs.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        91,
        92
      ],
      "dependents": [
        277,
        278,
        285,
        299,
        303
      ],
      "microsims": []
    },
    "277": {
      "id": 277,
      "label": "Memory Element",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A circuit element capable of storing one bit of information over time, forming the building block of sequential logic.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        276
      ],
      "dependents": [
        299,
        303
      ],
      "microsims": []
    },
    "278": {
      "id": 278,
      "label": "Feedback Loop",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A signal path in which a circuit's output is routed back to one of its inputs, creating the ability to sustain a state and providing the fundamental mechanism for memory in sequential circuits.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        51,
        276
      ],
      "dependents": [
        279,
        280
      ],
      "microsims": []
    },
    "279": {
      "id": 279,
      "label": "SR Latch (NOR)",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "An SR latch built from two cross-coupled NOR gates, where Set=1 forces Q=1 and Reset=1 forces Q=0, with S=R=0 holding the current state.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        57,
        278
      ],
      "dependents": [
        281,
        282
      ],
      "microsims": [
        "sr-latch-simulator"
      ]
    },
    "280": {
      "id": 280,
      "label": "SR Latch (NAND)",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "An SR latch built from two cross-coupled NAND gates using active-low inputs, where asserting S with 0 sets the output and asserting R with 0 resets it, with both inputs at 1 holding the current state.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        56,
        278
      ],
      "dependents": [
        281
      ],
      "microsims": [
        "sr-latch-simulator"
      ]
    },
    "281": {
      "id": 281,
      "label": "SR Latch Invalid State",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "The forbidden input condition on a latch's set and reset inputs that drives both outputs to the same value, producing an unpredictable next state when the inputs return to their inactive level.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        279,
        280
      ],
      "dependents": [
        283,
        291
      ],
      "microsims": []
    },
    "282": {
      "id": 282,
      "label": "Gated SR Latch",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "An SR latch augmented with an enable input that must be active for the set and reset inputs to affect the stored state, providing basic control over when state changes can occur.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        100,
        279
      ],
      "dependents": [
        283
      ],
      "microsims": []
    },
    "283": {
      "id": 283,
      "label": "D Latch",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A level-sensitive memory element that passes its data input D directly to output Q while the enable signal is active (transparent mode) and holds the last captured value when the enable goes inactive.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        281,
        282
      ],
      "dependents": [
        284,
        290
      ],
      "microsims": []
    },
    "284": {
      "id": 284,
      "label": "Latch Transparency",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "The property of a level-sensitive latch in which the output continuously follows the input while the enable signal is active, allowing multiple input changes to propagate to the output within a single enable period.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        283
      ],
      "dependents": [
        290
      ],
      "microsims": []
    },
    "285": {
      "id": 285,
      "label": "Clock Signal",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A periodic square wave that alternates between logic 0 and logic 1, serving as the timing reference that synchronizes all state changes in a synchronous sequential circuit.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        101,
        276
      ],
      "dependents": [
        286,
        294,
        295,
        298,
        300,
        406,
        409
      ],
      "microsims": []
    },
    "286": {
      "id": 286,
      "label": "Clock Edge",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "The instant a clock signal transitions from one logic level to the other, either rising (0 to 1) or falling (1 to 0).",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        285
      ],
      "dependents": [
        287,
        293
      ],
      "microsims": []
    },
    "287": {
      "id": 287,
      "label": "Edge Triggering",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A flip-flop control scheme in which the output changes state only at the instant of a clock edge, rather than throughout the level of the clock.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        286
      ],
      "dependents": [
        288,
        289,
        290
      ],
      "microsims": [
        "flipflop-timing-walkthrough"
      ]
    },
    "288": {
      "id": 288,
      "label": "Positive Edge Trigger",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A flip-flop triggering scheme in which state changes occur only on the rising (0-to-1) transition of the clock signal.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        287
      ],
      "dependents": [
        290
      ],
      "microsims": []
    },
    "289": {
      "id": 289,
      "label": "Negative Edge Trigger",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A flip-flop triggering scheme in which state changes occur only on the falling (1-to-0) transition of the clock signal.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        287
      ],
      "dependents": [
        293
      ],
      "microsims": []
    },
    "290": {
      "id": 290,
      "label": "D Flip-Flop",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "An edge-triggered memory element with a single data input D whose value is captured at the active clock edge and held at output Q until the next active edge, with the characteristic equation Q_next = D.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        283,
        284,
        287,
        288
      ],
      "dependents": [
        291,
        293,
        294,
        295,
        296,
        298,
        300,
        301,
        304,
        306,
        350
      ],
      "microsims": [
        "d-flipflop-simulator"
      ]
    },
    "291": {
      "id": 291,
      "label": "JK Flip-Flop",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "An edge-triggered memory element with two inputs J and K that provides four operations: hold (J=K=0), reset (J=0, K=1), set (J=1, K=0), and toggle (J=K=1), with the characteristic equation Q_next = JQ' + K'Q.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        281,
        290
      ],
      "dependents": [
        292
      ],
      "microsims": [
        "jk-flipflop-simulator"
      ]
    },
    "292": {
      "id": 292,
      "label": "T Flip-Flop",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "An edge-triggered memory element with a single toggle input T that either holds the current state (T = 0) or complements it (T = 1) at each active clock edge, with the characteristic equation Q_next = T XOR Q.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        291
      ],
      "dependents": [
        313
      ],
      "microsims": []
    },
    "293": {
      "id": 293,
      "label": "Master-Slave Flip-Flop",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A flip-flop constructed from two latches with complementary enables, where the master latch captures input data during one clock phase and the slave latch transfers it to the output during the opposite phase.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        286,
        289,
        290
      ],
      "dependents": [
        294
      ],
      "microsims": []
    },
    "294": {
      "id": 294,
      "label": "Setup Time",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "The minimum duration that a flip-flop's data input must be stable before the active clock edge arrives to ensure the value is correctly captured and stored.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        285,
        290,
        293
      ],
      "dependents": [
        297,
        404
      ],
      "microsims": [
        "setup-hold-metastability-explorer"
      ]
    },
    "295": {
      "id": 295,
      "label": "Hold Time",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "The minimum duration that a flip-flop's data input must remain stable after the active clock edge to ensure the input value is correctly captured by the internal circuitry.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        285,
        290
      ],
      "dependents": [
        297,
        404
      ],
      "microsims": [
        "setup-hold-metastability-explorer"
      ]
    },
    "296": {
      "id": 296,
      "label": "Clock-to-Q Delay",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "The time elapsed from the active clock edge until the flip-flop output Q settles to its new valid logic level, representing the flip-flop's output propagation delay.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        238,
        290
      ],
      "dependents": [
        332
      ],
      "microsims": []
    },
    "297": {
      "id": 297,
      "label": "Metastability",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "An unstable condition in which a flip-flop's output voltage hovers between valid logic 0 and logic 1 levels for an unpredictable duration, caused by violating setup or hold time requirements.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        294,
        295
      ],
      "dependents": [
        332
      ],
      "microsims": [
        "setup-hold-metastability-explorer"
      ]
    },
    "298": {
      "id": 298,
      "label": "Synchronous Logic",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "Sequential logic in which all state changes are coordinated by a common clock signal.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        285,
        290
      ],
      "dependents": [
        306,
        332
      ],
      "microsims": []
    },
    "299": {
      "id": 299,
      "label": "Asynchronous Logic",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "Sequential logic in which state changes can occur at any time in response to input changes, without a common clock signal.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        276,
        277
      ],
      "dependents": [
        332
      ],
      "microsims": []
    },
    "300": {
      "id": 300,
      "label": "Timing Diagram",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A graphical representation showing the values of multiple digital signals plotted against a common time axis, used to analyze and verify the temporal behavior of sequential circuits.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        285,
        290
      ],
      "dependents": [
        332
      ],
      "microsims": [
        "timing-diagram-analyzer"
      ]
    },
    "301": {
      "id": 301,
      "label": "Characteristic Table",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A table that defines the next state of a flip-flop based on its current inputs and, for some types, the current state, describing the device's behavior from the perspective of \"given inputs, find next state.\"",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        64,
        290
      ],
      "dependents": [
        302
      ],
      "microsims": []
    },
    "302": {
      "id": 302,
      "label": "Excitation Table",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "The inverse of a characteristic table, showing the required flip-flop input values to produce a desired state transition from a known current state, essential for sequential circuit design.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        95,
        301
      ],
      "dependents": [
        329,
        335
      ],
      "microsims": []
    },
    "303": {
      "id": 303,
      "label": "State",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "The stored internal information of a sequential circuit at a given time, represented by the values held in its memory elements, which together with current inputs determines the circuit's outputs.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        276,
        277
      ],
      "dependents": [
        304,
        305,
        308,
        319
      ],
      "microsims": []
    },
    "304": {
      "id": 304,
      "label": "Next State",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "The state a sequential circuit will transition to on the next active clock edge, determined by the current state and inputs.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        290,
        303
      ],
      "dependents": [
        305,
        313
      ],
      "microsims": []
    },
    "305": {
      "id": 305,
      "label": "State Transition",
      "group": "SEQF",
      "category": "Sequential Fundamentals",
      "definition": "A change from one state to another in a sequential circuit, occurring on a clock edge in response to the circuit's inputs.",
      "chapter": 9,
      "chapterTitle": "Sequential Logic Fundamentals",
      "chapterDir": "unit9-sequential-fundamentals",
      "chapterUrl": "../../unit9-sequential-fundamentals/",
      "glossaryUrl": "../../unit9-sequential-fundamentals/glossary/",
      "quizUrl": "../../unit9-sequential-fundamentals/quiz/",
      "problemsUrl": "../../unit9-sequential-fundamentals/problems/",
      "challengeUrl": "../../unit9-sequential-fundamentals/challenge/",
      "prerequisites": [
        303,
        304
      ],
      "dependents": [
        319,
        320
      ],
      "microsims": []
    },
    "306": {
      "id": 306,
      "label": "Register",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A group of flip-flops that stores a multi-bit binary word, with each flip-flop holding one bit, commonly used for temporary data storage, data transfer, and as building blocks in datapaths.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        290,
        298
      ],
      "dependents": [
        307,
        308,
        313,
        398,
        406
      ],
      "microsims": []
    },
    "307": {
      "id": 307,
      "label": "Parallel Load Register",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A register that can accept all of its data bits simultaneously on a single clock edge when a load enable signal is asserted, allowing an entire n-bit word to be captured in one clock cycle.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        251,
        306
      ],
      "dependents": [
        311,
        312
      ],
      "microsims": []
    },
    "308": {
      "id": 308,
      "label": "Shift Register",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A sequential circuit consisting of a chain of flip-flops where each flip-flop transfers its stored bit to the next flip-flop on every clock edge, shifting data through the register.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        303,
        306
      ],
      "dependents": [
        309,
        310,
        311,
        312,
        317,
        409
      ],
      "microsims": [
        "shift-register-simulator",
        "shift-register-walkthrough"
      ]
    },
    "309": {
      "id": 309,
      "label": "SISO Shift Register",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A shift register with a serial input and a serial output, shifting one bit in and one bit out each clock cycle.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        308
      ],
      "dependents": [
        334
      ],
      "microsims": []
    },
    "310": {
      "id": 310,
      "label": "SIPO Shift Register",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A shift register that accepts data one bit at a time on a serial input and makes all stored bits available simultaneously on parallel outputs.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        308
      ],
      "dependents": [
        334
      ],
      "microsims": []
    },
    "311": {
      "id": 311,
      "label": "PISO Shift Register",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A shift register that loads all bits simultaneously through parallel inputs and then shifts them out one bit at a time on a serial output.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        307,
        308
      ],
      "dependents": [
        334
      ],
      "microsims": []
    },
    "312": {
      "id": 312,
      "label": "PIPO Shift Register",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A shift register that loads all bits simultaneously through parallel inputs and outputs all bits simultaneously through parallel outputs, functioning as a simple register.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        307,
        308
      ],
      "dependents": [
        334
      ],
      "microsims": []
    },
    "313": {
      "id": 313,
      "label": "Binary Up Counter",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A sequential circuit composed of flip-flops that advances through its count sequence in increasing numerical order on each active clock edge.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        292,
        304,
        306
      ],
      "dependents": [
        314,
        315,
        316,
        398
      ],
      "microsims": [
        "counter-simulator"
      ]
    },
    "314": {
      "id": 314,
      "label": "Binary Down Counter",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A sequential circuit composed of flip-flops that advances through its count sequence in decreasing numerical order on each active clock edge.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        313
      ],
      "dependents": [
        315
      ],
      "microsims": [
        "counter-simulator"
      ]
    },
    "315": {
      "id": 315,
      "label": "Up-Down Counter",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A sequential circuit that progresses through a defined sequence of states in response to clock pulses, used for counting events, generating timing signals, or producing specific binary output patterns.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        313,
        314
      ],
      "dependents": [
        333
      ],
      "microsims": [
        "counter-simulator"
      ]
    },
    "316": {
      "id": 316,
      "label": "Modulo-N Counter",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A counter that cycles through exactly N distinct states before returning to its initial state, achieved either by using an N-state natural binary sequence or by adding reset logic to a larger counter.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        95,
        313
      ],
      "dependents": [
        317,
        333
      ],
      "microsims": [
        "counter-simulator"
      ]
    },
    "317": {
      "id": 317,
      "label": "Ring Counter",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A circular shift register where the output of the last flip-flop feeds directly back to the input of the first, with a single 1 circulating through n flip-flops to produce n unique one-hot encoded states.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        308,
        316
      ],
      "dependents": [
        318
      ],
      "microsims": [
        "counter-simulator"
      ]
    },
    "318": {
      "id": 318,
      "label": "Johnson Counter",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A shift register counter with the complemented output of the last flip-flop fed back to the input of the first, producing a sequence of 2n unique states for an n-bit register in a twisted-ring pattern.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        317
      ],
      "dependents": [
        333
      ],
      "microsims": [
        "counter-simulator"
      ]
    },
    "319": {
      "id": 319,
      "label": "Finite State Machine",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A mathematical model of sequential computation consisting of a finite set of states, input and output alphabets, a next-state function, and an output function, used to design synchronous sequential circuits.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        303,
        305
      ],
      "dependents": [
        320,
        321,
        322,
        323,
        395,
        399,
        403
      ],
      "microsims": [
        "fsm-designer"
      ]
    },
    "320": {
      "id": 320,
      "label": "State Diagram",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A directed graph representation of a finite state machine where nodes represent states and labeled arcs represent transitions, showing the input conditions and output values associated with each transition or state.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        305,
        319
      ],
      "dependents": [
        322,
        323,
        331,
        403
      ],
      "microsims": []
    },
    "321": {
      "id": 321,
      "label": "State Table",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A tabular representation of a finite state machine that lists, for every combination of current state and input, the corresponding next state and output, serving as the primary specification for sequential circuit design.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        64,
        319
      ],
      "dependents": [
        324,
        328,
        331,
        403
      ],
      "microsims": []
    },
    "322": {
      "id": 322,
      "label": "Moore Machine",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A finite state machine whose output depends solely on the current state and is independent of the current input, producing outputs that change only on clock edges when the state transitions.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        319,
        320
      ],
      "dependents": [
        330
      ],
      "microsims": [
        "moore-mealy-comparison"
      ]
    },
    "323": {
      "id": 323,
      "label": "Mealy Machine",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A finite state machine whose output depends on both the current state and the current input, allowing outputs to change asynchronously within a clock period in response to input changes.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        319,
        320
      ],
      "dependents": [
        331
      ],
      "microsims": [
        "moore-mealy-comparison"
      ]
    },
    "324": {
      "id": 324,
      "label": "State Assignment",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "The process of assigning unique binary codes to each state in a finite state machine, directly affecting the complexity of the next-state and output combinational logic in the resulting circuit.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        95,
        321
      ],
      "dependents": [
        325,
        326,
        327,
        329,
        331
      ],
      "microsims": []
    },
    "325": {
      "id": 325,
      "label": "Binary State Encoding",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "An FSM state assignment scheme that assigns states consecutive binary codes, minimizing the number of flip-flops needed.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        324
      ],
      "dependents": [
        327
      ],
      "microsims": []
    },
    "326": {
      "id": 326,
      "label": "One-Hot State Encoding",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "An FSM state assignment scheme that uses one flip-flop per state, with exactly one flip-flop set to 1 at any time, simplifying next-state logic at the cost of more flip-flops.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        324
      ],
      "dependents": [
        331
      ],
      "microsims": []
    },
    "327": {
      "id": 327,
      "label": "Gray Code State Encoding",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "An FSM state assignment scheme in which adjacent states differ by only one bit, reducing output glitches during state transitions.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        324,
        325
      ],
      "dependents": [
        328
      ],
      "microsims": [
        "binary-gray-converter"
      ]
    },
    "328": {
      "id": 328,
      "label": "State Minimization",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "The process of reducing the number of states in a finite state machine by identifying and merging equivalent states, producing a minimal-state machine that exhibits identical input-output behavior.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        186,
        321,
        327
      ],
      "dependents": [
        331
      ],
      "microsims": []
    },
    "329": {
      "id": 329,
      "label": "Next-State Logic",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "The combinational circuitry that implements the next-state function by computing the flip-flop excitation inputs from the present state variables and external inputs of a sequential circuit.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        302,
        324
      ],
      "dependents": [
        330,
        331
      ],
      "microsims": []
    },
    "330": {
      "id": 330,
      "label": "Output Logic",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "The combinational logic block in a sequential circuit that generates the circuit's outputs from the current state (Moore) or from the current state and inputs (Mealy).",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        322,
        329
      ],
      "dependents": [
        331
      ],
      "microsims": []
    },
    "331": {
      "id": 331,
      "label": "FSM Design Procedure",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "The step-by-step method for designing a finite state machine: derive the state diagram, build the state table, assign state codes, derive next-state and output logic, then implement with flip-flops and gates.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        320,
        321,
        323,
        324,
        326,
        328,
        329,
        330
      ],
      "dependents": [
        333,
        335,
        365
      ],
      "microsims": [
        "fsm-designer",
        "vending-machine-fsm",
        "digital-lock-system",
        "sequence-detector-demo"
      ]
    },
    "332": {
      "id": 332,
      "label": "Timing Analysis for Sequential Circuits",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "Verifying that a sequential circuit's clock period is long enough to satisfy every flip-flop's setup and hold time given the propagation delay of the intervening combinational logic.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        296,
        297,
        298,
        299,
        300
      ],
      "dependents": [
        362
      ],
      "microsims": [
        "timing-analysis-visualizer"
      ]
    },
    "333": {
      "id": 333,
      "label": "Counter Design Using FSM",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "Treating a counter as a special-case finite state machine whose states are the count values and whose next-state logic increments, decrements, or otherwise sequences those values.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        315,
        316,
        318,
        331
      ],
      "dependents": [],
      "microsims": []
    },
    "334": {
      "id": 334,
      "label": "Shift Register Applications",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "Practical uses of shift registers, including serial-to-parallel data conversion, delay lines, and pseudo-random sequence generation.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        309,
        310,
        311,
        312
      ],
      "dependents": [],
      "microsims": []
    },
    "335": {
      "id": 335,
      "label": "Sequential Circuit Synthesis",
      "group": "SEQD",
      "category": "Sequential Design",
      "definition": "A digital circuit whose outputs depend on both current input values and the circuit's stored internal state, incorporating memory elements such as latches or flip-flops to retain information across time.",
      "chapter": 10,
      "chapterTitle": "Sequential Circuit Design",
      "chapterDir": "unit10-sequential-design",
      "chapterUrl": "../../unit10-sequential-design/",
      "glossaryUrl": "../../unit10-sequential-design/glossary/",
      "quizUrl": "../../unit10-sequential-design/quiz/",
      "problemsUrl": "../../unit10-sequential-design/problems/",
      "challengeUrl": "../../unit10-sequential-design/challenge/",
      "prerequisites": [
        94,
        302,
        331
      ],
      "dependents": [
        395
      ],
      "microsims": []
    },
    "336": {
      "id": 336,
      "label": "Programmable Logic Overview",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "An introduction to devices whose internal logic function is configured after manufacture, including ROM, PLA, PAL, CPLD, and FPGA.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        226,
        228
      ],
      "dependents": [
        337,
        338,
        339,
        340,
        344
      ],
      "microsims": []
    },
    "337": {
      "id": 337,
      "label": "Fuse Technology",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "A one-time programmable interconnect element that is initially a closed connection and becomes a permanent open circuit when a high programming current melts the conductive link, used in early PLDs such as PROMs and PALs.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        336
      ],
      "dependents": [
        341,
        345,
        357
      ],
      "microsims": [
        "programmable-connections"
      ]
    },
    "338": {
      "id": 338,
      "label": "Antifuse Technology",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "A one-time programmable interconnect element that is initially an open circuit and becomes a permanent low-resistance connection when a high programming voltage is applied, the inverse of a conventional fuse.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        336
      ],
      "dependents": [
        350
      ],
      "microsims": [
        "programmable-connections"
      ]
    },
    "339": {
      "id": 339,
      "label": "SRAM-Based Programming",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "A reprogrammable technology that configures a device's logic and routing by loading configuration bits into on-chip SRAM cells, used by most FPGAs.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        336
      ],
      "dependents": [
        347,
        350,
        356
      ],
      "microsims": [
        "programmable-connections"
      ]
    },
    "340": {
      "id": 340,
      "label": "ROM",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Read-Only Memory, a programmable device that implements any Boolean function of n variables using an n-to-2^n decoder to select one of 2^n permanently stored output words.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        261,
        336
      ],
      "dependents": [
        341
      ],
      "microsims": [
        "rom-architecture"
      ]
    },
    "341": {
      "id": 341,
      "label": "PROM",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Programmable Read-Only Memory, a memory device that is manufactured with all fuses intact and programmed once by the user by selectively blowing fuses to store a permanent bit pattern, functioning as a complete decoder for logic implementation.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        337,
        340
      ],
      "dependents": [
        342
      ],
      "microsims": []
    },
    "342": {
      "id": 342,
      "label": "EPROM",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Erasable Programmable Read-Only Memory, a non-volatile memory technology that is programmed electrically and erased by exposure to ultraviolet light through a quartz window on the chip package, requiring physical removal for erasure.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        341
      ],
      "dependents": [
        343
      ],
      "microsims": []
    },
    "343": {
      "id": 343,
      "label": "EEPROM",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Electrically Erasable Programmable Read-Only Memory, a non-volatile memory technology that can be electrically erased and reprogrammed at the byte level, commonly used in PLDs to allow in-system reconfiguration.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        342
      ],
      "dependents": [
        358
      ],
      "microsims": []
    },
    "344": {
      "id": 344,
      "label": "PLA",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Programmable Logic Array, a PLD architecture with both a programmable AND array and a programmable OR array, providing maximum flexibility in implementing sum-of-products expressions since any product term can be shared among any output.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        84,
        336
      ],
      "dependents": [
        345,
        346,
        365
      ],
      "microsims": [
        "pla-architecture",
        "pla-programming-walkthrough"
      ]
    },
    "345": {
      "id": 345,
      "label": "PAL",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Programmable Array Logic, a simple PLD architecture featuring a programmable AND array followed by a fixed OR array, where each output is a sum of a fixed number of programmable product terms, simpler than a PLA.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        337,
        344
      ],
      "dependents": [
        346,
        347
      ],
      "microsims": [
        "pla-vs-pal"
      ]
    },
    "346": {
      "id": 346,
      "label": "PLD Selection Criteria",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The factors \u2014 such as logic capacity, speed, power, cost, and reprogrammability \u2014 used to choose among ROM, PLA, PAL, CPLD, and FPGA devices for a design.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        344,
        345
      ],
      "dependents": [],
      "microsims": [
        "pld-selection-tree"
      ]
    },
    "347": {
      "id": 347,
      "label": "CPLD",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Complex Programmable Logic Device, a chip containing multiple PAL-like function blocks connected through a programmable interconnect matrix.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        339,
        345
      ],
      "dependents": [
        348,
        349,
        359,
        361
      ],
      "microsims": [
        "cpld-architecture"
      ]
    },
    "348": {
      "id": 348,
      "label": "Function Block",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "A major logic subdivision within a CPLD, typically equivalent to one SPLD, containing a programmable AND array, product-term allocators, and macrocells that collectively implement a portion of the overall design.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        347
      ],
      "dependents": [
        349,
        408
      ],
      "microsims": []
    },
    "349": {
      "id": 349,
      "label": "Interconnect Matrix",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The programmable routing network inside a CPLD or FPGA that connects logic blocks to each other and to I/O pins.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        347,
        348
      ],
      "dependents": [
        354
      ],
      "microsims": []
    },
    "350": {
      "id": 350,
      "label": "FPGA",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Field-Programmable Gate Array, a device containing an array of configurable logic blocks and programmable routing that can be configured to implement virtually any digital circuit.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        290,
        338,
        339
      ],
      "dependents": [
        351,
        353,
        354,
        355,
        359,
        361,
        363,
        364
      ],
      "microsims": [
        "fpga-config-flow"
      ]
    },
    "351": {
      "id": 351,
      "label": "Configurable Logic Block",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The fundamental programmable logic element within an FPGA, typically containing lookup tables, flip-flops, and multiplexers, that can be configured to implement arbitrary combinational and sequential logic functions.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        226,
        350
      ],
      "dependents": [
        352,
        360
      ],
      "microsims": [
        "clb-architecture"
      ]
    },
    "352": {
      "id": 352,
      "label": "Lookup Table",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "A small programmable memory within an FPGA configurable logic block that stores the truth table of a Boolean function, enabling implementation of any logic function of its input variables by reading the stored output value.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        64,
        351
      ],
      "dependents": [
        360
      ],
      "microsims": [
        "lut-explorer"
      ]
    },
    "353": {
      "id": 353,
      "label": "I/O Block",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The programmable circuitry at the periphery of an FPGA or CPLD that connects internal logic to external device pins.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        273,
        350
      ],
      "dependents": [
        355
      ],
      "microsims": []
    },
    "354": {
      "id": 354,
      "label": "Routing Resources",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The wires and programmable switches within an FPGA that carry signals between configurable logic blocks and I/O blocks.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        349,
        350
      ],
      "dependents": [
        360,
        362
      ],
      "microsims": []
    },
    "355": {
      "id": 355,
      "label": "FPGA Design Flow",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The sequence of steps used to implement a design on an FPGA: design entry, synthesis, place and route, and configuration/programming.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        93,
        350,
        353,
        360
      ],
      "dependents": [
        356,
        364,
        365,
        396
      ],
      "microsims": [
        "fpga-design-flow"
      ]
    },
    "356": {
      "id": 356,
      "label": "Bitstream",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "A binary configuration file that is loaded into an FPGA to define the logic functions, interconnect routing, and I/O pin assignments, effectively programming the device to implement a specific digital design.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        339,
        355
      ],
      "dependents": [
        357,
        363
      ],
      "microsims": []
    },
    "357": {
      "id": 357,
      "label": "Device Programming",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The act of loading a configuration (fuse pattern, PAL/PLA pattern, or FPGA bitstream) into a programmable logic device to implement a specific function.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        337,
        356
      ],
      "dependents": [
        358
      ],
      "microsims": []
    },
    "358": {
      "id": 358,
      "label": "In-System Programming",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The ability to configure or reconfigure a programmable logic device while it remains installed in its target circuit board.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        343,
        357
      ],
      "dependents": [],
      "microsims": []
    },
    "359": {
      "id": 359,
      "label": "FPGA vs CPLD Comparison",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "A comparison of FPGAs and CPLDs highlighting FPGAs' larger capacity and SRAM-based volatility against CPLDs' smaller capacity and non-volatile, instant-on configuration.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        347,
        350
      ],
      "dependents": [],
      "microsims": []
    },
    "360": {
      "id": 360,
      "label": "CLB Interconnect",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The local and general routing resources that connect a configurable logic block's inputs and outputs to the surrounding FPGA fabric.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        351,
        352,
        354
      ],
      "dependents": [
        355
      ],
      "microsims": []
    },
    "361": {
      "id": 361,
      "label": "Logic Capacity Metrics",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Measures, such as equivalent gate count or number of logic elements, used to describe and compare the amount of logic a programmable device can implement.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        347,
        350
      ],
      "dependents": [],
      "microsims": []
    },
    "362": {
      "id": 362,
      "label": "FPGA Timing Analysis",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "Verifying that signal paths through an FPGA's configured logic and routing meet the design's required clock speed.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        332,
        354
      ],
      "dependents": [],
      "microsims": []
    },
    "363": {
      "id": 363,
      "label": "Partial Reconfiguration",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The capability to modify a portion of an FPGA's configuration while the remaining logic continues to operate without interruption, enabling dynamic hardware adaptation and time-multiplexing of FPGA resources.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        350,
        356
      ],
      "dependents": [],
      "microsims": []
    },
    "364": {
      "id": 364,
      "label": "Hard vs Soft IP Cores",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "A comparison of fixed-function dedicated silicon blocks (hard IP) against synthesizable logic-described functional blocks (soft IP) available on an FPGA.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        350,
        355
      ],
      "dependents": [],
      "microsims": []
    },
    "365": {
      "id": 365,
      "label": "PLD Design Entry Methods",
      "group": "PLD",
      "category": "Programmable Logic",
      "definition": "The ways a design can be specified for a programmable logic device, including schematic capture and hardware description languages such as VHDL.",
      "chapter": 11,
      "chapterTitle": "Programmable Logic Devices",
      "chapterDir": "unit11-programmable-logic",
      "chapterUrl": "../../unit11-programmable-logic/",
      "glossaryUrl": "../../unit11-programmable-logic/glossary/",
      "quizUrl": "../../unit11-programmable-logic/quiz/",
      "problemsUrl": "../../unit11-programmable-logic/problems/",
      "challengeUrl": "../../unit11-programmable-logic/challenge/",
      "prerequisites": [
        331,
        344,
        355
      ],
      "dependents": [],
      "microsims": []
    },
    "366": {
      "id": 366,
      "label": "Hardware Description Language",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A specialized programming language used to describe the structure and behavior of digital circuits at various levels of abstraction, enabling simulation, synthesis, and implementation of digital designs in FPGAs and ASICs.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        91,
        93
      ],
      "dependents": [
        367,
        368,
        393
      ],
      "microsims": []
    },
    "367": {
      "id": 367,
      "label": "VHDL History and IEEE 1076",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "VHDL originated from a U.S. Department of Defense program and became the IEEE 1076 standard hardware description language for describing and simulating digital hardware.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        366
      ],
      "dependents": [
        368
      ],
      "microsims": []
    },
    "368": {
      "id": 368,
      "label": "VHDL Design Entity",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "The fundamental VHDL design unit, consisting of an entity declaration (the interface) paired with one or more architecture bodies (the implementation).",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        366,
        367
      ],
      "dependents": [
        369,
        372,
        384,
        393
      ],
      "microsims": [
        "entity-architecture"
      ]
    },
    "369": {
      "id": 369,
      "label": "Entity Declaration",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A VHDL construct that defines the external interface of a design unit, specifying its name and ports with their directions and data types, without revealing any internal implementation details.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        368
      ],
      "dependents": [
        370,
        372
      ],
      "microsims": [
        "entity-architecture"
      ]
    },
    "370": {
      "id": 370,
      "label": "Port Declaration",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "The part of a VHDL entity declaration that lists each port's name, direction (mode), and data type.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        369
      ],
      "dependents": [
        371,
        373,
        386,
        389
      ],
      "microsims": []
    },
    "371": {
      "id": 371,
      "label": "Port Modes",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "The direction keywords (in, out, inout, buffer) used in a VHDL port declaration to specify how signals flow through an entity's interface.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        370
      ],
      "dependents": [
        389
      ],
      "microsims": []
    },
    "372": {
      "id": 372,
      "label": "Architecture Body",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "The section of a VHDL design unit that describes the internal behavior, structure, or dataflow implementation of an entity. It specifies how the entity's ports relate to one another through signals, processes, and component instantiations.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        368,
        369
      ],
      "dependents": [
        373,
        374,
        378,
        384
      ],
      "microsims": [
        "entity-architecture"
      ]
    },
    "373": {
      "id": 373,
      "label": "Signal Declaration",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A VHDL object that represents a physical wire or connection carrying a value over time. Signals have associated scheduling semantics where assignments take effect after a delta delay, not immediately.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        370,
        372
      ],
      "dependents": [
        374,
        378,
        382,
        391
      ],
      "microsims": []
    },
    "374": {
      "id": 374,
      "label": "Concurrent Signal Assignment",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A VHDL statement that exists outside a process and continuously drives a signal based on an expression. All concurrent assignments execute simultaneously, modeling the parallel nature of hardware.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        372,
        373
      ],
      "dependents": [
        375,
        376,
        377
      ],
      "microsims": []
    },
    "375": {
      "id": 375,
      "label": "Selected Signal Assignment",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A concurrent VHDL statement that assigns a signal value based on matching a selector expression to specific choices, functioning like a parallel case statement outside a process.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        251,
        374
      ],
      "dependents": [
        377
      ],
      "microsims": []
    },
    "376": {
      "id": 376,
      "label": "Conditional Signal Assignment",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A concurrent VHDL statement that assigns a signal value based on a prioritized chain of Boolean conditions, implementing priority-encoded logic similar to an if-then-else chain.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        374
      ],
      "dependents": [
        377
      ],
      "microsims": []
    },
    "377": {
      "id": 377,
      "label": "Dataflow Modeling Style",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A VHDL description style that uses concurrent signal assignment statements to describe how data flows through combinational logic, specifying Boolean equations and transformations without explicit structural or sequential constructs.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        374,
        375,
        376
      ],
      "dependents": [
        393
      ],
      "microsims": [
        "vhdl-modeling-styles"
      ]
    },
    "378": {
      "id": 378,
      "label": "Process Statement",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A VHDL concurrent construct containing sequential statements that execute in the order listed. A process activates when any signal in its sensitivity list changes, modeling both combinational and sequential logic.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        372,
        373
      ],
      "dependents": [
        379,
        382,
        383
      ],
      "microsims": []
    },
    "379": {
      "id": 379,
      "label": "Sequential Statements",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "VHDL statements inside a process that execute in the order they are written, used to describe behavioral logic.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        378
      ],
      "dependents": [
        380,
        381,
        394
      ],
      "microsims": []
    },
    "380": {
      "id": 380,
      "label": "If-Then-Else Statement",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A sequential VHDL statement used within a process that evaluates conditions in priority order and executes the corresponding statements for the first true condition, synthesizing into priority-encoded logic.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        379
      ],
      "dependents": [
        383
      ],
      "microsims": []
    },
    "381": {
      "id": 381,
      "label": "Case Statement",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A sequential VHDL statement inside a process that selects one of several execution paths based on the value of a single expression, analogous to a truth table or selection mechanism in hardware.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        379
      ],
      "dependents": [
        383,
        395
      ],
      "microsims": []
    },
    "382": {
      "id": 382,
      "label": "Variables vs Signals",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "The distinction in VHDL between variables, which update immediately within a process, and signals, which update only after a simulation delta delay.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        373,
        378
      ],
      "dependents": [
        383
      ],
      "microsims": []
    },
    "383": {
      "id": 383,
      "label": "Behavioral Modeling Style",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A VHDL description style that specifies circuit function using sequential statements within processes, resembling software algorithms, without explicitly defining the underlying hardware structure or gate-level connections.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        378,
        380,
        381,
        382,
        391
      ],
      "dependents": [
        395
      ],
      "microsims": [
        "vhdl-modeling-styles"
      ]
    },
    "384": {
      "id": 384,
      "label": "Component Declaration",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A VHDL declaration that specifies the interface (ports) of a previously defined entity so it can be instantiated within another architecture.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        368,
        372
      ],
      "dependents": [
        385,
        387,
        409
      ],
      "microsims": []
    },
    "385": {
      "id": 385,
      "label": "Component Instantiation",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "The VHDL statement that creates one instance of a declared component within an architecture, wiring its ports to local signals.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        384
      ],
      "dependents": [
        386,
        388
      ],
      "microsims": []
    },
    "386": {
      "id": 386,
      "label": "Port Map",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "The part of a VHDL component instantiation that connects each port of the instantiated component to a signal in the enclosing architecture.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        370,
        385
      ],
      "dependents": [
        387,
        388,
        393
      ],
      "microsims": []
    },
    "387": {
      "id": 387,
      "label": "Generic Map",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A VHDL construct used during component instantiation to pass parameter values, such as bus width, into a generic-parameterized component.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        384,
        386
      ],
      "dependents": [
        388
      ],
      "microsims": []
    },
    "388": {
      "id": 388,
      "label": "Structural Modeling Style",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A VHDL description style that builds a design by instantiating and interconnecting lower-level components, explicitly defining the hardware hierarchy and wiring topology analogous to a schematic netlist.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        385,
        386,
        387
      ],
      "dependents": [
        397
      ],
      "microsims": [
        "vhdl-modeling-styles"
      ]
    },
    "389": {
      "id": 389,
      "label": "std_logic Type",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A nine-valued enumerated type from the IEEE 1164 standard representing a single digital wire. Values include '0', '1', 'Z' for high-impedance, 'X' for unknown, and 'U' for uninitialized, among others.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        370,
        371
      ],
      "dependents": [
        390,
        391,
        392
      ],
      "microsims": []
    },
    "390": {
      "id": 390,
      "label": "std_logic_vector",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "An array type of std_logic elements from the IEEE 1164 standard, used to represent multi-bit buses and data words. It supports both ascending (to) and descending (downto) index ranges.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        389
      ],
      "dependents": [
        392
      ],
      "microsims": []
    },
    "391": {
      "id": 391,
      "label": "VHDL Operators",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "The built-in logical, arithmetic, relational, and concatenation operators VHDL provides for use in signal assignments and expressions.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        373,
        389
      ],
      "dependents": [
        383
      ],
      "microsims": []
    },
    "392": {
      "id": 392,
      "label": "Type Conversion",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "Explicit VHDL functions used to convert a value from one data type to another, such as between std_logic_vector and integer.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        389,
        390
      ],
      "dependents": [
        393
      ],
      "microsims": []
    },
    "393": {
      "id": 393,
      "label": "Testbench",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "A non-synthesizable VHDL entity with no ports that instantiates the design under test, generates stimulus signals, and optionally checks output correctness to verify the design through simulation.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        366,
        368,
        377,
        386,
        392
      ],
      "dependents": [
        394,
        407
      ],
      "microsims": []
    },
    "394": {
      "id": 394,
      "label": "Assert and Report",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "VHDL statements used in simulation to check a condition and print a diagnostic message if it is violated, commonly used in testbenches.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        379,
        393
      ],
      "dependents": [],
      "microsims": []
    },
    "395": {
      "id": 395,
      "label": "VHDL FSM Implementation",
      "group": "VHDL",
      "category": "VHDL",
      "definition": "The standard VHDL coding pattern for a finite state machine: a state signal of an enumerated type, a clocked process for state transitions, and combinational (or a second process) logic for next-state and output logic.",
      "chapter": 12,
      "chapterTitle": "Introduction to VHDL",
      "chapterDir": "unit12-vhdl",
      "chapterUrl": "../../unit12-vhdl/",
      "glossaryUrl": "../../unit12-vhdl/glossary/",
      "quizUrl": "../../unit12-vhdl/quiz/",
      "problemsUrl": "../../unit12-vhdl/problems/",
      "challengeUrl": "../../unit12-vhdl/challenge/",
      "prerequisites": [
        319,
        335,
        381,
        383
      ],
      "dependents": [],
      "microsims": [
        "vhdl-fsm-mapper",
        "vhdl-fsm-walkthrough",
        "vhdl-flipflop-patterns"
      ]
    },
    "396": {
      "id": 396,
      "label": "Top-Down Design Methodology",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "A systematic design methodology that begins with the highest-level system specification and progressively decomposes it into smaller, more detailed sub-modules until each block is simple enough to implement directly.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        93,
        355
      ],
      "dependents": [
        397
      ],
      "microsims": [
        "top-down-design-flow",
        "course-integration-map"
      ]
    },
    "397": {
      "id": 397,
      "label": "Hierarchical Decomposition",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "Breaking a complex digital system into smaller, more manageable subsystems and modules, each designed and verified independently.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        388,
        396
      ],
      "dependents": [
        398,
        399
      ],
      "microsims": [
        "hierarchical-alu-design"
      ]
    },
    "398": {
      "id": 398,
      "label": "Datapath Design",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "Designing the portion of a digital system containing functional units such as registers, multiplexers, and ALUs that perform the actual data processing.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        111,
        306,
        313,
        397
      ],
      "dependents": [
        400
      ],
      "microsims": [
        "datapath-controller",
        "datapath-controller-walkthrough"
      ]
    },
    "399": {
      "id": 399,
      "label": "Controller Design",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "Designing the finite state machine that generates the control signals sequencing a datapath's operations.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        319,
        397
      ],
      "dependents": [
        400,
        403
      ],
      "microsims": [
        "datapath-controller",
        "datapath-controller-walkthrough"
      ]
    },
    "400": {
      "id": 400,
      "label": "Datapath-Controller Partitioning",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "The system design decision of dividing a digital system into a datapath that processes data and a controller that sequences the datapath's operations.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        398,
        399
      ],
      "dependents": [
        401,
        402,
        407
      ],
      "microsims": []
    },
    "401": {
      "id": 401,
      "label": "Control Signals",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "Signals generated by a controller that direct a datapath's operations, such as enabling a register load or selecting a multiplexer input.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        101,
        400
      ],
      "dependents": [
        403
      ],
      "microsims": []
    },
    "402": {
      "id": 402,
      "label": "Status Signals",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "Signals generated by a datapath that report conditions, such as zero or overflow, back to the controller to influence its next state.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        101,
        400
      ],
      "dependents": [
        403
      ],
      "microsims": []
    },
    "403": {
      "id": 403,
      "label": "ASM Chart",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "Algorithmic State Machine chart, a flowchart-like diagram that describes an FSM's states, conditional decisions, and datapath actions.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        319,
        320,
        321,
        399,
        401,
        402
      ],
      "dependents": [
        407
      ],
      "microsims": []
    },
    "404": {
      "id": 404,
      "label": "Timing Budget",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "The allocation of a system's total clock period among the various delay sources (logic, routing, setup time) that a signal path must satisfy.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        238,
        294,
        295
      ],
      "dependents": [
        405
      ],
      "microsims": []
    },
    "405": {
      "id": 405,
      "label": "Critical Path in System",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "The longest signal propagation path from any input to the output in a logic circuit, which determines the circuit's maximum operating speed.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        241,
        404
      ],
      "dependents": [
        406
      ],
      "microsims": []
    },
    "406": {
      "id": 406,
      "label": "Pipelining Concept",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "A design technique that divides a combinational logic path into multiple stages separated by registers, allowing each stage to process different data simultaneously, thereby increasing clock frequency and throughput at the cost of latency.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        285,
        306,
        405
      ],
      "dependents": [
        407
      ],
      "microsims": []
    },
    "407": {
      "id": 407,
      "label": "System Verification",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "The process of confirming that a completed digital system meets its specification, through simulation, testing, and formal or informal checking.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        393,
        400,
        403,
        406
      ],
      "dependents": [
        408,
        410
      ],
      "microsims": []
    },
    "408": {
      "id": 408,
      "label": "Design for Testability",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "A collection of design techniques and added circuitry that make a manufactured integrated circuit easier to test by improving controllability and observability of internal nodes after fabrication.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        348,
        407
      ],
      "dependents": [
        410
      ],
      "microsims": []
    },
    "409": {
      "id": 409,
      "label": "UART Protocol Basics",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "Universal Asynchronous Receiver-Transmitter, a serial communication peripheral that converts parallel data to a serial bit stream for transmission and serial data back to parallel form on reception, without requiring a shared clock.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        285,
        308,
        384
      ],
      "dependents": [
        410
      ],
      "microsims": [
        "uart-transmitter",
        "uart-transceiver"
      ]
    },
    "410": {
      "id": 410,
      "label": "System-Level Debugging",
      "group": "SYSI",
      "category": "System Integration",
      "definition": "The process of locating and correcting design errors in a complete digital system, often using simulation waveforms, test vectors, or on-chip debugging tools.",
      "chapter": 13,
      "chapterTitle": "System Integration",
      "chapterDir": "unit13-system-integration",
      "chapterUrl": "../../unit13-system-integration/",
      "glossaryUrl": "../../unit13-system-integration/glossary/",
      "quizUrl": "../../unit13-system-integration/quiz/",
      "problemsUrl": "../../unit13-system-integration/problems/",
      "challengeUrl": "../../unit13-system-integration/challenge/",
      "prerequisites": [
        407,
        408,
        409
      ],
      "dependents": [],
      "microsims": []
    }
  }
}