Entwickler-Ecke
Freeware Projekte - Hardware Simulator
Tilman - Mo 27.06.05 16:52
Titel: Hardware Simulator
Wir sollten mal in der Schule einen Hardware-Simulator schreiben (Also ein Programm welches Schaltungen aus AND,OR,LEDs und Schaltern bauen lässt). Ist mir gerade wieder in die Hände gefallen, stelle es daher mal Online.
// Edit: Ich habe jetzt die "AKTUELLE" Version (HAPS) eingestellt. Diese Version habe ich zwar vor etwa 1/2 Jahr erstellt, sie ist aber viel besser als diejenige welche ich bisher hier zum download angeboten habe. Zusätzlich habe ich noch das Flimmern beseitigt.
Delete - Mo 27.06.05 20:44
Wäre nett, wenn du dir zu mindest die Mühe machen würdest und erklären würdest, wie man das bedient. Ich habe zwei Schalter ein And gatter und ein LED drauf und wie geht es jetzt weiter? Wie verbind eich die?
Und warum flackert das immer so?
WeBsPaCe - Mo 27.06.05 20:54
Luckie hat folgendes geschrieben: |
| Wäre nett, wenn du dir zu mindest die Mühe machen würdest und erklären würdest, wie man das bedient. Ich habe zwei Schalter ein And gatter und ein LED drauf und wie geht es jetzt weiter? Wie verbind eich die? |
Die Punkte auf dem Rand der zwei zu verbindenden Objekte nacheinander anklicken. ;)
Luckie hat folgendes geschrieben: |
| Und warum flackert das immer so? |
Garantiert
DoubleBuffered = False... ;)
Trotzdem blicke ich das Programm nicht so ganz... :gruebel:
Tilman - Mo 27.06.05 20:55
Achso, ja, sorry. Du must erst auf den Ausgang eines Elements (etwa einem Schalter) klicken und dann auf einen Eingang. (Kontakte sind leider etwas klein; hatta damals niedrige Auflösung ;-) ). Das Simpel-Element mach gar nichts sondern leitet den Strom nur weiter, damit kann man die Leitungen etwas übersichtlicher "verlegen". Die anderen Elemente erklären sich denke ich von selbst.
Tilman - Mo 27.06.05 20:57
WeBsPaCe hat folgendes geschrieben: |
Luckie hat folgendes geschrieben: | | Und warum flackert das immer so? |
Garantiert DoubleBuffered = False... ;)
Trotzdem blicke ich das Programm nicht so ganz... :gruebel: |
Naja, daran liegts nicht. Die Option wirkt nicht immer so gut. Muss das Programm nochmal überarbeiten. Ist einfach nicht sooo doll geprogt (auch schon ca. 2 Jahre her). Aber es erfüllte stets seinen ZWeck.
ähm, was genau blickst du nicht so ganz?
WeBsPaCe - Mo 27.06.05 20:59
Tilman hat folgendes geschrieben: |
| ähm, was genau blickst du nicht so ganz? |
Was das Programm überhaupt soll... ;) Liegt wahrscheinlich daran, dass ich damit nicht tagtäglich arbeite... ;)
Tilman - Mo 27.06.05 21:03
Man kann damit logische Schaltungen simulieren, z.B. ein FlipFlop oder sogar Addierwerke. Mal gucken, vielleicht mach ich mal eins und stell nen Screenshot rein.
Mir fällt gerade auf das dies ungefähr die Version its die ich als Hausaufgabe abgegeben habe, ich habe eigentlich auch schon Halbaddierer und Volladierer usw eingebaut, aber die version hab ich leider nicht da... :?
WeBsPaCe - Mo 27.06.05 21:09
Okay... :gruebel: Das braucht man anscheinend, wenn man in dieser Sparte arbeitet... Ich versteh' nur Bahnhof... FlipFlops? Sowas hab ich an meinen Füßen... :lol:
Mach' dir nicht die Arbeit, mir das zu erklären... ;)
Tilman - Mo 27.06.05 21:13
@WeBsPaCe
| Zitat: |
| Dieser Artikel beschäftigt sich mit dem elektronischen Bauelement der bistabilen Kippstufe. Für die gleichnamigen sandalenartigen Schuhe siehe Zehengreifer. |
(Aus Wikipedia genommen)
Die Mühe hab ich mir aber trotzdem gemacht, hier ist ein (einfaches) FlipFlop und ein Addierwerk (nicht so einfach). Wie man ein FF erstellt schreibe ich weiter unten.
Delete - Mo 27.06.05 21:19
Deine LippFlopp Schaltung zerstört sich bei mir selber. Das heißt Verbindungen werden beim Schalten gelöscht.
Tilman - Mo 27.06.05 21:51
ich weiß nicht genau was der Fehler ist, aber bedenke: ein Eingang darf nur von einer Leitung bedient werden. Wird ein Eingang doppelt belegt so wird die erste Verindung gelöscht.
Anleitung für mein FF: (Man kanns Grafisch evtl. nicht so gut erkennen):
nimm zwei NAND's aufs Formular
nimm zwei Schalter
nimm eine LED
verbinde die schalter mit jeweils einem NAND
verbinde den Ausgang des Einen NANDs mit dem (freien) eingang des anderern und umgekehrt (Rückkopplung).
Verbinde den Ausgang des einen NANDs zusätzlich mit der LED (ein Ausgang darf also mehrere leitungen besitzen). Hoffe es gelingt so.
(Die Simpel's waren nur damit man sieht wie die Leitung verläuft, wahrscheinlich irritieren sie mehr)
Achja, falls es nicht klar ist: beide Schalter müssen dann auf "ON" stehen. Zum setzen den einen Schalter auf "OFF" stellen und wieder auf "ON". Zum löschen dasselbe mit dem anderen Schlater durchführen. Normalstellung: beide Sschalter auf "ON" ("Bewahren")
DarkHunter - Mo 27.06.05 22:25
hum
nettes programm
wenn die steuerung nicht so fizelig wäre
schade
Tilman - Mo 27.06.05 22:28
DarkHunter hat folgendes geschrieben: |
hum
nettes programm
wenn die steuerung nicht so fizelig wäre
schade |
Ja, tut mir leid, besonders mit hoher Auflösung ist das echt blöd zu bedienen. ma gucken ob ich das demnächst verbessere. Und die Grafik ist auch besch***, aber das die leitungen abknicken statt quer durchzulaufen ist halt doch ne deutliche nummer schwieriger zu proggen.
Delete - Mo 27.06.05 22:50
Mist, ich habe AND Gatter genommen. :roll: Ich würde NAND Gatter mit einem Strich über dem "&" deutlich machen oder so.
Tilman - Mo 27.06.05 22:57
Luckie hat folgendes geschrieben: |
| Mist, ich habe AND Gatter genommen. :roll: Ich würde NAND Gatter mit einem Strich über dem "&" deutlich machen oder so. |
Gute Idee, ich weiß der Negations-Punkt ist nicht gut zu erkennen (Das NOT würde auch keinen preis gewinnen). Wie gesagt, nächste Woche hol ich meine Sources und dann poste ich ne besser Version rein!
BenBE - Di 28.06.05 10:23
Eine Funktion zum Laden und Speichern der eigenen Machwerke wäre noch schön ;-)
Genauso eine Gruppierungsfunktion, wo man einzelne Komponenten immer gemeinsam verschieben kann.
Auch weitere Vorgefertigte Elemente (Wie HA und VA) wären schön.
Außerdem solltest Du ein Komponenten-Raster erzeugen, an dem die Komponenten ausgerichtet werden, sonst ist das Gefriemel und wird nur unübersichtlich ...
Aber ansonsten ganz nett ...
GTA-Place - Di 28.06.05 17:18
Erinnert mich an CrocodileClips. Konnte man eigene Schaltungen (bzw. beim Chemie-Prog eigene Lösungen) basteln.
Vorschläge:
1. Flimmern weg
2. Labels lassen sich net löschen
3. Speichern laden
4. Abbruch-Button bei neuem Label geht net korrekt (wird trotzdem angezeigt)
5. Wenn Element gelöscht wird, bleibt das Kabel sichtbar (nach minimieren und wieder anzeigen, geht's dann)
6. Button zum Fläche löschen (also "neu")
7. Beim Verschieben von Schaltern, wechseln die von "off" auf "on" bzw. andersrum
8. Kabel soll man löschen
PS: Verwende doch die JVCL-Kompos, da gibts sogar schöne LEDs.
Tilman - Di 28.06.05 18:46
Da jetzt mehrmals das "flimmern" monier wurde:
Es ist nicht so das ich keine ahnung von DoubleBuffering habe. Werde das auch noch einbauern. Das problem war bisher das unser Lehrer vorgegeben hatte, die einzelnen Gatter als Ableitung von tPanel zu realisieren, wodurch das Flimmern meiner meinung nach kommt. Ich werde jetzt mal versuchen die Gatter einfach nur "Zeichnerisch" zu realisieren, dann könnte ich das Flimmern durch DoubleBuffering unterbinden.
BenBE - Di 28.06.05 22:52
Bug:
Wenn ich an einer Komponente eine weitere über einen Draht verbunden haben und die zweite Kompo lösche, so erhalte ich nach dem Löschen der zweiten Kompo auf den Knopf der ersten Kompo eine AV.
Achso: Einige Grafik-Fehler beim Wechseln der Verbindungen ... (Erst nach Verschieben der Kompos geht's wieder richtig)
Tilman - Di 28.06.05 23:09
Ja, ich weiß das das mit dem löschen mal merh und mal weniger oft funzt...
Übrigens habe ich zur Bedienung noch vergessen zu erwähnen das man mit einem rechts-klick auf die weisse fläche abstellen kann das neue Komponenten erstellt werden. (Wichtig falls man sich verklickt)
Also ich habe jetzt meine wirklich letzte version eingestellt, sie enhällt einige Verbeserungen die mir selber eingefallen waren und die aber z.t. auch in diesem Forum eingebracht wurden. Einzige (neue) Neuerung: ich habe gerade die Panels auf DoubleBuffered = true gestellt, das verringert das Flimmern doch erheblich.
Ansonsten ist diese version aber kaum noch mit der alten zu vergleichen! Ausprobieren!
Tilman - Mo 04.07.05 15:48
Mit der neuen version kann man jetzt auch locker "selber" ein Addierwerk bauen, ist viel Übersichtlicher. Die neue version macht deffinitiv mehr Spaß!
Achja: Die "Aufgabe" lautet diesmal "3+5=8". Leider habe ich in dieser Version das Label weggelassen, werd ich wieder reintun.
F34r0fTh3D4rk - Mo 04.07.05 16:02
ich hab mir ne kleine blink schaltung gebaut :lol:
was ist eigentlich, wenn man 2 von den timer dingern (ich nenn die jetzt mal so) mit verschiedenen intervallen xor verknüpft, was für ein wert kommt da raus, dein programm zeigt das leider nicht an :(
Tilman - Mo 04.07.05 16:06
F34r0fTh3D4rk hat folgendes geschrieben: |
ich hab mir ne kleine blink schaltung gebaut :lol:
was ist eigentlich, wenn man 2 von den timer dingern (ich nenn die jetzt mal so) mit verschiedenen intervallen xor verknüpft, was für ein wert kommt da raus, dein programm zeigt das leider nicht an :( |
Naja das ist halt Spielerei. Ein ganz normaler Delphi-Timer und du stellst halt ein was für einen Intervall der hat.. da hätte ich auch drauf verzichten können, aber wieso?
Natürlich sollte man die Sache dann aber nicht mehr zu "ernst" sehen, d.H. die Simulation hat evtl. nicht mehr viel mit der "Wirklichkeit" also echten Schaltungen zu tun. Also bitte keine Waffensysteme, Nuklearanlagen, lebenserhaltende Geräte... usw. damit "Entwickeln" ! 8)
F34r0fTh3D4rk - Mo 04.07.05 16:09
das ging aber schneller als in delphi.
sowas sollte es in delphi auch geben.
bei cinema 4d wird sowas wie eine programmiersprache gehandlet, man kann sehr viele sachen machen indem man etwas verknüpft, parameter angibt, etc.
Tilman - Mo 04.07.05 16:20
Noch eine Wichtige ergänzung: die Einstellung "Optionen / Taktrate" bezieht sich darrauf wie schnell die Komponenten reagieren bzw. das jedem Gatter innewohnende Timer-Objekt. Man kann es also auf 1 schalten um beste Ergebnisse zu erzielen. Bloß: Gatter werden mit dieser Einstellung "erzeugt". Das bedeutet man muss ERST die einstellung ändern und DANN neue Gatter auf die Form ziehen, sonst tut sich nix! Bereits existierende Gatter werden nicht geändert!
stefan2005 - Mo 04.07.05 20:50
hi,
schönen Programm !
kann man eigentlich solche Schalter auch selbst verändern, ohne draufzuklicken ?
also ich mein so eher als Speicherplatz verwednen ?
cu,
stefan2005
Tilman - Mo 04.07.05 21:00
stefan2005 hat folgendes geschrieben: |
hi,
schönen Programm !
kann man eigentlich solche Schalter auch selbst verändern, ohne draufzuklicken ?
also ich mein so eher als Speicherplatz verwednen ?
cu,
stefan2005 |
ich verstehe nicht ganz was du meinst. Also das FlipFlop (FF) hat z.B. die Funktion einer Speicherzelle. Davon abgesehen stellt ein AND-Gatter im Prinzip einen "Programmierbaren" Schalter dar. D.h. der Strom fließt durch wenn Strom kommt UND der Schalter auf "ON" steht (so könnte man sich das jedenfalls vorstellen).
stefan2005 - Mo 04.07.05 21:12
hi,
also wenn man z.B. einen taktgeber hat:
im ersten Takt bearbeitet er z.B. irgendwelche Bits.
nun möchte ich diese Bits speichern, um im nächsten Takt mit diesen weiterzuarbeiten.
cu,
stefan2005
Tilman - Mo 04.07.05 21:17
Naja, dann must du mal im Internet (z.B. Wikipedia) schauen nach einem Taktgesteuerten FlipFlop, das habe ich nämlich noch nicht mit eingebaut. Man kann es sich aber leicht selber zusammenschrauben aus den Teilen die ich schon eingebaut habe.
BenBE - Do 07.07.05 19:57
Was mir in dem HAPS noch fehlt, ist, dass man eigene Bauelemente abspeichern und als "Predefined Elements" in anderen Schaltungen nutzen kann. So in der Art "Integrierte Schaltkereise".
Tilman - Fr 08.07.05 02:04
BenBE hat folgendes geschrieben: |
| Was mir in dem HAPS noch fehlt, ist, dass man eigene Bauelemente abspeichern und als "Predefined Elements" in anderen Schaltungen nutzen kann. So in der Art "Integrierte Schaltkereise". |
Die Idee ist gut, sogar SEHR gut, aber nicht ganz so einfach umzusetzen. Ich werde es vielleicht mal die Woche versuchen... aber noch keine Garantie.
BenBE - So 10.07.05 12:23
Hab hier mal ein vollständiges 8 bit Addierwerk zusammengebaut, dass sogar die Falgs des add-Befehls von ASM korrekt setzt. Wusste nur nicht, ob man das auch mit noch ein paar weniger Bauteilen hinbekommt.
BTW: Ein &4, Not&4 (Inverse aller Eingänge, danach AND, siehe Grafik von mir) und ein xor4 währen nicht schlecht.
uall@ogc - So 10.07.05 12:32
dein xor hat ne falsche bezeichnung kreis um +
das richtige zeichen für nen xor bauteil wäre ne "=1"
das ergibt sich aus der addition
or = 1/0 0/1 1/1, wobei die werte addiert >= 1 sind, daher die bezeichnung
xor = 0/1 1/0 eobei die werte addiert = 1 sind, daher die bezeichnung dafür
(das nur so zur info *mecker*)
Tilman - Mo 11.07.05 13:34
uall@ogc hat folgendes geschrieben: |
dein xor hat ne falsche bezeichnung kreis um +
das richtige zeichen für nen xor bauteil wäre ne "=1"
das ergibt sich aus der addition
or = 1/0 0/1 1/1, wobei die werte addiert >= 1 sind, daher die bezeichnung
xor = 0/1 1/0 eobei die werte addiert = 1 sind, daher die bezeichnung dafür
(das nur so zur info *mecker*) |
Den herleitungsweg und das Symbol kenne ich wohl, und auch ich bevorzuge dieses eigentlich - keine Ahnung warum ich damals das blöde Symbol verwendet habe :?
JEDOCH:
http://de.wikipedia.org/wiki/XOR-Gatter zeigt ganz klar das wir BEIDE recht haben!
@BenBE:
Ich muss mal schauen ob ich die Sachen einbaue, auf jedenfall freut es mich das mal jemand wirklich was damit gemacht hat wie deine Grafik beweißt. Ich denke das ich bis Mittwoch eine aktualisierte Version online stelle.
uall@ogc - Mo 11.07.05 16:49
stimmt nicht ganz,
DIN normal = rechteck mit = 1
andere form = halbkreis mit (+)
deins = rechteck mit (+) gibts nicht ;)
BenBE - Mo 11.07.05 16:50
Eine Signalanzeige an den Ausgängen wäre evtl. noch hilfreich (so, dass z.B. Ausgänge, die eingeschaltet sind, blau markiert werden).
//Edit: Hab mal noch ein 4bit Addierwerk angefügt, mit dem man über einen Schalter auch auf den Subtraktions-Modus wechseln kann.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!