background image

35

4. Komputerowe projektowanie uk³adów cyfrowych.

4.1. Uk³ady cyfrowe.

Projektowanie systemów cyfrowych mo¿e byæ oparte na standardowych,

uniwersalnych  elementach wielkiej skali integracji, uzupe³nionych elementami ma³ej i

œredniej skali integracji. System cyfrowy zbudowany z nich sk³ada siê z wielu odrêbnych

uk³adów, przez co czêsto realizowany projekt stawa³ siê bardzo drogi.

W tej sytuacji opracowano now¹   filozofiê projektowania systemów cyfrowych. Idea nowej

technologii polega na mo¿liwoœci realizacji ca³ego, nawet bardzo z³o¿onego systemu

cyfrowego w jednym, wyspecjalizowanym uk³adzie cyfrowym ASIC (Application Specific

Integrated Circuits). Najnowsze badania, konferencje, liczne wyk³ady wykazuj¹ , ¿e najbli¿sze

lata bêd¹   er¹   uk³adów programowalnych.

W niniejszym podrozdziale postaram siê przedstawiæ podzia³ tych uk³adów oraz krótko je

scharakteryzowaæ.

4.1.1. Klasyfikacja uk³adów ASIC.

Uk³ady specjalizowane ASIC – uk³ady produkowane na zamówienie klienta dziel¹   siê na:

Ø Uk³ady na zamówienie z pe³nym cyklem projektowania od podstaw (ang. full-

custom). Zamawiaj¹ cy nie uczestniczy w procesie wytwarzania, jego rola

ogranicza siê do przedstawienia za³o¿eñ projektowych. Zajmuj¹   siê tym

wyspecjalizowane przedsiêbiorstwa przy wykorzystaniu zaawansowanych i

drogich narzêdzi. Uk³ady te s¹   zwykle najszybsze i najwiêksze pod wzglêdem

z³o¿onoœci realizowanych funkcji. Ze wzglêdów ekonomicznych produkowane

s¹ w bardzo du¿ych seriach.

Ø Uk³ady z ograniczonym cyklem projektowania (ang. semi-custom).

Zamawiaj¹ cy osobiœcie bierze udzia³ w projektowaniu uk³adu, wykorzystuj¹ c

do tego prostsze i ³atwo dostêpne narzêdzia. Z tego powodu w uk³adach tych

zastosowano technologiê matryc makrokomórek lub bramek. Projektowanie

polega na sk³adaniu uk³adu z gotowych elementów takich jak: bramki,

przerzutniki, multipleksery, liczniki. Zaprojektowany uk³ad przesy³any jest do

producenta, który korzystaj¹ c z biblioteki masek wyró¿nionych elementów

wytwarza fizyczny uk³ad. W przypadku wytwarzania systemu cyfrowego z

background image

36

wykorzystaniem tych uk³adów  czas projektowania jest znacznie krótszy.

Uk³ady te ze wzglêdu na cechy struktury wewnêtrznej dzieli siê na: uk³ady

wykorzystuj¹ ce komórki standardowe (Standard Cells) oraz uk³ady na p³ytkach

wstêpnie przygotowanych, jak np. matryce bramek (Gate Arrays).

Ø Uk³ady programowane przez u¿ytkownika.

Projektant sam programuje uk³ad wykorzystuj¹ c dostarczone przez producenta

„prefabrykaty”. Uk³ady tego typu s¹   ³atwe w u¿ytkowaniu. W porównaniu z

wczeœniej opisanymi s¹ wolniejsze i mniej pojemne. Mimo to maj¹   istotne

zalety. Opracowanie i programowanie uk³adu trwa od kilku godzin do kilku

dni, a koszty ma³ych serii s¹   niewielkie. Poza tym istnieje bogate

oprogramowanie wspomagaj¹ ce proces projektowania, przez co staje siê ono

³atwiejsze i dostêpne dla szerokiego grona u¿ytkowników.

Uk³ady te ze wzglêdu na cechy struktury wewnêtrznej dzieli siê na:

programowalne uk³ady logiczne PLD (Programmable Logic Devices) oraz

uk³ady FPGA (Field Programmable  Gate Array).

Podzia³ uk³adów ASIC pokazany zosta³ na rysunku 1.1.

Rys. 4.1. Podzia³ uk³adów ASIC.

UK£ADY ASIC

UK£ADY

PROGRAMOWANE

PRZEZ U¯YTKOWNIKA

UK£ADY PROJEKTOWANE

PRZEZ U¯YTKOWNIKA

(SEMI-CUSTOM)

UK£ADY ZAMAWIANE

PRZEZ U¯YTKOWNIKA

