Introduktion till konstruktion av digitala elektroniksystem

Slides:



Advertisements
Liknande presentationer
EDA 480 – Maskinorienterad Programmering
Advertisements

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.1
Digitalteknik, fortsättningskurs 2012 Föreläsning 16 Inför tentan
Styrteknik: Programmering med MELSEC IL PLC2A:1
William Sandqvist Kodlåsmall lockmall.vhd William Sandqvist
Styrteknik: Grundläggande logiska funktioner D2:1
Digitalteknik 7.5 hp distans: Realisering av logik med PLD och VHDL1.4.1 En kretsrealisering med VHDL består av fyra huvudmoment Specifikation Beskrivning.
DIGITAL DESIGN INLEDNING Allmänt och kursens hemsidor Analogt och digitalt Booleska variabler Binära tal Positiv och negativ logik (Aktiv hög och låg logik)
Shannon dekomposition
5:1 Kopiering tillåten. M2000 Compact © Liber AB Företagets resurser Företagets mänskliga resurser Företagskulturen Företagets tekniska resurser Företagets.
Nya Glasögon Utbildning av yrkeslärare i hållbart byggande och energieffektivisering.
Teknisk infrastruktur för biblioteksservice – vad är på gång?
De mest använda knapparna Excel Start Ångra Gör om Fler knappar Vanligaste talformaten Klistra in Hämta format Inställningar tex För att placera.
Så fungerar en dator Mental bild av en dator
Kap 2 - Algebra och ickelinjära modeller
Nya rutiner: tryckning av avhandlingar
Design och utvärdering, 5 poäng
Kataloger och sökverktyg
Mekanik och elektronik
Arbetsmetoder & VERKTYG
Kritiskt förhållningssätt
RMI Av: Josefina & Sarah DS04.
Välkommen till nätverk för publicerare och redaktörer
Förbättra den kognitiva tillgängligheten
Programmeringsträff 2. Programmeringsträff 2 Lgr 11 om programmering Centrala innehållet matematik Algebra 1-3 – Hur entydiga stegvisa instruktioner.
Nätverk för lärare på fritidshem
Lathund-Ladok-95-Studiedeltagande
Föreläsning 3: Booleans, if, switch
SKOLA24 • VAD GÖR EN KOMMUNADMINISTRATÖR
Från timplan till schema Kommunadministratörsutbildningen
Arbetsgruppsstruktur, riktlinjer och mallar
Närvaro Närvaro
Programmering 4-6 Allt finns i en Padlet.
Ett samarbete mellan biologi, BILD och idrott och hälsa
Kataloger och sökverktyg
Grundläggande datavetenskap 4p
MaKlauS – Hålslagningsutrustning modell MPU-03
Nummerbyggnation & nummerbyggnationshjälp
- ett verktyg för ANDT-uppföljning Introduktion
VHS internationella antagningsomgång - Rekrytering och söktryck 1(2)
Mobiltelefonins utveckling
Kan du begreppen? Para ihop rätt begrepp med rätt beskrivning. Algoritm Precis Program Är ett annat ord för exakt, tydlig eller noggrant. Är klara och.
Produktpaket för geodata
Om publiceringssystem, lektion ett
Inst. för Informationsteknologi och Medier
Kombinatoriska byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - DA- och AD-omvandling
Digitalteknik 3p - Sekvenskretsar
Introduktion till kursen Digitalteknik 3p
VHS internationella antagningsomgång - Rekrytering och söktryck 1(2)
VHS internationella antagningsomgång - Rekrytering och söktryck 1(2)
VHS internationella antagningsomgång - Rekrytering och söktryck 1(2)
Digitalteknik 3p - Kombinatorisk logik
Kombinatoriska byggblock
Bengt Oelmann -- copyright 2002
Kombinatoriska byggblock
Digitalteknik 3p - Kombinatorisk logik
VHS internationella antagningsomgång - Rekrytering och söktryck 1(2)
Lathund-Ladok Hantera mallar för intyg
Introduktion till ASIC
Konstruktion av kombinatorisk och sekventiell logik
Leverantörer Bas Bedömning Utvärdering Samarbete Utveckling.
Digitala CMOS-grindar
Framtidens vårdinformationsmiljö Webbutbildning
VHS internationella antagningsomgång - Rekrytering och söktryck 1(2)
Produktnamn.
Digitalteknik 3p - Kombinatorisk logik
Digitalteknik 3p - Kombinatorisk logik
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

