Presentation laddar. Vänta.

Presentation laddar. Vänta.

Digitalteknik, fortsättningskurs 2012 Föreläsning 16 Inför tentan

Liknande presentationer


En presentation över ämnet: "Digitalteknik, fortsättningskurs 2012 Föreläsning 16 Inför tentan"— Presentationens avskrift:

1 Digitalteknik, fortsättningskurs 2012 Föreläsning 16 Inför tentan
Sista föreläsningen Övriga föreläsningstider denna vecka Används till hjälp/stöd Jag har 12 slide (+90) Så…. Frågor! Blir ingen PDF utan läggs upp som presentation!

2 Lärandemål Efter fullgjord kurs ska studenten kunna
Principer för en strukturerad och hierarkisk beskrivning av mindre digitala system. Beskriva en mindre digital konstruktion i VHDL, utföra simulering och syntes med moderna verktyg samt utföra enklare tester mot målteknologin. Funktion, användning och begränsningar hos programmerbar logik. Känna till grunderna för konstruktion för testning, och principerna bakom testning. Förstå kopplingen VHDL syntes maskinvara.

3 Färdighet och förmåga Förenkla en funktion av upp till 5 variabler med Karnaughdiagram. Förenkla en funktion av upp till 5 variabler med Quine-McCluskey. Realisering av kombinatoriska nät med grindar och med hjälp av VHDL. Kunna identifiera statiska och dynamiska hasarder samt eliminera dessa. Kunna använda målteknologierna FPGA och CPLD på ett effektivt sätt. Behärska binär aritmetik såsom ”Carry look ahead”, multiplikation och BCD. Förstå och kunna använda sekvensnät av Mealy, Moore och synkron Mealy typ. Koda ett sekvensnät med en för målteknologin optimal kodning samt minimera antalet tillstånd. Kunna koda sekvensnät av Mealy, Moore och synkron Mealy typ i VHDL och förstå dess tidsegenskaper. Kunna skapa enklare testbänkar för sina VHDL konstruktioner. Känna till och kunna implementera enklare asynkrona sekvensnät. Kunna identifiera cykler och kapplöpningar i asynkrona sekvensnät och kunna eliminera dessa. Minimera ett asynkront sekvensnätet, ge det en kapplöpningsfri kodning.

4 Bred kurs - föreläsningar
Introduktion VHDL Kombinatorik Teknologier VHDL (Labb 2) Minneselement Räknare & aretmetik Sekvensnät VHDL – 2 process metoden Tillståndsminimering Asynkrona sekvensnät 1 Asynkrona sekvensnät 2 Synkronisering - Testning Design för test & Simulering Konstruktion av ASIC Sammanfattning Kursen – omfångsrik! Huvuddelarna! (ca 30/50p)

5 Laborationer VHDL , intro + kombinatoriska nät.
VHDL, konstruktion och syntes. Synkrona sekvensnät (VHDL + test bänkar) Hasarder och asynkrona sekvensnät. (I VHDL) Kursen – omfångsrik! Huvuddelarna! (ca 30/50p) VHDL Synkrona sekvensnät Asynkrona sekvensnät

6 Måste behärska För överbetyg Synkrona sekvensnät Koda snålt, one hot
Kunna rita upp en tillståndsgraf Kunna ta fram tidsdiagram och från tidsdiagram tillståndsgraf Känna till Mealy, Moore och synkron Mealy VHDL kopplingen. Kunna minimera För överbetyg Asynkrona sekvensnät Implementera hasard fritt Kunna rita upp en tillståndsgraf Kunna ta fram tidsdiagram och från tidsdiagram tillståndsgraf Känna till Mealy och Moore Kunna minimera Koda hasard fritt Viktigt: Förstå skillnaden mellan synkrona och asynkrona sekvensnät!

7 Tentamina: struktur 1. Småfrågor ca 6-12p 2. Minimering mm, ca 6-10p
Teknologi val Synkroniseringsfel Små VHDL uppgifter ASIC, FPGA, CPLD 2. Minimering mm, ca 6-10p Primimplekanter, Quine-McCluskey/Karnaughdiagram Testvektorer Mux:ar Hasader 3. VHDL ca 8-12p Läsa, förstå, ändra. ( OBS räcker inte med allmän förståelse för programmering) K Q Ungefärligt upplägg! Småfrågor: Täcka det som inte kommer med i de andra frågorna. Korta svar 1-2 meningar (korta) Minimering/konstruktion VHDL – ej ren kodning, läsa förstå ändra Synkrona sekvensnät. ProblemAnalyskonstruktionminimeringsyntes

8 Tentamina: struktur 4. Synkrona sekvensnät (konstruktion, kodning) 6-10p Tillståndskodning, minimering, syntes ‘One-hot’ tillstånds tilldelning Mealy, Moore och Synkron Mealy Implementera grindar/VHDL 5. Minimering sekvensnät mm (4-8p) asynkront sekvensnät analys av Hassarder Simulering ASIC – transistorer mm 6. Konstruktion av asynkront sekvensnät, 6-12p timing Poäng på tenta 50p godkänt 20p, 4:a 30p och 5:a 40p Minimering Beroende på föregående och efterföljande uppgift Asynkrona sekvensnät Konstruktion/analys EV – strycker jag en uppgift (För att arbetsbördan ska bli lagom)

9 Viktiga metoder ett kunna
Asynkrona nät Primitiv flödestabell Hasarder Kapplöpningsfri kod Dont-care i tillståndsgraf Asynkront realiserbart Karnaughdiagram 3-5 variabler. Karnaughdiagram primimplikatorer Quine-McCluskey Tillståndskodning Heuristiska metoder ’One-hot’ Minimering Successiv partitionering Implekatortabell Relationsgraf Testvektorer Okänt tillstånd X

