Laboratorium przedmiotu Technika Cyfrowa

Podobne dokumenty
Laboratorium Podstaw Techniki Cyfrowej

Automat skończony FSM Finite State Machine

Sławomir Kulesza. Projektowanie automatów synchronicznych

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

Wygląd okna aplikacji Project Navigator.

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

Synteza strukturalna automatów Moore'a i Mealy

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

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

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

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie LABORATORIUM Teoria Automatów. Grupa ćwiczeniowa: Poniedziałek 8.

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Podstawy Automatyki. Wykład 13 - Wprowadzenie do układów sekwencyjnych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

PoniŜej zamieszczone są rysunki przedstawiane na wykładach z przedmiotu Peryferia Komputerowe. ELEKTRONICZNE UKŁADY CYFROWE

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

LICZNIKI Liczniki scalone serii 749x

Synteza strukturalna automatu Moore'a i Mealy

Programowalne układy logiczne

Układy asynchroniczne

Podstawy Techniki Cyfrowej Teoria automatów

dwójkę liczącą Licznikiem Podział liczników:

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Wstęp. Przygotowanie teoretyczne

Asynchroniczne statyczne układy sekwencyjne

Podstawy Automatyki. Człowiek- najlepsza inwestycja. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

Układy sekwencyjne. 1. Czas trwania: 6h

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

Układy sekwencyjne - wiadomości podstawowe - wykład 4

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Układy asynchroniczne

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

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

UKŁADY CYFROWE. Układ kombinacyjny

Bezpieczeństwo informacji oparte o kryptografię kwantową

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Sterowniki Programowalne (SP)

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

ID1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki stacjonarne

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

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

Projektowania Układów Elektronicznych CAD Laboratorium

Implementacja algorytmu szyfrującego

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

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne

Układy kombinacyjne - przypomnienie

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Układy sekwencyjne przerzutniki 2/18. Przerzutnikiem nazywamy elementarny układ sekwencyjny, wyposaŝony w n wejść informacyjnych (x 1.

IZ1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki niestacjonarne

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

W przypadku spostrzeżenia błędu proszę o przesłanie informacji na adres

UKŁADY MIKROPROGRAMOWALNE

INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ ZAKŁAD SZTUCZNEJ INTELIGENCJI I AUTOMATÓW

Automatyzacja i robotyzacja procesów produkcyjnych

Język opisu sprzętu VHDL

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela

Ćwiczenie MMLogic 002 Układy sekwencyjne cz. 2

Systemy liczenia. 333= 3*100+3*10+3*1

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

PROGRAMOWALNE STEROWNIKI LOGICZNE

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000

Elektroniczny sejf hotelowy

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Elektronika i techniki mikroprocesorowe

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

zmiana stanu pamięci następuje bezpośrednio (w dowolnej chwili czasu) pod wpływem zmiany stanu wejść,

LEKCJA. TEMAT: Funktory logiczne.

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

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 212

Układy cyfrowe (logiczne)

EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć

ćwiczenie 203 Temat: Układy sekwencyjne 1. Cel ćwiczenia

(przykład uogólniony)

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

Projektowanie automatów z użyciem VHDL

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO

Cyfrowe układy scalone c.d. funkcje

Liczniki, rejestry lab. 07 Układy sekwencyjne cz. 1

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Teoria układów logicznych

Transkrypt:

Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w języku VERILOG implementuje się najczęściej za pomocą instrukcji sterującej case. Przykładowa implementacja takiej maszyny została pokazana w listingu 1: listing 1

Analizując kod widać, Ŝe blok always wykonywany jest przy zmianie kaŝdej ze zmiennych wejściowych (x1, x2), przy zmianie stanu oraz zmianie sygnału reset, czyli w pełni asynchronicznie. Nie ma tutaj Ŝadnego zegara. Jeśli sygnał reset zostanie ustawiony w stan wysoki zerowany jest obiekt state informujący o stanie, w którym się maszyna znajduje, tzn. maszyna stanu jest ustawiana w stan s0 (zakodowany jako 2 b00). Jeśli natomiast sygnał reset przyjmuje wartość zero, wykonywany jest blok case (o ile nastąpi zmiana x1, x2 lub state). Zakładając, Ŝe maszyna znajduje się w stanie początkowym (s0), o ile wejścia nie zostaną ustawione na x1=1, x2=0, maszyna pozostaje w stanie s0. Jeśli natomiast wejścia zostaną ustawione na x1=1,x2=0, to maszyna przechodzi do stanu s1. Podobną analizę moŝna przeprowadzić dla kaŝdego kolejnego stanu. Wgłębiając się w kod moŝna równieŝ zauwaŝyć, iŝ wyjścia maszyny ustawiane są w konkretnym stanie i nie zaleŝą bezpośrednio od wejść, lecz tylko od stanu. Jest to automat sekwencyjny Moore a. Automat Mealy ego róŝni się nieznacznie w kodzie języka VERILOG od automatu Moore a. Wystarczy usunąć fragmenty kodu ustawiające wyjścia z bloku instrukcji case i wprowadzić poza blokiem always przypisania ciągłe ustawiające wyjścia w zaleŝności od stanu i wejść. NaleŜy pamiętać równieŝ o zmianie typu obiektów wyjściowych na wire. Zmodyfikowany kod przedstawiony został na kolejnym listingu 2. Synchroniczne automaty sekwencyjne implementuje się w sposób bardzo podobny. W automacie Moore a wystarczy właściwie zmienić tylko listę wraŝliwości tak, aby ciało bloku always było wykonywane przy narastającym zboczu sygnału reset i narastającym zboczu sygnału zegarowego (w zaleŝności od wymagań moŝe być równieŝ zbocze opadające jak i obydwa). Przykładową implementację takiej maszyny pokazuje kolejny listing 3. W przypadku synchronicznego automatu Mealy ego stany ustalane są synchronicznie, natomiast wyjścia zaleŝą od synchronicznego stanu i wejść, które mogą być synchroniczne lub asynchroniczne. W przypadku wejść synchronicznych (względem tego samego zegara, co zegar automatu) automat Mealy ego zachowuje się dokładnie tak jak automat Moore a, natomiast powstaje problem przy wejściach asynchronicznych względem zegara maszyny. Mogą wystąpić wtedy przekłamania na wyjściu. W przypadku, gdy się nie moŝna na nie zgodzić naleŝy albo dokonać synchronizacji (wprowadzić synchroniczne przerzutniki typu D na wszystkie wejścia) albo teŝ zrezygnować z automatu Mealy ego i przejść na automat Moore a. W listingu 4 podano przykład synchronicznego automatu Mealy ego.

listing 2

listing 3

listing 4 2. Sposób kodowania stanów: Jedną z najwaŝniejszych rzeczy przy projektowaniu automatu synchronicznego jest wybór kodowania stanów. Kilka z nich przedstawione zostało poniŝej: kodowanie binarne (sekwencyjne), kodowanie One-Hot (gorąca jedynka), kodowanie Gray a, kodowanie Johnson a. Na optymalny wybór kodowania składa się nie tylko wielkość logiki potrzebnej na implementację automatu, lecz rownieŝ szybkość jego wykonywania przy implementacji sprzętowej. Znajdując optymalne kodowanie stanów stosując np. kodowanie sekwencyjne moŝe się okazać przy drobnej modyfikacji automatu, iŝ wybrane kodowanie nie jest juŝ optymalne i trzeba szukać ponownie. O wiele lepszym rozwiązaniem jest stosowanie kodowania typu One-Hot. Polega ono na zakodowaniu stanów w taki sposób, Ŝe dla kaŝdego stanu tylko jeden bit w słowie kodującym jest w stanie wysokim. Ilustruje to następujący przykład: Obecne narzędzia syntezujące kod VERILOG posiadają moŝliwość przekodowania maszyny stanów. Tak jest np. w narzędziu XST (Xilinx Synthesis Technology), które bądź zoptymalizuje kodowanie uŝytkownika, bądź teŝ dokona zmiany kodowania na inne. Wyboru sposobu kodowania moŝna dokonać równieŝ ręcznie. Trzeba do tego celu przed nazwą obiektu, w którym będzie zapisywany aktualny stan wstawić ciąg znakow: (* FSM_ENCODING="<typ kodowania>" *). Pole <typ kodowania> moŝe przyjąć następujące wartości: AUTO ONE-HOT GRAY COMPACT JOHNSON

SEQUENTIAL USER 3. Bezpieczna implementacja maszyny stanu: Przy projektowaniu maszyn stanu zwykle istnieją dwa przeciwstawne sobie cele. Pierwszym z nich jest uzyskanie maszyny stanu, która po otrzymaniu nieoczekiwanej sekwencji wejściowej potrafi przejść do pewnego znanego bezpiecznego stanu. Implementacja ta jest zwykle dość wolna i wymaga kodowania binarnego, co kłóci się czasem z innym celem, a mianowicie z uzyskaniem szybkiej implementacji maszyny stanu. Dlatego teŝ rezygnuje się w niektórych sytuacjach z takiej implementacji na koszt prędkości. Stosując do syntezy modułów VERILOGa XST moŝna wybrać sposób syntezy wybranej maszyny. Podobnie jak przy wyborze kodowania stanów maszyny naleŝy przed zmienną stanu podać ciąg znaków: (* SAFE_IMPLEMENTATION="YES", SAFE_RECOVERY_STATE="s0" *), gdzie s0 jest znanym stanem do ktorego maszyna przechodzi w przypadku nieznanej sekwencji wejściowej. 4. Przebieg ćwiczenia: Celem ćwiczenia jest zapoznanie studenta ze sposobem implementacji asynchronicznych i synchronicznych maszyn stanu w języku VERILOG, jak równieŝ ze szczegółami związanymi z ich syntezą. Przygotowanie do laboratorium: praktyczna znajomość sposobów projektowania układów kombinacyjnych; umiejętność optymalizacji funkcji logicznych; znajomość podstaw języka VERILOG; Przebieg ćwiczenia i sposób oceniania: sprawdzanie przygotowania do zajęć (max 1 pkt); zrealizowanie zadań postawionych przez prowadzącego (max 4 pkt); * podczas ćwiczenia kaŝda sekcja tworzy osobny protokół z przebiegu ćwiczenia Protokół: Protokół powinien zawierać: nazwiska osób wykonujących ćwiczenie; tytuł i numer ćwiczenia; poprawny numer grupy i sekcji; komentarze przedstawiające postęp w realizacji ćwiczenia oraz wszelkie niezbędne do zrealizowania ćwiczenia notatki;

5. Literatura: http://toolbox.xilinx.com/docsan/xilinx10/books/docs/qst/qst.pdf - ISE 10.1 Quick Start Tutorial http://direct.xilinx.com/direct/ise10_tutorials/ise10tut.pdf - ISE In-Depth Tutorial http://www.xilinx.com/support/documentation/boards_and_kits/ug334.pdf - Spartan-3A/3AN FPGA Starter Kit Board User Guide http://www.xilinx.com/support/documentation/boards_and_kits/s3astarter_schematic. pdf - Spartan-3A/3AN Starter Kit Board Schematic http://www.xilinx.com/support/documentation/user_guides/ug331.pdf - Spartan-3 Generation FPGA User Guide Opracowanie: Jan Staniek, Edycja: Mariusz Latos, 2011