Forum: FPGA, VHDL & Co. Clock mit 25.125 MHz erzeugen


von Fragesteller (Gast)


Lesenswert?

Hallo!

Ich möchte gerade eine VGA tutorial () auf meinem DE2 board 
ausprobieren, jedoch funktioniert das nicht richtig.
ich glaube es scheitert an der clk-frequenz.
Mein board kann nur 50Mhz und 27Mhz anbieten.
Für die Anwendung vom Tutorial brauche ich jedoch 25.125Mhz.
Oszillatoren oder ähnliches habe ich nicht zur Verfügung. ich habe 
lediglich das developer board. also kann ich nicht auf eine externe 
clock zurückgreifen.

mir kam die idee, dass man doch eigentlich folgendes machen könnte um 
auf die 25.125mhz zu kommen
1
  -- generate a 25 MHz clock
2
  process (clk50_in)
3
  begin 
4
    if clk50_in'event and clk50_in = '1' then
5
      if (clk25 = '0') then
6
        clk25 <= '1';
7
      else
8
        clk25 <= '0';
9
      end if;
10
    end if;
11
        end process;
12
13
process (clk25, reset)....
  end process;


würde der obige ansatz funktionieren?
gibt es einfachere möglichkeiten?

lg

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


Lesenswert?

> würde der obige ansatz funktionieren?
Ja, aber u.U. hast du dann lokale Takte, die nicht über das globale 
Taktnetzwerk des FPGAs verteilt werden, und so einen hohen Skew 
aufweisen können...

> gibt es einfachere möglichkeiten?
Nein, aber technisch bessere:
DCM, PLL, DLL o.ä. zur Taktvervielfachung und -teilung.

von Frager (Gast)


Lesenswert?

Du hast damit doch 25Meg und nicht 25.125 Meg. Funktioieren würde ja 
201/8, aber ich sehe keine Chance, die mit einem 50er Quarz zu erzeugen.

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


Lesenswert?

> Du hast damit doch 25Meg und nicht 25.125 Meg.
0,5%, das macht VGA nichts aus... ;-)
Ich würde wetten, dass handelsübliche Monitore auch noch mit 27MHz was 
anfange können.

von Fragesteller (Gast)


Lesenswert?

Hmmmm

irgendwie funktioniert der output nicht...

mit den waveforms in quartus 2 bekomm ich die richtigen takte für die 
25mhz clock.

ich habe das tutorial 1:1 übernommen 
(http://www1.cs.columbia.edu/~sedwards/classes/2007/4840/video.pdf).
Pin Assignments habe ich nach bestem wissen und gewissen mehrmals 
kontrolliert. stimmen.

der bildschirm, den ich angschlossen habe, bekommt kein signal.
das demo programm auf dem DE2 board hat jedoch keine probleme mit der 
anzeige auf dem selben bildschirm...

im reference-manuel steht sogar 
(http://users.ece.gatech.edu/~hamblen/DE2/DE2%20Reference%20Manual.pdf) 
dass 25MHz ausreichend sind...

wo könnte der hund begraben liegen?

lg

von Honkmichi (Gast)


Lesenswert?

Ich denke mal du arbeitest mit Quartus. Dort kannst du eine PLL als 
Megafunction einfügen. Glaube (ALT_PLL) heißt sie. Dort kannst du die 
gewünschte Frequenz einstellen und fertig.
Aber wie bereits erwähnt, dort liegt dein Problem nicht.

von Fragesteller (Gast)


Lesenswert?

Hallo!

Ja ich arbeite mit Quartus II 9.0. Ich habe eben diese Megafunction 
eingebunden, jedoch bekommt man nicht mal mit dem Wizard 50.125 MHz 
zusammen - ungültiger divisor.
Ich verlasse mich auf die Aussage, dass 0.5% nichts ausmachen :)


lg

von Frager (Gast)


Lesenswert?

Ja klar, der Wizzard kann auch nur ganzzahlige Teiler einstellen und 
erzeugt somit:

50/1=50, 50/2=25, 50/3=16,7, 50/6, 50/7
sowie
150/2, 150/3, 150/4, 150/6, 150/7

... und 500/9 = 55,555

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.