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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.