Zählerabhängige Operationen im CPLD

Gast #201988
Lesenswert?

Ich versuche gerade einen einfachen 640*400 VGA Controller in VHDL für
einen XC95xx zu programmieren, aber ich komme mit den Pixelzählern/Sync
Signalen nicht weiter:
Wie schreibe ich folgende Operationen:
Pixelzähler < 50: Ausgang=0
Pixelzähler >=50, <690: Ausgang=RAMInhalt
Pixelzähler >=690, <700: Ausgang=0
Pixelzähler >=700: Ausgang=0, HSync=1

Wie kann ich also die kleiner, größer Operatoren in VHDL einbinden ?
Gast #201989
Lesenswert?

Pixelzähler muss natürlich Integer oder Natural Format sein
ansonsten hilft auch bei so einer einfachen Problemstellung jedes
VHDL Buch


U1 : process (Pixelzähler) is
begin

if (Pixelzähler < 50) then
 Ausgang <= '0';
else if (Pixelzähler >= 50) and Pixelzäler < 690) then
Ausgang <= RamInhalt ;

--Hier deine Restlichen Bedingungen Bla Bla Bla
end if;
end process U1;
Gast #201990
Lesenswert?

Ausgang <= (others => '0') when (pixelzähler < 50) else
           RAMInhalt when (pixelzähler >=50) and (pixelzähler <690)
else ...usw.

das '0' in der others anweisung muss natürlich mit dem datentyp
RAMInhalt übereinstimmen.


das ganze geschieht natürlich asynchron sonst mit einem prozess lösen.
in einem process kannst du dann aber die obige anweisung nicht
gebrauchen dann eben

vga: process(CLK)
     begin
        if reset = '1' then
         --hier reset
        else clk'event and clk = '1' then
          if pixelzähler < 50 then
          --hier singanl zuweisung
        end if
     end process vga;

in etwa so

gruss tobias

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren