Forum: Mikrocontroller und Digitale Elektronik Eigener kleiner "Prozessor"


von Michael B. (fatov)


Lesenswert?

Hallo,
ich will mir einen kleinen "Prozessor" bauen der lediglich eine LED ein 
und aus schalten können soll, also noch nicht mal rechen.
Ich weiß, dass Prozessor völlig übertieben ist, aber wusste nicht wie 
ich sonst diese Schaltung nennen soll :)
Ich habe von Prozessoren wenig Ahnung und habe mir deswegen gedanklich 
schon eigene Schaltungen ausgedacht, wo 8 einprogrammierte Befehle(ein 
Befehl ist 4 Bit lang) in einer Schleife in einem Takt immer weiter 
ausgeführt werden.
Also sehr sehr primitiv.
Aber ich habe nur Kenntnisse in den Grundbausteinen der Elektronik also 
Wiederstände, Tranistoren usw... und sonst nur von C++ und Java.
Weswegen ich bei der Planung immer wieder auf Probleme stoße, wo ich 
nicht wirklich weiter komme.
Deswegen wollte ich Fragen, ob ihr irgendwelche Tutorials oder Bücher 
kennt, die sich genau damit auseinander setzten, oder würdet ihr mir 
empfehlen sich erst einmal mit einem Gekauften Prozessor auseinander zu 
setzten, bevor ich Anfange einen eigenen, wenn man das überhaupt so 
nennen kann, zu bauen?
Weil ich dachte mir, dass man vielleicht klein anfangen sollte, bevor 
man sich gleich nen richtigen Prozessor\Microcontroller kauft.
Mir geht es hier nicht darum möglichst einfach eine LED an und aus zu 
schalten, sondern zu verstehen wie Prozessoren funktionieren und 
irgendwann einen eigenen bauen zu können, so primitiv dieser dann auch 
sein mag.

Ich hoffe ihr könnt mir helfen.

Grüße Michael

von N. Rokpop (Gast)


Lesenswert?

Deine Gedanken sind gut. Jetzt solltest Du einfach mal Google benutzen, 
und schauen was es in der Richtung schon alles gibt. In zwei Stunden 
kannst Du dann konkrete Fragen stellen.

von Pink S. (pinkshell)


Lesenswert?

So ein Prozessor ist in der internen Struktur reichlich komplex. Ein 
Eigenbau wird sicher sehr teuer und aufwändig.

Ein vernünftiges Buch über CPU-Architekturen, gerne ein älteres. Und 
dann mal im Datenblatt eines kleines Prozessors rumlesen.

Parallel dazu mal ein Blinke-Programm auf einem Einfach-Prozessor laufen 
lassen.

von Frank Norbert Stein *. (franknstein)


Lesenswert?

Michael Buschmann schrieb:
> Grundbausteinen der Elektronik also
> Wiederstände ...

Glückwunsch, du kennst mehr Grundbausteine als es gibt.  :)

von 6502 (Gast)


Lesenswert?


von Bitflüsterer (Gast)


Lesenswert?

Ein gleichermaßen primitives und recht hübsches Beispiel ist meiner 
Ansicht nach, der MC14500B. Guckst Du hier: 
http://www.tinymicros.com/wiki/MC14500B

von Gerald G. (gerald_g)


Lesenswert?

http://www.nand2tetris.org/

Super Seite. Ist zwar nur emuliert, aber sehr aufschlussreich.

von c-hater (Gast)


Lesenswert?

Michael Buschmann schrieb:

> ich will mir einen kleinen "Prozessor" bauen der lediglich eine LED ein
> und aus schalten können soll, also noch nicht mal rechen.

Grundsätzlich suchst du also ein Schrittschaltwerk. Das ist sowas wie 
ein ziemlich blöder Prozessor, der nur ein linares Programm abspulen 
kann.

Im einfachsten Fall ein binärer Zahler und ein Speicherbaustein, dessen 
Adressen von eben diesem Zähler gewählt werden.

Aber schon so ein einfaches Schrittschaltwerk kann man gehörig 
aufpeppen. Mit sowas z.B.:

-Start/Stop-Logik
-Reset-Logik (teilweise durch Daten gesteuert)
-Verzögerungs-Logik (durch Daten gesteuert)

Das alles kann man mit ein paar wenigen CMOS-Steinen aufbauen und schon 
damit praktisch alles lösen, was z.B. zum Betrieb irgendwelcher 
LED-Effekte nötig ist.

Allerdings wirst du dir dabei einen "Programmierstil" angewöhnen, den du 
bei der Programmierung richtiger µC am besten gleich wieder vergessen 
solltest...

von Martin H. (disjunction)


Lesenswert?

Hallo Michael,

Wir haben beim Studium mal einen Prozessor gebaut.
Dafür haben wir einen FPGA benutzt und Ram und Display Adaptiert. Wir 
hatten damals auch einen Assembler, den man mit Opcodes und 
Schlüsselwörter auf seine Architektur anpassen konnte.

Einige Hürden gab es allerdings zu überwinden.
Das Hauptproblem ist wohl das Programm in den Hauptspeicher zu bekommen.

Aber beim Xilinx FPGA kann man den Blockram in Hexcodes initialisieren.

Das Ganze war ein schönes, kompliziertes Projekt. Allerdings war das 
kleine 7 Segment Display mit einer Laufschrift schnell langweilig ;)
Der Weg ist das Ziel ;)

  Martin

von (prx) A. K. (prx)


Lesenswert?

c-hater schrieb:
> Grundsätzlich suchst du also ein Schrittschaltwerk. Das ist sowas wie
> ein ziemlich blöder Prozessor, der nur ein linares Programm abspulen
> kann.

Das war bei der Zuse Z3 auch nicht anders.

von Michael B. (fatov)


Lesenswert?

Vielen Dank :)
Besonders das http://www.nand2tetris.org/ sieht sehr interessant aus.
Ihr habe mir sehr geholfen.

von Easylife (Gast)


Lesenswert?

Michael Buschmann schrieb:
> lediglich eine LED ein
> und aus schalten können soll

Kippschalter?
Flip-Flop?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Michael Buschmann schrieb:
> Hallo,
> ich will mir einen kleinen "Prozessor" bauen der lediglich eine LED ein
> und aus schalten können soll, also noch nicht mal rechen.
Und er soll also nur mit "seiner" Taktfrequenz immm die LED an- und 
ausschalten? Also einfach nur blinken? Oder soll die Zeit etwa 
einstellbar gemacht werden? Dann bräuchtest du schon einen Zähler und 
einen Vergleicher, also ein Rechenwerk.

> Weil ich dachte mir, dass man vielleicht klein anfangen sollte, bevor
> man sich gleich nen richtigen Prozessor\Microcontroller kauft.
Diese Idee an sich ist nicht schlecht...

> Mir geht es hier nicht darum möglichst einfach eine LED an und aus zu
> schalten, sondern zu verstehen wie Prozessoren funktionieren
Das ist ja nun nicht soooo schwierig. In den allermeisten 
Anfängerbüchern ist da was zu finden...
Und dann gibt es Klassiker wie den hier:
http://www.wolfgang-back.com/knowhow_home.php

> und irgendwann einen eigenen bauen zu können, so primitiv dieser dann
> auch sein mag.
Wozu das? Willst du dir deine Widerstände auch selber wickeln oder 
Transistoren schnitzen?
Es ist, um z.B. ein Auto gut zu bedienen nicht unbedingt nötig, selber 
eines zu bauen. Da reicht es aus, wenn man verstanden hat, wie ein Motor 
und seine Aggregate funktionieren und wie sie optimal eingesetzt werden.

> ich habe ... Kenntnisse in den Grundbausteinen ... also Wiederstände
Bist du siecher?

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Michael Buschmann schrieb:
> ich will mir einen kleinen "Prozessor" bauen der lediglich eine LED ein
> und aus schalten können soll, also noch nicht mal rechen.

