logikschaltungen [designfrage]



  • Hallo

    ich arbeite grade an einem programm, mit dessen hilfe man von einfachen und-
    und odergattern (und anderem zeugs) komplexe schaltungen aufbauen kann.

    im informatikunterricht arbeiten wir mit einem solchen programm (locad), da
    dieses jedoch

    a) unter lizenz steht
    b) schrecklich langsam ist
    c) nicht genug "platz" bietet
    d) und gelegentlich abstürzt

    möchte ich selber so ein programm schreiben 🙂

    man kann verschiedene gatter auf den bildschirm ziehen und zwischen deren ein-
    und ausgängen leitungen spannen, die die elemente verbinden.

    ich habe das im augenblick so realisiert, dass ein element seine ausgänge
    entsprechend der eingänge schaltet und dann aufgrund der position des ausgangs
    nach anderen eingängen sucht, die in der unmittelbaren nähe liegen. das hat
    eine deutlich (!) höhere geschwindigkeit als das originalprogramm und kommt
    auch mit verzweigungen von leitungen zurecht.

    allerdings möchte ich jetzt erlauben, aus vorhandenen bauteilen einen neuen
    chip zusammenzusetzen, der den ablauf in sich integriert und selber wieder
    als bauelement verwendet werden kann (entspricht den funktionen aus programmier-
    sprachen).

    hier stößt mein "positionsbasiertes" arbeiten jedoch an seine grenzen, die
    kommunikation zwischen "außenwelt" und "chipinnenleben" funktioniert nur
    bedingt, da die beiden schaltkreise in verschiedenen verarbeitungsschichten
    liegen und so nicht zusammen ausgeführt werden können (verarbeitung im haupt-
    programm ruft chip-verarbeitungsschleife auf, diese muss also kommplett durch-
    laufen).

    multithreading würde das ganze nurnoch verschlimmern damit gehts also nicht.

    ich dachte mir, dass jedes element statt durch seine position mithilfe von
    zeigern mit anderen elementen verbunden wird.

    + direktes "antworten" auf einen impuls
    + kommunikation über chipgrenzen hinweg möglich

    - gefahr von "endlosschleifen", ließe sich aber auch irgentwie beheben
    - mehr aufräumarbeit notwendig (kann durch oop fast ganz vermieden werden, daher
    nebensächlich)

    bevor ich jedoch das ganze programm umschreibe, was immer schlecht ist, wollte
    ich mal eure meinung/tipps zum design hören:

    wie organisier ich die verbindungen zwischen den elementen?

    an dieser stelle danke fürs durchlesen und einen schönen abend noch!

    MfG cad-mensch



  • *push*



  • Ich verstehe nicht ganz was dein positionsbasiertes System sein soll, aber mach es folgendermaßen. Trenne die Simulation der Bauteile von der grafischen Darstellung. Die Schaltung kannst du dann mit einem Graphen realisieren.


Anmelden zum Antworten