Forum: FPGA, VHDL & Co. Quartus II altpll input pin bestimmen


von Guggi Ebner (Gast)


Lesenswert?

Hallo

ich möchte mit dem Megawizard unter Quartus das Plug-In "altpll" in mein 
VHDL Projekt einbinden. An welcher Stelle kann ich der PLL einen Pin für 
den Eingangstakt zuweisen? in der erzeugten .ppf Datei, in meiner 
Top-Level .vhd Datei oder in der _altpll.v Datei der PLL? Ich benutze 
zur Zeit ein DE0-Nano Board, dort ist an Pin R8 das Quarz angeschlossen. 
Im Pin Planner erscheint der Pin incl0, aber wenn ich mit der PLL 
arbeiten möchte, erscheint die Fehlermeldung " Clock input port inclk[0] 
of PLL.... must be driven by a non-inverted input pin or another PLL. 
Input port INCLK[0] of node ... is not connnected"

Die PLL habe ich mit

component pllfuerschnellentakt
  PORT
  (
    inclk0    : IN STD_LOGIC  := '0';
    c0    : OUT STD_LOGIC
  );
end component;

und

pllfuerschnellentakt_inst: pllfuerschnellentakt Port Map (
  inclk0 => inclk0_sig,
  c0 => c0_sig);

in mein Top-Level eingefügt.

Hardwareseitig stehen mir vier PLLs zur Verfügung, ist dem Plug-In egal, 
welchen Pin (PLL1 bis PLL4) es zugewiesen bekommt?

Schonmal vielen Dank

von Roger S. (edge)


Lesenswert?

Wenn du das QSF eines Demoprojektes vom de0nano als Vorlage nimmst - was 
sehr empfehlenswert ist - dann heisst der Eingang CLOCK_50.

Also instanzierst du den PLL wiefolgt:
1
pllfuerschnellentakt_inst: pllfuerschnellentakt Port Map (
2
  inclk0 => CLOCK_50,
3
  c0 => c0_sig);

Quartus nimmt dann automatisch den passenden PLL der zu dem Eingang 
passt.

Cheers, Roger

von Guggi Ebner (Gast)


Lesenswert?

Vielen Dank für die Unterstützung.

Es läuft und wenn ich das richtig verstanden habe, funktioniert das mit 
den Plug-ins so:
Ein- und Ausgänge ganz normal definieren, diese auf Signale 
weiterleiten, die Signale in meine Unterprogramme leiten (PLL etc ) und 
mit den von dort kommmenden Signalen dann arbeiten.


entity MeinProgramm is
   Port( CLOCK_50 : in STD_LOGIC); --Eingang definieren
end MeinProgramm;

architecture Behavioral of MeinProgramm is
signal CLOCK_50_Signal   : std_logic;     --Signal für den Eingang 
erzeugen

component pllfuerschnellentakt
  PORT (inclk0    : IN STD_LOGIC  := '0';
        c0    : OUT STD_LOGIC );
end component;  -- hier Ein- und Ausgänge des Plug-Ins definieren

begin
   pllfuerschnellentakt_inst: pllfuerschnellentakt Port Map (
   inclk0 => CLOCK_50_sig,
   c0 => c0_sig);
      -- Ein- und Ausgänge des Plug-Ins, mit den Signalen verbinden

   process ()
   begin
   -- tu irgendwas
   end process;

  CLOCK_50_sig <= CLOCK_50;  --Signal mit Eingang verbinden

end Behavioral;

Ich hoffe damit anderen helfen zu können

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.