(FULL-CUSTOM)

PLD

FPGA

GATE

ARRAY

STANDARD

CELL

background image

37

4.1.2. Struktury uk³adów PLD i FPGA.

Podstawowym elementem konstrukcyjnym programowalnych modu³ów logicznych

jest matryca tranzystorów (w zale¿noœci od technologii s¹   to tranzystory bipolarne TTL lub

typu MOS). W uk³adach PLD tranzystory te s¹   u³o¿one w formie dwóch matryc: matrycy

AND i matrycy OR (rys 4.2).

Rys. 4.2. Matryca tranzystorów.

Elektrody tranzystorów s¹   do³¹ czone: bramka do poziomych linii wejœciowych (I), Ÿród³o do

linii wyjœciowych (F), a tak¿e do poziomych lub pionowych linii doprowadzaj¹ cych napiêcie

zasilania. Po³¹ czenia odpowiednich linii z bramkami tranzystorów (tzw. punkty

programowania), s¹   zrealizowane w postaci cienkich tytanowo-wollframowych

bezpieczników. Umo¿liwiaj¹   one programowanie matryc prosta metod¹   przepalenia.

W uk³adach tych wystêpuj¹   tak¿e zespo³y elementów wyjœciowych: przerzutniki i trójstanowe

bufory wyjœciowe lub w bardziej rozbudowanych uk³adach multipleksery i bramki OR, zwane

makrokomórkami (ang. macrocell).

Rys. 4.3. Struktura prostych uk³adów programowalnych PLD.

background image

38

W bardziej z³o¿onych uk³adach PLD, tzw. CPLD (Complex PLD) zastosowano

programowaln¹   matrycê po³¹ czeñ (Progammable Interconnect Array) otoczon¹

makrokomórkami. W sk³ad takiej makrokomórki wchodz¹ : programowalne przerzutniki,

bramki OR, XOR, multipleksery oraz bufory trójstanowe (rys. 4.4).

Rys. 4.4. Struktura z³o¿onych uk³adów programowalnych CPLD.

Drugim typem struktury uk³adów programowanych przez u¿ytkownika s¹   uk³ady FPGA.

Typowa struktura tych uk³adów to prostok¹ tna macierz elementów logicznych, zwanych

komórkami, zwi¹ zanych ze sob¹   programowalnymi po³¹ czeniami (rys. 4.5).

Rys. 4.5. Architektura uk³adów FPGA.

4.1.3. Uk³ady EPLD firmy ALTERA.

Uk³ady EPLD (Erasable PLD) to uk³ady w pe³ni programowalne, tzn. kasowalne i

programowalne sygna³ami elektrycznymi. Jednym z producentów tych uk³adów jest firma

background image

39

ALTERA. Oferuje ona dziewiêæ rodzin uk³adów: CLASSIC+, MAX 5000, MAX 3000, MAX

7000, MAX 9000, FLEX 6000, FLEX 8000 i FLEX 10K i APEX 20K. Ró¿ni¹   siê struktur¹

wewnêtrzn¹ , pojemnoœci¹   i szybkoœci¹   dzia³ania. Wszystkie uk³ady poszczególnych rodzin s¹

wykonane w technologii CMOS. Dziêki temu uzyskano zmniejszony pobór mocy, wiêksz¹

niezawodnoϾ.

Niniejszy podrozdzia³ zawiera krótk¹   charakterystykê poszczególnych rodzin

uk³adów, g³ównie pod wzglêdem  architektury wewnêtrznej. Celowo wiêcej miejsca

poœwiêci³em dwóm ostatnim rodzinom, a to z uwagi na fakt, ¿e szyfrowanie i deszyfrowanie z

wykorzystaniem algorytmu Rijndael implementowany bêdzie w dwóch oddzielnych uk³adach

rodziny FLEX 10K, zaœ rodzina APEX 20K nale¿y do najnowszej technologii opracowanej

przez firmê ALTERA. Warto zatem przyjrzeæ siê nowym rozwi¹ zaniom konstrukcyjnym,

gdy¿ uk³ady te stan¹   siê najprawdopodobniej najbardziej popularne w ci¹ gu najbli¿szych

kilku lat i  mo¿na by³oby w przysz³oœci zaimplementowaæ szyfr Rijndael w jednym uk³adzie z

tej rodziny. Obecnie nie jest to jeszcze mo¿liwe ze wzglêdu na niedostêpnoœæ narzêdzia do

projektowania tych uk³adów o nazwie Quartus.

CLASSIC+ to rodzina uk³adów produkowana w technologii CMOS. Kasowanie i

