easyabel FEJLESZTŐ RENDSZER



Hasonló dokumentumok
Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

4. Példa: Másodfokú egyenlet megoldása (program2_1.vi)

Bevezetés a C++ programozásba

Számítógépek felépítése, alapfogalmak

2. Digitális hálózatok...60

117. AA Megoldó Alfréd AA 117.

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Billenőkörök. Mindezeket összefoglalva a bistabil multivibrátor az alábbi igazságtáblázattal jellemezhető: nem megen

hét Sorrendi hálózatok tervezési lépései: szinkron aszinkron sorrendi hálózatok esetén

Digitális technika VIMIAA01

1. fejezet Microsoft Excel 2010 Tartománynevek... 3

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

3. Gyakorlat Ismerkedés a Java nyelvvel

ISE makró (saját alkatrész) készítése

E7-DTSZ konfigurációs leírás

Joint Test Action Group (JTAG)

B I T M A N B I v: T M A N

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék. Önálló laboratórium

ADATBÁZISKEZELÉS ADATBÁZIS

2. gyakorlat Állapot alapú modellezés Megoldások

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

KETTŐS KÖNYVELÉS PROGRAM

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

15. Programok fordítása és végrehajtása

Információs Technológia

MPLAB leírás V1.1. Projektek kezelése. MPLAB leírás - dr. Kónya László 1

DIGITÁLIS TECHNIKA 7-ik előadás

SATEL. CA-64 RIASZTÓKÖZPONT ( es szoftver verzió) Telepítési útmutató

Tanulmányozza az 5. pontnál ismertetett MATLAB-modell felépítést és működését a leírás alapján.

noannb Számítógépek automatizált tervezése

Bevezetés a programozásba 2

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

DT4220 E xx xx xx (PS) Folyamatindikátor. Kezelési útmutató

Kapacitív áramokkal működtetett relés áramkörök S: B7:S21.3S2.$

C# gyorstalpaló. Készítette: Major Péter

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

Elektronikus dobókocka

Számolótábla Általános ismeretek

Mielıtt használná termékünket Az eltérı környezeti körülmény elektromos áramütést, tüzet, hibás mőködést vagy. okozhat.

C programnyelv 1. Kedves Kollegina, Kolléga!

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

DIGITÁLIS TECHNIKA I Dr. Lovassy Rita Dr. Pődör Bálint

VeriWell útmutató. A program használata Az elindítás utáni a kép:

Adattípusok. Max. 2GByte

Lekérdezések az SQL SELECT utasítással

Adattípusok. Max. 2GByte

AX-3003P AX-6003P. 1. A kezelési útmutató használata. 2. Biztonságra vonatkozó információk

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

1. Kombinációs hálózatok mérési gyakorlatai

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Hobbi Elektronika. Bevezetés az elektronikába: Boole algebra, logikai kifejezések

Külvilági kapcsolat. UPS séma ábra, kétsoros LCD DISPLAY, 8db nyomógomb. A B C D E F G H

1. Ismertesse az átviteltechnikai mérőadók szolgáltatásait!

A számítógép alapfelépítése

Adatbázisok I A relációs algebra

DIGITÁLIS TECHNIKA LABORATÓRIUMI SEGÉDLET

PAL és s GAL áramkörök

FPGA áramkörök alkalmazásainak vizsgálata

A megfelelő IP védelem biztosításával, alkalmasak a kültéri alkalmazások kialakítására.

Egyszerű RISC CPU tervezése

Programozható logikai vezérlők

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

INFORMATIKA MATEMATIKAI ALAPJAI

Hardver leíró nyelvek (HDL)

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

NCT 101, 104, 115 szerszámgép vezérlések Telepítési leírása A.066 (M) (L) kiadási számú szoftver változattól

Végh János Bevezetés a Verilog hardver leíró nyelvbe INCK??? előadási segédlet

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Digitális technika 1. Tantárgykód: VIIIA105 Villamosmérnöki szak, Bsc. képzés. Készítette: Dudás Márton

DIGITÁLIS TECHNIKA. Szabó Tamás Dr. Lovassy Rita - Tompos Péter. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar LABÓRATÓRIUMI ÚTMUTATÓ

Programozható logikai vezérlõk

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

I+K technológiák. Digitális adatátviteli alapfogalmak Aradi Szilárd

2. tartály tele S3 A tartály tele, ha: S3=1 I tartály tele S5 A tartály tele, ha: S5=1 I 0.4

Készítette: Citynform Informatikai Zrt.

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

A mikroszámítógép felépítése.

VBA. Visual Basic for Applications

A BECKHOFF típusú PLC használata.

Bemutatás. Elrendezés. Leírás. Műszaki adatok. Funkciók

Programozás 3. Dr. Iványi Péter

Adatbázis-kezelés ODBC driverrel

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

Door-System Kft Újpest IPARI PARK Almakerék u. 4. T : info@door-system.hu

1. eset: a háromból két motor 5 s-nál hosszabb ideig leáll. (Időkésleltetett jelzés). 2. eset: mindhárom motor leáll. (Azonnali jelzés).

E- Laboratórium 3 Az ABB robotok alkalmazásai Elméleti leírás

Bevezetés az Arduino mikrovezérlők programozásába

Adatbázisok* tulajdonságai

M4 TÁBLÁZATKEZELÉS ALAPJAI

INFORMATIKAI ALAPISMERETEK

A DDS áramkörök használata.

Fordítóprogramok szerkezete avagy Mi történik Pascalban mikor F9-et nyomunk?

Adatok szűrése, rendezése

Operációs Rendszerek II. labor. 2. alkalom

Aláírást-ellenőrző alkalmazás. funkcionális modellje és követelményrendszere. CWA 14171:2004 alapján

PRECÍZ Információs füzetek

Java II. I A Java programozási nyelv alapelemei

Átírás:

easyabel FEJLESZTŐ RENDSZER

