Benutzer-Werkzeuge

Webseiten-Werkzeuge


friedhof:fpga_nexys3_ubuntu

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
project:fpga_nexys3_ubuntu [2011-12-04 16:21] 95.208.83.25project:fpga_nexys3_ubuntu [2011-12-04 16:36] 95.208.83.25
Zeile 15: Zeile 15:
 den FPGA mit dem .bit File programmieren. den FPGA mit dem .bit File programmieren.
 //(OT: wer kommt auf den bescheuerten Namen djtgcfg für das Programm? wenn man adept2 installiert erwartet man, dass das Programm auch adept2 heißt... fuuuuuuu)// //(OT: wer kommt auf den bescheuerten Namen djtgcfg für das Programm? wenn man adept2 installiert erwartet man, dass das Programm auch adept2 heißt... fuuuuuuu)//
 +
 +inzwischen bin ich auf die Windows Version von Adept2 und ISE umgestiegen und arbeite in einer Windows VM auf meinem MacBook Air.
  
 ===== Ansteuern der 4x 7-Segment-Displays ===== ===== Ansteuern der 4x 7-Segment-Displays =====
Zeile 69: Zeile 71:
 [[https://github.com/Samuirai/fpga/tree/master/Binary7SegCounter|git:Binary7SegCounter]] [[https://github.com/Samuirai/fpga/tree/master/Binary7SegCounter|git:Binary7SegCounter]]
  
-===== Zugriff auf den Cellular RAM =====+===== Zugriff auf den RAM ===== 
 + 
 +Auf dem NEXYS3 Board ist ein CellularRam von Micron verbaut ([[http://download.micron.com/pdf/datasheets/psram/128mb_burst_cr1_5_p26z.pdf|datasheet]]). Ich habe sehr lange gebraucht, bis ich es endlich geschafft habe, sauber zu lesen und schreiben. Adept2 - das Tool mit dem man das .bit File auf den FPGA laden kann, ermöglicht auch das lesen und schreiben vom RAM. So konnte ich testen, ob alles funktioniert. 
 + 
 +{{:project:adept2.png|}} 
 + 
 +Ich habe den RAM an den ersten Speicherstellen auf 0 gesetzt, um richtig erkennen zu können, ob das schreiben funktioniert. 
 + 
 +{{:project:hex1.png|}} 
 + 
 +Als ich dann den FPGA programmiert habe und danach den RAM ausgelesen habe, konnte ich erkennen, dass mein Schreiben erfolgreich war. 
 + 
 +{{:project:screen_shot_2011-11-27_at_4.58.00_am.png|}} 
 + 
 +Inzwischen habe ich auch geschafft zu lesen. Ich habe die Funktionalität (Die State-Machine) in einen MemoryController ausgelagert und nun einfach lesen und schreiben zu können. Mein Beispiel Projekt befindet sich auch wieder auf [[https://github.com/Samuirai/fpga/tree/master/Memory|github.com/Samuirai/fpga/Memory]]
  
-Nachdem ich mit dem VGA Ausgang herumgespielt habe, bin ich langsam an die internen Speichergrenzen gestoßen. Ich habe ein 640x480 1 Byte Array auf dem FPGA gespeichert, wodurch die Synthese >15min  gedauert hat. Also musste ich mir anschauen, wie man auf den RAM zugreifen kann. 
-Auf dem NEXYS3 Board befinden sich verschiedene RAM arten. Eines davon ist der CellularRam von der Firma micron.  
-Ich habe mir dazu das Datenblatt ([[http://download.micron.com/pdf/datasheets/psram/128mb_burst_cr1_5_p26z.pdf|Cellular RAM Datasheet]]) angeschaut und versucht, die asynchrone READ und WRITE Funktion zu nutzen.  
-Nach ein paar Stunden lesen und testen habe ich es endlich geschafft. Der VHDL Code (main.vhd) ist in meinem github.com Repository zu finden ([[https://github.com/Samuirai/fpga/tree/master/RAMTest|git:RAMTest]]).  
-Hier noch ein Video des Tests: http://www.youtube.com/watch?v=e3drq40d2mA  
  
-update: +===== lessons learned ===== 
-ich habe es nicht geschafftAuf den Datenleitungen waren einfach noch die alten Werte und die hab ich wieder gelesenAlso wieder zurück auf 0... T_T+  * Der FPGA verdammt schnell - eventuell hilft runtertakten. 
 +  * Man darf nicht in das normale Programmier-Denken zurück fallen - hier gibt es keine Funktionen und return Werte 
 +  * Immer in Block-Diagrammen/Shematics denken. 
 +  * An die Signallaufzeit von Signalen denkenVor Allem bei schnellen Clocks(States und Counter eventuell als Variabeln nehmen)
friedhof/fpga_nexys3_ubuntu.txt · Zuletzt geändert: 2020-07-20 11:06 von neos