Logikai tervezés

A tantárgy angol neve: Logic Design

Adatlap utolsó módosítása: 2009. október 31.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Villamosmérnöki szak, MSc képzés

Programozható logikai eszközök alkalmazástechnikája mellékszakirány

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIMIM286 2 2/1/0/v 4  
3. A tantárgyfelelős személy és tanszék Szántó Péter,
A tantárgy tanszéki weboldala http://www.mit.bme.hu/oktatas/targyak/vimim286
4. A tantárgy előadója

Dr. Fehér Béla docens

Szántó Péter tanársegéd

5. A tantárgy az alábbi témakörök ismeretére épít Digitális technika,
6. Előtanulmányi rend
Kötelező:
NEM ( TárgyEredmény( "BMEVIMIMA13" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIMIMA13", "FELVETEL", AktualisFelev()) > 0)

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

7. A tantárgy célkitűzése A tantárgy a logikai rendszerek tervezésének általános szempontjait, a terület ismeretéhez szükséges eszközöket és módszertanokat mutatja be. Megismerteti a hallgatókat a digitális rendszertervezés körszerű módszereivel, bemutatja a modern, nagybonyolultságú, felhasználó által programozható logikai áramköröket, demonstrálja a korszerű tervező környezetek szolgáltatatásait, és ezek hatékony használatát. Az oktatási cél a megfelelő eszközkészlet és módszertan bemutatásán túl a mérnöki alkotó tevékenység különböző fázisának bemutatása a probléma megfogalmazásától a rendszermodell kidolgozásán át a konkrét architektúrák specifikációján keresztül az egyedi funkcionális egységek megvalósításáig és ellenőrzéséig. A tervezési módszereket a széles körben elterjedt, ipari szabványnak tekinthető eszközkészlet használatával konkrét tervezési példán keresztül ismertetjük. Az elméleti ismereteket így közvetlen gyakorlati tapasztalatok is kiegészítik ill. elmélyítik.

 

A tantárgy követelményeit eredményesen teljesítő hallgatóktól elvárható, hogy:

(1)    tájékozott legyen a logikai rendszerek tervezésének általános módszereivel, a rendelkezésre álló eszközökkel és komponensekkel, képes legyen egy adott probléma megoldásához szükséges feltételek meghatározására,

(2)    ismerje a korszerű tervezői környezetek alapszolgáltatásait, a tervezési lépések egymásra épülését, az egyes szinteken elvégezhető feladatokat és műveleteket,

(3)    különböző módon megfogalmazott előzetes felhasználói specifikáció alapján a követelményeket megvalósító berendezés rendszertervének kiinduló verzióját megtervezze,

(4)    a kialakított rendszermodell alapján hatékony ellenőrzési és szimulációs stratégiákat használva ellenőrizze a specifikáció teljesülését, 

(5)    a tervezési folyamat végrehajtása során eredményesen alkalmazza a felülről lefelé és alulról felfelé történő tervezési stratégiákat, a követelmények, a rendelkezésre álló eszközök és komponensek ismeretében,

(6)    képes legyen elemezni a tervezési folyamat eredményeképpen megvalósult rendszer műszaki, technikai paramétereit, különös tekintettel az erőforrásigény, sebesség és energia fogyasztás adatokra,

(7)    ismerjék meg a napjainkban használatos interfész technikákat, különös tekintettel az áramkörök közötti és az áramkörön belüli rendszer megoldásokra,

(8)    tájékozottak legyenek a különböző magas szintű tervezési módszerek alkalmazásában, a hardver-szoftver együttes tervezés elemi kérdéseiben,

(9)    tudatában legyenek annak, hogy mindennapi életünket kitöltő környezet egyre nagyobb számban tartalmaz hasonló tervezési elvek alapján felépülő különböző funkcionalitású eszközöket,

(10)   megszerzett ismereteik birtokában eredményesen teljesítsék a tárgy tervezési feladatát.

 

8. A tantárgy részletes tematikája

1.    A logikai tervezés  alapjai (2 óra elmélet/előadás): 

       Célkitűzés: A  témakör bemutatása, a tárgy alapjainak megismertetése.  

Alapfogalmak. A logikai rendszerek tervezésének általános szempontjai. Tervfeladatok specifikációja, a specifikáció finomítása, dekompozíció. A specifikáció különböző szintjei és megadási módjai. Rendszermegvalósítási alternatívák, technológiai áttekintés.

2.    A programozható logikai áramkörök bemutatása (4 óra elmélet/előadás):

      Célkitűzés: A  digitális rendszerek építőelemeinek ismertetése

Rendszermegvalósítási alternatívák, technológiai áttekintés. Integrált áramköri realizációk: ASIC, ASSP, COTS eszközök. Általános célú elemek és használatuk előnyei: CPU, memória, PLD, FPGA. A programozható logikai eszközök bevezetése. Egyszerű logikai függvények leképezése, kétszintű logikák realizálási módszerei. PLA, PAL, PROM struktúrák. Általános felépítés, belső erőforrások, kihasználhatóság. Szekvenciális elemek  alkalmazása. Időzítés modellek, időzítés analízis. Kódolási módszerek, komplexitás analízis, optimalizálás. A programozható architektúra megjelenése és használata. A makrocella struktúra elemzése, speciális tulajdonságok: szorzatkifejezés megosztás, eltemetett regiszterek, hierarchikus blokkstruktúra. Az I/O interfészek használata, az I/O blokkok fontosabb programozható paraméterei. A legfontosabb interfész szabványok áttekintése, ezek szerepe a rendszerszintű jeltisztaság tulajdonságok kezelésében. Meghajtáserősség, jelváltozási sebesség, tartó áramkör, gyenge kényszerek. A legfontosabb eszközcsaládok tulajdonságainak áttekintése.   

3.    A programozási technológiák áttekintése (4 óra elmélet/előadás):

       Célkitűzés: Digitális rendszerek tesztelését, a rendszerelemek programozását, fejlesztését, hibakeresést hatékonyan támogató technológia ismertetése.

A peremfigyeléses NYÁK tesztelési eljárás kialakulása, történeti áttekintés a gyártási folyamat ellenőrzésének fejlődéséről. Megfigyelhetőség, vezérelhetőség, tesztelhetőség. A gyártási, szerelési, technológiai hibák feltárási lehetőségei a korszerű felületszerelt komponensek használata esetén. Teljes NYÁK-ok tesztelése, bemérése. Az IEEE 1149 (JTAG) szabvány ismertetése. A JTAG interfész jelei, a tesztvezérlő rendszer funkciói, használata.    A TAP interfész felépítése, az állapotgép működési módjai, a fontosabb rendszer komponensek szerepe (utasításregiszter, adatregiszter, elkerülő regiszter, azonosító regiszter). A JTAG parancskészlet elemei, kötelező és opcionális parancsok. A JTAG protokoll működése, külső és belső tesztek. A JTAG interfész alkalmazása a rendszeren belüli programozásra. Speciális parancsok, speciális üzemmód. A JTAG programozás jellemzői.

4.     A CPLD eszközök alkalmazástechnológiája  (2 óra elmélet/előadás): 

       Célkitűzés: A programozható eszközök használatának bemutatása egy egyszerű tervezési példa kapcsán.

A tervezési és implementációs folyamat fontosabb lépéseinek rövid áttekintése. Egy korszerű tervezési környezet használata, projekt előkészítés, tervezési adatok specifikálása. Specifikáció megadása, forrásnyelvi leírás, blokkdiagram szerkesztés. Funkcionális ellenőrzés szimulációval. Tervezési előírások, implementációs megkötések előírása, és teljesíthetőségük vizsgálata. A tervezőrendszer működésének ellenőrzése, riportfájlok értékelése. A terv megvalósítás ellenőrzése az időzítés modell alapján szimulációval. A mintaterv programozói adatainak előkészítése, a terv működésének ellenőrzése az eszköz programozása után. 

5.    Az FPGA áramkörök ismertetése (6 óra elmélet/előadás+ 4 óra gyakorlat):

       Célkitűzés: Az FPGA eszközök részletes ismertetése. 

Az FPGA áramkörök kialakulása, fejlődése, általános jellemzők. Technológiai áttekintés, programozási és rendszertechnikai tulajdonságok. Architektúra szerinti csoportosítás, a logikai alapelemek jellemzőinek értékelése méret, kihasználhatóság és komplexitás szerint. Tranzisztor, kapu, multiplexer és memória tábla alapú alapelemek. A főbb típusok ismertetése technológia és gyártók szerint. A Xilinx SRAM technológiájú FPGA-k részletes áttekintése. A Spartan és Virtex család elemei, a generációs fejlődés története. A memóriatáblázat alapú logika (LUT), és a konfigurálható logikai blokk (CLB) elemzése. A kiegészítő erőforrások ismertetése: aritmetikai áramkörök, kaszkádosító logikák, huzalozás elemek és ezek felépítése. Belső memória hierarchia, az elosztott és blokk memóriák használatának tipikus esetei. Az I/O elemek paraméterei, I/O interfész szabványok, rendszerszintű jeltisztaság kezelési szempontok. FPGA áramkörök programozása, konfigurációja. A soros és párhuzamos konfigurációk, konfigurációs memóriák. A JTAG felprogramozás. Gyakorlati példák ismertetése: a tervező rendszer bemutatása, projekt előkészítés, ellenőrzés, implementáció és értékelés. A programozási lehetőségek hazsnálata.      

6.    A hardver leíró nyelvek szerepe a digitális rendszer tervezésben (8 óra elmélet/előadás + 6 óra gyakorlat): 

       Célkitűzés: A korszerű és hatékony rendszerleíró eszkökészlet használatának megismertetése.

A Verilog és VHDL nyelvek kialakulása, használata és elterjedése. A rendszer komplexitás és kezelhetőségének kapcsolata a tervezői eszközök tulajdonságai alapján. A leírás aspektusai: a viselkedési és strukturális leírás.    A Verilog nyelv részletes ismertetése, a nyelvi szabályok, struktúrák, szintaktika bemutatása. A nyelv használata a szimulációs technológiában. Az általános digitális funkcionális elemek leírási módjai a nyelv eszközkészletével. A szintézis paradigma. A konkurens programozási  modell értelmezése, a hardver komponensek párhuzamos működése. A regiszter transzfer modell és használata.

7.    Magas szintű szintézis alapjai (4 óra elmélet/előadás):

Célkitűzés: A magas szintű tervezési módszerek bemutatása. A magas színtű hardver szintézis algoritmusai. Az algoritmus és architektúra kapcsolata. A folyamat modell gráf használata a tervezésben. Tervezési megközelítések,. ütemezési eljárások, a kritikus út definíciója, az erőforrás allokáció módszerei, tervezési előírások használata. Az ALAP és ASAP algoritmusok erőforrás kiegyenlítési tulajdonságai. Globális és lokális optimalizálás, tervezési munkapontok értékelése.

8.    Logikai rendszerek tesztelése és hibakeresése (4 óra elmélet/előadás):

Célkitűzés: Az fejlesztési technológiák, eszközök bemutatás..

Az beágyazott tesztelés technológiája. Szintetizálható tesztkörnyezet használata a fejlesztés és  bemérés során. Algoritmikus tesztgenerátorork, funkcionális buszmodellek. Processzor alapú teszminta generátorok. A logikai analizátor funkció használata az FPGA áramkörök mérése esetén.      

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás és gyakorlat
10. Követelmények A tárgyból szóbeli vizsgát tartunk. A vizsgára az jelentkezhet, aki az aláírást megszerezte. Az aláírás feltételei a következők: A félév során kiadott tervezési feladat elõírt színvonalú elkészítése.
11. Pótlási lehetőségek

A házi feladat a szorgalmi időszakban és a pótlási időszakban is beadható.

12. Konzultációs lehetőségek Megbeszélés szerint
13. Jegyzet, tankönyv, felhasználható irodalom

James O. Hamblen, M.D. Furman: Rapid Prototyping of Digital Systems, Kluwer Academic Publisher ISBN 0-7923-8604-3

Z. Salcic, A. Samilagic: Digital System Design and Prototyping Using Field programmable Logic, Kluwer Academic Publisher ISBN 0-7923-9935-8

D.R. Smith, P. D. Franzon: Verilog Styles for Synthesis of Digital Systems, Prentice Hall, ISBN 0-201-61860-5

Előadások vázlatai a tárgy honlapján letölthetők.

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra42
Félévközi készülés órákra10
Felkészülés zárthelyire0
Házi feladat elkészítése20
Kijelölt írásos tananyag elsajátítása0
Vizsgafelkészülés48
Összesen120
15. A tantárgy tematikáját kidolgozta Dr. Fehér Béla docens, Dr Horváth Gábor docens, Szántó Péter tanársegéd
Egyéb megjegyzések A tárgy angol neve: Logic Design