programowanie odbywa siê poprzez nieulotne elementy konfiguracyjne oparte na pamiêciach

EPROM. Architektura tych uk³adów sk³ada siê z pojedynczych macierzy makrokomórek

po³¹ czonych globaln¹   szyn¹   danych jak na rys. 4.6.

Rys. 4.6. Globalna szyna po³¹ czeñ uk³adów serii CLASSIC+.

Uk³ady typu MAX 5000 (Multiple Array MatriX) realizowane s¹ w technologii

CMOS/EPROM. Makrokomórki tych uk³adów po³¹ czone s¹ w grupy zwane LAB (rys. 4.7).

background image

40

Rys. 4.7. Architektura uk³adów MAX 5000.

Matryce makrokomórek LAB s¹   po³¹ czone poprzez programowaln¹   matrycê po³¹ czeñ PIA

(rys. 4.8). Matryca ta realizuje po³¹ czenia dla sygna³ów wejœciowych oraz sygna³ów z wyjœæ

makrokomórek.

Rys. 4.8. Programowalna sieæ po³¹ czeñ uk³adów serii MAX 5000.

 Rodzina MAX 5000 zawiera od 1 do 12 bloków LAB.

Uk³ady MAX 7000 nale¿¹   do drugiej generacji uk³adów MAX. S¹   one produkowane

w technologii CMOS EEPROM. Uk³ady te dostarczaj¹   od 600 do 5000 bramek logicznych,

zawieraj¹   od 32 do 256 makrokomórek po³¹ czonych w grupy po szesnaœcie makrokomórek,

zwane blokami LAB. Po³¹ czenia pomiêdzy blokami oraz z elementami we/wy s¹

zrealizowane za pomoc¹   programowalnej szyny po³¹ czeñ  PIA, przedstawionej na rys. n.

Ka¿dy blok LAB ma swój blok we/wy za pomoc¹   którego wysy³a sygna³y na zewn¹ trz

uk³adu.

Rys. 4.9. Programowalna matryca po³¹ czeñ uk³adów serii MAX 7000.

background image

41

Uk³ady MAX 9000 nale¿¹   do najnowszych i najnowoczeœniejszych uk³adów trzeciej

generacji rodziny MAX. Produkowane s¹ w zaawansowanej technologii CMOS EPROM.

Zawieraj¹   od 6000 do 12000 bramek u¿ytkowych i od 320 do 560 makrokomórek. W

architekturze wewnêtrznej najwa¿niejsz¹   zmian¹   jest wprowadzenie nowej struktury po³¹ czeñ

wewnêtrznych,  zwanych Fast Track Interconnect (rys. 4.10).

Rys. 4.10. Szybkie po³¹ czenia typu „Fast Track Interconnent”.

Po³¹ czenia wewnêtrzne sk³adaj¹   siê z kolumn i wierszy magistral danych. Przechodz¹   one

wzd³u¿ i wszerz ca³ego uk³adu. Magistrale te ³¹ cz¹   poszczególne bloki LAB miêdzy sob¹   oraz

³¹ cz¹   bloki LAB z elementami we/wy. Nowa technologia ca³kowicie zmienia sposób

rozmieszczenia logiki w uk³adzie. W ten sposób rozwi¹ zano problem tzw. „w¹ skiego gard³a”

w procesie projektowania, poniewa¿ po³¹ czenia wewnêtrzne typu Fast Track dostarczaj¹

wystarczaj¹ co du¿o zasobów, aby sprawnie po³¹ czyæ wszystkie elementy LAB,

makrokomórki, elementy we/wy itp. Schemat blokowy uk³adów MAX 9000 przedstawiony

jest na rys. 4.11.

Rys. n. Schemat blokowy uk³adów MAX 9000.

background image

42

Zmianie uleg³a tak¿e struktura LAB i makrokomórki. Zmiana polega na tym, ¿e matryca

wejœciowa jest wspólna dla wszystkich makrokomórek w danym bloku LAB.

Cech¹   charakterystyczn¹   uk³adów serii FLEX 10K jest to, ¿e uk³ady te jako pierwsze

posiadaj¹   strukturê logiczn¹   z wbudowan¹   programowaln¹   logik¹   specjalnego przeznaczenia.

Dziêki tej technologii mo¿liwe jest implementowanie funkcji pamiêci ROM i RAM, a

wielkoœæ realizowanych projektów mo¿e przekraczaæ 250000 bramek logicznych.

Struktura wewnêtrzna uk³adów serii FLEX 10K sk³ada siê z bloków matryc wbudowanych,

bloku matryc logicznych oraz szybkich po³¹ czeñ typu Fast Track, co zosta³o pokazane na rys.

