136
•• EOUATIONS ••
DO : INPUT;
Dl : INPUT;
D2 : INPUT;
03 : INPUT;
— Equation name is location is LC118, type is outpuc.
a - LCELL( _EQ001 5 GND) ;
— Node name is 'b'
— Eąuation name is 'b*, location is LC117, type is output.
b - LCELL( _EQ002 $ GND);
— Node name is *g*
— Eąuation name is 'g*, location is LC115, type is output.
g - LCELL( _EQ003 S GND) ;
Jak widać, w pierwszej części raportu są podane takie informacje, jak liczba wejść i wyjść, a także liczba zajętych makrokomórck (LCs) oraz procentowa zajętość zasobów całego modułu FPLD. W dalszej części podane są inne informacje, m. in. sposób przyporządkowania sygnałów układu do wyprowadzeń zewnętrznych modułu (w podanym wyżej wydruku raportu opis wyprowadzeń jest pominięty) oraz wyrażenia boolowskie opisujące odwzorowaną sieć logiczną projektowanego układu (••EQUAT10NS**).
Instrukcje IF oraz CASE
Instrukcja warunkowa IF i wyboru CASE pozwalają definiować różne zachowania układu w zależności od warunków logicznych, których argumentami są wejścia. W przykładach podanych dalej pokazano sposób wykorzy stania tych instrukcji.
5.2. Języ k AUDI.
137
Przykład 5.14
SUBDESIGN priority
Iow, middle, high : INPUT;
highest_level|1..0) : OUTPUT;
IF high THEN
highest_level[) - 3; ELSIF middle THEN
highest_levelU - 2; ELSIF Iow THEN
highest_level[] ■ 1;
BLSE
highest_levelU ■ 0; END IF;
Wagę sygnałów low, middle, high określa kolejność, w jakiej umieszczone są w instrukcji IF. W powyższym wyrażeniu wartość priorytetu highest_level przyjmie wartość 3. jeśli tylko sygnał high przyjmie wartość I, niezależnie od wartości innych . sygnałów wejściowych.
W kolejnym przykładzie jest przedstawiony sposób tworzenia dekodera kodu l I z n z użyciem instrukcji CASE. Dekoder przekształca wektory dwubilowe w wektory r czterobitowe, które zawierają tylko jedną jedynkę „I".
Przykład 5.15
SUBDESIGN decoder
codę(1..0) out(3..0]
CASE codęI) IS WHEN 0 «> WHEN 1 -> WHEN 2 ->
out U - B-0001-out(] - B-0010" OUtU • B“0100“ outU - B-1000"
END;