Forum: Projekte & Code 8bit-Computing mit FPGA


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von MWS (Gast)


Lesenswert?

Josef G. schrieb:
> (8+2)+(8+5) = (8+8)+(2+5) = 17

Den Test hast Du leider nicht bestanden, denn erstens:

MWS schrieb:
> Du darst dabei nicht in Dezimal denken, bzw. temporär umwandeln und
> damit rechnen, denn Dezimal gäbe es ja nicht.

und zweitens:

Schau' Dir doch mal, was für einen Aufwand Dir diese simple Rechnung 
bereits macht und vergleiche mit einer dezimalen Addition, dann erkennst 
Du den Vorteil des Dezimalsystems.

Das wird bei größeren Zahlen noch schlimmer in Hexadezimal, versuch mal 
händisch eine Multiplikation zwei oder dreistelliger Hex-Werte.

Dem Rechner macht das nichts, der rechnet auch nicht in Hexadezimal, 
sondern in Binär.
Hexadezimal wurde nur zur übersichtlichen Darstellung von Binärdaten 
verwendet, die nebeneinander geschrieben völlig unleserlich wären.

Hexadezimal ist eine Notlösung zur Datendarstellung, aber nichts was man 
intuitiv verwenden würde.

von Josef G. (bome) Benutzerseite


Lesenswert?

MWS schrieb:
> Den Test hast Du leider nicht bestanden, denn erstens:
> MWS schrieb:
>> Du darst dabei nicht in Dezimal denken, bzw. temporär umwandeln
>> und damit rechnen, denn Dezimal gäbe es ja nicht.

A=8+2 und D=8+5 kann man in der Vorstellung unmittelbar aus den
Binärmustern von A und D ablesen, da braucht man dezimal nicht.

> Schau' Dir doch mal, was für einen Aufwand Dir diese simple
> Rechnung bereits macht

Hätte ich als Kind die hexadezimale Additionstabelle und
Multiplikationstabelle (das Einmaleins) auswendig gelernt
anstelle der dezimalen, gäbe es diesen Aufwand nicht.

Diese Tabellen sind im Hexadezimalsystem größer als
im Dezimalsystem, das ist ein Nachteil, zugegeben.

Beitrag #6277341 wurde von einem Moderator gelöscht.
Beitrag #6277356 wurde von einem Moderator gelöscht.
von Josef G. (bome) Benutzerseite


Lesenswert?

Raimund schrieb im Beitrag #6277341:
> Schon mal ein Kleinkind beim Zählen beobachtet?

Da Kleinkinder keinen Übertrag bilden, können sie mit
ihren Fingern statt bis zehn ebenso gut bis A zählen.

von Josef G. (bome) Benutzerseite


Lesenswert?

Man könnte Kindern zum Zählenlernen ein
kleines Täfelchen mit 4*4 Kreisen geben.

Beitrag #6277528 wurde von einem Moderator gelöscht.
von MWS (Gast)


Lesenswert?

Josef G. schrieb:
> Man könnte Kindern zum Zählenlernen ein
> kleines Täfelchen mit 4*4 Kreisen geben.

Man könnte Kinder genetisch verändern, so dass sie 8 Finger an jeder 
Hand haben.

Ich bringe Dir Argumente wie:
Beitrag "Re: 8bit-Computing mit FPGA"
oder:

MWS schrieb:
> Hexadezimal ist eine Notlösung zur Datendarstellung, aber nichts was man
> intuitiv verwenden würde.

und Du weichst jeglicher Antwort dazu aus, schwurbelst hier nur rum mit: 
könnte, hätte, würde. Kennst Du den Grund für Dein Verhalten?

Du hast keine Antwort, denn Du bist ein Verlierer, all Deine Logik sagt 
Dir dass Du mit Deiner Sache verloren hast, aber Dein Unterbewusstsein 
will das nicht wahrhaben und ersinnt immer neue Ausflüchte um der 
Wahrheit auszuweichen.

Und so kommt statt einer begründeten Antwort auf ein Argument eben 
solcher Unsinn wie "kleine Täfelchen".

Eine Diskussion mit Eliza hat mehr Inhalt.

Beitrag #6277544 wurde von einem Moderator gelöscht.
von (prx) A. K. (prx)


Lesenswert?

MWS schrieb:
> Noch dazu die
> Maschinen-Rechenleistung hoch ist, bzw. die Konvertierungsroutinen nur
> einen winzigen Teil der Rechenleistung der Maschine benötigen.

Sogar die ersten Zuses, noch mit Relais, konnten das umrechnen.

Beitrag #6277561 wurde von einem Moderator gelöscht.
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

MWS schrieb:
> Man könnte Kinder genetisch verändern, so dass sie 8 Finger an jeder
> Hand haben.

Wir könnten damit beginnen, alle Menschen von der FortPflanzung 
auszuschließen, die nicht unter einer Polydaktylie leiden. Damit ließe 
sich recht zügig zumindest das Zwölfersystem einführen. Nach nur wenigen 
hundert Generationen solcher hexadaktyler Menschen wird das ganze 
wiederholt, d.h. nur die heptodaktylen dürfen sich fortpflanzen. Dann 
ist der Weg nicht mehr weit bis zur Herrschaft der Oktodaktylen!

Beitrag #6277694 wurde von einem Moderator gelöscht.
von Josef G. (bome) Benutzerseite


Lesenswert?

MWS schrieb:
> Josef G. schrieb:
>> Man könnte Kindern zum Zählenlernen ein
>> kleines Täfelchen mit 4*4 Kreisen geben.
>
> Man könnte Kinder genetisch verändern, so
> dass sie 8 Finger an jeder  Hand haben.

Nein.

> Ich bringe Dir Argumente wie:
> Beitrag "Re: 8bit-Computing mit FPGA"
>> Es ist völliger Schwachsinn der Maschine ein wenig Arbeit bei
>> der Konvertierung des dem Menschen gewohnten Zahlensystems
>> abzunehmen, indem man den Menschen der Maschine anpasst.

Es geht nicht darum der Maschine Arbeit abzunehmen.
Es geht darum, der breiten Mehrheit der Menschen zu ermöglichen,
die Arbeitsweise von Computern zu verstehen, ohne dass sie erst
ein neues Zahlensystem lernen müssen. Und ihnen zu ermöglichen,
die mathematische Schönheit des Hexadezimalsystems zu genießen.

> oder:
>
> MWS schrieb:
>> Hexadezimal ist eine Notlösung zur Datendarstellung,
>> aber nichts was man intuitiv verwenden würde.
>
> und Du weichst jeglicher Antwort dazu aus,

Hexadezimal ist historisch entstanden als
"Notlösung zur Datendarstellung". Aber warum
sollte man es nicht trotzdem "intuitiv verwenden"?

von Genau (Gast)


Lesenswert?

Kommen Menschen nicht in den Zoo wenn die KI soweit ist ? Dann braucht 
es gar kein Rechnen mehr  :-)

Beitrag #6277875 wurde von einem Moderator gelöscht.
Beitrag #6277891 wurde von einem Moderator gelöscht.
Beitrag #6277896 wurde von einem Moderator gelöscht.
Beitrag #6277906 wurde von einem Moderator gelöscht.
von MWS (Gast)


Lesenswert?

Josef G. schrieb:
> Es geht darum, der breiten Mehrheit der Menschen zu ermöglichen,
> die Arbeitsweise von Computern zu verstehen, ohne dass sie erst
> ein neues Zahlensystem lernen müssen.

Nun, was die breite Mehrheit der Menschen an Computern bereit ist zu 
verstehen, siehst Du auf der Straße oder im Bus, das ist ein 
Wischi-Phone oder -Tablet. Das entspricht auch Deiner Vorstellung, es 
lässt sich ohne Erlernen eines neuen Zahlensystems verstehen.

Ein Verstehen der Arbeitsweise ist auch nur soweit nötig, bzw. vom 
Benutzer erwünscht, als dass die gewünschten Apps installiert und 
bedient werden können.

>> MWS schrieb:
>>> Hexadezimal ist eine Notlösung zur Datendarstellung,
>>> aber nichts was man intuitiv verwenden würde.
>>
>> und Du weichst jeglicher Antwort dazu aus,
>
> Hexadezimal ist historisch entstanden als
> "Notlösung zur Datendarstellung". Aber warum
> sollte man es nicht trotzdem "intuitiv verwenden"?

Einfach deshalb, weil ein gut funktionierendes System bereits etabliert 
ist und man aus praktischen Gründen nicht sein Leben verkomplizieren 
möchte.

Wie ein Computer ist ein Zahlensystem ein Werkzeug und dient in aller 
Regel nicht dem Selbstzweck, sondern einem Nutzen, z.B. um mathematische 
Zusammenhänge zu erforschen, oder einfach nur die Preise der 
Einkaufsliste zu addieren.

Natürlich ist aus Liebhaberei alles möglich, klar kann man Gesang und 
Lyrik der blauen afrikanischen Riesenmotte studieren und erlernen.
Nur warum?

