Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Podobné dokumenty
Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Souhrn Apendixu A doporučení VHDL

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí

Příklady popisu základních obvodů ve VHDL

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Základní logická hradla, Booleova algebra, De Morganovy zákony Student

Úvod do jazyka VHDL. Jan Kořenek Návrh číslicových systémů

Návrh základních kombinačních obvodů: dekodér, enkodér, multiplexor, demultiplexor

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

Násobičky, Boothovo překódování. Demonstrační cvičení 7

Sčítačky Válcový posouvač. Demonstrační cvičení 6

Číslicové obvody a jazyk VHDL

Návrh. číslicových obvodů

Cíle. Teoretický úvod

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

Návrh ovládání zdroje ATX

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Úloha 9. Stavové automaty: grafická a textová forma stavového diagramu, příklad: detektory posloupností bitů.

Y36SAP Y36SAP-2. Logické obvody kombinační Formy popisu Příklad návrhu Sčítačka Kubátová Y36SAP-Logické obvody 1.

Základní znaky. - Ve srovnání se Spice jsou velmi složité a vyžadují dlouhou dobu na plné osvojení. - Velmi nákladné simulační programy.

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Úvod do problematiky obvodů FPGA pro integrovanou výuku VUT a VŠB-TUO

1 z :27

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky. Úloha č. 5. Student. Řešení komplexního úkolu kombinační logikou Chemická nádrž

Vývoj VHDL. Verilog HDL

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

12. Booleova algebra, logická funkce určitá a neurčitá, realizace logických funkcí, binární kódy pro algebraické operace.

1. Seznamte se s výukovou platformou FITkit (

Pokročilé využití jazyka VHDL. Pavel Lafata

2.7 Binární sčítačka Úkol měření:

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ MEII KOMBINAČNÍ LOGICKÉ OBVODY

... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

DIGITÁLN LNÍ OBVODY A MIKROPROCESORY 1. ZÁKLADNÍ POJMY DIGITÁLNÍ TECHNIKY

Číslicové obvody základní pojmy

LOGICKÉ OBVODY 2 kombinační obvody, minimalizace

14. Složitější konstrukce

Příkladný úvod do VHDL

Příklad č. 1 Přepis informace ze vstupů (SW0 až SW3) na ledky (LEDG0 až LEDG3)

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

2. LOGICKÉ OBVODY. Kombinační logické obvody

1 Stručný popis jazyku VHDL

PROGRAMOVATELNÉ LOGICKÉ OBVODY

Testování a spolehlivost. 1. Laboratoř Poruchy v číslicových obvodech

4. Elektronické logické členy. Elektronické obvody pro logické členy

2. Entity, Architecture, Process

Prezentace do předmětu Architektury a použití programovatelných obvodů 2

P4 LOGICKÉ OBVODY. I. Kombinační Logické obvody

Implementace čítačů v číslicových systémech 2 Jakub Šťastný ASICentrum, s.r.o. FPGA Laboratoř, Katedra teorie obvodů FEL ČVUT Praha

5 Přehled operátorů, příkazy, přetypování

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

B i b l i o g r a f i c k á c i t a c e

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Struktura a architektura počítačů (BI-SAP) 3

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Návrh FPGA systémů. Jazyk VHDL, principy simulace. Ing. Jakub Št astný, Ph.D. 1

2.8 Kodéry a Rekodéry

Programovací jazyk Pascal

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Digitální technika. Jazyk VHDL, základy návrhu. Ing. Jakub Št astný, Ph.D. 1

Neuronové sítě Minimalizace disjunktivní normální formy

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Algoritmizace a programování

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Projekt realizovaný na SPŠ Nové Město nad Metují. s finanční podporou v Operačním programu Vzdělávání pro konkurenceschopnost Královéhradeckého kraje

3. REALIZACE KOMBINAČNÍCH LOGICKÝCH FUNKCÍ

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

Návod k obsluze výukové desky CPLD

Sada 1 - Základy programování

Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení

KOMBINAČNÍ LOGICKÉ OBVODY

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Struktura a architektura počítačů (BI-SAP) 4

5. Sekvenční logické obvody

MĚŘENÍ Laboratorní cvičení z měření Měření parametrů logického obvodu část Teoretický rozbor

Minimalizace logické funkce

3.7.5 Znaménkové operátory Násobící operátory Rùzné operátory Základní objekty Konstanty Sig

Způsoby realizace této funkce:

Základy číslicové techniky z, zk

KOMBINAČNÍ LOGICKÉ OBVODY

Implementace čítačů v číslicových systémech Jakub Šťastný

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Chapter Základní principy simulace :).

