Forum: FPGA, VHDL & Co. VGA-Counter HS und VS


von Peter B. (funkheld)


Lesenswert?

Hallo, das Buch kommt in den nächsten Tagen......

Wer kann mir bitte einmal die Logik für diesen VGA-Counter hcounter und 
vcounter für ein Bild 640x480 erklären? Wie werden da die Zeiten 
reingerechnet?

Danke.
Gruss

-----------------------------------
process (clk25)
begin
  if clk25'event and clk25 = '1' then
    if hcounter >= (639+16) and hcounter <= (639+16+96) then
      hs_out <= '0';
    else
      hs_out <= '1';
    end if;

    if vcounter >= (479+10) and vcounter <= (479+10+2) then
      vs_out <= '0';
     else
      vs_out <= '1';
    end if;

-- horizontal counts from 0 to 799
    hcounter <= hcounter+1;

    if hcounter = 799 then
      vcounter <= vcounter+1;
      hcounter <= to_unsigned(0,10);
    end if;

-- vertical counts from 0 to 524
    if vcounter = 524 then
      vcounter <= to_unsigned(0,10);
    end if;
  end if;
end process;
-----------------------------------

von Lehrer Birnbaun (Gast)


Lesenswert?

Peter Bierbach schrieb:
> Hallo, das Buch kommt in den nächsten Tagen......

Und ich darf Dir versichern, lieber Peter, dass nicht nur einer hier im 
Forum mit Dir auf baldigste Lieferung hofft. Du stellst seit Tagen total 
anfängerhafte Fragen, die sich durch das Studium der Sprache an sich 
schon klären würden, bzw garnicht ergeben hätten. Üblicherweise werden 
im Forum aber Methodenprobleme, Mathematikgeschichten und irgendwelche 
bugs diskutiert, die von der Normalität abweichen. Von daher setze ich 
jetzt voll auf DHL oder Hermes oder wen auch immer, dass wir demnächst 
nicht dauerhaft Bierbach-Wochen haben.

Zu der konkreten Frage heute kann ich nur soviel sagen: In dem Code 
steht eigentlich direkt drin, was passiert und wer das nicht erkennen 
kann, hat nicht so den Zugang zum programmieren, sage ich mal. Ich z.B. 
habe kein VHDL Buch gebraucht um mein erstes VHDL Programm zu lesen und 
erweitern.

Spätestens wenn man es simuliert, sieht man, welche Zeile was macht. 
Wenn Du Dir das nicht selber erarbeiten kannst, ist VHDL nicht Dein 
Welt.

von Duke Scarring (Gast)


Lesenswert?

Lehrer Birnbaun schrieb:
> Wenn Du Dir das nicht selber erarbeiten kannst, ist VHDL nicht Dein
> Welt.
Na, nicht so hart. Unser Held ist ja nicht mehr der Jüngste...

Peter Bierbach schrieb:
> Wie werden da die Zeiten
> reingerechnet?
Die Zeiten kommen aus dem 25 MHz Takt (extern angelegt) und dieser 
Tabelle:
http://www.tinyvga.com/vga-timing/640x480@60Hz

Duke

von Sabine W. (sabine_w)


Lesenswert?

So wie ich den Code lese (ohne jetzt VHDL zu kennen), ist der H-Sync 
aber 97 Pixel breit und der V-Sync 3 Zeilen hoch, also jeweils 1zuviel. 
Und das Bild ist nur 799x524 groß, weil bei 798/523 schon wieder auf 0/0 
geschaltet wird.

von Georg A. (georga)


Lesenswert?

> weil bei 798/523 schon wieder auf 0/0 geschaltet wird.

Reingefallen... Du bist auch ein Kandidat für das Buch ;)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sabine W. schrieb:
> So wie ich den Code lese (ohne jetzt VHDL zu kennen)...
Das ist das eigentliche Problem. Um bei HDL Beschreibungen (sei es VHDL 
oder Verilog) mitdiskutieren zu können, muss man das jeweilige 
Sprachkonzept verstanden haben. Sonst hat man immer diese +-1 
Verwirrungen...

Hier geht es speziell um VHDL und das Verhalten von Signalen in 
Prozessen. Man könnte jetzt auch einfach Variable nehmen und sich auf 
andere Probleme einlassen. Siehe den
Beitrag "Variable vs Signal"

von Fpgakuechle K. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Sabine W. schrieb:
>> So wie ich den Code lese (ohne jetzt VHDL zu kennen)...
> Das ist das eigentliche Problem. Um bei HDL Beschreibungen (sei es VHDL
> oder Verilog) mitdiskutieren zu können, muss man das jeweilige
> Sprachkonzept verstanden haben. Sonst hat man immer diese +-1
> Verwirrungen...

Alternativ zur diskussion um sprachkonzepte könnte man auch das ganze 
als schaltung erklären.

Also hier hat es einen synchronzähler (enable synchron, reset synchron) 
und einen Comperator auf 799. steht der Zähler auf 799 zieht der 
Komperator den reseteingang auf aktiv und damit wird der Zähler auf 
"0000" gesetzt.


In VHDL wird ein solches Schaltungsverhalten mit signalen, process(clk) 
und rising_edge(clk) beschrieben. wird der prozeß simuliert werden die 
zuweisungen an signale nicht bei zeilenweiser Abarbeitung sofort und 
nacheinander aktiv, sondern gleichzeitig beim "verlassen des blockes.

Es ist leider sehr verwirrend das in VHDL gleichzeitige Signaländerungen 
wie in Porgrammiersprachen nacheinander notiert werden. Das bringt 
leider die textuelle eingabe mit sich.

MfG,

von Gustl B. (-gb-)


Lesenswert?

Ich benutze je Digilent Boards, und die haben das recht gut im Handbuch 
beschrieben das VGA. Hier ab Seite 15 
https://www.digilentinc.com/Data/Products/NEXYS3/Nexys3_rm_V2.pdf

Aber auch Terasic, der Hersteller deines DE1 hat hier 
http://www.terasic.com.tw/cgi-bin/page/archive_download.pl?Language=English&No=83&FID=91d2cf46f90973377b1f71bd42040740 
auf Seite 36 erklärt.

von Peter B. (funkheld)


Lesenswert?

....Na, nicht so hart. Unser Held ist ja nicht mehr der Jüngste.....

Da hast du recht , mit 65 Jahren bin ich jetzt schon 11 Jahre als A15 in 
Pension mit vollen Bezügen, nicht mehr 75% , ist bei uns Pensionären 
etwas weniger geworden. Aber die 3900 Euro Netto reichen gerade so zum 
Leben....schmunzel...schmunzel...
Ich bedaure euch heute nicht mehr, wenn ich daran denke mit 68 jahren 
noch zu arbeiten (so wird es kommen).

Gruss
vom Pensionär .

von Peter B. (funkheld)


Lesenswert?

----------------
So wie ich den Code lese (ohne jetzt VHDL zu kennen), ist der H-Sync
aber 97 Pixel breit und der V-Sync 3 Zeilen hoch, also jeweils 1zuviel.
Und das Bild ist nur 799x524 groß, weil bei 798/523 schon wieder auf 0/0
geschaltet wird.
------------------

Ha...ha..., das ist jenes Durcheinander, welches ich nicht leiden mag.
Wie macht man es nun?
Für ein Anfänger ist das nicht erkärbar, warum bei 640x480 und 60Hz so 
ein kram raus kommt. Ich habe hier noch 3 andere verschiedene 
Zeiteinheiten.

Welch ein Scheisss...

Gruss

von Peter B. (funkheld)


Lesenswert?

-----------------------
Aber auch Terasic, der Hersteller deines DE1 hat hier
http://www.terasic.com.tw/cgi-bin/page/archive_dow...
-----------------------

