Hallo, ich weiß nicht genau in welches Forum ich das jetzt reinschreiben soll also probiere ich es mal hier. Hat schon mal jemand versucht (oder gibt es schon fertige Lösungen?) eine Logikgatterschaltung in Assembler zu konvertieren? Die Gatterschaltung sollte am PC erstellt werden und dann als Assemblercode erstellt werden. Der Controller ist erstmal egal. Mir geht es nur um Lösungsansätze dieses Problems.
Geoffrey M. wrote: > Hallo, > ich weiß nicht genau in welches Forum ich das jetzt reinschreiben soll > also probiere ich es mal hier. Hat schon mal jemand versucht (oder gibt > es schon fertige Lösungen?) eine Logikgatterschaltung in Assembler zu > konvertieren? Die Gatterschaltung sollte am PC erstellt werden und dann > als Assemblercode erstellt werden. Der Controller ist erstmal egal. Mir > geht es nur um Lösungsansätze dieses Problems. Was kann in deinen Gattern alles vorkommen. Wenn es nach der reinen Lehre geht, ist kann da ja nur UND, ODER, NICHT, XOR vorkommen. Und um Grunde ist so eine Gatterschaltung auch nur ein Expression-Tree (wie man es im Compilerbau nennen würde). Man fangt beim Ausgang an und betrachtet die Teilbäume die zu den Eingängen des letzten Gatters führen. Für die wird (mit derselben Funktion, also rekursiv) Code erzeugt, steht der Code, dann betrachtet man die Verknüpfung und erzeugt noch den Code für diese Verknüfung. Genauso wie die Code- generierung in einem Compiler einen Expression-Tree abarbeitet. Ein Problem könnte die Registerbelegung werden. Will man sich das Leben einfach machen, dann implementiert man sich noch eine Stackmaschine und ist somit auch das Problem der Registerallokierung los. Alles in allem: Bei den Compilerbauern solltest du da fündig werden. Klingt nach einem netten Projekt für einen faden Nachmittag.
Erstmal soll es nur ODER, UND, NICHT und XOR geben. Das ist schonmal ein guter Rat am Ausgang anzufangen. Ich habe leider noch nie einen Compiler gebastelt und das wird mein erster versuch sowas zu machen.
Geoffrey M. wrote: > Erstmal soll es nur ODER, UND, NICHT und XOR geben. Das ist schonmal ein > guter Rat am Ausgang anzufangen. Ich habe leider noch nie einen Compiler > gebastelt und das wird mein erster versuch sowas zu machen. Wenn ichs mir recht übelege, ist das eigentlich einfacher als einen Compiler zu schreiben: Es gibt keine Operatoren- Vorrangregeln. Das ganze ähnelt eigentlich mehr der Auswertung eines Expression-Trees als dem Aufbau, der Tree (also die Schaltung) steht ja bereits. d.h. die Technik mit: Am Ausgang anfangen und nach vorne durcharbeiten würde genau das machen. Wie hast du denn die 'Schaltung' erstellt? In welcher Form liegt sie dir vor?
Die Logikschaltung gibt es nur auf dem Papier. Ich bin mir auch noch nicht sicher, welche Programmiersprache die beste für diesen Zweck ist. Hat da jemand einen Vorschlag?
Schau mal bei Cadsoft vorbei http://www.cadsoft.de/microsps.htm Könnten Anregungen für dich dabei sein.
Geoffrey M. wrote: > Die Logikschaltung gibt es nur auf dem Papier. Ich bin mir auch noch > nicht sicher, welche Programmiersprache die beste für diesen Zweck ist. > Hat da jemand einen Vorschlag? Sowas artet immer in einen Glaubenskrieg aus. Nimm die Programmiersprache, die du beherrscht. Solange du das Gewünschte damit machen kannst, ist diese die 'Beste'.
Du solltest vorher festlegen, was du willst: Simulation der Schaltung , wie du sie hingemalt hast (inklusive Gatterlaufzeit) Dann läuft das ganze auf eine Statemachine hinaus, mit verschalteten Ein und Ausgängen. (Sowas musst du nicht programmieren, nimm VHDL) oder Simulation der Funktion dann ist es eher ein Parser mit Vereinfachung, der auf eine zweistufige Funktion führt (DNF oder KNF),danach erzeugst du entweder Code oder eine Lookuptable.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.