Xilinx DCM Modul einbinden

#930003
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!
#930022
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.
#930128
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.
Gast #933117
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
(Firma: Keine) #933164
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;
#940327
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
#940737
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
#941422
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren