wykl mikrokontrolery DodatekB.pdf
(
267 KB
)
Pobierz
4
Wykład
Mikrokontrolery
i Mikrosystemy
Dodatek
B
Język ABEL opisu układów realizowalnych w
strukturach programowalnych
autor: dr inż. Zbigniew Czaja
Gdańsk 2005
Mikrokontrolery i Mikrosystemy – Dodatek B
2
Spis treści
1. Wstęp...............................................................................................................................3
2. Podstawowa struktura pliku źródłowego w języku ABEL..............................................3
3. Słowa kluczowe języka ABEL........................................................................................4
4. Liczby..............................................................................................................................5
5. Dyrektywy....................................................................................................................... 6
6. Zmienne zespołowe (SET) – wektory............................................................................. 6
6.1. Indeksowanie i dostęp do wektora (SET)...............................................................7
6.2. Operacje na wektorze............................................................................................. 7
7. Operatory.........................................................................................................................9
7.1. Operatory logiczne..................................................................................................9
7.2. Operatory arytmetyczne..........................................................................................9
7.3. Operatory relacji.....................................................................................................9
7.4. Operatory przypisania.............................................................................................10
7.5. Operatory priorytetu............................................................................................... 10
8. Opis logiki projektowanego układu.................................................................................11
8.1. Równania................................................................................................................11
8.2. Tablica prawdy.......................................................................................................11
8.3. Opis stanowy.......................................................................................................... 13
9. Rozszerzenie z kropką w deklaracji pinów.....................................................................15
10. Wektory testujące..........................................................................................................16
11. Deklaracje aktywności stanem niskim...........................................................................17
12. Przykłady wykorzystania języka ABEL........................................................................ 18
Mikrokontrolery i Mikrosystemy – Dodatek B
3
1. Wstęp
Podczas projektowania układu zazwyczaj wiemy, jakie są sygnały wejściowe do
przetwarzania w układzie oraz jakie sygnały wyjściowe powinny wystąpić na wyjściach
układu. W większości języków służących do opisu układów realizowalnych w strukturach
programowalnych wejścia i wyjścia są nazywane
portami
układu. W każdym języku opis
układu składa się z dwóch bloków: tzw.
bloku deklaracji
zawierającego przypisania
sygnałów, identyfikowanych nazwami, do odpowiednich portów oraz z
bloku opisu budowy
i działania
układu.
Język
ABEL
(
Advanced Boolean Expression Language
), to jeden z najstarszych języków
opisu układów implementowanych w strukturach programowalnych. Opracowany został przez
firmę DATA I/O. Opis układu w języku ABEL ma postać modułu tekstowego, lub modułów
połączonych w strukturę hierarchiczną. Język ABEL daje możliwość opisu zachowania
systemu na wiele sposobów, włączając równania logiczne, tablice prawdy i opis stanowy,
podobny w zapisie do warunków języka C. Kompilatory do języka ABEL dają możliwość
projektowania i programowania struktur PLD takich jak: SPLD, CPLD i FPGA.
2. Podstawowa struktura pliku źródłowego w języku ABEL
Plik źródłowy w języku ABEL składa się z następujących części:
nagłówek: załączone moduły, opcje i tytuł,
opis logiczny: równania, tablica prawdy, opis stanowy,
wektory testujące,
koniec.
Uwaga
: dla słów kluczowych języka ABEL wielkość liter nie jest istotna. Natomiast nazwy
nadane przez użytkownika i etykiety
są identyfikowane również po wielkości liter
(np.
input1 i Input1 są różnymi nazwami bądź etykietami).
W tabeli 1 pokazano listing opisu źródłowego w języku ABEL.
Tabela 2.1. Listing opisu źródłowego w języku ABEL
Komentarz
"Struktura pliku źródłowego
" w języku ABEL
Nagłówek
module
nazwa_modułu
title
'tytuł projektu'
deviceID
device
deviceType;
declarations
sygnały_we
pin
;
sygnały_wy
pin istype 'com'
;
nazwa =
.c.
;
nazwa = [nazwa1, nazwa2,..];
Opis logiczny układu
equations
równania, lub/i
truth_table
tablice wartości, przejść
lub/i
state_diagram
opis tekstowy grafu przejść
Wektory testowe
test_vectors
wartości sygnałów wejściowych ->
spodziewane odpowiedzi
Zakończenie opisu modułu
end
nazwa_modułu
Deklaracje sygnałów wejściowych i wyjściowych,
stałych zmiennych pomocniczych w postaci wektorów
Mikrokontrolery i Mikrosystemy – Dodatek B
4
Plik źródłowy musi zaczynać się
słowem kluczowym
module
, a kończyć słowem
end
.
W nagłówku opisu źródłowego występuje nazwa modułu po słowie kluczowym
module
.
Nazwa modułu określa również nazwę plików wyjściowych tworzonych przez
oprogramowanie przetwarzające systemu syntezy (kompilator, program optymalizacji,
symulator, fitter, itd.). Tytuł projektu wprowadzony po słowie
title
umożliwia łatwą
identyfikację plików związanych z danym projektem.
Kolejnym blokiem jest
blok deklaracji
, w którym deklarowane są nazwy (identyfikatory)
sygnałów wejściowych (
pin
) oraz wyjściowych (
pin istype 'typ_końcówki'
).
Można również wskazać (opcjonalnie) numery pinów wejściowych i wyjściowych układu
programowalnego, który zamierzamy zastosować (zadeklarowanego słowem
device
). W
tym bloku deklarowane są również nazwy sygnałów wewnętrznych, pomocnicze zmienne,
stałe itp.
Kolejnym blokiem jest
blok opisu logicznego
, w którym definiuje się właściwości
logiczne projektowanego układu. Możliwy jest opis działania układu za pomocą:
równań
, po słowie kluczowym
equations
, z operatorami logicznymi, ale także równań
z operatorami arytmetycznymi i operacjami relacji,
tablicy wartości funkcji
(dla układów kombinacyjnych) lub
tablicy przejść
(dla układów
sekwencyjnych) po słowie kluczowym
truth_table
,
tekstowego opisu
grafu przejść
po słowie kluczowym
state_diagram
Opcjonalnym blokiem w pliku źródłowym jest
blok wektorów testowych
przygotowanych w postaci tablicy, w której wpisuje się arbitralnie wybrane kombinacje
sygnałów wejściowych (wektory pobudzeń) i oczekiwane dla nich wartości sygnałów
wyjściowych (odpowiedzi na wyjściu układu). Wektory testowe są wykorzystywane przez
program symulacji funkcjonalnej (poprawności opisu logicznego) lub program symulacji
układu po jego implementacji w wybranej strukturze programowalnej, a więc już po
przygotowaniu wynikowego pliku konfiguracyjnego.
3. Słowa kluczowe języka ABEL
Module
: każdy plik źródłowy rozpoczyna się konstrukcją
module
a zaraz za nią występuje
nazwa modułu (identyfikator). Duże źródła składają się często z wielu modułów z
ich własnymi tytułami, równaniami, itd.
Title
: jest opcjonalny i może być używany do identyfikacji projektu. Tytuł musi być
umieszczony w pojedynczych cudzysłowach. Linia
Title
jest ignorowana przez
kompilator, ale jest bardzo przydatna przy tworzeniu dokumentacji.
String
: tekst jest łańcuchem znaków ASCII umieszczonym w pojedynczych cudzysłowach.
Strings są używane do wpisania nazw Tytułu(Title), Opcji(Options), oraz nazw
końcówek układu, węzłów i deklaracji atrybutów.
device
: ta deklaracja jest opcjonalna i stowarzysza identyfikator układu z konkretną
programowalną strukturą logiczną. Deklaracja
device
musi być zakończona
średnikiem. Np. MY_DECODER
device
'XC4003E';
comments
: komentarze mogą być umieszczane w dowolnym miejscu pliku. Rozpoczynają się
podwójnym cudzysłowem, a kończą końcem linii, lub podwójnym cudzysłowem, w
zależności od tego co będzie pierwsze.
pin
: deklaracja ta służy to poinformowania kompilatora, które nazwy użytkownika są
powiązane z końcówkami urządzenia. Zapis:
[!]pin_id pin [pin#] [istype 'attributes'];
Jedna deklaracja
pin
może opisywać więcej końcówek:
Mikrokontrolery i Mikrosystemy – Dodatek B
5
[!]pin_id , pin_id, pin_id pin [pin#, [pin#, [pin#]]] [istype 'attributes'];
Przykład 3.1:
IN1, IN2, A1 pin 2, 3, 4;
OUT1 pin 9 istype 'reg';
ENABLE pin;
!Chip_select pin 12 istype 'com';
!S0..!S6 pin istype 'com';
Nie jest konieczne do określenia końcówek układu. Numery końcówek mogą być
określone podczas kompilacji używając np. Xilinx CAD. Jest to bardzo dobra własność dająca
możliwość tworzenia projektów bardziej ogólnych i elastycznych.
Znak ! opisuje końcówkę jako aktywną stanem niskim (sygnał będzie negowany).
Atrybut
istype
jest powiązaniem dającym możliwość wybrania trybu pracy końcówki,
takich jak ‘com’ wyjście wówczas jest kombinacyjne, lub ‘reg’ tryb rejestrowy taktowany
zegarem. Ten atrybut jest tylko dla wyjścia.
node
: węzeł jest deklaracją wewnętrznego sygnału, który nie ma połączenia z końcówką
układu, ale ma taki sam format jak deklaracja
pin
. Np.:
tmp1
node [istype
'com'];
Inne deklaracje
:
pozwalają na definicje stałych, zmiennych makr i wyrażeń, które
mogą
uprościć program. Przykładowa deklaracja stałej ma postać: id [, id],... = expr [, expr];
Przykład 3.2:
A = 21;
C=2*7;
ADDR = [1,0,11];
LARGE = B & C;
D = [D3, D2, D1, D0];
D = [D3..D0];
Dwa ostatnie równania są sobie równoważne. Użycie „ .. ” jest bardzo przydatne do
określenia zakresu. Przedstawiają one zapis wektora, za każdym odwołaniem do D będzie to
równoznaczne odwołaniu do wektora [D3, D2, D1. D0].
4. Liczby
Liczby mogą być wprowadzane w czterech różnych systemach: binarnym, ósemkowym,
dziesiętnym i szesnastkowym. Systemem domyślnym jest dziesiętny. Istnieje możliwość
zmiany bazy domyślnej przy użyciu dyrektywy
Radix
Tabela 4.1. Systemy liczb w języku ABEL
Nazwa systemu Podstawa Symbol
Binarny
2
^b
Ósemkowy 8
^o
Dziesiętny 10
^d (domyślny)
Szesnastkowy 16
^h
Plik z chomika:
krzysio.s
Inne pliki z tego folderu:
Programowanie bitów Fuse.pdf
(3277 KB)
Bascom emulator procesorów.pdf
(1766 KB)
wykl_cz1 mikrokontrolery.pdf
(1554 KB)
wykl_cz2 mikrokontrolery.pdf
(1452 KB)
Programowanie M128.pdf
(743 KB)
Inne foldery tego chomika:
Badanie układów
Sterow. fazowe
Zgłoś jeśli
naruszono regulamin