Deine Aufgabe kann ein Schaltwerk erfüllen. Ein Schaltwerk ist ein 
Schaltnetz, wobei der Ausgang nicht nur von der Eingangsbelegung, 
sondern auch von der Vergangenheit abhängt. Es speichert sozusagen die 
Vergangenheit ab und nutzt sie für aktuelle Operationen. Diese Aufgabe 
erfüllen endliche Mealy- und Moore-Automaten. Beide können über einen 
Automatengraphen dargestellt, vereinfacht und dann in Logik bzw. 
Programmiersprache realisiert werden. Für Deine angestrebte Aufgabe 
bedeutet das also:
- Du erstellst dir einen Zustandsgraphen für deine gewünschte 
Aufgabenstellung.
- Du überführst diesen Grafen in eine Zustandstabelle
- Du vereinfachst dies Zustandstabelle mittels der Regeln der Booleschen 
Algebra. (Hier gibt es gute Werkzeuge für die Verfahren nach 
Karnaugh-Veitch oder Quine-McCluskey)
- Du testest mittel einer einfachen Programmiersprache z.B. AWL
- Du realisierst den Automaten mittels Logik.

Zum besseren Verständnis habe ich dir mal zwei Beispiele beigefügt.
Beispiel 1 realisiert die Funktion mittels AWL und Beispiel 2 mittel 
Logikgattern.

: Bearbeitet durch User
von Michael B. (fatov)


Lesenswert?

Lothar Miller schrieb:
>> und irgendwann einen eigenen bauen zu können, so primitiv dieser dann
>> auch sein mag.
> Wozu das? Willst du dir deine Widerstände auch selber wickeln oder
> Transistoren schnitzen?
> Es ist, um z.B. ein Auto gut zu bedienen nicht unbedingt nötig, selber
> eines zu bauen. Da reicht es aus, wenn man verstanden hat, wie ein Motor
> und seine Aggregate funktionieren und wie sie optimal eingesetzt werden.

Natürlich kann man Dinge gut nutzten ohne sie zu verstehen, aber genau 
das will ich nicht/darum geht es doch.
Wie ich schon betont hatte, geht es nicht darum möglichst einfach eine 
LED Blinken zu lassen.
Es geht darum erste Schritte in der Digitalen Elektronik zu machen und 
langsam                  zu verstehen wie ein Prozessor/Microcontroller 
funktioniert.
Und ich meine jetzt nicht Widerstände wickeln usw...
Natürlich benutze ich gekaufte Transistoren und Widerstände.
Und um es etwas genauer auszuführen, ich will ca. 8 Befehle 
einprogrammieren können, jeweils 4 Bit lang, die nacheinander in einer 
Schleife ausgeführt werden, sodass ich z.B.

LED An,
LED Aus,
Warte,
Warte,
Warte,
LED An,
Warte,
Warte

Springe wieder zum Anfang.
Dann würde ich Anfangen, wie ich Sprungbefehle einbauen könnte, also 
z.B: GoTo 3.
Dann würde ich mir überlegen wie ich einen FullAdder implementieren kann 
und aus dem Programm nutzten kann usw...
Es geht nur darum das ich am Schluss etwas eigens zu haben, was ich 
vollständig verstehe.
Natürlich könnte ich mir irgend nen Microcontroller holen, den man am 
besten noch mit einer mitgelieferten Software Programmieren kann, wo ich 
nur noch das Programm zusammenklicken muss.
Aber genau das will ich doch eben nicht !


------------------------------------------------------------------------ 
-----


Danke  Joe G. für die Hilfe :)

von Frank E. (Firma: Q3) (qualidat)


Angehängte Dateien:

Lesenswert?

Suche mal im Web nach der genialen Software "Logisim" (ist frei), da 
gibts einige "Verrückte", die komplette Prozessoren nachgebildet haben. 
Wenn du das irgenwann auch kannst, kannst du ja zum Lötkolben greifen.

Hat ausserdem den Vorteil, dass du bis dahin nichts kaufen musst oder 
kaputt machen kannst. :-)

von Purzel H. (hacky)


Lesenswert?

Dann gibt es auch noch Logiksimulatoren der verschiedenen FPGA 
Hersteller.