Introduktion till konstruktion av digitala elektroniksystem ETAC48 Föresläsning 1 Introduktion till konstruktion av digitala elektroniksystem Innehåll Historik Motivation – hårdvarubeskrivande språk Översikt av integrerade kretsar Konstruktionsflöde Konstruktionsverktyg Bengt Oelmann -- copyright 2002 BO

Historik –den integrerade kretsen 1958: Den första integrerade kretsen presenteras Ej användbar teknik eftersom den var för dyr 60-talet: En stor drivkraft till utvecklingen var NASAs rymdprogram 70-talet: Kretsarna blev all mindre, snabbare och billigare 1971 kom Intels första mikroprocessor – 4004 Bengt Oelmann -- copyright 2002

Historik – den integrerade kretsen 1958: Första analoga integrerade kretsen Jack Kilby (Nobelpristagare 2000) 60-talet Digital elektronik börjar komma i flera elektronikprodukter Fortsättningen 70-talet: 100 tr./IC 80-talet: 10 000 tr./IC 90-talet: 100 000 tr./IC Nu: 10-tals miljoner tr./IC Bengt Oelmann -- copyright 2002

Utveckling – Mikroprocessor 1000 100 10 P6 1 486 Transistorer (M) 386 0.1 286 8086 8085 0.01 8080 8008 4004 0.001 1970 1980 1990 2000 2010 År Bengt Oelmann -- copyright 2002

Utveckling – Minnen (DRAM) Mänskligt DNA 4X ökning på 3 år 0.07 m 0.1 m 0.13 m Uppslagsverk 2 h CD musik 30 s HDTV bok 0.18-0.25 m 0.35-0.4 m 0.5-0.6 m 0.7-0.8 m 1.0-1.2 m 1.6-2.4 m sida Bengt Oelmann -- copyright 2002

Vad betyder utvecklingen egentligen ? Bengt Oelmann -- copyright 2002

Vad används integrerade kretsar till ? Generella integrerade kretsar Mikroprocessor Minnen AD-omvandlare Speciella programmerbara kretsar T.ex för digital signalbehandling (DSP) Speciella integrerade kretsar Tillämpningsspecifik (t.ex krets för TV-mottagare) Specifik för en viss produkt Kontrollera speciella maskiner (hiss, traktor, diskmaskin) Bengt Oelmann -- copyright 2002

Konstruktionsflöde för digitala system Specifikation av konstruktionen Datorbaserade verktyg Mata in konstruktionen Simulera och modifiera konstruktionen tills den fungerar Överför konstruktionen Manuellt eller automatiskt Simulera konstruktionen Överför konstruktionen till kretsar (implementering) Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 Schemainmatning Grafisk metod Placera ut färdiga komponenter på en rityta Koppla ihop in- och utgångar på dessa komponenter för att bygga en ny funktion Bengt Oelmann -- copyright 2002

Exempel 1: Syntes av kombinatorisk logik Implementera funktionen m.h.a tillgängliga grindar Z = (A+B)·(C+D) Bengt Oelmann -- copyright 2002

Exempel 2: Analys av tillståndsmaskin Hur fungerar tillståndsmaskinen ? 1 A=1 A=0 Strukturell beskrivning Sammankoppling av grundläggande komponenter Nätlista (grind-nivå) Eng. gate-level netlist Beteendebeskrivning Beskriver hur den fungerar Säger inget om hur den är gjord Bengt Oelmann -- copyright 2002

