![]() |
DigiSim - Ein Digitaler Simulator
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe gerade einen digitalen Simulator fertiggestellt. Die Anwendung ist aus einer Spielerrei hervorgegangen. Vielleicht interessiert sich jemand dafür, deshalb veröffentliche ich ihn hier einfach mal.
|
Re: DigiSim - Ein Digitaler Simulator
Lustige Sache :thumb:
Aber zwei Sachen sind mir aufgefallen:
Bug EDIT: Ich nutze Vista (siehe unten). |
Re: DigiSim - Ein Digitaler Simulator
Hallo omata,
nettes Teil. :thumb: Besonders interessant für Anfänger um Logische Verknüpfungen zu üben/zu durchschauen. mfg cg |
Re: DigiSim - Ein Digitaler Simulator
Der Bug mit der Maus über dem Ausgang scheint nur bei Vista so zu sein.
|
Re: DigiSim - Ein Digitaler Simulator
Vielen Dank für die Rückmeldungen :hi:
Zitat:
Zitat:
|
Re: DigiSim - Ein Digitaler Simulator
Liste der Anhänge anzeigen (Anzahl: 1)
Erstmal 'nen Lob, ist ganicht mal so schlecht geworden.
Aber eines solltest du (falls du dieses Projekt fortführen möchtest) besser mal machen ... und zwar die "Bausteine" nicht statisch im Programm definieren und überall verstreut diese einzeln zu behandeln. Besser wäre es die "Bauelemente" (deren Definition, Behandlung, Berechnung und das Zeichnen) dynamisch zu erstellen ... macht es leichter später mal was zu ändern und auch noch Neues zu definieren (gibt ja nicht nur diese Grundelemente). Hatte mal vor vielen Jahren (bestimmt schon 9-10 Jahre :gruebel: ) selbst mal sowas versucht und ebenfalls (ok, wußte es damals auch nicht besser) alles überall, kreuz und quer fest programmiert in dem Programm und seiner Oberfläche verbaut. Tja und als es anfing komplexer zu werden, war's aus, da ich einfach nicht mehr durchsah, was wie und wo passierte und ich somit die Fehler nicht mehr fand. DigiComponents.pas hier sind die Typendefinitionen und einige Grundfunktionen drin, sowie die Funktionen zur Speicherverwaltung InternalComponents.pas definiert die Komponenten - nicht wundern, da sind 2 Versionen drin, aber mit dem selben Inhalt ... einmal direkt über die Grundfunktionen, ur speicherverwaltung und dann nochmal über 'ne Klasse, welche alles kapselt Und ich hoff mal ich hab soweit keine "neuen" Fehler reingebaut, als ich alles für dich nochmal auf das "Grundlegende" reduziert hab (nur die von dir schon enthaltenen Bauelemente und nichts bezüglich Zoomen und sonstigen Größenänderungen in der Darstellung) DC_GetMem/I_GetMem und DC_FreeMem/I_FreeMem sind eigentlich nur da, damit man später eventuelle Probleme ausschließen kann, welche z.B. beim Laden zusätzlicher Bauelemente (z.B. aus DLLs) bekommen könnte. |
Re: DigiSim - Ein Digitaler Simulator
Dem muss ich beiflichten. Mein Editor für DrawBall war zuerst ziemlich statisch (siehe hier im Forum), aber jetzt habe ich einfach eine Oberklasse und dann für besondere Objekte (z.B. Türen, da sie zwei Stati/Status ^^ annehmen können) Unterklassen. Nudn habe ich mich mit deinem Thema noch nicht so beschäftigt, und kann deshalb nicht sagen wie man das bei dir am besten macht (aber himitsu hat ja einen Ansatz).
Btw himitsu: Zitat:
Aber ansonsten habe ich hier (Windows Vista Home Premium x64) das Problem mit dem Ausgang. Warum genau kann ich dabei nicht sagen. Was interessant ist, dass bei Raufziehen des Ausgangs es zuerst nicht weg war, aber nach ... 100px (?) war alles weg. ging man unter die Grenze zurück war alles in Ordnung. MfG xZise |
DP-Maintenance
Dieses Thema wurde von "fkerber" von "Open-Source" nach "Freeware" verschoben.
auf Wunsch des Autors verschoben |
Re: DigiSim - Ein Digitaler Simulator
Vielen Dank für diese Kommentare. Ich werde meinen Quellcode ab jetzt für mich behalten.
|
Re: DigiSim - Ein Digitaler Simulator
Haben wir dich verärgert oder woher kommt der Sinneswandel?
MfG xZise |
AW: DigiSim - Ein Digitaler Simulator
Hi omata,
ich finde das Programm sehr gut. Versuche zur Zeit auch einen Logiksimulator zu erstellen, aber für einen speziellen Anwendungsfall. Könnte was werden, wenn ich das Problem beim Starten der Simulation lösen würde. Mir ist nicht klar, wie ich etliche Bausteine zeitlich aktualisieren kann, dass die Ausgänge auch richtigen Wert haben. So, wie in deiner Beispielschaltung gezeigt, wird doch eine Aktualisierungsreihenfolge notwendig sein. Das bekomme ich nicht hin, hast du da eine Idee? PS: gibt es zu deinem Simulator ein gesamtes Projekt als Source zum Download. Wäre sehr hilfreich. mfG linwerben:) |
AW: DigiSim - Ein Digitaler Simulator
Du brauchst einen Takt, so wie das bei allen CPU's oder digitalen Chips gemacht wird.
Also sozusagen einen Zustand in dem alle Gatter ihren Zustand um 1 Bit ändern können. Mit jedem Takt werden alle einmal aktiv und setzen einen neuen Zustand an ihrem Ausgang. |
AW: DigiSim - Ein Digitaler Simulator
Der Ersteller des DigiSim war zuletzt vor 12 Jahren online und der Thread hier ist auch schon über 15 Jahre alt! :!:
|
AW: DigiSim - Ein Digitaler Simulator
Zitat:
Aber, wenn der Eingang nicht aktuell ist kann auch der Ausgang nicht richtig berechnet werden. Um den Ausgang von AND2 richtig zu bestimmen, müssen erst alle Bausteine vor diesem auf Grund der Eingänge bestimmt werden. Das ist aber mein Problem. Es müssen ja nicht immer alle Bausteine neu berechnet werden. Wie kann man das machen. mfG linwerben |
AW: DigiSim - Ein Digitaler Simulator
Klar, nach dem einschalten des Stromes herscht immer erstmal Chaos. Das ist ja auch der Grund warum man aus Speicher schon was lesen kann, auch wenn es nur das Rauschen des Universums ist.
So ist das auch bei einfachen FlipFlops / Gattern. Reale Daten liegen nur an der ersten Schicht an. Dann dauert es einige Takte bis "hinten" ein Ergebnis raus kommt. Einmal gesetzte Zustände verändern sich ja nicht mehr. Bzw. werden bei jedem Takt ohne Zustandsänderung am Eingang nur erneuert. Bei CPU's die ohne extra Innenleben daherkommen ist das ja auch so. Raus kommt ein Ergebnis erst nach einigen Takten. Ich kann mich noch erinnern als wir in der Ausbildung selber FlipFlops erstellen und verdraten durften um daraus Zählgatter mit Ausgabe auf einer 7-Segment Anzeige zu basteln. |
AW: DigiSim - Ein Digitaler Simulator
Zitat:
Logikgatter wiederum brauchen keinen Takt. Sobald ein Pegel anliegt, wird der dem Gatter entsprechende Ausgangswert nahezu unverzögert ausgegeben (ns/us). Im Bild vom Beitrag #1 sind es reine Logikgatter. Hier muss nicht mit irgendwelchen Zeitlichen Abläufen gearbeitet werden, dies ist ist auch nicht unbedingt einfach, weil man schlicht die Abhängigkeiten der einzelnen Gatter kennen muss. Bei sich ändernden Schaltungen nicht wirklich einfach. Mit Hilfe der Boolschen Algebra und den De Morganschen Gesetzen geht es deutlich einfacher, wobei dies auf dem Papier einfacher umsetzbar ist, als mit ein paar Codezeilen. |
AW: DigiSim - Ein Digitaler Simulator
Zitat:
Bei einfachen "digitalen" Simulatoren nimmt man einfach 2 Zustände und schert sich oft nicht um sowas. Einfach den alten Zustand nehmen, von einem anfangs definierten Initialzustand ausgehend, und daraus den nächsten Zustand bestimmen/berechnen, indem (notfalls) alle Teile der Schaltung durchlaufen werden. Ausgang = neuer Zustand Eingänge = alter Zustand Dann kopieren und von Vorne. Natürlich kann man auch noch Verzögerungen einfügen, wo einzelne Komponenten intern mehrere Zwischenschritte behandeln, bevor es wirklich am Ausgang ankommt, um unterschiedlich schnelle Bauteile bissl "realistischer" zu handhaben. Analoge Schaltungen zu simulieren, da wird es dann richtig spaßig, da Laufzeiten und ganz feine Signalunterschiede eine extrem große Auswirkung haben können. |
AW: DigiSim - Ein Digitaler Simulator
Hallo omata oder andere User,
ich benötige von DigiSim die gesamten Files des Projektes (dpr, res, frm und pas), um diese in Delphi zu laden und einige Programmabläufe nach zu gehen. Ich schreibe gerade einen eignenen Simulator für eine speziellen Anwendung. Da habe ich noch einige Probleme, die sie bereits gelöst haben. Vielen Dank! linwerben |
AW: DigiSim - Ein Digitaler Simulator
Ich befürchte nach 16 Jahren wird das schwierig.
Aber probier mal die .exe mit KI zu diassemblen. Scheint mit VB4 Code zu funktionieren, siehe: ![]() Ich wäre gespannt, ob das funktioniert. :cyclops: |
AW: DigiSim - Ein Digitaler Simulator
Hi User,
habe es mal mit einen Decompiler probiert. ja, geht, aber das Ergebnis ist unbefriedigend.Die Quellen wären das einzig ware. Gibt es den User omata denn noch? Ich dachte das Internet vergißt nichts, dann sollte doch noch jemand die Quellen abgelegt haben. Wenn nicht, dann muß ich mit meinen Wissen weiter probiren. Danke für die Antwort. Gruß linwerben |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz