Forum: FPGA, VHDL & Co. Quartus mega wizard benutzen


von Panko (Gast)


Lesenswert?

Hallo allerseits,

ich hänge heute Nachmittag echt in der Luft: ich habe vor einiger Zeit 
mit Xilinx und Ise gespielt. Besonders bemerkenswertes Zeug nicht, aber 
um etwas herein zu schnuppern.
Gleiches soll jetzt für ALtera erfolgen und da hänge ich fest. Fester 
als fest. Das Problem ist: wie bekomme ich ein mega-wizard plugin 
instanziiert....


Angenommen ich brauche einen krummen oder schnellen Takt. Erzeuge mir 
eine pll. Das scheint auch geklappt zu haben. Keine resets, kein locked 
Ausgang. Nur Eingangstakt und Ausgangstakt. Das hello world ist hier ein 
vga Signal.

Ich bekomme nun in meinem Projekt einen Ordner in meinem Projekt.

Files / pll50to65.qip / pll50to65.vhd


Ist der *.qip Ordner denn nun gewünscht oder gar notwendig. Wenn ich die 
Componente der pll in meine Top entity packe bekomme ich den Fehler

Error (10594): VHDL Selected Name error at test_pll.vhd(4): object "vhd" 
isn't declared in scope "pll50_65"


Wie muss ich vorgehen? habe ich mit USE work.pll50_65.all eine falsche 
use Anweisung?

Hülfe! und besten Dank

von user (Gast)


Lesenswert?

du hast mit dem MegaWizzard eine vhdl Datei erzeugt. du musst die Datei 
in einer anderen "Toplevel" instanziieren.

die Datei heist bei mit zB pll.vhd, dann kannst du sie mit dem hier 
einbinden:

   PLL : entity work.pll
   port map(
      areset   => '0',
      inclk0   => clk_i,
      c0       => clk,
      c1       => sdram_clk_o,
      locked   => rstn
   );

libraries brauchst du keine extra verwenden.

von Panko (Gast)


Lesenswert?

hi,

danke dir erst mal. Das ergibt einige Fehler die ich schön mal beim 
probieren hatte:

err 287127 Text Design File syntax error : Text Design File contains '(' 
where ASSERT, CONSTANT, DEFINE........ was expected.


was ist dazu zu sagen? Quartus Version ist Quartus II 64bit V 13.01 
Build 232


ist ja zum Haare raufen :-(

von dito (Gast)


Lesenswert?

Panko schrieb:
> err 287127 Text Design File syntax error : Text Design File contains '('
> where ASSERT, CONSTANT, DEFINE........ was expected.

Ich gehe mal davon aus, dass du deine pll50to65 instanziiert und nicht 
das Beispiel von user (Gast)?
Instanziiert du auch an der richtigen Stelle (also zwischen 
"architecture begin" und "end")?
Ansonsten zeig mal deinen Quellcode.


Panko schrieb:
> Ist der *.qip Ordner denn nun gewünscht oder gar notwendig

Die QIP brauchst du für die Synthese. Da stehen die benötigten Dateien 
für deine PLL drin.

von Panko (Gast)


Lesenswert?

Also ob ich das richtig gemacht habe, weiß ich natürlich endgültig auch 
nicht... ich mache mal ein Beispielprojekt und zeige es.

Den QIP Ordner sollte man also im Projekt anlegen wenn man mal eine 
Synthese laufen lassen will? Das ist mir bei Xilinx so (bewusst) nicht 
vorgekommen.

Beispiel in Arbeit.

von Panko (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt ein mini-Projekt gemacht was einfach einen Zähler aus der 
pll Takten soll.
Ich hoffe in dem Screenshot oben ist alles notwendige ersichtlich. Den 
Vorgang habe ich die Nacht -einige- Male probiert mit dem stets gleichen 
Ergebnis.

Ich hoffe jemand hat die zündende Idee.

von Harry (Gast)


Lesenswert?

Lass mal bei der Instanziierung das "entity work." weg.

von Panko (Gast)


Lesenswert?

Das Ergebnis ist das Selbe.
Auf der Altera Sete findet sich der obige Fehler ja.
http://altera.us/support/kdb/solutions/rd12172001_3242.html

Ich verstehe allerdings nicht, was mir das sagen soll. Mache ich nun 
etwas falsch?
"The error is caused because you are including inst.tdf files, which are 
created with the MegaWizard™-generated LPM files, in a Quartus II 
project. inst.tdf files are only for reference when instantianting LPM 
functions in a project. Remove these files in order to fix the error."

Ich sehe keine tdf Datei in meinem Ordner. Wo wäre da denn etwas zu 
löschen?

von Panko (Gast)


Lesenswert?

Ich pushe mich noch einmal in der Hoffnung auf den Funken:

Also ich habe den Nachmittag noch mal mit obigem Problem verbracht. In 
dem Installationsverzeichnis fand ich das Verzeichnis

altera/13.0sp1/quartus/libraries/megafunctions/

dort besagte altpll.tdk.

Die habe ich umbenannt und nun habe ich das Problem, dass ich den Fehler 
habe: 12006 Node instance "altpll_component" instantiates undefines 
entity "altpll"....


Das KANN doch nciht so schwer sein - wenn jemand noch eine Hilfe weiß, 
wäre ich sehr dankbar. Bin aber etwas von Altera enttäuscht. Das ist 
doch ziemlich unintuitiv. Von meinem jetzgen Standpunkt aus jedenfalls 
;-)

von Max (Gast)


Lesenswert?

Hallo.

Die component zwischen architecture & begin  braucht/darf man da nicht 
angeben. Das port mappen machst du dann nach dem begin, aber nach dem 
Namen von der PLL kommt noch:

architecture rtl of bla is

begin

myPLL_inst : entity work.pll_wizard(SYN) -- !!!!
  port map
  (
    clock_i=> clk,
                 out_clk=> int_clk
  );



end architecture rtl;

von Panko (Gast)


Lesenswert?

Danke dir - neues Projekt, gleicher Fehler 287127... vielleicht 
installiere ich Quartus mal neu?

von Panko (Gast)


Lesenswert?

..ich habe mir das file mal angesehen:



ab Zeile 489:
DEFINE USING_CLK3() = (USED(clk3) & PORT_CLK3 == DEFAULT_USAGE) # 
(PORT_CLK3 == PORT_USED);
DEFINE USING_CLK2() = (USED(clk2) & PORT_CLK2 == DEFAULT_USAGE) # 
(PORT_CLK2 == PORT_USED);
DEFINE USING_CLK1() = (USED(clk1) & PORT_CLK1 == DEFAULT_USAGE) # 
(PORT_CLK1 == PORT_USED);
DEFINE USING_CLK0() = (USED(clk0) & PORT_CLK0 == DEFAULT_USAGE) # 
(PORT_CLK0 == PORT_USED);
DEFINE USING_CLK_OUTPUT() = USING_CLK9() # USING_CLK8() # USING_CLK7() # 
USING_CLK6() # USING_CLK5() # USING_CLK4() # USING_CLK3() # USING_CLK2() 
# USING_CLK1() # USING_CLK0();


(
inclk[1..0]   : INPUT = GND;
fbin            : INPUT = VCC;
pllena        : INPUT = VCC;
clkswitch  : INPUT = GND;  areset  : INPUT = GND;
  pfd



Kann mal einer gucken ob vor der Klammer auf wirklich nichts stehen 
muss?


????
(
  inclk[1..0]

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.