Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   DigiSim - Ein Digitaler Simulator (https://www.delphipraxis.net/126620-digisim-ein-digitaler-simulator.html)

linwerben 8. Aug 2024 19:41

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:)

Sinspin 9. Aug 2024 10:12

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.

TiGü 9. Aug 2024 11:10

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! :!:

linwerben 9. Aug 2024 19:22

AW: DigiSim - Ein Digitaler Simulator
 
Zitat:

Zitat von Sinspin (Beitrag 1539666)
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.

Danke für die Antwort.
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

Sinspin 9. Aug 2024 19:57

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.

blawen 9. Aug 2024 23:18

AW: DigiSim - Ein Digitaler Simulator
 
Zitat:

Zitat von Sinspin (Beitrag 1539699)
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.

Getaktete Schaltungen (FlipFlops, etc.) haben normalerweise einen Reset Eingang, insofern herscht kurz nach dessen Aktivierung ein definierter Ausgangszustand - diesen braucht es auch, wer weiss, was die Schaltung sonst machen würde. Von "es geschieht gar nichts" bis zur "Selbstzerstörung" liegt alles drin ;-)

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.

himitsu 9. Aug 2024 23:25

AW: DigiSim - Ein Digitaler Simulator
 
Zitat:

Zitat von blawen (Beitrag 1539704)
nahezu unverzögert ausgegeben (ns/us).

Mindestens Lichtgeschwindigkeit, da das elektrische Feld im Leiter auch so schnell ist, aber es kann in gewissen Medien auch langsamer sein, vor allem dann, wenn andere physikalische/chemische Vorgänge eine Rolle spielen.

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.

linwerben 25. Feb 2025 19:52

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

Phoenix 27. Feb 2025 12:37

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: https://www.reddit.com/r/ClaudeAI/co...claude_37_and/

Ich wäre gespannt, ob das funktioniert. :cyclops:

linwerben 28. Feb 2025 18:05

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 10:17 Uhr.
Seite 2 von 2     12   

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