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.

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

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

Cíle. Teoretický úvod

Návrh ovládání zdroje ATX


SWI120 ZS 2010/ hookey.com/digital/

7. Popis konečného automatu

1. Seznamte se s výukovou platformou FITkit (

12. VHDL pro verifikaci - Testbench I

Sekvenční logické obvody

Sekvenční logické obvody

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

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

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

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

1 Stručný popis jazyku VHDL

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

Návrh. číslicových obvodů

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

Číslicové obvody a jazyk VHDL

3. Sekvenční logické obvody

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

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

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

r90>25=.nt>+>7z5n2k<1561/+;5n{.57u07k{16;5=.nt>+>7z5n2k<15n>29l.05,90>2/3k5n2k7,50{10;<o5>/>?ˆ581:+z6,561/+;

14. Složitější konstrukce

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

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

2. Entity, Architecture, Process

Čítače e a časovače. v MCU. Čítače a časovače MCU. Obsah

5. Sekvenční logické obvody

Souhrn Apendixu A doporučení VHDL

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

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

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

DUM 10 téma: Stavová tabulka výklad

Sekvenční logické obvody

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

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

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

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říklad č. 1 Přepis informace ze vstupů (SW0 až SW3) na ledky (LEDG0 až LEDG3)

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

Logické obvody - sekvenční Formy popisu, konečný automat Příklady návrhu

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

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

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

SEKVENČNÍ LOGICKÉ OBVODY

29.z-9.plo ZS 2015/2016

Struktura a architektura počítačů

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

9. A/Č převodník s postupnou aproximací. Použití logického analyzátoru

ŘÍZENÍ FYZIKÁLNÍHO PROCESU POČÍTAČEM

Použití jazyka VHDL pro návrh číslicových obvodů

Převodníky AD a DA. AD a DA. Převodníky AD a DA. Základní charakteristika

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

TECHNICKÁ UNIVERZITA V LIBERCI

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

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


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

Programovatelné logické obvody

Hardwarová realizace konečných automatů

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.

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

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

České vysoké učení technické v Praze Fakulta elektrotechnická. Automatické generování VHDL kódu pro FPGA

Simulace číslicových obvodů na hradlové úrovni: model návrhu Jakub Šťastný ASICentrum, s.r.o. Katedra teorie obvodů FEL ČVUT Praha

SYSTEMC NÁSTROJE A PROSTŘEDÍ PRO NÁVRH SYSTÉMŮ

Návrh synchronního čítače

České vysoké učení technické v Praze Fakulta elektrotechnická BAKALÁŘSKÁ PRÁCE

Logické obvody - sekvenční Formy popisu, konečný automat Příklady návrhu

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systém přerušení. České vysoké učení technické Fakulta elektrotechnická

Konečný automat. Studium chování dynam. Systémů s diskrétním parametrem číslic. Počítae, nervové sys, jazyky...

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

Sekvenční obvody. S R Q(t+1) 0 0? Q(t)

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

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

Návrh asynchronního automatu

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

CO JE STAVOVÝ AUTOMAT

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

Příklady a návody. Databázová vrstva

Projekt Pospolu. Sekvenční logické obvody Klopné obvody. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jiří Ulrych.

Chapter Základní principy simulace :).

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Registry a čítače část 2

Poznámky k verzi. Scania Diagnos & Programmer 3, verze 2.27

Objektově orientované technologie Dynamický náhled Stavový diagram. Pavel Děrgel, Daniela Ďuráková

11. Logické analyzátory. 12. Metodika měření s logickým analyzátorem

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

VŠB - Technická univerzita Ostrava. Fakulta elektrotechniky a informatiky

L L H L H H H L H H H L

BDIO - Digitální obvody

Projekt: Přístupový terminál

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

Transkript:

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

Synchronní 3-bitový čítač s KO D, asyn. RST a výstupem MAX Vlastnosti: ) Čítač inkrementuje svůj výstup o 2) Změna výstupu nastává vždy při změně náběžné hrany hodinového signálu 3) Výstup max oznamuje (max=), že na výstupu je maximum ()

Synchronní 3-bitový čítač s KO D, asyn. RST a výstupem MAX entity counter is Port ( clk,rst : in STD_LOGIC; max : out STD_LOGIC; : out STD_LOGIC_VECTOR (2 downto 0)); end counter; architecture Behavioral of counter is signal d_int,q_reg : STD_LOGIC_VECTOR (2 downto 0); begin -- oddelena pametova cast process (clk,rst) begin if (rst= then q_ reg <= (others=> 0 ); elsif (clk event and clk= ) then q_reg <= d_int; end if; end process; -- oddelena kombinanci cast d_ int <= q_ reg + ; max <= when q_reg= else 0 ; -- detekce maxima <= q_reg; end Behavioral;

Synchronní 3-bitový čítač s KO D, asyn. RST a výstupem MAX Koncepční schéma: 3 d_int q_reg 3

Synchronní 3-bitový čítač s KO D, asyn. RST a výstupem MAX Výstupní signál max může zakmitávat => hazardy

Synchronní 3-bitový čítač s KO D, asyn. RST a výstupem MAX Hazardy není potřeba řešit => následující blok je synchronní s clk Hazardy je nutné řešit => následující blok není synchronní

Synchronní 3-bitový čítač s KO D, asyn. RST a výstupem MAX Zápis čítače v jednom procesu riziko zanesení chyby, registr navíc!!! entity counter is Port ( clk,rst : in STD_LOGIC; max : out STD_LOGIC; : out STD_ LOGIC_ VECTOR (2 downto 0)); end counter; architecture Behavioral of counter is signal q_reg : STD_LOGIC_VECTOR (2 downto 0); begin process (clk,rst) begin if (rst= then q_reg <= (others=> 0 ); elsif (clk event and clk= ) then max<= 0 ; q_reg <= q_reg + ; if q_reg= then max<= ; end if; end if; end process;

Synchronní 3-bitový čítač s KO D, asyn. RST a výstupem MAX Koncepční schéma nežádoucí výstupní registr

Synchronní 3-bitový čítač s KO D, asyn. RST a výstupem MAX V případě nutnosti synchronizace výstupu max koncepční schéma nebo

Synchronní 3-bitový čítač s KO D, asyn. RST a výstupem MAX entity counter is Port ( clk,rst : in STD_LOGIC; max : out STD_LOGIC; : out STD_LOGIC_VECTOR (2 downto 0)); end counter; architecture Behavioral of counter is signal d_int,q_reg : STD_LOGIC_VECTOR (2 downto 0); signal max_int : std_logic; begin -- oddelena pametova cast process (clk,rst) begin if (rst= ) then q_reg <= (others=> 0 ); max <= 0 ; elsif (clk event and clk= ) then q_reg <= d_int; max <= max_int; -- max je nyni synchronni (bez moznych hazardu) end if; end process; -- oddelena kombinanci cast d_ int <= q_ reg + ; max_int <= when d_int= else 0 ; -- detekce maxima <= q_reg; end Behavioral;

Univerzální synchronní 3-bitový čítač s nastavitelnými operacemi Vlastnosti: ) Výstup max oznamuje (max=), že na výstupu je maximum () 2) Vstup D a load slouží k nastavení čítače 3) Čítač umožňuje asynchronní i synchronní reset 4) Signál dir slouží k řízení směru čítaní dir= (inkrementace), dir=0 (dekrementace) 5) Všechny vstupní signály vlevo jsou synchronní clk syn_rst load en dir operace - - - "000" syn. reset 0 - - D přednastavení (=D) 0 0 0 - pauza (=) 0 0 + inkrementace 0 0 0 - dekrementace

