ece 550d
play

ECE 550D Fundamentals of Computer Systems and Engineering Fall 2016 - PowerPoint PPT Presentation

ECE 550D Fundamentals of Computer Systems and Engineering Fall 2016 Storage and Clocking Tyler Bletsch Duke University Slides are derived from work by Andrew Hilton (Duke) VHDL: Behavioral vs Structural A few words about VHDL


  1. ECE 550D Fundamentals of Computer Systems and Engineering Fall 2016 Storage and Clocking Tyler Bletsch Duke University Slides are derived from work by Andrew Hilton (Duke)

  2. VHDL: Behavioral vs Structural • A few words about VHDL • Structural: • Spell out at (roughly) gate level • Abstract piece into entities for abstraction/re-use • Very easy to understand what synthesis does to it • Behavioral: • Spell out at higher level • Sequential statements, for loops, process blocks • Can be difficult to understand how it synthesizes • Difficult to resolve performance issues 2

  3. Last time… • Who can remind us what we did last time? • Add • Substract • Bit shift • Floating point 3

  4. So far… • We can make logic to compute “math” • Add, subtract,… (we’ll see multiply/divide later) • Bitwise: AND, OR, NOT,… • Shifts • Selection (MUX) • …pretty much anything • But processors need state (hold value) • Registers • … 4

  5. Memory Elements • All the circuits we looked at so far are combinational circuits: the output is a Boolean function of the inputs. • We need circuits that can remember values (registers, memory) • The output of the circuit is a function of the input and a function of a stored value (state) • Circuits with storage are called sequential circuits • Key to storage: feedback loops from outputs to inputs 5

  6. Ideal Storage – Where We’re Headed • Ultimately, we want something that can hold 1 bit and we want to control when it is re-written “flip flop” = bit to be written device that bit currently being held holds one bit to control bit (0 or 1) when we write • However, instead of just giving it to you as a magic black box, we’re going to first dig a bit into the box 6

  7. Building up to the D Flip-Flop and beyond D Q D Q R R D Q E D Q Q D Q D D D DFF Q Q Q Q D D DFF DFF latch latch DFF E E !Q DFF !Q E Q E Q C E Q Q E Q S Q E Q D S D Q D Q D Q D DFF 32 bit reg latch E E Q Q E Q SR Latch D Latch D Flip-Flop Register 7 (too awkward) (bad timing) (okay but only one bit) ( nice! )

  8. FF Step #1: NOR-based Set-Reset (SR) Latch 0 0 R R 0 1 1 Q Q 0 0 1 1 0 0 Q Q 0 S S R S Q 0 0 Q 0 1 1 1 0 0 1 1 - Don’t set both S & R to 1. Seriously, don’t do it. 8

  9. Set-Reset Latch (Continued) 0 0 R R 0 1 1 Q Q 0 0 1 1 0 0 Q Q 1 S S Time 1 S 0 1 R 0 1 Q 0 9

  10. Set-Reset Latch (Continued) 0 0 R R 0 1 1 Q Q 0 0 1 1 0 0 Q Q 1 S S Time 1 S 0 Set Signal Goes High 1 R 0 1 Q 0 Output Signal Goes High 10

  11. Set-Reset Latch (Continued) 0 0 R R 0 1 1 Q Q 0 0 1 1 0 0 Q Q 1 S S Time 1 S 0 Set Signal Goes Low 1 R 0 1 Q 0 Output Signal Stays High 11

  12. Set-Reset Latch (Continued) 0 0 R R 0 1 1 Q Q 0 0 1 1 0 0 Q Q 1 S S Time 1 S 0 Until Reset Signal 1 R Goes High 0 1 Q 0 Then Output Signal Goes Low 12

  13. SR Latch • Downside: S and R at once = chaos • Downside: Bad interface • So let’s build on it to do better 13

  14. Building up to the D Flip-Flop and beyond D Q D Q R R D Q E D Q Q D Q D D D DFF Q Q Q Q D D DFF DFF latch latch DFF E E !Q DFF !Q E Q E Q C E Q Q E Q S Q E Q D S D Q D Q D Q D DFF 32 bit reg latch E E Q Q E Q SR Latch D Latch D Flip-Flop Register 14 (too awkward) (bad timing) (okay but only one bit) ( nice! )

  15. FF Step #2: Data Latch (“D Latch”) R Q Q S Starting with SR Latch 15

  16. Data Latch (D Latch) R E nable Q Q D ata S Starting with SR Latch Change interface to Data + Enable (D + E) If E=0, then R=S=0. If E=1, then S=D and R=!D 16

  17. Data Latch (D Latch) R E nable D E Q Q 0 1 0 1 1 1 - 0 Q Q D ata S Time 1 D 0 E goes high 1 E 0 D “latched” 1 Q Stays as output 0 17

  18. Data Latch (D Latch) R E nable D E Q Q 0 1 0 1 1 1 - 0 Q Q D ata S Time Does not affect Output 1 D 0 E goes low 1 E 0 Output unchanged 1 Q By changes to D 0 18

  19. Data Latch (D Latch) R E nable D E Q Q 0 1 0 1 1 1 - 0 Q Q D ata S Time 1 D 0 E goes high 1 E 0 D “latched” 1 Q Becomes new output 0 19

  20. Data Latch (D Latch) R E nable D E Q Q 0 1 0 1 1 1 - 0 Q Q D ata S Time 1 D 0 Slight Delay 1 E 0 (Logic gates take time) 1 Q 0 20

  21. Logic Takes Time • Logic takes time: • Gate delays: delay to switch each gate • Wire delays: delay for signal to travel down wire • Other factors (not going into them here) • Need to make sure that signals timing is right • Don’t want to have races or wacky conditions.. 21

  22. Clocks • Processors have a clock: • Alternates 0 1 0 1 • Like the processor’s internal metronome • Latch  logic  latch in one clock cycle One clock cycle • 3.4 GHz processor = 3.4 Billion clock cycles/sec 22

  23. FF Step #3: Using Level-Triggered D Latches • First thoughts: Level Triggered • Latch enabled when clock is high • Hold value when clock is low D Q D Q D Logic D 3 3 latch latch E Q E Q Clk This slide describes how D-latches can malfunction because they were level triggered. 23 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  24. Strawman: Level Triggered • How we’d like this to work • Clock is low, all values stable Clk 100 001 010 111 D Q D Q D Logic D 3 3 latch latch E Q E Q 0 Clk This slide describes how D-latches can malfunction because they were level triggered. 24 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  25. Strawman: Level Triggered • How we’d like this to work • Clock goes high, latches capture and xmit new val Clk 100 100 010 010 D Q D Q D Logic D 3 3 latch latch E Q E Q 0 Clk This slide describes how D-latches can malfunction because they were level triggered. 25 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  26. Strawman: Level Triggered • How we’d like this to work • Signals work their way through logic w/ high clk Clk 100 100 010 010 D Q D Q D Logic D 3 3 latch latch E Q E Q 0 Clk This slide describes how D-latches can malfunction because they were level triggered. 26 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  27. Strawman: Level Triggered • How we’d like this to work • Clock goes low before signals reach next latch Clk 100 100 010 010 D Q D Q D Logic D 3 3 latch latch E Q E Q 0 Clk This slide describes how D-latches can malfunction because they were level triggered. 27 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  28. Strawman: Level Triggered • How we’d like this to work • Clock goes low before signals reach next latch Clk 000 100 111 010 D Q D Q D Logic D 3 3 latch latch E Q E Q 0 Clk This slide describes how D-latches can malfunction because they were level triggered. 28 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  29. Strawman: Level Triggered • How we’d like this to work • Everything stable before clk goes high Clk 000 100 111 010 D Q D Q D Logic D 3 3 latch latch E Q E Q 0 Clk This slide describes how D-latches can malfunction because they were level triggered. 29 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  30. Strawman: Level Triggered • How we’d like this to work • Clk goes high again, repeat Clk 000 000 111 111 D Q D Q D Logic D 3 3 latch latch E Q E Q 0 Clk This slide describes how D-latches can malfunction because they were level triggered. 30 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  31. Strawman: Level Triggered • Problem: What if signal reaches latch too early? • I.e., while clk is still high Clk 101 000 111 111 D Q D Q D Logic D 3 3 latch latch E Q E Q 0 Clk This slide describes how D-latches can malfunction because they were level triggered. 31 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  32. Strawman: Level Triggered • Problem: What if signal reaches latch too early? • Signal goes right through latch, into next stage.. Clk 101 101 111 111 D Q D Q D Logic D 3 3 latch latch E Q E Q 0 Clk This slide describes how D-latches can malfunction because they were level triggered. 32 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

  33. That would be bad… • Getting into a stage too early is bad • Something else is going on there  corrupted • Also may be a loop with one latch • Consider incrementing counter (or PC) • Too fast: increment twice? Eeek … 001 +1 D Q D latch E Q 010 3 This slide describes how D-latches can malfunction because they were level triggered. 33 Real D-flip-flops are edge-triggered , and we’re showing you why that’s important.

Recommend


More recommend