TARTALOMJEGYZÉK ELŐSZÓ 3 1 ÁLTALÁNOS JELLEMZŐK 4 1.1 AZ ABEL-HDL HARDVER LEÍRÓ NYELV 4 1.2 AZ EASYABEL FELDOLGOZÓ PROGRAMMODULOK 4 1.2.1 AZ EASYABEL ALAPKIÉPÍTÉSÉNEK FELDOLGOZÓ MODULJAI 4 1.2.2 A SMARTPART OPCIÓ PROGRAMMODULJAI 5 1.3 AZ ABEL FEJLESZTŐI KERETRENDSZER 5 2 AZ ABEL-HDL NYELV ELEMEI 6 2.1 AZ ABEL-HDL NYELV FŐBB SZINTAKTIKAI ELŐÍRÁSAI 6 2.2 AZONOSÍTÓK 6 2.3 HALMAZOK (SETS) 9 2.4 BLOKKOK 9 2.5 KOMMENTÁROK (COMMENTS) 9 2.6 PARAMÉTEREK ÉS LÁTSZÓLAGOS PARAMÉTEREK 9 2.7 DIREKTÍVÁK 10 3 FELADATLEÍRÁS ABEL-HDL NYELVEN 12 3.1 AZ ABEL-HDL FORRÁSFILE FELÉPÍTÉSE 12 3.2 LOGIKAI LEÍRÁS SZEKCIÓ 16 3.2.1 KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSA 16 3.2.2 SZEKVENCIÁLIS HÁLÓZATOK LEÍRÁSA 16 3.2.3 NEM TELJESEN SPECIFIKÁLT FUNKCIÓK 17 3.2.4 FÜGGVÉNYEK TÖBBSZÖRÖS MEGADÁSA 18 3.3 TESZT VEKTOROK 18 4 TERVEZÉSI, ALKALMAZÁSI MEGFONTOLÁSOK 19 4.1 SORRENDI HÁLÓZATOK TERVEZÉSE 19 4.2 ARCHITEKTÚRA-FÜGETLEN VAGY RÉSZLETES LEÍRÁS 20 4.3 POLARITÁS VÁLASZTÁSA 22 4.4 TÚL SOK SZORZATTAG 22 5 AZ EASYABEL RENDSZER FUTTATÁSA 23 2

ELŐSZÓ Ez a leírás az ABEL fejlesztő rendszer legegyszerűbb kiépítését, az easyabel fejlesztő rendszert ismerteti. Az ismertetés az easy ABEL 4.3 verzió felhasználói kézikönyvén alapul, kiegészítve a szerző megjegyzéseivel. a korlátozott terjedelem miatt ez az ismertetés csak vázlatos lehet, (az eredeti easyabel Manuál nagyságrendileg 400 A4 oldal terjedelmű,) de tapasztalataink szerint elegendő az egyszerűbb PLD IC-kel történő tervezéshez. A program alkalmazását környezetfüggő on-line HELP funkció segíti. A speciális esetekhez szükséges részletesebb információk az eredeti easyabel Manuel-ben megtalálhatók. A tényleges tervezés előtt javasoljuk a mintapéldák áttekintését is,ami megkönnyíti az ABEL-HDL nyelv megismerését. Azok a döntések, hogy egy rövid leírásba mit fontos bevinni és mit nem, általában mindig szubjektívek. Ugyancsak sok szubjektív elem van a Tervezési, alkalmazási megfontolások című fejezetben. Ezen kívül elírásokkal és sajtóhibákkaliskellszámolni. Ezért aleírás összeállítója szívesen fogad minden észrevételt és javaslatot Itt szeretnék külön köszönetet mondani a DATA I/O GmbH cégnek, a PLD, FPGA áramkörök alkalmazásának oktatásához nyújtott sokrétű segítségéért. 3

1 ÁLTALÁNOS JELLEMZŐK Az ABEL tervező rendszert a PLD (PAL, FPLA stb.) áramkörök könnyű alkalmazásához fejlesztették ki. Első változata 1984-ben jelent meg, amit az évek során újabb változatok követtek, és az ABEL rendszert folyamatosan alkalmassá tették azegyreújabb és komplexebb PLD és FPGA áramkörök kezelésére. Széleskörű alkalmazhatósága és felhasználóbarát kialakítása következtében a legelterjedtebb PLD tervező rendszerré vált. Az ABEL tervező rendszert különböző kiépítésekben hozzák forgalomba. A legnagyobb kiépítés az ABEL-FPGA rendszer, mely a legbonyolultabb programozható logikai áramköröket, az FPGA IC-ket is kezeli. Az eazyabel változat csak a hagyományos felépítésű PLD (PAL, FPLA) elemekkel történő tervezést támogatja. Az eazyabel programot az egyetemeknek és főiskoláknak díjmentesen bocsátotta rendelkezésükre. Az ABEL tervező rendszer a következő főbb részekből áll: -ABEL-HDLharverleíró nyelv, - ABEL feldolgozó program modulok, - ABEL fejlesztői keretrendszer. 1.1 Az ABEL-HDL hardver leíró nyelv Az ABEL-HDL egy magas egy magas szintű herdver leíró nyelv (Hardware Description Language). Az ABEL-HDL a viselkedés-leíró nyelvek (behavioral description language) közé sorolható, mert a harver egységet alapvetően nem a struktúrája (építőelemek és azok egymáshoz való kapcsolódási módja) alapján írja le, ha az egység viselkedése (funkcionális működése) alapján: az egység kimenetei hogyan viselkednek a bemenő jelek hatására. A struktúra-független leírása előnye, hogy a tervezőknek nem kell az elején elköteleznie magát valamelyik PLD IC mellett. Az ABEL programok megengedik, hogy az IC választás a terv feldolgozása után (verifikálás, minimalizálás stb. után) történjen. Ez lehetővé teszi, hogy a tervhez optimálisan illeszkedő PLD IC-t válasszunk, és a továbbfejlesztés során sem jelent problémát újabb PLD IC típusra áttérni. Ezt a választást az ABEL program SmartPart opciójának moduljai kívánságra automatikusan elvégzik. Megjegyezzük, hogy az ABEL program megengedi, hogy a tervezett egység leírásában a PLD IC típusát és a jelek lábkiosztását is előírjuk. Ez biztosítja az ABEL korábbi verzióinak megfelelően készült tervek (forrásfile-ok) feldolgozhatóságát is. 1.2 Az easyabel feldolgozó programmodulok 1.2.1 Az easyabel alapkiépítésének feldolgozó moduljai Compile (ahd12pla) Szintaktikailag ellenőrzi és lefordítja a forrásfile-t, kifejti a makrókat, elvégzi a szükséges szintézist. 4

Simulate Equation (plasim) Szimulálja a tervezett egység működését az előállított logikai egyenletek alapján, a leírásban megadott tesztvektoroknak megfelelően. Optimize (plaopt) Minimalizálást végez. PartMap (fuseasm) A fuseasm modul a feldolgozott tervleírás ( PLA file ) alapján előálltja a programozó készülék vezérléséhez szükséges file-t (ún. JEDEC file), és egy dokumentációs file-t is készít. A modul futtatása előtt ki kell választani a PLD IC típusát, és a jeleket hozzá kell rendelni az IC megfelelő kivezetéseihez. Ha ez nem történt meg a tervleírásban, akkor ezt a Fitter (fit) modul elvégzi. Simulate JEDEC (jedsim) Szimulálja a tervezett egység működését az előállított programozó file (JEDEC file) és a PLD IC struktúrája alapján, a leírásban megadott tesztvektoroknak megfelelően. 1.2.2 A SmartPart opció programmoduljai Az easyabel programhoz tartozó SmartPart opció Device Selector (devsel) és Device Fitter (fit) moduljai a megfelelő PLD IC típus kiválasztását és a tervhez illesztését segítik ill. végzik el. Device Selector (devsel) A devsel modul kiválasztja az easyabel által támogatott PLD IC-k listájából azokat az elemeket, amelyek megfelelnek a tervező által megadott előírásoknak (pl. teljesítmény felvétel, törölhetőség, gyártó cég, ). Device Fitter (fit) A fit modul megpróbálja illeszteni a tervet a kiválasztott IC típus(ok)hoz, ha az illesztés lehetséges, akkor elvégzi a jelek hozzárendelését is az IC kivezetéseihez. 1.3 Az ABEL fejlesztői keretrendszer Az ABEL fejlesztői keretrendszer (ABEL Design Enviroment) a program modulok futtatását vezérli. A keretrendszer menüvezérelt, segítségével az egyes modulok külön is futtathatók. A keretrendszer ismeri a modulok helyes futtatási sorrendjét is,és ha az előzetesen szükséges modulok nem lettek lefuttatva, vagy a forrásfile-ban végzett editálás miatt újrafuttatás szükséges, akkor a keretrendszer ezt automatikusan elvégzi. 5