4.12.

Rys. 4.12. Schemat blokowy architektury FLEX 10K.

Wbudowana matryca (ang. embedded array) s³u¿y do emulowania pamiêci i

specjalizowanych funkcji logicznych o wielu wejœciach i wielu wyjœciach. Jest umieszczona

w blokach wbudowanych matryc EAB (ang. Embedded Array Block).

Ka¿dy EAB jest oddzielnym blokiem logicznym, który mo¿e pracowaæ niezale¿nie, lub mo¿e

byæ po³¹ czone z innymi w celu stworzenia wiêkszych struktur. Wejœcia do bloków EAB

pochodz¹   od wiersza po³¹ czeñ lokalnych, wyjœcia natomiast mog¹   byæ pod³¹ czone zarówno

do wiersza jak i do kolumny. Szybkie po³¹ czenia „Fast Track” pozwalaj¹   pod³¹ czyæ wejœcia i

wyjœcia EAB do zewnêtrznych wyjœæ uk³adu, do innego EAB lub do bloku LAB. Bloki EAB

mog¹   byæ u¿yte do:

Embedded

Array

Block

Embedded

Array

Block

IOE

IOE

IOE

IOE

IOE

IOE

IOE

IOE

IOE

IOE

Blok wbudowanych

matryc EAB

Elementy

wejœcia/wyjœcia

Element
logiczny

LE

Szybkie magistrale

wewnêtrzne

Blok matryc

logicznych

LAB

background image

43

Ø emulacji funkcji pamiêci o pojemnoœci 2048 bitów (2KB) w nastêpuj¹ cych

konfiguracjach: 256 x 8 bitów,  512 x 4 bity, 1024 x 2 bity lub pojedyncze

2048 bitów (oprócz uk³adów rodziny FLEX 10KE, dla których konfiguracja ta

przedstawia siê nastêpuj¹ co: 256 x 16 bitów,  512 x 8 bitów, 1024 x 4 bity,

2048 x 2 bity lub pojedyncze 4096 bitów). Ka¿da z tych konfiguracji ma czas

cyklu dostêpu ok. 20 ns.;

Ø implementacji funkcji pamiêci RAM. Ka¿dy EAB zawiera jeden port

adresowy, danych wejœciowych, danych wyjœciowych oraz port steruj¹ cy, które

s¹   po³¹ czone kolumnami i wierszami szybkich po³¹ czeñ jak na rys. 4.13.

Rys. 4.13 . EAB jako blok pamiêci RAM.

Ø implementacji funkcji pamiêci ROM. Do bloku EAB wpisywane s¹   bity

pamiêci wed³ug specyfikacji projektanta. EAB w tej konfiguracji dzia³a tak

samo jak przy konfiguracji jako RAM, z ta ró¿nica, ¿e port danych

wejœciowych nie jest u¿ywany, a bity kontrolne ustawione s¹   na „czytaj”;

Ø implementacji dzia³ania pamiêci jako stos „FIFO”. Blok EAB jest ³¹ czony z

dodatkowym uk³adem logicznym utworzonym w matrycy logicznej.

Ø realizacji specjalizowanych funkcji logicznych takich jak uk³ady mno¿¹ ce,

konwertery danych, procesory sygna³owe, uk³ady arytmetyczne.

Matryce logiczne (ang. Logic Array) s¹ wykorzystywane do tworzenia podstawowej logiki

uk³adu. Sk³adaj¹   siê z szeregu bloków matryc logicznych LAB. Ka¿dy blok LAB zawiera

osiem elementów logicznych LE i zwi¹ zane z nimi po³¹ czenia lokalne. Element logiczny

sk³ada siê z czterowejœciowej komórki LUT, z programowalnego przerzutnika oraz ze œcie¿ek

sygna³ów carry, cascade, tri-state. Ka¿dy blok LAB mo¿e byæ u¿yty do zaprogramowania

œredniej wielkoœci bloków logicznych.

background image

44

Wyjœcia poszczególnych matryc EAB i LAB s¹   po³¹ czone poprzez system szybkich magistral

wewnêtrznych biegn¹ cych poprzez ca³y uk³ad.

Uk³ady APEX 20K to najnowsze, a jednoczeœnie najnowoczeœniejsze uk³ady

programowalne firmy ALTERA. W obecnej chwili nale¿¹   równie¿ do najwiêkszych uk³adów

programowalnych produkowanych na œwiecie. Przewiduje siê, ¿e uk³ady te stan¹   siê bardzo

popularne i bêd¹   zastêpowa³y uk³ady „semi-custom”.

