Hallo liebe Computer Freak’s, oder wer da sonst noch rumgeistert… Ich möchte eine 8 Bit CPU bauen und habe mir schon ausgedacht wie sie aufgebaut sein sollen. 1.Wie komme ich zu so einer verrückten Idee? Ganz einfach: ich mache gerade das Frühstudium zur Vorlesung „Rechnerarchitektur“ an der UDE. Der Dozent hatte die mic-1 in seiner Vorlesung vorgestellt und ich dachte mir das ich die besser machen kann. ( also das drum herum ) 2. Vorteile meiner CPU zur mic-1: Es gibt ein zentralen internen Datenbus, dh. kein dummes durchgeschleuse durch die Alu mehr.( wird genutzt um ein datenbus Wechsel zu generieren.) Mehr Hilfs-Register (x,x,sum und c). Einen kompletten digitalen Comperator für „<>=“. Zusätzlich zu den z(Zero) und c(Carry OUT) flags. Mehrere Speicher Möglichkeiten, dh. 2.Ram und 2.Rom Schnittstellen. Die könnten zum Beispiel dafür genutzt werden das man einen Boot-Loader und ein OS auf das eine ROM packt und auf das andere benutzter Programme und Daten. Bessere Sprung Möglichkeiten, dh. Mit kleinstem Abstand anders als bei der mic-1: Wenn man hier springen möchte , kann man sich zwischen zb. den Adressen: 0x1FF oder 0x0FF entscheiden. 3. was noch fehlt… Ein Steuerung für die Instruktion, der CPU. Aber da ist meine Überlegung, das man zuerst ein Instruktion‘s Indikator einließt, zb. mov = 0x01, add = 0x02 usw… Anschließend ließt man Parameter an. Dh. bei dem mov Befehl muss man das Ziel und das start Register angeben. Sorry das meine Zeichnung schlecht zu lesen ist. Bin aber gerade in Urlaub und hab deshalb nicht die Möglichkeiten den Plan auf dem Computer zu zeichnen. Ja ich weiß es gab schonmal so einen Beitrag (Beitrag "CPU Selbstbau" ) in diesem Forum. Tobias wollte aber eine 32bit CPU bauen, ich nicht. Meine Fragen an euch: was haltet ihr von meinem noch nicht fertigen Design, und was kann ich verbessern? Vg Florian Ich bin übrigens 16 Jahre alt.
Oh irgendwie ist das Bild zweimal in meinem Beitrag. Das kommt davon wenn man am Handy arbeitet.;) Vg Florian
Florian T. schrieb: > Meine Fragen an euch: was haltet ihr von meinem noch nicht fertigen > Design, und was kann ich verbessern? Naja, Papier ist geduldig. Man kann die tollsten Dinge darauf zeichnen. Aber hast du mal angefangen, erste Dinge von diesen groben Blöcken mal konkret umzusetzen? Bzw. welche Erfahrung hast du? Und wie willst du es umsetzen? Mit diskreten Logik-Bausteinen a la 74XX-Reihe oder per FPGA und VHDL?
Florian T. schrieb: > was haltet ihr von meinem noch nicht fertigen Design Normalerweise sucht man sich existierende und beschaffbare Bauteile raus, und versucht mit denen was zu kombinieren. (74HC181 ALU ist nur 4 bit, die Z80 nutzt auch nur eine 4 bit ALU) Natürlich ist man damit weit von einem gewünschten Optimum weg. Wünschen klappt nur, wenn man die Schaltung in ein FPGA programmiert. Insbesondere wenn man nich nicht so genau weiss was gut ist wäre die Umsetzung im FGPA wohl am schlauesten, weil man es schnell andern kann. Egal aber welchen Prozessor man baut, man will ihn programmieren und in Maschinencode hex ist das so mühsam, dass man kaum über 50 Befehle lange Programme schreiben will. Also braucht man einen Assembler und schreibt dann vielleicht 500 Mnemonics. Danach wünscht man sich wenigstens einen C Compiler um die Programme zu schreiben die man unbedingt braucht. Diese Software für deinen Prozessor zu erstellen kostet weit mehr Mühe als den Prozessor zu designen, also wäre es schlau, eine Architektur zu nutzen, für deren Befehlssatz es Assembler und Compiler schon fertig gibt. Dann kann man gleich einen fertigen Prozessor nutzen.
Stefan S. schrieb: > Mit diskreten Logik-Bausteinen a la > 74XX-Reihe oder per FPGA und VHDL? Am besten ausschliesslich aus 3-fach NOR Gattern wie im Apollo Guidance Computer.
Florian T. schrieb: > Ich möchte eine 8 Bit CPU bauen und habe mir schon ausgedacht wie sie > aufgebaut sein sollen. Ich würde das an deiner Stelle nur virtuell aufbauen und simulieren. Hier wirklich mit TTL Gräbern zu hantieren macht wenig Sinn.
Hi Stefan, Ich möchte die CPU mit Logic Bausteinen aus der 74xx und 40xx Reihe bauen. Mit den Schaltplänen hab ich schon angefangen. Bin aber gerade unterwegs deswegen kann ich dir die noch nicht schicken. Erfahrungen habe ich schon eigentlich genug: Platinen Design und Schaltungen auf steckboards aufzubauen. Habe schon mal ein Multiplikator mit Counter gebaut und erst in Minecraft Designt, dass war aber schon vor 2/3 Jahren. Vg Florian
Zum einen, Du bist nicht allein. Andere haben das auch schon gemacht. Es gibt einen Webring (eine Liste von Projekten) wo Du eventuell inspirieren lassen kannst: https://www.homebrewcpuring.org/ Viel Spass, viel Glueck. Th.
Florian T. schrieb: > Ich möchte die CPU mit Logic Bausteinen aus der 74xx und 40xx Reihe > bauen. Dann achte drauf, dass grosse Platinen gutes Layout und Abblockkondensatoren brauchen, die üblichen Kuchenbretter aus den 70gern hatten das noch nicht gelernt, es gab viele die nicht oder nur schlecht funktionierten. Ich hoffe, du hast wenigstens das Geld, um so grosse Platinen fertigen zu lassen, denn per Fädeltechnik ist das noch mühsamer. https://www.ardent-tool.com/5150/PC_origins.html 40xx ist natürlich grottenlangsam, da ist man mit 100kHz Takt zufrieden.
Moin, Ja klar, kann man durchaus machen, wenn man irrsinnig Spass dran hat. Das gibt dann halt ein paar Kuchenbleche voll mit TTL Gattern. Kann man auch auf youtube sicher bestaunen. Aber ich find', das hat immer so ein bisschen was von "Koelner Dom aus Streichhoelzern nachbauen". Also nicht wirklich was Neues. Und dann kommt noch irgendein Anderer an und baut das dann per FPGA in 10x billiger, 100x schneller und 1000x flexibler... Gruss WK
Florian T. schrieb: > ich dachte mir das ich die besser machen kann Die mic-1 ist nicht dazu da um Dinge richtig gut zu machen. Sie ist dazu da um die Abläufe in einer CPU anschaulich zu machen. An wirklich guten Prozessor Designs zu obzön niedrigen Kosten herrscht kein Mangel. Wenn Du Dir im klaren bist das diese Fingerübung keine Nachahmer finden wird, kaum Beifall, viel Kritik und nur Dir selbst dienen wird bis auch Du das Interesse daran verlierst, kannst Du das ja machen. Aber mach das mit FPGA statt Logigbausteinen. Du willst nicht 90% Deiner Zeit PCBs ätzen / kaufen, löten und Fädeldraht ziehen, statt an der CPU zu arbeiten. Außerdem ist das dann nicht völlig nutzlos, weil Du FPGA dabei lernst. DIY CPUs gibt es echt viele. Hier im Forum bastelt Josef seit gefühlten Jahrzehnten an seiner BO8 auf FPGA Basis. Kümmert kein Schwein, niemand will die nutzen. Auch wenn er das nicht einehen kann und will, ist eine selbst designte CPU nur für eines gut: Den Spieltrieb und die Neugierde des bauenden zu befriedigen. Es kommt immer der Punkt an dem man das loslassen muss und sich ernsthaften Themen zuwendet, die auch zu irgendwas nutze sind.
Florian T. schrieb: > Habe schon mal ein Multiplikator mit Counter gebaut Im Grunde wirst du mit der (schrittweisen) Umsetzung einer CPU in TTL-Gatter also nichts Neues mehr lernen, sondern altes Wissen (wie alt ist TTL?) perfektionieren. Leider kannst du mit diesem perfekten Wissen hinterher nichts gewinnen, denn solche Detailkenntnisse zur Lösung digitaler Probleme mit TTL-Standardgattern braucht keiner mehr. Das letzte TTL-Gatter habe ich vor gefühlt 20 Jahren verbaut. Mein Tipp: lerne was Neues und pack dein Design in ein FPGA. Der Witz: da kannst du dir auch eine ganz andere Architektur mit z.B. 9 oder 13 Bit Wortbreite ausdenken.
:
Bearbeitet durch Moderator
Michael B. schrieb: > die Z80 nutzt auch nur eine 4 bit ALU Kann ich bis heute nicht glauben, ADD A,r hat ja nur 4 Taktzyklen benötigt, ADD A,n nur 7 Taktzyklen.
Florian T. schrieb: > Ich möchte die CPU mit Logic Bausteinen aus der 74xx und 40xx Reihe > bauen. Damit du mal ungefähr einen Überblick über die Größe deines Unterfangens bekommst: - https://c74project.com/
Solche Projekte gab es ja nun schon oft genug. Viele wurden angesichts des enormen Aufwandes abgebrochen. Hast du auch vor, ein paar Kilobyte RAM und ROM zu emulieren? Viel Glück dabei. Ich hoffe du hast einige zig Quadratmeter Raum dafür und kannst dir den Strom leisten. Die Entsorgung könnte auch spannend werden. Wie so eine CPU funktioniert, kann man anhand einer Simulation besser lernen. Es gibt schon fertige als Browser-Anwendung, die lückenlos alle Signale visualisieren. Zum Beispiel den außergewöhnlichen http://www.visual6502.org/. Du könntest auch einen eigenen Simulator programmieren.
H. H. schrieb: > Kann ich bis heute nicht glauben Masatoshi Shima, und der sollte es wissen: "At first I introduced the pipeline 4-bit ALU." http://archive.computerhistory.org/resources/text/Oral_History/Zilog_Z80/102658073.05.01.pdf > ADD A,r hat ja nur 4 Taktzyklen benötigt, ADD A,n nur 7 Taktzyklen. Die Addition wird im folgenden M1-Zyklus durchgeführt. Darin sind 4 Takte Zeit. Bei ADD A,n liegen die Daten erst nach 7 Takten vor, 1xM1 für OpcodeFetch/Decode und 1xM2 für die Konstante.
:
Bearbeitet durch User
H. H. schrieb: > Michael B. schrieb: >> die Z80 nutzt auch nur eine 4 bit ALU > > Kann ich bis heute nicht glauben, ADD A,r hat ja nur 4 Taktzyklen > benötigt, ADD A,n nur 7 Taktzyklen. https://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html?m=1 Daher auch die half carry bits der Z80 und für BCD sowieso ausreichend.
Michael B. schrieb: > Daher auch die half carry bits der Z80 Ein Erbe der 8080, und die hatte eine 8-bit ALU. Aus der dieses Flag auszuleiten ist trivial.
:
Bearbeitet durch User
Florian T. schrieb: > 3. was noch fehlt… > Ein Steuerung für die Instruktion, der CPU. Aber da ist meine > Überlegung, das man zuerst ein Instruktion‘s Indikator einließt, zb. mov > = 0x01, add = 0x02 usw… Anschließend ließt man Parameter an. Dh. bei dem > mov Befehl muss man das Ziel und das start Register angeben. Dann suche Literatur ueber Microprogramming. Von den ersten Realisierungen in den 1950'er Jahre (Z.b. Wilkes/Stringer, Microprogramming and the Design of the Control Circuits in an Electronic Digital Computer, Proc. Cambridge Phil. Soc., pt. 2, vol. 49, April 1953, pp. 230-238). Oder suche die Dokumentation der PDP oder VAX (die Schaltplaene sind mittlerweise mit etwas Suche zu finden, dann findet man auch die Microodes). In vielen Faellen wird das Steuerwerk entweder mit einer Diodenmatrix oder mit EEPROMs realisiert. Ist der Aufwand (2023) sinnvoll, kommt am Ende eine CPUchen (ganz kleine CPU) bei raus? Bei mir ist es nur bis zur Taktgenerierung gegangen (dann aufgegeben). Gruesse Th. P.S.: Der Link http://gordonbell.azurewebsites.net/Computer_Structures_Principles_and_Examples/csp0174.htm?from=https://research.microsoft.com/~gbell/Computer_Structures_Principles_and_Examples/csp0174.htm&type=path
(prx) A. K. schrieb: > Die Addition wird im folgenden M1-Zyklus durchgeführt. Und wenn das Ergebnis schon vorher benötigt wird, z.B. bei zwei ADD, A,r hintereinander?
Stefan F. schrieb: > Solche Projekte gab es ja nun schon oft genug. Viele wurden angesichts > des enormen Aufwandes abgebrochen. Hast du auch vor, ein paar Kilobyte > RAM und ROM zu emulieren? Viel Glück dabei. Ich hoffe du hast einige zig > Quadratmeter Raum dafür und kannst dir den Strom leisten. Die Entsorgung > könnte auch spannend werden. Ganz so schlimm ist es garnicht: - https://www.homebrewcpuring.org/ringhome.html Und so ein TTL-Grab spart im nächsten Winter immerhin die Gas-Heizung:-) Wobei dieses Exemplar hier die Vorstellungen des TO noch am nächsten kommen dürfte: - http://www.8-bitspaghetti.com/2012/04/test-time/
:
Bearbeitet durch User
Beitrag #7453330 wurde vom Autor gelöscht.
Beitrag #7453337 wurde von einem Moderator gelöscht.
H. H. schrieb: > Und wenn das Ergebnis schon vorher benötigt wird, z.B. bei zwei ADD, A,r > hintereinander? Im Folgebefehl wird die Addition doch auch erst verzögert ausgeführt, benötigt die Daten also nicht sofort. Erst kommt dessen Fetch/Decode. Dieses Pipelining ist hier dargestellt: http://www.z80.info/z80arki.htm
:
Bearbeitet durch User
(prx) A. K. schrieb: > H. H. schrieb: >> Und wenn das Ergebnis schon vorher benötigt wird, z.B. bei zwei ADD, A,r >> hintereinander? > > Der Folgebefehl wird die Addition doch auch erst verzögert ausgeführt, > benötigt die Daten als nicht sofort. Erst kommt dessen Fetch/Decode. > Dieses Pipelining ist hier dargestellt: > http://www.z80.info/z80arki.htm Verstanden. Danke für die Aufklärung.
Florian T. schrieb: > Meine Fragen an euch: was haltet ihr von meinem noch nicht fertigen > Design, und was kann ich verbessern? ich rate dir davon ab. Unendliche Arbeit, viele Probleme, deren Lösung dir kein nützliches Know-how bringen und vielleicht- je nachdem wie gut du drauf bist - hohes Frustrationspotential. Kauf dir ein STM32 nucleo und lerne daran. Das bringt dich weiter. Ansonsten nur meine Meinung. Ich kann Dich durchaus verstehen, glaube viele hatte schon solche Ideen. Aber so alten Kram guckt man sich besser im Museum an.. P.S. Das schreibt jemand, der nach 45 Jahren Elektronikpraxis gerade anfängt, sich mit Röhren zu beschäftigen! 😀 P.P.S. Als ich so alt war wie du, baute ich aus 74LS einen Frequenzzähler. Gründe waren, dass ich ganz wenig Geld hatte, aber solche IC im Überfluss. Mein Bruder arbeitete in einer Computerfirma und brachte mir regelmäßig solche Kuchenbleche mit. Wenn ich dich nicht abhalten konnte und du in die Realisierung gehst, schreib mich an, dann kannst du vielleicht ein paar IC von mir bekommen. ICH setze die nicht mehr ein!
:
Bearbeitet durch User
Gunnar F. schrieb: > P.S. Das schreibt jemand, der nach 45 Jahren Elektronikpraxis gerade > anfängt, sich mit Röhren zu beschäftigen! 😀 ENIAC nachbauen!
Florian T. schrieb: > Ich möchte eine 8 Bit CPU bauen und habe mir schon ausgedacht wie sie > aufgebaut sein sollen. Nicht gut. 4 Bit geht gerade noch so. https://en.wikipedia.org/wiki/Intel_4004
ggf. für Anregungen http://www.mycpu.eu/ http://www.mynor.org/mycpu/downloads/MyCPU23_Selfbuild-Guide_150724.zip TS
:
Bearbeitet durch User
Jemand mit sehr, sehr viel Zeit und Geduld hat hier einen 8-Bit-Mikroprozessor diskret mit einzelnen Transistoren aufgebaut: https://monster6502.com/
Florian T. schrieb: > Ich möchte die CPU mit Logic Bausteinen aus der 74xx und 40xx Reihe > bauen. Das ist eine ungünstige Mischung. Du solltest dich wenigstens entscheiden: TTL (aufgebaut mit BJTs) oder CMOS, z.B. 74HCxx an Stelle von 74xx. Hast du dir z.B. den 6502 einmal angesehen? Harald K. schrieb: > Jemand mit sehr, sehr viel Zeit und Geduld hat hier einen > 8-Bit-Mikroprozessor diskret mit einzelnen Transistoren aufgebaut: Immerhin wurden für den 6502 die Masken für den Halbleiterherstellungsprozess noch auf dem Zeichenbrett gemalt.
:
Bearbeitet durch User
Hallo zusammen, Sorry das ich so spät antworte aber wir haben gerade uns noch mit Freunden getroffen (ein Kurzer Ausflug von den Computern weg. Freunde muss man auch als freak pflegen) ;) Aber erstmal vielen Dank für die zahlreichen Antworten. Ihr habt mich erstmal überzeugt das ich nur ein ic Typ nutzte .: am besten die schnellste Variante von der 74 Logic. Ja ich weiß das Projekt ist verrükt. Auch wenn mein Projekt erstmal nicht so super gut ankam, werde ich trotzdem weiter machen Steve Jobs hatte bei seiner ersten Vorstellung auch einen kompletten Reinfall, aber wo ist er ausgekommen? Mit meinem Design kann ich zwar nichts erreichen aber keiner kann in die Zukunft blicken. Aber wie ihr seht es haben viele Leute solche Ideen, die sogar umgesetzt werden. Nur ist bei mir der große Unterschied dass ich erstens lernen möchte wie ein Computer funktioniert und zweitens versuche ich zumindestens ein bisschen was neu erfinden. Zu den Leuten die mir vorschlagen zu simulieren: Ich finde eine Simulation für eine gute Idee, das einzige Problem was ich sehe ist, dass ich bis jetzt noch keine Möglichkeit gefunden habe meine KiCad Schaltpläne zu simulieren( wollte mal sowas programmieren aber bin kläglich an der Geschwindigkeit von Windows Firma in c# gescheitert. Ja ich werd’s nochmal mit sdl2 versuchen ) . Zu FPGA‘s kann ich nichts sagen aber ich könnte mich mal anfangen damit zu beschäftigen. Bräuchte nur ein günstig es dev Board weil ca. 500€ für ne Platine mit ein paar Tastern und Displays ist viel zu teuer. Aber in diesem Forum kann mir bestimmt jemand helfen…. Michael B. schrieb ja wie das mit dem Geld aussieht: dadurch das ich durch das Frühstudium neue Kontakte gefunden habe, die mich zu einem PCB Drucker geführt haben. Zu den PCB‘s : es soll ein Computer werden, der in ein 19“ Rack rein kommen. Dh. Ganz viele kleine Karten gibt. Danke Gunnar F. Wenn du mir ein paar ic‘s spenden möchtest. Die kann man immer gebrauchen. Vg Florian Ps. Melde mich morgen wieder es wird langsam zu spät um klar zu denken.
Florian T. schrieb: > am besten die schnellste Variante von der 74 Logic. Da wäre der Frust vorprogrammiert, nimm 74HCxxx, die sind auch für einen Anfänger beherrschbar.
Achso ich meinte das ich den pcb Drucker frei nutzten darf also nicht habe. Durch meine Eltern komme ich auch an präzise Graviermaschienen, mit denen man 2 Layer Platinen fräsen kann. Vg Florian Jetzt ist aber wirklich Schluss mit dem chatten zumindestens für heute.
Florian T. schrieb: > Ich finde eine Simulation für eine gute Idee, das einzige Problem was > ich sehe ist, dass ich bis jetzt noch keine Möglichkeit gefunden habe > meine KiCad Schaltpläne zu simulieren( wollte mal sowas programmieren > aber bin kläglich an der Geschwindigkeit von Windows Firma in c# > gescheitert. Ja ich werd’s nochmal mit sdl2 versuchen ) . Für sowas nimmt man heute besser Modelsim und VHDL (oder Verilog in den USA), Modelsim gibt es mit diversen Starterkits gratis. Von der Simulationszeit ist das kein Problem, wie die Softcores zeigen. Neuheiten und Verbesserungen kannst da aber nicht mehr machen, das ist >30 Jahre alte Technik. Blöderweise ist ein guter FPGA uC anders aufgebaut als ein guter TTL uC oder ein uC in einem IC, die technische Basis macht da viele Vorgaben. > Zu FPGA‘s kann ich nichts sagen aber ich könnte mich mal anfangen damit > zu beschäftigen. Bräuchte nur ein günstig es dev Board weil ca. 500€ für > ne Platine mit ein paar Tastern und Displays ist viel zu teuer. > Aber in diesem Forum kann mir bestimmt jemand helfen…. Hier ein 50€ FPGA+CortexM3, wo du auch gleich lernen kannst, wie man einen Arm Cortex an ein FPGA anbindet: https://shop.trenz-electronic.de/de/Produkte/Trenz-Electronic/SMF2000-Microchip-SF2/ Schau auf jeden Fall, dass du kompatibel zu einem gängigen Prozessor (4004, 6800, 8051, 8080, MSP430) bist. Die lassen sich teilweise mit heutigen Möglichkeiten deutlich verbessern, und ohne Assembler und Compiler macht es später einfach keinen Spass. > Zu den PCB‘s : es soll ein Computer werden, der in ein 19“ Rack rein > kommen. Dh. Ganz viele kleine Karten gibt. Wenn du dich auf DIP beschränkst, kannst du Lochkarten im Euroformat verwenden. 74HC würde ich heute für sowas aber nicht mehr verwenden. LVC ist z.B. deutlich schneller. Hier ein Überblick: https://www.ti.com/lit/sg/sdyu001ab/sdyu001ab.pdf?ts=1689160039072&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FSN74LS00%253Fdcmp%253Ddsproject%2526hqs%253Dtd%2526 Viel Spass und ich freue mich auf das erste "Hello world" :-)
Udo K. schrieb: > 74HC würde ich heute für sowas aber nicht mehr verwenden. LVC ist z.B. > deutlich schneller. Fahrschule auf einem Ferrari SF-23...
Florian T. schrieb: > Bräuchte nur ein günstig es dev Board weil ca. 500€ für > ne Platine mit ein paar Tastern und Displays ist viel zu teuer. > Aber in diesem Forum kann mir bestimmt jemand helfen…. Auf dem "Tang Nano 9K FPGA Entwicklungsboard" läuft ein Risc-V 32 Bit Kern. Dann soll es wohl auch für eine 8 Bit CPU reichen. Und kost nur um 25 Ocken. Ansonsten kann ich nix dazu sagen... war noch nicht näher als 2 Meter da dran.
Thomas W. schrieb: > andere haben das auch schon gemacht. oh ja, das haben schon sehr sehr Viele gemacht. Gab es da nicht auch hier jemanden, der einen 8-Bit-Rechner aufgezogen hat? War das nicht der hier: https://www.mikrocontroller.net/articles/8bit-Computer:_bo8 Irgend W. schrieb: > Damit du mal ungefähr einen Überblick über die Größe deines Unterfangens > bekommst: > - https://c74project.com/ Solche Sachen wecken in vielen Leuten sehr nostalgische Gefühle. Man ist sofort versucht, den kompletten VC20 nachzubauen und sein altes Gedöhns wieder laufen zu lassen. Das war einfach Klasse, dafür Spiele zu bauen, auch wenn die Grafik extrem bescheiden war. Man findet aber einfach nicht die Zeit. Und für so etwas schon gar nicht: Harald K. schrieb: > 8-Bit-Mikroprozessor diskret mit einzelnen Transistoren aufgebaut: > https://monster6502.com/ Ich schwanke zwischen Kopfschütteln und Bewunderung. Das ist schon irre. Wozu ich mich nochmal hinreißen lassen würde: https://mega65.org/ Wenn man so etwas anfangen will, wie das hiesige, würde ich darüber nachdenken, dass Ganze zu simulieren und dazu Modelle der 74er Bausteine zu nutzen, um die Verschaltungslogik abzuprüfen. Ich habe das in den 90ern für ein einfaches Prozessorsystem mal auf dem Amiga gemacht: Das Programm hies "Logic Works". Angefangen mit einfachen Addierern und Multiplizierern sowie Vergleichern, kam dann eine Logik heraus, die Schalten und Abläufe steuern konnte. Daraus wurde ein Befehlsinterpreter entwickelt, der Rechenaufgaben lösen konnte. Das Nette war, dass das Logic Works das live durchgespielt hat und sogar Hierarchien handhaben konnte. Das ging sehr flott und man behielt stets die Übersicht. So etwas hilft enorm, Baufehler schon in der Planungsphase zu erkennen. Ich würde mir daher das freie Modelsim installieren und das Ding dort aufbauen und dann nur Komponenten auf PCBs real produzieren, die komplett laufen. Man kann da ja auch das physikalische Timing der Bausteine abbilden. Dort lauert meines Erachtens die größte Fehlerquelle im Zusammenspiel mit Chips- besonders, bei unterschiedlichen Technologien. Es braucht nur ein analoges Busmodell, das man selber schreiben kann und das aus Logikpegeln variable Spannungen mit Anstiegen und Allem rechnet. Interessant ist das allemal - auch wenn am Ende etwas rauskommt, was man schon kennt. Wer etwas Interessantes bauen möchte, kann auch in Projekte einsteigen, wo es um die Rekonstruktion von Rechenmaschinen geht, die verschollen sind oder nie wirklich gebaut wurden, die es aber verdient hätten, genauer untersucht zu werden. Das Ziel Nummer 1 wäre die vor 200 Jahren von Charles Babbage und Ada Lovelace beschriebene "Analytical Engine", die im Prinzip den ersten Computer der Menschheit darstellte. Es fehlte damals einfach an den technischen Voraussetzungen und Möglichkeiten, aber wie man heute weis, wäre das in der Tat eine frei programmierbare Rechenmaschine gewesen und wer weis, wo die Menschheit heute wäre, hätte man das früher wieder aufgegriffen. Wer sich beteiligen möchte: https://blog.plan28.org/
Lothar M. schrieb: > Leider kannst du mit diesem perfekten Wissen hinterher nichts gewinnen, > denn solche Detailkenntnisse zur Lösung digitaler Probleme mit > TTL-Standardgattern braucht keiner mehr. Nun ja, immerhin lernt man etwas über das physikalische Verhalten von Bauteilen, ober deren Logik hinaus. Und das braucht man täglich, wenn man sich die Pegel ansieht, die aus den FPGAs rauskommen. > Das letzte TTL-Gatter habe ich vor gefühlt 20 Jahren verbaut. Ich vor 2 Tagen, beim Auflöten einer Schieberegistereinheit, die mir eine ganze Masse an MIDI und DMX-Eingängen auf einen FPGA-PIN multiplexed. Ist billiger, als einen PLD davor zu klatschen. Ein 245er Leitungstreiber wurde jüngst noch verlötet. > Mein Tipp: lerne was Neues und pack dein Design in ein FPGA. Man kann das auch total simulieren und dann partiell aufbauen. Gfs müsste man aus KiCad eine Netzliste exportieren und diese konvertieren. Das wäre z.B. mal etwas Brauchbares. Leider gibt es heute keine derart integrierten PCB-Systeme mehr. Das letzte System das ich hatte, war "Protel Advanced Schematic". Das war direkt mit dem "Advanced PLD" kombinierbar und man konnte die digitalen Schaltungen in einem tool bauen und im anderen verwenden. > da kannst du dir auch eine ganz andere Architektur mit z.B. 9 > oder 13 Bit Wortbreite ausdenken. Wie wäre es mit einem 5er-System um die Rechenmethodik mancher Naturvölker nachzubilden? Oder das Sexagesimalsystem?
J. S. schrieb: > War das nicht der hier: > https://www.mikrocontroller.net/articles/8bit-Computer:_bo8 Nicht bo8, das ist nur die CPU. Der Computer heisst bo8h. 8bit-Computer: bo8h
:
Bearbeitet durch User
Florian T. schrieb: > Steve Jobs Ne Nummer kleiner geht nicht? Steve Jobs hat Heimcomputer für den kleinen Mann erschwinglich gemacht. Nicht als Erster, nicht als Letzter, nur gut vermarktet. Du willst ein Problem lösen das niemand hat, bzw. das gelöst wurde als Deine Eltern in Deinem Alter waren oder jünger. Nein, man simuliert nicht Kicad Schaltpläne wenn man eine CPU bauen will. Man beschreibt heutzutage Logig in einer Hardwarebeschreibungssprache wie VHDL oder Verilog und überlässt die Umsetzung auf das spezielle FPGA der Synthesesoftware. Das läst sich gut simulieren, ändern, erweitern. Jeder CPU Hersteller arbeiten längst so. Lerne den Workflow, die Tools für Deine Aufgabe, statt stur einen Weg einzuschlagen der dafür völlig ungeeignet ist. Du redest von PCB Herstellung und 19' Bau als ob das der pure Spaß wäre. Ist es nicht. Nicht ein klitzekleines bischen. Bei dem Weg ist bei 74LS Schluss, weil Du nicht ein high speed Design in die Fläche ziehen kannst ohne eben auch die ganzen Effekte einzufangen. Gefräste 2L PCB mit Handdurchkontaktierung? Ich erinnere mich und ich bin sehr froh, das ich das nicht mehr tun muss. Langsam, aufwendig, teuer, schlecht. Was Du planst ist nicht eine CPU zu entwerfen. Was Du planst ist das PCB Bastel Handwerkszeug der 90er Jahre zu lernen unter Mißachtung aller Segnungen der letzten 30J. Das ist nicht genial, das ist eine retro nostalgie Einbahnstrasse. JEDE winzige Änderung am CPU Design wird Dich viele Stunden damit beschäftigen Leiterbahnen aufzutrennen, Bauteile in Dead Bug Technik aufzukleben und mit Fädeldraht zu beschicken. Das ganze dann mit 1Mhz wegen dem schrottigen Aufbau. Du willst ein außergewöhnliches CPU Design? Schau dir den parallax Propeller Chip an, oder RISC-V oder versuch den VHDL Code des 8051 zu verstehen. http://www.pldworld.com/_hdl/1/RESOURCES/www.ee.umr.edu/~mrmayer/8051/index.htm Es gibt 100 Möglichkeiten Deine Skills zu entwickeln. 2L PCBs zu fräsen und 74er Logig zu verdrahten ist wirklich die mühseeligste und frustrierenste Art das anzupacken. Also: Ich finde es toll das Du was tun willst. Du bist jung, voller Energie und willst die Welt aus den Angeln heben. Setze die Energie Zielgerichtet ein, sonst verzettelst Du Dich, verlierst die Lust und zurück bleibt eine große Kiste Sammelsurium für die Tonne. Wir alle waren mal 16. Nutze moderne Methoden. Simuliere wann immer Du kannst. In einer Simulation kannst Du sehr leicht Dinge ausprobieren und Dir Signale anschauen die Du ansonsten nur sehr schwer sehen würdest. Eine erfolgreiche Simu dann in reale HW zu geissen ist immer noch anspruchsvoll genug.
Mal so als Anregung: http://www.mycpu.eu/ Das ganze Projekt hat sich wohl über ein Jahrzehnt hingezogen. Na ja, muss jeder selber wissen. fchk
Wenn ich heute so etwas bauen wollte, wuerde ich wohl ein Gespann aus 74181 und 4034 ins Rennen schicken. Mit einer SRAM-basierten Mikroprogrammsteuerung. EPROM basiert, passt das geruechteweise auf eine Eurokarte.
Florian T. schrieb: > Zu FPGA‘s kann ich nichts sagen aber ich könnte mich mal anfangen damit > zu beschäftigen. Bräuchte nur ein günstig es dev Board Wenn du dich ernsthaft umschaust, bekommst du deinen Rechner für unter unter 100€ Hardwarekosten ans Laufen. Und wenn du noch einen kleinen Denkfehler im Design hast: kein Problem, einfach korrigieren, simulieren, synthetisieren und aufs FPGA laden. Denn der langfristige Witz an der Sache: implementiere die Hardware selber, die es nicht eh' schon (fertig und viel besser) zu kaufen gibt. CPU gibt's in allen Größen und Varianten (fertig und viel besser).
Wenn du dieses Projekt wirklich mit 74XX-Bauteilen angehen willst, dann kann ich dir LOGISIM ans Herz legen. Es sieht auf den ersten oberflächlichen Blick simpel aus aber es ist ein sehr mächtiges Werkzeug und bietet dir alle Logikbausteine bzw. Gatter die dir im Rahmen der 74XX-Familie zur Verfügung stehen.
Lothar M. schrieb: > CPU gibt's in allen Größen und Varianten (fertig und viel besser). Vor allem mit umfangreichster Doku und kompletter Toolchain. Was bringt einem das geilste CPU Design, wenn es außer dem eleganten Core Design nix gibt? Das ist wie ein Nagel ohne Wand und Hammer zu haben oder etwas das man daran aufhängen will. Eleganter Nagel. Kann man sich in die Vitrine stellen. Ist aber zu garnichts gut. Und nein, es wird keine fleissigen Mitstreiter geben die einem all das abnehmen worauf man selber keine Lust hat. Alle die sich für sowas interessieren, wollen ja eigene CPUs bauen. @TO Ihr werdet Euch recht schnell von der mic-1 lösen, wenn die Basics vermittelt sind. Die mic-1 ist das Dreirad, zum lernen für die Kleinen. Entwickelt von Tannenbaum, um es so richtig, richtig einfach zu machen in der Ausbildung. Performance war nie das Ziel. Wenn es Dich denn so sehr reizt, würde Josef sich sicherlich sehr freuen einen interessierten Mitstreiter zu finden, Du könntest was lernen und hättest einen Gleichgesinnten. Beitrag "8bit-Computing mit FPGA"
Nur um mal einen Überblick dafür zu bekommen, wie das mit einer Hardwarebeschreibungssprache HDL gehen könnte: der Thread mit der Uhr. Da stand am Anfang auch der Versuch, das mit einem Schaltplan und einzelnen Bausteinen zu lösen: - Beitrag "kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)"
Florian T. schrieb: > Ihr habt mich erstmal überzeugt das ich nur ein ic Typ nutzte .: am > besten die schnellste Variante von der 74 Logic. Der Schuss könnte nach hinten lis gehen. Denn die steilen Flanken harmonieren nicht mit den Leitungslängen, die du brauchen wirst.
Hi Flo, ich glaube, inzwischen sind hier mehrfach alle technischen Argumente gegen das Projekt (und dass überraschend sachlich!) vorgebracht und gute Alternativen vorgeschlagen worden. Ich kann Deine Intension nachempfinden, da ich mich selbst einmal mit dem Thema beschäftigt habe. Was übrigbleibt (wenn das Projekt gelingt) ist vielleicht Stolz und Befriedigung bei nur wenig Anerkennung von außen und viel verbrauchte Zeit. Sollte es nicht gelingen, bleiben Frust, evtl. Selbstzweifel und: viel verbrauchte Zeit. Nutze Deine "Bildungszeit" Zeit effizient mit modernen Methoden und Arbeitsmittel und die verbleibende Zeit für Dinge, die junge Menschen in dem Alter machen sollten. Hier ein Link zu meinem simulierbaren, "glässernen" Prozessor (65C02 incl. Dokumentation) als inspirierende Warnung. Nach der Fertigstellung der Logik und dem sich ergebenen Ausmaß an Schaltung hatte ich keine Neigung mehr, dass Projekt physisch (elektrisch) zu realisieren. Die Aussicht auf Signalprobleme (Laufzeiten, Verfälschungen, Einstrahlungen. etc.) und die zu erwartende Fehlersuche im Aufbau haben mich dann doch noch zur Besinnung kommen lassen. Beitrag "Dynamisch visualisierbarer Schaltplan eines 65C02 Mikroprozessors" s. Datei 65C02.PDF Gruß microprocessor
:
Bearbeitet durch User
Wenn man so ein Projekt konsequent durchzieht, müsste man die ALU auch selbst aus Logikgattern bauen. Also keinen 74181. Das ist ja schon die halbe CPU.
Stefan F. schrieb: > Wenn man so ein Projekt konsequent durchzieht, müsste man die ALU auch > selbst aus Logikgattern bauen. Die 6502 aus Transistoren und Dioden wurde oben schon verlinkt.
:
Bearbeitet durch User
Michael schrieb: >> Steve Jobs > Ne Nummer kleiner geht nicht? > Steve Jobs hat Heimcomputer für den kleinen Mann erschwinglich gemacht. > Nicht als Erster, nicht als Letzter, nur gut vermarktet. Und ohne das technische Genie des anderen Steve (Wozniak) wäre da gar nichts passiert und Jobs hätte bei Atari weitergemacht.
Matthias S. schrieb: > Und ohne das technische Genie des anderen Steve (Wozniak) wäre da gar > nichts passiert und Jobs hätte bei Atari weitergemacht. Der Ingenieur ist das Kamel auf dem der Kaufmann zum Erfolg reitet.
Michael schrieb: > Der Ingenieur ist das Kamel auf dem der Kaufmann zum Erfolg reitet. Keine Lust, von drunter nach drauf auf Kaufmann umzusatteln?
(prx) A. K. schrieb: > Keine Lust, von drunter nach drauf auf Kaufmann umzusatteln? Ich war schon 15 Jahre "oben", jetzt bin ich wieder Kamel! 😉
Stefan F. schrieb: > Wenn man so ein Projekt konsequent durchzieht, müsste man die ALU auch > selbst aus Logikgattern bauen. Also keinen 74181. Das ist ja schon die > halbe CPU. Das hat nichts mit konsequent zu tun sondern damit den Abstraktionslevel festzulegen. Sonst müsste er die Logikgatter aus Transistoren bauen. Und die Transistoren aus Sand. Geschwätz wieder mal von dir.
Gunnar F. schrieb: > Ich war schon 15 Jahre "oben", jetzt bin ich wieder Kamel! 😉 Hat das Kamel, auf dem du geritten bist, nicht zum gewünschten Erfolg geführt? Oder bringt es als Kamel mehr Befriedigung? ;-)
Florian T. schrieb: > Ich möchte die CPU mit Logic Bausteinen aus der 74xx und 40xx Reihe > bauen. Stefan F. schrieb: > Wenn man so ein Projekt konsequent durchzieht, müsste man die ALU auch > selbst aus Logikgattern bauen. Also keinen 74181. Das ist ja schon die > halbe CPU. Cyblord -. schrieb: > Das hat nichts mit konsequent zu tun sondern damit den Abstraktionslevel > festzulegen. Sonst müsste er die Logikgatter aus Transistoren bauen. > Und die Transistoren aus Sand. > Geschwätz wieder mal von dir. Wenn du meinst. Ich sehe da eher Geschwätz von dir. Aber egal. Das du einen an der Waffel hast, ist ja allgemein bekannt. Wahrheiten muss man klar kund tun, sagst du selbst.
>> Ich möchte die CPU mit Logic Bausteinen aus der 74xx und 40xx Reihe >> bauen. Sowohl einfache Gatter als auch eine ALU fallen unter den Begriff "Logic Baustein". Programmierbare Bausteine sind raus. Transistoren auch. Damit ist das Level recht eindeutig festgelegt. Und viele andere CPU Selbstbauten verfahren genau so. Was passt dir also nicht? > Das du > einen an der Waffel hast, ist ja allgemein bekannt. Versuche mal deine Gedanken mit Argumenten zu untermauern anstatt mit persönlichen Beleidigungen.
:
Bearbeitet durch User
Cyblord -. schrieb: > Versuche mal deine Gedanken mit Argumenten zu untermauern anstatt mit > persönlichen Beleidigungen. Ich könnt euch gerne Musk und Zucker zum Vorbild nehmen, und das als Cage Fight untereinander ausmachen. Aber bitte nicht hier.
Cyblord -. schrieb: > Versuche mal deine Gedanken mit Argumenten zu untermauern anstatt mit > persönlichen Beleidigungen. Haha, der war gut. Nach dem was du in dem anderen Thread über einen Journalisten von dir gegeben hast ... man man man, wie kann man nur so tief sinken?
Hallo zusammen, Vielen dank erstmal für eure Tipps. Mein aktueller Plan für die CPU: 1. Block Diagramm beenden(es fehlen noch Register wie : SP LV usw., und wie oben genannt ein instruktions-dekoder) 2. Meine Überlegungen in eine Simulation packen.( ob FPGA oder LOGISIM oder ähnliche Programme wird sich zeigen.) Auch wenn ich mich für die Version "logisim" entscheiden werde muss ich mein ganzen Aufbau, bevor ich Platinen baue erstmal in einem FPGA prüfen, dass habe ich jetzt gelernt. 3. Platinen Design in Kicad (Eagle mag ich irgendwie nicht) und Herstellung bei irgend ein Chinesen nach ersten Prototypen aus dem Drucker der UDE. Wahrscheinlich werde ich mich von meiner ursprünglichen Idee die mik-1 zu verbessern abwenden und alles Selber in die Hand nehmen, weil mein Design eh schon weit von Tannenbaums Ideen entfernt ist. Das mit Jobs war nur ein Spaß: Ich wollte damit nur sagen das ich nicht aufgeben werde auch wenn viele so ein Projekt nicht mögen. Ich weiß nicht mehr wer aber ein paar Leute haben gesagt, dass ich mir das Programm "ModelSim", von Siemens, runterladen soll nur gibt es das nicht mehr zu mindestens für eine Weile auf der Siemens Seite. Wenn das Programm wirklich gut ist wovon ich ausgehe , stellt sich mir die Frage woher ich es kostenlos bekomme. Die Anregung einen 74 181 zu nutzten, empfinde ich als eine gute Idee, weil mir dann viele Ic's erspart werden. Trotzdem baue ich noch ein Shift Register in beide Richtungen hinzu, und mein ganzer anderer kram, der die Bedingten Sprünge vereinfacht. Was ich in meiner CPU generell versuche umzusetzen ist, dass viele kleine Programmteile durch schnellere Logik ersetzt werden, und wieder ein 1 Mhz Takt schnell aussehen lässt. Ich weiß dass man diese Methode nicht in endlose ziehen kann. Vg Florian
(prx) A. K. schrieb: > Hat das Kamel, auf dem du geritten bist, nicht zum gewünschten Erfolg > geführt? Oder bringt es als Kamel mehr Befriedigung? ;-) nö ich konnte nur irgendwann der Versuchung nicht widerstehen, in den Internationalen Vertrieb zu gehen. War eine gute Zeit, aber es zog mich zurück zu meinen Wurzeln und meiner Berufung.
Moin, Ja, wenn du Spass dran hast, dann nur zu. Waere nicht das erstemal, das sowas Spass bringt und auch mal irgendwann funktioniert. Florian T. schrieb: > Das mit Jobs war nur ein Spaß: Ich wollte damit nur sagen das ich nicht > aufgeben werde auch wenn viele so ein Projekt nicht mögen. Und selbst wenn... Du musst ja niemandem Rechenschaft ablegen. Wenn's dir nicht mehr taugen sollte, so what - dann halt nicht mehr. Fliegt das ganze Zeugs halt erstmal in's Eck. Wenn du sowas alleine fuer dich machst, ist das ein ganz anderes Kaliber, wie wenn Leute hier aufschlagen, mit irgendwelchen lustigen Ideen, die sie gerne als Abschluss/Bachelor/Masterarbeit oder sowas machen wollen. Und wo dann schnell klar ist, dass sie das nicht vernuenftig/sicher in der gegebenen Zeit hinkriegen werden. Und wo dann das Scheitern sich in einer Bewertung manifestiert, die keiner gerne haben will. Wo's aber dann fuer die Bewerter auch echt schwierig wird, aus einem rauchenden Truemmerhaufen noch was positives zu ziehen. Da das alles bei dir nicht zutrifft: Leg los! Gruss WK
H. H. schrieb: > nimm 74HCxxx, die sind auch für einen > Anfänger beherrschbar. danke hinz, wollte ich auch gerade schreiben, HC Typen sparen immerhin Strom und haben ein größeres fan out. Trotzdem sollte man nicht an Abblockkondensatoren sparen.
:
Bearbeitet durch User
Florian T. schrieb: > Trotzdem baue ich noch ein Shift Register in beide Richtungen hinzu, Braucht eine CPU nicht. Shift ist nur eine Andersverbindung der Eingänge I0..I7 und Ausgänge O0..O7 der ALU. ShiftLeft: I0->O1, I1->O2, I2->O3, I3->O4, I4->O5, U5->O6, I6->O7, I7->CarryOut, 0->O0. RolLeft: CarryIn->O0, I0->O1, I1->O2, I2->O3, I3->O4, I4->O5, U5->O6, I6->O7, I7->CarryOut. ShiftRight: I0->CarryOut, I1->O0, I2->O1, I3->O2, I4->O3, I5->O4, I6->O5, I7->O6, 0->O7 RolRight: I0->CarryOut, I1->O0, I2->O1, I3->O2, I4->O3, I5->O4, I6->O5, I7->O6, CarryIn->O7 Da schaltet einfach ein Multiplexer den gewünschten Pin durch. Auch als Barrel-Shifter um 1 bit, 2 bit und 4 bit kaskadiert.
Wenn Du Dir wirklich CPU-Design angucken willst, solltest Du ein Literatur Studium starten. Ich schreibe Dir ein paar Titel aus meiner Bibliothek auf, findest Du bei der naechsten Universitaet oder libgen... Malvino, Brown: Digital Computers Electronics, McGraw-Hill, 1993 Ward, Halstaed: Computation Structures, MIT, 1990 Patterson, Hennessy: Computer Architecture a Quantitative Approch, 1990 Neue Auflage 2008. Ich moechte besonders darauf hinweisen, dass es ein Zusatzkapitel gibt: "Another Approach to Instruction Set Architecture—VAX", der Super-CISC. Morris, Mano: Computer System Architecture, prentice Hall. Dazu gibt es auch ein Solution Manual fuer die Aufgaben. Prosser: The Art of Digital Design, 1987 Du siehst, dass ist alles altes Zeug. Wenn Du etwas aktuelles haben willst: Patterson, Hennessy: Computer Organization and Design The hardware Interface RISC V Edition, 2018 Gruesse Th.
Und unterschaetze nicht den Aufwand von so einem Zeug: Du schrubst, Du seiest 16. Gehe davon Aus, dass der erste Boot zum 18. Geburtstag startet, das erste "Hallo World" wohl zum 21. Man kann sehr viel lernen, aber der Auswand ist schon beeindruckend. Gruesse Th.
Mancher hat im Grunde lediglich einen Satz (E)EPROMs über einige Register und Muxer miteinander verbunden. Also nicht nur fürs Mikroprogramm, sondern auch für ALU, Dekoder, ...
:
Bearbeitet durch User
(prx) A. K. schrieb: > Mancher hat im Grunde lediglich einen Satz (E)EPROMs über einige > Register und Muxer miteinander verbunden. Also nicht nur fürs > Mikroprogramm, sondern auch für ALU, Dekoder, ... Genau, ein programmierbares Schaltwerk. Gab es mal in einem Heftchen, aus einer fernen alten Welt von einem Ing.-Verein namens KdT, Heft 41 "Halbleiterspeicher Teil 3" Hatte ich aus Jux gebaut, auf mehr Ein- und Ausgänge erweitert und mit einem Dual-Port-RAM zur besseren Programmierung aufgepeppt. Mit C einen kleiner Assembler geschrieben inklusive "Compiler". Linker war nicht nötig. Hat als Steuerung für die Modellbahn jahrelang super funktioniert. Das war 1988. Die Bauelemente gibt's jetzt noch oder bessere Nachfolger. Das wäre für den Anfang ein überschaubares Projekt mit Erfolgsaussicht. Blackbird PS: den ganzen Artikel hab ich jetzt nicht abfotografiert ...
:
Bearbeitet durch User
Gruss Ein TTL Projekt Namens Gigatron TTL, als Retro, gab es vor ein paar Jahren. Vom Verständnis her interessant, finde ich. In aller Ehre und Historie ist zum Beispiel Margaret Hamilton und das damit verbundene Umfeld erwähnenswert. Dirk St
:
Bearbeitet durch User
Dirk S. schrieb: > Ein TTL Projekt Namens Gigatron TTL, als Retro, gab es vor ein paar > Jahren. Vom Verständnis her interessant, finde ich. Wolfgang R. schrieb: > Gigatron: > > https://gigatron.io/ Hatte ich schon verlinkt - hat gleich eine Negativbewertung gegeben... verstehe, wer will.
Wolfgang R. schrieb: > hat gleich eine Negativbewertung gegeben... > verstehe, wer will. Musst du nicht verstehen.... Hier Beitrag "Re: 8-Bit CPU Selbstbau" habe ich auch eine negative Bewertung bekommen.... Warum? KA! Der TO fragte nach einem FPGA Board unter 500 Ocken,
Wolfgang R. schrieb: > hat gleich eine Negativbewertung gegeben... verstehe, wer will. Ignorieren. Michael B. schrieb: > Da schaltet einfach ein Multiplexer den gewünschten Pin durch. Auch als > Barrel-Shifter um 1 bit, 2 bit und 4 bit kaskadiert. Das kann man dann im RTL-Schaltplan eines FPGA-Designs auch gleich super sehen...
:
Bearbeitet durch Moderator
> Literatur Studium starten Ja, mit dem theoretischen Wissen kann er dann versuchen auf Gatterebene eine CPU mit der noetigen Umgebung, Speicher/IO, aufzubauen. Und wird von der Menge der noetigen Gatter erschlagen. Der TO wird zu seinen Lebzeiten so keine VAX designen (koennen), und das Design auch noch erfolgreich in Betrieb bekommen. Wesentlich zweckmaessiger ist es, sich Bauteile/Konzepte anzusehen, die eine schnelle und (heute) einfache Loesung versprechen. Eine Implementation auf einem FPGA finde ich da eher reizlos. Aber mikroprogrammierbare Schaltwerke wurden ja auch schon genannt. Wie ich schon schrub, waere eine 74181 ALU ein guter Ausgangspunkt. Es schadet ja auch nicht, wenn die unterstuetzende Schaltung/Logik der heutigen Zeit angepasst ist. So kann es sein, dass der Registersatz "seiner" CPU in 7489 (16x4) RAMs gehalten wird, aber der Speicher fuer das Mikroprogramm deutlich(!) groesser ist. Ich wuerde dafuer auch, wie bei FPGAs, einen dynamisch aenderbaren Speicher, also RAM waehlen. Aber ob der TO ueberhaupt etwas zustande bringt? Erst will er ohne erkennbaren Grund Logikfamilien mischen, dann sollen es die jeweils schnellsten Vertreter sein. Das klingt alles noch recht unbedarft. Jemand mit ein wenig Erfahrung weiss, dass das beim "Anfaenger" direkt gegen den Baum geht.
(prx) A. K. schrieb: > Keine Lust, von drunter nach drauf auf Kaufmann umzusatteln? Ach, bin ja irgendwie beides, als Selbstständiger. Florian T. schrieb: > Ich wollte damit nur sagen das ich nicht > aufgeben werde Das ist am Anfang eines Projektes immer sehr leicht gesagt. Das wird sich zeigen, aus welchen Holz Du gemacht bist. Florian T. schrieb: > Die Anregung einen 74 181 zu nutzten, empfinde ich als eine gute Idee, vs > Meine Überlegungen in eine Simulation packen.( ob FPGA oder LOGISIM Es ist natürlich dem geringen Alter geschuldet, aber in dem haben alle irgendwie ein echtes Problem mit dem Zuhören. Du würfelst lustig alles durcheinander und ohne die Basics verstanden zu haben planst Du eigentlich schon das Layout und möchtest am liebsten schon alu für das 19' Rack sägen. Das nennt man treffend: Hektische Aktivität ersetzt geistige Windstille. A. Du willst eine mehr als pur minimalistische CPU bauen? Dann solltest Du nicht ein einziges Logiggatter egal aus welcher Familie in die Hand nehmen. Da nimmst Du ein fix und fertiges FPGA Entwicklungsboard mit Spannungsversorgung und ein paar nützlichen Schnittstellen und lernst erstmal eine Hardwarebeschreibungssprache. B. Du willst irgendwann einmal auch irgengeinen Code darauf ausführen? Dann brauchst Du Speicher, Schnittstellen und sofern Du nicht vorhast das auf Bitebene in die Speicherzellen zu tackern, brauchst Du wohl noch etwas mehr. Aber was sollst. Ich denke mit 16 war ich auch über so profane Dinge wie 'Realität' erhaben und berauscht von meinem Genie. Das sich dann leider als weit weniger genial herausstellte, aber die Erfahrung mussten wir wohl alle machen. Hau rein. Wird schon irgendwas mit dir machen.
Es gab Zeiten, da hat man schon mal einen Rechner selber gebaut. Mit Euro/Doppeleuro-Karten für 68000-CPU mit Selfmade-MMU, DRAM, Floppy-Controller, Batterie-gepufferten System-SRAM, Grafikkarte, Dual-Port Karte zum I/O-Controller (PC/AT Klon fürs HDD). Und natürlich dem eigenen Betriebssystem. Nette Erfahrung, weil man alles vom Gatter rauf bis zu Betriebssytemgrundlagen kennt, was heute eher selten ist. Aber das war anno Tobak und muss heute echt nicht mehr sein. Ich verstehe aber irgendwie, dass manch Jüngerem untenrum was fehlt.
:
Bearbeitet durch User
A.K. schrieb: >Mancher hat im Grunde lediglich einen Satz (E)EPROMs über einige >Register und Muxer miteinander verbunden. Also nicht nur fürs >Mikroprogramm, sondern auch für ALU, Dekoder, ... Ein ziemlich minimalistisches Beispiel dazu ist der Nibbler: http://www.bigmessowires.com/nibbler/ Und Gigatron geht eigentlich auch in die Richtung https://gigatron.io/ Lothar J. (black-bird) >Genau, ein programmierbares Schaltwerk. Das wird in der Automatentheorie auf den Punkt gebracht. Man kann alles mit einem Speicher und einem Latch realisieren, wie hier mit dem Moore-Automat gezeigt: https://de.wikipedia.org/wiki/Moore-Automat#/media/Datei:Moore-Automat-de.svg Es lassen sich also mit großen Speichern und EPROMs alle Rechnerstrukturen bauen. Es wird eigentlich keine spezielle ALU gebraucht, das geht mit einem großen EPROM auch. Deshalb ist meine Meinung: Designs wie der Gigatron leben von den großen Speichern und eigentlich müsste man den Transistor-Count als Maß für die Qualität eines Designs heranziehen. Oder anders ausgedrückt: man sollte sich die Frage stellen, ob man das Design auch mit den Bauteilen aus dem Jahr 1970 bauen könnte. Hätte man in den 70er Jahren schon die großen Speicher gehabt, hätte man ganz andere Rechnerstrukturen gebaut. Hatte man aber nicht, die Anzahl der Transistoren war begrenzt und das ist die wesentliche Beschränkung, die es einzuhalten gilt.
Ich habe 2019 eine kleine CPU auf dem MAX1000 FPGA Board erstellt und darüber bei ELEKTOR berichtet. Einen Compiler dafür hab ich ausgehend vom "small C Compiler (Ron Cain)" entwickelt. Vielleicht ist der "small C" Ansatz hier auch hilfreich.
Michael schrieb: > Logig Michael, dieses Wort kratzt mir fast das Auge aus. Bitte schreib doch "Logik" wie alle Anderen auch... ;-)
Hallo Leute , So erstmal danke an Thomas für die Literatur Vorschläge. Bin zwar nicht die leseratte aber solche Bücher gehen immer. Damit mein Design jetzt mal in die Simulation geht , habe ich mir mal nen Fpga dev Board gekauft: https://numato.com/product/elbert-v2-spartan-3a-fpga-development-board/ aber günstig und gebraucht! Bei mir ist noch nen lcd 2x16 und eine weitere 7-Segment Anzeige. Ich hoffe das Board ist nicht ganz aus der Zeit. Aber für den Anfang reicht es hoffentlich erstmal. Vg Florian Ps. melde mich morgen oder Montag vielleicht nochmal. Heute habe ich leider keine Zeit mehr.
> günstig und gebraucht!
Da lag dann hoffentlich auch günstig und gebraucht eine
ISE10.1 DVD dabei. Inklusive der beiden Installationsschluessel.
Wenn Mann alles will.
Florian T. schrieb: > Ihr habt mich erstmal überzeugt das ich nur ein ic Typ nutzte .: am > besten die schnellste Variante von der 74 Logic. Wozu? Damit deine Drahtverhaue noch mehr Probleme machen? > Ja ich weiß das Projekt ist verrükt. Eher langweilig, weil es den Kram in allen möglichen Varianten schon JAHRZEHNTE gibt! > Auch wenn mein Projekt erstmal > nicht so super gut ankam, werde ich trotzdem weiter machen Steve Jobs > hatte bei seiner ersten Vorstellung auch einen kompletten Reinfall, aber > wo ist er ausgekommen? Jaja. Goethe ist tot, Einstein musste sterben und mir ist auch schon ganz schlecht! ;-) > Mit meinem Design kann ich zwar nichts erreichen aber keiner kann in die > Zukunft blicken. Machst du ein Aufbaustudium in Tautologie? https://de.wikipedia.org/wiki/Tautologie_(Logik) > Aber wie ihr seht es haben viele Leute solche Ideen, die sogar umgesetzt > werden. Nur ist bei mir der große Unterschied dass ich erstens lernen > möchte wie ein Computer funktioniert Was ein vollkommen legitimes und gutes Ziel ist! Daran will dich keiner hindern. Aber du solltest dir trotzdem ein paar Fragen stellen und nach Möglichkeit sinnvoll beantworten und Prioritäten setzen. Denn ALLES auf einmal kann man nicht sinnvoll erreichen. Welche Aspekte der CPU-Entlwiclung sind dir wichtig? Die Logik? Die Programmierung? Der Speicher/IO-Kram? Die Umsetzung in old school Hardware? Willst du eingene Logik-ICs bauen? Mit selbst hergestelltem Silizium? Welche davon sind für dich nicht so wichtig? > und zweitens versuche ich > zumindestens ein bisschen was neu erfinden. Davon träumen alle, 99,99% scheitern glanzlos. > Ich finde eine Simulation für eine gute Idee, das einzige Problem was > ich sehe ist, dass ich bis jetzt noch keine Möglichkeit gefunden habe > meine KiCad Schaltpläne zu simulieren Was ja auch Käse ist. Wenn man Logik simulieren will, nimmt man einen Logiksimulator! (->Tautologie!) Der kann eine Schaltplaneingabe oder VHDL & Co anbieten. ( wollte mal sowas programmieren > aber bin kläglich an der Geschwindigkeit von Windows Firma in c# > gescheitert. Ja ich werd’s nochmal mit sdl2 versuchen ) . Du willst auf viel zuvielen Hochzeiten tanzen. Am Ende erreichst du praktisch kein einziges Ziel. > Zu FPGA‘s kann ich nichts sagen aber ich könnte mich mal anfangen damit > zu beschäftigen. Bräuchte nur ein günstig es dev Board weil ca. 500€ für Für eine 8 bit CPU tut es ein gebrauchtes für 50 Euro und weniger. > Zu den PCB‘s : es soll ein Computer werden, der in ein 19“ Rack rein > kommen. Dh. Ganz viele kleine Karten gibt. Warum auch immer. > Ps. Melde mich morgen wieder es wird langsam zu spät um klar zu denken. In der Tat. Ich hab vor >20 Jahren mal mit dem Picoblaze von Xilinx rumgespielt, war interessant. Ok, ich hab ihn nicht entwickelt, nur benutzt, analysiert und angewendet und bissel was angeflanscht.
Beitrag #7455423 wurde von einem Moderator gelöscht.
Florian T. schrieb: > Damit mein Design jetzt mal in die Simulation geht , habe ich mir mal > nen Fpga dev Board gekauft Ahm, die Simulation machst du ganz ohne jegliche Hardware. Sieh dir einfach mal meine HP an. Und dort das "Hello World" der Hardware, die blinkende LED: - http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html Und mal zum groben Zeitplan: bis zum Winteranfang lernst du erst mal VHDL Blinklicht, Lauflicht, serielle Schnitte, VGA Ansteuerung usw... Und wenn du das auf viele Arten erst falsch und dann richtig gemacht hast, dann erst beginnst du mit deinem Rechner. Denn sonst sind alle die Anfängerfehler in deinem Zieldesign drin. BTW: such mal nach meinen "Postulaten für Anfänger" im VHDL Forum. In diesen Threads kannst du all die Fehler der anderen Anfänger finden, die du auch machen wirst. - https://www.mikrocontroller.net/search?query=Postulate&forums%5B%5D=9&max_age=-&sort_by_date=1
:
Bearbeitet durch Moderator
> all die Fehler der anderen Anfänger findrn
Fuer einen Lernerfolg muss Mann die Fehler schon selbst machen.
Und auch selbst die (Fehler-)Ursache finden.
Nur das gibt die positive Rueckkopplung.
Lothar M. schrieb: > kannst du all die Fehler der anderen Anfänger findrn, die > du auch machen wirst wie oft hat "vorsicht heiss" verhindert das sich Kinder am Herd verbrennen?
Motopick schrieb: > Fuer einen Lernerfolg muss Mann die Fehler schon selbst machen. Mitnichten. Man kann tatsächlich auch aus Fehlern anderer lernen. Ich zumindest. Joachim B. schrieb: > wie oft hat "vorsicht heiss" verhindert das sich Kinder am Herd > verbrennen? Ja, ich denke, mit 16 ist man aus dem Kindesalter langsam raus. Denn auch "auf Andere hören" muss gelernt werden.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Motopick schrieb: >> Fuer einen Lernerfolg muss Mann die Fehler schon selbst machen. > Mitnichten. Man kann tatsächlich auch aus Fehlern anderer lernen. Ich > zumindest. Und vor allen Dingen muss man das Rad nicht immer selbst erfinden (Kann ich das runde Ding noch mal sehen?). Deswegen hatte ich ihm die Buecherliste gezeigt, nicht durcharbeiten sondern gucken wie die Anderen arbeiten. Gruesse Th.
Lothar M. schrieb: > Denn > auch "auf Andere hören" muss gelernt werden. ist doch "out" sieht man hier jeden Tag!
Beitrag #7455603 wurde vom Autor gelöscht.
mir hat im Zusammenhang mit "CPU" in VHDL auch folgendes geholfen, also wie die Planung und Vorgehensweise aussehen kann: Übersicht: https://domipheus.com/blog/rpu-series-quick-links/ Teil 1 (der 16Bit TPU): https://domipheus.com/blog/designing-a-cpu-in-vhdl-part-1-rationale-tools-method/ Geht mit einer eigenen 16Bit CPU los und endet mit einer RISC-V CPU. Den Übergang fand ich sehr hart -> etwas zum lernen für mich.
Lothar M. schrieb: > Motopick schrieb: >> Fuer einen Lernerfolg muss Mann die Fehler schon selbst machen. > Mitnichten. Man kann tatsächlich auch aus Fehlern anderer lernen. Ich > zumindest. Eine Lern/Lehrmethodik, die nur auf Wissenserwerb durch Reproduktion abstellt, bringt dann aber auch nur Ingenieure hervor, die aus Normteilen Normmaschinen zusammenbauen koennen, und denen jedwede Innovation zutiefst wesensfremd ist. Das kann man ihnen nicht mal uebelnehmen. Sie haben es ja nicht anders gelernt und gelehrt bekommen.
Lies dir nochmal durch, was ich geschrieben habe. Ich habe nicht gesagt, dass man durch das Lesen dieser Bücher und Threads lernen wird, keine Fehler zu machen, sondern ich schrieb: > In diesen Threads kannst du all die Fehler der anderen Anfänger finden, > die du auch machen wirst. Ich sage also: mach dich vorher schlau, denn wenn du schon mal gelesen/gehört/gelernt hast, dass es diesen Fehler gibt, dann findest du ihn schneller, wenn du ihn dann mal selber machst.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Ich sage also: mach dich vorher schlau, denn wenn du schon mal > gelesen/gehört/gelernt hast, dass es diesen Fehler gibt, dann findest du > ihn schneller, wenn du ihn dann mal selber machst. Es gibt so einen dummen Spruch:
1 | Learn from the mistakes of others. |
2 | You won't live long enough to make all of them yourself. |
Da ist sehr viel wahres dran. Und die CPU-Entwicklung (zumindest die Theorie) ist seit 1995 eigentlich zuende, Details ja, aber richtige neue Ideen sind sehr wenig (jetzt neu Intel mit den Power/Economy-Kernen ist neu). Gruesse Th.
:
Bearbeitet durch Moderator
> durch das Lesen dieser Bücher und Threads lernen wird, keine > Fehler zu machen Don't panic! Meine Normteile habe ich schon drauf. Es schadet trotzdem nicht, gelegentlich etwas flasch zu machen. Schon allein aus Trainingsgruenden... Mitunter ensteht aber dadurch etwas Neues.
>Da ist sehr viel wahres dran. Und die CPU-Entwicklung (zumindest die >Theorie) ist seit 1995 eigentlich zuende, Details ja, aber richtige neue >Ideen sind sehr wenig (jetzt neu Intel mit den Power/Economy-Kernen ist >neu). Das sehe ich anders. Erstens geht der Trend stark gegen Multicore und dazu passenden, effizienten Strukturen. Zweitens sind die Rechenstrukturen für die KI-Beschleunigung starker Veränderung unterworfen.
Thomas W. schrieb: > jetzt neu Intel mit den Power/Economy-Kernen ist neu) Nur bei Intel. ARM hat das schon lange, längst auch schon 3fach abgestuft.
Christoph M. schrieb: > Erstens geht der Trend stark gegen Multicore Aha. Unglücklich ausgedrückt? Oder was meinst du damit?
>Aha. Unglücklich ausgedrückt? Oder was meinst du damit?
Ich denke, um Daten zwischen den Kernen auszutauschen, braucht es
effiziente Bussysteme und Zwischenspeicher. Kann jeder Kern mit jedem in
maximaler Geschwindigkeit Daten austauschen?
Christoph M. schrieb: > Ich denke, um Daten zwischen den Kernen auszutauschen, braucht es > effiziente Bussysteme und Zwischenspeicher. Kann jeder Kern mit jedem in > maximaler Geschwindigkeit Daten austauschen? Nein, aber da entstehen schon seit einiger Zeit Strukturen aus Core-Gruppen, die innerhalb der Gruppe anderes Latenz- und Durchsatzverhalten zeigen, als zwischen den Gruppen. Das gab es schon vor 20 Jahren bei bestimmten Pentium 4 Systemen, damals allerdings zu Fuss aufgebaut in besonderen NUMA-Systemen mit mehr als 4 CPU-Sockeln (etwa IBM xSeries 440). Intel hielt bei Multicore-Dies die Cores zunächst in internen Ringbussen zusammen, bei grösseren Xeons in bis zu 3 gekoppelten Ringen aus je 6 Cores, die aber noch vollständig gemeinsame L3-Caches nutzen. Auch das hat Grenzen, weshalb jenseits von 18 Cores an Stelle der Ringe eine Verbindungsmatrix aufkam. Das bleibt nicht ohne Wirkung auf die Kommunikation, aber die Auswirkung auf die Latenz ist so überschaubar, dass man bzgl Optimierung der Anwendungen solche Dies ohne grosse Verluste noch als homogen ansehen kann. Völlig anders AMD, hier für Zen 2 / EPYC 2 beschrieben: kleine und nur in sich homogene Gruppen aus 4 Cores mit nur darin gemeinsamem L3-Cache. Untereinander kommunizieren diese Gruppen nicht so arg viel schneller als mit dem DRAM. Die Latenzen innerhalb der Gruppe und zwischen ihnen sind somit drastisch verschieden und man sollte das auf dem Radar haben. Es stellt Ansprüche an die Optimierung des Systems, sowohl im Hardware-Setup (BIOS) als auch auf OS- und Anwendungsebene. Konfiguriert man das pro Sockel als eine einzige NUMA-Node mit 64 Cores? Oder ist es sinnvoller, es als 16 Nodes zu betrachten, weil jede davon mit einem eigenen L3-Cache ausgestattet ist? Letzteres führt bei 2 Sockeln dann zu mehreren Betrachtungsebenen bzgl NUMA: der L3-Ebene und der DRAM-Ebene. Intel hoppelt etwas hinterher. Die neueste Generation mit Multidie-Sockel folgt ganz grob AMDs Schema von Zen 1, mit grösseren Core-Gruppen und m.W. getrennter DRAM-Anbindung pro Gruppe.
:
Bearbeitet durch User
Thomas W. schrieb: > Da ist sehr viel wahres dran. Und die CPU-Entwicklung (zumindest die > Theorie) ist seit 1995 eigentlich zuende, Details ja, aber richtige neue > Ideen sind sehr wenig (jetzt neu Intel mit den Power/Economy-Kernen ist > neu). Bei der Entwicklung von CPUs gibt es immer wieder neue Ideen, z.B. The Mill: https://millcomputing.com/. Dort gibt es keine normale Register, sondern den Belt. Wenn es bei der Ausführung eines Befehls neue Daten als Ergebnis gibt, werden die direkt am Anfang des Belts eingefügt. Gleichzeitig fallen die ältesten Daten am Ende des Belts heraus. Im Wiki wird das genauer beschrieben: http://millcomputing.com/wiki/Belt
(prx) A. K. schrieb: > Christoph M. schrieb: >> Ich denke, um Daten zwischen den Kernen auszutauschen, braucht es >> effiziente Bussysteme und Zwischenspeicher. Kann jeder Kern mit jedem in >> maximaler Geschwindigkeit Daten austauschen? > > Nein, aber da entstehen schon seit einiger Zeit Strukturen aus > Core-Gruppen, die innerhalb der Gruppe anderes Latenz- und > Durchsatzverhalten zeigen, als zwischen den Gruppen. Das gab es schon > vor 20 Jahren bei bestimmten Pentium 4 Systemen, damals allerdings zu > Fuss aufgebaut in besonderen NUMA-Systemen mit mehr als 4 CPU-Sockeln > (etwa IBM xSeries 440). > > Intel hielt bei Multicore-Dies die Cores zunächst in internen > Ringbussen ... Genau so was, allerdings in 8-bit, wollte der TO basteln! Oder wolltet ihr etwa nur mal wieder einen Threat kapern?
Joe L. schrieb: > Genau so was, allerdings in 8-bit, wollte der TO basteln! Mit 74er Logikbausteinen und PCBs in Kuchenblechgröße. Das Vorhaben des TOs in allen Ehren, aber was war gleich die Zielsetzung? Lernen wie es geht, die Tools kapieren, um irgendwann einmal vielleicht an einer reale CPU mitzuwirken, oder mit 16J, ein wenig Kicad + Bleistift + Zettelblock den 8bit CPUs zu neuem Glanz verhelfen? Wie Lothar bereits andeutete kännte er bis Ende des Jahres halbwegs Sattelfest in FPGA + Simulation sein und anfangen an seiner CPU zu arbeiten. D.H. wenn Florian T. Woszniak Jobs Gates bis dahin nicht bereits seine jugendliche Begeisterung auf 'Weichziele' statt Hardware gelenkt hat.
Beitrag #7458224 wurde von einem Moderator gelöscht.
Ich moechte noch mal auf den Wunsch des TO zurueckkommen: Ein TTL-Grab als CPU. Und wenn er das machen moechte, dann sind die Buecher, die ich vorgeschlagen hatte, schon zielfuehrend. Und was er bauen kann, ist auch Stand der 80'er Jahre (vielleicht Pipelining, aber das ist ziemlich viel). Ich glaube nicht, dass der TO ein Multibus-System im elterlichen Badzimmer bauen will oder eigenes Silizium in der Kueche backen will. Und heute mit den Werkbank China fuer die Leiterplatten, Simulationsprogramme fuer die SW, ist das schon ein Ziel das in zwei Jahren zu realisieren ist. Wenn man will. Gruesse Th.
Nicht ganz uninteressant ist übrigens auch das hier: http://www.rskey.org/CMS/index.php/the-library/22 (https://www.elektor.de/programmierbare-taschenrechner-selbst-gebaut-pdf) Denn: früher war doch BASIC Top. Einfach zu lernen, und noch lange in Schulkursen angewendet, für verschiedene Algorithmen z.B. Das hatte man (neben dem einfachen Zugang) also zusätzlich: Hardware- + Programmier-KnowHow. Heute muss man halt schauen, was so gängig ist, was wird in Foren gemacht bzw. diskutiert, was nicht. So ist heute C ziemlich wichtig. Sicher kann man auch Java oder JS gebrauchen - aber so grundlegend sollte man sich erstmal auf C konzentrieren - und auch versuchen, alte BASIC-Quellen nach C zu übersetzen. Dümmer wird man dabei sicher nicht.
:
Bearbeitet durch User
Rbx schrieb: > früher war doch BASIC Top Ja, war wirklich einfach zu verstehen. Der Name war Programm (Beginner's All-purpose Symbolic Instruction Code). Das aktuelle Pendant dazu ist Python, würde ich mal sagen.
Schau dir das mal das alte Elektor Projekt von 1974 mit dem 74181 an. https://ia801202.us.archive.org/35/items/Computer74/computer-74.pdf Der hatte 12 Bit aber das kannst du ja auf 8 Bit abspecken. Meiner von 1973 hatte sogar 16 Bit aber das war eine ganze Europa-Etage mit 4 Karten a 4 Bit alleine für die CPU. Gibt aber keine Unterlagen und keine Hardware mehr davon. Im Netz findest du die 74er Serie als VHDL, damit kannst du das ganze zuerst mal simulieren.
Motopick schrieb: > Eine Lern/Lehrmethodik, die nur auf Wissenserwerb durch > Reproduktion abstellt, bringt dann aber auch nur Ingenieure > hervor, Das ist schon richtig, aber gerade am Beginn, wenn man sich mit einem neuen Thema befasst, macht es sehr viel Sinn, sich einmal all das, was andere schon gemacht haben, zu Gemüte zu führen. Man muss natürlich verstehen, in welcher Nische sie die Lösung bewegt, welche Randbedingungen zur Lösung führten und wieviel man davon auf den eigenen Fall übertragen kann. Daran fehlt es in der Tat oft. Die Verwendung bestimmter Filter für konkrete Anwendungen ist ein schönes Beispiel wo all zu oft unkritisch eine Standardlösung übernommen wird, statt nachzudenken. Angewendet auf das Thema hier, muss man sich fragen, welche OP-Codes man in einen 8-Bit-Prozessor einbauen sollte, damit er zeitgemäß ist und nicht so, wie die Restriktionen damals aufgeworfen hatten.
Florian T. schrieb: > Ich möchte eine 8 Bit CPU bauen und habe mir schon ausgedacht wie sie > aufgebaut sein sollen. > > 1.Wie komme ich zu so einer verrückten Idee? > > Ganz einfach: ich mache gerade das Frühstudium zur Vorlesung > „Rechnerarchitektur“ an der UDE. Der Dozent hatte die mic-1 in seiner > Vorlesung vorgestellt und ich dachte mir das ich die besser machen kann. > ( also das drum herum ) Tatsächlich stammt die MIC-1 von Andrew Tanenbaum (u.A. Autor von MINIX), der zwar der UDE doziert hatte, 2014 aber in den Ruhestand versetzt wurde. Die Wikipedia beschreibt MIC-1 wie folgt: "The MIC-1 is a processor architecture invented by Andrew S. Tanenbaum to use as a simple but complete example in his teaching book Structured Computer Organization. It consists of a very simple control unit that runs microcode from a 512-words store. The Micro-Assembly Language (MAL) is engineered to allow simple writing of an IJVM interpreter, and the source code for such an interpreter can be found in the book." Was will ein 16-jähriger Lausbub da noch groß verbessern? Hätte sich der TO auch nur entfernt mir MIC-1 beschäftigt oder wenigstens mal das Buch (*) gelesen wäre ihm längst klar, wo die Ecken und Kanten bei "seinem" Projekt liegen. just my 2ct (*) Tanenbaum, Andrew S. (2006). Structured computer organization. Upper Saddle River, NJ: Pearson Prentice Hall. ISBN 978-0-13-148521-1.
J. S. schrieb: > Angewendet auf das Thema hier, muss man sich fragen, welche OP-Codes man > in einen 8-Bit-Prozessor einbauen sollte, damit er zeitgemäß ist und > nicht so, wie die Restriktionen damals aufgeworfen hatten. Das hängt stark davon ab, worin programmiert werden soll. AVR war vmtl die erste 8-Bit Architektur, bei der fast von Anfang an Augenmerk auf Programmierung in C gelegt wurde. Trotzdem wurden Fehler gemacht, wobei dem kooperierenden Compilerhersteller genau dadurch ein Vorteil gegenüber z.B. GCC erwuchs. Dummerweise braucht man dafür etwas Erfahrung in dem, was C Compiler benötigen.
:
Bearbeitet durch User
(prx) A. K. schrieb: > Dummerweise braucht man dafür etwas Erfahrung in dem, was C Compiler > benötigen. Du meinst das Hardware-bezogen, denke ich mal. Ansonsten könnte man vermuten, dass die Teilnahme an C-Obfuskations-Wettbewerben diesbezüglich ganz schön beflügeln kann. ARM ist mit seinem RISC-Design m.E. ein wenig zu sehr auf Hochsprache gegangen. Da kann man dann beim Selberbau tatsächlich entscheiden, ob man das wirklich haben muss, oder dem User lieber etwas mehr Transparenz, AVX- oder LEA- und anderen Programmierspaß überlässt (z.B.). Tatsächlich aber rocken auch die Grafikkarten - und da ist man dann doch wieder bei C. Man könnte sich sowas überlegen: 8Bit-Cpu + DSP. Da hätte man vermutlich auch mehr Aktualität im Plan.
Rbx schrieb: > (prx) A. K. schrieb: >> Dummerweise braucht man dafür etwas Erfahrung in dem, was C Compiler >> benötigen. > > Du meinst das Hardware-bezogen, denke ich mal. Was für Adressierungen und Operationen sind sinnvoll, was kann man sich sparen. Bei AVR fehlen beispielsweise atomare Operationen auf den Stackpointer. > ARM ist mit seinem RISC-Design m.E. ein wenig zu sehr auf Hochsprache > gegangen. Weshalb ARM in dieser Hinsicht von Anfang an problemlos war. Zu sehr? Die Grundlage RISC war gesetzt - das sollte einfach zu implementieren sein. Kein Micro/Nanocode-Monster wie 68000 und auch kein verbuggtes Random Logic Grab wie Z8000. Das grösste Manko der nativen ARM-Architektur liegt im Design der Interrupt-Verarbeitung. Das betrifft C aber nur sekundär.
:
Bearbeitet durch User
(prx) A. K. schrieb: > Das grösste Manko der nativen ARM-Architektur liegt im Design der > Interrupt-Verarbeitung. Könntest du das genauer erklären? Ich meine, ich entwickle selber keine Hardware, finde den Punkt aber doch ziemlich interessant. Da habe ich natürlich auch schnell mal nachgesehen, aber mein schlaues ARM-Buch beschreibt im besser C-Programmierteil nur typische Sachen wie Loop-Unrolling oder Alignement wichtig. Im Interrupt-Teil wird u.a. beschrieben, dass die Entwickler sich bei den Interrupts viel Mühe gegeben haben, u.a. um die Latenz im Rahmen zu halten und das dieser Punkt bei der Systemkonstruktion kein einfacher ist.
Rbx schrieb: >> Das grösste Manko der nativen ARM-Architektur liegt im Design der >> Interrupt-Verarbeitung. > > Könntest du das genauer erklären? Ich meine, ich entwickle selber keine > Hardware, finde den Punkt aber doch ziemlich interessant. Verschachtelte IRQs hatte man ursprünglich überhaupt nicht bedacht und eine IRQ-Handhabung erfunden, die damit nur umständlich umgehen kann. Eigentlich gibt es einen eigenen Registersatz für IRQ. Aber für verschachtelte Interrupts benötigt man einen recht umständlichen Top-Level-Handler, der genau diesen IRQ-Modus ASAP wieder verlassen muss, bevor der Handler des eigentlichen Interrupts aufgerufen werden kann. https://www.nxp.com/docs/en/application-note/AN10381.pdf Kernproblem ist, dass der PC des unterbrochenen Programms in R14 vom IRQ-Mode landet. Jeder IRQ in einem Handler, der im IRQ-Mode läuft, vernichtet damit dessen Inhalt. Folglich darf der Handler nicht im IRQ-Mode laufen und der Top-Level-Handler muss dafür den Modus umschalten. Ein separates Register nur für die Sicherung des PC hätte diesen Latenz produzierenden Zirkus vermieden.
:
Bearbeitet durch User
(prx) A. K. schrieb: > Ein separates Register nur für die Sicherung des PC hätte > diesen Latenz produzierenden Zirkus vermieden. Broken by design! Da hat jemand echt nachgedacht! Anstatt vor! ;-)
(prx) A. K. schrieb: > Aber für > verschachtelte Interrupts benötigt man einen recht umständlichen > Top-Level-Handler, der genau diesen IRQ-Modus ASAP wieder verlassen > muss, bevor der Handler des eigentlichen Interrupts aufgerufen werden > kann. Erstmal vielen Dank prx, für die ausführliche Antwort. Sowas hilft auf jeden Fall auch, den Text im angesprochenen Handbuch leichter zu verarbeiten. Für die Verschachtelung alleine wäre das aus meiner Sicht noch nicht nötig, da hätte auch ein Pipelining gut sein können. Das eigentliche Problem kommt wohl mit dem Prioritätenmanagement. Das kann man nur außerhalb angehen. Wie das ganze tatsächlich im Einzelnen zusammenwirkt, durchblicke ich noch nicht. Wird wohl auch noch eine Weile dauern ;) (https://interrupt.memfault.com/blog/arm-cortex-m-exceptions-and-nvic)
Rbx schrieb: > Für die Verschachtelung alleine wäre das aus meiner Sicht noch nicht > nötig, da hätte auch ein Pipelining gut sein können. Könntest du bitte näher ausführen, was du mit Pipelining im Zusammenhang mit Interrupts meinst? > Das eigentliche Problem kommt wohl mit dem Prioritätenmanagement. Völlig andere Baustelle. > (https://interrupt.memfault.com/blog/arm-cortex-m-exceptions-and-nvic) Ich beziehe mich ausdrücklich auf die native ARM Architektur, wie sie in den 1980ern entwickelt wurde. Die Cortex-M haben damit nur den Namen "ARM" gemeinsam. Deren Interrupt-Konzept ist praktisch das Gegenteil davon.
:
Bearbeitet durch User
(prx) A. K. schrieb: > Völlig andere Baustelle. Würde ich so nicht sagen. Aber das Buch selber eiert bei dieser Thematik auch ein wenig rum, statt wie auf den anderen Seiten meist recht klar und einfach zu kommunizieren. Das macht es schwierig zu verstehen, was du meinst und wegen dem fehlenden Real-World-Bezug im Buch muss ich auch (lästiger Weise) im Internet nachsehen, aber es ist ja erstmal gar nicht klar, was überhaupt. Zitat: "It is worth noting that nested interrupt handling is a choice made by the software, by virtue of interrupt priority configuration and interrupt control, rather than imposed by hardware." Quelle: https://developer.arm.com/documentation/den0013/d/Interrupt-Handling/External-interrupt-requests/Nested-interrupt-handling Aus diesem Blickwinkel sieht es nicht nach Design-Fehler aus.
Rbx schrieb: > "It is worth noting that nested interrupt handling is a choice > made by the software, by virtue of interrupt priority configuration and > interrupt control, rather than imposed by hardware." Stimmt schon. Wenn man keine nested IRQ-Interrupts braucht, hat man auch kein Problem mit der Hardware. Works as designed, denn das hatten die für den Acorn-Computer nicht vorgesehen. Es gab ja den höher priorisierten Fast-IRQ aka FIQ. Aber wenn man sie benötigt, weil man 1-2 Jahrzehnte später komplexe Mikrocontroller daraus macht, dann hat man durch das R14-Problem eine höhere Interrupt-Latenz. Klar hat man bei Nesting sinnvollerweise Prioritäten. Das R14-Problem hat aber nur mit Interrupts zu tun, die Interrupts unterbrechen dürfen, egal warum sie das tun. Unabhängig davon gibt es bei den Interrupt Controllern dieser alten ARM7&Co kleine Spielchen mit "spurious Interrupts". Auch das ist eine andere Baustelle und hat nun wiederum nichts mit der ARM-Architektur zu tun. Die gab es auch bei x86.
:
Bearbeitet durch User
Wenn die CPU und das drum herum mal steht kann man nochmals eine lehrreiche Jugend hinterher werfen um einen compiler zu schreiben.
Purzel H. schrieb: > Jugend hinterher werfen um einen compiler zu schreiben Mit ein bisschen Geschick, bekommt man in in ein paar Tagen/Monaten ein Forth System ans laufen. Incl. Assembler, Compilern und Interpretern. Einen minimalistischen Ansatz findet man z.B. beim F18A von Green Arrays
:
Bearbeitet durch User
Der TO ist doch längst weg. Gefühlt wenige Stunden nachdem er seinem Projekt die ewige Treue durch dick und dünn geschworen hatte. Herrje, der Junge ist 16J. Ewigkeit bemisst sich da in Tagen. Beglückwünschen wir ihn dazu. Wenn es ganz übel läuft bleibt man wirklich lebenslang bei der Totgeburt und baut eine BO8 🙄
Purzel H. schrieb: > Wenn die CPU und das drum herum mal steht kann man nochmals eine > lehrreiche Jugend hinterher werfen um einen compiler zu schreiben Noah wurde glaub 600 Jahre. Es besteht also Hoffnung, prinzipiell.
Abdul K. schrieb: > Noah wurde glaub 600 Jahre. Sagt die Bibel. Nur das die meisten Startreck Folgen erheblich glaubwürdiger und realistischer waren als dieser zusammenfantasierte Mist aus 2000 Jahren kirchlichen Machterhaltes auf dem Rücken einer mündlich überlieferten Geschichte eines archaischen Wüstenvolkes. Mit 'Stab zu Schlange' in der Fussgängerzone hätte ich heute nur den Tierschutz am Hals, diverse Anzeigen und wahrscheinlich ein paar Ohrfeigen der Umstehenden. Kaum nachvollziehbar das wegen dem zusammenfantasiertem Müll noch immer gebildete Menschen in Kriege ziehen.
Florian T. schrieb: > Vg Florian > Ich bin übrigens 16 Jahre alt. Ich habe mir den Beitrag nicht vollständig durchgelesen, weil ich den Gegenwind, den du hier erfährst, nicht ertrage. Mach das einfach! Du wirst unendlich viel falsch machen und unendlich viel lernen. Wenn du dieses Projekt auch nur teilweise umsetzt, wirst du in deinen späteren Bewerbungsgesprächen ohne Ende punkten. Solche Macher wie dich gibt es selten, und ich kann dich nur ermutigen, das umzusetzen, was du dir vorgenommen hast. Jedes Mal, wenn du ein Projekt dieser Dimension hier vorstellst, wirst du Gegenwind bekommen. Die Leute hier sind alle älter und in ihren Gedanken schon gewissermaßen festgefahren. Du hast noch einen kreativen und freien Kopf, behalte dir den so lange wie möglich bei. Stelle lieber Fragen, die bei der konkreten Umsetzung Probleme machen, ohne das große Ganze zu erwähnen.
Kaffee D. schrieb: > Ich habe mir den Beitrag nicht vollständig durchgelesen, weil ich den > Gegenwind, den du hier erfährst, nicht ertrage. Snowflake? > Mach das einfach! Tja DAS ist der Unterschied. Ich hätte das auch einfach gemacht, wenn ich Bock drauf hätte. Aber geht heute nicht mehr. Da muss erst ein Thread her und 1 Jahr Diskussion. > Jedes Mal, wenn du ein Projekt dieser Dimension hier vorstellst, wirst > du Gegenwind bekommen. Die Leute hier sind alle älter und in ihren > Gedanken schon gewissermaßen festgefahren. Die Leute hier wissen dass der TE nach 1 Woche genug hat. Und so war es auch.
Kaffee D. schrieb: > Solche Macher > wie dich gibt es selten Nö, die sind sogar sehr häufig. Cyblord -. schrieb: > Die Leute hier wissen dass der TE nach 1 Woche genug hat. Und so war es > auch. :-) Die Diskussion war sehr angeregt und teils von hoher Qualität. Sowohl was sinnvolle CPU Internas angeht als auch der dringende Rat frühzetig Richtung FPGA zu gehen wenn man das ernsthaft betreiben will. Wo hast Du die 'Hater' gesehen?
Hallo, schau mal bei Dennis Kuschel rein... Die MYCPU (6502) gibts da als TTL Grab oder als FPGA. http://www.mycpu.eu/ Viele Grüße Hans-Werner
von Florian T. schrieb: >Tobias wollte aber eine 32bit CPU bauen, ich nicht. Die Grundlagen sind immer die selben, egal ob 4Bit, 8Bit oder 32Bit. Als erstes brauchst du Logig-Schaltstufen, AND, OR, NAND, NOR. Davon tausende. Die kann kann man mit ICs, Tansistoren, Röhren, Relais, realisieren. Was willst du benutzen? Konrad Zuse hat mit Relais angefangen. Relais kann man aber nicht besonders schnell takten. Konrad Zuse hat sie mit 5Hz bis 10Hz getaktet. Die Amerikaner sind dann auf die Ide gekommen das mit Röhren zu machen und haben den ENIAC gebaut, daß ging schon schneller. https://de.wikipedia.org/wiki/ENIAC#/media/Datei:Eniac.jpg Also wie willst du deine Logig-Schaltstufen realisieren? https://www.elektronik-kompendium.de/sites/dig/0710091.htm https://de.wikipedia.org/wiki/Transistor-Transistor-Logik https://www.youtube.com/watch?v=GXRp7zmWwN8 Hier der Aufwand mit Transistoren um nur zwei 8Bit-Zahlen zu addieren: https://www.youtube.com/watch?v=X31B1pVow1o Hier ein Transistorcomputer: https://www.computerhistory.org/revolution/digital-logic/12/273/1371 Ich schätze mal, daß du angesichts des Aufwands bald aufgeben wirst.
Günter L. schrieb: > Transistorcomputer Ein echtes Meisterwerk dahingehend war die CDC 6600. Ein Supercomputer der 1960er mit 60 Bit Wortbreite und mehreren gleichzeitig arbeitenden Ausführungseinheiten inklusive Hardware-Multiplikation, nur aus Einzeltransistoren. Zum Nachbau jedoch eher ungeeignet. Ringkerne fädeln ist zudem nichts für Grobmotoriker.
:
Bearbeitet durch User
Kaffee D. schrieb: > Wenn du dieses Projekt auch nur teilweise umsetzt, wirst du > in deinen späteren Bewerbungsgesprächen ohne Ende punkten. Solche Macher > wie dich gibt es selten Das sehe ich anders. Es gibt viele Leute, die Projekte nicht zu Ende bringen. Ein "Macher" bringt zieht Projekte bis zu Ende durch. Du kennst den Spruch: Man macht Nägel mit Köpfen. > Die Leute hier sind alle älter und in ihren > Gedanken schon gewissermaßen festgefahren. Da hast du Wohl Recht. Ich zähle mich dazu. Ich habe viele Fehler gemacht und bin nicht darauf erpicht, sie zu wiederholen. Und natürlich möchte ich auch nicht, dass andere meine Fehler wiederholen. Andererseits stimmt es schon, dass man durch Fehler lernt. Solange das nicht sehr gefährliche ist oder einen in den Ruin treibt, kann man ruhig mal etwas ausprobieren. Mein Traumprojekt aus Teenager Zeiten war eine eigene Telefonanlage mit Logikgattern ohne Mikrocontroller (weil damit damals noch nicht umgehen konnte). Immer wieder habe ich die Pläne verworfen, weil sie unfassbar komplex und teuer wurden, um ein paar Monate später wieder von Vorne anzufangen. Nach mehreren Jahren habe es ich dann tatsächlich geschafft. Die Anlage hatte eine Amtsleitung und 6 Nebenstellen, sie passte von der Größe her in einen halben Schuhkarton. Bei diesem Projekt habe ich verdammt viel gelernt.
Günter L. schrieb: > Ich schätze mal, daß du angesichts des Aufwands bald aufgeben wirst. Ich schätze mal, dass das schon passiert ist. Der letzte Beitrag des TO war vor über einem Monat... > Logig-Schaltstufen Bittebitte schreib Logik mit hartem 'k' am Schluss! Den Grund habe ich im Beitrag "Re: 8-Bit CPU Selbstbau" schon genannt. Und im Post danach findet man den Weg, den der TO anscheinend gehen will: er packt die CPU in ein FPGA.
:
Bearbeitet durch Moderator
Vielleicht ist es einfacher, eine 16Bit CPU zu bauen: https://www.jiristepanovsky.cz/project.php?p=23cpu Was so ein klein wenig Speicher so alles möglich macht ..
> Ich schätze mal, dass das schon passiert ist. So ist das halt mit "Schneeflocken". Sehen sie eine heruntergefallene Portion Speiseeis auf der Strasse, rufen sie "Glatteis" und kehren um. So schnell wie die Begeisterung kommt, verschwindet sie in Anbetracht der zu leistenden geistigen Arbeit auch wieder. Das er aber nicht einmal eine der "Einfachstvarianten" mit dem 74181 zustande gebracht hat, ist schon irgendwie traurig. Fuer den TO. :) > die CPU in ein FPGA Da wuerde zumindest mir das "Handgreifliche" fehlen. Also das Gefuehl des "Unmittelbaren" wo ich mit einem Oszi/LA etwas sehen kann. Ich benutze auch Softcores in diversen Geschmacksrichtungen. Und man kann dann schoen im modelsim/Questasim dem ganzen zugucken. Aber es ist eben nicht das selbe.
Als Vorübung kann man mit einer Programmierbaren Ablaufsteuerung (Ampel, Modelleisenbahn, etc.) anfangen. Dazu braucht man keine ALU. Zuerst könnte man einen Counter nehmen, der in festen Intervallen hoch zählt. Daran hängt ein EEprom, das 8 Ausgänge ansteuert. Wer Talent dafür hat, dem werden dabei ganz viele Ideen kommen, wie man das aufbohren kann, um z.B. Bedingte Sprünge zu implementieren.
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.