10 Synkrona – Asynkrona sekvensnät
Rita tillståndsgraf Tillstånds tabell Minimera – Implikator tabell Relationsgraf, eller stegvisa partitioneringar Koda – gärna ”onehot” Ta fram ekvationerna Rita tillståndsgraf (kvarhållande tillstånd) Flödes tabell  Primitiv flödestabell! Minimera Implikator tabell Relationsgraf, Krav!, komplex relationsgraf! Koda binärt (ej ”onehot”) lägg ut i boolesk hyperkub Ta fram ekvationerna + konsensustermer

11 Att göra Lös uppgifter!!!! (Övning, lab, tentor) När ni inte kan använd presentation/bok Går fortfarande inte facit! Stäm av att ni behärskar alla metoderna Viktigaste att ha med sig från kursen: VHDL Synkronisering Timing Tentan testar färdigheter, det räcker inte att kunna måste även ha visst tempo! Så öva! Om materialet!

12 Datum Granskning 17/4 (E4128, 11.45-12.30)
Tisdag 6/3 fm M 4 timmar 29/8 – em M 1x/ Granskning 17/4 (E4128, ) Granskning 19/4 (E4128, ) Laborationerna och övningsuppgifterna kommer att vara en viktig inspirationskälla för tentan Laborationerna, inlämnings- och övningsuppgifter kommer att vara en viktig inspirationskälla för tentan

13 Tack för mig! Onsdag 13.15 – 14 Frågestund HC4
Fredag Frågestund HA4 Inlämning 3 senast torsdag. (Inlämning  Godkänd). Inlämning 4 helt struken. Hoppas att jag får återse er! Digital konstruktion EDA234 LP II Kandidatarbete LP III – IV (ansvarig) Examensarbeten.

14 Sammanfattning F1

15 EX Upg 3 entity Upg3 is port ( Clk,X,Reset : in std_logic; U : out std_logic); end Upg3; architecture BEHAVIORAL of Upg3 is type state_type is (S0,S1,S2); signal state, next_state : state_type; begin p1:process(Clk, Reset) if Reset='1‘ then state <= S0; elsif Clk'event and Clk='1' then state <= next_state; end if; end process p1; end case; p2:process(X, state) begin U<='0'; next_state <= S0; case state is when S0 => if X='1' then next_state <= S1; end if; when S1 => next_state <= S2; U<='1'; when S2 => if X='1' then next_state <= S2; end if; end process p2; end BEHAVIORAL; Läsa Förstå, Ändra

16 Att behärska på VHDL Processer (Komb – minne)
if LA='1' then -- Shift next_A<=Data; bitar elsif SRA='1' then -- Shift höger next_A<= '0' & A(7 downto 1) ; elsif SLA='1' then -- Shift vänster next_A<= A(6 downto 0) & '0' ; end if; -- Shift Processer (Komb – minne) Kombinatoriska Vippor if Reset='1'then state <= S0; elsif Clk'event and Clk='1' then Tillståndsmaskiner case state is when S0 => Next_y <= S9 Register Shift register Räknare use IEEE.std_logic_unsigned.all; -- Viktig if LB='1' then -- Counter next_B<=(OTHERS =>'0'); elsif EB='1' then next_B<=B+1; end if; -- Counter

17 Konstruktion av digitala system
Beskriv algoritmisk vad du ska göra Dela upp i dataväg och styrenhet Implementera i VHDL Varför? För att få bra struktur. För att få en effektiv implementering Skilj på kod för syntes till maskinvara och programkod! Försök att samla aritmetiken och undvik jämförelser (dyrt).

18 x5x4 00 01 11 10 1 3 12 4 15 17 6 13 14 18 9 11 110 16 19 118 20 21 23 22 28 29 31 30 124 25 27 126 48 49 51 50 52 53 55 54 60 61 63 62 156 57 59 158 32 33 35 34 36 137 139 38 44 45 47 46 140 41 43 142 x5x4 00 01 10 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 1 1 1 1 1 1 X3X’2X’0 16 17 19 18 20 21 23 22 28 29 31 30 24 25 27 26 1 X’5X’2X1X’0 1 1 1 48 49 51 50 52 53 55 54 60 61 63 62 56 57 59 58 1 1 32 33 35 34 36 37 39 38 44 45 47 46 40 41 43 42 X’4X’3X2X0 1 1 1 1

19 Quine-McCluskey - 1 X3 x3 x2 00 01 11 10 X2 X1 X0 x1 x0
Exempel: f (x3,x2,x1,x0) = å m(4,5,6,8,9,10,13)+d(0,7,15) - 1 X3 x3 x2 00 01 11 10 X2 X1 X0 x1 x0 Kanoddiagram bryter ihop efter 6 variabler. Quine-McCluskey är en systematisk metod att ta fram alla primimplikatorer.

20 Gruppera termerna efter antal ettor
(0,4) v v (4,5,6,7) 01-- v (0,8) v (4,5) v (4,6) (8,9) (8,10) (5,7) (5,13) -101 (6,7) (9,13) 1-01 (7,15) -111 (13,15) 11-1 v v (5,7,13,15) -1-1 v v v

21 - 1 X3 x3 x2 00 01 11 10 X2 X1 X0 x1 x0 (0,4) (4,5,6,7) 01-- (0,8) (5,7,13,15) -1-1 (8,9) Får ni en uppgift att ta fram all primimplekanter så måste ni vara välgigt nogranna. Quine-McCluskey kan vara ett bra alternativ (9,13) 1-01 (8,19)

22 Hitta en minimal täckand funktion
EJ 0,7 och 15 4 5 6 8 9 10 13 0,4 (0-00) X 0,8 (-000) 8,9 (100-) 8,10 (10-0) 9,13 (1-01) 4,5,6,7 (01--) 5,7,13,15 (-1-1) OBS OBS OBS Don’t care finns inte med!!!!!

23 Essentiella primimplikanter
4 5 6 8 9 10 13 0,4 (0-00) X 0,8 (-000) 8,9 (100-) 8,10 (10-0) 9,13 (1-01) 4,5,6,7 (01--) 5,7,13,15 (-1-1)

