kategorie:

menu:


Moje bakalářka: jSimDOP

13.02.2009   ::    topic: Programování

Dnes jsem si uvědomil že jsem zde ještě nenapsal ani jeden post o své bakalářské práci. To i přesto že na tomto projektu pracuji déle jak půl roku (s přestávkami). Tento týden jsem si k ní po dlouhé době zase sednul a tak jsem si řekl že nadešel čas napsat o co vlastně jde a jak jsem se k tomu dostal.

Trocha formalit

Název: Simulátor firmwaru procesoru DOP
Zadání:

Implementujte simulátor firmwaru výukového procesoru DOP (verze 3) v programovacím jazyku Java. Simulátor musí obsahovat editor zdrojových kódů, podporovat breakpointy a krokování po jednotlivých hodinových taktech. Syntaxe zdrojového souboru (mikroassembleru) musí být shodná se stávajícím simulátorem používaným pro výuku (SimDOP).

Co je to vlastně ten DOP

DOP je střadačově orientovaný (ISA) procesor vyvinutý na Katedře počítačů Fakulty eletrotechnické (FEL) na ČVUT. Hlavní motivací bylo vytvořit jednoduchý procesor implementovatelný v logických obvodech FPGA XC4000 (hradlové pole). První návrh tohoto procesoru pochází z roku 1994 (tým kolem Ing. Drápala). V té době měl procesor obvodově řešený řadič.

Aby byl procesor lépe rozšiřitelný a jeho návrh více názornější, bylo později jádro procesoru přepracováno s použitím horizontálního (mikroprogramového) řadiče. První nasazení ve výuce se datuje do roku 1999. S drobnými úpravami (přidány registry, vnější přerušení) je ve výuce používán dodnes.

schéma DOPu

Proč jsem si vybral toto téma

Tento procesor mě od první chvíle fascinoval. Byl první u kterého jsem měl možnost vidět kompletní návrh. Za vykonáváním instrukce jsem si tak poprvé mohl představit práci firmwaru a konkrétní data na sběrnicích. Toto objevování „nového světa“ mi kazil pouze jeden fakt. A to stávající simulátor mikroprogramu (firmwaru), který je určen pro systém MS DOS! Z použitelnosti tohoto simulátoru mi nepřetržitě tekly nervy. Tenkrát se zrodil nápad napsat si simulátor vlastní.

původní SimDOP

V březnu 2008 jsem se na Strahově účastnil dvoudenního maratonu přednášek „NetBeans Certified Training“ kde nám byly představeny NetBeans jako platforma pro vývoj aplikací v Javě. Bylo rozhodnuto. Na této platformě zkusím napsat svůj simulátor.

Současný stav

Pro vývoj IDE s podporou projektů, zvýrazňováním kódu, navigací pomocí odkazů (…) je platforma NetBeans naprosto ideální. Některé api jsou sice špatně zdokumentovány a tak jsem musel danou část kódu nějak „zprasit“, dobře navržený základ platformy to ale plně vynahrazuje.

nový simulátor jSimDOP
V současné době má simulátor tyto vlastnosti:
  • podporu projektů
  • spuštění simulace (debuggeru), krokování, „run to cursor“, řádkové breakpointy
  • zvýrazňování kódu
  • doplňování kódu (zatím pouze závorky)
  • navigace v kódu pomocí okna navigátoru a odkazů v kódu (ctrl+klik na návěští)
  • označování syntaktických i sémantických chyb během psaní

Následující semestr mám v plánu poskytnout program studentům kurzu JPO na testování. Proto chci program uvést do použitelného stavu ještě před začátkem semestru.

Projekt je umístěn na serveru SourceForge: http://jsimdop.sourceforge.net/