Forum: FPGA, VHDL & Co. Zählerabhängige Operationen im CPLD


von Benedikt (Gast)


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 ?

von OTobias (Gast)


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;

von tobias hofer (Gast)


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

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.