Exempel 3: Konstruktion med hårdvarubeskrivande språk 8-bitars adderare architecture rtl of add8 is begin process (a,b) variable s_var : std_logic_vector(8 downto 0); begin s_var := a + ('0' & b); s <= s_var(7 downto 0); cout <= s_var(8); end process add; end rtl; a b s cout Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 Forts. Exempel 3 Automatisk syntes av koden för adderaren Bengt Oelmann -- copyright 2002

Exempel 4: Tillståndsmaskin Modulo-8 upp/ner- räknare med ’enable’ architecture rtl of fsm is signal count : std_logic_vector(2 downto 0); begin -- rtl process (clk, reset) begin -- process if reset = '0' then count <= (others=>'0'); elsif clk'event and clk = '1' then if enable='1' then case up is when '1' => count <= count + 1; when others => count <= count -1; end case; end if; end if; end process; q <= count; end rtl; enable count reset up Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 Forts. Exempel 4 Automatisk syntes av koden för räknaren Bengt Oelmann -- copyright 2002

Hårdvarubeskrivande språk Fördelar Jämfört med schemabaserad konstruktion så blir det lättare att beskriva och läsa konstruktionernas funktion Koden är oberoende av implementationsteknologi Den låser inte konstruktionen till en enda teknologi Koden kan återanvändas Parameteriserbar kod Bengt Oelmann -- copyright 2002

Implementationsteknologier En och samma konstruktion beskriven med grindar kan implementeras i olika teknologier Fysisk Implementering (automatisk) Programmerbara kretsar T.ex PAL, PLA, FPGA Standard komponenter T.ex TTL 74-serien Kundanpassade kretsar ASIC (application Specific IC) Bengt Oelmann -- copyright 2002

Programmerbara logiska matriser – PAL Pre-fabricerade byggblock med många AND/OR grindar Består egentligen av NOR eller NAND grindar Kretsen kan konfigureras (programmeras) genom att bryta kopplingar mellan grindar Blockdiagram för programmerbar krets som skapar uttryck på summa-av-produktform • • • ingångar AND matris • • • utgångar OR matris produkt termer Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 Före programmering Alla möjliga kopplingar finns tillgängliga före programmering AND-plan Programmerbar koppling OR-plan Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 Efter programmering Ej önskade kopplingar tas bort ’Fuse’ normalt kopplade, bryt oönskade ’Anti-fuse’ (normalt okopplade, koppla de önskade) A B C F1 F2 F3 F0 AB B'C AC' B'C' Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 Exempel Förenklad notation – alla ledningar ritas ej Visar att en koppling finns och att signalen är en ingång till grinden Implementera F0=AB + A’B’ samt F1=CD’ + C’D A B C D AB AB+A'B' A'B' CD' CD'+C'D C'D Bengt Oelmann -- copyright 2002

Grindmatriser (Gate-arrays) Enkla logiska grindar Transistorer implementerar kombinatorisk och sekventiell logik Sammankopplingar Ledningar för att koppla samman in- och utgångar till logiska block I/O block Speciella block för att koppla signalerna externt chippet Lägg till ledningar för sammankoppling Metalledningar läggs till efter chippet är tillverkat “mask-programmable” Bengt Oelmann -- copyright 2002

Att göra stora programmerbara kretsar Alternativ 1: ”CPLD” Lägg massor av PAL-kretsar på samma chip Lägg till ledningar mellan dem och vars kopplingar kan programmeras Alternativ 2: ”FPGA” Härma Gate-array teknologin Kallas för Field Programmable Gate Array (FPGA) För det krävs Ett sätt att implementera logiska grindar som kan konfigureras Ett sätt att koppla samman dem Bengt Oelmann -- copyright 2002