von chris_ (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Michael Buschmann schrieb:
> Weil ich dachte mir, dass man vielleicht klein anfangen sollte, bevor
> man sich gleich nen richtigen Prozessor\Microcontroller kauft.

Ich würds genau umgekehrt machen. Erstmal einen kleinen MC in Assembler 
programmieren, damit man überhaupt versteht, wie so eine CPU intern 
tickt.
Man kann viel besser eine Schaltung entwickeln, wenn man erstmal weiß, 
was sie überhaupt machen soll.

Für Deine Blink-LED ist z.B. ein ATtiny85 oder ATtiny4 sehr gut 
geeignet.
Du kannst dann auch versuchen, mit möglichst wenig verschiedenen 
Befehlen auszukommen.
Und diese Befehle kannst Du dann in einem FPGA in VHDL implementieren.

von stefan us (Gast)


Lesenswert?

>LED An,
>LED Aus,
>Warte,
>Warte,
>Warte,
>LED An,
>Warte,
>Warte
>Wieder von vorne

Also muss das Ding drei Befehle ausführen können (Warte zählie ich mal 
nicht mit). Wenn Du als Programmspeicher ein EEprom verwendest, kannst 
Du dazu einfach vier einzelne Bits verwenden.

Bit 0 = Led An  -> Set Eingang des R/S Flipflops
Bit 1 = Led Aus -> Reset Eingang des R/S Flipflops
Ausgang des R/S Flipsflops -> LED.

Wieder von vorne -> Reset Eingang des Programmzählers.
Der Programmzähler wäre ein simpler Binärzähler. In deinem Fall reichen 
4 Bits. Dessen Ausgänge verbindest Du direkt mit den Adress-Eingängen 
des Programmspeichers.

Und dann brauchst Du noch eine Taktgeber, den kannst Du ganz einfach aus 
zwei Invertern mit zwei Widerständen und einem Kondensator bilden. Oder 
du nimmst einen Taster mit Entprell-Schaltung (Aufwand ist ungefähr der 
gleiche).

Eine Schaltung zum automatischen Reset bei Einschalten der 
Stromversorgung wäre noch angemessen, ansonsten startet das programm an 
irgendeiner zufälligen Stelle.

Baugruppen:

- Taktgeber
- Auto-Reset Schaltung
- Binärzähler
- Programmspeicher (EEprom)
- R/S Flipflop
- LED

Und natürlich ist dann noch ein Eprom Brenner von Nöten, um das Programm 
in den Programmspeicher hinein zu bekommen. Da der nur einen einzigen 
Chip unterstützen muss, kann der recht simpel ausfallen - sofern dein PC 
einen echten parallel-port hat.

Alternative zum EEprom wäre eine Dioden-Matrix. Da müsste man das 
Programm dan mit dem Lötkolben rein "brennen" bzw entsprechend viele 
Schalter einbauen. Also 9 x 4, für das oben genannte Programm.

von stefan us (Gast)


Lesenswert?

Ach sorry, es reichen drei Bits, 9x3 Matrix.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

stefan us schrieb:
> Also muss das Ding drei Befehle ausführen können (Warte zählie ich mal
> nicht mit).
Aber gerade Warte setzt sich ja üblicherweise aus anderen Befehlen 
zusammen. Ich kenne auf jeden Fall keinen uC, der das direkt als 
Hardware implementiert hat...

von Easylife (Gast)


Lesenswert?

Wenn du den Prozessor langsam genug taktest, reicht ein "NOP" zum 
Warten...

von Simon S. (-schumi-)


Lesenswert?

Frank Esselbach schrieb:
> Suche mal im Web nach der genialen Software "Logisim" (ist frei), da
> gibts einige "Verrückte", die komplette Prozessoren nachgebildet haben.

Dann darf ich mich wohl auch zu den Verrückten zählen :-P
http://hackaday.io/project/1228-Another-microcontroller-built-in-Logisim
Ein kleiner Assembler (Pythonscript) ist auch dabei

> Hat ausserdem den Vorteil, dass du bis dahin nichts kaufen musst oder
> kaputt machen kannst. :-)
Und vor allem gehts es viel schneller. Man entdeckt immer wieder kleine 
Logikfehler und Raceconditions die nur bei einem bestimmten 
Programmablauf auftreten, im Simulator kann man schnell ausbessern