Struktura wewnêtrzna uk³adów tej rodziny posiada wiele cech wspólnych z architekturami

omawianych poprzednio rodzin. W sk³ad struktury tych uk³adów wchodz¹ MegaLAB-y

sk³adaj¹ ce siê z: 16-tu LAB-ów (Logic Array Bock), bloków pamiêci ESB (Embedded

System Block) oraz szybkich magistral wewnêtrznych w ka¿dym megalabie. Strukturê ogóln¹

uk³adów przedstawia rys. 4.14.

Rys. 4.14. Struktura wewnêtrzna uk³adów APEX 20K.

Struktura MegaLaba pokazana jest na rysunku 4.15.

IOE

LUT

przerzutniki

ESB

LUT

przerzutniki

ESB

LUT

przerzutniki

ESB

LUT

przerzutniki

ESB

LUT

przerzutniki

ESB

LUT

przerzutniki

ESB

LUT

przerzutniki

ESB

LUT

przerzutniki

ESB

IOE

IOE

IOE

IOE

IOE

IOE

IOE

IOE

IOE

IOE

IOE

MEGA LAB-y

Szybkie drogi ³¹czeniowe

background image

45

Rys. 4.15. Struktura MegaLAB.

Ka¿dy LAB zawiera 10 elementów LE (Logic Element), co daje w sumie 160 elementów LE

w MegaLAB. Logic Element stanowi podstawow¹   komórk¹   programowaln¹ . Jej strukturê

przedstawia rysunek  4.16.

Rys. 4.16. Struktura bloku LE.

background image

46

Ka¿dy blok LE posiada przerzutnik, który mo¿e byæ definiowany jako przerzutnik typu D, T,

JK lub RS. Istnieje mo¿liwoœæ pominiêcia zarówno przerzutnika jak i funkcji LUT. Komórki

takie mo¿na konfigurowaæ w trzech podstawowych trybach:

Ø

tryb normalny (Normal Mode);

Ø

tryb arytmetyczny (Arithmetic Mode);

Ø

tryb licznika (Coounter Mode).

Tryby pracy komórek przedstawia rysunek 4.17.

Rys. 4.17. Tryby pracy komórek logicznych.

Blok ESB (Embedded System Block) mo¿e implementowaæ ró¿ne typy bloków pamiêci:

Ø blok pamiêtaj¹ cy w konfiguracji: 128 x 16, 256 x 8, 512 x 4, 1024 x 2,

2048 x 1;

background image

47

Ø pamiêæ RAM;

Ø pamiêæ ROM;

Ø pamiêæ FIFO;

Ø pamiêæ kontekstowa (dla uk³adów APEX20KE).

Struktura dróg ³¹ czeniowych w uk³adach rodziny Apex 20K jest trójstopniowa (rys. 4.18) :

 

œcie¿ki ³¹ czeniowe wewn¹ trz LAB (Local Interconnect);

- œcie¿ki ³¹ czeniowe wewn¹ trz MegaLAB (MegaLAB Interconnect);

globalne œcie¿ki ³¹ czeniowe (Row Interconnect, Column Interconnect ).

Rys. 4.18. Struktura dróg ³¹ czeniowych uk³adów APEX 20K.

4.2. Zasady specyfikacji sprzêtu w systemach projektowania uk³adów

FPLD

Projektowanie uk³adów PLD dzieli siê na trzy etapy:

Ø wprowadzenie specyfikacji projektu;

Ø przetwarzanie wprowadzonego projektu;

Ø weryfikacja i programowanie opracowanych struktur.

W pierwszym etapie formu³owany jest opis dzia³ania projektowanego uk³adu za pomoc¹

schematu logicznego, opisu tekstowego lub wykresów czasowych.

Edytor graficzny (ang.Graphic Editor) s³u¿y do konstruowania schematów logicznych i

blokowych. Pozwala wykorzystywaæ do tego celu bibliotekê standardowych bloków

background image

48

funkcjonalnych TTL i makrofunkcji oraz stosowaæ globalne oznaczenia sygna³ów i linii

po³¹ czeniowych.

Edytor tekstowy (ang. Text Editor) umo¿liwia przygotowanie formalnego opisu uk³adu w

odpowiednim jêzyku specyfikacji sprzêtu, np. AHDL (Altera Hardware Description

Langguage), VHDL (Very High Speed Integrated Circuits Hardware Description Language).

Dodatkowym sposobem opisu dzia³ania projektowanego uk³adu jest w najnowszych

systemach opis behawioralny (okreœla zale¿noœci miêdzy sygna³ami wejœciowymi i

wyjœciowymi). Tê formê specyfikacji umo¿liwia edytor wykresów czasowych (ang.

Waveform Editor).

