1 Digitalteknik syntes 2012
2 Introduktion Terminsregistrera er - snarast Boka labb tider PingPong (Öppnar 00:01) (Individuella labb tider) Köpa kursmaterial - Cremona
3 Upplägg LV 1 Introduktion, digitalteknik, VHDL LV 2 Teknologier, VHDL+lab LV 3 Sekvensnät Laboration 2 VHDL Minimering av sekvensnät LV 4 Asynkrona sekvensnät, LV 5 Syntes, ASIC, lab Sekvensnät LV 6 Testning, laboration Asynkrona nät LV 7 Sammanfattning
4 Personal Arne Linde Föreläsare Examinator Lars Kollberg Laborationschef Övningsledare: Sven Knutson
5 Jag har dyslexi
LV 1 6
7 Laborationer PM LV Rubrik Lab 1 2-3 Inledande VHDL laboration. Simulering. Lab 2 3-4 VHDL Trafikräknare. Simulering. Lab 3 5-6 Synkrona sekvensnät och hasarder Lab 4 6-7 Asynkrona sekvensnät.
9 Rekommenderad litteratur 2008 års bok Pris ca 500kr finns att köpa på Cremona
10 Att läsa emedan ni funderar på kursbok Grundläggande digital- och datorteknik Del 1 Digital teknik Switchnätalgebra. 3.5-4.2 Räknestugan 1 (hemarbete) 2.23,2.28, 2.31, 2.40, 2.42
11 Varför studera logisk design Är baskunskap för delarna i ett datorsystem. Bygga stora system av enkla byggblock Ger förståelse för hur en dator fungerar Parallellismen i maskinvara ger en grundförståelse för parallell datorbehandling. Ett effektivt sätt att implementera system.
12 Vad lär vi oss i denna kurs Om teknologier och teknikval Grunderna i VHDL Fördjupning i digitalteknik Tid i digitala system (Asynkrona sekvensnät, Hasarder mm) Konstruktionsmetodik (Design för test, testning, syntes mm)
13 Varför VHDL?
14 Applikationer för logik design Konventionella datorsystem Nätverk och kommunikation Inbyggda system Vetenskaplig utrustning Världen är mycket större än PC-maskiner.
15 Figure 1.1. A silicon wafer (courtesy of Altera Corp.).
16
17 Standard Chips Kretsar som realiserar användbara funktioner Oftast relativt små kretsar (några 1000 transistorer) Många kretsar för att realisera en konstruktion Populära fram till tidigt 80-tal Kräver plats (printed circuit board, PCB)
Group of 8 logic cells Memory block Interconnection wires Programerbar logik Har ersatt Standard Chips Många olika typer finns. 18 Figure 1.2. A field-programmable gate array chip (courtesy of Altera Corp.).
Design processen
20 Aspekter på en konstruktion Utvecklings buget Effekt buget Plats buget Styckekostnad KRAV
21 Standard dator Mikrocontroller Signalprocessor Design val Programmerbar logik Färdiga standard kretsar ASIC Kombination
22 Prestanda Standard dator Risk 100 90 80 70 Dator Rekonfigurerbarhet 60 50 40 30 20 Utv-kosstnad 10 0 Testbarhet St-kostnad Plats Effekt
23 Mikrocontroller, DSP Risk Dator DSP Prestanda 100 90 80 70 60 50 40 30 20 Rekonfigurerbarhet Prestanda 100 Utv-kosstnad 10 0 Testbarhet 90 Risk 80 70 Rekonfigurerbarhet 60 50 40 30 20 St-kostnad Plats tv-kosstnad 10 0 Testbarhet Dator Mickocontroller Effekt St-kostnad Plats Effekt
24 Prestanda 80 70 FPGA - ASIC Risk 60 Rekonfigurerbarhet 50 40 tv-kosstnad DSP FPGA 30 20 10 0 Testbarhet Prestanda 100 90 Risk 80 70 60 50 Rekonfigurerbarhet St-kostnad Plats 40 30 20 Effekt Utv-kosstnad 10 0 Testbarhet DSP FPGA ASIC St-kostnad Plats Effekt
25 Dator FPGA Std-krets Prestanda 100 90 Utv-kosstnad Risk Dator FPGA StdKretsar 80 70 60 50 40 30 20 10 0 Rekonfigurerbarhet Testbarhet St-kostnad Plats Effekt
26 Design concept Initial design Simulation Redesign Design correct? No Yes Successful design Figure 1.4. The basic design loop.
En dators struktur 27
IC-kretsens strukturen 28
29 Hur beskriver vi en elektronisk konstruktion Schema Komponenter och nät används sällan idag Analågt och digitalt Nätlista EDIF ett mellanformat Hårdvaru beskrivande språk VHDL Verilog System Verilog Sysem C mf
VHDL grunder Ett system delas in i två delar. Mot omgivningen: interface. Hur systemet kopplas till andra system och omgivningen. Intern funktionell beskrivning av konstruktionen. I VHDL En entity ansluter till den externa omgivningen. En architecture beskriver den interna funktionen. Entity Architecture
VHDL grunder Exempel: Simpel AND grind X Y & f=x Y -- AND gate LIBRARY ieee; USE ieee.std_logic_1164.all; Bibliotek med inbyggda funktioner X Y Och (and) X Y f 0 0 0 0 1 0 1 0 0 1 1 1 X Y
VHDL grunder Exempel: Simpel AND grind - Entity -- AND gate LIBRARY ieee; USE ieee.std_logic_1164.all; X Y X Y 32 ENTITY and2 IS Entity name PORT(x:IN STD_LOGIC; y:in STD LOGIC; f:out STD_LOGIC); END and2;
VHDL grunder Exempel: Simpel AND grind Architecture X Y X Y 33 Bibliotek med inbyggda funktioner Entity -- AND gate LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY and2 IS PORT(x:IN STD_LOGIC; y:in STD LOGIC; f:out STD_LOGIC); END and2; Entity name Architecture ARCHITECTURE arch_and2 OF and2 IS BEGIN Entity name again f<=x AND y; END arch_and2; Architecture name
34 Grindsymboler ARCHITECTURE arch_not OF not IS BEGIN f<= NOT x; X 1 X END arch_not; Inverterare (not) X f 0 1 1 0 X X ARCHITECTURE arch_or2 OF or2 IS BEGIN f<=x OR y; END arch_or2; X Y 1 Eller (or) X Y X Y f f=x+y 0 0 0 0 1 1 1 0 1 1 1 1 X+Y
35 X Y X Y X Y 1 NOR f=(x+y) f f X Y f 0 0 1 0 1 0 1 0 0 1 1 0 X Y & NAND f=(x Y) VHDL f <= x nor y; VHDL f <= x nand y; X Y f X f=x Y 0 0 0 X f=x Y =1 =1 Y 0 1 1 Y XOR 1 0 1 X f 1 1 0 Y VHDL f <= x xor y; X Y f X Y f 0 0 1 0 1 1 1 0 1 1 1 0 f=x Y eller (X Y) VHDL f <= x xnor y; X Y f 0 0 1 0 1 0 1 0 0 1 1 1
36 VHDL används för: I första hand simulering. Även för specifikation. Den kan i vissa fall syntetiseras till maskinvara.
VHDL grunder forts. Exempel Entity LIBRARY ieee; USE ieee.std_logic_1164.all; Om vi titta på koden från ett annat perspektiv så kan vi se två typer av kod Parallell kod (Concurrent code) ENTITY and_or IS PORT( a:in STD_LOGIC; b:in STD_LOGIC; c:in STD_LOGIC; y_conc:out STD_LOGIC; y_seq:out STD_LOGIC); END and_or; Allt inträffar vid samma tidpunkt. Sekventiell kod (Sequential code) Koden intrepetiteras i sekvens, en rad i taget. Koden måste skrivas i en process Hela processen utförs parallellt med resterande kod.
VHDL grunder forts. Exempel: Architecture med Interna signaler LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY and_or IS PORT( STD_LOGIC); END and_or; a:in STD_LOGIC; b:in STD_LOGIC; c:in STD_LOGIC; y_conc:out STD_LOGIC; y_seq:out ARCHITECTURE arch_and_or OF and_or IS SIGNAL x_conc:std_logic; SIGNAL x_seq:std_logic;
VHDL grunder forts. Exempel: Parallell kod BEGIN x_conc <= a AND b; y_conc <= x_conc OR c; LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY and_or IS PORT( STD_LOGIC); END and_or; a:in STD_LOGIC; b:in STD_LOGIC; c:in STD_LOGIC; y_conc:out STD_LOGIC; y_seq:out ARCHITECTURE arch_and_or OF and_or IS SIGNAL x_conc:std_logic; SIGNAL x_seq:std_logic;
Process namn VHDL grunder forts. Exempel: Process Sensitivety list De signaler som triggar (aktiverar) seq:process(a,b,c) processen BEGIN x_seq <= a AND b; y_seq <= x_seq OR c; END PROCESS seq; LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY and_or IS PORT( STD_LOGIC); END and_or; a:in STD_LOGIC; b:in STD_LOGIC; c:in STD_LOGIC; y_conc:out STD_LOGIC; y_seq:out ARCHITECTURE arch_and_or OF and_or IS SIGNAL x_conc:std_logic; SIGNAL x_seq:std_logic; BEGIN x_conc <= a AND b; y_conc <= x_conc OR c; END arch_and_or; Sekventiell kod
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY and_or IS PORT( a:in STD_LOGIC; b:in STD_LOGIC; c:in STD_LOGIC; y_conc:out STD_LOGIC; y_seq:out STD_LOGIC); END and_or; ARCHITECTURE arch_and_or OF and_or IS SIGNAL x_conc:std_logic; SIGNAL x_seq:std_logic; BEGIN x_conc <= a AND b; y_conc <= x_conc OR c; seq:process(a,b,c,x_seq) BEGIN x_seq <= a AND b; y_seq <= x_seq OR c; END PROCESS seq; END arch_and_or; Fix 1 En DÅLIG metod! Varför?
x_seq värdet uppdateras omelebart och används direkt i OR satsen. VHDL Fix 2, rätt! Variabel, lokal för processen, ej observerbar utanför processen. seq:process(a,b,c) VARIABLE x_seq:std_logic; BEGIN x_seq := a AND b; y_seq <= x_seq OR c; END PROCESS seq; END arch_and_or; Variabel tilldelning Nya värdet av x_seq används
43 Figure 1.6. A printed circuit board.
Design flöda för en logisk krets.
45 Design concept Initial design Simulation Redesign Design correct? No Yes Successful design Figure 1.4. The basic design loop.
46 Implementation Build prototype Testing Modify prototype Correct? No Yes Minor errors? Yes No Finished PCB Go to A, B, C, or D in Figure 1.7 Figure 1.8. Completion of PCB development.
47 Att repetera Switchnätalgebra Boolesk algebra Grindsymboler och grindnät Karnaughdiagram
48 An algebraic structure consists of a set of elements B binary operations { +, } and a unary operation { } such that the following axioms hold: 1. the set B contains at least two elements: a, b 2. closure: a + b is in B a b is in B 3. commutativity: a + b = b + a a b = b a 4. associativity: a + (b + c) = (a + b) + c a (b c) = (a b) c 5. identity: a + 0 = a a 1 = a 6. distributivity: a + (b c) = (a + b) (a + c) a (b + c) = (a b) + (a c) 7. complementarity: a + a = 1 a a = 0
49 identity 1. X + 0 = X 1D. X 1 = X null 2. X + 1 = 1 2D. X 0 = 0 idempotency: 3. X + X = X 3D. X X = X involution: 4. (X ) = X complementarity: 5. X + X = 1 5D. X X = 0 commutativity: 6. X + Y = Y + X 6D. X Y = Y X associativity: 7. (X + Y) + Z = X + (Y + Z) 7D. (X Y) Z = X (Y Z)
50 distributivity: 8. X (Y + Z) = (X Y) + (X Z) 8D. X + (Y Z) = (X + Y) (X + Z) uniting: 9. X Y + X Y = X 9D. (X + Y) (X + Y ) = X absorption: 10. X + X Y = X 10D. X (X + Y) = X 11. (X + Y ) Y = X Y 11D. (X Y ) + Y = X + Y factoring: 12. (X + Y) (X + Z) = 12D. X Y + X Z = X Z + X Y (X + Z) (X + Y) concensus: 13. (X Y) + (Y Z) + (X Z) = 13D. (X + Y) (Y + Z) (X + Z) = X Y + X Z (X + Y) (X + Z)
51 de Morgan s: 14. (X + Y +...) = X Y... 14D. (X Y...) = X + Y +... generalized de Morgan s: 15. f (X 1,X 2,...,X n,0,1,+, ) = f(x 1,X 2,...,X n,1,0,,+) establishes relationship between and +
52 Proving theorems (perfect induction) Using perfect induction (complete truth table): e.g., de Morgan s: (X + Y) = X Y NOR is equivalent to AND with inputs complemented X Y X Y (X + Y) X Y 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 (X Y) = X + Y NAND is equivalent to OR with inputs complemented X Y X Y (X Y) X + Y 0 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0
From Boolean expressions to logic gates More than one way to map expressions to gates 53 e.g., Z = A B (C + D) = (A (B (C + D))) T2 T1 F<= not A and (not B and ( C or D ))); use of 3-input gate A Z A B T1 B Z C D T2 C D
54 Waveform view of logic functions Just a sideways truth table but note how edges don t line up exactly it takes time for a gate to switch its output! time change in Y takes time to "propagate" through gates
Choosing different realizations of a function 55 A B C Z 0 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 two-level realization (we don t count NOT gates) multi-level realization (gates with fewer inputs) XOR gate (easier to draw but costlier to build)
56 Karnaughdiagram Kan användas för fyra variabler (med visst besvär upp till sex) yz wx 00 01 11 10 00 01 1 1 11 10 W XY Z + W XYZ = W XZ
57 Sammanfattning 0 10 20 30 40 50 60 70 80 90 100 Prestanda Rekonfigurerbarhet Testbarhet Plats Effekt St-kostnad Utv-kostnad Risk Dator Mickocontroller 0 10 20 30 40 50 60 70 80 Prestanda Rekonfigurerbarhet Testbarhet Plats Effekt St-kostnad Utv-kostnad Risk DSP FPGA 0 10 20 30 40 50 60 70 80 90 100 Prestanda Rekonfigurerbarhet Testbarhet Plats St-kostnad Utv-kostnad Risk ASIC StdKretsar
58 VHDL entity architecture Parallell kod Sekventiell PROCESS Sekventiell Sista signal tilldelning gäller! (<=) Tilldelningen sker när vi lämnar PROCESS. Variabel Direkt (:=) Logik NOT, AND, OR, NAND, NOR, XOR, XNOR Alla har samma prioritet så gödsla med parenteser.
59 Att repetera Booleska funktioner Grindar Karnaughdiagram Normalformer (mintermer, maxtermer)
Att Göra! Registrera er! Köp kursbok (Cremona/DC) Boka labbpass för labb 1. (labbpass 1-4 öppnas i natt) Hämta labb-pm, förbered hemuppgifter. (Skall vara utförda innan lab.) (Gör inlämningsuppgiften.) Repetera och gör hemuppgifterna (de som ni tycker är svåra) Använd tiden i räknestugan för att få hjälp, labbförberedelser och inlämningar.