Beitrag #6277955 wurde von einem Moderator gelöscht.
Beitrag #6278001 wurde von einem Moderator gelöscht.
von Uhu U. (uhu)


Lesenswert?

MWS schrieb:
> Du darst dabei nicht in Dezimal denken, bzw. temporär umwandeln und
> damit rechnen, denn Dezimal gäbe es ja nicht.

Das mache ich übrigens auch im Dezimalsystem nicht. Kopfrechnen tue ich, 
indem ich im Geiste Strecken aneinander füge,deren Länge ich immer 
wieder durch Vergleich mit der Basis^n reduziere – da ist die Basis des 
Zahlensystems, in das ich hinterher meine virtuellen Holzklötzchen 
übersetze, gleichgültig.

Das Dezimalsystem ist nur deswegen besonders einfach, weil ich es kann. 
Das Können habe ich mit Hilfe des Fingerrechnen in jungen Jahren 
eingeübt – da trifft sich die Sache wieder mit der Fünfstrahligkeit der 
Hand, mit der man eben schlecht im Hex-System rechnen kann. Damit ist 
das Hex-System erst mal vom Tisch und das Umstellen von dezimal auf hex 
würde für alle einen Riesenaufwand bedeuten, dem auf der anderen Seite 
absolut kein Nutzen gegenübersteht.

Man müßte also ein ökonomischer Vollidiot sein, wenn man sowas ernsthaft 
in Erwägung zöge.

: Bearbeitet durch User
Beitrag #6278388 wurde von einem Moderator gelöscht.
Beitrag #6278427 wurde von einem Moderator gelöscht.
von Marc H. (marchorby)


Lesenswert?

Guten Abend,

wo bekomme ich den VHDL her und für welchen FPGA funktioniert er?

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


Lesenswert?

Marc H. schrieb:
> wo bekomme ich den VHDL her und für welchen FPGA funktioniert er?

Das steht doch im Diskussionsfaden und auf den verlinkten Seiten. Lesen 
hilft.

von Josef G. (bome) Benutzerseite


Lesenswert?

Marc H. schrieb:
> wo bekomme ich

Alle Links sind am einfachsten zu finden auf meiner
Benutzerseite, hier oben neben dem Benutzernamen.

von Hans (Gast)


Lesenswert?

Marc H. schrieb:
> Guten Abend,
>
> wo bekomme ich den VHDL her und für welchen FPGA funktioniert er?

Glaub mir, das willst du nicht wissen.

von Josef G. (bome) Benutzerseite


Lesenswert?

Hier ein Zitat aus einem Strang im FPGA-Forum.
Damit könnten auch die Realisierungen des Projekts
auf den alten Xilinx-Boards wieder interessant sein.

Andreas S. schrieb:
> Wie ich gerade gesehen habe, bietet Xilinx seit Februar 2020 eine neue
> W10-taugliche Version von ISE 14.7 an, und zwar als integrierte VM
> mit/für Virtual Box. Interessanterweise werden jetzt wieder alle
> Bausteinfamilien und -generationen (bis Generation 6 sowie die ersten
> Zynq-7000) unterstützt. Offenbar gab es zu viele Proteste von Kunden,
> die ihre Altprojekte mit Spartan-3(xyz) und Virtex-2/4/5 noch pflegen
> müssen.

von MaWin O. (mawin_original)


Lesenswert?

Josef G. schrieb:
> Damit könnten auch die Realisierungen des Projekts
> auf den alten Xilinx-Boards wieder interessant sein.

Nein. Eher nicht.
Die Toolchain ist nicht das Problem an diesem Projekt.

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


Lesenswert?

Josef G. schrieb:
> Hier ein Zitat aus einem Strang im FPGA-Forum.
> Damit könnten auch die Realisierungen des Projekts
> auf den alten Xilinx-Boards wieder interessant sein.

Du lieferst für Deinen bo8 ja nicht einmal Projektdateien oder Skripte 
mit. Damit handelt es sich eh um Codefragmente, bei denen ein Anfänger 
raten muss, wie er sie auf der Plattform seiner Wahl integriert. Und 
Deine komischen Lizenzbedingungen verhindern sehr effektiv, dass Dritte 
auf Deinem Code aufsetzen und irgendetwas publizieren. Du hast einfach 
selbst einen riesigen Haufen an Hindernissen aufgebaut. Ob nun ISE 
wieder auf aktuellen Rechnern funktioniert oder nicht, ist da das mit 
Abstand kleinste Problem.

von Josef G. (bome) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Damit handelt es sich eh um Codefragmente, bei denen ein Anfänger
> raten muss, wie er sie auf der Plattform seiner Wahl integriert.

Steht alles auf der Seite Hardware im
Verzeichnis Info des Download-Files.

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


Lesenswert?

Josef G. schrieb:
> Steht alles auf der Seite Hardware im
> Verzeichnis Info des Download-Files.

Dort steht nur ein bisschen Prosa.

von Josef G. (bome) Benutzerseite


Lesenswert?

Ein ungelöstes Problem des Emulationsprogramms:
Beitrag "Re: Grafik unter Linux"

von S. R. (svenska)


Lesenswert?

Dann löse es. Wenn du das Fenster des Emulationsprogramms schließt, 
bekommst du ein Event. Werte das Event aus und gut ist - und zwar bevor 
der Window-Manager das Fenster abschießt, weil du das Event ignoriert 
hast.

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


Lesenswert?

S. R. schrieb:
> Dann löse es.

Ich befürchte, dass Josef tatsächlich eine Lösung finden und umsetzen 
wird. Jedoch wird es sich dabei um einen Workaround handeln, der so 
dermaßen vorbei an jeglicher guten Praxis und Funktionalität 
implementiert ist. Ich könnte mir vorstellen, dass einfach der obere 
Fensterrand aus dem sichtbaren Bereich herausgeschoben wird, so dass 
niemand mehr auf das Schließen-Symbol klicken kann. Oder es wird ein 
weiteres Fensterchen so über das Symbol gelegt, dass man nicht mehr 
herankommt. Oder beim Programmstart wird kontrolliert, ob überhaupt ein 
Zeigergerät verfügbar ist, um dann ggf. gleich abzubrechen. Oder der 
ganze Bildschirm wird dunkel geschaltet, sobald sich der Mauszeiger in 
die Nähe des Schließen-Symbols bewegt. Das Programm könnte auch in einer 
Schleife mit einer so hohen Rate Zeiger-Ereignisse erzeugen, dass es 
unmöglich wird, auf Schließen zu klicken. Oder, oder, oder... Wir dürfen 
gespannt sein!

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


Lesenswert?

Josef G. schrieb:
> Ein ungelöstes Problem des Emulationsprogramms:
> Beitrag "Re: Grafik unter Linux"

Wenn Du den ganzen Quellcode auf einem öffentlichen 
Versionskontrollsystem unter einer hierfür brauchbaren Lizenz 
veröffentlicht hättest, dann hätte womöglich schon jemand dieses Problem 
behoben und die Änderungen völlig transparent eingecheckt.

von Uhu U. (uhu)


Lesenswert?

Andreas S. schrieb:
> Wenn Du den ganzen Quellcode auf einem öffentlichen
> Versionskontrollsystem unter einer hierfür brauchbaren Lizenz
> veröffentlicht hättest

Ja sollen ihm denn am Ende die Chinesen seinen Code klauen?

von Josef G. (bome) Benutzerseite


Lesenswert?

Weiter oben hatte ich sedimal als Abkürzung für sedezimal
vorgeschlagen: 
Beitrag "Re: 8bit-Computing mit FPGA"

Leider wurde mein Thread "hexadezimal, sedezimal, sedimal"
von offtopic nach dev/null verschoben und ist inzwischen gesperrt.
Beitrag "hexadezimal, sedezimal, sedimal [Endet am 15.12.2020]"

Der folgende Link hätte da noch hineingehört:
http://dark.fiftysix.scot/Base-16/

Habe ich gerade gefunden. Das ist die noch im Aufbau befindliche
Seite eines Studenten, der sich auch für das Hex-System einsetzt
und über die Bezeichnung 'sedimal' nachdenkt.

Beitrag #6518526 wurde von einem Moderator gelöscht.
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Wir die CPU schon von SDCC unterstützt?

von Frank (Gast)


Lesenswert?

Mampf F. schrieb:
> Wir die CPU schon von SDCC unterstützt?

Guter Witz. Danke dafür.

Beitrag #6518781 wurde von einem Moderator gelöscht.
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Frank schrieb:
> Mampf F. schrieb:
>> Wir die CPU schon von SDCC unterstützt?
>
> Guter Witz. Danke dafür.

Hat man die Ironie trotz fehlender rhetorischer Stilmittel wie Hyperbeln 
erkannt xD

Beitrag #6518814 wurde von einem Moderator gelöscht.
Beitrag #6518864 wurde von einem Moderator gelöscht.
Beitrag #6518879 wurde von einem Moderator gelöscht.
Beitrag #6518943 wurde von einem Moderator gelöscht.
Beitrag #6518983 wurde von einem Moderator gelöscht.
Beitrag #6518993 wurde von einem Moderator gelöscht.
von New-User (Gast)