von Matthias L. (limbachnet)


Lesenswert?

Klassisch könnte man einen Taktgenerator an einen 4Bit-Aufwärtszähler 
mit parallem Ausgang schalten, die Ausgänge an die Adressleitungen eines 
ollen EPROMS klemmen und an die Datenleitungen des EPROMS die LEDs (über 
Treibertransistoren) hängen. Da kann man dann 16 individuell 
programmierbare LED-Kombinationen durchschalten. Mit einem 8Bit-Zähler 
dann eben 256 Kombinationen.

Aber dieser Klassiker ist mittlerweile obsolet, weil eine 
Mikrocontroller-Schaltung mehr Möglichkeiten mit weit weniger Bauteilen 
bietet...

von Schlumpf (Gast)


Lesenswert?

Wenn du von der Digitaltechnik noch nicht viel Ahung hast, dann denke 
ich, dass ein Selbstbau-Prozessor etwas zu viel ist, für den Anfang.

Die von Frank vorgeschlagene Simulationssoftware "LogiSim" scheint mir 
genau passend für dich zu sein.
Du kannst dich um die Funktion und das Verständnis dafür kümmern und 
bist nicht 90% der Zeit damit beschäftitg, zu löten und dann die 
Verdrahtungsfehler zu suchen ;-)

Ist dir die Funktionsweise von grundlegenden digitalen Elementen und 
Schaltungen bekannt?
Gatter (AND, OR, ...)
Register (D-FF,...)
Komparatoren
Multiplexer
RAM/ROM
....

Wenn ja, dann kannst du dich vielleicht vorsichtig daran wagen, einen 
eigenen Mini-Prozessor zu bauen.
Falls nein, dann mache dich erstmal mit der Funktionsweise dieser 
Grundelemente vertraut und baue dann auf diesem Wissen auf, indem du 
z.B. ein Schaltwerk baust, dass die LED blinken lässt und dann kommt 
irgendwann der "Mini-Prozessor".

von uwe (Gast)


Lesenswert?

Naja man kann ja ne statemachine aus einem binärzäler und logikgattern 
basteln. Sowas macht man in der berufsausbildung auch. z.B. ne 
Ampelsteuerung oder ne Aufzugsteuerung. Ist recht simpel wenn man 
Digitaltechik Kenntnisse hat. Aber ein µC bauen zu wollen ohne einen µC 
jemals benutzt zu haben ist nicht Zielführend.

von Icke ®. (49636b65)


Lesenswert?

Richtige Experten bauen sowas mechanisch auf. Verständlicher und 
anschaulicher gehts kaum, wenn auch nur in 4-Bit:

http://www.youtube.com/watch?v=fLuvopVjAWg

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

oder ein richtiger Adder mit Übertrag
https://www.youtube.com/watch?v=GcDshWmhF4A

von RFIDler (Gast)


Lesenswert?

Wenn es um Grundlagen geht sind solche Schaltwerke doch schon mal ein 
guter Anfang.
Oder mal ein Museum plündern, in der alten 74er Serie gab es ja auch ein 
paar Komponenten um CPUs zu bauen z.B. die ALU 
http://en.wikipedia.org/wiki/74181.

Auch nicht schlecht für Grundlagen ist die alte AMD 2900 Bitslice Serie.
http://en.wikipedia.org/wiki/AMD_Am2900

Mit sowas hatten wir mal kurz im Studium rumgespielt, da gab es aber 
schon eine Simulationssoftware für. Hat die Sache einfacher gemacht.

von RFIDler (Gast)


Lesenswert?

Wenn es etwas verspielter werden darf kann man auch so CPUs bauen :)

http://www.youtube.com/watch?v=AQXAK3m3l78

von Andreas S. (igel1)


Lesenswert?

Hallo Michael,

wenn ich das hier so alles lese,staune ich immer wieder, auf welche 
Ideen die Leute kommen!

Mein Tipp lautet "Hades":
http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/index.html

Hades ist ein Java-basierter(s) Digital-Simulator-(Framework) der Uni 
Hamburg Das Framework ist offenbar über mehrere Jahre gereift und umfaßt 
inzwischen nicht nur eine ansehnliche Ansammlung einzelne Logikbausteine 
sondern auch ganze CPU's.

Letztere werden oftmals aus den zuvor erklärten Logik-Komponenten 
zusammengebaut.

Und weil alles unter Java läuft, kann man das ganze auch im Web-Browser 
bestaunen (ggf. muß man die Website in den Java-Sicherheitseinstellungen 
zulassen, damit die un/selbstsignierten Applets laufen).

Hier z.B. eine einfache 4-Bit ALU:

http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/90-tionline/06-ralu/alu.html

Oder das hier, ein einfacher Prozessor:

http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/50-rtlib/90-prima/chapter.html

Unter'm Strich würde ich aber trotzdem eher Peter Dannegger in seinem 
Beitrag oben zustimmen und dem von ihm aufgezeichneten Weg gehen.

Viel Erfolg und schreib hier mal, welchen der vielen Vorschläge Du 
weiterverfolgt hast und was Deine Erfahrungen waren.

Igel1

von Michael B. (fatov)


Lesenswert?

Erstmal vielen Dank für die vielen tollen Antworten und Möglichkeiten!

Ich denke ich werde was mit Logism oder Hades und was es nicht so an 
Simulatoren gibt "rumspielen" und mir mal einen kleinen Mikrocontroller 
kaufen und dann schauen wie mein Verständnis bis dahin wächst.

Eine Frage,
ich habe einen Befehls Zähler, also einen Speicher der nur den Index des 
aktuellen Befehls speichert, einen Speicher mit den einprogrammierten 
Befehlen und eine Clock, also einen Taktgeber.
Ist es üblich/sollte man den aktuellen Befehl ununterbrochen ausgeben 
oder nur mit dem Takt einmal kurz ausgeben?

: Bearbeitet durch User
von Schlumpf (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mal was zusammengebastelt...

Ist ein Projekt für Logisim, was einen ganz einfachen, nennen wir es mal 
Prozessor, darstellt.
Natürlich ist das kein richtiger Prozessor, aber er würde ungefähr das 
machen, was du dir vorgestellt hast.

Der Befehlssatz besteht aus 4 Kommandos.

0x0a = LED einschalten
0x0b = LED ausschalten
0x0c = Programm von vorne starten
0x_d = Pause einfügen.. wobei die oberen 4 Bit die dauer der Pause 
darstellen

Das Beispielprogramm ist folgendes:
0: 0x0a   //LED an
1: 0x1d   //kurze Pause
2: 0x0b   //LED aus
3: 0x1d   //kurze Pause
4: 0x0a   //LED an
5: 0x5d   //lange Pause
6: 0x0b   //LED aus
7: 0x5d   //lange Pause
8: 0x0c   //zurück zum Anfang

Die Befehle liegen im ROM und werden vom Programmcounter nacheinander 
aufgerufen.
Der Befehlsdecoder wertet die Befehle aus
Der Timer kann für die mit dem Befehl 0x_d übergebene Zeit den 
Programmcounter anhalten, so dass eine Pause entsteht.

Wie gesagt, das ist natürlich bei Weitem nicht das, was man unter einem 
Prozessor oder Controller versteht, aber es ist eine
Schaltung, die Befehle aus einem Speicher holen, interpetieren und 
ausführen kann.

Und die Schaltung ist kurz zusammengestrickt.. kann schon sein, dass die 
nicht 100%ig sauber funktioniert.

von Hans-Georg L. (h-g-l)


Lesenswert?

Lothar Miller schrieb:
> Aber gerade Warte setzt sich ja üblicherweise aus anderen Befehlen
> zusammen. Ich kenne auf jeden Fall keinen uC, der das direkt als
> Hardware implementiert hat...

Du kennst doch bestimmt welche die man in einen Sleep Modus schicken 
kann und wieder über Ereignisse wecken kann ;)

