Digitální obvody
Doc. Ing. Lukáš Fujcik, Ph.D.
Základní pojmy digitální techniky
Abstrakce v digitální technice: signály se pokládají za skokově proměnné, v nejjednodušším případě dvě možné hodnoty logická jednička log. 1 1 logická nula log. 0 0
Základní pojmy digitální techniky
Digitální systémy systémy kombinační, u nichž hodnoty výstupních veličin závisí jen na okamžitém stavu vstupních veličin, systémy sekvenční, kde hodnoty výstupních veličin závisí i na předchozích hodnotách vstupních veličin, obsahují paměť.
Číselné soustavy a kódy Přirozené číslo FZ lze obecně vyjádřit základem Z pomocí koeficientů nebo číslic ai
základ 2 se symboly 0 a 1, základ 10 se symboly 0, 1, …, 8, 9, základ 8 (oktalový) se symboly 0, 1, …, 6, 7, základ 16 se symboly 0, 1, …, 8, 9, A, B, C, D, E, F.
Číselné soustavy a kódy
Číselné soustavy a kódy Kontrola výpočtu pomocí Hornerova schématu v obou soustavách:
FZ = 1*20 + 1*21 + 1*22 + 0*23 + 0*24 + 1*25 + 0*26 + + 0*27 + 1*28 + 1*29 + 1*210 = = 1 + 2 + 4 + 0 + 0 + 32 + 0 + 0 + 256 + 512 + 1024 = = 1831D
FZ = 7*160 + 2*161 + 7*162 = 7 + 32 + 1792 = 1831D
Vyjádření záporných čísel ve dvojkovém kódu
Dvojkový doplněk Absolutní hodnotu záporného dekadického čísla vyjádříme ve dvojkovém kódu vytvoříme první dvojkový doplněk (negace jednotlivých bitů) k tomuto číslu přičteme 1 a získáme zápornou hodnotu ve dvojkovém doplňkovém kódu (druhý doplněk)
Základní logická hradla
Kombinační logická funkce Úplně určená kombinační logická funkce taková funkce, jejíž definiční obor zahrnuje všechny kombinace vstupních proměnných. Neúplně určené kombinační logická funkce její definiční obor nezahrnuje některé tyto kombinace.
Kombinační logické funkce jedné vstupní proměnné
Kombinační logická funkce Kombinační logické funkce dvou vstupních proměnných
Zápis kombinační logické funkce Dva základní způsoby zápisu funkce: 1. Součet součinů (Sum of Products, SOP) Pro úplné termy (= mintermy) - úplný součtový tvar zápisu Pro některé neúplné termy - zkrácený (zjednodušený) součtový tvar zápisu. 2. Součin součtů (Product of Sums, POS) Pro úplné termy (= maxtermy) - úplný součinový tvar zápisu Pro některé neúplné termy - zkrácený (zjednodušený) součinový tvar zápisu. Realizace kombinační logické funkce ⇒ minimální tvary zápisu
Zjednodušování zápisu kombinačních logických funkcí Realizace logických funkcí - například pomocí digitálních integrovaných obvodů řady 74 - obvykle vycházíme z minimálního tvaru zápisu funkce, který získáme z jiných tvarů zjednodušením (minimalizací). Zjednodušování algebraické úpravy, Karnaughovy mapy, počítačové metody (např. Quineho a McCluskeyho - převod metody Karnaughovy mapy do algoritmického vyjádření). Minimalizace úplně určených funkcí Při zjednodušování pomocí algebraických úprav využíváme nejčastěji vztahu
a + a =1
Obsahuje-li logická funkce zapsaná v součtovém tvaru dva termy, které se vzájemně liší jen v jedné proměnné, je možno zbývající proměnné z jejich součtu vytknout
Zobrazení kombinační logické funkce pomocí mapy Karnaughova mapa - upravený způsob zápisu pravdivostní tabulky buňky mapy = řádky tabulky stavové indexy sousedních buněk se v binární soustavě liší vždy v hodnotě jedné vstupní proměnné
t
u 0 0000
1 0001
3 0011
2 0010
s 4 0100
5 0101
7 0111
6 0110
r C 1100
D 1101
8 1000
F 1111
9 1001
E 1110
B 1011
A 1010
Karnaughova mapa pro čtyři vstupní proměnné
Způsoby realizace číslicových (sub)systémů
Číslicové IO základních řad (74.., 4000 atd.) Mikrokontroléry a mikropočítače Programovatelné obvody – PLD a FPGA pro menší série digitálních obvodů
levnější než ASIC
návrh digitálního obvodu je prováděn využitím HDL jazyků
Obvody ASIC (Aplication Specified Integrated Circuit) velké série digitálních obvodů
pro smíšené analogově-digitální obvody
vysoké nároky na spolehlivost
návrh digitálního obvodu je částečně zautomatizován využitím HDL jazyků
Návrh digitálních integrovaných obvodů
Návrh digitálních integrovaných obvodů
Návrh digitálních integrovaných obvodů – abstrakce návrhu
Proč použít obvod FPGA a CPLD?
Na dostatečně veliké FPGA lze soustředit více funkcí => není potřeba tolik pouzder a menší místo na DPS. Pro zpracování velkých datových toků, výpočetně náročné algoritmy (audio, video apod.). Implementace algoritmů, které nejsou ještě normalizovány. Později lze vyrobit ASIC. Zde se vyplatí i výroba větších sérií ( výhoda na trhu). Všude, kde je potřeba speciální HW a kvůli velikosti série se nevyplatí ASIC.
Jak vybírat obvod FPGA/CPLD? Charakter operací prováděných obvodem FPGA/CPLD
1.
Velikost a rychlost budoucího obvodu
2.
4.
6.
Počet ekvivalentních hradel (u FPGA je potřeba být opatrný) Speed grade
Počet vstupních a výstupních signálů (I/O signals) Spolehlivost finální aplikace
3.
5.
FPGA/CPLD má být určeno pro řízení komunikace? FPGA/CPLD má provádět velké množství výpočtu? Výrobci nabízejí různé typy obvodů podle charakteru použití
větší teplotní rozsah, radiační odolnost, obvody pro automobilový průmysl
Spotřeba energie – nízkopříkonové aplikace Zabezpečení intelektuálního vlastnictví
Historie programovatelných obvodů
První programovatelné paměti typu PROM (firma Radiation, 1970) Zákaznicky programovatelných verzí EPROM (Intel, 1971) a EEPROM (Intel, 1978) Permanentní paměti jako takové ale neumožňovaly nikdy příliš úspornou realizaci logické funkce. Vznik obvodů FPLA (Signetics/Philips, 1970) Vznikla koncepce obvodů PAL (Monolithic Memories, 1978) s programovatelnou maticí AND a pevnou maticí OR Vznikly obvody CPLD (Altera, 1988). Obvody FPGA ( Xilinx, 1984) – liší se od stávajících Nové architektury postavené na principu kombinace procesoru a programovatelného hradlového pole (například MathStar FPOA)
Jazyk VHDL
VHDL představuje akronym – VHSIC Hardware Description Language, VHSIC – Very High Speed Inegrated Circuits Původně určen pro modelovaní a simulaci rozsáhlých systémů Otevřený standard (Open Standard) – k jeho použití není potřeba licence, jak je to u jiných jazyků HDL (např. ABEL) Možnost pracovat na návrhu, aniž je předtím zvolen cílový obvod (Device-independent design) Přenositelnost (Portability) Jazyk VHDL byl přijat jako standard IEEE číslo 1076 v roce 1987 jako VHDL-87 Upravená verze standardu byla přijata v roce 1993 jako VHDL93 Nový standard z 90. let zahrnuje možnost popisu analogových prvků jako VHDL-AMS (VHDL – Analog and Mixed Signals) HDL jazyky - VHDL, Verilog, Verilog A, ABEL atd.
Rozdělení PLD obvodů
CPLD
Xilinx, Lattice, Altera atd.
Obvody řady 9500XL firmy Xilinx
Obvody řady CoolRunner firmy Xilinx
Obvody pLSI a ispLSI firmy Lattice
Pro rozsáhlejší aplikace než klasické obvody PLD (GAL) FPGA
Xilinx, Lattice, Altera atd.
Obvody Spartan I, II, III firmy Xilinx
Obvody Virtex I, II firmy Xilinx
Pro rozsáhlejší aplikace
Typy struktur programovatelných obvodů PLD
výchozí struktura pro obvody PLD: PROM - stupeň AND je zapojen pevně, stupeň OR je programovatelný obvody PLD se strukturou:
PAL - stupeň AND je programovatelný, stupeň OR je zapojen pevně
PLA - oba stupně jsou programovatelné Obsahuje dvě programovatelné pole Je flexibilnější než struktura PAL Možnost sdílení společných termů více makrobuňkami Obvody CPLD – např. řada CoolRunner firmy Xilinx obvody FPGA (Field-programmable logic array)
Struktura PAL
Struktura PLA
(SM)
(IOB)
CPLD XC9500XL - blokové schéma
CPLD XC9500XL - funkční blok
CPLD XC9500XL - makrobuňka
FPGA
FPGA Programovatelné obvody založené na bázi SRAM
Porovnání s CPLD: více hradel, rychlejší, rekonfigurovatelné. Obsah se ztratí po odpojení napájení.
Porovnání s ASIC: méně hradel, pomalejší, ale levnější v malých sériích
FPGA Virtex II firmy Xilinx
8 milionů hradel Základní prvek je CLB (konfigurovatelná logická buňka) 3 Mb dual-port RAM Možnost implementace interní 3-stavové sběrnice Dedikované 18x18 bitové násobičky DDR IO interface DCM - management hodinových signálů 16 rozvodů hodinových signálů
Návrhové systémy
Xilinx, Altera, Mentor Graphics atd. WebPack – volně stažitelný Modelování, simulace, syntéza Inteligence, vyzrálost návrhových systémů – optimalizace Syntéza – jeden z nejdůležitějších procesů, optimalizace, eliminace nadbytečné logiky
Syntéza, implementace a konfigurace
Typickými procesy pro návrhový systém Xilinx ISE je syntéza, implementace, simulace a vytvoření programového souboru Syntéza – vytvoření „netlistu“ tj. zapojení obvodových prvků, tedy vlastně vytvoření schématu s obvodovými prvky. Optimalizace. Netlist se zapisuje nejčastěji ve formátu EDIF. Implementace – zahrnuje několik kroků, který vyústí popisem, který je určen pro „vypálení“ nebo pro vytvoření tzv. bitstreamu pro FPGA. Důležíté jsou kroky Fitting (PLD) a Mapping a Placeand-Route (FPGA)
Mapping – přiřazení obvod. prvků se syntézy konkrétním prvkům obsažených v cílovém obvodu (analogie výběr součástek pro DPS)
Placement (rozmístění) a Routing (propojení)
Výsledkem implementace je simulační model – je doplněn o časové parametry propojení a prvků Konfigurace – programování konkrétního cílového obvodu
Ověření funkce a zjištění časových parametrů
Funkční simulace
Pracuje na úrovni RTL (Register Transfer Level – behaviorální úroveň) Zjištění zda obvod správně funguje bez ohledu na časové parametry Není většinou závislá na cílovém obvodu Funkční simulace se provádí před dalším zpracováním návrhu
Časová simulace
Využívá model generovaný systémem při implementaci Model může zahrnovat konkrétní parametry cílového obvodu a je respektováno výsledné propojení jeho strukturálních prvků Časovou simulací získáme poměrně přesné a podrobné údaje o časových poměrech Bývá časově náročnější než funkční simulace Simulátory, které mají vlastnosti provádět časovou simulaci, jsou velmi složité a drahé programové celky
Základní struktura modelu v jazyku VHDL
Konstrukce (model) v jazyku VHDL má 2 základní části:
Deklarace entity (entity declaration)
Tělo architektury (popis dig. systému)
Deklarace entity
Popisuje vstupy a výstupy konstrukce Brány (Ports) – klíčové slovo PORT, jsou to signály Deklarace brány se skládá – jméno brány, módu (mode) a typ dat Módy – IN, OUT, BUFFER, INOUT BUFFER – může činit problémy při kompilaci a simulaci, doporučeno nepoužívat BUFFER můžeme nahradit pomocí módu OUT a pak musíme definovat vnitřní signál (dostupný uvnitř obvodu)- v těle architektury INOUT – pro obousměrné vtupy/výstupy Generic – volitelná sekce. Parametrizace entity. Při každém použití Entity je možné měnit Generic parametr.
Tělo architektury
Architektura popisuje funkci konstrukce Různé popisy architektury:
Strukturální – spočívá ve vkládání komponent (Component), nejčastěji se používá v hierarchickém uspořádání konstrukce jako popis propojení dílčích bloků nižší úrovně
Tok dat (Data flow) – používá souběžné příkazy
Behaviorální – používá zejména sekvenční příkazy K jedné deklaraci entity může být přiřazeno i více architektur Více architektur se akceptuje pouze v simulaci V syntéze bývá uvažována pouze 1 architektura (první) Před slovem BEGIN může být deklarativní část (Declarative part) Za slovem BEGIN následuje příkazová část (Statement part)
Datové objekty
Konstanty (constants)
CONSTANT Width: integer := 3; CONSTANT delay : time := 10 ns; Pomocný datový objekt při syntéze a simulaci
Signály (signals)
skutečně
se v konstrukci vyskytují
může jím být přiřazena počáteční hodnota (pro simulaci)
Proměnné (variables) Soubory (files)
Operátory VHDL určené pro syntézu
Kategorie operátoru
Symbol
Popis
Logické
AND OR NAND NOR XOR XNOR NOT
Relační
= /= > < >= <=
Rovnost Nerovnost Větší než Menší než Menší nebo roven Větší nebo roven
Aritmetické
+ * /
Součet Rozdíl Násobení Dělení
Slučování
&
Sloučení