24 Sammanfattning Quine-McCluskey
Ordna samtliga mintermer och ”don’t care” i en tabell efter antalet ”ettor”. Jämför varje minterm med de mintermer som har en ”etta” mer. De som stämmer (skiljer sig i endast en position) bockas av och den förenklade termen skrivs upp. Upprepa 2 & 3 för de nya kolumner som bildas tills det inte går mer. De termer som nu inte är markerade är funktionens primimplekanter.

25 Multiplexrar som generell logik (forts.)
I0 I In-1 In F In In' 1 I allmänhet Exempel: G(A,B,C,D) kan implementeras med en 8:1 MUX Fyra möjliga konfigurationer av Sanningstabellen Kan uttryckas som en funktion av In n-1 mux styr variabler en mux data variabler välj A,B,C som styr variabler C A B 1 D D’ D D’ D’ S2 8:1 MUX S1 S0 A B C D G 1 D D' D D’ D’ F5

26 Aktivitet En grind behövs!
Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få grindar som möjligt: A B C D Z CD’ En grind behövs! F5 CD’ C’

27 Aktivitet (forts.) Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få grindar som möjligt: A B C D Z 0 när B’C’ D’ när B’C B C S1 S0 F 4:1 MUX 0 D’ A 0 A när BC’ 0 när BC F5 Z = B’C’(0) + B’C(D’) + BC’(A) + BC(0)

28 Demultiplexers som generell logik
En n:2n avkodare kan implementera en godtycklig funktion av n variabler med variablerna som styrsignaler “enable” ansluten till 1 och rätt mintermer summerade för att skapa funktionen A'B'C' A'B'C A'BC' A'BC AB'C' AB'C ABC' ABC C A B S2 3:8 DEC S1 S0 “1” demultiplexer genererar alla mintermerna F5

29 PALs och PLAs: design exempel (forts.)
Kode konverterare: programmerbar PLA A B C D Minimerade funktioner: W = A + BD + BC X = B C' Y = B + C Z = A'B'C'D + BCD + AD' + B'CD' A BD BC BC' B C A'B'C'D BCD AD' BCD' W X Y Z Ingen bra kandidat för PLA Implementering eftersom inga termer är delade mellan utgångarna Men mycket mer kompakt implementering jämfört med lösa AND och OR gates F5

30 PALs och PLAs: design exempel (forts.)
A B C D A BD BC BC' B C A'B'C'D BCD AD' B'CD' Kode konverterare: programmerbar PAL 4 produkttermer per OR grind F5 W X Y Z

31 Sammanfattning teknologier
Random logic Enstaka grindar eller nät Konvertering till NAND-NAND och NOR-NOR nät Bygger komplexa block av grinar Reducera grindantalet, fan-ins, potentiellt snabbt Fler nivåer svårare att konstruera Regular logic multiplexers/decoders ROMs PLAs/PALs FPGA fördela/nackdelar för varje F5

32 Jämförelse mellan Mealy och Moore tillståndsmaskiner
Mealy maskiner får oftast färre tillstånd olika utsignaler på transaktionerna (n2) i stället för tillstånden (n) Reagerar under samma klockcykel förändringar i insignalerna påverkar direkt utgångarna (efter grindfördröjningen) - ett stort problem om två maskiner är sammankopplade, då kan asynkron återkoppling uppstå Moore maskiner är säkrare att använda Utsignalerna ändras vid klockflanken (alltid en cykel senare) mer logik kan behövas för att avkoda ett tillstånd till utsignaler – mer grindfördröjning efter klockflanken. (Mealy maskiner reagerar snabbare på insignalerna) F7

33 Jämförelse mellan Mealy och Moore tillståndsmaskiner (forts.)
Synkron Mealy state feedback inputs outputs reg combinational logic for next state logic for outputs inputs outputs state feedback reg combinational logic for next state logic for outputs F7 inputs outputs state feedback reg combinational logic for next state logic for outputs

34 Exempel: reducera-1-sträng-med-1
Ta bort en etta från varje sträng av 1:or på ingången. Moore Mealy 1 zero [0] one1 [0] two1s [1] 1/0 0/0 1/1 zero one1 CP In Moore Mealy

35 Exempel: reducera-1-sträng-med-1
Ta bort en etta från varje sträng av 1:or på ingången. Moore Mealy 1 zero [0] one1 [0] two1s [1] 1/0 0/0 1/1 zero one1 CP In Moore Mealy

36 Exempel: reducera-1-sträng-med-1
Ta bort en etta från varje sträng av 1:or på ingången. Moore Mealy 1 zero [0] one1 [0] two1s [1] 1/0 0/0 1/1 zero one1 CP In Moore Mealy

37 VHDL FSM - Reduce 1s example
Moore machine 1 zero [0] one1 [0] two1s [1] entity Reduce1Moor is port ( Clk : in std_logic; I : in std_logic; Reset : in std_logic; O : out std_logic); end Reduce1Moor; architecture BEHAVIORAL of Reduce1Moor is type state_type is (zero,one1,two1s); --Tillståndsdeklaration signal state:state_type; begin ---- end BEHAVIORAL; å – Aj Aj Aj Repedetion från förra föreläsningen

38 Moore VHDL FSM bättre 2-process lösning (forts)
ASM_P: process(Clk,Reset) -- Synkron process begin if Reset = '1' then -- Asynkron reset state<=zero; -- Reset tillstånd elsif Clk'event and Clk='1' then state<=next_state end if; end process ASM_P; -- Kombinatorisk process next_s:process(state,I) begin next_state <=zero case state is when zero=> O<='0'; if I='1' then next_state <=one1; end if; when one1=> O<='0'; if I='1' then next_state <=two1s; end if; when two1s=> O<='1'; if I=‘1' then next_state <=two1s; end case; end process next_s; 1 zero [0] one1 [0] two1s [1] Ger bra kod. Ger bra syntes resultat. Mer om tvåprocess lösningen senare i kursen. EV mer animerig på denna! state feedback inputs outputs reg combinational logic for next state logic for outputs