Architektura počítačů Logické obvody

Hlídač světel automobilu

Transkript:

Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D.

Realizace kombinačních logických funkcí Realizace kombinační logické funkce = sestavení zapojení obvodu, který ze vstupních proměnných vytvoří výstupní proměnné v souhlasu se zadanou logickou funkcí. použití moderních mikroelektronických součástek často stačí jediný IO (katalog nebo PROM nebo PLD) základní způsob realizace kombinační logické funkce = pomocí kombinačních logických obvodů představujících realizaci základních logických členů v integrované podobě, kdy se vychází ze zápisu logické funkce v některém z výše uvedených tvarů součtu součinů nebo součinu součtů.

Realizace kombinačních logických funkcí Při realizaci - zápis funkce v součtovém nebo součinovém tvaru výhodné použít logické členy téhož typu, tj. buď součinové nebo součtové y = a c + a b c

Realizace kombinačních logických funkcí Zápis v součtovém tvaru y = a c + a b c y ( a c ) ( a b c) ) = y = ( a + c) + ( a + b + c ) 3 hradla, 14 tranz. 4 hradla, 16 tranz., větší zpoždění Realizace funkce y na základě součtového tvaru zápisu

Realizace kombinačních logických funkcí Zápis v součinovém tvaru ( a + b) ( a + c ) ( a c) y = + ( a + b) + ( a + c ) + ( a c) ) = y = ( a b ) ( a c) ( a c ) y + 4 hradla, 18 tranz. 5 hradel, 20 tranz., větší zpoždění Realizace funkce y na základě součinového tvaru zápisu

Realizace kombinačních logických funkcí Realizace FPGA nebo CPLD y součtový tvar = a c + a b c nebo součinový tvar ( a + b) ( a + c ) ( a c) y = + NA ZPŮSOBU ZÁPISU NEZÁLEŽÍ!!!! NÁVRHOVÝ SYSTÉM DANOU FUNKCI UPRAVÍ A ZMINIMALIZUJE!!!!

Realizace kombinačních logických funkcí 2-to-1 MUX y = AS + BS S A B Y 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1

Realizace kombinačních logických funkcí 4-to-1 MUX y = AS + 1S0 + BS1S0 + CS1S0 DS1S0 S 1 S 0 Y 0 0 A 0 1 B 1 0 C 1 1 D

Realizace logických funkcí pomocí MUX A B C Y 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 A B Y 0 0 0 0 1 C 1 0 C 1 1 1 A Y 0 BC 1 B+C Vyjádřete výslednou logickou funkci!!!

Realizace logických funkcí pomocí MUX Závěr: Realizace logické funkce s využitím multiplexoru je jen dalším způsobem, jak vyjádřit logickou funkci. S obecné rovnice multiplexoru se dá následně elegantně vyjádřit výsledná logická funkce.

VHDL popis MUX 2-to-1 komb. log. funkce 2-to-1 MUX VHDL popis entity mux_2 is Port (A,B,C,D : in STD_LOGIC; S : in STD_LOGIC); Y : out STD_LOGIC); end mux_2; architecture Behavioral of mux_2 is begin Y <= (A and not S) or (B and S); end Behavioral;

VHDL popis MUX 4-to-1 komb. log. funkce 4-to-1 MUX VHDL popis entity mux_4 is Port (A,B,C,D : in STD_LOGIC; S : in STD_LOGIC_VECTOR (1 downto 0); Y : out STD_LOGIC); end mux_4; architecture Behavioral of mux_4 is begin y <= (A and not S(1) and not S(0)) or (B and S(1) and not S(0)) or (C and not and S(1) S(0)) or (D and S(1) and S(0)); end Behavioral;

