41
IN3170/4170, Spring 2020 Philipp Häfliger [email protected] Excerpt of formar INF2270 script Chapter 6: Sequential Logic Circuits

IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger [email protected] ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

IN3170/4170, Spring 2020

Philipp Hä[email protected]

Excerpt of formar INF2270 script Chapter 6: Sequential LogicCircuits

Page 2: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Content

Combinational Logic

Single Bit Storage

Sequential Logic

Page 3: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Content

Combinational Logic

Single Bit Storage

Sequential Logic

Page 4: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

On Circuit Notation in INF2270 Script

2 bit Multiplexer ‘spelled out’

decoderS

4

OAND44

4

I

AND22

2

2a

bc

ab

0

0

ab

1

1

c 0

c 1

simplified to

2simlified to

S

I

I

0

1

O

2

0 S1

I

I

2

3

Page 5: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Combinational Logic

Combinational logic circuits are feed-forward logic/digital circuitswith no memory that can be described by Boolean functions.

Note what is implied here: logic gates can also be connected inways that include feed-back connections that implement/includememory that cannot be described as Boolean functions! This isthen not ’combinational logic’, but ’sequential logic’, of which wewill talk later.

Page 6: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Design and Analysis of Digital Circuits

Design of a digital circuit is the process of assembling circuitblocks to form a bigger digital circuit.

Analysis of a digital circuit is the process of finding out what itis doing, e.g. (in the case of combinational logic!) byfinding an equivalent Boolean function or a completetruth table.

Page 7: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

A complete analysis of a digital circuit is quite trivial for smalldigital circuits but neigh impossible for circuits of the complexity ofa modern CPU. Hierarchical approaches in design and analysisprovide some help.

The first Pentium on the market had a mistake in its floating pointunit.

After the Intel 286 there was the 386 and then the 486,but the 585.764529 was then dubbed ’Pentium’ forsimplicity sake.

Page 8: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Logic Gate Signals

A certain range of input voltage is defined as ’high’ or logic ’1’ andanother range is defined as ’low’ or ’0’. Note: the range is definedbigger at a logic gate inputE.g. in a digital circuit with a 1.8V supply one can, for instance,guarantee an input voltage of 0V to 0.5V to be recognised as ’0’and 1.2V to 1.8V as ’1’ by a logic gate.On the output side the gate can guarantee to deliver a voltage ofeither >1.75V or <0.05V.The assymetric ranges correct ‘errors’ in a cascade of gates, addinga safety margin between input and output, makeing (correctlydesigned!) digital circuits very robust (which is necessary withmillions of logic gates in a CPU, where a single error might impairthe global function!)

Page 9: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Analysis Example

≡ a ∧ b︸ ︷︷ ︸x4

∨ b ∧ c︸︷︷︸x5

∨ a ∧ b ∧ c︸ ︷︷ ︸x6

Page 10: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Design Example (Universality of NAND and NOR)

Design equivalent circuits with only NANDs (NORs)

Page 11: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Design Example (Universality of NAND and NOR)

Design equivalent circuits with only NANDs (NORs)

Page 12: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Design Example (Universality of NAND and NOR)

Design equivalent circuits with only NANDs (NORs)

Page 13: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Design Example (Universality of NAND and NOR)

Design equivalent circuits with only NANDs (NORs)

Page 14: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Design Example (Universality of NAND and NOR)

Design equivalent circuits with only NANDs (NORs)

Page 15: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Design Example (Universality of NAND and NOR)

Design equivalent circuits with only NANDs (NORs)

Page 16: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Design Example (Universality of NAND and NOR)

Design equivalent circuits with only NANDs (NORs)

Page 17: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Standard Combinational Logic

Some combinational logic (and of course also sequential logic →later) is often used in computational devices and are usuallyprovided as ’black boxes’ guaranteeing a defined function.Examples:

I encoder/decoderI multiplexer/demultiplexerI adders/multipliers

There are actually variations on how those functions areimplemented, resulting in different processing speeds and/or powerconsumption and/or scalability (i.e. how easy it is to adapt thesame function for more inputs).

Page 18: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

3-bit Encoder Specification

An encoder in digital electronics refers to a circuit that converts 2n

inputs (one-hot code) into n outputs (binary number), as specifiedby the following truth table.

Page 19: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Simple 3-bit Encoder Truth Table

I7 I6 I5 I4 I3 I2 I1 I0 O2 O1 O0

0 0 0 0 0 0 0 1 0 0 00 0 0 0 0 0 1 0 0 0 10 0 0 0 0 1 0 0 0 1 00 0 0 0 1 0 0 0 0 1 10 0 0 1 0 0 0 0 1 0 00 0 1 0 0 0 0 0 1 0 10 1 0 0 0 0 0 0 1 1 01 0 0 0 0 0 0 0 1 1 1

Page 20: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

3-bit Encoder Implementation Variant

Page 21: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

3-bit Encoder Remarks

The truth table that was given is not complete: some inputs are‘illegal’ (not one-hot codes). Circuitry that produces the inputshould ensure to only produce legal states. In our specific digitalcircuit implementation we can deduct what the output in eachillegal case would be, but other implementation may providedifferent outputs in those non-defined cases, and still be validencoders!The following truth table is a deterministic specification of anencoder, without ‘illegal’ inputs, where the ’highest’ active input bitdetermines the output. ’X’ in the table means ‘do not care’, or ‘forany state’ and allows to abbreviate the truth table. This wouldrequire a different implementation, but we will not present it here.