Lesenswert?

Josef G. schrieb:
> Habe ich gerade gefunden. Das ist die noch im Aufbau befindliche
> Seite eines Studenten, der sich auch für das Hex-System einsetzt
> und über die Bezeichnung 'sedimal' nachdenkt.

Die Gedanken dieses Studenten sind aber nicht unbedingt sonderlich 
ausgereift und gehen auch von Misverständnissen aus. Z.B. schreibt er

"Hexadecimal is made up of six (hex) and ten (decimal), which doesn’t 
make much sense when not using base-10."

Er scheint das 6+10 nicht verstanden zu haben, was sich genau auf die 6 
neuen Zeichen bezieht und nicht etwa auf die Basis.

Grundsätzlich hat das eine System grundsätzlich keine Vorteil gegenüber 
einem anderen. Man kann auch in einem 7er-System denken und rechnen. 
Wurde ja gezeigt. Das ist eine reine Frage der Gewöhnung. Die Ägypter 
hatten angeblich ein 5er-System. Der Vorteil eines solchen System mit 
mehr Zeichen ist einfach, dass große Zahlen weniger Zeichen brauchen. 
Dafür wird die Rechnung schwieriger. Kleine Ziffernmengen führen 
allerdings wieder zu mehr komplexen Kommaverschiebungen, wenn Zahlen 
multipliziert werden müssen. Das Zehnersystem ist ein Alltagskompromiss, 
den man mit einem System, dass nur 60% mehr Zeichen hat, nicht 
wesentlich verschiebt.

von Josef G. (bome) Benutzerseite


Lesenswert?

Bitte hier nicht mehr antworten. Da geht's weiter:

Beitrag "Ein 8bit-Computer mit Hex-Ziffernsatz [Endet am 28.03.2021]"

von S. R. (svenska)


Lesenswert?

Josef G. schrieb:
> Bitte hier nicht mehr antworten. Da geht's weiter:

Geht es leider nicht, und ehe mein - tatsächlich konstruktiv gemeinter - 
Beitrag (Beitrag "Re: Ein 8bit-Computer mit Hex-Ziffernsatz") 
verschwindet, zitiere ich ihn hier nochmals in Gänze. Wenn das nicht 
erwünscht ist, bitte ich die Moderation um Löschung dieses Beitrags.

Josef G. schrieb:
>> Einerseits braucht es die aufwendige Lücke zwischen 9 und A
> Bei meinem Zeichensatz gibt es keine Lücke zwischen 9 und xA.

Dafür ist dein Zeichensatz für die skandinavischen Sprachen ungeeignet;
weder ein æ oder ein ø (für dänisch und norwegisch) noch ein å (für die
genannten sowie schwedisch oder finnisch) lassen sich finden. Obwohl
sowohl die Dollar- und Eurozeichen $ und € vorhanden sind, fehlt das
Pfundzeichen £, welches in Europa auch nach dem Brexit noch eine
gelegentliche Rolle spielt.

Zudem fehlt ein der Symmetrie wegen notwendiges großes ß (stattdessen
hast du dort ein Sigma, allerdings keine anderen griechischen
Buchstaben). Stattdessen hast du spezielle Zeichen mit Oberstrich, die
man allerdings auch anderweitig herstellen kann (z.B. durch Präfixe,
Suffixe oder Attributbits).

Für einen universalen Zeichensatz empfehle ich mindestens die
vollständige Unterstützung der westlichen Sprachen; süd- und
osteuropäische Sprachen auf Basis der kyrillischen oder griechischen
Zeichen sind mit geringem Zusatzaufwand ebenfalls machbar. Die
Unterstützung für ostasiatische oder afrikanische Zeichen könnte auf
ein zukünftiges Update verschoben werden.

von Josef G. (bome) Benutzerseite


Lesenswert?

New-User schrieb:
> Josef G. schrieb:
>> Habe ich gerade gefunden. Das ist die noch im Aufbau befindliche
>> Seite eines Studenten, der sich auch für das Hex-System einsetzt
>> und über die Bezeichnung 'sedimal' nachdenkt.
>
> Die Gedanken dieses Studenten sind aber nicht unbedingt
> sonderlich ausgereift und gehen auch von Misverständnissen
> aus. Z.B. schreibt er ...

Die Aussage ist wohl, dass der Name des Zahlensystems nicht auf
das Dezimalsystem verweisen sollte. Das ist auch meine Meinung.

von Josef G. (bome) Benutzerseite


Lesenswert?

Habe auf der Seite Downloads den Verweis auf Creative Commons
entfernt und durch einen frei formulierten Text ersetzt,
welcher einer völligen Freigabe gleichkommt.

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


Lesenswert?

Du müsstest doch gar nicht auf alle (abtretbaren) Rechte verzichten, 
sondern das ganze nur in einer Form anbieten, mit der auch jemand etwas 
anfangen kann. Und dafür verwendet man heutzutage solche öffentlich 
zugänglichen Versionskontrollsysteme wie z.B. Github. Ich hatte ja vor 
einigen Jahren schon so etwas für Dich bzw. bo8h aufgesetzt, was damals 
jedoch an dem Beharren auf der CC-Lizenz scheiterte. Vielleicht mache 
ich mir ja jetzt irgendwann die Mühe...

von Josef G. (bome) Benutzerseite


Lesenswert?

Es gibt ein paar kosmetische Änderungen am inneren Aufbau der
CPU, betreffend den Startvorgang nach Reset.  Die Änderungen
haben keinen Einfluss auf das Verhalten der CPU nach aussen.

von MaWin (Gast)


Lesenswert?

Josef G. schrieb:
> Die Änderungen
> haben keinen Einfluss auf das Verhalten der CPU nach aussen.

Dann bin ich ja beruhigt.

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


Lesenswert?

MaWin schrieb:
> Josef G. schrieb:
>> Die Änderungen
>> haben keinen Einfluss auf das Verhalten der CPU nach aussen.
>
> Dann bin ich ja beruhigt.

Das steht auch so im Git-Checkinkommentar.

von Josef G. (bome) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Das steht auch so im Git-Checkinkommentar.

Magst du nicht mehr davon erzählen?

von S. R. (svenska)


Lesenswert?

Bitte verzeiht mir, dass ich mich auf einen Beitrag im gesperrten Thread 
beziehe, aber ich war nicht zuhause und konnte nicht mehr rechtzeitig 
darauf antworten.

Josef G. schrieb:
>> Urheberrecht ist klar, aber den Rest finde ich spannend, weil:
> Ich wäre bereit, alles komplett freizugeben,
> wenn mir jemand sagt, wie das geht.

Am einfachsten stellst du den Code unter eine BSD-Lizenz (oder eine 
andere freie Lizenz). Da du meines Wissens der einzige Contributor 
(Zuarbeiter) des Projektes bist und daher die vollständigen Rechte 
besitzt, kannst du das jederzeit tun; du selbst bist deswegen nichtmal 
an die Lizenz gebunden, da du als Rechteinhaber jederzeit die 
Bedingungen festlegen kannst[*].

Als nächstes fügst du der ZIP-Datei (oder dem Git-Repository) eine Datei 
mit dem Namen LICENSE (oder LICENSE.TXT) hinzu, in die du den Lizenztext 
der von dir verwendeten Lizenz kopierst. Wenn in den Dateien sowas wie 
"Urheberrecht blabla Josef" oder "Alle Rechte reserviert" steht, dann 
kannst du das entfernen (es wäre durch die Lizenz ungültig, aber ich 
habe in den Dateien auch nichts dergleichen gefunden).

Was du auf die Webseite schreibst ist zwar schön, aber die 
Lizenzbedingungen sollten zum Code gehören, nicht zum Downloadlink. Ich 
kann den Code auch von anderer Quelle erhalten - er ist ja frei - und 
dort sehe ich deine Bedingungen möglicherweise nicht.

Mit einer bekannten Lizenz ist rechtssicher festgelegt, dass du das 
Urheberrecht weiterhin besitzt (das kannst du nach deutschem Recht 
ohnehin nicht abtreten), der Code aber unter eindeutig definierten 
Randbedingungen frei genutzt werden darf. Die CC-Lizenzen sind dafür 
ungeeignet, das schreiben auch die Verantwortlichen dieser Lizenzen.

Die Dokumentation kannst du unter eine CC-Lizenz stellen (bzw. so 
lassen). Sinnvollerweise steht die verwendete Lizenz ebenfalls in der 
Dokumentation. Einfacher wäre es, wenn du die in der ZIP-Datei 
vorhandene Dokumentation unter die gleiche Lizenz stellst wie den Code, 
dann verkürzt du die LICENSE-Datei. (Andernfalls müsstest du beide 
Lizenzen da reinschreiben und eine Erklärung, welche Teile unter welcher 
Lizenz stehen oder in jede Datei die korrekte Lizenz reinschreiben.)