39 Mealy VHDL FSM architecture BEHAVIORAL of Reduce1Mealy is
type state_type is (zero,one1); --Tillståndsdeklaration signal state:state_type; signal next_state:state_type; begin p1:process(Clk, Reset, next_state) if Clk'event and Clk='1' then if Reset = '1' then state<=zero; else state<=next_state; end if; end if; end process p1; 1/0 0/0 1/1 zero one1 p2:process(state,I) begin case state is when zero=> if I='1' then next_state<=one1; O<='0'; else next_state<=zero; O<='0'; end if; when one1=> if I='1' then next_state<=one1; O<='1'; when others=> next_state<=zero; end case; end process p2; end BEHAVIORAL; inputs outputs state feedback reg combinational logic for next state logic for outputs På 2 processer Går att lägga utsignalerna i peralell VHDL (Personligen tycker jag att tillståndsgraferna är lättare att läsa!)

40 Synkron Mealy maskin p1:process(Clk,Reset)
architecture BEHAVIORAL of Reduce1SynkMealy is type state_type is (zero,one1); --Tillståndsdeklaration signal state:state_type; begin p1:process(Clk,Reset) if Clk'event and Clk='1' then -- Synkron Reset if Reset = '1' then state<=zero; -- Reset tillstånd else case state is when zero=> if I='1' then state<=one1; O<='0'; else state<=zero; O<='0'; end if; when one1=> if I='1' then state<=one1; O<='1'; when others=> state<=zero; -- Saknar betydelse end case; end if; end if; end process; end BEHAVIORAL; architecture BEHAVIORAL of Reduce1SynkMealy is type state_type is (zero,one1); --Tillståndsdeklaration signal state:state_type; begin p1:process(Clk,Reset) if Clk'event and Clk='1' then -- Synkron Reset if Reset = '1' then state<=zero; -- Reset tillstånd else case state is when zero=> if I='1' then state<=one1; O<='0'; else state<=zero; O<='0'; end if; when one1=> if I='1' then state<=one1; O<='1'; when others=> state<=zero; -- Saknar betydelse end case; end if; end if; end process; end BEHAVIORAL; 1/0 0/0 1/1 zero one1 1 Process ger synkron Mealy

41 Metod för successiv partitionering
Till Till stånd part. S0 aa S1 ab S2 ab S3 aa S4 aa S5 aa S6 aa Till Till stånd part. S0 gg S1 bd S2 bd S3 aa S4 aa S5 aa S6 aa Till Till stånd part. S0 bb S1 ag S2 ag S3 aa S4 aa S5 aa S6 aa In Nuvarande Nästa tillstånd Output Sekvens tillstånd X=0 X=1 X=0 X=1 Reset S0 S1 S2 0 0 0 S1 S3 S4 0 0 1 S2 S5 S6 0 0 00 S3 S0 S0 0 0 01 S4 S0 S0 1 0 10 S5 S0 S0 0 0 11 S6 S0 S0 1 0 ( S0 S1 S2 S3 S4 S5 S6 ) ( S0 S1 S2 S3 S5 ) ( S4 S6 ) ( S0 S3 S5 ) ( S1 S2 ) ( S4 S6 ) ( S0 ) ( S3 S5 ) ( S1 S2 ) ( S4 S6 ) a b S1 är ekvivalent med S2 S3 är ekvivalent med S5 S4 är ekvivalent med S6 a b g a b g d

42 Exempel för att belysa realtionsgraf
4,6;2,4 (7,8)

43 Exempel för att belysa realtionsgraf
4,6;2,4 7,9 7,8 6,7 4,6 3,7 2,4 3,8 3,7;2,9 2,7 3,8;2,9 2,6 5,7 5,8 1,7;4,9 4,7 1,8;4,9 1,3 2,6;2,4 3,5 Exempel för att belysa realtionsgraf JA! S1 S3 S5 S8 S9 S7 S6 S4 S2

44 Resultat

45 ‘One-hot’ tillstånds tilldelning
Enkelt enkelt att koda Enkelt att fel söka Små logiska funktioner varje tillståndsfunktion behöver bara en tillstånds bit från förgående tillstånd Bra för programmerbarlogik (FPGA) många vippor finns tillgängliga få variabler i ekvationerna Opraktiskt för stora tillståndsmaskiner för många tillstånds vippor Delar man ner en stor tillståndsmaskin i flera små kan del maskinerna vara ’one-hot’ kodade Det finns många variationer på ’one-hot’ temat ’one-hot’ + alla-0

46 Tillgängliga metoder för tillståndstilldelning
För snål kodning (nära minimalt antal tillståndsbitar) bäst av 10 slumpmesiga tyck vara tillräckligt bra (i medeltal lika bra som heuristiska metoder) Heuristiska metoder är långt ifrån optimala används i specialdesignade ASIC (eller om man måste knö i en FPGA/CPLD) ’One-hot’ kodning enkelt för små tillståndsmaskiner Genererar enkla ekvationer och det är lätt att uppskatta komplexiteten Vanligt i FPGAer Utsignal baserad kodning ’ad hoc’ – inga verktyg vanligaste angreppssättet för konstruktörer (när dom kodar utan datorstöd) ger oftast kompakta lösningar för de flesta tillståndsmaskinerna

47 Statisk 1-hasard i S-O-P nät
f (1,x2,1) = x2 + x2’

48 Statisk 0-hasard f(0,x2,0) = x2’x2 Uppträder i P-O-S nät

49 Dynamisk hasard Förutsättning minst tre grindnivåer
Kan uppstå i nät som efter insättning av värden på övriga variabler kan reduceras till: xi + xi’ xi, xi’+ xi’xi, xi(xi’+ xi) eller xi’(xi’+ xi) a b c d e f g h I j LUT f f(a,b,c,d,e,f,g,h,i,j)

50 Sammanfattning hasarder
Undersök om det finns någon tilldelning av alla utom en insignal xi sådan att uttrycket blir: (efter insättning med värden på övriga variabler) Om xi + xi’ statisk 1-hasard xi xi’ statisk 0-hasard Obs strukturen på nätet måsta vara en 1-1 avbildning av det ursprungliga. Vilket innebär att; inga algebraiska transformeringar som innebär att någon variabel eller uttryck försvinner får användas. (de Morgan går dock bra)

