Laboratorium elektroniki


Metody opisu układów kombinacyjnych



Pobieranie 248.7 Kb.
Strona6/6
Data29.04.2016
Rozmiar248.7 Kb.
1   2   3   4   5   6

4.3Metody opisu układów kombinacyjnych

Podstawowe konstrukcje języków specyfikacji typowe dla opisu układów kombinacyjnych to typowe w syntezie logicznej równania i tablice. Poszczególne języki stosują jednak wiele elementów składniowych upraszczających ich zapis lub przynajmniej zwiększających jego czytelność.

Pierwszy z tych elementów dotyczy deklarowania typu wyprowadzenia, do którego dołączany ma być sygnał wyjściowy, np. Y.CK lub Y.OE, gdzie Y jest nazwą wyprowadzenia zewnętrznego. Dzięki temu opis staje się bardziej uporządkowany, a poszczególne nazwy sygnałów stają się niejako uzależnione od sygnału głównego, reprezentującego nazwę wyprowadzenia zewnętrznego.

Drugim z elementów ułatwiającym specyfikację funkcji boolowskich są listowe operatory logiczne, umożliwiające skrócony zapis wyrażenia, np.:


[x1,x2,x3,x4]:op

oznacza x1 op x2 op x3 op, gdzie op jest symbolem operatora.


Inne formy upraszczania zapisu wyrażeń logicznych to np. operatory relacyjne czy tablice prawdy, w których zależności między wejściami a wyjściami układu reprezentowane są listą wartości sygnałów wejściowych z odpowiadającymi im jednoznacznie wartościami wyjściowymi .

4.4Metody opisu układów sekwencyjnych

Ze względu na możliwość implementacji w strukturach PLD bardzo złożonych układów sekwencyjnych, konieczne jest przygotowanie zwięzłej i czytelnej specyfikacji takiego układu.

Jedną z form opisu układu sekwencyjnego jest tzw. graf stanów, opisujący sposób, w jaki zmiany poszczególnych stanów układu uzależnione są od stanu bieżącego oraz aktualnych wartości sygnałów wejściowych. Na rys. 19 zaprezentowano fragment przykładowego grafu stanów dla układu posiadającego 3 wejścia: x1, x2, oraz x3:

Zaprezentowany na rysunku zapis można zinterpretować następująco:



  • przejście ze stanu S3 do stanu S2 odbywa się dla następujących wartości wektora wejściowego (x1 x2 x3): 110 oraz 111,

  • przejście ze stanu S3 do stanu S4 dla wektorów wejściowych 000, 001, 010 oraz 011,

  • przejście ze stanu S3 do stanu S6 dla wektora 100.


z innych stanów

Rys. 19. Fragment grafu stanów opisującego układ sekwencyjny

Warunkiem koniecznym poprawności specyfikacji układu sekwencyjnego przy pomocy grafów jest unikanie niejednoznaczności występujących wówczas, gdy dwa lub więcej wyrażeń wyprowadzonych z danego stanu przyjmuje wartość jedynki logicznej jednocześnie. Przykład takiej niejednoznaczności zaprezentowano na rys. 20.

Rys. 20. Przykład błędnej specyfikacji przejść w grafie stanów

Dla wektorów wejściowych (x1 x2 x3 x4) przyjmujących wartości 1011, 1101 oraz 1111 obydwa wyrażenia, reprezentujące przejścia ze stanu S1 do stanu S2 oraz ze stanu S1 do stanu S3 mają wartość logicznej jedynki. Zadaniem użytkownika jest kontrola poprawności specyfikacji przejść; w rozpatrywanym przypadku niejednoznaczność można zlikwidować zmieniając wyrażenie na .

Opisane powyżej niejednoznaczności nie są możliwe w innej popularnej formie reprezentacji układów sekwencyjnych - sieciach działań, zwanych także sieciami ASM (Algorithmic State Machines). W notacji tej stany wewnętrzne reprezentowane są prostokątami (tzw. klatkami operacyjnymi), zaś przejścia pomiędzy stanami - rombami (tzw. klatkami decyzyjnymi). Na rysunku 21 zaprezentowano sieć równoważną grafowi z rys. 20.