Diese Schritte - Zustimmung einholen, passende Lizenz aussuchen, 
Lizenztext in LICENSE-Datei kopieren und zum Code tun - sind zumindest 
bei meinem Arbeitgeber ausreichend, um ein Projekt unter eine freie 
Lizenz zu stellen. Besser wird's nicht.

[*] Unter BSD-Lizenz gesteller Code kann aber jederzeit von anderen nach 
den Regeln der BSD-Lizenz genutzt werden. Einschränken kannst du das 
nachträglich nur für Folgeversionen. Aber das ist hier eher unwichtig.

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


Lesenswert?

S. R. schrieb:
> Am einfachsten stellst du den Code unter eine BSD-Lizenz (oder eine
> andere freie Lizenz).

Da halte ich auch für das sinnvollste, aber Josef benötigt diesbezüglich 
ja eine Sonderlocke. Bei Github kann man beim Anlegen eines Projektes 
einfach einer der etablierten Lizenzen auswählen, und schon steht das 
entsprechende Grundgerüst mit allen relevanten Einstellungen. "Damals" 
hatte ich ja sogar schon einen entsprechenden Account für Josef bei 
Github eingerichtet.

Die jetzige "völlige Freigabe" macht die Sache nicht einfacher, sondern 
eher schwieriger, denn Josef bleibt ja nach wie vor der Hautautor, mit 
dessen Namen ja auch der Lizenztext versehen wird. Also darf auch kein 
Dritter einfach einen beliebigen Lizenztext aussuchen und Josef als 
Autor darin eintragen. Und sich selbst als Autor einzutragen, geht noch 
weniger, denn die Urheberschaft besteht ja nach deutschem Recht weiter. 
Und die Erfahrung zeigt ja, dass Josef die geeigneten(!) etablierten 
Lizenzen bzw. -texte ablehnen und lieber etwas ungeeignetes wie CC 
aussuchen und Beratungsresistenz demonstrieren wird.

von S. R. (svenska)


Lesenswert?

Andreas S. schrieb:
> Da halte ich auch für das sinnvollste, aber Josef
> benötigt diesbezüglich ja eine Sonderlocke.

Naja, das finde ich persönlich nicht so schlimm. Die gewählte "völlige 
Freigabe" entspricht so ungefähr dem Versuch einer BSD0 oder Public 
Domain-Freigabe, nur in weniger klug. Kann man mit leben.

Mir ging es in meinem Beitrag eher darum, dass er die Bedingungen 
sinnvoll zum Code in die ZIP-Datei packt, statt irgendwo einen 
Dreizeiler auf eine Webseite zu kippen und zu hoffen, dass das reicht 
(tut es nämlich nicht).

von Route_66 H. (route_66)


Lesenswert?

S. R. schrieb:
> Naja, das finde ich persönlich nicht so schlimm. Die gewählte "völlige
> Freigabe" entspricht so ungefähr dem Versuch einer BSD0 oder Public
> Domain-Freigabe, nur in weniger klug. Kann man mit leben.

Ich sehe das Problem nicht.

Den Erguss von Josef G. will doch auf der ganzen Welt nicht ein einziger 
Mensch irgendwie nachnutzen!

von Markus W. (elektrowagi78) Benutzerseite


Lesenswert?

Michael schrieb:
> gesagt: weil wir 10 "Knubbel" an den Händen haben. Er ist übrigens
> Kulturforscher.

Wahrscheinlich hatten deshalb die Ägypter ein 5er-System.

Route_66 H. schrieb:
> Den Erguss von Josef G. will doch auf der ganzen Welt nicht ein einziger
> Mensch irgendwie nachnutzen!
Die Welt dreht sich weiter. Erst gab es ein 4-Bit-System, dann nutzte 
man das 8-Bit-System. Später gab es 16-Bit. Damit kann man schon sehr 
viel machen, während man das Meiste im 8-Bit System durch Algebra 
aufteilen musste.

Unter 16 Bit wird keiner einen Prozessor einsetzen es sei denn er hat 
Code für den alten 8-Bitter. Und da gibt es 6502- und Z80/ 8085 
EMulatoren für das was in den Heimcomputern verbaut war.

Einen neuen 8-Bitter braucht keiner mehr.

Einen 64er könnte man gebrauchen.

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Es gibt eine Änderung des Gesamtsystems:

Die Übertragung der Software vom Block-RAM des FPGA ins externe RAM
bei der Initialisierung erfolgt jetzt durch die CPU und nicht mehr
durch eine spezielle Hardware. Damit entfällt die spezielle Hardware.
Und jetzt hat nur noch die CPU Zugriff auf das externe SDRAM. Dadurch
ist die Ansteuerung des SDRAMs jetzt sehr viel übersichtlicher.

von Frank (Gast)


Lesenswert?

Josef G. schrieb:
> Es gibt eine Änderung des Gesamtsystems

In China ist ein Sack Reis umgefallen.

von Falk B. (falk)


Lesenswert?

Route_66 H. schrieb:
> Den Erguss von Josef G. will doch auf der ganzen Welt nicht ein einziger
> Mensch irgendwie nachnutzen!

Doch. IT-Pathologen werden es als abschreckendes Beispiel nutzen können. 
Psychiologen als Studienobjekt für Zwangsstörungen und Autismus.

von lexi (Gast)


Lesenswert?

Ich würde mir das Projekt tatsächlich gerne mal etwas näher ansehen. 
Scheinbar basiert der Prozessor ja auf keiner bekannten Architektur und 
vielleicht gibt es ja das ein oder andere Novum. :)

Aber ich finde die Dokumentation wirklich "kompliziert". Da es sich ja 
eh um ein open-source-Projekt handelt, sehe ich nicht wirklich ein 
Problem, warum man das ganze nicht auf GitHub/Gitlab/ und Konsorten 
veröffentlichen sollte.
Als kleines Extra-Bonbon hätte man dann auch eine zentrale Plattform, wo 
Iteressierte die Entwicklung genauer verfolgen und sich ggf. über 
Diskussionen und Issues beteiligen könnten. Neuerungen in einem 
Forumsbeitrag, der über mehrere Seiten geht und auch ziemlich viele 
"off-topic "Kommentare hat, zu finden und nachzuverfolgen finde ich 
persönlich sehr schwierig (vorsichtig gesagt).

Was mir aber absolut fehlt, ist ein Block-Diagramm des Prozessors. Ich 
finde sowas immer extrem hilfreich, da so ein Bild den Aufbau dann doch 
besser vermittelt als eine Seite Text. Von mir aus kann das auch mit 
Paint gefummelt sein. Sogar ein einfacher Screenshot vom RTL-Viewer wäre 
schon hilfreich, um einen groben Überblick zu bekommen.

Grüße,
Lexi

von (prx) A. K. (prx)


Lesenswert?

Falk B. schrieb:
> Psychiologen als Studienobjekt für Zwangsstörungen und Autismus.

Was meinst du, wieviele Psychologen verirren sich hierher? Nicht dass es 
hier an Studienobjekten mangeln würde, aber seit Uhus Abgang fehlt sogar 
die kognitive Dissonanz als Basso continuo.

von Josef G. (bome) Benutzerseite


Lesenswert?

lexi schrieb:
> Was mir aber absolut fehlt, ist ein Block-Diagramm des Prozessors.

Ein solches Blockdiagramm habe ich nicht, nicht mal im Kopf.

Ich verstehe auch nicht, was ein solches Diagramm bringen sollte.
Entscheidend ist doch der Befehlssatz einschließlich Timing
und das Verhalten der aussen sichtbaren Steuersignale.

Falls dich der innere Aufbau interessiert, sieh dir die Seite
CPU-arch.txt im Verzeichnis info des Downloadfiles an. Besser
kann ich es nicht erklären. Ist allerdings zum Teil veraltet,
weil ich zwischenzeitlich den Einlesezeitpunkt der Daten
vom Datenbus ein wenig nach hinten verschoben habe.

> Aber ich finde die Dokumentation wirklich "kompliziert".

Es kann gerne jemand eine bessere Dokumentation erstellen.

Beitrag #6651961 wurde von einem Moderator gelöscht.
von Sinus T. (micha_micha)


Lesenswert?

Erwin schrieb im Beitrag #6651961:
> Was Bome hier an Diebstahl der Lebenszeit anderer betreibt ist ja
> langsam grenzwertig.

Was soll denn dieser blödsinnige Satz? Hat dich irgedwer gezwungen, dir 
das anzuschauen?

von Anton W. (Gast)


Lesenswert?

Sinus T. schrieb:
> Erwin schrieb:
>> Was Bome hier an Diebstahl der Lebenszeit anderer betreibt ist ja
>> langsam grenzwertig.
>
> Was soll denn dieser blödsinnige Satz? Hat dich irgedwer gezwungen, dir
> das anzuschauen?

Darin steckt mehr Wahrheit als Du zunächst glaubst.
Kann aber gut sein daß die Lebenszeit des einen wertvoller ist als die 
des anderen.

