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