Hallo, ich bitte vorweg um Nachsicht dafür, falls das Nachfolgende unbeholfen klingen mag. Doch bin ich kein gelernter Informatiker, aber dennoch sehr daran interessiert, was im Innersten eines Computers im Einzelnen geschieht. Stichwort: »Von-Neumann-Archtitektur« Hierzug erkunde ich seit einiger Zeit eine Reihe von Simulatoren, die die einzelnen Prozesse teilweise höchst anschaulich abbilden und auch dazu anregen wollen, selbst kleine Programme zu schreiben, welche dann (in Maschinensprache übersetzt) in ihrer Auswirkung am Modell konkret beobachtet und studiert werden können. Ich bin einfach fasziniert davon. Nun komme ich zu meinem eigentlichen Anliegen: Ich bräuchte bitte ein wenig Unterstützung dabei, um einen Code für einen ganz bestimmten Simulator zum Leben zu erwecken, sprich: executable machen zu können. Die Kenntnisse dazu fehlen mir leider völlig; selbst das geduldige Recherchieren darüber, wie man dabei vorgehen muss/müsste, verkleinerte nicht im Geringsten die Distanz zum Erfolg ... und so wende ich mich nun also an Euch Fachleute. Hierum geht's: https://github.com/PAntoine/Little-Man-Computer Es gibt eine Überraschung für denjenigen, der mir beim Lösen meines kleinen Problems behilflich ist – Ehrenwort!
Susan R. schrieb: > Ich bräuchte bitte ein > wenig Unterstützung dabei, um einen Code für einen ganz bestimmten > Simulator zum Leben zu erwecken Für welchen? Unter Xilinx’ ISE sollte es ja anschaubar sein.
:
Bearbeitet durch User
Susan R. schrieb: > einen Code Wo hast Du denn den Code? Das GitHub-Projekt scheint ja nur der Simulator/FPGA-Projekt zu sein... Gruss Chregu
Hallo, danke erst einmal für Eure rasche Antwort bzw. Fragen! Nun ja, doch wie gehe ich da im Detail vor? Ich hatte noch nie mit Xilinx zu tun. Ich nehme an, dass ich sämtliche im Repository (siehe obigen Link im Eingangsposting) befindlichen Verzeichnisse und Dateien zur Ausführung benötigen werde. Oder muss da bereits Grundsätzliches beachtet werden? Bedenke bitte, dass ich so etwas noch nie gemacht habe. Ich hatte es ja, wie erwähnt, mit Nachlesen versucht, doch da sehe ich den Wald vor lauter Bäumen nicht. Und zur zweiten Frage (von christian_m280): Alles, was ich schrieb, bezieht sich allein auf die im Repository enthaltenen Dateien. Ich nahm an, dass man damit in einer geeigneten Umgebung die Simulation ausführen könne.
Nehm dir lieber einen AVR-Mikrocontroller her und lerne darauf Assembler programmieren. Dann verstehst du, wie ein Rechner funktioniert.
Hast Du Dir den Artikel in der Wikipedia (https://en.wikipedia.org/wiki/Little_man_computer) angeguckt und gelesen? Das gezeigte Github-Projekt ist eine kleine Fingeruebung fuer einen kleinen Forschungsprozessor, genauer gesagt den Little Man Computer (von Dr.Stuart Madnick an der ISU in 1965). Das war damals Stand der Forschung wie man das Steuerwerk durch einen Computer ersetzt (da kam auch die PDP8 auf den Markt). Ueber die PDP8 findest Du genug Literatur. Es stellt sich allerdings die Frage was Du mit sechzig Jahre alter Technologie machen willst? Wenn Du mehr Theorie der Rechenwerke angucken willst, wuerde ich den MIX-Prozessor benutzen (siehe Knuth, TaoCP, Vol.1, 1968(!)) oder, wenn Du mehr Hardware sehen willst, Computerarchitektur (z.B. Ward/Halstaed, Computation Structures, MIT Press, 1986). Gruesse
Also ich versuche es einaml neu zu formulieren: Wie würdet ihr dabei vorgehen, wenn ihr obiges Projekt einmal selbst ausprobieren wolltet? Das heißt, wenn ihr tatsächlich im Assembler-Eingabefeld Instruktionen eintragen und das Programm dann durchlaufen lassen möchtet? Der Entwickler muss ja auch irgendwie damit gearbeitet haben um es testen zu können. Ich hatte wirklich noch nie mit einem Projekt auf Github zu tun, deshalb bitte ich Euch da wirklich sehr um Verständnis, wenn ich so alberne Dinge frage ;)
Beitrag #7838016 wurde vom Autor gelöscht.
Fuer Lernzwecke in der Art um 'mal eben' zu spielen gibt es diverse Playgrounds (im Browser), aber leider muss man auch da die Designsprache erst mal beherrschen. Und spaetestens bei der Ausfuehrung von Code ist schluss. Mein Vorgehen bei externen V*-Projekten, die kaum dokumentiert oder nicht fertig zum sofortigen Laufenlassen sind: * Jupyter Notebook mit fertigem Playground (icarus, GHDL, yosys, usw.) aufmachen * Jeden Schritt von Source-Checkout bis zur laufenden Testbench brav dokumentieren und Rekonstruierbarkeit testen So wie ich obiges Projekt ueberflogen habe, fehlt da einiges, um es mal eben schnell zu bauen resp. es in einer Referenzumgebung zu testen. TODO also vermutlich: * Assembler compilieren * VHDL-Simulator aussuchen (GHDL oder kommerzielles tool) * Programm uebersetzen, in VHDL-ROM-Form bringen, Testbench nudeln lassen * Signale mit GTKWave o.ae. anschauen Wie das im Notebook grundsaetzlich laeuft, kann man hier sehen: https://github.com/pcornier/1pCPU.
Thorsten M. schrieb: > Nehm dir lieber einen AVR-Mikrocontroller her und lerne darauf Assembler > programmieren. Dann verstehst du, wie ein Rechner funktioniert. Als Beispiel für die Von-Neumann-Architektur sind AVRs allerdings eher ungeeignet, die verwenden eine (modifizierte) Harvard-Architektur.
Susan R. schrieb: > Es gibt eine Überraschung für denjenigen, der mir beim Lösen meines > kleinen Problems behilflich ist – Ehrenwort! Ich hasse Überraschungen...
Susan R. schrieb: > Also ich versuche es einaml neu zu formulieren: Wie würdet ihr dabei > vorgehen, wenn ihr obiges Projekt einmal selbst ausprobieren wolltet? > Das heißt, wenn ihr tatsächlich im Assembler-Eingabefeld Instruktionen > eintragen und das Programm dann durchlaufen lassen möchtet? Weil ich die Hardware nicht habe, wuerde ich eine Suchmaschine (z.B. Google.com) benutzen, um einen Simulator zu finden: https://oinf.ch/interactive/little-man-computer/ https://peterhigginson.co.uk/lmc/ > Der Entwickler muss ja auch irgendwie damit gearbeitet haben um es > testen zu können. Ich hatte wirklich noch nie mit einem Projekt auf > Github zu tun, deshalb bitte ich Euch da wirklich sehr um Verständnis, > wenn ich so alberne Dinge frage ;) Du brauchst bei github gar nichts machen (noch nicht einmal einen Account): Entweder (unter linux)
1 | git clone https://github.com/PAntoine/Little-Man-Computer.git |
oder einen beliebigen git-Client bei Windows. Und dann muss man gucken, was sich der Autor so gedacht hat. Die Erguesse auf Github sind nicht unbedingt immer funktionsfaehig oder lauffaehig, vor allen Dingen nach 15 Jahren.
Entschuldigung, falls das jetzt "von oben herab" klingt. Du schreibst vorweg, dass Du nicht so viel Ahnung hast. Du weißt wahrscheinlich nicht, was ein FPGA ist. Ich vermute mal, Du suchst einfach einen Simulator für den Little Man Computer. Probiere die beiden Links, die Thomas W. (vaxman) angegeben hat. Das, was Du unter https://github.com/PAntoine/Little-Man-Computer gefunden hast, ist etwas komplett anderes. Ja, man kann das in einem Simulator abarbeiten lassen. Aber sofern Dein erster Post Deinen Kenntnisstand einigermaßen zutreffend beschreibt, ist das NICHT das, was Du tun möchtest.
Susan R. schrieb: > Ich bräuchte bitte ein > wenig Unterstützung dabei, um einen Code für einen ganz bestimmten > Simulator zum Leben zu erwecken Streiche "ein wenig". Compiler und Simulatoren selber zu bauen, braucht schon exzellente Programmierkenntnisse, sowie viel Wissen und Erfahrung. Ist quasi so, Du willst sofort den Mount Everest besteigen und weißt nichtmal, wie Du die erste Treppenstufe von Deinem Haus hochkommst. Nimm daher erstmal eine fertige IDE (= Editor, Compiler, Simulator, Programmer, Debugger) für irgend eine CPU und lerne diese damit Schritt für Schritt kennen. Damit kannst Du nicht nur theoretisch Programme ausführen, sondern sie auch in das Target laden und in Echt laufen lassen (z.B. eine LED blinken lassen, Taste abfragen usw.). Susan R. schrieb: > Wie würdet ihr dabei > vorgehen, wenn ihr obiges Projekt einmal selbst ausprobieren wolltet? Es sein lassen. Das ist uralt (2011). Da würde ich mal stark bezweifeln, daß man den Chip und alle alten Tools dafür überhaupt noch beschaffen und fehlerfrei installieren kann. Und Du kannst vermutlich auch kein C und VHDL, um selber die Probleme zu lösen. Auch scheint es eher so, als daß er mittendrin aufgehört hat, d.h. es ist nichtmal komplett.
Warum ist es eigentlich so schwer einen aussagekräftigen Betreff zu formulieren?
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.