Crysis nerd
Freizeitschrauber(in)
Hallo liebe Community,
gestern Nacht hat mich jemand freundlicherweise auf eine gute Idee gebracht. Und zwar geht es um ein kleines Projekt, welches ich in meinen Semesterferien bearbeiten könnte: Ich möchte eine eigene CPU entwerfen (selbstverständlich nur das gröbste) und dann dafür auch einen Befehlssatz ausarbeiten, den diese CPU verarbeiten kann. Die CPU möchte ich nur mit Hilfe von logischen Grundbausteinen aufbauen (so wie in der Schule früher toll mit AND und OR-Bausteinen
). In meinem Befehlssatz will ich später Programme schreiben können und diese auch ausführen.
Jetzt hab ich aber erstmal ein Problem: Physikalisch in der echten Welt bin ich motorisch zu unfähig etwas zusammenzulöten und habe auch nicht ansatzweise die Materialien dafür. Es ist die Frage, wie ich das virtuell aufbaue. Es gibt sicherlich tausende Programme da draußen, in denen ich mir Gatter zusammentackern kann und auch Strom anlegen usw. Ich möchte nur auch gerne eine API dazu haben.
Ich möchte später meine Programme (geschrieben in meinem Befehlssatz) als Datei speichern können, dann ein Programm schreiben (normal in C++ z.b. was zu x86 compiliert), welches meine Datei läd und ausführt auf meiner CPU. Und am besten noch so dass ich sehe, welche Lines aktiv sind und welche nicht.
Das ist ne ziemlich große Anforderung denke ich, aber eventuell gibt es ja sowas. Falls ihr also sowas kennt, wäre ich euch sehr dankbar, wenn ihr es mir verratet.
Außerdem würd mich einfach interessieren, was ihr von dem Projekt haltet. Ob ihr sowas selber schonmal gemacht habt oder so. Ich hoffe, dass ich dadurch am besten verstehe, wie genau das gemacht wird, anstatt nur darüber zu lesen.
Liebe Grüße
Lukas
gestern Nacht hat mich jemand freundlicherweise auf eine gute Idee gebracht. Und zwar geht es um ein kleines Projekt, welches ich in meinen Semesterferien bearbeiten könnte: Ich möchte eine eigene CPU entwerfen (selbstverständlich nur das gröbste) und dann dafür auch einen Befehlssatz ausarbeiten, den diese CPU verarbeiten kann. Die CPU möchte ich nur mit Hilfe von logischen Grundbausteinen aufbauen (so wie in der Schule früher toll mit AND und OR-Bausteinen
). In meinem Befehlssatz will ich später Programme schreiben können und diese auch ausführen.Jetzt hab ich aber erstmal ein Problem: Physikalisch in der echten Welt bin ich motorisch zu unfähig etwas zusammenzulöten und habe auch nicht ansatzweise die Materialien dafür. Es ist die Frage, wie ich das virtuell aufbaue. Es gibt sicherlich tausende Programme da draußen, in denen ich mir Gatter zusammentackern kann und auch Strom anlegen usw. Ich möchte nur auch gerne eine API dazu haben.
Ich möchte später meine Programme (geschrieben in meinem Befehlssatz) als Datei speichern können, dann ein Programm schreiben (normal in C++ z.b. was zu x86 compiliert), welches meine Datei läd und ausführt auf meiner CPU. Und am besten noch so dass ich sehe, welche Lines aktiv sind und welche nicht.
Das ist ne ziemlich große Anforderung denke ich, aber eventuell gibt es ja sowas. Falls ihr also sowas kennt, wäre ich euch sehr dankbar, wenn ihr es mir verratet.
Außerdem würd mich einfach interessieren, was ihr von dem Projekt haltet. Ob ihr sowas selber schonmal gemacht habt oder so. Ich hoffe, dass ich dadurch am besten verstehe, wie genau das gemacht wird, anstatt nur darüber zu lesen.
Liebe Grüße
Lukas

Das wäre krank.
). Die kann man mit Hardwarebeschreibungssprachen (Verilog, HDL, ...) programmieren und sozusagen Chips/Schaltungen emulieren. Die werden zum Teil sogar produktiv eingesetzt, da man die halt beim Kunden einfach per Update patchen kann. Du hast damit natürlich nicht die Leistung einer heutigen CPU, aber die werden meistens sowieso als ASIC entwickelt. Ich glaube für diese Hardwarebeschreibungssprachen gibt es auch Emulatoren, die das dann ohne FPGA laufen lassen können, da bin ich mir aber nicht 100%ig sicher...


Das ist ein tool mit dem ASICs entwickelt werden. Das wird meines Wissens nach auch von den Leuten hier am Lehrstuhl benutzt. An eine "legale" Version wirst du da aber nicht dran kommen befürchte ich. Die Lizenzen kosten UNSUMMEN! an Geld... Und nen schnellen Rechner solltest du auch haben, wenn du nicht Stunden auf das Ergebnis warten willst... Wobei das bei so nem miniding wie du machen wirst wahrscheinlich kein Thema sein wird. Minuten kann es aber eventuell doch dauern ein Design zu placen und routen.