von Jasson J. (jasson)


Lesenswert?

:->

Ich schau hier eigentlich nur rein, weil ich offenbar gehässig bin und 
mich daran amüsiere, dass sich Leute ernsthaft an Josef aufreiben.
Ich kann mit dem Projekt auch nichts anfangen, aber was um alles in der 
Welt bringt es an Nährwert, sich darüber auf zu regen, was Josef macht 
und ihn davon abbringen zu wollen?

Vielleicht ist der Thread in Wirklichkeit von einem Psychologen 
betrieben, der ausprobiert "Wie kleinkariert kann man sein?".

von Anton W. (Gast)


Lesenswert?

Jasson J. schrieb:
> weil ich offenbar gehässig bin

Zur Strafe schreibst Du jetzt die geforderte Dokumentation.

von Jasson J. (jasson)


Angehängte Dateien:

Lesenswert?

Mit meinem Projekt kann ja auch nicht jeder was anfangen :>


>Zur Strafe schreibst Du jetzt die geforderte Dokumentation.
Fair enough

von Josef G. (bome) Benutzerseite


Angehängte Dateien:

Lesenswert?

Habe nun auch eine Realisierung auf dem DE0-CV-Board mit CycloneV.

Der SD-Card-Slot des Boards ist nur für micro-SD-Karten. Es gibt
aber Adapter zu kaufen für Standard-SD-Karten. Selber anschließen
muss man ausserdem ein RS232-Modul, etwa Pmod-RS232 von Digilent.

Damit gibt es nach längerer Zeit nun wieder eine Realisierung
auf einem aktuellen Board, das keine große Bastelei erfordert
und mit aktueller Software programmierbar ist.

-----------
Habe bisher Quartus 13.0 SP1 verwendet. Die Synthese meldete stets
automatically promoted bei den Takten vclk, cl1, cl2. Nun habe ich
Quartus-Prime-Lite 20.1 getestet, da fehlte diese Meldung. Deshalb
habe ich jetzt bei den Altera-Boards für vclk, cl1, cl2 explizit
Clock-Buffer instanziert. Der von aussen kommende Takt clk wird
auch bei Quartus-Prime-Lite automatisch als Clock geroutet.

von MaWin (Gast)


Lesenswert?

Josef G. schrieb:
> Damit gibt es nach längerer Zeit nun wieder eine Realisierung
> auf einem aktuellen Board

Danke!
Da habe ich schon ewig drauf gewartet.

von Mark B. (markbrandis)


Lesenswert?

MaWin schrieb:
> Danke!
> Da habe ich schon ewig drauf gewartet.

Höre ich da etwa leise Ironie heraus? ;-)

von Josef G. (bome) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> S. R. schrieb:
>> Am einfachsten stellst du den Code unter eine BSD-Lizenz
>> (oder eine andere freie Lizenz).
>
> Da halte ich auch für das sinnvollste,
> aber Josef benötigt diesbezüglich ja eine Sonderlocke.

Nach meiner Kenntnis sind die Bereitsteller von Open-Source-Lizenzen
selber Vertagspartner im Verhältnis zwischen Nutzer und Inhaber des
Urheberrechts. Das kann dazu führen, dass der Urheber nicht mehr
die Möglichkeit hat, einem Anwender die Weiterentwicklung ohne
Offenlegung des Quellcodes zu gestatten. Das möchte ich nicht.

S. R. schrieb:
> Mir ging es in meinem Beitrag eher darum, dass er die Bedingungen
> sinnvoll zum Code in die ZIP-Datei packt, statt irgendwo einen
> Dreizeiler auf eine Webseite zu kippen und zu hoffen, dass das
> reicht (tut es nämlich nicht).

Warum nicht? Der Anwender muss dann halt einen Screenshot sichern.
Wenn die Bedingungen in der ZIP-Datei stehen, gibt es auch keine
Gewähr, dass nicht ein anderer sie nachträglich dazugepackt hat,
sofern die Datei weitergegeben wird.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Josef G. schrieb:
> Nach meiner Kenntnis sind die Bereitsteller von Open-Source-Lizenzen
> selber Vertagspartner im Verhältnis zwischen Nutzer und Inhaber des
> Urheberrechts. Das kann dazu führen, dass der Urheber nicht mehr
> die Möglichkeit hat, einem Anwender die Weiterentwicklung ohne
> Offenlegung des Quellcodes zu gestatten. Das möchte ich nicht.

Deine Kenntnis hat leider überhaupt nichts mit der Realität zu tun.
Die "Bereitsteller" der Lizenzen haben maximal (manchmal) das 
Urheberrecht am Lizenz-TEXT selbst. Aber keinerlei Rechte am dem 
geschützten Werk. Das geschützte Werk ist allein unter deiner Kontrolle.

von lexi (Gast)


Lesenswert?

Josef G. schrieb:
> Habe nun auch eine Realisierung auf dem DE0-CV-Board mit CycloneV.

Gibt es eigentlich aktuelle Eckzahlen der Implementierung?

Also sowas wie Anzahl der LUTs, FFs, BRAMSs, DSPs, ... für CPU bzw. das 
ganze SoC? Interessant wären auch maximale Taktrate und sowas wie CPI 
(cycles per instruction) oder Benchmark-Ergebnisse (z.B. Coremark).

von Josef G. (bome) Benutzerseite


Lesenswert?

lexi schrieb:
> Also sowas wie Anzahl der LUTs, FFs, ...

Fitter-Meldungen beim DE0-CV mit CycloneV:

Gesamtsystem: 1538 LUTs, 909 FFs. CPU: 840 LUTs, 462 FFs.

DSPs: keine

BRAMs werden 32 KByte gebraucht für das Video-RAM,
gleichzeitig für die Initialisierung der Software.

Zur maximalen Taktrate kann ich nichts sagen, ich habe bisher
um Timing-Constraints einen großen Bogen gemacht, das ist mir
zu kompliziert. Bei den Altera-Boards habe ich bisher nicht
einmal die Frequenz des eingespeisten Taktes angegeben.

In der derzeitigen Implementierung mit nur einem CPU-Takt
hat dieser die Periode 320 ns und Tastgrad 25 Prozent.

Tastgrad 50 Prozent sollte auch funktionieren. Dann hätte die
Peripherie weniger Zeit, um nach Ausgabe einer Adresse durch
die CPU zu entscheiden, ob ein REP-Signal erforderlich ist.

Ein Taktzyklus von 320 ns entspricht in meiner Terminologie
einem Halbzyklus der CPU. Ein Vollzyklus besteht aus den
Halbzyklen tA und tB. Speicherzugriffe erfolgen während tA.
Das inaktive tB steht für SDRAM-Refresh zur Verfügung.

Befehle dauern vorhersagbar 1 oder 2 oder 3 Vollzyklen. Letzteres
gilt für Verzweigungen, falls der Sprung ausgeführt wird. Es gibt
auch noch einen langen NOP-Befehl mit 3 bis 257 Vollzyklen.

Siehe auch 8bit-CPU: bo8

von Bernd (Gast)


Lesenswert?

Josef G. schrieb:
> Zur maximalen Taktrate kann ich nichts sagen, ich habe bisher
> um Timing-Constraints einen großen Bogen gemacht, das ist mir
> zu kompliziert. Bei den Altera-Boards habe ich bisher nicht
> einmal die Frequenz des eingespeisten Taktes angegeben.
Das ist nicht kompliziert!

Für Altera geht das so:

1. eine sdc-Datei (=normale Textdatei) anlegen, mit folgendem Inhalt:
1
create_clock -name {clk}   -period 320.000  [get_ports { clk }]
Nur der Portname und die Periodendauer müssen ggf. angepasst werden.



2. diese Datei zum Projekt hinzufügen; in der qsf-Datei gibt es dann 
eine Zeile die so aussieht:
1
set_global_assignment -name SDC_FILE timing.sdc
Hier muß der richtige Dateiname von 1. drinstehen.


Der Timinganalyzer kann dann feststellen, ob die Logik übertaktet wird, 
oder wieviel 'Luft' bei der gegebenen Taktfrequenz noch bleibt.

von Frank (Gast)


Lesenswert?

Josef G. schrieb:
> ich habe bisher
> um Timing-Constraints einen großen Bogen gemacht, das ist mir
> zu kompliziert.

Das kann ich kaum glauben. Du bist doch Experte für "Warum einfach, 
wenns auch kompliziert geht".

von Bernd (Gast)


Angehängte Dateien:

Lesenswert?

Frank schrieb:
> "Warum einfach,
> wenns auch kompliziert geht"
Bei der Variante für den S3E wird der 50 MHz Eingangstakt mit einem DCM 
auf 100 MHz verdoppelt.
Diese 100 MHz werden für den DDR-Speichercontroller verwendet und 
nebenbei per FF wieder auf 50 MHz runtergeteilt.
Aus diesen 50 MHz werden dann 3,125 MHz für die CPU (und andere 
Komponenten gemacht). Die CPU braucht zwei phasenverschobene Takte, 
warum auch immer. WIMRE habe ich sowas beim Intel 8080 zum letzten Mal 
gesehen.
Also alles ganz einfach.