Page 22: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

3-bit Priority Encoder Truth Table

I7 I6 I5 I4 I3 I2 I1 I0 O2 O1 O0

0 0 0 0 0 0 0 1 0 0 00 0 0 0 0 0 1 X 0 0 10 0 0 0 0 1 X X 0 1 00 0 0 0 1 X X X 0 1 10 0 0 1 X X X X 1 0 00 0 1 X X X X X 1 0 10 1 X X X X X X 1 1 01 X X X X X X X 1 1 1

Page 23: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Content

Combinational Logic

Single Bit Storage

Sequential Logic

Page 24: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Flip-Flop

Flip-flops are digital circuits with two stable states that are used asstorage elements for 1 bit. The term ’flip-flop’ is in the more recentuse of the language more specifically used for synchronous binarymemory cells (e.g. D-flip-flop, JK-flip-flop, T-flip-flop), whereas theterm ’latch’ (e.g. SR-latch, D-latch) is used for the simpler morebasic asynchronous ’transparent’ storage elements, but this is notnecessarily consequently applied throughout the literature.

Page 25: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Characteristic Table and Equation

The behaviour of a flip-flop can be expressed with a characteristictable: a truth table expressing the relation between the input andthe present state, and the next state. An alternative is thecharacteristic equation which defines the dependency of the nextstate on the input and present state as a Boolean expression.Examples follow on the next slides.

Page 26: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Flip-Flop Principle: Positive Feedback

The simplest Flip Flop: Gated D-Latch/Transparent Latch

Characteristic Equation:Q = D ∧ E ∨ E ∧ QWhen the feedback loop is connected the state is maintained

Page 27: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

D-Flip-Flop from D-Latch

Page 28: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Clock Signal

Page 29: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

D-Flip-Flop

Characteristic Equation:Q = D

Characteristic TableD Qt Qt+1

0 0 00 1 01 0 11 1 1

Abbreviated:D Qt Qt+1

0 X 01 X 1

or simply:

D Qt+1

0 01 1

Page 30: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Content

Combinational Logic

Single Bit Storage

Sequential Logic

Page 31: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Finite State Machines

Finite State Machines (FSM) are a formal model suited to describesequential logic, i.e. logic circuits who’s output does not onlydepend on the present input but on internal memory and thus, onthe history or sequence of the inputs.

Page 32: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Specifying a FSM with a state transition graph

Example: Traffic Light

Page 33: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Moore and Mealy Machine

In a Moore FSM, the output depends solely on the state/memory,in contrast to the Mealy model, where outputs also depend on theinputs directly. The later sometimes allows to reduce the number ofstates, but is more demanding to design.

Page 34: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Synchronous and Asynchronous FSM

I Synchronous FSMs: transition of a global clock signal asimplicit transition condition for all state changes. Realized assequential logic circuits with synchronous flip-flops, e.g.D-flip-flops. Generally simpler to implement and easier to verifyand test. The clock frequency needs to be slow enough to allowthe slowest combinational transition condition to be computed.

I Asynchronous FSMs change state at once if the explicittransition condition is met (buzzword: ’ripple’). They can bevery fast but are much harder to design and verify.

Page 35: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Deducing a Synchronous 3-bit Counter from a FSM

Counters are a frequently used building block in digital electronics.A counter increases a binary number with each clock edge.

For the design of this simple counter variant, state transitions areunconditional, i.e. they happen in every case at every positive clockedge.

Page 36: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

State Transition Table

We chose to represent the 8states in D-flip-flops with thecorresponding binary numbers.Thus, there is in a first instanceno output combinational logicnecessary. (Note that outputcombinational logic will benecessary if the numbersshould, for example, appear onan LED-display)

present in nextS2 S1 S0 NA S2 S1 S0

0 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 1 1 01 1 0 1 1 11 1 1 0 0 0

Page 37: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

Karnaugh Maps

S2next = (S2 ∧ S1) ∨ (S2 ∧ S0) ∨ (S2 ∧ S1 ∧ S0)= S2 ∧ (S1 ∨ S0) ∨ (S2 ∧ (S1 ∧ S0))= S2 ∧ (S1 ∧ S0) ∨ S2 ∧ (S1 ∧ S0)= S2 ⊕ (S1 ∧ S0)

Page 38: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

General Synchronous Counter Element

Snnext = Sn ⊕

(n−1∧k=0

Sk

)(1)

⇒ T-flip-flop where T =∧n−1

k=0 Sk(Compare characteristic equation of the T-flip-flop!)

Page 39: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

3 bit Synchronous Counter

Useful extensions:I Possibility for loading an initial number (control signal LD and

an input bus)I Reset to zero (control signal RES)I Switching between up and down counting (control signal

UpDown)

Page 40: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits

3 bit Ripple Counter

A simple and popular asynchronous variant (only the firstT-flip-flop is clocked with the global clock) of a counter. A possibledisadvantage is that the output signal ’ripples’ from the lowest tothe highest bit, i.e. the highest bits are updated with a delay. Thismust be taken into account, if this kind of counter is used.

Page 41: IN3170/4170, Spring 2020 · IN3170/4170,Spring2020 PhilippHäfliger hafliger@ifi.uio.no ExcerptofformarINF2270scriptChapter6:SequentialLogic Circuits