Forum: FPGA, VHDL & Co. Array befüllen


von Dennis (Gast)


Lesenswert?

Hallo wieder einmal,

Ich komme gerade nicht weiter. Ich habe mir einen Zeichensatz 
programmiert.

Jetzt möchte ich aus den einzelnen Zeichen ein Wort bauen. Sagen wir im 
Zeichensatz ist Postition 1 ein H, 2 ein A, 3 ein L und 4 ein O.

Zur Zeit habe ich es nur mit einem Zeichen hinbekommen, also ohne ein 
Wort Array zu bauen.

Zeichensatz (Auszug)
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
use IEEE.STD_LOGIC_ARITH.ALL;
4
use IEEE.STD_LOGIC_UNSIGNED.ALL;
5
6
PACKAGE ascii_char is
7
8
TYPE font_type is array (0 to 15) of std_logic_vector (0 to 15);
9
TYPE font_ROM is array (0 to 15) of font_type; 
10
              
11
CONSTANT ascii: font_ROM :=            
12
        (("0000000000000000",  -- 0  #0
13
                            "0000000000000000", 
14
                            "0000000000000000",
15
                            "0000000000000000",
16
                            "0000000000000000",
17
                            "0000000000000000",
18
                            "0000000000000000",
19
                            "0000000000000000",
20
                            "0000000000000000",
21
                            "0000000000000000",
22
                            "0000000000000000",
23
                            "0000000000000000",
24
                            "0000000000000000",
25
                            "0000000000000000",
26
                            "0000000000000000",
27
                 "0000000000000000") --15  Space
28
 );
29
  
30
END ascii_char;

hier hole ich mir in einer anderen entity das Zeichen aus dem Package
1
library work;
2
use work.ascii_char.ALL;
3
4
pixel := ascii(0)(Char_y)(Char_x);

Wie bekomme ich das jetzt hin, das statt statt der null jetzt ein array 
eingelesen wird das zum Bsp "HALLO" ausgibt

Mit einer Abfrage würde ich immer das nächste Zeichen aus dem Array 
holen. Also wenn ich beim im Zeichen bei 15 / 15 angekommen bin, wird 
dann das nächste Zeichen geladen.

von Dennis (Gast)


Lesenswert?

...der Inhalt des Wort Arrays ist für den Test statisch. später soll das 
Array per I2C befüllt werden, so dass man die Ausgabe variieren kann.

Was aber ein auf ein weiteres Problem führt. Ich muss das Array in der 
Länge variabel machen und nach jedem befüllen des Array dessen Länger 
ermitteln.

Wie das geht konnte ich bis jetzt nicht ergründen.

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


Lesenswert?

Dennis schrieb:
> Ich habe mir einen Zeichensatz programmiert.
Wofür?
Wo soll der angezeigt werden?

> Jetzt möchte ich aus den einzelnen Zeichen ein Wort bauen.
> Zur Zeit habe ich es nur mit einem Zeichen hinbekommen,
Und wie sieht so ein Zeichen aus?
Wie sähe z.B. ein H aus?

> Wie bekomme ich das jetzt hin, das statt statt der null jetzt ein array
> eingelesen wird das zum Bsp "HALLO" ausgibt
Wo soll denn in diesem Array das Wort "HALLO" stehen?

Dennis schrieb:
> Ich muss das Array in der Länge variabel machen und nach jedem
> befüllen des Array dessen Länger ermitteln.
Vergiss das mit "variabel". Du beschreibst Hardware, da ist nichts 
variabel. Du kannst höchstens zuviel (bzw. ausreichend) viel Platz 
reservieren. Das ginge z.B. in einem RAM...

von Dennis (Gast)


Lesenswert?

das ist ein A
1
 ("0000000000000000",  --#1
2
                            "0111111111111100",
3
                            "0111111111111100",
4
                            "0110000000001100",
5
                            "0110000000001100",
6
                            "0110000000001100",
7
                            "0110000000001100",
8
                            "0111111111111100",
9
                            "0111111111111100",
10
                            "0110000000001100",
11
                            "0110000000001100",
12
                            "0110000000001100",
13
                            "0110000000001100",
14
                            "0110000000001100",
15
                            "0110000000001100",
16
              "0000000000000000"), --A

habs soweit hinbekommen das er mit HALLO anzeigt. Nur habe ich noch das 
Problem der Länge des Array.

Selbst wenn ich sage, es können 100 werte ins Array geschrieben werden.
Wie weiß ich wieviel wirklich drin sind und was Rest ist?

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


Lesenswert?

Dennis schrieb:
> Wie weiß ich wieviel wirklich drin sind und was Rest ist?
Einfach mal mitzählen? Denn irgendwer (vermutlich du selber) muß die 
Werte ja ins RAM reinschreiben...

von Dennis (Gast)


Lesenswert?

...die Problematik hat sich erledigt. Die Menge wird durch die 
Bildauflösung begrenzt. Je mehr Zeichen desto kleiner sind diese auch 
und irgendwann nicht mehr erkennbar (auf nem kleinen TFT).

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.