Digitális áramkör szimulációja reaktív programozási technikákkal

Tanszéki konzulens: 
A munkatárs fényképe
óraadó
Szoba: IE335

A kiírás adatai

A téma státusza: 
Korábbi (jelenleg nem aktív, de látszik)
Kiírás éve: 
2015
A kiírás jellege: 
szorgalmi feladat, önálló labor, szakdolgozat/diplomaterv

A reaktív programozást legjobban talán úgy tudjuk megfogni, hogy léteznek eseményforrásaink (például egérmozgás, billentyűzet, stb.). Ezeket tulajdonképpen úgy is el lehet képzelni, mintha lenne egy tömbünk (FIFO-nk), amiből folyamatosan olvashatjuk ki a megtörtént eseményeket. Ezek mellett pedig vannak függvényeink, amelyeket ráeresztve erre a tömbre különféle műveleteket hajthatunk végre. (Kedvenc példakódom: https://raw.githubusercontent.com/ReactiveX/RxPY/master/examples/timefli...)

A logikai szimuláció "klasszikus" megvalósítása egy egyszálú, az eseményeket és időzítési eredményeket egy táblázatban tároló architektúra volt. Ez szélességében (több processzorra) nehezen skálázódik.

A téma kulcsgondolata az a felismerés, hogy tulajdonképpen egy logikai kapu kimenete tekinthető eseményforrásnak, maga a kapu funkcionalitása pedig egy, a bemenő eseményforrásokon végrehajtott művelet. Tehát maga az Rx a HDL nyelvekből megismert adatfolyam típusú szoftverarchitektúrát valósítja meg.

A téma keretében megismerheted: .NET, C# vagy Python, Reactive programming, LINQ, Rx. Ha nem riadtál el, akkor: actor model, TLM hardvertervezés, functional programming.

A feladatod a következő lenne (B.Sc. két-három féléve):

  • Belevetni magad az egyik legismertebb reactive programkönyvtárba, az Rx-be: http://www.introtorx.com/, https://msdn.microsoft.com/en-us/data/gg577609
  • Rövid példakódokkal, egyszerű feladatokkal megismerni, elsajátítani a reactive programozást (vigyázat, szemléletformáló! Ha egyszer találkoztál vele, onnantól megváltozik a programozási stílusod :-))
  • Egyszerű logikai kapuk (ÉS, VAGY, stb.) Rx alapú megvalósítása, tesztelése
  • Szinkron sorrendi hálózatok megvalósítása

Később, ha még nem merült ki az érdeklődésed (M.Sc.):

  • Időzítéses szimuláció Rx segítségével
  • Egy másik reactive koncepció, az actor model megismerése (Akka, illetve Erlang üzenetmodelje)
  • Tranzakció szintű szimuláció megvalósítása az actor model alkalmazásával
  • Kevert szintű szimuláció actor model és Rx használatával

Tehát az talán látszik, hogy a téma nagy. Mit nyersz vele:

© 2010-2024 BME MIT | Hibajelentés | Használati útmutató