Field-Programmable Gate Arrays PAL-kretsar 10 – 100 grindar per chip Field Programmable Gate Arrays Altera MAX Family Actel Programmable Gate Array Xilinx Logical Cell Array 10000 – 4 miljoner grindar per chip Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 FPGA Logiska block Implementerar kombinatorisk och sekventiell logik Sammankopplingar Ledningar kopplar in- och utgångar till logiska block I/O block Speciella block för att koppla signalerna externt chippet Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 FPGA från Xilinx Programmable Interconnect I/O Blocks (IOBs) Configurable Logic Blocks (CLBs) Bengt Oelmann -- copyright 2002

Datorstödd konstruktion Det är inte möjligt att konstruera FPGA för hand Alldeles för mycket logik som ska hanteras Hårdvarubeskrivande språk (HDL) Specificera logikens funktion på en hög nivå Validering: högnivå simulering För att tidigt finna fel i konstruktionen Logiksyntes Kompilera HDL program till logiska grindar Överföring till implementationsteknologi (FPGA) Logiken ska föras över till de element som finns tillgängliga i den implementationsteknologi som finns tillgänglig Bengt Oelmann -- copyright 2002

VHDL – ett hårdvarubeskrivande språk Det finns två vanliga språk för att beskriva hårdvara VHDL Verilog HDL Very High Speed Integrated Circuit Hardware Description Language Historik Skapat av amerikanska försvarsdepartementet (DoD) för att dokumentera militära konstruktioner Standardiserat av IEEE (1076 VHDL) 1993 Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 Bakgrund till VHDL Problem Ökande behov för att kunna konstruera, implementera, test och dokumentera allt komplexare system på allt kortare tid Lösning (?) Ett högnivåspråk för att beskriva hårdvara (HDL) HDL tillsammans med datorstödd konstruktion (CAD) för automatisk syntes och simulering Programmerbar logik för snabb implementering Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 Bakgrund till VHDL Anledningar till att använda HDL Högnivåspråk gör det kraftfullt och flexibelt Konstruktionen görs oberoende av den komponent eller teknologi man ska använda Standardiserat språk gör det möjligt att använda verktyg från olika leverantörer (simulatorer etc.) Gör det möjligt att gå från idé till produkt snabbt med programmerbara kretsar Bengt Oelmann -- copyright 2002

Konstruktionsflöde för FPGA Simulera och modifiera konstruktionen tills den fungerar architecture rtl of fsm is signal count : std_logic_vector(2 downto 0); begin -- rtl process (clk, reset) begin -- process if reset = '0' then count <= (others=>'0'); elsif clk'event and clk = '1' then if enable='1' then case up is when '1' => count <= count + 1; when others => count <= count -1; end case; end if; end if; end process; q <= count; end rtl; Mata in konstruktionen Överför konstruktionen automatiskt Simulera konstruktionen Logiksyntes (Automatisk) Implementering (Automatisk) Placering och ledningsdragning Bengt Oelmann -- copyright 2002

Konstruktionsverktyg I Anges av konstruktören Data från komponent-leverantör VHDL Beskrivning av konstruktionen Testbänk Generera testdata Analysera respons Teknologi Data för grindarna t.ex fördröjning, effektförbrukning Direktiv T.ex önskad klockfrekvens VHDL simulator Syntesverktyg Vågformer Nätlista med grindar Bengt Oelmann -- copyright 2002

Konstruktionsverktyg II Nätlista med grindar ”Place & Route”-verktyg ”Post-layout”-simulering Binär-fil för Programmering av komponenten Grindfördröjninger efter placering och kopplingar Vågformer Bengt Oelmann -- copyright 2002

Bengt Oelmann -- copyright 2002 SLUT på Föreläsning 1 Innehåll Historik Motivation – hårdvarubeskrivande språk Översikt av integrerade kretsar Konstruktionsflöde Konstruktionsverktyg Bengt Oelmann -- copyright 2002