Lecture 3 Boolean Algebra and Digital Logic Lecture Duration: 2 Hours
Lecture Overview Boolean Algebra Logic gates Digital Components Boolean Expressions Boolean Identities Simplification of Boolean Expressions Complements Representing Boolean Functions Logic gates Digital Components Combinational circuits Sequential circuits
Boolean Algebra – Introduction (1/1) Boolean algebra is an algebra for the manipulation of objects that can take on only two values, typically true and false It returns to its inventor, the famous mathematician and logician George Boole
Boolean Expressions (1/5) Boolean Algebra Boolean Expressions (1/5) Boolean variable: it is a variable that can take only two values : 0 (false) or 1 (true) Example: x, y, z, … Where, for instance, “x” could be 0 or 1 Boolean expressions: Combination of Boolean variables and operators (AND, OR, NOT, …) Example: x AND y, x OR y, … Boolean function: typically has one or more input values and yields a result, based on these input values, in the range {0,1} Example: F(x, y, z) = (x AND y) OR z
Boolean Expressions (2/5) Boolean Algebra Boolean Expressions (2/5)
Boolean Expressions (3/5) Boolean Algebra Boolean Expressions (3/5) The truth table for AND The truth table for OR Inputs Outputs x y xy 1 Inputs Outputs x y x + y 1 The truth table for NOT Inputs Outputs x 1
Boolean Expressions (4/5) Boolean Algebra Boolean Expressions (4/5) Boolean function can also be described using a truth table The following rules of precedence should be respected Parentheses first NOT next AND next OR finally
Boolean Expressions (5/5) Boolean Algebra Boolean Expressions (5/5) Inputs Intermediate Outputs x y z 1
Lecture Overview Boolean Algebra Logic gates Digital Components Boolean Expressions Boolean Identities Simplification of Boolean Expressions Complements Representing Boolean Functions Logic gates Digital Components Combinational circuits Sequential circuits
Boolean Identities (1/3) Boolean Algebra Boolean Identities (1/3) Frequently, a Boolean expression is not in its simplest form Recall from algebra the expression 2x + 6x can be simplified to 8x Boolean expressions can also be simplified We need new identities, or laws, that apply to Boolean algebra instead of regular algebra These laws are grouped in the following table
Boolean Identities (2/3) Boolean Algebra Boolean Identities (2/3)
Boolean Identities (3/3) Boolean Algebra Boolean Identities (3/3) Drawing a truth table can justify DeMorgan’s Law Think of drawing the truth table that justifies each of the other predefined laws
Lecture Overview Boolean Algebra Logic gates Digital Components Boolean Expressions Boolean Identities Simplification of Boolean Expressions Complements Representing Boolean Functions Logic gates Digital Components Combinational circuits Sequential circuits
Simplification of Boolean Expressions (1/6) Boolean Algebra Simplification of Boolean Expressions (1/6) The Boolean identities can be used to simplify Boolean expressions in a similar fashion Example 1: Simplify the function F(x,y) = xy + xy. xy can be seen as a single variable The OR form of the Idempotent Law F(x,y) can be simplified to F(x,y) = xy + xy = xy.
Simplification of Boolean Expressions (2/6) Boolean Algebra Simplification of Boolean Expressions (2/6) Example 2: Simplify the function F(x,y,z) = xyz + xyz + xz F(x,y,z) = xyz + xyz + xz = xyz + xz (idempotent) = xz(y + 1) (Distributive) = xz(1) (Null) = xz (Identity) The simplest form for F(x,y,z) is F(x,y,z) = xz
Simplification of Boolean Expressions (3/6) Boolean Algebra Simplification of Boolean Expressions (3/6)
Simplification of Boolean Expressions (4/6) Boolean Algebra Simplification of Boolean Expressions (4/6)
Simplification of Boolean Expressions (5/6) Boolean Algebra Simplification of Boolean Expressions (5/6)
Simplification of Boolean Expressions (6/6) Boolean Algebra Simplification of Boolean Expressions (6/6)
Lecture Overview Boolean Algebra Logic gates Digital Components Boolean Expressions Boolean Identities Simplification of Boolean Expressions Complements Representing Boolean Functions Logic gates Digital Components Combinational circuits Sequential circuits
Boolean Algebra Complements (1/5)
Boolean Algebra Complements (2/5)
Boolean Algebra Complements (3/5)
Boolean Algebra Complements (4/5)
Boolean Algebra Complements (5/5)
Lecture Overview Boolean Algebra Logic gates Digital Components Boolean Expressions Boolean Identities Simplification of Boolean Expressions Complements Representing Boolean Functions Logic gates Digital Components Combinational circuits Sequential circuits
Representing Boolean Functions (1/5) Boolean Algebra Representing Boolean Functions (1/5) Two expressions that can be represented by the same truth table are considered logically equivalent In fact, there are an infinite number of Boolean expressions that are logically equivalent to one another To help eliminate potential confusion, logic canonical, or standardized, form of Boolean functions are used: The sum-of-products The product-of-sums
Representing Boolean Functions (2/5) Boolean Algebra Representing Boolean Functions (2/5)
Representing Boolean Functions (3/5) Boolean Algebra Representing Boolean Functions (3/5) Any Boolean expression can be represented in sum-of-products form. Any Boolean expression can also be represented as a truth table So any truth table can also be represented in sum-of-products form
Representing Boolean Functions (4/5) Boolean Algebra Representing Boolean Functions (4/5)
Representing Boolean Functions (5/5) Boolean Algebra Representing Boolean Functions (5/5)
Lecture Overview Boolean Algebra Logic gates Digital Components Symbols for logic gates Universal gates Multiple-inputs gates Digital Components Combinational circuits Sequential circuits
Logic Gates – Introduction (1/1) The logical operators, functions and expressions have been represented thus far in an abstract sense What is a Gate? It is a group of physical components, or digital circuits, that perform arithmetic operations or make choices in a computer. A gate is a small, electronic device that computes various functions of two-valued signals (or more) Each gate requires from one to six or more transistors If the basic physical component of a computer is the transistor; the basic logic element is the gate
Symbols for Logic Gates (1/1) Boolean expression
Logic gates Universal Gates (1/3)
The NAND gate is commonly referred to as a universal gate Logic gates Universal Gates (2/3) The NAND gate is commonly referred to as a universal gate Any electronic circuit can be constructed using only NAND gates
Why not simply use the AND, OR, and NOT gates we already know exist? Logic gates Universal Gates (3/3) Why not simply use the AND, OR, and NOT gates we already know exist? For two reasons: NAND gates are cheaper to build than the other gates complex integrated circuits are often much easier to build using the same building Applying the duality principle, NOR is also a universal gate In practice, NAND are used for implementing an expression in sum of-products form In practice, NOR is used for implementing an expression in product-of-sums form
Multiple Input Gates (1/1) Logic gates Multiple Input Gates (1/1)
Lecture Overview Boolean Algebra Logic gates Digital Components Digital circuits and Boolean algebra Integrated circuits Combinational circuits Sequential circuits
Digital Components – Introduction (1/2) Every computer is built using collections of gates that are all connected by way of wires These collections of gates are often quite standard, resulting in a set of building blocks These building blocks are all constructed using the basic AND, OR, and NOT operations.
Digital Components – Introduction (2/2) In this part, we will discuss: Digital circuits, and their relationship to Boolean algebra The standard building blocks Two different categories, into which these building blocks can be placed Combinational logic Sequential logic
Digital Circuits and Boolean Algebra (1/1) Digital Components Digital Circuits and Boolean Algebra (1/1)
Integrated Circuits (1/1) Digital Components Integrated Circuits (1/1) Gates are sold in units called integrated circuits (ICs) First ICs were SSI (small scale integration – See Lecture 1) chips and contained very few transistors (up to 100 transistors) We now have ULSI (ultra large-scale integration) with more than 1 million electronic components per chip How much gates does this IC contain?? What is (are) the type(s) of these gates?
Lecture Overview Boolean Algebra Logic gates Digital Components Combinational circuits Typical Combinational circuits Adder (half adder, full adder, ripple carry adder) Decoder Multiplexer Sequential circuits
Combinational circuits Basic Concepts (1/1) Combinational logic is used to build circuits that contain basic Boolean operators, inputs, and outputs. The output of a combinational circuit is a function of its inputs at any given moment. A combinational circuit may have several outputs. If so, each output represents a different Boolean function.
Typical Combinational Circuits – A half adder (1/2) A half-adder is a very simple combinational circuit Consider the problem of adding two binary digits together, three cases are possible: 0 + 0 = 0 1 + 0 = 0 + 1 = 1 1 + 1 = 10 (the result is “0” with a carry of “1”) We have two inputs (the bits to add) and two outputs (the “sum” and the “carry”) Drawing the truth table lead us to the Boolean function of a half-adder Note that each output has a Boolean Function
Typical Combinational Circuits – A half adder (2/2)
Typical Combinational Circuits – A full adder (1/2) A half adder could be extended to a circuit that allows the addition of larger binary numbers: A full adder Remember how we added binary numbers? We add each column without forgetting the carry from the nearest right column A full adder have three inputs: The two bits to add (x and y) The carry from the nearest right column (carry-in) A full adder has two outputs (the “sum” and the “carry”)
Typical Combinational Circuits – A full adder (2/2) Think of how this logic diagram is obtained. Note that a full-adder is composed of two half-adders and an OR gate.
Typical Combinational Circuits – A binary numbers adder (1/1) A full-adder can only add two bits and a carry (three bits) The simplest way to add large binary numbers is to use a ripple-carry adder A ripple-carry is a succession of full-adders but it is slow Faster methods are nowadays implemented in computers (40% to 90% faster than the ripple-carry adder) Examples: carry-look-ahead adder, the carry-select adder, and the carry-save adder, as well as others.
Lecture Overview Boolean Algebra Logic gates Digital Components Combinational circuits Typical Combinational circuits Adder (half adder, full adder, ripple carry adder) Decoder Multiplexer Sequential circuits
Typical Combinational Circuits – A decoder (1/3) A decoder decodes binary information from a set of n inputs to a maximum of 2n outputs A decoder uses the inputs and their respective values to select one specific output line For a given input, only one output is set to “1” and all others are set to “0”
Typical Combinational Circuits – A decoder (2/3) 4-to-8 decoder Examples A decoder is something the computer uses frequently One of the most application is “Chip selection” Example: Selecting one of several memory chips for a given address 1 1 1 2 ? ? 1 3 1 2-to-4 decoder 4 1 1 1 1 1 5 1 1 1 2 6 1 1 3 1 7 1 A 2-to-4 decoder (n=2 ; 2n=4) A 3-to-8 decoder (n=3 ; 2n=8)
Typical Combinational Circuits – A decoder (3/3) Memory Chip 0 Memory Chip 1 Memory Chip 2 Memory Chip 3 Memory Chip 4 Memory Chip 5 Memory Chip 6 Memory Chip 7 CS CS CS CS CS CS CS CS For tutors only: We have 16 bits for address: The memory size is 216 = 64 Kwords = 64 Kbytes (supposing a word size of 1byte) Each memory chip has a size of : 64Kbytes/8 = 8Kbytes All memory 1 addresses begin with: 000xxxxxxxxxxxxx All memory 2 Addresses begin with: 001xxxxxxxxxxxxx All memory 3 Addresses begin with: 011xxxxxxxxxxxxx And so on until memory 7, its addresses begin with: 111xxxxxxxxxxxxx 1 Decoder 1 2 3 4 5 6 7 13 1 1
Lecture Overview Boolean Algebra Logic gates Digital Components Combinational circuits Typical Combinational circuits Adder (half adder, full adder, ripple carry adder) Decoder Multiplexer Sequential circuits
Typical Combinational Circuits – A multiplexer (1/2) A multiplexer selects binary information from one of many input lines and directs it to a single output line. Selection of a particular input line is controlled by a set of selection variables or control lines
Typical Combinational Circuits – A multiplexer (2/2) A 4-to-1 multiplexer We have 4=22 input lines To select one of the 4 inputs we need 2 selection bits: S0, S1 A 8-to-1 multiplexer We have 8=23 input lines To select one of the 8 inputs we need 3 selection bits: S0, S1, S2 A 16-to-1 multiplexer? A 64-to-1 multiplexer? I0 4-to-1 multiplexer I1 I0 I2 I2 I1 I3 I3 S1 S0 1 1 1 I0 8-to-1 multiplexer I1 I2 I3 I4 ? I4 I5 I6 I7 S2 S1 S0 1
Lecture Overview Boolean Algebra Logic gates Digital Components Combinational circuits Sequential circuits Introduction Clocks Flip-Flops Examples of Sequential Circuits Register Counter
Sequential circuits – Introduction (1/2) Computers must have a way to remember values. Combinational circuits are memoryless, they do not have the concept of storage. Computers cannot be built using only combinational circuits. We need sequential circuits.
Sequential circuits – Introduction (2/2) Before we discuss sequential logic, we must first introduce a way to order events There are two types of sequential circuits Asynchronous: they become active the moment any input value changes Synchronous: they use clocks to order events In this course we will study synchronous sequential circuits only
Clocks (1/1) Clock: It is a circuit that emits a series of pulses Sequential circuits Clocks (1/1) Clock: It is a circuit that emits a series of pulses A clock is used to decide when to update the state of the circuit (when do “present” inputs become “past” inputs?). Clock speed: is generally measured in megahertz (MHz), or millions of pulses per second Edge triggered circuits change state on the rising edge or falling edge of the clock signal Level-triggered circuits change state when the clock voltage reaches its highest or lowest level Pulse width Clock cycle time
Lecture Overview Boolean Algebra Logic gates Digital Components Combinational circuits Sequential circuits Introduction Clocks Flip-Flops Examples of Sequential Circuits Register Counter
In sequential the output depends on past inputs. Sequential circuits Flip-Flops (1/8) In sequential the output depends on past inputs. To remember previous inputs, sequential circuits use flip-flops. If combinational circuits are generalizations of gates, sequential circuits are generalizations of flip-flops.
Sequential circuits Flip-Flops (2/8) In order to “remember” a past state, sequential circuits rely on a concept called feedback The output of a circuit is fed back as an input to the same circuit A simple example of this concept is shown below. If Q is 0 it will always be 0, if it is 1, it will always be 1. Why?
The most basic memory unit is called an SR flip-flop. Sequential circuits Flip-Flops (3/8) The most basic memory unit is called an SR flip-flop. The “SR” stands for set/reset
Try to think how the feedback works? Sequential circuits Flip-Flops (4/8) Try to think how the feedback works? Consider Q(t) as the value of the output Q at time t and Q(t+1) as the new value of Q after a new clock pulse. Note also that SR flip-flop has two additional inputs (in addition to the fed backed output Q) The behavior of an SR flip-flop is described by its characteristic table
What happens when both S and R are 1? Sequential circuits Flip-Flops (5/8) Considering the three inputs: S, R, and Q, we can construct the truth table of an SR flip-flop What happens when both S and R are 1? The output is undefined We say that the SR flip-flop is in an unstable state.
It is also important to see how a clocked SR flip-flop is implemented! Sequential circuits Flip-Flops (6/8) It is also important to see how a clocked SR flip-flop is implemented! Example: A level triggered SR flip-flop The output will change only when clock is '1', otherwise all inputs (S and R) will be ignored
This creates the JK flip-flop (in honor of Jack Kilby) Sequential circuits Flip-Flops (7/8) Jack Kilby has modified the SR flip-flop to provide a stable state when both inputs are 1 This creates the JK flip-flop (in honor of Jack Kilby) The characteristic table indicates that the flip-flop is stable for all inputs Try to draw the truth table of a JK flip-flop.
This sequential circuit stores one bit of information. Flip-Flops (8/8) Another modification of the SR flip-flop is the D flip-flop (D stands for Data) This sequential circuit stores one bit of information. When the clock is pulsed: If a 1 is asserted on the input line D the output line Q becomes a 1 (and is still 1 until the next clock pulse). If a 0 is asserted on the input line the output becomes 0 (and is still 0 until the next clock pulse).
Lecture Overview Boolean Algebra Logic gates Digital Components Combinational circuits Sequential circuits Introduction Clocks Flip-Flops Examples of Sequential Circuits Register Counter
Examples of Sequential Circuits – A register (1/3) As any other sequential circuit, a register is formed by a group of flip-flops. Its basic function is to hold information within a digital system A simple 4-bit Parallel in – Parallel out register is here described It will be implemented using D flip-flops.
Examples of Sequential Circuits – A register (2/3) In a parallel in – parallel out register On a clock tick, all inputs are sent to the output lines These outputs are still on their states until the next clock tick (the D flip-flops store the inputs during one clock cycle) The same clock signal is tied into all four D flip-flops, so they change at the same time A 4-bit parallel in – parallel out register
Examples of Sequential Circuits – A register (3/3) The first input is “0000” On the first clock tick, “0000” is sent to the output This “0000” is still an output until the next clock tick (even if the input disappears or is replaced) On the second clock tick, the output is set to the new input “0110” And so on… 1 1 1 1
Lecture Overview Boolean Algebra Logic gates Digital Components Combinational circuits Sequential circuits Introduction Clocks Flip-Flops Examples of Sequential Circuits Register Counter
Examples of Sequential Circuits – A counter (1/4) As any other sequential circuit, a counter is formed by a group of flip-flops. Those are connected is such a way as to produce the prescribed sequence of binary states A 4-bit counter is here described
Examples of Sequential Circuits – A counter (2/4) 1 : To understand how a counter works, we should analyze the binary sequence produced by it. For instance, a 4 bit counter produces the sequence presented in the next table The LSB is complemented each time Each of the other bits changes state from 0 to 1 when all bits to the right are equal to 1. We hence need to use flip-flops that complement a current state, a JK flip-flop
Examples of Sequential Circuits – A counter (3/4) The sequential circuit of a 4-bit counter is shown in the next picture B0 is the LSB B3 is the MSB A “Count Enable” line is added to start/stop counting CE = 1 : counting is on CE = 0: counting is off Co2 Co3 Co4
Examples of Sequential Circuits – A counter (4/4) Analyze the last circuit very to make sure you understand how this circuit counts from 0000 to 1111 Remember that the output changes only when the clock ticks What happens if the current state is 1111 and the clock is pulsed? What is the job of “Output Carry” (OC) line? For tutors only: When the current state is 1111 and the clock is pulsed the output is set to 0000 and the “output carry” is set to 1
End of lecture 3 Try to solve all exercises related to lecture 3