2 AZ ABEL-HDL NYELV ELEMEI 2.1 Az ABEL-HDL nyelv főbb szintaktikai előírásai Az ABEL-HDL a következő alapvető szintaktikai előírásokkal dolgozik: Egy programsor legfeljebb 150 karakter hosszúságú lehet. A sorokat <LF> (soremelés), <FF> (lapdobás) vagy <VT> (vertikális tabulátor) karakterek zárhatják le.(megfelelő természetesen az általánosan használt <CR><LF> kombináció is, pl. az <ENTER> gomb az IBM PC-ken. ) Azonosítókat, kulcsszavakat és számokat space (szóköz) karakterekkel kell elválasztani. Nem kötelező a szóköz használata olyan helyeken, ahol az egyes szintaktikai egységek között vessző vagy egy operátor áll, ill. zárójelek előtt és után. Azonosítók, kulcsszavak és számok belsejében szóköz vagy pont nem lehet. A nyelv kulcsszavai kis- és nagybetűs formában (akár keverve is) egyaránt szerepelhetnek. A felhasználói azonosítók (pl. jelnevek) tetszőlegesen tartalmazhatnak kis és nagybetűket, de a fordító az azonosítók esetén érzékeny a kis- és nagybetűkre (case sensitive) Deklarációkat, utasításokat, egyenleteket általánosan pontosvesszővel (;) kell lezárni, de a MODULE, END, és TITLE utasításoknál ez elhagyható, a régebbi verziókkal való kompatibilitás érdekében. Az idézőjel ( ) jel a kommentár kezdetét jelzi, a kommentárt egy másik jel vagy a sorvég zárja. 2.2 Azonosítók A használható (érvényes) karakterek: A Z (nagybetűk), a z(kisbetűk), (csak ASCII betűk, ékezetes betű NEM) 0 9(számok)!@#$%^&*()-=+[]{};: `~\,<>./?_(aláhúzás) Előírások az azonosítókra: nem nyelvi kulcsszó, betűvel, vagy aláhúzással kezdődik, max. 31 karakter hosszú. Aprogramakisés nagybetűket megkülönbözteti az azonosítókban. 6

Nyelvi kulcsszavak (Nem lehetnek azonosítók, kis- és nagybetűvel is írhatók.) DECLARATIONS IF STATE_DIAGRAM DEVICE IN(obs) TEST_VECTORS ELSE ISTYOE THEN ENABLE(obs) LIBRARY TITLE END MACRO TRACE ENDCASE MODULE TRUTH_TABLE ENDWITH NODE WHEN FUSES OPTIONS WITH EQUATIONS PIN FLAG(obs) PROPERTY Konstansok és stringek Számrendszerek Az ABEL 2, 8, 10, és 16alapú számrendszereket kezel, a default általábam a decimális. (A default a @RADIX deklarációval megváltoztatható.) Aszámrendszerek jelölését apéldák mutatják: 75 decimális 75 ^h75 hexa 75 (decimális értéke 117) ^b101 bináris 101 (decimális értéke 5) ^o17 oktális 17 (decimális értéke 15) ^h0f hexa 0F (decimális értéke 15) A karaktereknek is tulajdoníthatunk számértéket, pl. 'a'=97. Logikai értékek A true (logikai 1) és a fals (logikai 0) logikai értékeket a program számként (32 bit integer) ábrázolja, a true=-1, azaz mind a 32 bit, a fals=0, azaz mindegyik bit 0. Speciális konstansok (case insensitive).c. órajel impulzus low-high-low.k. órajel impulzus high-low-high.u. órajel felfutó él low-high transition.d. órajel lefutó él high-low transition.f. lebegõ be vagy kimenet.p. regiszter elõtöltés (preload).svn. n=2..9 a bemenet meghajtható 2..9V-tal.X. dont' care.z. be- vagy kimenet nagy impedanciás 7

