• No results found

Introduktion till konstruktion av digitala elektroniksystem

N/A
N/A
Protected

Academic year: 2021

Share "Introduktion till konstruktion av digitala elektroniksystem"

Copied!
34
0
0

Loading.... (view fulltext now)

Full text

(1)

Introduktion till konstruktion av digitala elektroniksystem

Innehåll

Historik

Motivation – hårdvarubeskrivande språk

Översikt av integrerade kretsar

Konstruktionsflöde

Konstruktionsverktyg

(2)

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

(3)

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

(4)

Utveckling – Mikroprocessor

400480088080 8085 8086

286 386

486

P6

0.001 0.01 0.1 1 10 100 1000

1970 1980 1990 2000 2010

Transistorer (M)

(5)

Utveckling – Minnen (DRAM)

64

256 1 000

4 000

16 000

64 000 256 000

1 000 000

4 000 000

16 000 000

64 000 000

10 100 1000 10000 100000 1000000 10000000 100000000

1980 1983 1986 1989 1992 1995 1998 2001 2004 2007 2010

Kbit kapacitet/chip

1.6-2.4 m

1.0-1.2 m

0.7-0.8 m

0.5-0.6 m

0.35-0.4 m

0.18-0.25 m 0.13 m

0.1 m

0.07 m

Mänskligt DNA

Uppslagsverk 2 h CD musik

30 s HDTV bok

sida

4X ökning på 3 år

(6)

Vad betyder utvecklingen egentligen ?

(7)

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)

(8)

Datorbaserade verktyg

Konstruktionsflöde för digitala system

Specifikation av konstruktionen

Mata in konstruktionen

Simulera konstruktionen

Överför konstruktionen till kretsar (implementering)

Simulera och modifiera konstruktionen tills den fungerar

Överför konstruktionen Manuellt eller automatiskt

(9)

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

(10)

Exempel 1: Syntes av kombinatorisk logik

 Implementera funktionen m.h.a tillgängliga grindar

Z = (A+B)·(C+D)

(11)

Exempel 2: Analys av tillståndsmaskin

Hur fungerar tillståndsmaskinen ?

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

0 1

A=1

A=1 A=0

A=0

(12)

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

(13)

Forts. Exempel 3

 Automatisk syntes av koden för adderaren

(14)

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;

enable count reset

up

(15)

Forts. Exempel 4

 Automatisk syntes av koden för räknaren

(16)

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

(17)

Implementationsteknologier

Fysisk Implementering (automatisk)

Standard komponenter Programmerbara kretsar Kundanpassade kretsar

En och samma konstruktion beskriven med grindar kan implementeras

i olika teknologier

(18)

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

(19)

Före programmering

 Alla möjliga kopplingar finns tillgängliga före programmering

AND-plan

Programmerbar koppling

OR-plan

(20)

Efter programmering

Ej önskade kopplingar tas bort

’Fuse’ normalt kopplade, bryt oönskade

’Anti-fuse’ (normalt okopplade, koppla de önskade)

A B C

AB B'C AC' B'C'

A

(21)

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

AB+A'B' CD'+C'D

AB A'B' CD' C'D A B C D

(22)

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

(23)

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

(24)

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

(25)

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

(26)

FPGA från Xilinx

CLB

CLB

CLB

CLB

Switch Matrix

Programmable

Interconnect I/O Blocks (IOBs)

Configurable

Logic Blocks (CLBs)

D Q SlewRate Control

Passive Pull-Up, Pull-Down

Delay

Vcc

Output Buffer

Input Buffer Q D

Pad

D Q

SD

RD EC S/R Control

DSDQ

RD EC S/R Control

1 1

F' G' H' DIN F' G' H' DIN

F' G' H'

H'

Func.H Gen.

Func.G Gen.

Func.F Gen.

G4G3 G2G1

F4F3 F2F1

C4 C1 C2 C3

K

Y

X H1 DIN S/R EC

(27)

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

(28)

VHDL – ett

hårdvarubeskrivande språk

 Det finns två vanliga språk för att beskriva hårdvara

VHDL

Verilog HDL

 VHDL

Very High Speed Integrated Circuit Hardware Description Language

 Historik

Skapat av amerikanska försvarsdepartementet (DoD) för att dokumentera militära konstruktioner

(29)

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

(30)

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

(31)

Implementering (Automatisk) Placering och ledningsdragning

Logiksyntes (Automatisk)

Simulera konstruktionen

Konstruktionsflöde för FPGA

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

Simulera och modifiera konstruktionen

tills den fungerar Överför konstruktionen

automatiskt

(32)

VHDL

Syntesverktyg Syntesverktyg

Konstruktionsverktyg I

Beskrivning av

konstruktionen

Testbänk

Generera testdata Analysera respons

VHDL simulator VHDL simulator

Vågformer

Teknologi

Data för grindarna t.ex fördröjning, effektförbrukning

Direktiv

T.ex önskad klockfrekvens

Nätlista med grindar Data från komponent-

leverantör

Anges av konstruktören

(33)

”Post-layout”-simulering

”Post-layout”-simulering

Konstruktionsverktyg II

Nätlista med grindar

Binär-fil för Programmering av komponenten

Grindfördröjninger efter placering och kopplingar

”Place & Route”-verktyg

”Place & Route”-verktyg

Vågformer

(34)

SLUT på Föreläsning 1

 Innehåll

Historik

Motivation – hårdvarubeskrivande språk

Översikt av integrerade kretsar

Konstruktionsflöde

Konstruktionsverktyg

References

Related documents

Den del av fastigheten som beställningen avser ska markeras som exemplet visar på kartan nedan, det vill säga, det svarta markerade området är en del av Tälje 3:51. Kostnaden

Detta delkapitel innehåller teori som inte kommer att användas senare i arbetet, men demonstrerar på ett bra sätt hur icke-standard analys kan tillämpas för att få en

10) Gör en principskiss över hur en eukaryot cell ser ut. Beskriv de olika organellerna och deras function. Ge exempel på eukaryota organismer!. 11) Varför används jäst som en

Indien, ett land med 1,2 miljarder invånare där 65 procent av befolkningen är under 30 år står inför stora utmaningar vad gäller kvaliteten på, och tillgången till,

Topplocket utsätts då inte för den extra externa kraften som hammar-infästningens box genererar via hydraulhammaren slag utan endast från brytningar och sneda träffar mot

Bilaga 3 Detaljritning fäste för tryckgivare och termoelement Bilaga 4 Detaljritning konsol strypventil.. Bilaga 5 Detaljritning konsol tryckregulator Bilaga 6 Detaljritning

mål att eleverna ska få förståelse för varför stora molekyler måste brytas ner till mindre i matspjälkningen, samt processerna i matspjälkningen Eleverna får samma frågor

Tidsåtgång: 60 minuter + 25 min för intro/avslut Pris: Grundavgift 2000 kr + 200 kr/person.. Språk: Svenska/Engelska Spelas i