EE4: Digitale Systemen BSc. EE, e jaar, 22-23, 8e hoorcollege rjan van Genderen, Stephan Wong, Computer Engineering 3-5-23 Delft University of Technology Challenge the future
Hoorcollege 8 Combinatorische modules Sequentiële modules Getalsystemen rithmetische modules Corresponderende stof in boek Digital Logic : 6 6.3 (niet 6..2), 7.8 7.9, 5.2 5.3, 5.6 5.6. EE4 Digitale Systemen 2
Combinatorische modules EE4 Digitale Systemen 3
Multiplexers 2 n input bits naar output bit, geselecteerd met n control bits I I 2: mux Z = ' I + I Z I I Z Logische vorm: Z I I Mogelijke implementatie I I I I 2 I 3 2 3 4: mux B Z B Z I I I 2 I 3 I I 2 I 3 Z Z = ' B' I + ' B I + B' I 2 + B I 3 B EE4 Digitale Systemen 4
Multiplexers s s w w f w 2 w 3 Een 4-to- multiplexer geimplementeerd met twee 2-to- multiplexers EE4 Digitale Systemen 5
6 EE4 Digitale Systemen Multiplexers 2 n- : MUX kan elke functie van n variabelen implementeren: Voorbeeld: F(,B,C) = m + m 2 + m 6 + m 7 = ' B' C' + ' B C' + B C' + B C 8: mux 2 3 4 5 6 7 S2 S S B C F "Lookup Table" S S B 4: mux 2 3 C C F B C F C C = ' B' C' + ' B C' + B = ' B' (C') + ' B (C') + B' () + B ()
Demultiplexer/Decoder Demultiplexer: input bit naar 2 n output bits, geselecteerd met n control bits :2 Demux :2 O G O = G S demux O = G S S O S O O G G :4 Demux Mogelijke implementatie O = G S S S S O 3 O 2 O O G G O O = G S S O 2 = G S S G G O O 2 O 3 = G S S G O 3 Indien G geen data voorstelt maar enable signaal (of altijd is), dan heet demultiplexer een decoder S S EE4 Digitale Systemen 7
Decoder w w y y w w y y En y 2 y 3 y 2 y 3 w 2 w 3 En w y w y En y 2 y 3 w y w y En y 2 y 3 w y w y En y 2 y 3 y 4 y 5 y 6 y 7 y 8 y 9 y y Een -to-6 decoder opgebouwd uit -to-4 decoders met enable ingang w y w y En y 2 y 3 y 2 y 3 y 4 y 5 EE4 Digitale Systemen 8
Decoder Decoder makkelijke manier om mintermen te genereren: Voorbeeld: F = ' B C' D + ' B' C D + B C D F 2 = B C' D' + B C G S 3 S 2 S S :6 demux B C D 2 3 4 5 6 7 8 9 2 3 4 5 B CD BC D BC D BCD BCD F F 2 EE4 Digitale Systemen 9
Multiplexer m.b.v. decoder MUX opgebouwd met decoder en ND-OR schakeling ND-OR schakeling vervangen door bus met tri-state buffers: I I I 2 O I I I 2 n n n E E E n n O n-bit multiplexing I 3 I 3 n E 2 3 n-bits bus B :4 dec B EE4 Digitale Systemen
Read-Only Memories ROM: een PL waarbij het ND array een volledige decoder is (2 n mintermen!) en waarbij alleen het OR array wordt geprogrammeerd Decoder 2 n min termen OR array n address lines m output lines Oftwel het OR array: levert de waarheidstabel voor alle m uitgangen is een tabel van 2 n bitvectoren (index = adres ; bitvector = woord ) is een memory array voor 2 n woorden van m bits EE4 Digitale Systemen
Logische Functies m.b.v. ROM Implementatie van logische functies m.b.v. een ROM Voorbeeld: F = ' B' C + B' C' + B' C F = ' B' C + ' B C' + B C F 2 = ' B' C' + ' B' C + B' C' F 3 = ' B C + B' C' + B C' ddress B C Word Contents F F F 2 F 3 ROM 8 words x 4 bits B C F F F F 2 3 ddress Outputs EE4 Digitale Systemen 2
Geheugenuitbreiding met decoder Grotere RM = parallelschakeling kleinere RM banken + decoder: 52Kx8 = 8 x 64Kx8 (met :8 DEC)..5 6..8 CS WE 3 S G :8 dec 7 adres bus 6 6 6 7 CS CS 64Kx8 64Kx8 WE D WE D 8 8........ data bus CS 64Kx8 WE D 8 D..7 D uitgang NIET in tri-state (d.w.z. bank geselecteerd om uitgelezen te worden) als CS = en WE = (oftewel CS = en WE = ) EE4 Digitale Systemen 3
Encoder 2 n inputs w w 2 n y y n Een 2 n -to-n binary encoder (inverse functie van een decoder) w 3 w 2 w w y y Waarheidstabel (veronderstelt one-hot encoding aan ingang) n outputs Priority Encoder w 3 w 2 w w y y z X X X X X X X X Waarheidstabel van een priority encoder (z geeft aan of er sowieso wel een in de ingang zit) EE4 Digitale Systemen 4
Sequentiële modules EE4 Digitale Systemen 5
Data-register Register = groep D-FFs die gezamenlijk worden bestuurd (CLK, CLR,...) Voorbeeld: + 4-bit register ( quad D reg ) met clock en asynchrone clear (CLR, active low): CLR D3 Q3 2 3 5 4 4 CLK CLR D3 D2 D D Q3 Q3 Q2 Q2 Q Q Q Q 9 7 6 2 3 5 D2 D D CLK Q2 Q Q EE4 Digitale Systemen 6
Data-register met load/hold mode nder voorbeeld: 8-bit D-register met asynchrone reset (RST) en synchrone load (LD): RST + D7 2: mux Q7 D D-REG 8 8 Q D 2: mux Q LD CLK RST LD CLK LD = : hold mode (Q + = Q) LD = : load mode (Q + = D) EE4 Digitale Systemen 7
Schuif-register Schuif-register = D-reg met data permutatie-mogelijkheden voorbeeld: 8-bit shuif-register met asynchrone clear (CLR) en vier synchrone functie-modes (S S): D D...... D7 S S LSI combinatoriek RSI S S: Functie: CLR CLK FF FF...... FF Q Q...... Q7 hold shift right shift left load Schuifregisters geschikt voor serie-parallel convertors, zoals bij terminal-computer communicatie-verbindingen EE4 Digitale Systemen 8
Seriële communicatie met schuifregisters C Parallelle Input Gemeenschappelijke klok D7 D6 D5 D4 D3 D2 D D Clock S S LSI D C B RSI CLK CLR S S LSI D C B RSI CLK CLR Zender QD QC QB Q QD QC QB Q S S LSI D C B RSI CLK CLR S S LSI D C B Ontvanger 94 94 94 Seriële transmissie RSI CLK CLR QD QC QB Q 94 QD QC QB Q D7 D6 D5 D4 D3 D2 D D C2 Parallelle Output klokpuls voor links parallel inladen, daarna worden met 8 klokpulsen 8 bits serieel overgestuurd, daarna rechts parallel uit te lezen. EE4 Digitale Systemen 9
synchrone tellers Clock T Q Q T Q Q T Q Q Uitgang flip-flop is kloksignaal voor buurman. Q Q Q 2 Clock Q Q Q 2 Count 2 3 4 5 6 7 EE4 Digitale Systemen 2
Synchrone tellers T Q T Q T Q T Q Q Q Q 2 Q 3 Clock Q Q Q Q lle flip-flops op hetzelfde kloksignaal. Clock Q Q Q 2 Q 3 Count 2 3 4 5 6 7 8 9 2 3 4 5 EE4 Digitale Systemen 2
Voorbeeld: Teller modules combineren 8-bit teller met asynchrone reset (RST) en synchrone load (LD) + enable (EN), en met ripple carry output (RCO) RCO = EN. [ Q..Q7 =.. ] 24-bits teller mbv. RCO: D D...... D7 LD EN = RCO EN = RCO RST CLK tel/laad-combinatoriek FF FF...... FF Q Q...... Q7 EN 8-cntr 8-cntr 8-cntr FF FE FF FF EE4 Digitale Systemen 22
FSM realisaties mbv. modules Finite State Machine model combinatoriek Inputs Output Function Outputs Next State Function toestand register Implementatie mogelijkheden: - combinatoriek: Losse poorten, Multiplexer, Decoder, PL, ROM - toestandregister: Losse flipflops, Dataregister, Teller met parallel load - gehele FSM: registered PL, CPLD of FPG EE4 Digitale Systemen 23
Getalsystemen EE4 Digitale Systemen 24
Getalsystemen Representatie van positieve getallen is eenduidig (en reeds behandeld) bv. 5 = Met betrekking tot negatieve getallen bestaan er de volgende systemen: - sign-magnitude (bv. 5 =, -5 = ) - one s complement (bv. 5 =, -5 = ) - two s complement (bv. 5 =, -5 = ) In de volgende sheets geven we voorbeelden voor 4 bits EE4 Digitale Systemen 25
-4-3 -5-2 -6 - Sign-Magnitude systeem -7 - + + +2 +3 +5 +6 +7 +4 + = + 5 = - 5 - Hoogste bit geeft teken (sign): = positief (of nul), = negatief Lagere bits geven de modulus (magnitude): () - 7 () Getalsbereik voor n bits: [-2 n- +, 2 n- - ] Twee verschillende representaties voor! Zeer lastige optelling/aftrekking EE4 Digitale Systemen 26
-3-2 - One s Complement systeem - + + +2 +3 + = + 5 = - 5 - -4-5 -6-7 +7 +6 +5 +4 bitrepr (-X) = bitrepr (X) (-X = one s complement van X) Getalsbereik voor n bits: [-2 n- +, 2 n- - ] Twee verschillende representaties voor! Lastige optelling/aftrekking EE4 Digitale Systemen 27
-4-5 -3-6 -2-7 Two s Complement systeem - -8 + +7 + +6 +2 +3 +5 +4 = + 5 = - 5 Getalsbereik voor n bits: [-2 n-, 2 n- - ] Slechts één representatie voor! Verreweg meest populaire systeem + - s compl, maar getal verschoven: bitrepr (-X) = bitrepr (X) + (ook geldt: bitrepr (X) = bitrepr (-X) + ) => optelling/aftrekking kan eenvoudig door representaties (van positieve en negatieve getallen) altijd op te tellen (zie volgende slide) EE4 Digitale Systemen 28
optellen/aftrekken in 2 s-complement 4 4-4 - 4 3 7 + - 3 () + - 3-7 () + 3 - + Toevallig geen overflow: De carry mag dan verwaarloosd worden. Het resultaat kan echter buiten het getalsbereik liggen (zie volgende slide). Nooit last van overflow: resultaat altijd binnen getalsbereik (pos + neg of neg + pos) De carry mag dan verwaarloosd worden EE4 Digitale Systemen 29
5 2 7 5 3-8 geen overflow overflow! Overflow situaties - 3-5 - 8-7 - 2 7 geen overflow overflow! Overflow indien de 2 hoogste carry s niet gelijk -2-3 -4-5 -6-7 -3-4 -5-6 -7-2 - -8 - -8 + + +7 + +2 +3 +4 +5 +6 +7 + +2 +3 +4 +5 +6 EE4 Digitale Systemen 3
ritmetische Circuits EE4 Digitale Systemen 3
4-bit opteller met Full-dders 3 B 3 2 B 2 B B C Out + B B B B + + + C In C Out C In C Out C In C Out C In S S S S S 3 S 2 S S S = + B EE4 Digitale Systemen 32
4-bit opteller/aftrekker 3 B 3 B 3 2 B 2 B 2 B B B B Sel Sel Sel Sel mux mux mux mux C Out + B C In C Out B + CIn C Out B + CIn C Out B + CIn /S S S S S S S 2 S S 3 Overflow /S = optelling /S = aftrekking ( - B = + (- B) = + B + ) EE4 Digitale Systemen 33
rithmetic Logic Unit B LU C in M,S,S F S S Functie M =, Logische Operaties (bitwise) F i = i F i = not i F i = i xor B i F i = i xnor B i M =, ritmetische Operaties F = + C In F = (not ) + C In F = + B + C In F = (not ) + B + C In Opmerking F = Complement van XOR van i, B i XNOR van i, B i of + F = s- of 2 s compl. Som van en B B + compl. ( = B - als C in =) EE4 Digitale Systemen 34
Vermenigvuldiger (principe) Voorbeeld: bereken 3 * multiplier * (3) () multiplicand Vergelijk met: 3 3 3 43 (43) Partial products Optellen Partial Products 3 B 3 2 B 2 B B 3 B 3 3 B 2 2 B 3 3 B 2 B 2 B 3 3 B 2 B B 2 B 3 2 B B B 2 B B B S 7 S 6 S 5 S 4 S 3 S 2 S S Het product van twee n-bit getallen is een 2n-bit getal! EE4 Digitale Systemen 35
Vermenigvuldiger (implementatie) 3 B 3 3 B 2 2 B 3 3 B 2 B 2 B 3 3 B 2 B B 2 B 3 2 B B B 2 B B B F H H H F F F F F F H F S 7 S 6 S 5 S 4 S 3 S 2 S S Let op het gebruik van de parallel carry-outs t.b.v. de higher order sums! De ND poorten zitten in de praktijk bij de adders in het array. EE4 Digitale Systemen 36
Samenvatting Combinatorische modules Sequentiële modules Getalsystemen rithmetische modules Volgende college: VHDL EE4 Digitale Systemen 37