Stringek A string két aposztrof (') közé zárt ASCII karakterek sorozata, space-t is tartalmazhat. Ha aposztrof szükséges a stringben, akkor backslash (\) karaktert kell elé írni, ha backslash szükséges, azt kétszer kell leírni. Pl: 'It\'seasy'=It'seasy 'He\\she' =He\she Operátorok Logikai operátorok (ligical operators)!! A NOT & A & B AND # A#B OR $ A $ B XOR antivalencia!$ A!$ B XNORekvivalencia Aritmetikai operátorok (aritmetich operators) - - A kettes komplemens (negálás) - A B kivonás + A+B összeadás * A * B szorzás / A/ B elõjel nélküli egész osztás % A%Bosztási maradék << A << B A-t balra shifteli B bittel >> A >> B A-t jobbra shifteli B bittel Mindkét shiftelésnél aszélrõl 0töltõdik Relációs operátorok(relational operators) == A==B egyenlõ!= A!= B nem egyenlõ < A < B kisebb <= A <= B kisebb egyenlõ > A > B nagyobb >= A >= B nagyobb egyenlõ Arelációs kifejezések eredménye logikai tru vagy false. A relációs kifejezéseket ajánlatos zárójelbe tenni, hogy a logikai operátorok magasabb pioritása ne zavarjon.a relációs mûveletek elõjel nélküliek. Ezért pl. a (-1>2) true (1) értéket ad, mivel a -1 ábrázolása..1111, és ez nagyobb mint..0010 Értékadó operátorok(assigment operators) = kombinációs hálózat esetén := következõ órajel után érvényes ( regiszteres ) érték (szekvenciális hálózat esetén) 8

Mûveletek prioritása 1: -(kettes komplemens negálás),! (NOT) 2: & (AND), <<, >>, (Shift left, Shift right) *, /, %, (szorzás, osztás, osztási maradék) 3: +, - (összeadás, kivonás ) #,$,!$ (OR,XOR,XNOR) 4: = =,!=, (egyenlõ, nemegyenlõ) <,<=,>,>= 2.3 Halmazok (sets) Az egy halmazt alkotó jelekre és konstansokra közös azonosítóval lehet hivatkozni. Más nyelvekben az ilyen halmazt, jelcsoportot nevzik busznak is. A halmaz elemei [ és ] zárójelek közé kerülnek, egymástól vesszővel elválasztva, vagy csak a két szélső sorszámú elem egymástól a ".." range operátorral elválasztva. Példa a halmaz deklarációra: Addr=[A15,A14,A13] vagy Addr=[A15..A13] A szorzás (*), osztás (/), osztás-maradék (%) és shift (<<, >>) operátorok kivételével a többi operátor a halmazokra is értelmezve van. Halmaz változóknak megfelelő hosszúságú halmazok vagy bitsorozatok (számok) adhatók értékül. Számok esetén azok bináris reprezentációját veszi,és ilyenkor a halmaz legnagyobb helyi értékű bitje a baloldali bit a deklarációban. 2.4 Blokkok A blokk az ASCII szöveg egy szekciója, melyet a { és } zárójelek határolnak. A blokkokat makrókban és direktívákban használják. A blokkokban használhatók a { és } jelek, ha backslash előzi meg azokat. A blokkon belül lehetnek további blokkok. 2.5 Kommentárok (comments) A kommentár egy " jellel (dupla idézőjellel) kezdődik, és egy másik " jel vagy a sor vége határolja. 2.6 Paraméterek és látszólagos paraméterek A látszólagos paraméternek (dummy argument) nincsen értéke, csak a makrókban, moduleban vagy a direktívákban jelöli, hogy melyik paraméterrel végez műveletet. A makrodeklaráció törzsében a látszólagos paraméterek jele elé egy kérdőjelet (?) kell írni, és a kérdőjeles paramétert szóközökkelkellhatárolni. 9

PL.: OR_EM MACRO (a,b,c) {?a#?b#?c}; (Ezamakródeklaráció) Adefiniált makró hívása valós paraméterekkel: D=OR_EM (x,y,z&1) Értékadás makró nélkül, ill. a makró kifejtése: D=x#y#z&1 2.7 Direktívák A direktívák egy ABEL-HDL forrás file feldolgozását, értelmezését befolyásolják. Ha a direktívák által kibővített forrás-kódot akarja ellenőrizni, akkor az AHDL2PLA programot a - list vagy -list expand opcíóval kell futtatni. A fontosabb direktívák azalábbiak: @ALTERNATE (Alternate Operator Set) Utána más szimbólumokat is logikai operátornak értelmez. Standard Alternate Funkció operátor operátor! / NOT & * AND # + OR $ :+: XOR!$ :*: XNOR Természetesen az alternate operátor beállításban nem használhatjuk az aritmetikai műveleteket a funkcióleírásban, mert ilyenkor az aritmetikai műveletek szokásos operátorai logikai operátorkénet vannak értelmezve. A standard operátorokat a @STANDARD direktíva állítja vissza. @STANDARD (Standard Operators Directive) Visszaállítja standard operátor értelmezést. @CONST (Constant Declaration) Lehetővé teszi konstansok deklarálását a normális deklarációs szekción kívül. Makrók belső konstansainak deklarációjához szánják. Szintakszisa: @CONST azonosító=kifejezés @DCSET (Don t CareSet) Hatására az ABEL program a nem teljesen specifikált függvényeknél don t care értékekkel számol a minimalizálásnál. Az @ONSET direktíva hatástalanítja. @ONSET Az ABEL program nem számol a don t careértékekkel a minimalizálásnál. @IF Ha a megadott feltétel teljesül ill. a kifejezés logikai TRUE értékű, akkor a direktívában megadott blokkot beveszi a forráskódba. Szintakszisa: @IF kifejezés {block} 10

Példa: @IF (A>17) {C=D$F;} @INCLUDE A direktívában a megadott file beépül a forrásfile-ba, a direktíva helyénél kezdve. Szintakszisa: @INCLUDE filenév Példa: @INCLUDE macros.abl @PAGE A "parsing" program listafile-jába lapdobást ír be ezen a helyen. @RADIX ( Default Base Numbering Directive) Az Abel program alapértelmezésea decimális számrendszer ( radix 10). Ez megváloztatható ezzel a direktívával, a direktiva után azúj radix lesz a default értelmezés. Szintakszisa: @RADIX kifejezés ; ahol a kiértékelt kifejezések2,8,10vagy16-otkelladnia. Példa: @RADIX 2 ; "change default base to binary @RADIX 1010 ; "change from binary to decimal @REPEAT Ez a direktíva a benne megadott blokkot n-szer egymás után behelyezi a forrásfile-ba. Az n értékét a direktívában megadott kifejezés kiértékelése adja meg.ez a direktiva jól használható hosszú igazságtáblák és teszt vektor sorozatok esetén ismétlődő sorok leírására. Szintakszisa: @REPEAT kifejezés {Block} @IRP (indefinite Repeat Directive) Szintakszisa: @IRP dummy_par (par [,par]... ) {Block} A direktívában megadott blokkot n-szer megismétli a forrásfile-ban,ahol n a zárójelben megadott paraméterek (par) száma. Az ismétlésnél a látszólagos paraméter (Dummy_par) mindig a következő paraméterek értékét veszifelazárójelben megadottak közül. Példa: @IRPA(1,^HOA,0) {B =?A; } Apélda szerint direktíva az allábbiakat helyettesíti be: B=1; B=^HOA; B=0; 11

Az ABEL nyelv további direktívái, melyek "trükkös" leírásokat tesznek lehetővé, és a felhasználók számára általában érdekeltek: @EXPR @IFB @IFDEF @IFIDEN @IFNB @IFNDEF @IFNIDEN (Expression Directive) (If Blank Directive) (If Defined Directive) (If Identical Directive) (If Not Blank Directive) (If Not Defined Directive) (If Not Identical Directive) 3 FELADATLEÍRÁS ABEL-HDL NYELVEN 3.1 Az ABEL-HDL forrásfile felépítése A tervezett egység komplett logikai (funkcionális) leírását az ún. modul tartalmazza. Az ABEL-HDL forrás file elvileg több modult is tartalmazhat. Az ABEL rendszer azonban a modulokat egymástól függetlenül dolgozza fel, és a szintaktikai ellenörzéstől eltekintve a keretrendszer csak a forrásfile első modulját dolgoztatja fel, ezért nincs értelme egy file-ban több modult leírni. Egy modulban csak egyetlen eszköz (IC) specifikálható. Egy modul öt szekcóból áll, mely szekciókakövetkezők: -Fejléc (Header) -Deklarációk (Declarations) - Logikai leírás (Logic Description) - Teszt vektorok (Test vectors) -Vége (End) Fejléc szekció Afejléc szekcióban a következő elemek vannak: MODULE (Modul azonosítója és kezdete) szintakszisa: MODULE modulnév OPTIONS (program futását vezérlő opcionális elem) TITLE (opc.,kiírandó fejléc a dokumentációs és jed. file-okban) szintakszisa TITLE 'string' Afejlécben az utasításoknak a fenti sorrendben kell következniük. 12

Deklarációs szekció Adeklarációs szekció következő elemekből állhat DECLARATIONS DEVICE PIN NODE ISTYPE konstansok MACRO kulcsszó (eszköz deklaráció) (kivezetések bekötése) (belső csomópontok) (pin és node attributum specifikáció, opc.) (makrók(k)) LIBRARY REFERENCES (könyvtári hivatkozások) Egy objektum első előfordulásához képest az összes rá vonatkozó deklarációnak predefinitnek kell lennie. Ennek megfelelően, ha van DEVICE deklaráció, akkor annak meg kell előznie a jelek deklarációját. Logikai leírás szekció a feladat funkcionális, strukturális leírását tartalmazza. (Argumentumaiban a korábban deklarált elemekre hivatkozhatunk.) EQUATIONS (Boolean kifejezések ) TRUTH_TABLE (igazságtáblák ) STATE_DIAGRAM (idődiagramok ) FUSES ( biztosíték -deklarációk ) XOR_FACTORS (XOR kapukat tartalmazó eszközök esetén ) Teszt vektor szekció Vége szekció TEST_VECTOR (teszt vektorok ) TRACE (opc., szimuláció display vezérlése ) A modul végét jelző END utasításból áll. Szintakszisa: END modulnév 13

Adeklarációs szekció Eszközdeklaráció Megadható, hogy milyen típusú PLD eszközzel történjen a feladat realizációja. Mivel az ABEL rendszer eszközfüggetlen feladatleírást is támogat, az eszközdeklaráció opcionális. Ez utóbbi esetben a PLD eszköz kiválasztása a tervezés végén történik, az ún. fitter programmal. Az esetleges eszközdeklarációnak meg kell előznie a jelek deklarációját. Az eszközdeklaráció szintakszisa : eszközazonosító DEVICE eszköz_típusjel Példa: ic2 DEVICE p16r6 Jelek deklarációja A jelnevek szintakszisa: [! ] jelazonosító [.ext ] A jelazonosító opcionális kiterjesztése, a.ext rész, az ún. dot extension az áramkör egyértelműbb leírását segíti elő. A jelek deklarációja a PIN és NODE kulcsszavakkal történik. A PLD eszköz kivezetéseinek jeleit a PIN, a belső csomópontok jeleit a NODE kulcsszóval kell deklarálni. A szintakszis: jelnév [, jelnév...] PIN [ pin# [,pin#...]] [ ISTYPE attr ]; jelnév [, jelnév...] NODE [ node# [,node#...]] [ ISTYPE attr ]; ahol pin# ill. node# a kivezetés ill. csomópont sorszáma, attr pedig a kivezetés ill. csomópont típusának deklarációja. Dot extensions Architektúra-független kiterjesztések.clk élvezérelt flip-flop órajel bemenete.oe háromállapotú kimenet engedélyezése.pin visszacsatolás a kivezetésről (pin-ről).fb visszacsatolás a regiszterről Architektúra-specifikus kiterjesztések.d D flip-flop adatbemenete.j JK flip-flop J bemenete.k JK flip-flop K bemenete.s RS flip-flop S bemenete.r RS flip-flop R bemenete.t T ( toggle ) flip-flop T bemenete.q visszacsatolás flip-flop Q kimenetéről.pr regiszter preset bemenete ( szinkron vagy aszinkron ).re regiszter reset bemenete ( szinkron vagy aszinkron ).ap aszinkron preset bemenet.ar aszinkron reset bemenet.sp szinkron preset bemenet 14

.sr.le.lh.ce.fc szinkron reset bemenet lach engedélyező ( enable) bemenete, aktív low lach engedélyező ( enable ) bemenete, aktív high órajel engedélyező bemenet flip-flop mode control Jel-attribútumok Szintakszis: jelnév [,jelnév] ISTYPE attr Ha a jelek a deklarált tipusú PLD IC adott sorszámú kivezetéseihez vagy belső pontjaihoz vannak rendelve a PIN vagy NODE deklarációval, akkor ez a jelek tipusát is egyértelműen meghatározza, és a típusmeghatározó attribútumok megadására nincs szükség. Az általános attribútumok: com kombinációs vagy közönséges jel nem regiszter kimenet reg regiszteres kimenet D típusú flip-floppal, normalizálásnál figyelembe véve a cél-eszköz esetleges inverterét neg a jelzett bemenet vagy kimenet negált kialakítású, a reduce-fixed opció esetén erre optimalizál pos a jelzett bemenet vagy kimenet nincs invertálva a reduce-fixed opció esetén erre optimalizál. Architektúrát meghatározó (architecture dependent ) attribútumok : reg_d regiszteres kimenet D típusú flip-floppal, és a kimenet polaritását meg kell határozni a buffer vagy invert attribútumokkal. reg_g regiszteres kimenet D típusú flip-floppal, és a kimenet polaritását meg kell határozni a buffer vagy invert attributúmokkal. A logikai egyenletekben és igazságtáblákban.d és.ce kiterjesztésű jeleket kell használni. reg_jk regiszteres kimenet JK típusú flip-floppal, és a kimenet polaritását meg kell határozni a buffer vagy invert attributúmokkal. A logikai egyenletekben és igazságtáblákban.j és.k kiterjesztésű jeleket kell használni. reg_sr regiszteres kimenet SR típusú flip-floppal, és a kimenet polaritását meg kell határozni a buffer vagy invert attribútumokkal. A logikai egyenletekben és igazságtáblákban.s és.r kiterjesztésű jeleket kell használni. reg_t regiszteres kimenet T típusú flip-floppal, és a kimenet polaritását meg kell határozni a buffer vagy invert attribútumokkal. A logikai egyenletekben és igazságtáblákban.t kiterjesztésű jeleket kell használni. buffer a megfelelő flip-flop és a kivezetés (pin) közt nincs inverter. invert a megfelelő flip-flop és a kivezetés (pin) közt inverter van. xor a jelet egy XOR kapu állítja elő, mely két bemenetét egy-egy olyan logikai hálózat vezérli, mely a szokásos módon szarzattagok összegét képzi. 15

3.2 Logikai leírás szekció 3.2.1 Kombinációs hálózatok leírása A kombinációs hálózatok viselkedése logikai egyenletekkel vagy igazságtáblával írható le. A logikai egyenleteket az EQUATIONS kulcsszó vezeti be, egyenletek szintakszisa az alábbi: [WHEN condition THEN] equation; [ELSE equation]; Példák: EQUATIONS A=B&!C#D; Regaddress = base + 3 ;!F = (B == C) ; WHEN B THEN A = B ; ELSE A = C ; Az igazságtáblák szintakszisa: TRUTH_TABLE (bemenő jelek > kimenő jelek) bemenő értékek > kimenő értékek; bemenő értékek > kimenő értékek;... Példa: TRUTH_TABLE (BCD_code > [a,b,c,d,e]) > [1,1,1,1,1]; 1 > [1, 1, 1, 1, 1]; 2 > [1, 1, 1, 1, 1];... (A példában a BCD_code és [a, b, c, d, e] egy set (halmaz). ) 3.2.2 Szekvenciális hálózatok leírása A szekvenciális hálózatok viselkedése logikai egyenletekkel, igazságtáblával vagy állapotgráffal írható le. A logikai egyenletek szintakszisa hasonló a kombinációs hálózat esetéhez, de az értékadó operátor formája : =. Az egyenlet baloldali változója az órajel után veszi fel a : = értékadó operátor utáni kifejezés értékét. Példák: EQUATIONS Q:=D&!RESET; count : = count + 1 ; Az igazságtábla (működési tábla) szintakszisa hasonló a kombinációs hálózat esetéhez, de itt a bemenő jelek ésabelső regiszterek jelei közé a:>kerül. TRUTH_TABLE (bemenő jelek : > reg. jelek [ > kimenő jelek] ) bemenő értékek : > reg. értékek [ > kimenő értékek] ; bemenő értékek : > reg. értékek [ > kimenő értékek] ;... 16

Az állapotgráf leírásának szintakszisa: STATE_DIAGRAM reg. jelek [ > kimenő jelek] STATE state_azonosító : [equation] transition_utasítás ; [STATE state_azonosító : [equation] transition_utasítás ;]... Az állapotátmeneti (transition) utasítások az IF-THEN-ELSE, CASE és GOTO utasítások, a szokásos jelentésükkel. Ezeket az utasításokat opcionálisan követheti a WITH- ENDWITH átmenet-utasítás. Példák: STATE_DIAGRAM [Qa, Qb] STATE S0 : IF Enable THEN S1 ELSE S0 ; STATE S1 : z = 0 ; CASE (Enable == 0) : S1 ; (Enable == 1) : S2 ; ENDCASE STATE S2 : z = 1 ; GOTO S0 ; A WITH-ENDWITH utasítás az IF-THEN-ELSE, CASE vagy GOTO átmenet-utasítás után használható, kimenet viselkedésének leírására. Szintakszisa: transition_utasítás következő_ állapot WITH equation [equation]... ENDWITH ; Példa: IF a==1 THEN S1 WITH x : = 1 ; y:= 0; ENDWITH ; 3.2.3 Nem teljesen specifikált funkciók A nem teljesen specifikált funkciók (függvények) esetén van szerepe a @DCSET direktívának. A direktíva hiányában az ABEL program a nem specifikált esetekhez tartozó függvényértéket 0-nak veszi, ha a kimenet nincs invertálva, és ha a kimenet invertálva van, akkor 1 értéket rendel a nem specifikált esetekhez. (Az ABEL régebbi verziói mindig így működtek.) Ha a@dcset direktíva szerepel a leírásban, akkor utána a nem specifikált esetekben a függvényértéknél valódi don't-care (közömbös) értékekkel számol a program. Az @ONSET direktíva megszünteti a don't-care értékek használatát. 17

3.2.4 Függvények többszörös megadása Ha egy változó többször szerepel egy logikai egyenlet bal oldalán (multiple assignment), akkor a feldolgozás során aváltozóhoz a külön megadott kifejezések VAGY kapcsolata rendelődik. Például az y=a; y=b; hozzárendeléseket a Compile modul y = a # b logikai egyenletbe fordítja. A negált jelek esetén formailag ugyanígy jár el:az!y = a;és!y = b; egyenletekből az!y = a # b egyenlet lesz, ami ekkor az y jelre vonatkoztatva már nem VAGY kapcsolat. Az pedig, hogy mit tekint a program negált jelnek, a deklarációs szekcióban megadottaktól függ. Az előbbi példák esetén az y jel deklarációját tételeztük fel. Az előbbiekből következően megváltoztatjuk a deklarációban a jel negált vagy nem negált voltát, akkor lehet, hogy a program másképp fordítja le a logikai egyenleteket. Ezért nyomatékosan azt javasoljuk, hogy NE használják ki a több részletben történő hozzárendelés lehetőségét. A program többszörös hozzárendelés esetén figyelmeztető üzenetet nem küld. 3.3 Teszt vektorok A teszt vektorok a tervezett logikai hálózat helyes működését írják le. Szerepük a terv szimulációval történő ellenőrzésénél és a beprogramozott PLD IC ellenőrzésénél van. Az ABEL szimulációs programja a kimenetek kiszámított állapotát összeveti a teszt vektorokban megadott állapotokkal, és eltérés esetén hibát jelez. A teszt vektorok a programozó készüléket vezérlő file-ba (*.jed) is átkerülnek, és a programozó készülék a"beégetés" után ezekráadásával ellenőrzi a beprogramozott PLD IC működését. A teszt vektorok megadása a TEST_VECTORS kulcsszóval, az alábbi szintaxisnak megfelelően történik. TEST_VECTORS ['megjegyzés string'] (bemenöjelek -> kimenöjelek) [bemeneti értékek -> kimeneti értékek ;] [bemeneti értékek -> kimeneti értékek ;]... Példa: TEST_VECTORS 'first set' ([A,B] -> [C,D]) [0,0] -> [1,1] ; [0,1] -> 2 ; [1,0] -> [0,1] ; A teszt vektorok több részletben, eltérő "megjegyzés"-sel is megadhatók. Kimeneti értékként a don't care (.X.) is megadható. 18

A szimulációs program által kiírandó/kijelzendő jelek a teszt vektor fejlécétől eltérőek is lehetnek, a kijelölésük a TRACE utasítással történhet. A TRACE utasítás az utána következő teszt vektorokra érvényes. Szintaxisa: TRACE (bemenő jelek -> kimenő jelek); Példa: TRACE ([A,B] -> [C ]); TEST_VECTORS ([A,B] -> [C,D]) [0,0] -> [1,1] ; [0,1] -> 2 ; TRACE ([A,B] -> [ D]); [1,0] -> [0,1] ; 1,1] -> [0,0] ; Megjegyezzük, hogy futtatáskor a keretrendszerben a Simulate../Trace Options almenüben is beállíthatók a kimenetben ábrázolandó/kiírandó jelek. Az ellenőrzés a teszt vektorokkal az ábrázolási/kiírási opcióktól függetlenül történik. 4 TERVEZÉSI, ALKALMAZÁSI MEGFONTOLÁSOK 4.1 Sorrendi hálózatok tervezése Szinkron vagy aszinkron A szerző határozott véleménye, sok gyakorló tervezővel megegyezően, hogy sorrendi hálózatok esetén alapvetően szinkron működést tervezzünk. Kivételt a nagyon egyszerű feladatok jelentenek, ahol indokolt esetben azért aszinkron hálózatot is tervezhetünk. A gyakorlati tapasztalatok is igazolják, hogy az aszinkron hálózatoknál számtalan probléma adódik. A gyakori tervezési hibák mellett komoly nehézséget okoz, hogy a PLD IC-k belső időadatai nincsenek egyértelműen specifikálva, az időzítések típusonként, példányonként eltérőek, és a rendszer szimulátora sem támogatja aszinkron hálózatok megbízható verifikálását. Mealy- vagy Moore-modell PLD IC-k esetében a gyakorló tervezők általában kedvezőbbnek tartják az olyan Mooremodellű hálózatokat, melyeknél a hálózat kimenetét a PLD IC-k regiszterei alkotják. A nem regiszteres kimenetek hazárd szempontjából át kell gondolni. Állapotkódolás Az állapotkódolás a tervező feladata az ABEL rendszerben. A választott kódolástól is függ, hogy hány szorzattagot tartalmazó függvényekre van szükség a sorrendi hálózat realizálásához. Ha a tervezett hálózatnak a PLD IC-re történő leképezésénél (illesztésénél) hibajelzést kapunk a túl sok szükséges term miatt, akkor megpróbálkozhatunk egy kedvezőbb állapotkódolás keresésével. A közismert kódolási eljárások (szomszédos, kimenet alapján, 19

HT-partició) mellett alkalmazhatjuk az ABEL kézikönyv ajánlotta stratégiát: úgy változtatjuk meg az állapotkódolást, hogy amelyik állapotbitnél túl sok term adódott, annál az új állapotkódolás esetén a bit állapota lehetőleg ritkán változzon a szekvenciáis hálózat állapotátmeneteinél. A kódváltoztatást megkönnyíti, és a tervleírás is érthetőbb, ha az állapotgráfban vagy állapottáblában az állapotokat értelmezhető szimbolikus nevekkel jelöljük, és azállapotnevekhez tartozó kódokat külön deklaráljuk. Bekapcsolási és illegális állapotok Egy flip-flop állapota a tápfeszültség bekapcsolása után általánosan nem meghatározott, 0 vagy 1 is lehet. Ezért az állapotregiszter bekapcsolás utáni megkívánt állapota, azaz a sorrendi hálózat kívánt indulási állapota, csak külön alaphelyzet-beállító (Reset,...) jellel biztosítható. Egyes PLD IC-k rendelkeznek olyan belső áramkörökkel, melyek a tápfeszültségráadásakor a regisztert alapállapotba viszik. Előfordul, hogy a sorrendi hálózat belső állapotát meghatározó bitek értékeinek van olyan kombinációja, mely nem szerepel a hálózat definiált állapotai közt. Ezek a kombinációk az illegális belső állapotok. A működés komoly zavarát, leállását okozhatja, ha bekapcsolás után, vagy zavarjelek miatt a hálózat illegális állapotba kerül. Ezért célszerű gondoskodni arról, hogy ha léteznek illegális állapotok, akkor abból a hálózat visszakerüljön valamelyik legális belső állapotába. 4.2 Architektúra-fügetlen vagy részletes leírás Ez a kérdés sorrendi hálózatoknál igényel megfontolást. Ha nincs deklarálva a PLD IC típusa, és a jelek sincsenek meghatározott pozíciójú lábakhoz rendelve, akkor egy teljesen architektúra-független leírásról van szó. Ebben az esetben az ún. pin-to-pin terv-leírást (design) célszerű használni, amely a tervezett egység működésének leírásaként az IC kimeneti csatlakozásainak (output pins) viselkedését tartalmazza a bemeneti csatlakozásokra (input pins) adott jelek függvényében. Ilyen leírás esetén az ABEL fordító az általános makrocellára alapozva végzi a szintézist. Az általános makrocella (generic macrocell) felépítése a 4.1 ábrán látható. 4.1 ábra Az általános makrocella Az ábrán a makrocella az foo nevű jelhez tartozik. Az foo az IC kivezetésén (pin) lévő jel neve, ettől a makrocella többi jelét a jelnév kiterjesztései (dot extension) különböztetik meg. A tárolóelem (register) adatbemenetén az foo:= jelölés arra utal, hogy oda a := operátorral történő értékadás jobb oldali részét megvalósító PLA hálózat kapcsolódik. A regiszter maga tulajdonképpen egy D flip-flop, melynek órajele a.clk kiterjesztésű jel. Felhívjuk a figyelmet, 20

nem mindegy, hogy a visszacsatolás az foo pontról (pin) vagy a regiszter kimenetről (foo.fb) történik, mert a kettő közt egy háromállapotú meghajtó van. Ezért az egyértelmű leíráshoz a jeleket meg kell különböztetni. Vannak olyan PLD IC-k, melyek makrocellái az általános makrocellánál több funkcióval rendelkeznek, például van aszinkron beállító éstörlő bemenetük. Ha ki akarjuk használni a többletlehetőségeket, akkor architektúra-specifikus, más szóval részletes (detailed) leírást kell alkalmaznunk. Egy architektúra-specifikus makrocellára példaa4.2 ábrán látható. A példaként bemutatott makrocellánál az aszinkron beállító jelet az.ap kiterjesztés (asynchronous preset), a törlő jelet az.ar kiterjesztés (asynchronous preset) különbözteti meg. 4. 2 ábra Egy architektúra-specifikus makrocella A PLD IC makrocellája tartalmazhat RS vagy JK flip-flopot is. Ilyenkor célszerű.r és.s illetőleg.j és.k kiterjesztéssel jelölt R, S, ill. J, K bemenetekre felírni a logikai egyenleteket. Az architektúra-független leírás D típusú flip-flopjaira felirt egyenleteket ugyan az ABEL transzformálni tudja RS vagy JK flip-flopokra is, de ez gyakran rossz hatásfokkal történik. Architektúra specifikus kiterjesztésekkel történő leírásnál a sorrendi hálózat visszacsatolásainak forrásai egyértelműen meghatározottak. Az architektúra független leírásnál az alábbi három esetet kell megkülönböztetnünk: nincs kiterjesztés,.fb kiterjesztés,.pin kiterjesztés. Nincs kiterjesztés: Ha a visszacsatolt jelnél nem adtunk meg kiterjesztést, akkor az ABEL megfelelő illesztő modulja (PartMap, fuseasm) a visszacsatoló jelet az IC kivezetéséről veszi, ha van ilyen lehetőség. Ha ilyen visszacsatolási út nem létezik, akkor a regiszter kimenetéről veszi a jelet. Az olyan PLD IC-k esetén, melyeknél létezik mindkét fajta visszacsatolási út, előfordulhat, hogy egy adott feladat a kimenetről illesztve nem megvalósítható, túl sok term hibajelzést kapunk. Ugyanakkor a visszacsatolásnál a.fb kiterjesztést alkalmazva a feladat illeszthető. (Ez előfordul pl. a p16v8 struktúrájú GAL IC-k esetén.) 21

.fb kiterjesztés Ha a visszacsatolt jelnél. fb kiterjesztést adunk meg, akkor az ABEL megfelelő illesztő modulja a visszacsatoló jelet a regiszter kimenetéről veszi, ha van ilyen lehetőség. Ha ilyen visszacsatolási út nemlétezik, akkor az IC kivezetéséről veszi a jelet, de előtte ellenőrzi, hogy a kimeneti meghajtó állandóan engedélyezett állapotban van-e. Ha az utóbbi feltétel nem teljesül, hibajelzést ad..pin kiterjesztés Ha a visszacsatolt jelnél. pin kiterjesztést adtunk meg, akkor az ABEL megfelelő illesztő modulja a visszacsatoló jelet az IC kivezetéséről veszi. Ha ilyen visszacsatolási út nem létezik, akkor hibajelzést ad. 4.3 Polaritás választása Az ABEL rendszer a feldolgozás során a logikai egyenleteket a jelre és annak negáltjára is előállítja. A PLD IC-hez illesztésnél aztán automatikusan a megfelelő polaritást választja. A modern PLD elemeknél a kimenet vagy a regiszter-bemenet polaritása is programozható. Ez azért hasznos, mert a negált jel esetenként kevesebb term (szorzattag) összegeként állítható elő. A programozható polaritású IC-knél az illesztő modul automatikusan azt a polaritást választja, melyhez kevesebb term kell, hacsak a leírásban nem kötöttük meg a polaritást. A polaritás megkötése pos és neg ill. buffer és invert attribútumokkal történhet. Vannak olyan PLD IC-k, melyeknél a kimeneti polaritás programozható, de a makrocella nem minden funkciójának polaritása programozható ezzel összhangban. Ennek tipikus példája az elterjedten használt PAL22V10 IC. (Architektúra-neve az ABEL-ben: p22v10.) Ezeknél célszerű a polaritás megkötése a leírásban, ha minden funkciót kiakarunk használni. 4.4 Túl sok szorzattag Az egyszerűbb és olcsóbb (és kevesebbet fogyasztó) PLD IC-vel való realizálást gyakran az akadályozza, hogy a kiadódó logikai függvény még a minimalizálás után is túl sok szorzattagot tartalmaz. A szorzattagok száma esetenként csökkenthető fordított polaritású jel alkalmazásával, erre a polaritás választás című szakaszban már kitértünk. Ugyancsak csökkenthető a termek száma megfelelő állapotkódolással, amiről azelőzőekben már említést tettünk. Atermekszáma csökkenthető, haalogikaifüggvényt nem egyetlen PLA struktúrával, hanem többszintű PLA hálózattal realizáljuk. Egy egyszerű kétszintű leírásban az y logikai függvény független változóit az elsődleges bemenő jelek egy Xí halmaza és egy(vagytöbb) logikai segédváltozó (u) képezi. A segédváltozó az elsődleges bemenő jelek Xj halmazának függvénye. Y=f 1 (Xí,u) u=f 2 (Xj) Asegédváltozók használatával gyakran a működés leírása is egyszerűbb és érthetőbb. 22

Ha a segédfüggvényt csak egyszerűen felírjuk a deklarációs szekcióban, akkor a feldolgozás során azabelegyetlenplastruktúrát szintetizál azyfüggvényre. Ha ellenben a segédfüggvényhez egy makrocellát is deklarálunk (PIN, NODE), akkor az y függvényt két PLA struktúra egymás után kapcsolásával realizálja az ABEL rendszer. A segédfüggvény ügyes megválasztásával minkét PLA termszáma jóval kisebb, mint az egyetlen PLA-val történő realizálás termjeinek száma. A két PLA szinttel történő realizálásnak természetesen hátrányai is vannak: a segédfüggvény lefoglal egy kimenetet ill makrocellát, és a két sorba kapcsolt PLA struktúra miatt megnő a jelterjedési idő. 5 AZ easyabel RENDSZER FUTTATÁSA Az easyabel keretrendszert a DOS operációs rendszerből abe14 parancs begépelése indítja. (Az abe14.exe file rendszerint a DATAIO könyvtárban található.) A programot az abe14 forrásfilenév[.abl] módon indítva, a paraméterként megadott forrásfile automatikusan betöltődik. Egyébként a forrásfile-t a keretrendszer File menüjének segítségével tölthetjük be. A tervet leíró forrásfile kiterjesztése.abl. Amenürendszer A keretrendszer főmenüjéből az ALT és az almenü kezdőbetűjével azonos gomb egyidejű lenyomásával választhatunk. Az almenüben kiválasztott sor aktiválása (indítása) a Return gombbal történik. A kiválasztott menüsor funkciója a képernyő alsó sorában megjelenítődik, részletesebb információt ahelpnyújt. Help A Help funkció az F1 billentyűvel is aktivizálható. A Help funkció környezetfüggő (contextsensitive). Ha a forrásfile-ban a cursort egy kulcsszóra állítjuk, akkor F1 hatására a kulcsszóhoz tartozó Help szöveg kerül kiírásra. Ha kinyitott menüablak esetén kérünk Help-et, akkor a kiválasztott menüsorra vonatkozó tájékoztatást kapunk. 23

Egérhasználat A keretrendszer egérrel is használható. Jobboldali gomb: ALT és ESC funkció; belép az utoljára megnyitott menüablakba ill. kilép belőle, kilép a megnyitott Help ablakból. Baloldali gomb: indítjaamenüben kijelölt funkciót. Középső gomb: F1 gomb funkciója; meghívja a Help-et. A terv feldolgozása A könnyen kezelhető menürendszer és a környezetfüggő részletes Help funkció miatt a terv feldolgozásának lépéseit itt nem részletezzük, csak néhány fontosabb dologra hívjuk fel a figyelmet. A keretrendszer ismeri a szükséges feldolgozási sorrendet. Ha a megelőző lépések eredményei hiányoznak, vagy időközben megváltoztak módosításaink miatt, akkor a megelőző modulokat automatikusan újra lefuttatja a keretrendszer, feltéve, hogy a Defaults menüben Auto Update van beállítva. A modulok automatikus futtatása jól követhető, ha a Defaults menüben aktiváljuk a Program Pause funkciót. Szokás a feldolgozást az eredményeket megmutató View menü megfelelő sorának aktivizálásával végrehajtatni. Ez esetben azonban a feldolgozó modulok opcióinak megváltoztatása (pl. a szimuláció kijelzésének (Trace Option) megváltoztatása) nem indítja újra a feldolgozást. IC választás A PLD IC választását a SmartPart programmal végezve, csak kellő megfontoltsággal indítsuk el a Database Search vagy Query Database funkciót. A teljes adatbázis végigvizsgálata viszonylag időigényes, és ha a kiválasztási kritériumokat (Modify Criteria) túl tágan határoztuk meg (vagy egyáltalán be sem állítottuk), akkor hosszú futási idő után egy nagyon hosszú listát kapunk eredményül, ami a későbbiekben is körülményesen használható. Ha az alkalmazandó PLD IC típusa adott, akkor a típust, pontosabban az IC architektúra-kódját a PartMap menü FPGA/PLDmap Options részében közvetlenül beírhatjuk. A munka befejezése Az easyabel programok számos közbenső, átmeneti filet is generálnak. A keretrendszerből kilépés után a feleslegesek egyszerűen törölhetők a cleanup4 batch file segítségével. (Az easyabel V4.3 verzióhoz adott cleanup4.bat file-t célszerű kiegészíteni a felesleges *.aop file-ok törlésével is.) 24