Was nützen die PINS , wenn die da nicht einmal einen Schaltplan vom 
Board mit in dei PDF reingepackt haben.

Gruss

von Peter B. (funkheld)


Lesenswert?

Auch die "Vertical Sync" usw sind immer verschieden angegeben durch 
dieses Pack bei PAL in den PDF.

Gruss

von Nichtpersionsberechtigter (Gast)


Lesenswert?

Peter Bierbach schrieb:
> Da hast du recht , mit 65 Jahren bin ich jetzt schon 11 Jahre als A15 in
> Pension mit vollen Bezügen, nicht mehr 75% , ist bei uns Pensionären
> etwas weniger geworden. Aber die 3900 Euro Netto reichen gerade so zum
> Leben....schmunzel...schmunzel...
Erkläre mir mal, wo 3900 netto herkommen sollen
das haben viele Ingenieure nicht mal brutto


Zu Deinen anderen Fragen:

>Ich habe hier noch 3 andere verschiedene Zeiteinheiten.
Du hast keine Zeiteinheiten, sondern timeing frames
Das ist eben so, dass beim Video nicht alle Pixel aktiv sind und man 
unterscheiden muss, ob man brutto Pixel, Netto Pixel oder Aktive Pixel 
anschaut

>kein Schaltung
Selbstredend kann man bei Terasic das SCH.PDF laden. Ist Teil der 
BSP-Doc

von Mike (Gast)


Lesenswert?

Peter Bierbach schrieb:
> -----------------------
> Aber auch Terasic, der Hersteller deines DE1 hat hier
> http://www.terasic.com.tw/cgi-bin/page/archive_dow...
> -----------------------
>
> Was nützen die PINS , wenn die da nicht einmal einen Schaltplan vom
> Board mit in dei PDF reingepackt haben.
>
> Gruss

Den Schaltplan findest du auf der CD unter "DE1_schematics". Im 
User-Manual findest du nur Ausschnitte.

Auf der CD ist allerdings noch eine CSV-Datei notwendigen Informationen: 
DE1_pin_assignments.csv. Es ist deutlich einfacher wenn du die 
verwendest...

von Peter B. (funkheld)


Lesenswert?

Jup danke, die DE1_pin_assignments.csv habe ich schon eingebunden.

Gruss

von lulu (Gast)


Lesenswert?

naja, wenn er ein Pensionär ist mit 3900 Brutto, dann hat er genügend 
Zeit und Geld, dass er sich die Materie autodiktatisch mit einem Buch 
aneignet. Vielleicht sollte er vielleicht auch mal eine Schulung machen 
"VHDL für Anfänger", sowas wirkt oft Wunder.

Meines Erachtens fehlt dem TO mit seinen 65 Jahren die Fähigkeit sich 
systematisch in etwas neues einzuarbeiten. Wäre es ein Schüler, hätte 
ich nachsicht. Aber das hier ist eine bodenlose Frechheit!!


Lehrer Birnbaun schrieb:
> dass wir demnächst nicht dauerhaft Bierbach-Wochen haben.

Ich kauf mir jetzt eine Propcornmaschine und freue mich auf die 
kommenden Wochen!

von Peter B. (funkheld)


Lesenswert?

-----------------------
.."VHDL für Anfänger", sowas wirkt oft Wunder.
-------------------------

Eigentlich nicht.
Meine Frau und ich machen gerne Inland und Auslandsreisen wo nicht jeder 
deutsche hinkommt mit Wanderungen und Fahhradtouren.

Gruss

von Peter B. (funkheld)


Lesenswert?

..Fahhradtouren....
Fahrradtouren

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter Bierbach schrieb:
> ..Fahhradtouren....
> Fahrradtouren
Du kannst als angemeldeter Nutzer deinen Beitrag nach dem Absenden noch 
bearbeiten und musst nicht noch einen Post hinterher schicken. 
Ansonsten: bitte beim Thema bleiben...

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.