von Marc E. (mahwe)


Lesenswert?

schau mal bei John L. Hennessy (Author)und David A. Patterson (Author) 
die haben den Mips Prozessor gebaut, damit lief die Playstation 2 glaub 
ich.
Nette Bücher gibt es von dennen, auch an deiner Uni Bibo.
Teilweise auch in deutscher Übersetzung aber die ist nicht gut.
Dort werden Addiere Multipliziere und so weiter beschrieben.
Dazu empfähle ich dir den Tietze und Schenk.

: Bearbeitet durch User
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Lothar Miller schrieb:
> Aber gerade Warte setzt sich ja üblicherweise aus anderen Befehlen
> zusammen. Ich kenne auf jeden Fall keinen uC, der das direkt als
> Hardware implementiert hat...

Wie bitte? Der Großmeister der Digitalschaltungen kennt nicht den 
SC/MP?! :-)

Diese Prozessorfamilie hat nämlich den Befehl DLY für genau den 
genannten Zweck, siehe Seite A-13:
http://bitsavers.trailing-edge.com/pdf/national/scmp/4200079A_SCMP_Technical_Description_Jan76.pdf

von Andreas S. (igel1)


Lesenswert?

Hallo Michael,

fast hätte ich noch den Demo Computer vergessen:
http://www.randelshofer.ch/fhw/gri/holzi.html

... mit sehr guter Online-Hilfe:
http://www.randelshofer.ch/fhw/gri/holzihelp.html

DemoComp ist ein Java-Applet, welches auf etwas höherem 
Abstraktionslevel
das Zs.spiel der wichtigsten Computerbestandteile und das Fließen der 
Bits und Bytes durch die Busse und Register aufzeigt:

- CPU mit 2 Registern, Program-Counter, Instruction Register,
  Chip-Select, R/W-Signal für die ROMs/RAMs
- Adressbus
- Datenbus
- ROM
- RAM
- I/O

Die geniale Idee dabei: dieser 4-Bit Computer hat einen sehr kleinen
aber feinen Befehlssatz. Die Befehle kannst Du durch Kippen der Bits
per Mauszeiger selber ins ROM einprogrammieren und dann durch Takten
der CPU gucken, wie die CPU die Befehle aus dem ROM holt und was sie
damit macht.

Nach max. 1h einlesen kannst Du Deine eigenen kleinen Programme 
schreiben.
Ist wirklich genial gemacht und didakisch wertvoll.

Viele Grüße

Igel1

von MagerMueller (Gast)


Lesenswert?

Ich fand das Buch "CPU-Design" sehr hilfreich:

http://www.amazon.de/CPU-Design-Entwurf-eines-RISC-Prozessors-VHDL/dp/3844266666/

Der Autor beschreibt den schrittweisen Entwurf eines Prozessors in VHDL.

von Joachim B. (jar)


Lesenswert?

Michael Buschmann schrieb:
> Weil ich dachte mir, dass man vielleicht klein anfangen sollte

gute Idee, so habe ich angefangen
http://www.logikus.info/

braucht nicht mal Widerstände, Software kann selbst gesteckt werden.

von Eric B. (beric)


Lesenswert?

Michael Buschmann schrieb:
> Hallo,
> ich will mir einen kleinen "Prozessor" bauen der lediglich eine LED ein
> und aus schalten können soll, also noch nicht mal rechen.

Dann ist es nicht mal ein Prozessor.


> Aber ich habe nur Kenntnisse in den Grundbausteinen der Elektronik also
> Wiederstände, Tranistoren usw... und sonst nur von C++ und Java.

Dann sind die nächste Schritte zum Studieren:
- Finite State Machine
- Turing Machine
- Irgendein kleiner alter 8-bitter: Zilog Z80, MOS 6502, intel 8080, 
Motorola 6800.

Oh, und ungemein hilfreich wird sein: VHDL oder Verilog!

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
Noch kein Account? Hier anmelden.