Typy dat Standard IEEE 1076 definuje dále typy (pole) std_ulogic_vector a std_logic_vector, některé další subtypy a také funkce pro přetížení operátorů, konverzní funkce a další užitečné pomůcky S typem std_logic a s odpovídajícím složeným typem std_logic_vector pracujeme při syntéze nejčastěji. Celočíselné typy - SIGNAL a: integer RANGE 0 TO 255; Typy pole -Nejběžnější typy tohoto druhu jsou definovány ve standardech 1076 a 1164 TYPE bit_vector IS ARRAY (natural RANGE <>) OF bit; TYPE std_logic_vector IS ARRAY (natural RANGE <>) OF std_logic;

Signály typu std_logic, std_logic_vector Standard IEEE 1164 definuje typ std_logic type std_logic is ( 'U', -- Uninitialized 'X', -- Forcing Unknown '0', -- Forcing 0 '1', -- Forcing 1 'Z', -- High Impedance 'W', -- Weak Unknown 'L', -- Weak 0 'H', -- Weak 1 '-' -- Don't Care ); Vnitřní signál signál vyskytující se pouze uvnitř obvodu, není definován v entitě!!!! Př.: Vytvoření vnitřního 1-bitového signálu x - vni SIGNAL x: std_logic; Př.: Vytvoření vnitřního 8-bitového signálu x SIGNAL x: std_logic_vector (7 downto 0); Použití typů std_logic, std_logic_vector před deklaraci entity je nutné zapsat library IEEE; use IEEE.STD_LOGIC_1164.ALL;

VHDL popis MUX 2-to-1 komb. log. funkce Použití vnitřních signálů entity mux_2 is Port (A,B S Y end mux_2; : in STD_LOGIC; : in STD_LOGIC); : out STD_LOGIC); architecture Behavioral of mux_2 is signal x1, x2 : std_logic; begin Y <= x1 or x2; x1 <= A and not S; -- vnitrni signal x1 x2 <= B and S; -- vnitrni signal x2 end Behavioral;

Příklad - Nádrž v chemické továrně Zadání: Nádrž v chemické továrně je potřeba vybavit ochranným systémem. V nádrží je nutné sledovat teplotu, tlak a úroveň hladiny kyseliny. Ochranný systém je zobrazen na obrázku. Obsahuje tři senzory a tři indikační diody. D1 A B C teplotní senzor tlakový senzor senzor úrovně hladiny ochranný systém D2 D3

Příklad - Nádrž v chemické továrně Vlastnosti: 1) Dioda D1 indikuje stav, kdy je v nádrži vše v pořádku a může dojít k překroční hodnot pouze jedné sledované veličiny. 2) Dioda D2 indikuje stav, kdy dojde k překročení pouze dvou hodnot sledovaných veličin. 3) Dioda D3 indikuje stav, pokud všechny tři senzory detekují, že došlo k překročení hodnot sledovaných veličin. Možnosti realizace: 1) Pravdivostní tabulka + diskrétní dig. součástky minimalizace, realizace pomocí diskrétních digitálních součástek řady 74.. nebo 40.. 2) Pravdivostní tabulka + obvod CPLD nebo FPGA není potřeba minimalizace, realizace v návrhovém systému ISE Webpack v jazyce VHDL do obvodu CPLD nebo FPGA (návrhový systém má v sobě zabudované minimalizační a optimalizační algoritmy) 3) Behaviorální popis + obvod CPLD nebo FPGA behaviorální popis systému v jazyce VHDL, není potřeba pravdivostní tabulka

Příklad - Nádrž v chemické továrně Řešení 1 pravdivostní tabulka + diskrétní dig. součástky: A B C D1 D2 D3 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 Minimalizace - DeMorganovy zákony A D2 = D3 = D1 = A C + B C + A B C B 0 0 1 0 0 1 0 1 A B C + A B C + A B C A B C

Příklad - Nádrž v chemické továrně Řešení 2 pravdivostní tabulka + obvody CPLD nebo FPGA: 1) Možnost realizovat minimalizovanou funkci 2) Možnost realizovat přímo z pravdivostní tabulky (minimalizační a optimalizační algoritmy zabudované v ISE WebPack) entity digi_top is Port ( a,b,c : in STD_LOGIC; d1,d2,d3 : out STD_LOGIC); end digi_top; architecture Behavioral of digi_top is signal x1,x2,x3 : std_logic; -- vnitrni signaly begin -- detekce prekroceni maximalne jedne sledovane veliciny -- (neminimalizovana funkce) d1 <= (not a and not b and not c) or (not a and not b and c) or (not a and b and not c) or (a and not b and not c);

