Menü Bezárás

Aritmetikai processzor FPGA-n

Tudtad hogy akár az önlabodat is csinálhatod a SEM-ben? Vagy hogy akár az újonc projekted is lehet egyben? Itt egy jó példa!

Készítette: Olasz-Szabó Bence

A feladat az alábbi fő részfeladatokra bontható:

  • Input beolvasása a billentyűzetről
  • Input feldolgozása és a számítás elvégzése
  • Eredmény kijelzése

A fenti 3 részfeladat megoldását külön modulok végzik, amik között az összeköttetést a legfelső szintű modul (calc_top) biztosítja.

A feladat egyik nehézsége az, hogy a billentyűzetről érkező adat formátuma és az LCD kijelzőnek küldendő adat formátuma különböznek egymástól és a számításokhoz egyszerűen felhasználható adatformátumtól is. Ezért a megoldás jelentős részében a különböző adatformátumok közötti konverziót kell megoldani.

Az input beolvasását végző modul (ps2_interpreter) a billentyűzetről a PS/2 formátumnak megfelelő adatot alakítja át az aritmetikai modul számára könnyebben értelmezhető formára. Ezen kívül már ez a modul kiszűri a feladat szempontjából lényegtelen input karaktereket. Továbbá ez a modul értesíti az aritmetikai modult, ha a feladat szempontjából értékes bemenet érkezett a billentyűzetről.

Az input feldolgozását és az eredmény számítását végző modul az aritmetikai modul (arithmetic_controller). Ez a modul a beérkező értékes karaktereket egy állapotgép alapján feldolgozza, majd a számítások elvégzéséhez optimális formátumra alakítja és vezérli a számítások elvégzését, majd az eredményt átalakítja a kijelző modul számára megfelelő formátumra, és kezdeményezi a kijelzés frissítését.

A kijelzésért felelős modul (LCD_DigitCoder) átalakítja az aritmetikai modultól kapott karaktereket az LCD kijelző adatformátumára, és frissíti a kijelzőt, amikor erre az aritmetikai modultól utasítást kap.

A megoldás alapelve: a felhasználótól a billentyűzeten keresztül érkező input események hatására történik a számítások elvégzése, tisztán eseményvezérelt módon, adatáramlásos információfeldolgozási modell szerint. A megvalósítás tisztán hardveres, nincs beépített mikrovezérlő, a vezérlési feladatokat hardveresen megvalósított állapotgép látja el.

A fő modulokat és kapcsolataikat az alábbi ábra szemlélteti:

aritmetikai_fpga_pic1

A teljes dokumentáció elérhető itt: aritmetikai_fpga_dok

Related Posts