Forum: FPGA, VHDL & Co. Xilinx DCM Modul einbinden


von New I. (newie)


Lesenswert?

Hallo zusammen,

ich habe folgendes Problem:

Ich möchte mit DCM aus 50 Mhz Eingangstakt einen Takt von 40.68 Mhz 
erzeugen.

Vorgegangen bin ich nach ise 9.1 In-Depth Tutorial "Creating a DCM 
Module" ab Seite 39. Dort wird eine Stopuhr beschrieben.
Soweit sogut.

Nun habe ich eine Datei namens Frequenzteiler.xaw erzeugt.

Mir ist die weitere Vorgehensweise aber nicht klar. Aus dem Tutorail 
werde ich nicht schlau.
Wie muss die .xaw Datei ins Projekt eingebunden werden um das ganze 
lauffähig zu machen?

Vorab besten Dank!

von Jan M. (mueschel)


Lesenswert?

Die Dateiendung xaw habe ich noch nie gesehen. Ich kenne das Tutorial 
nicht, aber normalerweise nimmt man zum erzeugen einer dcm den core 
generator (Neue Datei -> IP Coregen). Der erstellt dann a) eine .xco, 
die man in das Projekt einbindet, b) eine .vho die die 
Komponenteninstanziierung beschreibt und c) jede Menge andere eher 
unwichtige Dateien.

Wenn man spaeter weiss, wie eine DCM auszusehen hat, kann man sich auch 
den Umweg ueber coregen sparen und direkt die Komponente instanziieren.

von New I. (newie)


Lesenswert?

Hallo Jan,

ich benutze das Programm ISE 9.1 von Xilinx, aber die von dir 
beschriebenen files werden nicht erzeugt.

Kannst du ein fertiges dcm.vhd file posten?

von Jan M. (mueschel)


Lesenswert?

Ich habe es gerade mal ausprobiert, da kommt tatsaechlich ein xaw-file 
raus. Einfach in das Projekt einfuegen, die Datei markieren, dann auf 
"View HDL Instantiation Template". Da hast du dann die component und die 
Instanziierung vorgegeben, die du einfach nur noch in deinen Code 
kopieren musst.

von New I. (newie)


Lesenswert?

Hmmm,

habe immer noch keine brauchbaren Ergebnisse.

von Jörg (Gast)


Lesenswert?

Erzeug einfach mal eine DCMClock wie folgt:

  1. Create New Source (Name: z.B. DCMClock)
     Typ IPCore,.. siehe z.B. ISE Tutorial für die
     Core Parameter

  2. Es wird im Source-Fenster ein DCMClock.xaw angezeigt

  3. auf DCMClock.xax clicken, dann im Process-Fenster
     "View HDL Instance.." anclicken

  4. Der Instance- und der Definition-Code wird angezeigt.

  5. Instance und Definition im eigenen Code einsetzen

  6. Clock verwenden ...

Der gesamte Vorgang wird aber glaube ich im ISE-Tutorial
ausführlich beschrieben.

Viel Glück

Jörg

von Frank S. (Firma: Keine) (franks)


Lesenswert?

Genau so wirds gemacht, bei mir sieht das dann so aus.



1
architecture Behavioral of main is
2
  signal reset:               STD_logic; 
3
  signal clock:               STD_logic;  --Global Clock
4
  signal CLK_FX:              STD_logic;  
5
  signal CLK180:              STD_logic; 
6
  signal CLK270:              STD_logic; 
7
  signal clk90:               STD_Logic;
8
  signal GND:                 STD_logic;
9
  signal unused1, unused2:    STD_Logic;
10
 
11
12
13
component DCM1 Port (
14
    CLKIN_IN:         in  STD_LOGIC;
15
    RST_IN:           in  STD_LOGIC;
16
    CLKFX_OUT:        out STD_LOGIC;
17
    CLK270_OUT:       out STD_LOgic;
18
    CLK90_OUT:        out STD_LOGIC;
19
    CLKIN_IBUFG_OUT:  out STD_LOGIC;
20
    CLK0_OUT:         out STD_LOGIC;
21
    LOCKED_OUT:       out STD_LOGIC);
22
end component;
23
24
25
begin
26
27
28
29
30
   DCM_CLK: DCM1 Port map(
31
    CLKIN_IN         => clk,
32
    RST_IN           => gnd,
33
    CLK0_OUT         => clock,
34
    CLK270_OUT       => clk270,
35
    CLK90_OUT        => clk90,
36
    CLKFX_OUT        => clk_FX, 
37
    CLKIN_IBUFG_OUT  => unused1,
38
    LOCKED_OUT       => unused2);   
39
end Behavioral;

von New I. (newie)


Lesenswert?

Frank & Jörg,
danke für euere Antwort!

Habe es vor zwei Tagen hinbekommen :)
Wenn man den Dreh raus hat ist es einfach zu händeln.
Bin halt ein newie auf dem Gebiet!

mfg

von Dirk (Gast)


Lesenswert?

Was man kann, ist immer ganz einfach.Irgendwie komisch.

von Rico Z. (ricoz)


Lesenswert?

Ich habe auch noch eine Frage bezüglich DCM-Modul. Das Erzeugen des .xaw 
Files habe ich hinbekommen, nun habe ich allerdings das Problem, dass 
ich beim klicken auf "View HDL Instance.." die Fehlermeldung bekomme, 
dass kein Code vorhanden ist.
ERROR:HDLCompilers:175 - Source file dcm1.v does not exist

Kann mir da jemand weiterhelfen?
Besten Dank
Gruss ricoz

von New I. (newie)


Lesenswert?

Also ich erzeuge den DCM-VHDL-Code indem ich ein neues Projekt für den 
Spartan3AN (hat 8 interne DCM) erstelle und dann in dieses eine "New 
Source..." einfüge. Dann auf IP(Coregen & Architecture Wizard) und FPGA 
Feautres --> Clocking --> Spartan 3E / 3A --> Single DCM und dann unter 
Eingang z.B: 50 MHz und unter Ausgang z.B: 200 MHz eingebe.

Jetzt sollte ein VHDL Code entstehen.

Welchen Baustein verwendest du?
Verfügt dieser über einen DCM?



mfg

von New I. (newie)


Lesenswert?

Kleiner Nachtrag.
Bei CLKFX (in dem General Setup oberhalb von CLKFX180) sollte das 
Häckchen gesetzt werden. Dies ist der Ausgang an welchem die gewünschte 
Frequenz zur verfügung steht.

mfg

von Rico Z. (ricoz)


Lesenswert?

Genau so mache ich es auch, doch ich habe keinen VHDL oder Verilog File. 
Muss ich irgendetwas noch zusätzlich einstellen damit so ein File 
erzeugt wird?
mfg
ricoz

von Jan M. (mueschel)


Lesenswert?

Markier mal das xaw-File in deinem Projekt und waehle dann Regenerate 
Core aus. Falls da ein Fehler auftritt, sollte er eigentlich unten in 
der Konsole stehen...

von Rico Z. (ricoz)


Lesenswert?

Hallo
Dies kann ich nicht anwählen. Ich habe noch ein .xco-File und dort geht 
alles einwandfrei. Ich habe jetzt bei einem anderen PC das gleiche 
ausprobiert und dort ist alles perfekt gegangen. Das Verilog-File habe 
ich auf den anderen Rechner generiert und hierher kopiert, so 
funktioniert wieder alles. Wenn ich allerdings wieder alles lösche kann 
ich den Core immer noch nicht generieren.
Wenn ihr eine Lösung habt wäre ich dennoch dankbar, es ist aber nicht so 
dringend. Wenn ich rauskriege woran es liegt, werde ich es hier posten.

Gruss
ricoz

von Jan M. (mueschel)


Lesenswert?

Seltsam, aber das klingt nach irgendeinem Problem beim Schreiben der 
Dateien... Sind Leerzeichen oder Umlaute im Pfad enthalten?

von Rico Z. (ricoz)


Lesenswert?

Ja genau, dort liegt der hacken. Nein, ich habe keine umlaute im Pfad 
nur "_" und diese sollten eigentlich problemlos sein. Das Symbol sieht 
auch komisch aus. Er sieht nicht gleich aus wie ein anderer Core-File.

von Rico Z. (ricoz)


Lesenswert?

Jetzt funktioniertes wieder. Ich habe die Software neu installiert und 
das ganze läuft wieder. Eine sehr komische Geschichte!!! Danke für eure 
freundliche und prompte Hilfe.

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.