Synchronní 3-bitový čítač s nastavitelnými operacemi (Entita definovana podle obrázku) architecture Behavioral of counter is signal d_int,q_reg : STD_LOGIC_VECTOR (2 downto 0); signal max_int : std_logic; begin -- oddelena pametova cast process (clk,rst) begin if (rst='') then q_reg <= (others=>'0'); max <= '0'; elsif (clk'event and clk='') then end if; end process; q_reg <= d_int; max <= max_int; -- max je nyni synchronni (bez moznych hazardu) -- oddelena kombinanci cast d_int <= "000" when syn_rst='' else -- synchr. reset D when load='' else -- prednastaveni q_reg when en='0' else -- pauza q_reg + when dir='' else -- inkrementace q_reg ; -- dekrementace max _ int <= '' when d_ int="" else '0'; -- detekce maxima a <= q_reg; end Behavioral;

Synchronní 3-bitový čítač s nastavitelnými operacemi konc. schéma

Stavové automaty Představují nejobecnější číslicové systémy Zahrnují jak kombinační, tak i sekvenční bloky Popis složitějších stavových automatů zvyšuje riziko výskytu chyb Čítače a posuvný registr jsou příklady stavových automatů. Stavový automat obsahuje paměť, která udržuje předcházejícíř dhá jíístav k určeníč následujícího áldjííh stavu Mealyho stavový automat Moorůvů stavový automat

Stavové automaty Blokové schéma Moorova stavového automatu Výstupy jsou přímo vyvedeny z paměťové části a jsou synchronní Výstupní dekodér není povinný.........

Stavové automaty Blokové schéma Moorova stavového automatu Výstupy jsou přímo vyvedeny z paměťové části a jsou synchronní Výstupní dekodér není povinný N Komb. logika (následující stav) buzení Paměťová část současný stav Výstupní logika výstupy F G clk

Stavové automaty symbolické značení podmínka 5 podmínka 6 st0 00 výstup=0 výstup2=0 podmínka 7 podmínka st 0 výstup=0 výstup2=0 přechod proběhne při náběžné hraně hod. signálu clk a zároveň musí být splněna podmínka 5 nebo podmínka 6 přechod proběhne pouze při náběžné hraně hod. signálu clk st2 0 výstup=0 výstup2= podmínka 3 && podmínka 4 Programovatelné logické obvody podmínka 2 přechod proběhne při náběžné hraně hod. signálu clk a zároveň musí být splněna podmínka 2 přechod proběhne při náběžné hraně hod. signálu clk a zároveň musí být splněna podmínka 3 a podmínka 4

Synchronní 3-bitový čítač skod Vlastnosti: ) Čítač inkrementuje svůj výstup o 2) Změna výstupu nastává vždy při změně náběžné hrany hodinového signálu

Příklad: synchronní 3-bitový čítač s KO D Obecné blokové schéma ještě nevíme o obvodu potřebné informace

Synchronní 3-bitový čítač s KO D Stavový diagram

Synchronní 3-bitový čítač entity counter is Port ( clk : in STD_LOGIC; : out STD_LOGIC_VECTOR(2 downto 0)); end counter; architecture Behavioral of counter is type state_type is (s0,s,s2,s3,s4,s5,s6,s7); -- definice typu a vsech stavu signal next_state, present_state : state_type; -- vnitrni signaly typu state begin -- pametova cast process(clk) begin if rising_edge(clk) then present_state <= next_state; end if; end process; -- kombinacni cast F process(present_state) begin case present_state is when s0 => next_state<=s; <="000"; when s => next_state<=s2; <="00"; when s2 => next_ state<=s3; <="00"; when s3 => next_state<=s4; <="0"; when s4 => next_state<=s5; <="00"; when s5 => next_state<=s6; <="0"; when s6 => next_state<=s7; <="0"; end case; end process; end Behavioral; when s7 => next_state<=s0; <="";

Příklad: synchronní 3-bitový čítač s KO D Podrobnější blokové schéma nyní víme, že paměťová část bude složena ze 3 klop. obvodů D a blok G není vůbec potřeba!!!!!

