Projektowanie automatów z użyciem VHDL

Podobne dokumenty
Projektowanie w VHDL

Instrukcje sekwencyjne

Układy reprogramowalne i SoC Język VHDL (część 4)

Modelowanie złożonych układów cyfrowych (1)

Programowalne układy logiczne

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1

Projektowanie hierarchiczne Mariusz Rawski

Systemy Czasu Rzeczywistego FPGA

PUCY Kolos 2: Reloaded

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Synteza logiczna. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

Systemy Czasu Rzeczywistego FPGA

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.

Specyfika projektowania Mariusz Rawski

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Synteza strukturalna

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości

Układy Cyfrowe laboratorium

Projektowanie hierarchiczne Mariusz Rawski

Programowalne układy logiczne

Technika Cyfrowa. Wprowadzenie do laboratorium komputerowego część II

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Systemy Czasu Rzeczywistego FPGA

VHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014

Programowalne układy logiczne

Projektowanie Scalonych Systemów Wbudowanych VERILOG

VHDL cz.1. Rafał Walkowiak IIn PP Wer

Elementy języka VHDL

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Programowalne układy logiczne

XC4000: LUT jako ROM Układy Cyfrowe i Systemy Wbudowane 2 Układy FPGA cz. 2 ROM32X1 VHDL inference example ROM 16x2b type

Projekt prostego procesora

Krótkie wprowadzenie do ModelSim i Quartus2

Metoda Newtona przyjmuje następujące założenia dla funkcji :

Automat skończony FSM Finite State Machine

Układy reprogramowalne i SoC Język VHDL (część 3)

Języki opisu sprzętu VHDL Mariusz Rawski

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN

Podstawy techniki cyfrowej zima 2015 Rafał Walkowiak

VHDL cz.1. Rafał Walkowiak IIn PP Wer

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL)

Sławomir Kulesza. Projektowanie automatów synchronicznych

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Podstawy techniki cyfrowej zima 2017 Rafał Walkowiak Synteza strukturalna wyższego poziomu

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2014 Katedra Elektroniki AGH 2

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Układy reprogramowalne i SoC Język VHDL (część 2)

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Programowanie Układów Logicznych kod kursu: ETD6203. VHDL, ISE WebPACK, Plan Ahead, Impact W

Sławomir Kulesza. Projektowanie automatów asynchronicznych

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Projektowanie Urządzeń Cyfrowych

Realizacja logiki kombinacyjnej Mariusz Rawski

DOKUMENTACJA PROJEKTU

1. Uruchomić Aldec Actve-HDL 9.2 (skrót na pulpicie). Program uruchamia się dosyć długo cierpliwości.

Kurs języka VHDL Very High (Speed Integrated Circuits) Description Language

Quartus. Rafał Walkowiak IIn PP Wer

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Kodery, dekodery, transkodery Synteza sprzętu przy pomocy VHDL

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

KURS Hexcalcul (2) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.

(przykład uogólniony)

Projektowanie systemów cyfrowych w językach opisu sprzętu. Studium Zaoczne IV rok kierunek Elektronika i Telekomunikacja. Wykład 2

CZ1. Optymalizacja funkcji przełączających

MMfpga01. MMfpga11. Instrukcja konfiguracji środowiska, przykładowy projekt oraz programowanie układu

Systemy Czasu Rzeczywistego FPGA

LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD

Proste układy sekwencyjne

Laboratorium przedmiotu Technika Cyfrowa

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Technika Cyfrowa 1 wykład 12: sekwencyjne układy przełączające

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Hexcalcul (1) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym

Układy reprogramowalne i SoC Implementacja w układach FPGA

Synteza strukturalna Mariusz Rawski

Układy reprogramowalne i SoC Język VHDL (część 5)

Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie. Technika Cyfrowa. Wprowadzenie do laboratorium komputerowego część II

Quartus. Rafał Walkowiak IIn PP Listopad 2017

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

VHDL. Behawioralny Strukturalny Czasowy. Poziom RTL

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie

Technika Cyfrowa 1 wykład 11: liczniki sekwencyjne układy przełączające

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...

Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska,

