Regisztráció és bejelentkezés

Új módszer algoritmusok VHDL-be történő transzformációjára Haskell funkcionális nyelvből kiindulva

Bár egyre nagyobb a hagyományos, processzoros rendszerek működési sebessége, kifejezetten időigényes feladatok, bonyolult biológiai, fizikai számítások szükségessé teszik, hogy az általános célú processzoroknál hatékonyabb hardverstruktúrákat, esetenként célhardvereket fejlesszünk a probléma megoldására. Ezeket a hardverstruktúrákat általában hardverleíró nyelveken (HDL) implementálják. A matematikusok, informatikusok előtt ezek a nyelvek általában kevésbé ismertek, ők az algoritmusokat általános programnyelveken fogalmazzák meg. A hardverleíró és általános programnyelvek nagyon eltérő módon használhatóak (a két módszert szinte szakadék választja el egymástól), és közöttük az átjárás lehetősége csekély. Az átjárás megoldására jelenleg is számos kutatás folyik, ezek a módszerek rendkívül lényeges részét képezik az ún. rendszerszintű szintézisnek.

Egy funkcionális nyelvből kiinduló hardverszintézisnek több előnye is van a hardverleíró nyelven történő implementáláshoz képest. A fejlesztés gyorsabb a magasabb szintű absztrakciónak köszönhetően, az algoritmus változtatása esetén a hardvermódosítás pedig könnyebben kivitelezhető, mert egy funkcionális nyelvi program az algoritmusból közvetlenül és jóval egyszerűbben képezhető, mind egy HDL leírás. A HDL-re való fordítás pedig a jelen dolgozatban kifejlesztett fordítóprogrammal előnyösen automatizálható. A funkcionális nyelvi programkód futtatható PC-n, ezáltal könnyen tesztelhető, ezzel szemben a hardverleíró nyelvek bonyolult szimulációval érik el ezt a funkciót, ahol ráadásul a be- és kimeneteket digitális jelszintekként kezelik, tovább bonyolítva ezzel a tesztelést.

Fentiek alapján a TDK dolgozatomban egy olyan eljárás (fordítóprogram) kidolgozása, implementálása és tesztelése a célom, amelyek kiindulópontja a funkcionális nyelven leírt kód. A funkcionális nyelvek közül a Haskell nyelvre koncentrálok, ami egy igen lendületesen fejlődő, a kutatómunkát előnyösen támogató nyelv.

Az eljárás fő előnye, hogy automatikusan generálja a bizonyos megkötésekkel rendelkező Haskell nyelvi kódból az FPGA-ba szintetizálható VHDL leírást. A fordítási folyamatba beilleszthetünk akár egy olyan pipeline optimalizáló fokozatot, mint pl. az Irányítástechnika és Informatika Tanszéken fejlesztett PIPE tervező programrendszert.

Az eljárás hatékonyságát az MP3 dekódoló algoritmus részletén szemléltetem.

szerző

  • Suba Gergely
    mérnök informatikus
    nappali

konzulens

  • Dr. Arató Péter
    , Irányítástechnika és Informatika Tanszék