`

Rys. 21. Sieć ASM równoważna grafowi z rys.20.


Istotną cechą sieci ASM jest zwarta reprezentacja wektorów polegająca na tym, że każde przejście przez sekwencję klatek warunkowych reprezentuje wyrażenie boolowskie odpowiednich (nie wszystkich) zmiennych wejściowych. Ponieważ w typowych układach sterowania o przejściach między stanami decyduje niewielka (spośród wszystkich możliwych) liczba warunków, liczba klatek decyzyjnych w typowej strukturze ASM jest niewielka.

Kolejną zaletą opisywanej notacji jest fakt, iż można ją niemal bezpośrednio tłumaczyć na odpowiedni język specyfikacji układu PLD. Wynika to stąd, że składnia tych języków umożliwia zapis wyrażeń postaci IF, THEN, ELSE, wskazującymi każde przejście. I tak np. sieć z rys. 21 może być opisana następującymi wyrażeniami:


IF [x4+/x4*/x3*/x1] THEN S3

IF [/x4*x3*x1+/x4*/x3*x1*x2] THEN S2

IF [/x4*x3*/x1+/x4*/x3*x1*/x2] THEN S4

gdzie symbole / oraz * reprezentują odpowiednio negację oraz iloczyn logiczny. Dzięki instrukcji ELSE możliwe jest uproszczenie powyższego zapisu w następujący sposób:


IF [x4+/x4*/x3*/x1] THEN S3

IF [/x4*x3*x1+/x4*/x3*x1*x2] THEN S2

ELSE S4
Taka zasada definiowania przejść dla wszystkich pozostałych wartości sygnałów warunkowych jest realizowana bezpośrednio w układach PLS .

Sygnały wyjściowe kojarzone są z reguły ze stanami wewnętrznymi i zapisywane wewnątrz symbolu stanu (w opisie grafowym) lub wewnątrz klatek operacyjnych (w przypadku sieci ASM).


Przedstawione zasady specyfikacji układów kombinacyjnych i sekwencyjnych są typowe dla większości języków HDL. Kolejny rozdział instrukcji zawiera szczegółowy opis jednego z nich - języka PLDShell.

5System PLDShell - narzędzie programowania układów logicznych

Język PLDShell został zaprojektowany jako uniwersalne narzędzie do projektowania układów PLD firmy INTEL i ich odpowiedników. Podobnie jak inne programy kompilujące dla układów PLD, ma za zadanie przetworzenie tekstowego opisu logicznego funkcji w plik standardu JEDEC, który zawiera wszystkie informacje niezbędne do poprawnego zaprogramowania układu.


Tekstowy język opisu układów PLD pozwala na przedstawienie działania układu w języku wysokiego poziomu. Nie jest konieczna znajomość dokładnej struktury wewnętrznej układu PLD, a jedynie dopuszczalne funkcje wyprowadzeń i położenie istotnych węzłów wewnętrznych. Składnia i operatory języka PLDasm programu PLDSHELL są zbliżone do innych języków takich jak CUPL, ABEL, PALASM wykorzystywanych do opisu.
W programie napisanym w języku PLDasm można wyróżnić nagłówek oraz trzy zasadnicze części :
- deklaracyjną,

- opis działania układu

- wektory testowe.
Na nagłówek składają się podstawowe dane dotyczące wykonywanego projektu takie jak tytuł, ścieżka pliku, numer wersji, autor, firma, data.
Część deklaracyjna obejmuje :

- typ (nazwa z biblioteki programu) wykorzystywanego układu PLD, poprzedzone słowem kluczowym CHIP, np. CHIP PLD22V10

- deklarację numerów i nazw wyprowadzeń z układu : wejść i wyjść, każde poprzedzone słowem kluczowym PIN, np. PIN 1 WE1

- deklarację nazw wyrażeń, wraz z wyrażeniem używanym w projekcie, każde poprzedzone słowem kluczowym STRING, np. STRING NAZWA1 'WE1 * WE2'


Część opisująca działanie układu może mieć następujące postacie :

- równań logicznych ( rozpoczyna się słowem EQUATIONS ),

- tablic prawdy ( rozpoczyna się słowem T_TAB ),

- opisu automatów ( rozpoczyna się słowem STATE ).

Część zawierającą deklaracje wektorów testowych ( rozpoczynająca się słowem SIMULATION ) należy umieścić na końcu projektu.

Poniżej przedstawiony zostanie opis operatorów, słów kluczowych i rozszerzeń sygnałów używanych w programie PLDSHELL :

Operatory logiczne :

/ logiczne NOT , lub aktywny niskim sygnałem w deklaracji PIN

* logiczne AND

+ logiczne OR

:+: logiczne XOR

= wyjście kombinacyjne

*= wyjście zatrzaskowe

:= wyjście rejestrowe

>> przyporządkowanie w tabeli prawdy dla elementów kombinacyjnych

:>> przyporządkowanie w tabeli prawdy dla elementów sekwencyjnych


Rozszerzenia sygnałów :

.D Wejście D danych przerzutnika typu D

.J Wejście J danych przerzutnika typu JK (emulacja)

.K Wejście K danych przerzutnika typu JK (emulacja)

.R Wejście R danych przerzutnika typu RS (emulacja)

.S Wejście S danych przerzutnika typu RS (emulacja)

.T Wejście T danych przerzutnika typu T

.ACLK Zegar asynchroniczny (linia programowalna)

.ALE Asynchroniczny zatrzask zezwolenie (linia programowalna)

.LE Synchroniczny zatrzask zezwolenie.

.CLKF Wejście zegara (synchr.) lub równanie zegara (asynchr.)

.TRST Równanie zezwolenia wyjścia

.RSTF Równanie kasowania przerzutnika

.SETF Równanie ustawienia przerzutnika

.OUTF Wyjście równania automatu

.FB Sprzężenie zwrotne


Poniższe słowa kluczowe nie mogą być używane jako nazwy wyprowadzeń lub sygnałów. Są zarezerwowane przez język PLDasm .
BEGIN - blok wektorów testowych - początek pętli działania

BURIED - typ wyprowadzenia I/O : 2 wyprowadzenia sprzężeń

CHECK - blok wektorów testowych : sprawdzenie sygnałów z wyjść z oczekiwanymi

CHIP - blok deklaracji : nazwa układu PLD do kompilacji projektu

CLOCKF - blok wektorow testowych : wykonanie taktu zegarowego

CMBFK - typ wyprowadzenia I/O : sprzężenie z wyjścia kombinacyjnego makrokomórki

COMBINATORIAL - deklaracja wyprowadzenia I/O jako wyjście kombinacyjne makrokomórki

CONDITIONS - segment opisu równań wejść do przedstawienia przejść i wyjść

DEFAULT_BRANCH - stan następny niewyznaczony w opisie sekwencyjnym

DEFAULT_OUTPUT - deklaracja ustalonych stanów wyjść opisu sekwencyjnego nie wyznaczonych w opisie (symbol aktywnego stanu przed nazwą : / (niski), (wysoki ),%(dowolny) )

DO, ELSE, END - blok wektorów testowych - elementy pętli działania

EQUATIONS - segment opisu do przedstawienia równań logicznych wyjść

FOR - blok wektorów testowych - element pętli działania

HIGH - typ wyprowadzenia I/O aktywny stan wysoki

HOLD_STATE - następny stan jako bieżący

IF - blok wektorów testowych - element pętli działania

INPUT - typ wyprowadzenia I/O jako wejście

I/O - wyprowadzenie I/O (wejście/wyjście) układu

LATCHED - wyprowadzenie I/O jako wyjście zatrzaskowe

LOW - typ wyprowadzenia I/O aktywny stan niski

MEALY_MACHINE - segment opisu równań stanów typu Mealy’ego

MOORE_MACHINE - segment opisu równań stanów typu Moore’a

NEXT_STATE - następny stan przyjmowany jako wynikający z równań stanów

ON , OFF - blok deklaracji włączenie lub wyłączenie programowanego trybu pracy

OPTIONS - blok deklaracji - deklaracja trytbu pracy

OR - blok wektorów testowych - element pętli działania

OUTPUT - typ wyprowadzenia I/O jako wyjście

OUTPUT_HOLD- deklaracja ustalonych stanów wyjść niewyznaczonych w opisie sekwencyjnym

PIN - blok deklaracji : opis nazw wyprowadzeń wejść i wyjść

PINFBK - typ wyprowadzenia I/O - sprzężenie zwrotne z wyprowadzenia wyjścia

PRELOAD , PRLDF - blok wektorów testowych - stany początkowe wyjść

REGFBK - typ wyprowadzenia I/O - sprzężenie zwrotne z wyprowadzenia rejestru (tylko 22V10)

REGISTERED - typ wyprowadzenia I/O - jako wyjście sekwencyjne (rejestrowe)

SETF - blok wektorów testowych - ustawienia początkowe wejść

SIMULATION - początek bloku wektorów testowych

STATE - początek sekcji opius automatów typu Mealy’ego lub Moore’a

STRING - blok deklaracji - określenie łańcuchów znaków jako pojedynczxe wyrażenie

THEN , TO - blok wektorów testowych - element pętli działania

TRACE_ON , TRACE_OFF - blok symulacji włączenie, wyłączenie śledzenia wektorów testowych

T_TAB - opis tabicy działania

TURBO - blok deklaracji - trub pracy z normalnym/zmniejszonym (ON/OFF) poborem prądu

VCC - bezwarunkowe przejście do następnego stanu

VECTOR - blok wektorów testowych - definicja wektorów testowych

WHILE - blok wektorów testowych - element pętli działania


Szczegółowy opis języka jest zamieszczony w dodatkowej instrukcji (2 części) dostępnej u prowadzącego zajęcia.


6Zadanie projektowe do samodzielnego opracowania

6.1 Zadanie nr 1


Opracować projekt układu dekodera 7-segmentowego wg instrukcji do systemu PLDShell nr 1 str 52.

Zastosować chip iPLD22V10 ! zamiast 85C220.

6.2 Zadanie nr 2


Opracować projekt układu cyfrowego wg polecenia prowadzącego zajęcia

Zastosować dowolny chip INTEL'a o możliwie najmiejszej złożoności. W razie braku miejsca proszę brać układ kolejny - większy. Instrukcja do systemu PLDShell nr 1 i 2 zawiera przykłady różnych zadań i metod opisu zadania.




Zadanie 6.1 i 6.2 musi być zrealizowane w celu zaliczenia terminu zajęć.

Maksymalna ocena - dobry.
Forma sprawozdania (dla każdego zadania) :
A.wprowadzenie (1/2 strony) - opis zadania

B.właściwe sprawozdanie :

- listing pliku xxxx.pds (źródłowego) z komentarzami po polsku co w danej linii jest realizowane;

- listing pozostałych plików generowanych przez system łącznie z przebiegami symulacyjnymi;

C.wnioski - ocena prawidłowości realizacji zadania na podstawie porównania wydruku

przebiegów symulatora i założeń wstępnych projektu (opis wstępny działania układu).


Zadanie na podwyższenie oceny z zajęć do maksymalnej tzn. "bdb" :

6.3 Zadanie nr 3


Opracować projekt dowolnego układu sekwenyjnego wg własnych predyspozycji

Np.bankomat, automat do wydawania napojów, sterownik windy, sterownik

tokarki ,sterownik świateł ulicznych, sterownik oświetlenia, sterownik urządzeń

akwarium (z zegarem) itp.



Realizacja praktyczna układu (programowanie konkretnego układu PLD) odbywa się na kolejnym terminie zajęć laboratoryjnych.

7Angielski słownik oznaczeń i skrótów z zakresu specjalizowanych układów scalonych


AHDL (Altera Hardware Description Language) - Język opisu sprzętu firmy Altera


ASIC (Application Specific Integrated Circuits) - Specjalizowane układy scalone
ASM (Algorithmic State Machines) - Algorytmiczne układy sekwencyjne
CPLD (Complex PLD) - Złożone programowalne moduły logiczne
CUPL (Universal Compiler for Programmable Logic) -Uniwersalny kompilator dla

programowalnych układów logicznych
EPLD (Erasable PLD) - Kasowalne programowalne moduły logiczne
FPC (Fuse Programmable Controller) - Programowalny sterownik przepaleń
FPGA (Field Programmable Gate Array) - Programowane układy z matrycami bramek
FPLD (Field PLD) - Programowalne moduły logiczne wykonane w technologii polowej
GAL (Generic Array Logic) - Układy programowalne z możliwością rekonfiguracji

makrokomórek
HDL (Hardware Description Language) - Język opisu sprzętu
ISP (In – System Programmable) – możliwość programowania układu bezpośrednio w systemie
LCA (Logic Cell Array) - Reprogramowalne elektrycznie układy z matrycami bramek
MUX (Multiplexer Based FPGA) - Multiplekserowe struktury FPGA
PAL (Programmable Array Logic) - Układy z programowalną matrycą AND
PLA (Programmable Logic Array) -Układy z programowalnymi matrycami AND i OR
PLD (Programmable Logic Devices) - Programowalne moduły logiczne
PLPL (Programmable Logic Programming Language) - Język programowania

układów programowalnych
PLS (Programmable Logic Sequencer) - Programowalny układ sekwencyjny
TLU (Table Look Up) - Tablica zależności (komórka) układu FPGA


8Literatura





  1. CUPL - Universal Compiler For Programmable Logic. Logical Devices, Inc., Golden, Colorado 80401 USA, 1991.

  2. Kaliczyńska M., Macha A., Świątek R.: Projektowanie układów cyfrowych. Skrypt uczelniany nr 134, Wyższa Szkoła Inżynierska w Opolu, Opole 1989.

  3. Laboratorium automatyki przemysłowej (cz.II). Skrypt uczelniany nr 174 (pod redakcją Ryszarda Rojka), Wyższa Szkoła Inżynierska w Opolu, Opole 1995.

  4. Łuba T., Markowski M.A., Zbierzchowski B.: Komputerowe projektowanie układów cyfrowych w strukturach PLD. Wydawnictwa Komunikacji i Łączności, W-wa 1993.

  5. Łuba T., Zbierzchowski B.: Układy mikroprogramowane. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 1996.

  6. Łuba T., Jasiński K., Zbierzchowski B.: Specjalizowane układy cyfrowe w strukturach PLD i FPGA. Wydawnictwa Komunikacji i Łączności, Warszawa 1997.

  7. Majewski W.: Układy logiczne. Wydawnictwa Naukowo-Techniczne, Warszawa 1995.

  8. pLSI and ispLSI Data Book and Handbook. Lattice Semiconductor Corporation, Hilsboro, Oregon 97124 USA, 1992.

  9. Zbysiński P.: Układy PLD (cz. 2). Oprogramowanie - CUPL. Elektronika Praktyczna, 12/93.

  10. Zbysiński P.: Układy PLD (cz. 4). Symulator CSIM. Elektronika Praktyczna, 2/94.

[11] PAL Device Data Book and Design Guide. Advanced Micro Devices 1993

[12] Krzysztof Sacha.: Systemy techniki cyfrowej. Wydawnictwa Szkolne i Pedagogiczne, Warszawa 1988.

[13] Marian Molski .: Modułowe i mikroprogramowalne układy cyfrowe.

Wydawnictwa Komunikacji i Łączności, Warszawa 1986.

[14] Marian Gorzałczany.: Układy cyfrowe. Metody syntezy. Skrypt nr.302,

Politechnika Świętokrzyska, Kielce 1997.


Zalecane serwisy internetowe z tematyki PLD:

http://www.logicaldevices.com/cupl

http://www.atmel.com/atmel/products/prod247

http://www.logicaldevices.com/atmelcupl/

http://www.art.com/art/

http://www.atm.com.pl/~avt/ep

http://www.altera.com

http://www.amd.com

http://www.atmel.com







1   2   3   4   5   6


©absta.pl 2019
wyślij wiadomość

    Strona główna