Hier noch ein Auszug aus dem CPU-Code:
1
writeq : process(cl1) begin
2
3
  if cl1'event and cl1 = '1' then
4
5
  q1kaw  <= f1kaw ;  q1kaa  <= f1kaa ;  q2kaa  <= f2kaa ;  q1kbb  <= f1kbb ;
6
  q1kac  <= f1kac ;  q1kbd  <= f1kbd ;  q1kad  <= f1kad ;  q1kbc  <= f1kbc ;
7
  q1kasu <= f1kasu;  q2kasu <= f2kasu;  q1kbsu <= f1kbsu;  q2kbsu <= f2kbsu;
8
  q1kant <= f1kant;  q2kant <= f2kant;  q1kaxr <= f1kaxr;  q2kaxr <= f2kaxr;
9
  q1qcd  <= f1qcd ;  q1vw   <= f1vw  ;  q1vcy  <= f1vcy ;  q2vcy  <= f2vcy ;
10
  q1vcn  <= f1vcn ;  q2vcn  <= f2vcn ;  q1vnz  <= f1vnz ;  q1xzsu <= f1xzsu;
11
  q2xzsu <= f2xzsu;  q1xzab <= f1xzab;  q1xzdc <= f1xzdc;  q1xzic <= f1xzic;
12
  q1wx   <= f1wx  ;  q2wx   <= f2wx  ;  q1wy   <= f1wy  ;  q2wy   <= f2wy  ;
13
  q1wz   <= f1wz  ;  q2wz   <= f2wz  ;  q1ssab <= f1ssab;  q1ssda <= f1ssda;
14
  q3ssda <= f3ssda;  q1ssia <= f1ssia;  q1sscd <= f1sscd;  q1pin  <= f1pin ;
15
  q1psu  <= f1psu ;  q2psu  <= f2psu ;  q1rn   <= f1rn  ;  q2rn   <= f2rn  ;
16
  q1opa  <= f1opa ;  q1opz  <= f1opz ;  q1sef  <= f1sef ;  q2sef  <= f2sef ;
17
  q3sef  <= f3sef ;  q1sn2  <= f1sn2 ;  q1sn1  <= f1sn1 ;  q1sn0  <= f1sn0 ;
18
19
end if; end process writeq;
Schön formatiert, aber um bei dem Namensschema durchzusteigen reicht 
mein IQ leider nicht...

von Josef G. (bome) Benutzerseite


Lesenswert?

Bernd schrieb:
> Die CPU braucht zwei phasenverschobene Takte,

Nein. Die Entity hat zwei Takteingänge für zwei phasenverschobene
Takte. Von dem einem wird nur die steigende Flanke gebraucht, vom
anderen nur die fallende Flanke. Es ist deshalb möglich, beide
Eingänge mit demselben Takt zu versorgen. Und so wird das in
der derzeitigen Implementierung auch gemacht.

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


Lesenswert?

Josef G. schrieb:
> Nein. Die Entity hat zwei Takteingänge für zwei phasenverschobene
> Takte. Von dem einem wird nur die steigende Flanke gebraucht, vom
> anderen nur die fallende Flanke. Es ist deshalb möglich, beide
> Eingänge mit demselben Takt zu versorgen. Und so wird das in
> der derzeitigen Implementierung auch gemacht.

Wenn Du keine Constraints für die Takte angegeben hast und diese über 
separate externe Taktsignale versorgt werden können, muss das 
Synthesewerkzeug davon ausgehen, dass die Takte in keinem festen Bezug 
zueinander stehen. Damit verhindert man natürlich jegliche 
Optimierungen.

Wenn jedoch beide Taktsignale aus demselben FPGA-internen Taktgenerator 
stammen, werden meist automatisch die daraus resultierenden 
Takt-Constraints erzeugt.

Es ist übrigens eine Katastrophe, solche Takte selbst durch 
Herunterteilen zu erzeugen. Stattdessen sollte man in solchen Fällen nur 
ein einziges Taktsignal verwenden und ggf. mehrphasige Clock Enables 
verwenden. Dann können nämlich viel besser die FPGA-internen 
Verteilnetze für Takte eingesetzt werden.

Frank schrieb:
> Das kann ich kaum glauben. Du bist doch Experte für "Warum einfach,
> wenns auch kompliziert geht".

Das hat Josef doch auch mal wieder exzellent zur Schau gestellt... Und 
zwar in der Variante "kompliziert und scheiße" statt "kompliziert, aber 
ausgezeichnet".

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Andreas S. schrieb:
> Das hat Josef doch auch mal wieder exzellent zur Schau gestellt... Und
> zwar in der Variante "kompliziert und scheiße" statt "kompliziert, aber
> ausgezeichnet".

Niemand ist unnütz, er kann auch als abschreckendes Beispiel dienen.

von Josef G. (bome) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Es ist übrigens eine Katastrophe, solche Takte
> selbst durch Herunterteilen zu erzeugen.

Bei den mir bekannten FPGAs ist das Aufschalten
solcher Takte auf Clock-Buffer problemlos möglich.

Man muss dann halt berücksichtigen, dass der erzeugte Takt
eine kleine Verzögerung gegenüber der erzeugenden Flanke
des Master-Clocks aufweist.

von Falk B. (falk)


Lesenswert?

Josef G. schrieb:
> Man muss dann halt berücksichtigen, dass der erzeugte Takt
> eine kleine Verzögerung gegenüber der erzeugenden Flanke
> des Master-Clocks aufweist.

Und genau DAS geht, vor allem bei Anfängern oft schief. Also macht man 
es GLEICH richtig. Denn dann geht es automatisch!

Taktung FPGA/CPLD

von Anita H. (anita1995)


Lesenswert?

Josef G. schrieb:
> Dieser Thread soll folgende älteren Threads ersetzen und fortführen
> Beitrag "EPJ14 S. 19: Ein 8bit-Rechner auf dem Spartan-3A-Starterkit "
> Beitrag "Ein 8bit-Rechner auf dem Spartan-3A-Starterkit"
> Zu dem Projekt gibt es den Artikel
> http://www.mikrocontroller.net/articles/8bit-Rechner
> Projekt-Website: http://www.bomerenzprojekt.de

Was kann man mit dem Board alles machen?

von Falk B. (falk)


Lesenswert?

Anita H. schrieb:
> Was kann man mit dem Board alles machen?

Wahnsinnig werden!

von Josef G. (bome) Benutzerseite


Lesenswert?

Anita H. schrieb:
> Was kann man mit dem Board alles machen?

Mit den FPGA-Boards? Oder mit dem Projekt?

Zu FPGA-Boards fragst du besser die Fachleute im FPGA-Forum.

Zum Projekt:

Einzige bisher realisierte Anwendung ist Conway's Game of Life.

Eigentliches Ziel des Projekts ist die Etablierung
eines Zeichensatzes mit sechzehn Ziffern.

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


Lesenswert?

Josef G. schrieb:
> Bei den mir bekannten FPGAs ist das Aufschalten
> solcher Takte auf Clock-Buffer problemlos möglich.

Ja, natürlich bekommt man fast beliebige Signale irgendwie an den 
Eingang eines Clock Buffers und damit in die Taktverteilung.

> Man muss dann halt berücksichtigen, dass der erzeugte Takt
> eine kleine Verzögerung gegenüber der erzeugenden Flanke
> des Master-Clocks aufweist.

Genau DAS ist ja das große Problem. Bei diskret aufgebauten 
Schaltungen kann man sich natürlich bei kaskadierten Registern oft nicht 
sicher sein, ob die Daten oder der Takt zuerst ankommen und ob die 
Setup-Zeiten korrekt eingehalten werden. In solchen Fällen arbeitet man 
natürlich mit mehrphasigen Takten bzw. mit beiden Flanken eines Taktes. 
Dort ist so etwas ein gutes Design.

Bei FPGA ist das aber nicht erforderlich, da durch die physikalische 
Struktur sichergestellt ist, dass die Setup-Bedingungen eingehalten 
werden. Natürlich nur unter der Voraussetzung, dass es sich um dasselbe 
Taktsignal handelt und nicht um mehrere "manuell" gegeneinander 
versetzten Takte. Moderne Synthesewerkzeuge werden einem so etwas aber 
um die Ohren hauen. Nein, es ist keine gute Idee, irgendeine 
Steinzeitversion zu verwenden, die solch einen Taktpfusch nicht erkennt. 
Nein, es ist keine gute Idee, die entsprechenden Fehlermeldungen zu 
unterdrücken.

von Josef G. (bome) Benutzerseite


Lesenswert?