Tworzenie specyfikacji uk³adu u³atwia mo¿liwoœæ stosowania wielopoziomowej struktury

hierarchicznej i dowolnego ³¹ czenia dostêpnych œrodków opisu.

Drugi etap funkcjonowania systemu obejmuje weryfikacjê formaln¹   projektu i przetworzenie

danych (kompilacjê). Wynikiem jest szczegó³owa konstrukcja funkcjonalna i rozmieszczenie

jej elementów w wybranej strukturze uk³adu programowalnego. Proces kompilacji projektu

polega na optymalizacji jego struktury logicznej i dekompozycji na mniejsze czêœci tak, aby

mog³y one byæ rozmieszczone i odpowiednio po³¹ czone ze sob¹ w zadanej strukturze

programowalnej. Podczas kompilacji projektu tworzone s¹   dane dotycz¹ ce modelu fizycznego

funkcjonowania uk³adu programowalnego i mapy punktów po³¹ czeñ niezbêdnych do

symulacji uk³adu.

Trzeci etap to weryfikacja i programowanie. Ma ona na celu zbadanie poprawnoœci

opracowanej konstrukcji pod wzglêdem funkcjonalnym i zachowania siê w czasie. Taka

weryfikacja polega na przeprowadzeniu eksperymentów symulacyjnych, które s¹

formu³owane w jêzyku przebiegów czasowych (Waveform Editor). W trakcie dzia³ania

procedur symulacyjnych informacje podane na wejœcie uk³adu zostaj¹   przetworzone na

informacje pojawiaj¹ ce siê na wyjœciu uk³adu. W rezultacie otrzymuje siê opis dzia³ania

uk³adu wyra¿ony za pomoc¹ wykresów czasowych. Koñcowym etapem jest realizacja

projektu w uk³adzie programowalnym w procesie programowania.

Do projektowania  uk³adów firmy Altera (oprócz uk³adów rodziny Apex 20K) s³u¿y system

MAX+PLUS II wykorzystuj¹ cy jêzyk specyfikacji nazywany AHDL. Do projektowania

uk³adów rodziny Apex 20K s³u¿y system QUARTUS.

background image

49

4.3. Charakterystyka systemu MAX+PLUS II.

W podrozdziale tym krótko przedstawiê system MAX+PLUS II, w którym

realizowa³ bêdê projekt implementacji algorytmu blokowego Rijndael. S³u¿y do

projektowania uk³adów rodzin: CLASSIC, MAX 5000, MAX 3000, MAX 7000, MAX 9000,

FLEX 6000, FLEX 8000, FLEX 10K. W sk³ad systemu wchodzi 11 programów u¿ytkowych:

Ø

edytor tekstowy (ang. Text Editor) – s³u¿y do wprowadzania i redagowania

tekstowych zbiorów projektowych  AHDL z rozszerzeniem .tdf oraz VHDL z rozszerzeniem

.vhd w jêzyku VHDL. Edytor ten umo¿liwia równie¿ wprowadzanie i edytowanie dowolnych

zbiorów w formacie ASCII;

Ø

edytor graficzny (ang. Graphic Editor) – s³u¿y do tworzenia schematów logicznych.

Podstaw¹   do tworzenia schematów s¹   biblioteki funkcji elementarnych: prymitywów,

makrofunkcji, megafunkcji, biblioteki funkcji parametryzowanych LPM (ang. Library of

Parametrized Modules).

Ø

edytor przebiegów czasowych (ang. Waveform Editor) – s³u¿y do opisu projektu, a

przede wszystkim jako narzêdzie do wprowadzania wektorów testowych w postaci

przebiegów czasowych do obserwowania wyników symulacji. Pozwala tworzyæ zbiory

projektowe za pomoc¹   przebiegów czasowych (Waveform Design File) z rozszerzeniem .wdf

oraz zbiory symulacyjne (ang. Simulator Channel Files) z rozszerzeniem .scf.;

Ø

edytor symboli (ang. Symbol Editor) – s³u¿y do ogl¹ dania, tworzenia i edytowania

symboli, reprezentuj¹ cych uk³ady logiczne;

Ø

edytor planu zasobów (ang. Floorplan Editor) – s³u¿y do wprowadzania i modyfikacji

planu zasobów fizycznego uk³adu oraz do ogl¹ dania rezultatów syntezy topologicznej;

Ø

kompilator (ang. Compiler) – sk³ada siê z modu³ów i aplikacji, które sprawdzaj¹

projekt pod wzglêdem poprawnoœci formalnej i wykrywaj¹ w nim ewentualne b³êdy,