Příklad - Nádrž v chemické továrně -- detekce prekroceni dvou sledovanych velicin x1 <= not(a) and b and c; x2 <= a and b and not(c); x3 <= a and not(b) and c; d2 <= x1 or x2 or x3; -- detekce prekroceni vsech tri sledovanych velicin d3 <= a and b and c; end Behavioral; not a bc & x1 a b not c & x2 1 d1 a not b c & x3

Příklad - detektor sudé parity

Příklad - detektor sudé parity

Detektor sudé parity využití hradla XOR

Souběžné příkazy v jazyce VHDL when-else Výraz boolean_expr_i (i=1,2,3,,n) je Boolean výraz a vrací hodnotu true nebo false Tyto Boolean výrazy se provádějí postupně dokud není jeden z těchto výrazu nenabývá logickou hodnotu true Signálu signal_name se následně přiřadí příslušná hodnota value_expr_i (i=1,2,3,,n) podle Boolean výrazu Poslední hodnota value_expr_n se přiřadí, pokud ani jeden z Boolean výrazů nenabývá logickou hodnotu true Záleží na pořadí řádku, je zde definována priorita!!!!!!!!!!!

Souběžné příkazy v jazyce VHDL when-else Koncepční schéma s využitím MUX pro souběžný příkaz when-else

Souběžné příkazy v jazyce VHDL when-else Koncepční schéma s využitím jednoho when-else Koncepční schéma s využitím dvou when-else

Souběžné příkazy v jazyce VHDL when-else Koncepční schéma s využitím třech when-else

Souběžné příkazy v jazyce VHDL when-else Schéma na hradlové úrovni 1-bit MUX 2-1 Schéma na hradlové úrovni 3-bit MUX 2-1

Souběžné příkazy v jazyce VHDL when-else Příklad: mějme následující popis v jazyce VHDL Koncepční schéma Schéma na hradlové úrovni

Souběžné příkazy v jazyce VHDL when-else Příklad: 1-bit MUX 4-1 entity mux_4 is Port (A,B,C,D : in STD_LOGIC; S : in STD_LOGIC_VECTOR (1 downto 0); Y : out STD_LOGIC); end mux_4; architecture Behavioral of mux_4 is begin y <= A when (S="00") else B when (S="01") else C when (S="10") else D; end Behavioral;

Souběžné příkazy v jazyce VHDL when-else Příklad: dekodér 1z4, funkce je dána pravdivostní tabulkou

Praktické využití dekodéru 1z4 Řízení komunikace čtyř zařízení s nadřazeným systémem dev0 dev1 dev2 nadřazený systém (např. mikrokontrolér) dev3 y0 y1 y2 y3 dekodér 1z4 en a b

Souběžné příkazy v jazyce VHDL when-else Příklad: prioritní enkodér, funkce je dána pravdivostní tabulkou

Souběžné příkazy v jazyce VHDL when-else Příklad: prioritní enkodér 4-to-2, funkce je dána pravdivostní tabulkou

Příklad - Nádrž v chemické továrně Vlastnosti: 1) Dioda D1 indikuje stav, kdy je v nádrži vše v pořádku a může dojít k překroční hodnot pouze jedné sledované veličiny. 2) Dioda D2 indikuje stav, kdy dojde k překročení pouze dvou hodnot sledovaných veličin. 3) Dioda D3 indikuje stav, pokud všechny tři senzory detekují, že došlo k překročení hodnot sledovaných veličin.

Souběžné příkazy v jazyce VHDL when-else Příklad: chemická nádrž ze snímku 14 entity nadrz is Port ( a,b,c : in STD_LOGIC; d1,d2,d3 : out STD_LOGIC); end nadrz; architecture Behavioral of nadrz is signal abc : std_logic_vector(2 downto 0); Begin abc <= a&b&c; --parametr slouceni, vytvoreni vektoru -- detekce prekroceni maximalne jedne sledovane veliciny d1 <= 1 when (abc= 100 or abc= 010 or abc= 001 or abc= 000 ) else 0 ; -- detekce prekroceni dvou sledovanych velicin d2 <= 1 when (abc= 110 or abc= 101 or abc= 011 ) else 0 ; -- detekce prekroceni vsech tri sledovanych velicin d3 <= 1 when (abc= 111 ) else 0 ; end Behavioral;