Die Block-RAM-Entity für die Xilinx-Boards hatte bisher einen
Schreib-Lese-Port und einen unabhängigen zweiten Leseport. Der
Versuch, die Entity auch beim Altera-DE0 zu verwenden, führte
vor langer Zeit zu einer Fehlermeldung. Ich habe dann für die
Altera-Boards eine andere Entity erstellt mit nur einem
Schreibport und nur einem davon unabhängigen Leseport.

Nun habe ich auch die Xilinx-Boards auf diese zweite Version
umgestellt. Damit entfällt im Download-File die ursprüngliche
Xilinx-Version mit ihrer Kopie der System-Software. Jetzt ist
es einfacher, alle Projekt-Realisierungen zu vergleichen.

Ausserdem habe ich nun auch bei den Xilinx-Boards explizit
Clock-Buffer für die Takte vclk und cl1 instanziert für den
Fall, dass eine neue ISE-Version das nicht automatisch macht.
Beitrag "Re: 8bit-Computing mit FPGA"

cl2 wird lokal geroutet. Das schadet nicht, weil die mit cl2
getakteten FFs nie gleichzeitig gelesen und geschrieben werden
und deshalb nicht genau gleichzeitig schalten müssen. Routing
mittels Clock-Buffer würde ausserdem zu Warnungen führen, weil
cl2 an vielen Stellen als Enable und nicht als Takt dient.

von Josef G. (bome) Benutzerseite


Angehängte Dateien:

Lesenswert?

Bei den 7-Segment-Ziffern habe ich mich
nun für diese Version entschieden.

von Falk B. (falk)


Lesenswert?

Josef G. schrieb:
> Routing
> mittels Clock-Buffer würde ausserdem zu Warnungen führen, weil
> cl2 an vielen Stellen als Enable und nicht als Takt dient.

Was will dir die Welt und die Software damit sagen?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Josef G. schrieb:
> Bei den 7-Segment-Ziffern habe ich mich nun für diese Version
> entschieden.

Das B wie "Bube" erkenne ich als P wie "Puppe", das D sieht eher wie 
Lambda aus.

Warum akzeptierst Du nicht die Standards A b C d E F für 
Siebensegmentanzeigen? Diese sind allesamt lesbarer und eindeutiger 
als Deine "Erfindung", die mit unseren lateinischen Buchstaben nicht 
vereinbar sind.

Ich kann sogar hier
1
A b C d E F
in ASCII hinschreiben und man erkennt sofort die Anordnung der Segmente 
- die Zuordnung ist "eineindeutig". Ich brauche noch nichtmals Bilder 
von den Segmenten anzuhängen!

Bei Dir ist das anders. Sowohl Dein "P" als auch Dein "Lambda" sind 
nicht als die Hexziffern B und D zu erkennen. Also unbrauchbar.

: Bearbeitet durch Moderator
von Falk B. (falk)


Lesenswert?

Frank M. schrieb:
> Warum akzeptierst Du nicht die Standards A b C d E F für
> Siebensegmentanzeigen?

Das haben wir schon JAHRELANG diskutiert! Josef ist ein Autist.

von Anton (Gast)


Lesenswert?

Josef G. schrieb:
> Bei den 7-Segment-Ziffern habe ich mich
> nun für diese Version entschieden.

Schlechte Entscheidung!

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

A P C häwas? E F
Kann nur ein typischer bome sein!

von Jasson J. (jasson)


Lesenswert?

Josef G. schrieb:
> Eigentliches Ziel des Projekts ist die Etablierung
> eines Zeichensatzes mit sechzehn Ziffern.

Eigentlich denke ich auch, dass man als Hobby machen kann, was man will 
- egal wie sinnvoll oder zeitintensiv -
aber wenn das ernsthaft das Ziel ist, das globale Standard-Zahlensystem 
von dec nach hex zu ändern, dann ist das Zeitverschwendung.

von Falk B. (falk)


Lesenswert?

Jasson J. schrieb:
> Eigentlich denke ich auch, dass man als Hobby machen kann, was man will
> - egal wie sinnvoll oder zeitintensiv -
> aber wenn das ernsthaft das Ziel ist, das globale Standard-Zahlensystem
> von dec nach hex zu ändern, dann ist das Zeitverschwendung.

Oder Zen . . . ;-)

https://de.wikipedia.org/wiki/Zen

"Im Zen wird oft gesagt, dass Zen „nichts“ biete: keine Lehre, kein 
Geheimnis, keine Antworten."

ZEN-IT, der nächste, große Trend!

ZEN-tral processing unit ;-)

: Bearbeitet durch User
von Josef G. (bome) Benutzerseite


Lesenswert?

Jasson J. schrieb:
> aber wenn das ernsthaft das Ziel ist, das globale
> Standard-Zahlensystem von dec nach hex zu ändern,

Auch ohne dieses Ziel wäre die Etablierung eines Zeichensatzes mit
sechzehn Ziffern in einem zusammenhängenden Code-Bereich sinnvoll.

von Prokrastinator (Gast)


Lesenswert?

Falk B. schrieb:
> "Im Zen wird oft gesagt, dass Zen „nichts“ biete: keine Lehre, kein
> Geheimnis, keine Antworten."

Dieser Thread scheint denen, die seit Jahren davon reden das das hier 
alles keinen Sinn macht, aber wenigstens ganz gut die Zeit zu 
vertreiben.

Es ist doch egal was Josef postet, es erzeugt jede Menge Reaktionen.
Auch wenn sich seit Anbeginn dieses Threads das Ding um sich selber 
dreht, eigentlich nix neues dazukommt und nur der immer gleiche Mist in 
immer neuen Variationen durchgekaut wird. Neuer Zeichensatz, CPU wurde 
umdesignet, die korrekte Benennung des Hex Systems das die Welt erobert 
wird gesucht und die BO8 läuft jetzt auf dem nächsten FPGA Board.
Neue Leute kommen dazu und führen die Diskussion die schon 100 andere 
vor ihnen geführt haben, regen sich mehr und mehr auf, verlassen den 
Thread und neue kommen dazu.
Der Einzige der dauerhaft ernsthaft dabei ist, ist Josef.

Schon irgendwie geil, das man sich in FPGAs, unglaublich bescheidene 
Doku und gruseligen Code einarbeiten soll, weil man dann ganz einfach 
Computersysteme verstehen kann, laut Josef.
Dabei hat eigentlich keiner ein Problem Computer zu verstehen, nur eben 
mit Josefs gemurkse tut man sich schwer und sieht auch den Sinn nicht.
Es macht nix besser, nichts schneller oder billiger, ist in jedem 
einzelnen Punkt schlechter als etwas beliebig anderes und scheint nur 
dazu zu taugen den Erschaffer dieses Moloch runterzuputzen und sonst 
nichts.

Die Logig dabei ist irgendwie traurig, aber auch lustig, auf eine eher 
schmerzvolle fremdschäm Weise. Knuddeln, zuschlagen oder kopfschüttelnd 
das Weite suchen. Man weiß es oft nicht.

Wäre es ein Trollthread, wäre es der erfolgreichste aller Zeiten.

von chris_ (Gast)


Lesenswert?

>Es macht nix besser, nichts schneller oder billiger, ist in jedem
>einzelnen Punkt schlechter

840 LUTs für eine 8Bit CPU scheint mir aber recht klein:

Beitrag "Re: 8bit-Computing mit FPGA"

Wie ist das mit anderen 8Bit CPUs?

von Josef G. (bome) Benutzerseite


Lesenswert?

chris_ schrieb:
> 840 LUTs für eine 8Bit CPU scheint mir aber recht klein:

Sind beim CycloneV allerdings LUTs mit 6 Eingängen.

von lexi (Gast)


Lesenswert?

chris_ schrieb:
> 840 LUTs für eine 8Bit CPU scheint mir aber recht klein:

576 LUTs für einen 16-Bitter ;)

https://github.com/stnolting/neo430#FPGA-Implementation-Results

von Josef G. (bome) Benutzerseite


Lesenswert?

lexi schrieb:
> https://github.com/stnolting/neo430#FPGA-Implementation-Results

Aus deinem Link (Zitat):

Each single instruction is executed in a series of micro instructions 
requiring several clock cycles to complete. The main benefit of this 
execution style is the highly reduced logic overhead as no complex 
pipeline hazard detection and resolving logic is required. This makes 
the NEO430 even smaller - at the cost of a reduced IPC (instructions per 
cycle).

von S. R. (svenska)


Lesenswert?

Josef G. schrieb:
> Nach meiner Kenntnis sind die Bereitsteller von
> Open-Source-Lizenzen selber Vertagspartner im
> Verhältnis zwischen Nutzer und Inhaber des Urheberrechts.

Das ist schlicht falsch.

Wenn du deinen Code der Allgemeinheit unter einer BSD-Lizenz 
bereitstellst, dann hat die Universität Berkeley damit nichts zu tun.

> Das kann dazu führen, dass der Urheber nicht mehr
> die Möglichkeit hat, einem Anwender die Weiterentwicklung ohne
> Offenlegung des Quellcodes zu gestatten. Das möchte ich nicht.