przeprowadzaj¹   syntezê logiczn¹ , przydzielaj¹   projekt do jednego lub wiêcej uk³adów i

generuj¹   modele do symulacji, analizy czasowej oraz fizycznego programowania uk³adów w

programatorze;

Ø

symulator (ang. Simulator) – podstawow¹   rol¹   symulatora jest testowanie funkcji i

zachowanie siê w czasie projektowanego uk³adu, umo¿liwia badanie funkcjonalnej

poprawnoœci projektu oraz sprawdzenie przebiegów czasowych w wybranych wêz³ach

projektu po jego kompilacji;

background image

50

Ø

analizator czasowy (ang. Timing Analyzer) – to narzêdzie s³u¿¹ ce do badania czasów

propagacji sygna³ów na drodze pomiêdzy wybranymi wêz³ami w projekcie oraz do okreœlenia

maksymalnych czêstotliwoœci dla sygna³ów zegarowych w projekcie.

Ø

programator (ang. Programmer) – s³u¿y do programowania uk³adów w systemie

MAX+PLUS II. Podstawowym sposobem programowania uk³adów w systemie MAX+PLUS

II jest programowanie z u¿yciem konwencjonalnego programatora. Programator sk³ada siê z

karty do komputera i g³ównego modu³u programuj¹ cego MPU (ang. Master Programming

Unit) wraz z zestawem adapterów, które dopasowuj¹   elektrycznie i funkcjonalnie modu³

MPU do obudów uk³adów programowalnych. Inn¹   metod¹   jest tzw. programowanie w

systemie (ang. ISP – In-System Programming). S³u¿y do tego celu szeregowy interfejs

programuj¹ cy Byte-Blaster, który ³¹ czy system z programowanym uk³adem za

poœrednictwem portu równoleg³ego komputera. Istot¹   tego sposobu jest programowanie

uk³adu w jego œrodowisku aplikacyjnym (np. na pakiecie w urz¹ dzeniu, którego jest on

integraln¹   czêœci¹ ), przy u¿yciu bardzo prostego sprzêtu ( w postaci interfejsu do

standardowego portu komputera PC). Zarówno programowanie konwencjonalne, jak te¿

programowanie w systemie odbywa siê za poœrednictwem modu³u Programatora. Programator

tworzy sekwencje elektrycznych sygna³ów programuj¹ cych fizyczne struktury na podstawie

zbiorów do programowania, które zosta³y wygenerowane przez kompilator;

Ø

prezenter hierarchii (ang. Hierarchy Display) – wykorzystywany jest w

opracowywaniu z³o¿onych projektów o wielopoziomowej architekturze, jako narzêdzie do

œledzenia projektu;

Ø

procesor komunikatów (ang. Message Processor) – wspó³pracuje z wszystkimi

aplikacjami, kontroluje ich dzia³anie i rejestruje ewentualne b³êdy i defekty w przetwarzanym

projekcie.

Do sprawnej obs³ugi systemu MAX+PLUS II s³u¿y program zarz¹ dzaj¹ cy – menager, którego

okno otwiera siê automatycznie po za³adowaniu systemu. Korzystaj¹ c z g³ównego menu

menagera mo¿na uruchomiæ ka¿d¹   z 11 aplikacji oraz modu³ pomocy.

Pomoc (MAX+PLUS II Help) stanowi Ÿród³o kompletnej i aktualnej dokumentacji

oprogramowania. Pomoc dostarcza wszelkiej niezbêdnej wiedzy o podstawowych

narzêdziach aplikacji oraz danych o wszystkich uk³adach dostêpnych kompilatorowi i

potrzebnych do ich zaprogramowania adapterów. Dostêp do poszczególnych tematów

pomocy jest mo¿liwy z ka¿dej aplikacji systemu i na wiele sposobów. Œwietnie

zaprojektowany interfejs pozwala u¿ytkownikowi skupiæ uwagê na projekcie, nie zaœ na

szczegó³ach pos³ugiwania siê systemem.

background image

51

4.4. Opis jêzyka AHDL.

Altera Hardware Descryption Language (AHDL) jest jêzykiem wysokiego poziomu

ca³kowicie zintegrowanym z systemem MAX+PLUS II. Jêzyk ten zosta³ stworzony do

specyfikowania projektów realizowanych w uk³adach programowalnych firmy ALTERA.

Jego sk³adnia pozwala szybko realizowaæ kombinacyjne operacje logiczne, tablice prawdy

czy uk³ady sekwencyjne. Program w AHDL mo¿e byæ pisany w jakimkolwiek pliku