51 Metodik för timing Regler gör anslutning av komponenter till klocksignaler garanterar att systemet fungerar om man följer dom strikt Olika angreppssätt beroende på vilka byggblock som används som minne Fokuserar på system med flanktriggade vippor finns i programmerbara logiska kretsar många ASIC- implementeringar fokuserar på nivåkänsliga vippor Basregler för korrekt timing: (1) korrekta insignaler, med avseende på tid, finns tillgängliga för vipporna (2) inga vippor byter tillstånd mer än en gång per klockningshändelse

52 Metodik för timing (forts.)
Definition av termer Klocka: periodisk händelse, åstadkommer förändring av minnes- elementens tillstånd kan vara stigande eller fallande flank eller hög/låg nivå setup time: minimal tid före klockhändelsen som insignalerna måste vara stabila (Tsu) hold time: minimal tid efter klockhändelsen som insignalerna måste vara stabila (Th) input clock Tsu Th data D Q D Q clock Det finns ett ’tidsfönster’ omkring klockhändelsen när insignalerna måste vara stabila för att minneselementen ska få rätt värde stabila förändring data clock

53 Typiska timing specifikationer
Positivt flanktriggad D vippa setup och hold tider minimum klock vidd propagations fördröjningen (låg till hög, hög till låg, max och typ) D Clk Q T su 1.8 ns h 0.5 w 3.3 pd 3.6 ns 1.1 ns Alla mätningar görs från klockhändelsen (stigande flank på klockan)

54 Hur det kan se ut på ett oscilloskop när synkroniseringsfel uppträder
Uppstår när vippans ingång ändras nära klockans flank vippan hamnar i ett metastabilt tillstånd – varken logisk 0 eller 1 – den kan stanna i detta tillstånd obegränsat länge detta är inte troligt i praktiken med det finns en liten sonorlikhet för det logisk 1 logisk 0 llogisk 0 logisk 1 liten, men inte noll sonorlikhet att vippan fastnar mellan sina tillstånd Hur det kan se ut på ett oscilloskop när synkroniseringsfel uppträder

55 Att hantera synkroniseringsfel
Sandorlikheten för fel funktion kan aldrig reduceras till 0, men den kan minskas radikalt (1) använd långsammare system klocka detta ger minneselementet mer tid för att nå ett stabilt tillstånd; synkroniseringsproblem är ett stort problem för snabba system (2) använd snabbast möjliga logikteknologi för synkroniseringen (3) kaskadkoppla två sykroniseringselement synkroniserar två gånger (båda måste falera) asynkron insignal Q synkron insignal D Q D Clk Synkroniseringssystem

56 Hantera asynkrona insignaler
Aldrig aldrig aldrig tillåt asynkrona insignaler att vara kopplade till mer än en vippa synkronisera så snart som möjligt och behandla därefter signalen som synkron D Q Q0 Clock Q1 Asynkton Insignal Synkroniserare D Q Q0 Clock Q1 Asynkron Insignal Klockat Synkront System

57 Hantera asynkrona insignaler (forts.)
Vad kan bli fel? insignalen ändras för nära klockflanken (villkoret för setup tid ej uppfyllt) In Q0 Q1 CLK In är asynkron och kopplad till D0 och D1 en vippa fångar signalen, en gör det inte kan hamna i ett inkonsistent tillstånd!

58 Tillståndstabell / flödesgraf
x1+x4 x1+x2 Insignal/ nästa tillstånd x2+x3 Q2 Q2 Q2 Nuvarande tillstånd Q1 Q1 Q1 X1 X2 X3 X4 x4 Q1 Q1 Q2 Q2 Q1 x2 x3 Q2 Q2 Q2 Q3 Q1 x2 Q3 Q4 Q2 Q3 Q3 x3 Q4 Q4 Q3 Q3 Q3 Q4 Q4 Q1 Q3 Q4 x1 x1+x4 Ett tillstånd är stabilt om f (Xi,Qj)=Qj För att ett nät ska vara asynkront realiserbart krävs att för varje icke stabilt tillstånd ska det finnas en sekvens av tillstånd som avslutas med ett stabilt tillstånd. x3+x4

59 Tillståndsgraf: 9.17 Släpp igenom CP när W hög: 01(0) A CW(Z) - 0 (0)
1- (1) C 01(0) B 11(-) 10(0) 00(0) D 11(0) 01(0) 0-(-) Uppfyller spec – JA Optimal – Nej  Optimera

60 Kapplöpningsfri tillståndskodning
Exempel modulo-4 räknare en insignal x och räknaren räknar varje omslag hos x u1u2 = 00,01 10,11, 00 x 0 1 Q1 Q1(00) Q2(0-) Q2 Q3(-) Q2(01) Q3 Q3(10) Q4(1-) Q4 Q1(-) Q4(11) d(l) x 0 1 00 00(00) 01(0-) 01 10(-) 01(01) 10 10(10) 11(1-) 11 00(-) 11(11) d(l) Ex på tillståndskodning: Q1=00, Q2=01, Q3=10, Q4=11

61 Ger följande tillståndsgraf
Vi placerar in tillståndsgrafen i en Boolesk hyperkub för att finna eventuella kapplöpningar. Ny kodning : Q1=00, Q2=01, Q3=11, Q4=10 00 11 0(-) 01 10 q1 q2 00 11 0(-) 01 10 q1 q2 1(1-) 1(0-) 1(01) 1(11) 0(10) 0(00)

62 Primitiv flödestabell: Endast ett stabilt tillstånd per rad:
I det allmänna fallet när man minimerar en ofullständigt specificerad tillståndsgraf. Samma procedur som innan. Välj en täckande partitionering. Se till att den är sluten! Steget med slutenhet har vi ej gått igenom. Men om man arbetar med en primitiv flödestabell så behöver man inte bevisa slutenhet. Primitiv flödestabell: Endast ett stabilt tillstånd per rad: Insignal restrektionen ger ’don't cares’.