Inżynieria Układów Programowalnych

Programowalne układy logiczne

Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu

Sposoby projektowania systemów w cyfrowych

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Transkrypt:

Projektowanie automatów z użyciem VHDL struktura automatu i jego modelu w VHDL przerzutnik T jako automat przykłady automatów z wyjściami typu: Moore'a Mealy stanu kodowanie stanów automatu Wykorzystano przykłady z: The Low-Carb VHDL Tutorial 2004 by Bryan Mealy (08-27-2004) PUE-w05 1

Schemat blokowy automatu i jego model w VHDL PUE-w05 2

Szablon opisu architektury dowolnego automatu architecture szablon of nazwa_modelu is deklaracje sygnalow wewnetrznych proces stan opisuje czesc sekwencyjną (synchroniczną) stan: process (lista wrazliwosci clk,rst,nextstate) instrukcje VHDL dla przerzutnikow end process stan; proces komb definiuje część kombinatoryczną komb: process (lista wrazliwosci wszystkie wejścia) instrukcje VHDL opisujace część kombinacyjną end process komb; -- (opcjonalna instrukcja wyprowadzająca stan jako wyjście) end architecture szablon; PUE-w05 3

Przerzutnik T jako automat Moore'a FSM - Finite State Machine ; TOG_EN - Toggle Enable ; CLR - Clear; CLK - Clock ; ST0, ST1 - State 0, State 1 entity my_fsm1 is port ( TOG_EN : in std_logic; CLK,CLR : in std_logic; Z1 : out std_logic); end entity my_fsm1; PUE-w05 4

Przerzutnik T jako automat Moore'a architecture fsm1 of my_fsm1 is type state_type is (ST0,ST1); signal PS,NS : state_type; sync: process(clk,ns,clr) if (CLR = 1 ) then PS <= ST0; elsif (rising_edge(clk)) then PS <= NS; end if; end process sync_proc; --(proces kombinacyjny na następnym slajdzie) end architecture fsm1; PUE-w05 5

Przerzutnik T jako automat Moore'a comb: process(ps,tog_en) case PS is when ST0 => Z1 <= 0 ; if (TOG_EN = 1 ) then NS <= ST1; else NS <= ST0; end if; when ST1 => Z1 <= 1 ; if (TOG_EN = 1 ) then NS <= ST0; else NS <= ST1; end if; when others => Z1 <= 0 ; NS <= ST0; end case; end process comb; PUE-w05 6

Przerzutnik T jako automat Moore'a- uwagi Zadeklarowano typ wyliczeniowy state_type do reprezentowania stanów: PS - Present State, NS - Next State Proces sync opisuje asynchroniczne zerowanie i synchroniczne przejście do nowego stanu; proces comb obsługuje wyjście Z1 oraz oblicza stan NS Oba procesy są współbieżne; zmiana NS wymusza obliczenia procesu sync, ale w nie powoduje to natychmiastowej zmiany żadnego innego sygnału; przypisanie PS<=NS następuje dopiero gdy narasta sygnał clk; zmiana PS uruchamia proces comb w którym obliczany jest następny stan NS Klauzula when others w procesie comb obejmuje przypadki, które nie powinny się zdarzyć, (np. po awaryjnym zakłóceniu, zaniku zasilania itp.) Można wyprowadzić stan PS jako wyjście nie w comb ale przy pomocy współbieżnej z oboma procesami instrukcji, np.: with PS select Z1 <= 0 when ST0, 1 when ST1, 0 when others; PUE-w05 7

Automat z wyprowadzonym stanem Y i wyjściem Mealy Z2 entity my_fsm3 is port ( X : in std_logic; CLK : in std_logic; SET : in std_logic; Z2 : out std_logic; Y : out std_logic_vector(1 downto 0)); end entity my_fsm3; PUE-w05 8

Architektura automatu my_fsm3 (1) architecture fsm3 of my_fsm3 is type state_type is (ST0,ST1,ST2); signal PS,NS : state_type; sync: process(clk,ns,set) if (SET = 1 ) then PS <= ST2; elsif (rising_edge(clk)) then PS <= NS; end if; end process sync; -- (opis procesu comb na nastepnym slajdzie) with PS select Y <= 00 when ST0, 10 when ST1, 11 when ST2, 00 when others; end architecture fsm3; PUE-w05 9

