Forum: FPGA, VHDL & Co. Zeichengenerator VHDL für ITU 656


von Jens (Gast)


Lesenswert?

Hallo

Hat jemand Ahnung ob es schon einen fertigen Zeichengenerator in VHDL 
für einen Cyclone III gibt. Hab mit google nix passendes gefunden. Er 
müsste das komplette Alphabet mit Zahlen, Umlauten und einigen 
Sonderzeichen beinhalten.

Grüße

von Duke Scarring (Gast)


Lesenswert?

Jens schrieb:
> fertigen Zeichengenerator in VHDL
Für was brauchst Du denn die Zeichen?
In der grlib[1] gibt es ein Modul (APBVGA), welches einen Zeichen-ROM 
enthält.

Duke

[1] 
http://www.gaisler.com/cms/index.php?option=com_content&task=section&id=13&Itemid=125

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Ich habe mir meinen Schriftsatz von Hand erstellt. Es wird schwierig 
sein, was fertiges zu finden.

von Jens (Gast)


Lesenswert?

...das Problem ist folgendes...

Ich habe ein Videosignal. Dieses wird auf einem Bildschirm angezeigt. 
Wenn ich einen knopf drücke soll ein Menü über das Videosignal gelegt 
werden. So das man aber immer noch das Videosignal im Hintergrund sieht.

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


Lesenswert?

Jens schrieb:
> ...das Problem ist folgendes...
Und was davon kannst du schon?

Der erste Schritt wird mal sein, ein Quadrat einzublenden. Wenn das dann 
stabil steht (nicht zittert oder hüpft), dann kannst du dir mal die 
Zeichensatzgeschichte ansehen...

von Jens (Gast)


Lesenswert?

...daran probiere ich mich schon seit 1 Woche. Entweder zittert das Bild 
oder es läuft oder läuft auseinander oder die Halbbilder sind nicht 
synchron.

dabei zeigt Signaltap, das die Wertzuweisungen passen.

von Jens (Gast)


Lesenswert?

...so läuft stabil...

das Testsignal welches ich erzeuge ist zu dem welches ich teste und 
verändern will um 1 Byte / Wort versetzt...deswegen flimmerte das Bild, 
da ich bei jedem Takt ein Synchronwort überschrieben habe.

Was ich aber nuicht verstehe ist, warum dieser Versatz entsteht, da 
beide entitys am selben clock hängen.

von Jens (Gast)


Lesenswert?

also...habe alle soweit hin bekommen, das er auf ein x-beliebiges ITU 
Signal reagiert und sich die sichtbaren Bereiche merkt. Auch einen 
Buchstaben konnte ich schon zeichnen.

Jetzt bin ich am grübbeln wie ich einen Zeichensatz erstelle um auch 
ganze Wörter darzustellen.

von Duke Scarring (Gast)


Lesenswert?

Jens schrieb:
> Jetzt bin ich am grübbeln wie ich einen Zeichensatz erstelle um auch
> ganze Wörter darzustellen.
In die grlib hast Du immer noch nicht geschaut, oder? Da wird genau 
das gemacht, was Du suchst...

Duke

von Jens (Gast)


Lesenswert?

doch hab schon mal grob reingeschaut :)

von Jens (Gast)


Lesenswert?

...das übersteigt mein verständnis :(

von Jens (Gast)


Lesenswert?

Ich dachte mir das jetzt so, dass ich für jedes Zeichen eine Art BitMap 
erstelle in Form eines Array. Für das A sehe das zum Bsp so aus.

A := (00000000
      01111110
      01111110
      01100110
      01100110
      01111110
      01111110
      01100110
      01100110
      00000000);

Wenn 0 ist macht er nix. wenn 1 kommt wird der Bereich geschwärzt.

von Duke Scarring (Gast)


Lesenswert?

Jens schrieb:
> eine Art BitMap
Genau die findest Du in \lib\gaisler\misc\charrom.vhd

Duke

von Jens (Gast)


Lesenswert?

ich seh das so, dass hier aus einem rom die entsprechenden zeichen 
geladen werden.

Ich muss sie ja erstmal erstellen.

von Jens (Gast)


Lesenswert?

> A := (00000000
>       01111110
>       01111110
>       01100110
>       01100110
>       01111110
>       01111110
>       01100110
>       01100110
>       00000000);

erstmal muss ich so ein array erstellen..da hängt es gerade noch. 
außedem muss ich ja noch definieren, dass nach 8 bit in die nächste 
zeile gesprungen wird.

von Duke Scarring (Gast)


Lesenswert?

Jens schrieb:
> außedem muss ich ja noch definieren, dass nach 8 bit in die nächste
> zeile gesprungen wird.
Ich hätte dazu einfach die oberen Bits eines Vektors verwendet.

Duke

von Jens (Gast)


Lesenswert?

Duke Scarring schrieb:
> Ich hätte dazu einfach die oberen Bits eines Vektors verwendet.

wie soll das gehen? das zeichen ist doch pro zeile 8 bit breit. ich muss 
ja jedes zeichen in seiner ausdehnung begrenzen auch auch sagen von wo 
bis wo es geht.

von Jens (Gast)


Lesenswert?

das Hauptproblem an dem ich gerade hänge ist, eine routine zu erstellen 
wie ich dei schrift in das video einpräge. Ich muss quasi festlegen, wo 
er das Zeichen einblenden soll und das er das Bitmap bit für bit 
einliest und bei 0 nix verändert, aber bei 1 das pixel schwärzt.

Ich hab gerade voll den inspirativen durchhänger.

von Jens (Gast)


Lesenswert?

René D. schrieb:
> Ich habe mir meinen Schriftsatz von Hand erstellt. Es wird schwierig
> sein, was fertiges zu finden.

und wie hast Du das gemacht. ich finde absolut keinen einstieg

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Jens schrieb:
> René D. schrieb:
>> Ich habe mir meinen Schriftsatz von Hand erstellt. Es wird schwierig
>> sein, was fertiges zu finden.
>
> und wie hast Du das gemacht. ich finde absolut keinen einstieg

Du brauchst einen Blockram für deine Daten die Auf den Bildschirm 
dargestellt werden.


Bei der Bildschirm Ausgabe wird je nach dem welcher Wert im 
Bildschirmspeicher steht, die Daten aus einem weiterem Array gelesen. 
Dieses zweite Array ist der Schriftsatz.

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.