Es geht um das hier beschriebene Projekt:
http://www.mikrocontroller.net/articles/8bit-Rechner
Gesucht werden registrierte Forum-Teilnehmer,
welche eines der folgenden FPGA-Boards besitzen:
Spartan-3A Starter Kit (Revision-D Board),
Spartan-3E Starter Board, Nexys2 Board,
Altera DE1 Board.
Wer ist bereit, die von mir erstellte Konfiguration
zu testen und in folgendem Thread darüber zu berichten:
Beitrag "8bit-Computing mit FPGA"
Die ersten fünf Leute erhalten von mir je 100 Euro.
Voraussetzungen:
Die Konfiguration wird erfolgreich zum Laufen gebracht.
Es wird das auf meiner Website auf der Seite Emul mit 1.DEMO
bezeichnete Kommando ausgeführt, der dann geladene Programmtext
compiliert, das Programm zum Laufen gebracht und mindestens eine
Rechnung durchgeführt. Dies wird durch ein Foto dokumentiert, auf
welchem mindestens ein ausreichender Teil des Monitors und das
FPGA-Board zu sehen sind. Der Forums-Beitrag muss auf mindestens
10 Zeilen von angemessener Länge über die Erfahrungen berichten.
Für meine Zahlung ist es erforderlich, dass mir in einer über das
Forum versandten Email ("PN") die Bankverbindung mitgeteilt wird.
Hallo,
Stephan S. schrieb:> hahaha
naja, zur Not wird Dir Josef das Geld sicher auch als versichertes Paket
zusenden. In diesem Fall wird der Betrag aber um die Versandkosten
verringert.
Mit freundlichen Grüßen
Guido
Martin B. schrieb:> - Paypal oder Schein als Einschreiben
Damit bin ich nicht einverstanden. Die Zahlungsweise
Überweisung ist essentieller Bestandteil meines Angebots.
> - Auszuführende Binaries werden HIER lokal kompiliert
Verstehe ich nicht, was ist damit gemeint?
Richard schrieb:> Du hast aber Nexys2 geschrieben.Josef G. schrieb:> Spartan-3A Starter Kit (Revision-D Board),> Spartan-3E Starter Board, Nexys2 Board,> Altera DE1 Board.
Es sind insgesamt 4 verschiedene Boards, ich habe nur das
S3E-Starter und das Nexys2 in dieselbe Zeile geschrieben.
Josef G. schrieb:> Es sind insgesamt 4 verschiedene Boards, ich habe nur das> S3E-Starter und das Nexys2 in dieselbe Zeile geschrieben.
Ja, jetzt hab ich das auch gesehen...
Viele Grüße
Richard
Richard schrieb:> Welche Dateien muss ich den jetzt von ... runterladen?
Steht auf der Seite Hawa, ziemlich weit unten:
Zur Konfiguration für das S3E-Board gehören ...
Davis schrieb:> was der ein oder andere auch so machen würde?
Dass jemand es machen würde hilft mir nichts.
Es geht darum, dass jemand es tatsächlich macht.
Josef G. schrieb:> Es geht darum, dass jemand es tatsächlich macht.
Wobei Du es mir nicht wirklich leicht machst.
Auf einer Downloadseite erwarte ich ein fertiges .zip-File mit allen
benötigten Dateien (vhd + ucf + ...) damit ich mir ein Projekt damit
aufsetzen kann. So ein Sammelsurium, wo auch noch woanders steht, was
benötigt wird ist nicht sehr benutzerfreundlich.
Viele Grüße
Richard
Soooooo. Die Synthese ist erstmal komplett durchgelaufen, ich komme aber
erst morgen dazu, das Bitfile auszuprobieren.
Das ist mir an wichtigen Warnungen aufgefallen:
1
flhs3e.syr:WARNING:Xst:737 - Found 1-bit latch for signal <runvdo>. Latches may be generated from incomplete case or if statements. We do not recommend the use of latches in FPGA/CPLD designs, as they may lead to timing problems.
2
flhs3e.syr:WARNING:Xst:737 - Found 1-bit latch for signal <wart>. Latches may be generated from incomplete case or if statements. We do not recommend the use of latches in FPGA/CPLD designs, as they may lead to timing problems.
3
flhs3e.syr:WARNING:Xst:737 - Found 1-bit latch for signal <init>. Latches may be generated from incomplete case or if statements. We do not recommend the use of latches in FPGA/CPLD designs, as they may lead to timing problems.
Richard schrieb:> ich komme aber erst morgen dazu, das Bitfile auszuprobieren.
Vergiss nicht, dich anzumelden, wenn du Bericht & Foto postest.
Josef G. schrieb:> Bitte beim Posten des Erfahrungsberichts und des Fotos angemeldet> sein, sonst kann ich zum Bezahlen die Identität nicht prüfen.
Josef G. schrieb:> Es geht um das hier beschriebene Projekt:> http://www.mikrocontroller.net/articles/8bit-Rechner>> Gesucht werden registrierte Forum-Teilnehmer,> welche eines der folgenden FPGA-Boards besitzen:>> Spartan-3A Starter Kit (Revision-D Board),> Spartan-3E Starter Board, Nexys2 Board,> Altera DE1 Board.
Von "meinen" Boards hier brauche ich in den nächsten Wochen das Xilinx
Spartan-3AN Starterkit nicht, das könnte ich dir leihweise überlassen.
Das board befindet sich derzeit bei München, bei Interesse Mail.
MfG,
Fpga Kuechle schrieb:> das könnte ich dir leihweise überlassen.
Sorry, ich suche nicht ein Board, sondern Leute,
welche die Konfiguration auf ihrem Board testen.
Richard schrieb:> Das ist mir an wichtigen Warnungen aufgefallen:
Die Latches sind absichtlich eingebaut.
Josef G. schrieb:> Die ersten fünf Leute erhalten von mir je 100 Euro.
Mein Angebot gilt noch.
Ja, also die Informationen sind halt echt spärlich gesäht.
Wo finde ich dieses ominöse 1.Demo? Wie bekomme ich das auf das Board?
Muss ich dazu irgendwas compilen? Welche Baudrate?
Ich hab das hier schön laufen auf einem XC3S1200E und kann auch Befehle
eintippen wie 1.SI und dann das coka.txt über RS232 an das Board
schicken - aber das macht nichts.
Ich sehe auf dem Monitor immer nur die eingegebenen Befehle und ein paar
zusätzliche Zahlen.
Gustl Buheitel schrieb:> Ich hab das hier schön laufen auf einem XC3S1200E
Auf einem Nexys2 1200 vermutlich?
Das vorgehen ist beschrieben im Thread im Forum Codesammlung:
Beitrag "Re: 8bit-Computing mit FPGA"
Etwas weiter unten stehen auch Erläuterungen zur Tastaturbelegung.
Wenn du sogar die serielle Schnittstelle in Betrieb genommen
hast, hast du schon viel mehr gemacht als erforderlich. Das
Demo-Programm ist bereits in der bei der Konfiguration
aufgespielten Software enthalten.
Wäre großartig, wenn du im Forum Codesammlung
über deine Erfahrungen berichten würdest.
Das mit dem -E kann ich nicht machen, weil meine Tastatur keine Power
Taste hat. Ist halt ne stink normale Cherry PS2. Oder auf welcher Taste
müsste Power liegen?
Das mit RS232 scheint nicht zu klappen ... aber ich kenne ja nichtmal
die Baudrate. Wenn ich ein 1_socard versuche, dass "arbeitet" das FPGA
Board schon irgendwie, also die Displays ändern sehr schnell ihren Wert,
aber am PC kommt nichts an, egal bei welcher Baudrate.
Gustl Buheitel schrieb:> weil meine Tastatur keine Power Taste hat.
Rechts neben dem Haupt-Tastenfeld ist das Feld, wo unten die
Cursortasten sind. Über diesem Feld sind ganz oben 3 Tasten, eine
davon die Power-Taste. Die müsste eigentlich jede PS2-Tastatur haben.
Zur Verwendung der RS232-Schnittstelle habe ich für Linux-PC
Programme erstellt, wie auf der Seite Hawa meiner Website
beschrieben. Die Baudrate ist aus dem Quelltext dieser
Programme abzulesen und beträgt 19200 Baud.
Aber beschäftige dich doch zunächst nicht mit der RS232-Schnittstelle,
erst muss es mit der Tastatur-Bedienung klappen.
Versuch als erstes vielleicht, das Kommando =WARE einzugeben.
Es müsste die Steckplatz-Belegung angezeigt werden.
Also die Taste hat nicht jede PS2 Tastatur, ich hab aber mehrere USB
Tastaturen und eine davon funktioniert jetzt mit einem Adapter. =WARE
geht auch und zeigt auf 1 die Testkarte an.
Hier mal was ich eingegeben habe mit der Ausgabe:
1_DEMO (der _ ist rechts shift)
=NEW =PGM +1111
=NEW =EDI +1111
=IN_C +PGM
=IN_D +EDI
=MPRO
=ENDM
*QER 00 ELSE
-PGM
*QER 00 COMM
Wenn ich Power drücke sehe ich den Quelltext und kann schreiben.
Gustl Buheitel schrieb:> =MPRO> =ENDM> *QER 00 ELSE
Vermutlich hast du auf der Seite E die Blockmarken nicht wie
angegeben gesetzt. Dann findet =MPRO den Text nicht und
=ENDM führt zu einem Fehler.
(Zur Eingabe der Ziffer 1 die Tastenfolge 6 1 drücken.)
4
Positionieren Sie in Seite E den Cursor 2 Zeilen weiter unten.
5
Geben Sie =ENDM ein. In Seite E können Sie das Listing ansehen.
6
Starten Sie das Programm mit -PG1 und geben Sie die erfragten
7
Werte ein.
Und dann noch diese seltsame Aussage:
"(Zur Eingabe der Ziffer 1 die Tastenfolge 6 1 drücken.)"
Das funktionier bei mir nicht, da erscheint sofort die 6 weshalb ich
gleich die 1 mit der Taste 1 eingebe.
Also einmal ist es PGM, einmal PG1, einmal EDI, einmal ED1 ?!
Ich habe jetzt die Blockmarken so gesetzt, dass die erste gestrichelte
Linie über der ersten Zeile "*PGM ARITH" liegt und die zweite
gestrichelte Linie ist unter der letzten Zeile "*RETN". Der Coursor
blinkt dahinter.
Gustl Buheitel schrieb:> und hier http://www.bomerenzprojekt.de/Website/Emul.html
Da wird die Bedienung des Emulationsprogramms beschrieben,
welches auf einem Linux-PC läuft. Dort muss man mit der PC-Tastatur
und dem Zeichensatz des PCs auskommen. Aber du hast ja das reale
System auf einem FPGA-Board, und eine völlig andere Tastatur-"Hardware".
Wg. PGM/PG1: Da habe ich tatsächlich ungeschickterweise
verschiedene Namen verwendet.
PS: PGM,EDI bzw. PG1,ED1 sind frei wählbare Variablen-Namen.
So, das Board, das Nexys2 zeigt nachdem ich die CPU gestartet habe beim
ersten Mal E440 auf den Displays an. Wenn ich dann die CPU resette und
wieder starte, dann steht da 6440. Also nur das erste mal mit einem E
statt der 6.
Dann gebe ich 1_Demo ein und setze die Blockmarken. Dann setze ich den
Coursor 2 Zeilen unter die letzte Textzeile und wechsele wieder zurück.
Da gebe ich dann ein was auf dem Foto ist.
Beim zweiten Bild fällt mir auf, dass die Blockende-Marke unmittelbar
unter dem Quelltext steht. Sie muss weiter unten stehen, am besten
in Zeile ff, weil =ENDM ein Kurzlisting ausgeben will und dafür
Platz braucht.
PS: Vergiss nicht vor Rückkehr in die Seite C
den Cursor an den Textanfang zu setzen.
Josef G. schrieb:> PS: Vergiss nicht vor Rückkehr in die Seite C> den Cursor an den Textanfang zu setzen.
Jetzt geht alles etwas durcheinander, deshalb nochmal:
Vor =MPRO den Cursor an den Textanfang setzen,
Vor =ENDM den Cursor unter den Quelltext setzen.
Ich bin jetzt einige Zeit nicht am Rechner, deshalb vorsorglich dies:
Falls du es schaffst, das Programm zu starten, bitte berücksichtigen:
Der erste Operand OPA ist signed. Vorzeichen stets angeben.
Der zweite Operand ist unsigned.
Gustl Buheitel schrieb:> aber DIV kann ich nicht nachvollziehen.
8192/(127+1) = 70 Rest 12 (Alle Zahlen sind hex).
Gerade nachgerechnet mit Taschenrechner:
70*128+12 = 8192
Übrigens: Multiplikation und Division werden per Software
realisiert. Die CPU kann weder dividieren noch multiplizieren.
Bin jetzt längere Zeit nicht am Rechner.
Wird noch ein weiterer Tester für das "Spartan-3E Starter Board"
benötigt?
Ich hätte evtl. Lust und habe erst neulich solch ein Board erstanden.
Allerdings stehe ich noch gaaaanz am Anfang meiner FPGA-Karriere und
habe noch niemals vorher etwas mit FPGA's gemacht. Auch habe ich bislang
noch nichts auf mein Board geflashed und somit Null FPGA-Vorwissen.
Ich weiß daher nicht, ob ich zur Tester-Zielgruppe passe. Auch würde
mich interessieren, wieviel Zeit ich etwa dafür veranschlagen sollte
(denn an der lieben Zeit hapert's ab und an etwas bei mir).
Außerhalb von FPGA's habe ich allerdings schon ein wenig Ahnung von
CPU's, deren Architekturen, MC's, Logik-Zeugs, Simulatoren, Software &
Co.
Viele Grüße
Igel1
Andreas S. schrieb:> Wird noch ein weiterer Tester ... benötigt?
Es wären noch Tester willkommen.
> Auch habe ich bislang noch nichts auf mein Board geflashed
Es reicht fürs erste, die Konfiguration flüchtig auf das FPGA-
interne Konfigurations-RAM zu übertragen.
(Jumper für Konfiguration in Stellung JTAG)
> wieviel Zeit ich etwa dafür veranschlagen sollte
Hast du ISE schon zum Laufen gebracht, ist die Lizensierung geklärt?
Je nach Betriebssystem Windows/Linux kann es erforderlich sein, zur
Übertragung der Konfiguration über USB mittels Impact einen Treiber
zu installieren. Ist das geklärt?
Du müsstest die Seite Hawa meiner Website kurz überfliegen und den
Abschnitt "Zur Konfiguration für das Spartan-3E Starter Board gehören"
lesen. Es wären 5 Dateien herunterzuladen, zu dekomprimieren und die
Namen-Suffixe anzupassen. In ISE neues Projekt anlegen, mit "Copy to
project" die fünf Dateien einbinden, Einstellungen vornehmen,
Synthese, Place&Route, Generate Progamming File laufen lassen,
Konfiguration übertragen.
Gustl Buheitel schrieb:> beim ersten Mal E440 auf den Displays an. Wenn ich dann> die CPU resette und wieder starte, dann steht da 6440.
Das Display zeigt die untersten 4 Stellen der Programmlaufzeit an.
Beim Power-Up-Reset wird der Textspeicher gelöscht. Dies entfällt
beim Tasten-Reset. Deshalb sind die Zeiten unterschiedlich.
Josef G. schrieb:> Wer ist bereit, die von mir erstellte Konfiguration> zu testen und in folgendem Thread darüber zu berichten:> Beitrag "8bit-Computing mit FPGA"> Die ersten fünf Leute erhalten von mir je 100 Euro.Josef G. schrieb:> Ich erhöhe meine Angebot von 100 Euro auf 150 Euro.
Ich erhöhe mein Angebot auf 200 Euro unter der Voraussetzung, dass
zusätzlich zu den bereits genannten Voraussetzungen das compilierte
Demonstrations-Programm auf SD-Karte gespeichert, nach Löschen des
RAM per Reset wieder von der Karte geladen und erneut gestartet
wird. Das ganze ist durch Fotos zu dokumentieren.
Dazu braucht man eine SD-Karte mit 1 oder 2 GByte (keine SDHC-Karte).
Das vorinstallierte Dateisystem wird zerstört. Ausserdem muss man
Software per RS232 vom PC auf das Board übertragen. Das PC-seitig
dazu erforderliche Programm existiert bisher nur für Linux.
Das Angebot wird vor allem für Besitzer des Altera DE1 Boards
interessant sein. Bei den anderen Boards braucht man einen
Pmod-SD-Kartenhalter von Digilent. Dieser ist erhältlich
zB. bei trenz für derzeit ca. 24 Euro + MwSt.
Josef G. schrieb:> Ich erhöhe mein Angebot auf 200 Euro unter der Voraussetzung, dass> zusätzlich zu den bereits genannten Voraussetzungen das compilierte> Demonstrations-Programm auf SD-Karte gespeichert, nach Löschen des> RAM per Reset wieder von der Karte geladen und erneut gestartet> wird. Das ganze ist durch Fotos zu dokumentieren.
Ist dieser Vorgang wirklich so kompliziert, dass er mit 50 EUR
abzurechnen ist?
Beitrag "Re: Tester gesucht für FPGA-Projekt"
Das ursprüngliche Angebot, welches nur das Compilieren und Starten
des Demonstrations-Programms erfordert, wird hiermit beendet.
Sollte jemand bereits Arbeit investiert haben und kurz vor
Abgabe des Erfahrungsberichts gestanden haben, möge
er sich per PN mit mir in Verbindung setzen.
Das modifizierte Angebot, welches zusätzlich den Betrieb
der SD-Karte erfordert, wird wie folgt geändert:
Die maximale Zahl der Teilnehmer wird von fünf auf drei reduziert.
Der von mir gezahlte Betrag wird von 200 Euro auf 300 Euro erhöht.
Als frischgebackener Elektrotechnikstudent habe ich vor Semesterbeginn
noch viel Zeit, wenig Geld und das Technische Interesse ist auch da.
Aktuell wächst daher auf meinem Schreibtisch ein Testaufbau der dem
Chaos-Thread würdig ist, ein SD-Leser bleibt zu improvisieren...
Grüße, Martin
Hmmm - jetzt bin ich schon ein wenig enttäuscht, denn ich habe mit viel
Aufwand mein Spartan 3E Board endlich ans Fliegen gebracht.
Nun war gerade dabei, mich tapfer so weit hin die Materie einzuarbeiten,
daß ich wenigstens verstehe, was ich da für Josef machen soll und jetzt
wird die Aktion abgeblasen - schade, schade ...
Viele Grüße
Igel1
Andreas S. schrieb:> Nun war gerade dabei, mich tapfer so weit hin die Materie einzuarbeiten,> daß ich wenigstens verstehe, was ich da für Josef machen soll und jetzt> wird die Aktion abgeblasen - schade, schade ...
Wieso die Aktion besteht doch noch? Nur jetzt ist halt die SD-Card
Pflicht.
Kannst ihm doch sicherlich mal ne PN schicken wenn du jetzt schon so
lange und hart daran gearbeitet hast ob es notfalls auch ohne SD-Card
geht ;)
Und Respekt das du dir diese Doku antust ich hab es auch mal versucht
aber da ist meine System-Architektur Vorlesung 100x verständlicher...
@Josef:
Eine bessere Doku wäre sehr wünschenswert! Investiere lieber darein
anstatt das Geld an Tester zu verschwenden die solange drauf rum hauen
bis es klappt (@igel1: dich ausgenommen ;) )
Martin B. schrieb:> ein SD-Leser bleibt zu improvisieren...
Nexys2 Board, Pmod-Anschluss C obere Buchsenreihe:
Pin 1: SELECT
Pin 2: MOSI
Pin 3: MISO
Pin 4: CLK
Pin 5: GND
Pin 6: VCC = 3.3V (Jumper!)
An Pin 3 ist Pullup-Widerstand erforderlich,
anlöten oder in der UCF-Datei Zeile jc03 ergänzen:
NET "jc03" LOC = "G13" | PULLUP;
Habe das selber nicht ausprobiert und weiss nicht ob es funktioniert.
Kann sein, dass wegen des Schutzwiderstands in der Signalleitung die
Methode mit FPGA-internem Pullup nicht funktioniert.
Für einen ersten schnellen Test das Kommando 1.SDR /00 eingeben.
Das Kommando initialisiert die SD-Karte und lädt 32 KByte von der
Karte. Wenn kein Hänger oder Error-Meldung auftritt ist alles ok.
Andreas S. schrieb:> habe mit viel Aufwand mein Spartan 3E Board endlich ans Fliegen gebracht.
Aber doch hoffentlich nicht nur wegen meinem Projekt?
Andreas S. schrieb:> schade, schade ...
Na gut, dann soll das Angebot 150 Euro für Compilieren und Starten
des Demo-Programms, ohne SD-Karte, in deinem Fall vorerst noch
weiter gelten.
Sodele. Test anscheinend erfolgreich. Ich werde noch ein paar Bilder
sortieren und machen, mit dem Bericht kann heute noch gerechnet werden..
Grüße, Martin
Edith sagt: Wie genau bekommt man das mit 1.SDR geladene Programm denn
zur Ausführung?
Martin B. schrieb:> Wie ... man das mit 1.SDR geladene Programm denn zur Ausführung?
Hast du das per 1.DEMO geladene Demo-Programm
schon compiliert und zum Laufen gebracht?
Hast du die Datei card schon per RS232 auf das Board übertragen?
(Dazu am PC ein Kopie cards anfertigen und sendcard verwenden).
Wenn die Datei card übertragen wurde, befindet sie sich in einem Buffer.
Mit 1.CARD4 überträgt man sie vom Buffer auf Slot4. Mit Reset (BTN0,
dann BTN1) aktiviert man die Software in Slot4 (bei Eingabe von =WARE
wird die Steckkarte in Slot 4 angezeigt). Damit steht die Software
für den Betrieb der SD-Karte zur Verfügung, man kann die Karte
initialisieren, eine Partition löschen, die Partition öffnen und
das compilierte Demo-Programm auf der Karte speichern.
Damit man die Software card nicht jedesmal neu auf das Board übertragen
muss, kann man sie, wenn sie sich im Buffer befindet, mit 1.SDS /nn auf
der SD-Karte ausserhalb des Dateisystems sichern und mit 1.SDR /nn
wieder in den Buffer laden. Der Vorgang zum erneuten Aktivieren ist
derselbe, wie wenn man sie gerade vom PC geladen hat.
PS: Reset löscht natürlich das compilierte Demo-Programm im RAM,
deshalb zuerst die SD-Karte in Betrieb nehmen und erst danach
das Demonstrations-Programm compilieren.
Danke für die Hinweise,
das Programm zu laden gelang mir durch
=NEW =PGM +1111
4SD.RC +PGM
Nach Eingabe von -PGM startete der Rechner und rechnete korrekt.
Ich werde jetzt die Bilder überspielen und dann meinen Bericht
verfassen.
Grüße, Martin
Josef G. schrieb:> Der von mir gezahlte Betrag wird von 200 Euro auf 300 Euro erhöht.
Langsam braucht der Mann wirklich professionelle Hilfe.
Aber andere als er denkt...
Mal etwas Öl ins Feuer gießen wollen:
Es haben sich ja jetzt Tester gefunden. Wann kann man denn mit
Testergebnissen rechnen?
Und was wurde eigentlich getestet? Die Lauffähigkeit? Die war bekannt.
Die kryptische Bedienung? Auch bekannt.
Ich frage mich wirklich, was denn nun die eigentliche Testaufgabe war
...
Meine Meinung:
Vielleicht wäre es wirklich wesentlich besser gewesen, 650 EUR einer
Werbeagentur für eine neue Website zu geben (vielleicht mit ein paar
Bildern, die eine Website etwas auflockern können) und für den Rest vom
Budget einen Interfacedesigner zu beauftragen, deutlichere Mnemoniks für
die Bedienung zu kreieren.
Ich habe mal begonnen, mich durch die Website zu kämpfen. Aber ehrlich:
Wenn das Konzept einer "neuen" FPGA-CPU schon nicht wirklich tragfähig
ist, dann sollte wenigstens die Werbung erstklassig sein. Und das kann
ich hier beim besten Willen leider nicht erkennen.
Gruß,
Thomas
Josef G. schrieb:> Der von mir gezahlte Betrag wird von 200 Euro auf 300 Euro erhöht.
Die Kohle würde ich eher mit einer Braut am Wochenende durchbringen,
statt sie hier zu verteilen.
@ Andreas S. (igel1)
Habe noch keine PN mit deiner Bankverbindung erhalten.
Aber vielleicht willst du damit warten, bis du auch die
Verwendung der SD-Karte dokumentiert hast?
Wollte eigentlich heute die Sache auf dem Altera Board zum laufen
bringen, SD Karte usw ist vorhanden.
Da die Doku dazu absolut unzureichend ist wollte ich mich gestern mal
ins Konzept einarbeiten und schauen wie alles so abläuft. Arbeite
beruflich mich FPGAs und VHDL und dachte damit wäre das ein Klacks hier.
Danach sah ich das: http://www.bomerenzprojekt.de/Website/CPU-vhdl.html
Tut mir leid, aber mit so einem Code wäre ich auf Arbeit nach ein Wochen
gefeuert.
Kommt das aus irgenteinem Tool oder ist das extra so geschrieben das es
niemand verstehen kann?
Ich hatte hier irgentwas gelesen von
Josef G. schrieb:
> Jeder PC ist ein Computer mit Erweiterungs-Steckplätzen.>> Mein System ist aber für einen ganz anderen Zweck gedacht. Es soll> für den Anwender ohne große Vorbildung vollständig verstehbar sein,> und er soll selber Assembler-Programme schreiben können, und> vielleicht auch selber eine Steckkarte basteln können.
Das kann ich beim bestem Willen nicht verstehen, weil es eher umgedreht
ist. Das gleiche bei der Doku(?), verstehe garnicht worum es geht.
Warum ist das nicht ein Projekt (am besten mit Versionierung) und
fertigen Skripten oder Makefile, damit auch wirklich jeder es
ausprobiern kann?
Naja wie auch immer, probiere es gerne aus wenn es eine Schritt für
Schritt Anleitung gibt und ein fertiges Paket.
Bestenfalls inklusive gebautem FPGA und kompiliertem Sourcecode, damit
man überhaupt einen Vergleich hat ob alles richtig läuft.
In dem Fall mach ichs sogar kostenlos!
Habe dir schonmal im FPGA Forum geschrieben das ich gerne eine
brauchbare SD Karten Implementierung fürs DE1 hätte und die hätte ich
damit, das ist mir Bezahlung genug.
Altera Fan schrieb:> Tut mir leid, aber mit so einem Code wäre ich auf Arbeit nach ein Wochen> gefeuert.>> Kommt das aus irgenteinem Tool oder ist das extra so geschrieben das es> niemand verstehen kann?
Einige Stellen sind schon ziemlich krass. Als wenn man absichtlich nur
10% der Sprache nutzt. Josef, wahrscheinlich hast Du die Sprache
zusammen mit der Entwicklung der CPU erlernt? Wenn Du den Code etwas
aufräumen würdest, könnten sich Andere an der Entwicklung der CPU
beteiligen.
1
ccss <= sss(15) or sss(14) or sss(13) or sss(12) or
2
sss(11) or sss(10) or sss( 9) or sss( 8) or
3
sss( 7) or sss( 6) or sss( 5) or sss( 4) or
4
sss( 3) or sss( 2) or sss( 1) or sss( 0) ;
??
1
o := outk; voutk := o & o & o & o & o & o & o & o
2
& o & o & o & o & o & o & o & o;
??
Wenn man hier Vektoren vergleicht reduziert sich das alles auf eine
einzelne Zeile.
1
t1 := kka(6 downto 0) & kka(7 );
2
t2 := kka(5 downto 0) & kka(7 downto 6);
3
t3 := kka(4 downto 0) & kka(7 downto 5);
4
t4 := kka(3 downto 0) & kka(7 downto 4);
5
t5 := kka(2 downto 0) & kka(7 downto 3);
6
t6 := kka(1 downto 0) & kka(7 downto 2);
7
t7 := kka(0 ) & kka(7 downto 1);
Hier wäre eine Schleife angebracht.
1
t1sn2 <= not (
2
(z7 and z6 ) or
3
(z7 and s6 and s5 and s3 and s2 and s1 and s0) or
4
(z7 and s6 and s5 and s4 and s2 and s1 and s0) or
5
(s7 and s6 ) or
6
(s7 and s5 ) or
7
(s7 and s4 ) or
8
(s7 and s3 ) or
9
(s7 and s2 ) or
10
(s7 and s1 ) or
11
(s7 and s0) );
Die untere Hälfte des Codes sieht so aus. Ist das die State-machine?
Lässt sich leider aufgrund unverständlicher Variablennahmen nicht genau
erkennen. Auf jeden Fall kann man den ganzen Abschnitt wahrscheinlich
auf ein Case-Statement reduzieren.
Altera Fan schrieb:> Wollte eigentlich heute die Sache auf dem Altera Board zum laufen> bringen, SD Karte usw ist vorhanden.
Falls du tatsächlich Interesse hast, das Projekt zu realisieren:
Die SD-Karte muss 1 oder 2 GByte haben, darf keine SDHC-Karte sein.
Es muss nach der Konfigurierung des FPGA Software per RS232 vom PC
auf das Board übertragen werden. Das PC-seitig dazu erforderliche
Programm gibt es bisher nur für Linux. Du musst also entweder
Quartus unter Linux installiert haben, oder, falls du es unter
Windows betreibst, musst du dazu bereit sein, die Konfiguration
im Konfigurations-Flash zu sichern, um anschließend Linux zu
starten und die Software per RS232 zu übertragen.
Falls diese Voraussetzungen gegeben sind, brauchst du folgende
Dateien: ade1.csv, ade1.vhd, kde1.vhd, cpu.vhd, rom24.vhd,
sendcard.c, card, coka. Dazu die entsprechenden .txt.zip-Dateien
herunterladen, dekomprimieren, suffixe .txt entfernen.
Nun in Quartus neues Projekt anlegen mit
ade1.vhd, kde1.vhd, cpu.vhd, rom24.vhd, ade1.csv (Constraints).
Für die Logik-Pegel gilt die Voreinstellung LVTTL.
Einstellungen abweichend von den Voreinstellungen:
Unused IO-Pins ==> Inputs with weak Pullups
nCEO Pin ==> User IO
Synthese starten und Konfigurationsfile erzeugen.
Falls du dich danach im Forum Codesammlung meldest,
können wir die weiteren Schritte zusammen durchgehen.
Altera Fan schrieb:> Danach sah ich das: http://www.bomerenzprojekt.de/Website/CPU-vhdl.html>> Tut mir leid, aber mit so einem Code wäre ich auf Arbeit nach ein Wochen> gefeuert.>> Kommt das aus irgenteinem Tool oder ist das extra so geschrieben das es> niemand verstehen kann?
Am geilsten sind ja die Variablennamen, da ist absolut nicht
nachvollziehbar wfür die sind.
Kleiner Tip an dich Josef, nenn doch mal die Variablen so um, dass
verständlich is worums geht.
zB so:
ABC_INST0_OPA_BYPASS_MUX_CTRL : out std_logic_vector(1 downto 0);
ABC_INST0_OPB_BYPASS_MUX_CTRL : out std_logic_vector(1 downto 0);
ABC_INST0_OPC_BYPASS_MUX_CTRL : out std_logic_vector(1 downto 0);
CID_INSTRUCTION : in std_logic_vector(31 downto 0);
CID_DECODED_VECTOR : out std_logic_vector(15 downto 0);
CPA_MEM_DABORT : in std_logic;
CPA_MEM_DMODE : out std_logic_vector(4 downto 0);
Josef G. schrieb:> Synthese starten und Konfigurationsfile erzeugen.
Habe vergessen auf folgendes hinzuweisen: Falls du eine Tastatur ohne
Power/Sleep/Wakeup-Tasten hast, solltest du in der Datei kde1.vhd in
der am Anfang stehenden Tabelle drei Änderungen vornehmen wie hier
beschrieben: (Siehe auch Website Seite Hawa ganz unten)
Beitrag "Re: 8bit-Computing mit FPGA"
Tim . schrieb:> Als wenn man absichtlich nur 10% der Sprache nutzt.
Genau so ist es.
> hast Du die Sprache zusammen mit der Entwicklung der CPU erlernt?
Ebenfalls richtig.
> Hier wäre eine Schleife angebracht.
Und was wäre damit gewonnen?
Martin Wende schrieb:> nenn doch mal die Variablen so um,
Solche Namen brauchen riesig viel Platz, sehen hässlich aus,
und man weiß trotzdem nicht wirklich, wofür sie stehen.
Was ich vielleicht machen sollte: Eine Auflistung, wo zu jedem
Namen eine kurze Beschreibung gegeben wird, wofür er steht.
---------------
Aber eigentlich wollte ich es vermeiden, hier
im Markt-Forum solche Fragen zu behandeln.
@ Josef G. (bome) Benutzerseite
>Martin Wende schrieb:> nenn doch mal die Variablen so um,>Solche Namen brauchen riesig viel Platz, sehen hässlich aus,>und man weiß trotzdem nicht wirklich, wofür sie stehen.>Was ich vielleicht machen sollte: Eine Auflistung, wo zu jedem>Namen eine kurze Beschreibung gegeben wird, wofür er steht.
[ ] Du hast en Sinn von Hochsprachen verstanden
[ ] Du hast den Sinn von sebsterklärenden Variablennamen verstanden.
Naja, was rede ich eigentlich? Es ist längst alles gesagt.
Beitrag "Re: wer kann sich noch an den hex-zeichensatz erinnern?"
>> Als wenn man absichtlich nur 10% der Sprache nutzt.> Genau so ist es.>>> hast Du die Sprache zusammen mit der Entwicklung der CPU erlernt?> Ebenfalls richtig.>>> Hier wäre eine Schleife angebracht.> Und was wäre damit gewonnen?
Es wäre gewonnen, dass andere Deinen Code verstehen können. Momentan
stellt es sich so dar, als wenn Du Deutsch ohne Grammatik mit einem sehr
kleinen Vokabular sprichst und daher alles unnötig lang umschreiben
musst.