tekstowym, lecz musi posiadaæ rozszerzenie .tdf (ang. text design file). Nastêpnie mo¿na go

skompilowaæ i przesymulowaæ oraz u¿yæ do zaprogramowania uk³adów firmy Altera.

Najwa¿niejsz¹     cech¹   jest mo¿liwoœæ konstruowania projektów hierarchicznych. Tworzenie

hierarchii jest bardzo proste. Edytor symboli automatyczne generuje symbol, który

reprezentuje plik z rozszerzeniem .sym. Jest on reprezentowany jako prostok¹ t z

zaznaczonymi wejœciami i wyjœciami.  Nastêpnie w³¹ cza siê wygenerowany symbol do pliku

.gdf. W ten sposób mo¿na po³¹ czyæ wiele plików .sym w wiêksz¹   ca³oœæ, realizuj¹ c¹   bardziej

skomplikowan¹   funkcjê. W podobny sposób mo¿na w³¹ czaæ do zbiorów .tdf dowolne, w³asne

funkcje i ponad 300 makrofunkcji zdefiniowanych przez Alterê. Ka¿da makrofunkcja zawarta

jest w pliku o rozszerzeniu .inc w bibliotece makrofunkcji. Plik tekstowy ASCII .inc (Include

File) mo¿e byæ do³¹ czony do pliku .tdf poprzez instrukcjê Include. System MAX+PLUS II

pozwala te¿ sprawdziæ sk³adniê AHDL lub przeprowadziæ pe³n¹   kompilacjê. Wszystkie b³êdy

zostan¹   zlokalizowane przez Message Processor i podœwietlone w oknie edytora tekstu.

4.4.1. Elementy sk³adowe projektu.

Poni¿ej wymieniê najwa¿niejsze elementy jêzyka AHDL w kolejnoœci w jakiej powinny

wystêpowaæ w ka¿dym zbiorze TDF. Niektóre z nich s¹   sta³e, inne opcjonalne.

Ø

Ø

instrukcja TITLE (opcjonalnie) – s³u¿y do redagowana komentarzy w zborze

wynikowym Report File;

Ø

Ø

instrukcja INCLUDE  (opcjonalnie) – s³u¿y do specyfikacji zbioru w³¹ czanego

Include File;

Ø

Ø

instrukcja CONSTANT (opcjonalnie) – s³u¿y do specyfikacji symbolicznych nazw,

którymi s¹   zastêpowane sta³e;

Ø

Ø

instrukcja DEFINE (opcjonalnie) – s³u¿y do zdefiniowania funkcji numerycznych,

których obliczone wartoœci s¹   argumentami innych funkcji;

Ø

Ø

instrukcja OPTIONS (opcjonalnie) – s³u¿y do okreœlenia porz¹ dku bitów w projekcie;

background image

52

Ø

Ø

sekcja podprojektu SUBDESIGN  – s³u¿y do deklarowania wejœæ, wyjœæ i portów

dwukierunkowych. Mog¹   byæ nastêpuj¹ ce typy portów: INPUT – wejœcie, OUTPUT –

wyjœcie,  BIDIR - port dwukierunkowy, MACHINE INPUT, MACHINE OUTPUT.

Definiuj¹ c port jako MACHINE INPUT lub MACHINE OUTPUT mo¿emy pobieraæ lub

wysy³aæ stany urz¹ dzenia sekwencyjnego;

Ø

Ø

sekcja zmiennych VARIABLE (opcjonalna) – s³u¿y do deklarowania zmiennych,

które reprezentuj¹   i przechowuj¹   informacjê wewnêtrzn¹ . Zmienne mog¹   byæ deklarowane

dla wêz³ów zwyk³ych lub trójstanowych, prymitywów, makrofunkcji, megafunkcji. Sekcja

VARIABLE mo¿e zawieraæ tak¿e deklaracjê: NODE, REGISTER, STATE MACHINE,

MACHINE ALIAS;

Ø

Ø

sekcja logiczna LOGIC – s³u¿y do okreœlenia operacji logicznych w zbiorze TDF.

Operacje te definiuje siê za pomoc¹   równañ boolowskich, warunków logicznych i tablic

prawdy. Zawarte s¹ w niej wszelkie kombinacje na wartoœciach sygna³ów oraz sposoby ich

przep³ywu. Sekcja ta zaczyna siê s³owem BEGIN a koñczy END. W sekcji tej wystêpuj¹

operatory logiczne i arytmetyczne, instrukcje warunkowe IF, instrukcje wyboru CASE oraz

tablice prawdy. Pozwalaj¹   one na realizacjê praktycznie ka¿dego zadania.