63 Exempel 9.7 B C D E F G H A B C D E F G Present Next state Output
w 2 1 00 01 z A H B F C D E G 11 10 Utsignalerna: A,B,F,G,H (0) och C,D,E(1) B C D E F G H A B C D E F G A-F D-H C-E D-H C-E D-H A-F B-G Figur 9.28 (s607) Relationsgraf på tavlan C-E D-H

64 Exempel 9.7 B C D E F G H A B C D E F G {B,F,G} {A,H} {D,E} {C} A
Utsignalerna: A,B,F,G,H (0) och C,D,E(1) B C D E F G H A B C D E F G A-F D-H C-E D-H C-E {B,F,G} {A,H} {D,E} {C} D-H A-F B-G Figur 9.28 (s607) (Relationsgraf på tavlan) C-E D-H

65 2a 2b 3a 3b 4a 4b 1 2a 2b 3a 3b 4a

66 Okänt logiskt tillstånd X
De logiska tillstånd som en nod kan anta är {0,1,X} (även Z och U/D kan förekomma) VHDL (U,X,0,1,Z,W,L,H,-)

67 Trevärdig logik (simulering)
Är ingen Boolesk algebra, ex X⋅X = X ≠ 0 och X+X = X ≠ 1 AND 0 X 0 1 X X OR 0 X X 1 X 1 NOT 0 1 1 0 X X

68 Nivå simulering (Levelized simulation)
Kapa alla återkopplingar Ge varje grind en topologisk nivå Primära ingångar nivå 0 Nivå (y) = om primär insignal max {Nivå(yFI)} + 1 annars

69 Händelsestyrd simulering (Event-driven simulation)
Används vid VHDL simulering grindnivå simulering funktionell simulering När insignalerna till en nod ändras evalveras den noden normalt berörs 10-15% av konstruktionen En händelse inträffar vi den given tidpunkt (simulerad) hanteras via en händelselista när en händelse evalveras skapas nya händelser  listan

70 Enhetsfördröjnings modellen
Händelselistan delas i två tidsluckor Lucka A – händelser som har genererats tidigare Lucka B – här stoppas nygenererad händelser in Algoritm: evalvera händelserna i lucka A uppdatera lucka B när inga fler händelser finns i lucka A byt plats på lucka A och B, börja sedan om Det spelar ingen roll i vilken ordning som händelserna evalveras Dock måste man sätta en begränsning på hur många varv hjulet får snurra. (utifall nät som EJ är asynkront realiserbara) . A B

71 Simulering i VHDL Händelsestyrd simulering
både enhetsfördröjning och grind fördröjnings modellen Kompilering och sammansättning (elaboration)

72 Icke syntetiserbar VHDL
Eftersom VHDL ursprungligen inte var avsedd för syntes så finns det många icke syntetiserbara konstruktioner som: after wait for File generiska parametrar Flyttal fungerar men är ett mycket dåligt val … Initieringsvärden på variabler och signaler Exakt timing, när sotleken ej är definerad vid syntesen

73 Vippor, latchar eller bara logik?
Förutsätt att syntesverktygen är korkade! Finns inget reserverat ord som tallar om huruvida en konstruktion är asynkron eller inte Ett vanligt fel är skapandet av extra (onödiga) latchar och vippor I processer behåller en signal ett värde till dess att den tilldelas ett nytt. Så: Om en if eller case sats inte täcker alla utfall med tilldelningar så skapas extra latchar och vippor Finns wait med eller if, case med namn’event så skapas vippor

