Forum: FPGA, VHDL & Co. Spartan-3E - lcd display - funzt nicht


von Kr2 K. (kr2)


Angehängte Dateien:

Lesenswert?

hallo,

hab hier mal einen Zustandsautomaten für ein LCD geschrieben, der aber 
leider nicht funktioniert und ich weis nicht warum. Die Simulationen 
sehen alle ganz gut aus, finde da auch keine Fehler. D.h. wende ich mich 
mal an euch.

Im Anhang findet ihr das das ganze Xilinx ise (v10.1) Projekt.

Das ganze besteht aus zwei Komponenten init und in_put. init soll das 
LCD initialisieren und dann 8 daten bit + 1 rs bit die anliegen ans LCD 
schicken. in_put stellt die Daten für LCD zur Verfügung ohne auf die 
Timings des LCD schauen zu müssen, macht alles init.

Das Ganze ist für dieses Bord geschrieben:
http://www.xilinx.com/support/documentation/boards_and_kits/ug257.pdf

In diesem User Guide ist die Beschreibung für das LCD ab S. 41. auf S. 
51&52 ist der  Initialisierung Prozess beschrieben an die ich mich 
gehalten habe.

Da ich noch nicht so lange VHDL programmiere würde ich mich auch über 
Verbesserungsvorschläge freuen. Wie man z.B. XY besser programmieren 
könnte.

Danke im Voraus.

mfg
kr2

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


Lesenswert?

> Die Simulationen sehen alle ganz gut aus, finde da auch keine Fehler.
Ich schreibe dir Code hin, der sieht in der Simulation super aus, nur 
läuft der garantiert nicht. Dafür brauche ich gerade mal einen Prozess 
mit drei Zeilen...

Kannst du diese Fragen beantworten:
Was geht nicht?
Welche Meldungen/Warnungen bekommst du bei der Synthese?
Wo lernt man denn einen solchen Beschreibungsstil?
Wozu diese umständliche Verzögerungs-Zähler-Prozedur?
Wozu die Variablen?

von Kr2 K. (kr2)


Lesenswert?

>Was geht nicht?
Kann ich leider nicht genauer sagen. Mir fehlen die Mittel um zu 
schauen, ob das richtige am LCD ankommt. Es tut sich am LCD gar nichts. 
Die Status Leds leuchten alles wie sie sollen.

>Welche Meldungen/Warnungen bekommst du bei der Synthese?
- WARNING:Xst:1426 - The value init of the FF/Latch state_FFd37 hinder 
the constant cleaning in the block init.
- INFO:Xst:1767 - HDL ADVISOR - Resource sharing has identified that 
some arithmetic operations in this design can share the same physical 
resources for reduced device utilization. For improved clock frequency 
you may try to disable resource sharing.

Bei der Warnung weis ich leider nicht wie ich FF/Latch state_FFd37 finde 
bzw. einem Problem zuordnen kann.
Die Info sollte ja kein Problem darstellen.


>Wo lernt man denn einen solchen Beschreibungsstil?
Ich hab ein Skript(Rechnerentwurf, A. Strey, Universität Innsbruck) und 
ein eBook(VHDL Kompakt, Andreas Mäder, Universität Hamburg). Hab mir da 
die Grundlagen angeschaut und angefangen zu programmieren, ohne groß was 
aus den Skripten zu übernehmen. Das ist jetzt eins meiner ersten etwas 
""größeren Projekte"".  Da ich noch ziemlich am Anfang steh, denke ich, 
dass es sich noch verbessert. Bin aber für Verbesserungsvorschläge 
jederzeit offen.

>Wozu diese umständliche Verzögerungs-Zähler-Prozedur?
Ich habe leider keine einfachere Möglichkeit gefunden. Bin aber für 
Vorschläge offen.

>Wozu die Variablen?
Weil ich es zu diesem Zeitpunkt noch nicht besser wusste. Jetzt weis 
ich:
Zitat Lothar Miller:
>>Versuche, die Aufgabe mit Signalen zu lösen.
>>Wenn es tatsächlich nicht anders geht, nimm Variable.

--- --- ---

Wenn es weiter hilft, ich hab auch die "post route Simulation" gemacht 
und die hat auch gepasst, außer ich hab mich vermessen oder was 
übersehen.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Kr2 Kr2 schrieb:
>>Wozu diese umständliche Verzögerungs-Zähler-Prozedur?
> Ich habe leider keine einfachere Möglichkeit gefunden. Bin aber für
> Vorschläge offen.
Vieleicht hilft dir ja mein LCD 'controller'...
Beitrag "[VHDL] 16x2 LCD Textcontroller / HD44780"
War aber nur ne kleine Spielerrei um die Aussage in ner Appnote man 
könne die 'komplexe' Statemachine für die LCD Ansteuerung nicht efizient 
umsetzen und solle einen Softcore verwenden.

btw: nicht jeder kann rar files lesen... zip ist gebräuchlicher.

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.