Architektura automatu my_fsm3 (2) comb: process(ps,x) case PS is when ST0 => Z2 <= 0 ; if (X = 0 ) then NS <= ST0; else NS <= ST1; end if; when ST1 => Z2 <= 0 ; if (X = 0 ) then NS <= ST0; else NS <= ST2; end if; when ST2 => if (X = 0 ) then NS <= ST0; Z2 <= 0 ; else NS <= ST2; Z2 <= 1 ; end if; when others => NS <= ST0; Z2 <= 1 ; end case; end process comb; PUE-w05 10

Automat z trzema rodzajami wyjść (1) entity my_fsm4 is port ( X,CLK,RESET : in std_logic; Y : out std_logic_vector(1 downto 0); Z1,Z2 : out std_logic); end entity my_fsm4; PUE-w05 11

Automat z trzema rodzajami wyjść (2) architecture fsm4 of my_fsm4 is type state_type is (ST0,ST1,ST2,ST3); signal PS,NS : state_type; sync: process(clk,ns,reset) if (RESET = 1 ) then PS <= ST0; elsif (rising_edge(clk)) then PS <= NS; end if; end process sync; with PS select Y <= 00 when ST0, 01 when ST1, 10 when ST2, 11 when ST3, 00 when others; --(process comb na nastepnym slajdzie) end architecture fsm4; PUE-w05 12

Automat z trzema rodzajami wyjść (3) comb: process(ps,x) case PS is when ST0 => Z1 <= 1 ; if (X = 0 ) then NS <= ST2; Z2 <= 0 ; else NS <= ST1; Z2 <= 1 ; end if; when ST1 => Z1 <= 1 ; if (X = 0 ) then NS <= ST2; Z2 <= 0 ; else NS <= ST1; Z2 <= 1 ; end if; when ST2 => Z1 <= 0 ; if (X = 0 ) then NS <= ST3; Z2 <= 0 ; else NS <= ST2; Z2 <= 1 ; end if; when ST3 => Z1 <= 1 ; if (X = 0 ) then NS <= ST0; Z2 <= 0 ; else NS <= ST3; Z2 <= 1 ; end if; when others => Z1 <= 1 ; Z2 <= 0 ; NS <= ST0; end case; end process comb; PUE-w05 13

Kodowanie stanów automatu 1. Minimalna liczba przerzutników (np. kod NB) N FF log2 N ST 2. Kod 1 z N (tyle przerzutników ile stanów) N FF N ST Dlaczego 1 z N? prostsze funkcje wyjść dziś przerzutniki nie są kosztowne układy programowalne PLD mają przerzutniki blisko końcówek wyjściowych mniej logiki kombinacyjnej => szybsze działanie PUE-w05 14

Zmiana sposobu kodowania stanów -- full encoded approach entity my_fsm4 is port ( X,CLK,RESET : in std_logic; Y : out std_logic_vector(1 downto 0); Z1,Z2 : out std_logic); end entity my_fsm4; -- one-hot encoding approach entity my_fsm4 is port ( X,CLK,RESET : in std_logic; Y : out std_logic_vector(3 downto 0); Z1,Z2 : out std_logic); end my_fsm4; PUE-w05 15

Zmiana sposobu kodowania stanów architecture fsm4 of my_fsm4 is type state_type is (ST0,ST1,ST2,ST3); attribute ENUM_ENCODING: STRING; attribute ENUM_ENCODING of state_type: type is 1000 0100 0010 0001 ; signal PS,NS : state_type; -- (oba procesy bez zmian) -- full encoded approach -- one-hot encoded approach with PS select with PS select Y <= 00 when ST0, Y <= 1000 when ST0, 01 when ST1, 0100 when ST1, 10 when ST2, 0010 when ST2, 11 when ST3, 0001 when ST3, 00 when others; 1000 when others; end architecture fsm4; end architecture fsm4; PUE-w05 16