Synchronní 3-bitový čítač s KO D Synchronní 3-bitový čítač s KO D Návrh bloku F vytvoříme pravdivostní tabulku (3 vstupy) S č ý t Následující stav 0 2 0 2 2 D Neminimalizované funkce stav Současný stav Následující stav (buzení) 2 0 D2 D D0 s0 0 0 0 0 0 0 2 0 2 0 2 0 2 2 D + + + + = 0 2 0 2 D + + = s0 0 0 0 0 0 s 0 0 0 0 s2 0 0 0 0 2 0 2 0 D + + = 0 2 0 2 0 2 0 2 D + + + + = s3 0 0 0 s4 0 0 0 s5 0 0 0 2 0 2 + + s5 0 0 s6 0 s7 0 0 0

Synchronní 3-bitový čítač s KO D Konečné schéma komb. logika F paměťová část 0 0 D0 D 0 2 2 CLK & & & D D výstupy & CLK & & D2 D 2 & CLK clk

Detektor posloupnosti 0 na sériové lince

Detektor posloupnosti 0 na sériové lince Blokové schéma data Komb. logika (následující stav) buzení Paměťová část současný stav Výstupní logika detection F G N clk

Detektor posloupnosti 0 na sériové lince Stavový diagram

Detektor posloupnosti 0 na sériové lince Podrobnější blokové schéma nyní víme, že paměťová část bude složena ze 2 klop. obvodů D!!!!!

Detektor posloupnosti 0 na sériové lince Návrh bloku F vytvoříme pravdivostní tabulku (3 vstupy) Vstupy Výstupy Současný stav Současný stav Následující stav (buzení) Následující stav data 0 D D0 st0 0 0 0 0 0 st0 st0 0 0 0 st st 0 0 st st 0 0 0 st2 st2 0 0 0 0 st0 st2 0 st3 st3 0 0 st2 st3 0 st

Detektor posloupnosti 0 na sériové lince Návrh bloku F vyjádření logických funkcí z pravdivostní tabulky D= data 0+ data 0= = data 0data 0 D0 = data

Detektor posloupnosti 0 na sériové lince Podrobnější schéma s paměťovou částí a navrženým blokem F komb. logika následující stav F buzení paměťová část současný stav výstupní logika G data D0 D 0 data data Výstupní logika 0 0 CLK & G & D D & detection CLK clk

Detektor posloupnosti 0 na sériové lince Návrh bloku F vytvoříme pravdivostní tabulku (2 vstupy) Současný stav Vstupy Výstupy Současný č stav 0 detection st0 0 0 0 st 0 0 st2 0 0 st3 detection = 0

Detektor posloupnosti 0 na sériové lince Konečné schéma

Detektor posloupnosti 0 na sériové lince VHDL popis entity detektor is Port ( clk,rst : in STD_LOGIC; data : in STD_LOGIC; detection : out STD_LOGIC); end detektor; architecture Behavioral of detektor is type state is (st0,st,st2,st3); -- definice vlastniho typu state signal present_state,next_state state,next state : state; -- deklarece signalu typu state Begin -- pametova cast process (clk,rst) begin if (rst='') then -- asynchronni reset present_state <= st0; elsif rising_edge(clk) then present_state <= next_state; -- prechod mezi stavy pri nabezne hrane clk end if; end process; -- kombinacni cast F process (present_state,data) begin case present_state is when st0 => if (data='0') then next_state <= st0; else next_state <= st; -- prisla prvni end if; -- pokracovani na nasledujicim snimku

Detektor posloupnosti 0 na sériové lince VHDL popis end case; end process; when st => if (data='0') then next_state <= st2; -- prisla 0 else next_state <= st; end if; when st2 => if (data='0') then next_state <= st0; else next_state <= st3; -- prisla druha end if; when st3 => if (data='0') then next_state <= st2; else next_state <= st; end if; -- kombinacni cast G detection <= '' when present _ state=st3 else '0'; -- vystup prejde do ve stavu st3 end Behavioral;