ECE342 Lecture Schedule, Section 3

by Guy Lemieux

CO Text Computer Organization (fifth edition)
by Hamacher, Vranesic, Zaky
DL Text Fundamentals of Digital Logic with VHDL Design
by Brown, Vranesic

Lecture Date Content CO Text DL Text
1 8-01-02 Binary Multipliers
  • half, full adders (HA,FA)
  • array multipliers
  • signed multiplicand M: sign extention of partial products
  • sign extension tricks (not in text, DL5.6)
  • signed multiplier Q: booth encoding (radix-2)
  • 6.1,6.3-6.4 5.6 (prefer CO)
    2 9-01-02 Booth Encoding (BE)
  • two's complement
  • +1 trick: -M = /M + 1, get +1 free using carryin (not in text)
  • multiplying with BE digits
  • array multiplier with BE radix-2 (not in text)
  • radix-4 reduces # of partial products, speeds multiplication
  • array multiplier cell for BE radix-4 (not in text)
  • 6.5
    3 15-01-02 Fast Multiply
  • carry-save addition cuts carry propagation
  • use of fast adders reduces final delay
  • Wallace tree to reduce depth (delay)
  • dot-notation to design multipliers
  • 4:2 compressors (not in text)
  • Booth radix-2 and radix-4 optimizations (not in text)
  • 6.5
    4 16-01-02 Logic Function Representation & Minimization
  • minterms, canonical sum-of-products (SOP) form
  • truth table, on-set, don't-care set
  • minimize cost = #inputs + #gates
  • minimization strategy: K-map
  • literal, implicant, prime implicant, essential prime implicant
  • cover, irredundant cover, minimum cover
  • reviewed 2.6, 4.1, 4.2
  • you should know
    4.4-4.7
  • 5 22-01-02 Minimization, Cubical Notation
  • minimization strategy: branching heuristic
  • 0-cubes, 1-cubes, 2-cubes
  • 1D, 2D, 3D, 4D cubes
  • maximize size of cube: vertex, edges, faces, and cubes
  • extension to 5D++ hard to visualize, but easy for software
  • 4.2, 4.9
    6 23-01-02 *-Operation (star-operation)
  • can be used by software
  • generates implicants from a cover (eg, all minterms)
  • generated implicants can be smaller or larger cubes
  • finds all implicants
  • algorithm for generating all prime implicants
  • 4.10.1
    7 29-01-02 Finite State Machines
  • example: set output z=1 if input w high for >= 2 cycles
  • Moore model: outputs f(state-only) labeled in state bubbles
  • Mealy model: outputs f(state,inputs) labeled on edges
  • start with FSM bubble diagram
  • 5 design steps: state table, state assignment, state-assigned table, optimize logic functions, timing diagram
  • setup, hold, clock-to-output delays
  • Mealy more susceptible to glitches (uncontrollable inputs)
  • Moore has fewer glitches (but still present!)
  • Moore: more states. outputs come 1 cycle later.
  • 8.1, 8.2
    8 30-01-02 Finite State Machines
  • Mealy/Moore differences
  • example: bit serial adder
  • start with Mealy FSM (2 states)
  • derive Moore FSM (4 states) by splitting Mealy states
  • Moore FSM must have at least one state per unique output value
  • here, easy Moore FSM was found through clever design (eg, via state assignment)
  • easy Moore FSM: place FF on outputs of Mealy FSM
  • other Moore FSMs possible (eg, different state assignment)
  • Moore: outputs come 1 cycle later. are design specs met?
  • 8.4 (VHDL for labs), 8.5
    9 05-02-02 Bus Arbiter FSM, Algorithmic State Machine (ASM) Charts
  • only one bus master at a time
  • arbiter designates bus master
  • bus protocol: simple priority scheme (bad: starvation)
  • device protocol: request bus, wait for grant, use it, release request
  • bus timing, one master, edges arrive in order
  • dead cycle between masters (idle)
  • ASM: describes digital system
  • state box (Moore outputs)
  • decision box (eg, edges in FSM)
  • conditional output box (Mealy outputs), always follows decision box
  • more ASM examples (Moore, Mealy)
  • 8.8, 8.10
    10 06-02-02 Algorithmic State Machine (ASM) Charts
  • example: bit counting
  • implied timing in ASM charts can be confusing (note state S2 outputs)
  • extracting datapath, control circuits
  • sample VHDL code: bitcount.vhd
  • 10.1, 10.2.1
    11 12-02-02 Multi-cycle Multiplier
  • Russian Peasant Algorithm
  • ASM similar to bitcounting
  • datapath width 2n
  • optimization 1: use adder of width n
  • above optimization requires shift-right reg for P
  • optimization 2: use lower half of P to hold B (=Q)
  • 10.2.3
    12 12-02-02 Multi-cycle Divider
  • long-hand binary division
  • A=dividend, B=divisor
  • Q=quotient=A/B, R=remainder=A%B
  • datapath uses R||A (R in parallel with A) shift-left reg
  • shift-left reg to generate quotient Q
  • ASM chart uses 2 cycles per iteration (bit in Q)
  • optimization 1: combine states, 1 cycle per iteration
  • above optimization introduces problem, need extra R bit
  • optimization 2: (not covered) store Q in A.
  • 10.2.4
    13 12-02-02 I/O and Bus Design
  • simple asynchronous bus design
  • master-ready/slave-ready full handshake
  • sharing bus wires: open collector, open drain, tristate control
  • parallel input port (keyboard)
  • parallel output port (printer)
  • 4.5, 4.6.1
    14 13-02-02 Bus Design
  • many bus designs, different goals (cheap, simple, high performance)
  • recent trend: serial bus, cheap and high-speed signalling technology
    68000 Bus
  • 68000 asynchronous, but internal processor clock synchronizes changes
  • 68000 bus read cycle
  • 68000 bus write cycle
  • slave use of /DTACK to delay read response (or acceptance of writes)
  • /LDS, /UDS signals, 32-bit transfers
  • note you will need to know DMA for future lab
  • UltraGizmo lab book
  • pages 61-62, 71-73.

    68306 User Manual
  • 3.1, 3.7-3.8
  • see also sections 3.2-3.3 for DMA
  • 15 05-03-02 Timing and Delays
  • gate the data, not the clock
  • glitches in clock are catastrophic
  • treat sub-circuits as black boxes
  • black boxes specify: i/o, function, timing parameters
  • timing parameters: setup time, hold time, clock-to-output, max clock speed Fmax
  • violate setup/hold: metastability
  • coping with metastability using double flip-flops
  • fixing setup violations (reduce logic delays, lower Fmax, move FF closer to inputs)
  • fixing hold violations (increase logic delays, move FF farther to inputs)
    • Note: cannot fix hold violations by changing clock frequency
    • fix hold violations first, then setup violations
  • backwards-routed clocks, H-tree clocks
  • 10.3
    MIDTERM MATERIAL ENDS HERE.
    16 06-03-02 Timing Hazards
  • two types: static and dynamic hazards
  • two static hazards:
        o static-1 hazard occurs in SOP logic (AND/OR, NAND/NAND),
        o static-0 hazard occurs in POS logic (OR/AND, NOR/NOR)
  • two dynamic hazards:
        o dynamic-0-to-1 hazard
        o dynamic-1-to-0 hazard
        o occurs in multilevel logic
        o multiple paths (delays) from an input to output
        o does not occur in SOP or POS logic
  • static and dynamic hazard examples
        o static hazards arise from A and !A inputs in SOP/POS
        o dynamic hazards arise from embedded static hazards
  • fixing static and dynamic hazards
        o fix static hazards by covering transitions
        o cover transitions using consensus terms (redundant terms)
        o is fixing embedded hazards sufficient to fix all dynamic hazards?
  • 9.6
    17 12-03-02 MIDTERM REVIEW
    18 13-03-02 Asynchronous Sequential Circuits
  • sequential circuits
    • past input sequence influences current/future events
    • past summarized by current state (memory)
    • synchronous: use common clock signal, eg memory from FFs
    • asynchronous: no clock, memory from logic feedback and delay
  • fundamental mode: assume only one async input changes at a time
  • stable states
  • flow table, excitation table
  • avoid hazards in logic
  • 9.1, 9.2
    19 19-03-02 Asynchronous FSMs
  • design flow
    • state diagram
    • flow table (new concepts)
    • state assignment (new concepts)
    • excitation table
    • next-state and output logic expressions
    • draw circuit
  • parity generator, Moore FSM example
  • state assignment
    • one state bit changes at a time
    • embed state assignment on cube
  • race condition occurs if:
    • 2 or more inputs change
    • outcome is different depending which changes first
  • 9.3
    20 20-03-02 Asynchronous FSMs
  • bus arbiter example
  • state assignment difficulty
    • cannot always embed onto cube
    • cannot always cope with race conditions
    • flow through existing states
    • add new states
  • 9.3
    21 26-03-02 Asynchronous State Assignment
  • one-hot state assignment always works, inefficient
  • another state assignment strategy:
    • relabel flow table with transitions
    • draw transition diagram
    • guess state assignment
    • fix problem transitions (diagonals)
    • repeat as necessary
  • relabled flow table
    • enumerate (#) each stable state
    • relabel each column with destination stable state #
  • transition diagram
    • one vertex for each row (label with state)
    • edge between two vertices if same # in any column
    • label edge with # from column
    • underline label if both ends are unstable
    • underlined labels: unnecessary transitions
  • guess state assignment
    • can re-use or ignore unnecessary transitions
    • introduce new states on unlabeled vertices of cube
    • map all transitions to edges in cube
    • add new state variables (bits) if necessary
  • 9.5
    22 27-03-02 State Minimization: Partitioning
  • two steps: partitioning, merging
  • partitioning
    • place all states in one group, P1
    • divide P1 into groups, each has unique output value, P2
    • divide P2 into groups based on successor states, P3
    • continue last step until Pn = Pn-1
  • 8.6,9.4
    23 2-04-02 State Minimization: Merging
  • merging uses unspecified entries to reduce
  • compatible states can be merged
  • two states are next-state compatible if:
    • every column has same entry, OR
    • every column has one/both entries unspecified, OR
    • every column has stable entry
  • two states are output compatible if:
    • (Moore) outputs are compatible
    • (Mealy) outputs are compatible in only stable states
  • can merge if both next-state compatible and output compatible
  • merger diagram:
    • one vertex per state
    • add edge if two states can be merged
    • merge cliques to produce fewest # of groups
    • redraw flow table
    • repeat until no more merging can be done
  • Mealy outputs
    • same output as Moore in stable states
    • most unstable states are "don't care", BUT...
    • outputs must be glitch free during transitions
    • force output on transitions between stable states if:
    • force 0 output if stable states both output 0
    • force 1 output if states both output 1
    • don't care output on other transitions, ie between stable states with different outputs
  • 9.4
    24 03-04-02 Testing Combinational Logic
  • assume only single faults exist
  • assume stuck-at fault model
  • find a test input
    • should produce output f
    • if fault under test exists, test input must produce output not(f)
    • producing not(f) is how we detect the fault
  • find a test set, number of test inputs to test all faults
  • path sensitizing to detect faults along path
  • consistency check determines inputs that sensitize a path
  • fault propagation detects specific faults
  • 11.1,11.2,11.3
    25 09-04-02 Logic Minimization: #-Operation
  • C = A # B, sharp-operation. think: C = A remove B
  • C is the part of A not covered by B
  • C may contain 0, 1, or more cubes
  • 3 cases for C:
    • A and B disjoint, C = A (one or more "phi" in Ai#Bi)
    • A covered entirely by B, C = empty set (all "epsilon" in Ai#Bi)
    • A partially covered by B, C = one or more cubes
  • in third case, each cube in C is found by changing A:
    • find position i where digit Ai=x and Bi=0 or 1.
    • replace digit Ai with digit not(Bi)
  • let P1 be essential PI, let P be set of all PIs:
  • P1 is essential if P1 # (P - P1) # DC produces any cubes
  • 4.10
    26 10-04-02 EXAM REVIEW
  • Some Y2000 Exam Solutions
  • For Question 2b of Y2000 exam,
    Haresh Khemani gives this solution.