Forum: FPGA, VHDL & Co. VHDL entity LCD


von Student (Gast)


Lesenswert?

Hallo

bin blutiger Anfänger auf dem Gebiet VHDL.
Nun bin ich seit ein paar Tagen im Besitz eines Spartan 3AN Eval Boards.

Zunächst habe ich damit angefangen Taster einzulesen und LEDs mit 
verschiedenen Frequenzen toggeln zu lassen.
Nun würde ich als nächten Schritt gerne das LC Display in Betrieb 
nehmen.
Dafür würde ich mir gerne ein VHDL Modul schreiben welches ich immer 
wieder benutzen kann.

Aber wie sollte ich in diesem Falle meine entity beschreiben?
Ich könnte diese ja im Prinzip genau so aufbauen wie das LCD.
Also 8 oder 4 Datenbits und 3 Steuerleitungen. Aber diese Schnittstelle 
wäre ja nicht wirklich komfortabel, da ich jedes mal die ganze 
Initialisierung und Timings neu machen müsste wenn ich das VHDL Modul 
einsetze.

Mein Gedanke wäre:
- 8 Bits Daten
- 4 Bits Spalte
- 1 Bits Zeile
- 1 Bit Enable

Man legt nun das entsprechende Character an den 8 Datenbits an, stellt 
die Zeile und Spalte ein, toggelt einmal enable und das Zeichen 
erscheint an der entsprechenden Stelle am LCD.
Vielleicht noch ein paar Bits für verschiedene Modi spendieren.

Ist mein Gedanke praktikabel ... wie macht man sowas in der Regel?

Gruß

von mac4ever (Gast)


Lesenswert?

Der Gedanke ist prinzipiell nicht verkehrt. Nach dem Einschalten müsste 
das Modul die Initialisierung übernehmen. Am besten in einer 
Statemachine. Nachdem das erledigt ist, könntest du den von dir 
vorgeschlagenen Weg gehen.

Ein anderer Weg wäre die Nutzung eines Softcores für die Initialisierung 
und Steuerung. Der PicoBlaze eignet sich hierfür sehr gut.

Schau dir mal das Referenzdesign an ... gibt sicher auch eins für den 
3AN
http://www.xilinx.com/products/boards/s3estarter/reference_designs.htm

Hier dann ein Beitrag mit dem ASM-Code für den PicoBlaze
Beitrag "LCD PicoBlaze Spartan3"

von Anguel S. (anguel)


Lesenswert?


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


Lesenswert?

Student schrieb:
> Mein Gedanke wäre:
> - 8 Bits Daten
> - 4 Bits Spalte
> - 1 Bits Zeile
> - 1 Bit Enable
Eine sehr ähnliche Lösung habe ich dort mal gepostet:
Beitrag "Re: EA DOG-M initialisieren"

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.