In der Lizenz steht drin, was der Urheber darf und was der Anwender 
darf. Diese Bedingungen gelten.

Darüber hinaus darf die Urheberschaft auch weitere Lizenzbedingungen mit 
der Nutzerschaft vereinbaren, auf die diese Lizenz keinen Einfluss hat 
(z.B. Sonderlocken für kommerzielle Nutzung), aber es obliegt der 
Nutzerschaft, diese Optionen auch zu wählen.

>> Mir ging es in meinem Beitrag eher darum, dass er die Bedingungen
>> sinnvoll zum Code in die ZIP-Datei packt, statt irgendwo einen
>> Dreizeiler auf eine Webseite zu kippen und zu hoffen, dass das
>> reicht (tut es nämlich nicht).
>
> Warum nicht? Der Anwender muss dann halt einen Screenshot sichern.

Weil man üblicherweise nur das Quelltextpaket benutzt, aber nicht die 
Herstellerwebseite runterlädt und abspeichert. Das hat was mit 
Praktikabilität zu tun.

Nutzt man Open-Source-Software in kommerziellen Produkten, muss man 
üblicherweise deren Lizenztexte veröffentlichen und manchmal auch die 
exakt verwendeten Quelltexte. Dafür gibt es automatisierte Systeme, wo 
man vorne die ZIP-Datei oder den Tarball reinkippt, dazu noch die 
eigenen Patches, und die extrahieren daraus genau das, was nach den 
Lizenzbedingungen extrahiert und veröffentlicht werden muss.

Dein Ansatz ist schlicht unpraktisch.

> Wenn die Bedingungen in der ZIP-Datei stehen, gibt es auch keine
> Gewähr, dass nicht ein anderer sie nachträglich dazugepackt hat,
> sofern die Datei weitergegeben wird.

Ich unterstelle keine Bösartigkeit. Normalerweise möchte ich aber mit 
der Originalquelle arbeiten und nicht mit einem irgendwie verändertem 
Stand. Da weiß ich nämlich nicht, ob noch irgendwelche anderen Dinge 
gemacht wurden.

Wie gesagt, es gibt ein paar Dinge, mit denen du das Projekt 
verbessern kannst, unabhängig von der Technik. Mit einer Standardlizenz 
und einer Standardstruktur erlaubst du nämlich Standardarbeitsabläufe in 
der Nutzung.

von Falk B. (falk)


Lesenswert?

Josef G. schrieb:
> Each single instruction is executed in a series of micro instructions
> requiring several clock cycles to complete. The main benefit of this
> execution style is the highly reduced logic overhead as no complex
> pipeline hazard detection and resolving logic is required. This makes
> the NEO430 even smaller - at the cost of a reduced IPC (instructions per
> cycle).

Ohje, und trotzdem erreicht das Ding "nur" 100-121 MHz! Wie hoch ist 
nochmal dein Werk getaket? Wieviele Takbuffer und sonstigen Schmarn 
benötigt es?

von Reinhold E. (reinhold_by)


Lesenswert?

Der Thread hier ist gut zur Unterhaltung, hab viele (aber sicher nicht 
alle) Beiträge gelesen. Dieser Post ist hier meinen erster und soll auch 
der einzige bleiben.

Personen wie Josef haben Ansichten die der Mehrheit der Community 
widersprechen. Wer wie er keine Macht hat redet drüber aber kann 
faktisch nichts ändern. Manche andere dagegen haben die Macht und 
schaffen es ihre von der Mehrheit abweichende Einstellung durchzusetzen 
oder zumindest am Leben zu halten, egal ob sinnvoll oder nicht. Mir 
fallen hier drei Beispiele ein die doch wieder technisch relevant sind 
und mal zum überdenken dienen sollen (auch dir, Josef):

- Bitorder beim PowerPC: Die ganze Welt hat von Anfang an das 
niederwertigste Bit als 'b0' bezeichnet, das höchstwertige entsprechend 
als b7,b15,b31,b63,.. Dann kam in den 80ern IBM mit dem PowerPC, genau 
andersrum b31/b63 ist das LSB (bei 32/64bit Architektur). Wer jetzt 
PowerPC und andere Architekturen parallel bedienen muss, treibt viel 
Gehirnjogging... (War das nötig?)

- Gelöschte Flash/Eprom Zellen haben Bitwert '1' : Die ganze Welt macht 
das so, nein es gibt einen Widerständler: Infineon-Chips (z.B. TriCore) 
lesen eine '0' nach dem löschen. Hier gibt es sogar eine sinnvolle 
Erklärung: In C ist frischer Speicher mit '0' initialisiert, warum also 
das nicht auch beim Flash? Diese aus meiner Sicht sogar sinnvolle 
Änderung sehe ich hier nur bei denen, andere haben es bisher nicht 
übernommen. Schreibt man generischen Code für verschiedene 
Prozessorarchitekturen, muss man das mit Fallunterscheidung 
berücksichtigen. Macht Aufwand, aber leider nicht zu ändern...

- Little Endian / Big Endian: das ist ja so richtig alt. Eine 8bit 
Maschine kommt einfach nicht aus ohne mindestens 16bit Werte für 
Adressen. Die damals konkurrierenden Hersteller Motorola und Intel haben 
sich hier verschieden entschieden und das ist bis heute noch so, man 
muss beides unterstützen in gemischten Welten (vor 35 Jahren als 
Student, und heute immer noch im Job kurz vor der Rente). Beide haben 
logisch nachvollziehbare Gründe: BigEndian liest sich für den Menschen 
besser (HighByte zuerst, so wie man Zahlen eben schreibt), littleEndian 
ist im Zugriff besser wenn man verschiedene Sizes mischen will: Der 
Pointer zeigt immer auf das LowByte, egal ob 8,16,32,64bit
Durchgesetzt hat sich keine, verschiedene Architekturen können 
inzwischen einfach umschaltbar beide (Der Pragmatismus hat hier über den 
Dogmatismus gesiegt)

So Josef, ich wünsche dir viel Spaß mit deinen Ideen und den Mitlesern 
gute Unterhaltung. Nach 30 Jahren im Job habe ich die Hoffnung 
aufgegeben dass die beste Lösung gewinnt, es hängt immer an der 
Machtposition der Protagonisten. Also bleibt pragmatisch, weshalb ich 
mir keinen neuen 8bitter antue. 6502,Z80,AVR reichen mir. Die 16bitter 
sind für mich out, hab mich zu oft über die Segmentbedingten Fehler im 
HC16 geärgert. 32bit rulez in Embedded, nach meinem Abtritt dann 
natürlich mal die 64bitter (PS: Das 32bit Linux/Unix Datum läuft bei 
Interpretation als uint32 erst im Jahr 2104 ab, da bin ich schon tot und 
es kann mir egal sein... Manche Kollegen wollen ja jetzt schon unbedingt 
auf 64bit, auch auf 32bit Architekturen. Kosten/Nutzen egal, Der Begriff 
'atomic read size' vielen nicht bekannt)
Es bleibt mein einziger Comment hier, viel Spass beim weiterlesen dieses 
Record-Threads aus dem Jahr 2013....

Der Reinhold

von Sinus T. (micha_micha)


Lesenswert?

Reinhold E. schrieb:
> Die ganze Welt hat von Anfang an das
> niederwertigste Bit als 'b0' bezeichnet

Nein, zumindest bei der DEC PDP8 und der Data General NOVA war das LSB 
auch das Bit11 bzw. Bit15

von S. R. (svenska)


Lesenswert?

Reinhold E. schrieb:
> (PS: Das 32bit Linux/Unix Datum läuft bei Interpretation
> als uint32 erst im Jahr 2104 ab,

Ich glaube, du meinst das Jahr 2038. Das ist nicht mehr so weit weg, 
allerdings haben die meisten Unixoide ihr time_t schon länger auf 64 Bit 
erweitert.

Betrachtet man die Timestamps als unsigned, reichen sie noch bis 2106.

> Manche Kollegen wollen ja jetzt schon unbedingt auf 64bit,
> auch auf 32bit Architekturen. Kosten/Nutzen egal, Der Begriff
> 'atomic read size' vielen nicht bekannt)

Wie willst du auf einer 32-Bit-Architektur ein 64-Bit-Betriebssystem 
fahren?

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


Lesenswert?

S. R. schrieb:
> Reinhold E. schrieb:
>> Manche Kollegen wollen ja jetzt schon unbedingt auf 64bit,
>> auch auf 32bit Architekturen. Kosten/Nutzen egal, Der Begriff
>> 'atomic read size' vielen nicht bekannt)
>
> Wie willst du auf einer 32-Bit-Architektur ein 64-Bit-Betriebssystem
> fahren?

Warum sollten auf einer 32-Bit-Architektur keine 64-Bit-Datentypen 
genutzt werden können? Selbst für Betriebssystemfunktionen wären sie 
kein Tabu.

von Frank (Gast)


Lesenswert?

Mw E. schrieb:
> häwas?

Ja das ist die typische Reaktion auf Josefs Projekt... :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.