Forum: FPGA, VHDL & Co. VHDL Vergleicher ?


von Stefan (Gast)


Lesenswert?

Hallo!

Ich habe mich etwas in VHDL eingearbeitet, weil auf meiner neusten
Platine ein XC9572 vorhanden ist. Selbiger kümmert sich um die
Adressdekodierung und das Adresslatching. An einem ATMega128 ist ein
Graphikdisplay, ein SRAM und einige weitere Komponenten angeschlossen.
Das Display liegt im Adressbereich 0xFFFE - 0xFFFF, dafür habe ich
folgenden VHDL Code, um die Chipselect Leitung des LCD zu steuern:

lcd_cs <= not (AH(7) and AH(6) and AH(5) and AH(4) and AH(3) and AH(2)
and AH(1) and AH(0) and AL(7) and (AL(6) and AL(5) and AL(4) and AL(2)
and AL(1));

Die anderen Chipselect Leitungen habe ich ähnlich gemacht. Für den SRAM
bleibt schließlich der Bereich 0x0000 - 0xFFEF. Wie kann ich möglichst
einfach auf diesen Adressbereich prüfen, gibts es in VHDL ein "kleiner
als" ? Und gibt es für den lcd_cs irgendeine kürzere Möglichkeit als
die obige ?
AH und AL sind im übrigen zwei 8 Bit Busse.

Gruß
Stefan

von brumm (Gast)


Lesenswert?

"kleiner als"  =  "<"

von FPGAküchle (Gast)


Lesenswert?

Etwas kürzer, ungebuffert und falls lcd_cs low aktiv:

lcd_cs <= '0' when AH & AL(7 downto 1) = "11111111"  & "1111111"
else '1';


für den sram (falls high aktiv) bleibt

SRAM_cs <= '0' when (AH & AL(7 downto 4)) = ("11111111"  &
"1111") else '1';

Eventuell passt der "&" (Verkettung) nicht überall und man kann
Zahlen auch als Integer-Hex schreiben ...

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.