# Tutorial - How Digital Designers use Boolean Algebra

Boolean algebra is fundamental to the operation of an FPGA. Boolean Algebra describes operations where the inputs and outputs take the values true or false (1 or 0, respectively). So you shouldn't worry if you are not good at Calculus, Boolean Algebra is the most basic math possible! It was introduced in 1854 by the mathematician George Boole. With the rules established by Boolean algebra, it is possible to create a foundation to do all basic logical operations. The operations that this article will discuss are: AND, OR, NOT, XOR (exclusive or), and NAND (my personal favorite). With these basic building blocks of digital logic in place, it is possible to create much more complicated operations such as addition, subtraction, division, etc. However first we must understand the basics.

The first concept that needs to be understood is called a **Truth Table**. A truth table is a table that describes functionality based on the inputs and outputs. This is best demonstrated by looking at the truth table for an AND gate.

An AND gate has 2 inputs and 1 output. Each of these can have the value 0 or 1 and the output value depends on the 2 input values. The output is only 1 when both of the input values are 1. Below is the truth table for an AND gate.

Truth Table - AND Gate | ||
---|---|---|

Input A | Input B | Output Q |

0 | 0 | 0 |

0 | 1 | 0 |

1 | 0 | 0 |

1 | 1 | 1 |

An OR gate has 2 inputs and 1 output. The output is 1 when *either* of the input values are 1. Below is the truth table for an OR gate.

Truth Table - OR Gate | ||
---|---|---|

Input A | Input B | Output Q |

0 | 0 | 0 |

0 | 1 | 1 |

1 | 0 | 1 |

1 | 1 | 1 |

A NOT gate has 1 input and 1 output. The output is the opposite of the input value. Below is the truth table for a NOT gate.

Truth Table - NOT Gate | ||
---|---|---|

Input A | Output Q | |

0 | 1 | |

1 | 0 |

An XOR (exclusive OR) gate has 2 inputs and 1 output. The output is 1 when *either* of the input values are 1 *but not both*. Below is the truth table for an XOR gate.

Truth Table - XOR Gate | ||
---|---|---|

Input A | Input B | Output Q |

0 | 0 | 0 |

0 | 1 | 1 |

1 | 0 | 1 |

1 | 1 | 0 |

A NAND gate has 2 inputs and 1 output. The truth table output is opposite that of the AND gate. It's only 0 when *both* inputs are set to 1, otherwise it's 1. Below is the truth table for a NAND gate.

Truth Table - NAND Gate | ||
---|---|---|

Input A | Input B | Output Q |

0 | 0 | 1 |

0 | 1 | 1 |

1 | 0 | 1 |

1 | 1 | 0 |

Now that you see how these basic gates work, let's see more complicated Boolean algebra using Look-Up Tables (LUTs)