Forum: FPGA, VHDL & Co. VHDL - Altera DE1 Board PLL initialisieren


von Max M. (maxmicr)


Lesenswert?

Ich würde gerne auf meinem Altera DE1 Dev-Board eine PLL des Cyclone II 
als Clock-Signal verwenden.
Im MegaWizard Plugin Manager gibt es unter I/O die ALTPLL Funktion.

Wie genau muss ich diese einstellen, damit ich sowas in VHDL schreiben 
kann?
1
if(rising_edge(clk)) then
2
 ...
3
end if;
4
5
if(falling_edge(clk)) then
6
...
7
endif;

: Bearbeitet durch User
von Donni D. (Gast)


Lesenswert?

Auf beide Flanken wirst du nicht Triggern können. Du stellst halt die 
Frequenzen ein, fügst die Komponente hinzu und verbindest sie. Fertig.

von Max M. (maxmicr)


Lesenswert?

Donni D. schrieb:
> verbindest sie

Wie mache ich das denn?

Die generierte Entity sieht so aus:
1
ENTITY pll_conf IS
2
  PORT
3
  (
4
    areset    : IN STD_LOGIC  := '0';
5
    inclk0    : IN STD_LOGIC  := '0';
6
    c0    : OUT STD_LOGIC ;
7
    locked    : OUT STD_LOGIC 
8
  );
9
END pll_conf;

Ist nun c0 der Clock-Pin?

: Bearbeitet durch User
von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Max M. schrieb:
>
1
> ENTITY pll_conf IS
2
>   PORT
3
>   (
4
>     areset    : IN STD_LOGIC  := '0';
5
>     inclk0    : IN STD_LOGIC  := '0';
6
>     c0    : OUT STD_LOGIC ;
7
>     locked    : OUT STD_LOGIC
8
>   );
9
> END pll_conf;
10
>
>
> Ist nun c0 der Clock-Pin?

Sieht ganz danach aus. Der locked Ausgang gibt dir Information über den 
Zustand der PLL, damit bleibt nur noch c0 als Clock Ausgang.

inclk0 ist der Eingangstakt aus dem die PLL c0 generiert und areset ist 
der Reset der PLL.

von Markus F. (mfro)


Lesenswert?

c0 ist der "neue" Clock-Port (steht so übrigens auch im Megawizard, wo 
Du ihn definiert hast). Wenn man in derselben PLL zusätzliche Clocks 
definiert, heissen die entsprechend c1 - c4.

Stabil sind die Clocks erst, wenn "locked" aktiv wird. Man sollte das 
Signal also geschickt mit dem Reset verheiraten, um einen stabilen 
Anlauf sicher zu stellen..

von ElKo (Gast)


Lesenswert?

Wenn du die Pll nutzt, und du brauchst nur einen Takt, kannst du auch 
einen zweiten Takt c1 erzeugen mit 180° Phaseshift. Dessen steigende 
Taktflanken kommen dann ungefähr bei der fallenden Flanke von c0.
Auch wenn das geht, würde ich davon abraten und lieber nochmal über das 
Design nachdenken. Sowas bringt meist jede Menge versteckten Ärger. 
Evtl. hilft ja auch ein doppelt so schneller Takt...

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.