74 Sammanfattning av regler för RTL syntes
’sensitivity’ listan Förgreningar Kombinatorisk alla insignaler (signaler i högerledet täck alla logik vid tilldelningar och de som används i (eller default) IF och CASE satser latchar alla insignaler okomplett vippor Klockan och asynkron set/reset okomplett (if Clk'event and Clk='1' then) Tilldela aldrig en variabel eller signal i mer än en process

75 Bättre metoder I verkligheten använder man en delmängd av alla möjliga invektorer. Denna delmängd kan bestämmas på några olika sätt. Slumpmässigt valda testvektorer Baserat på logisk funktion Baserat på nätets struktur Minnestestning Baserat på felmodeller Realistiskt använder man sig därför inte av uttömmande testning, utan av ett “testset” som består av en delmängd av alla möjliga invektorer. Dessa vektorer kallas testvektorer. Som tur är visar det sig nämligen att man oftast hittar större delen av alla fel i en krets med en relativt liten mängd testvektorer. Dessa vektorer kan bestämmas på ett flertal olika sätt, genom slumpning av vektorer, genom att analysera nätet matematiskt, genom att titta på dess struktur, eller genom att göra intelligenta gissningar om var felen hamnar och hur de ser ut.

76 Single Stuck-at Faults (SSF)
Detta är den vanligaste felmodellen, och är närmast industristandard. Ett fel representeras av att den felaktiga noden låses till värdet 0 eller 1, oberoende av övriga signaler i nätet. Kortsiutning till jord eller matningsspänning. Vissa typer av avbrott Vissa typer av kortsiutningsfel Enbart ett fel antas uppträda åt gången! Låsningsfel, eller stuck-at-fel, är den absolut vanligaste felmodellen och är i princip industristandard vad gäller utvärdering av test samt testbarhet. Modellering av fel går till på så sätt att man låter samtliga fel representeras av att de felaktiga noderna får ett konstant värde noll eller ett. Exempel på fel som går mycket bra att modellera är givetvis mkortslutningar till spänningsmatning, men även vissa typer av avbrott som till exempel på ingångar till transistorer. Kortslutningsfel kan även de modelleras mha stuck-at-modellen, om man ser till att uppfylla de villkor som krävs för att felet skall aktiveras, dvs att de två kortsiutna grindarna har olika utsignaler. För att förenkla antar man att enbart ett fel uppträder i en felaktig krets. Detta är ett mycket vanligt antagande i alla feltoleranssammanhang, och innebär en väsentlig förenkling jämfört med om man hade tillåtit så kallade “multipelfel.” Det har dessutom visats att man hittar en väldigt stor del av alla dubbelfel med hjälp av enkelfelstest.

77 Nätorienterad testgenerering
Utnyttjar “path sensitization” En ny boolesk algebra krävs: Låt D samt D’ representera felvärden orsakade av SA-fel. Då utgör <O,1,D,D’, ‘,+,‘> en korrekt boolesk algebra, där t ex D•D’ =0, D+D’=1, D’·1 = D ³ 1 & y z x w K SA 0 k G1 G2 G3 G4 t b f Path sensitization innebär att man genomför ett antal sensitizations på en väg från felet till utgången så att felet kan propageras. För att hålla ordning på felvärdet hittar man på en flervärd boolesk algebra som har två extra värden, D och D’. Dessa värden genereras av ett aktiverat fel. 23

78 Varför får man inte 100% coverage?
Algoritmen i ATPG kan vara dålig. Redundans i en krets ger otestbara SA-fel. Oavsiktlig redundans kan fås genom otillräcklig minimering av funktioner Avsiktlig redundans fås genom hasardeliminering eller i feltoleranta kretsar Vi definierar ett nät som redundant om det innehåller otestbara SA-fel. 29

79 Generering av test för sekvensnät
Vanligas: översätt sekvensnätet till ett iterativt kombinatorisk nät. Sedan: Initiera till ett känt tillstånd Q(0) Använd metoderna för kombinatoriska nät för att generera vektorer för cell 0 Invektorn från testgenereringen får användas under r klockcykler. Om felet inte upptäcks efter r cykler, öka r med 1 P7.1 (Svårt att välja r vanligen 2-3)

80 Ad hoc metoder för ökad testbarhet
Välkända tekniker baserat på erfarenhet för att öka styrbarhet och observerbarhet Lägg till testpunkter. Genom att lägga till extra ledare tilll/från kretsens utsida kan man öka dess observerbarhet och kontrollerbarhet Initiering – reset Få kretsen till ett välkänt tillstånd Oscillatorer och klockor Koppla bort den ordinarie under test Partitionera stora kretsar/system Det är mycket lättare att generera test, samt testa små kretsar än att testa stora. Genom att partitionera rätt kan man dessutom i vissa fall testa delar av kretsen parallellt, vilket ökar hastigheten. P7.2.1, V11.1

81 “ad hoc’ ‘-metoder (forts)
Redundant logik UNDVIK! Inga TMR Globala återkopplingar Bryt återkopplingen med logik Asynkrona sekvensnät UNDVIK KW32

82 Skannings kedjor Scan-kedjor är den vanligaste DFT-metoden. Samtliga minneselement i kretsen kedjas ihop till ett shiftregister så att man lätt kan klocka in/ut data i kretsen. Kostar ca 30% jämfört med vanliga vippor Skiljer mellan full och partiell skanningstekniker P7.2.2, V11.2, DL11.6.1

83 Boundary-Scan (IEEE ) Den vanligaste metoden för skannings kedjor Ger möjlighet till testning Av alla kretsar (fullständig) Av kretskortet (PCB) Produktions test (enkel/billig utrustning) Fälttest (hos kund)

84 Inbyggd självtest Är en teknik för att låta kretsen testa sig själv
I produktion – ingen testutrustning behövs I fält – lätt att testa funktionen Testningen sker när systemet inte är i drift Kan ej utföras under normal drift Fördelar Enklare eller inget testsystem Enklare testplanering Test vid normal frekvens Kretsbibliotek finns Många testvektorer ,enkelt Nackdelar Stöd saknas i CAD/EDA- verktyg Prestanda i konstruktionen Extra komponenter behövs Mer kisel yta Fler ställen där det kan bli fel V11.3, DL11.7, P7.2.3, BM 106

85 BILBO (Built-in logik block observer)
Den inbyggda självtestaren kostrar mycket logik och framför allt vippor. En bättre metod är att utnyttja befintliga vippor som i skannings kedjorna. V11.3.2, LD

86 3. Effekt Framtiden • Nu: max ~100 – 150 W per chip
• Teknologigenombrott krävs för ändring • Begränsningar: • Spänningsmatning (1 V betyder 100 A) • Kylning (25 W / cm2) • Reglering av spänning och frekvens Framtiden • Gräns för transistorstorlek • ~10 nm? • Konstruktion med större block • Grindar, RTL-block, kärnor, … • “Dark silicon” • Vi kan bygga mer än vi kan använda 1. Fler transistorer • Nu: miljarder transistorer på ett chip • Fler och fler får plats (x2 per processgeneration) • Replikerade block (minnen, kärnor) • Återanvänt konstruktionsarbete • Nätverk på chip (NoC) för kommunikation • Redundans 2. Klockfrekvens • Nu: enstaka GHz • Inga större ändringar förväntas • Snabbare transistorer, lika slöa ledningar • Synkronisering svårare • Globally Asynchronous, Locally Synchronous

87 Flera utgångar Ex 4.3 x 00 01 11 10 1 2 3 4 (c) Optimal realization of
and together x x x x 1 2 1 2 x x x x 3 4 00 01 11 10 3 4 00 01 11 10 00 00 01 1 1 1 01 1 1 1 11 1 1 1 11 1 1 1 10 1 10 1 (a) Optimal realization of f (b) Optimal realization of f 3 4

88 (d) Combined circuit for and
x 1 2 3 4 00 01 11 10 f 3 4 x 1 2 (d) Combined circuit for and x 1 2 3 4 00 01 11 10

89 Flernivårealisering av kombinatoriska nät
Steg 1: Teknologioberoende, Sök gemensamma delfunktioner. (algebraisk process) Steg 2: Teknologi anpassning. x1x2 + x1x2 = x1x2 + x1x2 Exempel 4.6 f = x1x2x3 + x1x2x3 + x1x2x4 + x1x2x4 g = x1x2 + x1x2 f = (x1x2 + x1x2)x3 + (x1x2 + x1x2)x4 1 x 2 3 4 f g h f = gx3 + gx4

90 FPGA CPLD Fördelar Fördelar Konstant fördröjning
Snabba Kan programmeras på plats Enkla billiga utvecklings-verktyg Billiga Nackdelar ”Små” Få register Fördelar Stora - i samma storleksordning som ASIC Kan programmeras på plats Kort utvecklingstid Nackdelar Varierande fördröjning Pinnplacering och konstruktion har stor betydelse för prestanda. Flyktigt konfigurationsminne (Xilinx)

91 Transistorer - CMOS NAND gate. NOT gate. V T V V T on off 1 f x T DD x
2 on off 1 f x T 2 NOT gate.

92 NOR gate

93 Ex på uppgift Vilken funktion realiseras? F= x1’ + x2’x3’

94 Algorithm for two-level simplification (example)
94 Algorithm for two-level simplification (example) X 1 0 1 1 1 D A 0 X X 0 B C 2 primes around A'BC'D' X 1 0 1 1 1 D A 0 X X 0 B C 2 primes around ABC'D X 1 0 1 1 1 D A 0 X X 0 B C X 1 0 1 1 1 D A 0 X X 0 B C 3 primes around AB'C'D' X 1 0 1 1 1 D A 0 X X 0 B C X 1 0 1 1 1 D A 0 X X 0 B C 2 essential primes minimum cover (3 primes) X 1 0 1 1 1 D A 0 X X 0 B C

95 95 f (x3,x2,x1,x0) = å m(41,52,62,81,92,102,133)+d(00,73,154) - 1 X3 x3 x2 00 01 11 10 X2 X1 X0 x1 x0 (0,4) (0,8) (4,5,6,7) 01-- (5,7,13,15) -1-1 (9,13) 1-01 (8,9) (8,10) Får ni en uppgift att ta fram all primimplekanter så måste ni vara välgigt nogranna. Quine-McCluskey kan vara ett bra alternativ

96 Algoritm för tillståndsminimering
Mål – identifiera och kombinera tillstånd som har samma beteende Ekvivalenta tillstånd: samma utsignaler för alla kombinationer av insignaler och tillståndsövergångar hamnar vi i samma eller ekvivalenta tillstånd Algoritm 1. placera alla tillstånd i en partitionering (P0) 2. skapa P1 baserat på tillståndens utsignalbetende 3. dela upp Pn-1 i fler partitioneringar beroende på nästa tillståndstransaktionen 4. upprepa (3) till dess inga fler partitioneringar uppträder tillstånd i samma ekvivalensklass (partitionering) är ekvivalenta Algoritmen lämpar sig väl för datorimplementering **polynomial time procedure

97 Tillståndstabell – Minimering med direkt inspektion
Nästa tillstånd (N5cD10c =) Utsignal State 00 01 10 11 Z S1 S3 S2 - S4 S5 S6 S7 1 S8 S9 Nästa tillstånd (N5cD10c =) Utsignal State 00 01 10 11 Z S1 S3 S2 - S4 S5 S6 S7 1 S8 S9 9 tillstånd kan vi spara några? P0= ( S1,S2,S3,S4,S5,S6,S7,S8,S9) P1= ( S1,S2,S3,S6)(S4,S5,S7,S8,S9)

98 Tillståndstabell – Minimering med direkt inspektion (forts)
Nästa tillstånd State 00 01 10 11 S1 S3 S2 - S4 S5 S6 S7 S8 S9 P0= ( S1,S2,S3,S4,S5,S6,S7,S8,S9) P1= ( S1,S2,S3,S6)(S4,S5,S7,S8,S9) P2= ( S1)(S2,S3,S6)(S4,S5,S7,S8,S9) P3= ( S1)(S2,S6)(S3)(S4,S5,S7,S8,S9) P4= ( S1)(S2,S6)(S3)(S4,S7,S8)(S5,S9) Nästa tillstånd State 00 01 10 11 S1 S3 S2 - S4 S5 S6 S8 S9 S7 S2’ 9 tillstånd kan vi spara några? S4’ S5’

99 Sammanfattning: metod asynkrona sekvensnät Syntes
Present Next state Output State DN = 00 01 z A B D C 1 E F (b) Initial flow table 11 10 Primitiv flödestabell A B C 1 D E F N (a)Initial statediagram Rita tillståndsgraf Ta fram flödestabell och minimera Ta fram primitiv flödestabell Implikator tabell Relationsgraf Minimal flödestabell – Asynkront realiserbar ? Genomför tillståndstilldelning Boolesk kub Stuva om, ändra vägar, lägg till tillstånd (ta bort kapplöpning) . B-E C-F B C D E F A-D A B C D E F 1 2 3 4 5 6 7 Phu!

100 Sammanfattning: metod asynkrona sekvensnät Syntes
00 01 11 10 d 1 y 2 DN 3 = (a) Map for Y Present Next state DN 00 01 10 11 Output y 3 2 1 Y z A 000 B 010 C 111 D 011 F 001 G 101 100 110 Ta fram exciteringstabell (undersök tabellen för essentiella hasarder) Asynkront realiserbar ? Ta fram uttrycken för nästa tillstånd Karnaughdiagram Konsensustermer (ta bort all kapplöpning) Konstruera kretsen (inför fördröjningar för att bli av med essentiella hasarder) Phu!

101 Sammanfattning: metod asynkrona sekvensnät Syntes
Rita tillståndsgraf Ta fram flödestabell och minimera Ta fram primitiv flödestabell Implikator tabell Relationsgraf Minimal flödestabell – Asynkront realiserbar ? Genomför tillståndstilldelning Boolesk kub Stuva om, ändra vägar, lägg till tillstånd (ta bort kapplöpning) Ta fram exciteringstabell (undersök tabellen för essentiella hasarder) Asynkront realiserbar ? Ta fram uttrycken för nästa tillstånd Karnaughdiagram Konsensustermer (ta bort all kapplöpning) Konstruera kretsen (inför fördröjningar för att bli av med essentiella hasarder) Phu!

102 1 2 3 4 5 6 7


Ladda ner ppt "Digitalteknik, fortsättningskurs 2012 Föreläsning 16 Inför tentan"

Liknande presentationer


Google-annonser