Forum: FPGA, VHDL & Co. DCM einbinden? Error:Xst:2585


von Ramon F. (tronixx)


Lesenswert?

Aus dem EINTRAG Beitrag "Spartan3 DCM geht nicht"


Hallo zusammen,

ich hänge an einem ähnlochen problem um mein DCM einzubinden.
Hab mir mit dem IP core ein DCM nach wünschen erzeugt

50 MHz rein  ->   50 und 18 Mhz raus.

die HDL Instantiation Template hab ich dann wie folgt in ein neues VHDL
Modul eingebunden und daraus ein Schematic Symbol erstellt und mit in
meine top level Schematic eingebunden. Simulation klappt auch
einwandfrei soweit. Nur bei der Synthese meckert er folgendes:
Was mach ich denn hier falsch. Suche im Netz hat mich nicht gerade
weitergebracht

------------------------------------------------------------------------
-
ERROR:Xst:2585 - Port <CLK0> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLK180> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLK270> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLK2X> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLK2X180> of instance <DCM_INST> does not exist
in definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLK90> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLKDV> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLKFB> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLKFX> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLKFX180> of instance <DCM_INST> does not exist
in definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <CLKIN> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <DSSEN> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <LOCKED> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <PSCLK> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <PSDONE> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <PSEN> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <PSINCDEC> of instance <DCM_INST> does not exist
in definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <RST> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
ERROR:Xst:2585 - Port <STATUS> of instance <DCM_INST> does not exist in
definition <DCM>. Please compare the definition of block <DCM> to its
component declaration to detect the mismatch.
------------------------------------------------------------------------
-



1
library ieee;
2
use ieee.std_logic_1164.ALL;
3
use ieee.numeric_std.ALL;
4
5
library UNISIM;
6
use UNISIM.Vcomponents.ALL;
7
8
9
10
entity DCM_x is
11
    Port ( clk_50 : in  STD_LOGIC;
12
           clk18 : out  STD_LOGIC;
13
        Reset         : in    std_logic; 
14
        CLK0        : out   std_logic); 
15
16
end DCM_x;
17
18
architecture Behavioral of DCM_x is
19
20
COMPONENT DCM_test
21
  PORT(
22
    CLKIN_IN : IN std_logic;
23
    RST_IN : IN std_logic;          
24
    CLKFX_OUT : OUT std_logic;
25
    CLKIN_IBUFG_OUT : OUT std_logic;
26
    CLK0_OUT : OUT std_logic;
27
    LOCKED_OUT : OUT std_logic
28
    );
29
  END COMPONENT;
30
  
31
begin
32
33
Inst_DCM_test: DCM_test PORT MAP(
34
    CLKIN_IN => clk_50,
35
    RST_IN => Reset,
36
    CLKFX_OUT => clk18,
37
    CLKIN_IBUFG_OUT => open ,
38
    CLK0_OUT => CLK0 ,
39
    LOCKED_OUT => open 
40
  );
41
42
43
end Behavioral;




Lothar Miller schriebt:
>Du gibst die Zielarchitektur und die ISE-Version nicht an!

Das musst du mir jetz bitte etwas genauer erklären. Wo muss ich die denn 
angeben?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ramon F. schrieb:
> Das musst du mir jetz bitte etwas genauer erklären. Wo muss ich die denn
> angeben?
Hier. Kann ja sein, dass du einen Artix verwendest, der einen ganz 
anderen DCM hat als der Spartan 3. Und dass deshalb die Ports nicht 
passen...

von Ramon F. (tronixx)


Angehängte Dateien:

Lesenswert?

>Hier. Kann ja sein, dass du einen Artix verwendest, der einen ganz
>anderen DCM hat als der Spartan 3. Und dass deshalb die Ports nicht
>passen...

also gemäß Abb. 1-2 hab ich das ganze erstellt!

nach dem Erstellen hab ich einfach ein neues VHDL_modul : DCM_x 
erstellt und die Komponente DCM_test eingebunden.
Anschließend vom DCM_x ein Symbol erstellt und in meiner Main.sch 
eingefügt. Simulation passt einwandfrei. Nur bei der Synthese meckert 
er.
Hab vorher noch nie mit dem IP Core gearbeitet bzw ihn mit eingebunden. 
hab ich iwas noch vergessen ? Gibts noch ne andere Möglichkeit?

Angaben zu Board:  Spartan 3 s200 von Digilent!

MfG

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ramon F. schrieb:
> Hab vorher noch nie mit dem IP Core gearbeitet bzw ihn mit eingebunden.
Mein Beispiel hat auch gar nichts mit einem Core zu tun. Ich habe 
einfach die Komponente DCM manuell instatiiert. So etwa wie im 
Beitrag "Re: Spartan3 DCM geht nicht"
Hier gibts auch was zum Thema:
http://forums.xilinx.com/t5/Archived-ISE-issues/Instantiating-DCM-using-Language-Templates-in-ISE-9-2i/td-p/16807


BTW:
Ramon F. schrieb:
> Aus dem EINTRAG [ [Spartan3 DCM geht nicht]]
Mit eckigen Klammern wird auf einen Artikel verwiesen. Einen Link auf 
einen anderen Thread bekommst du einfach durch das Herkopieren der URL 
aus dem Browser:
https: //www.mikrocontroller.net/topic/196719#1927578
--> ohne Leerzeichen:
Beitrag "Re: Spartan3 DCM geht nicht"

von Ramon F. (tronixx)


Lesenswert?

Hallo,

also erst ma vielen Danke Lothar für deine kommis.
Hab mir jetz ohne den core folgendes DCM erstellt:
läuft einwandfrei, synthese klappt, Simulation klappt.
Und nun, es wär ja auch zu schön um wahr zu sein meckert die 
Implementierung beim Translate. Ich dreh hier gl echt durch. Was hab ich 
denn nun vergessen?
1
ERROR:NgdBuild:604 - logical block 'XLXI_7/DCM_SP_inst' with type 'DCM_SP' could
2
   not be resolved. A pin name misspelling can cause this, a missing edif or ngc
3
   file, case mismatch between the block name and the edif or ngc file name, or
4
   the misspelling of a type name. Symbol 'DCM_SP' is not supported in target
5
   'spartan3'.

+
1
WARNING:NgdBuild:486 - Attribute "CLKDV_DIVIDE" is not allowed on symbol
2
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
3
WARNING:NgdBuild:486 - Attribute "CLKFX_DIVIDE" is not allowed on symbol
4
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
5
WARNING:NgdBuild:486 - Attribute "CLKFX_MULTIPLY" is not allowed on symbol
6
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
7
WARNING:NgdBuild:486 - Attribute "CLKIN_DIVIDE_BY_2" is not allowed on symbol
8
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
9
WARNING:NgdBuild:486 - Attribute "CLKIN_PERIOD" is not allowed on symbol
10
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
11
WARNING:NgdBuild:486 - Attribute "CLKOUT_PHASE_SHIFT" is not allowed on symbol
12
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
13
WARNING:NgdBuild:486 - Attribute "CLK_FEEDBACK" is not allowed on symbol
14
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
15
WARNING:NgdBuild:486 - Attribute "DESKEW_ADJUST" is not allowed on symbol
16
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
17
WARNING:NgdBuild:486 - Attribute "DFS_FREQUENCY_MODE" is not allowed on symbol
18
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
19
WARNING:NgdBuild:486 - Attribute "DLL_FREQUENCY_MODE" is not allowed on symbol
20
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
21
WARNING:NgdBuild:486 - Attribute "DSS_MODE" is not allowed on symbol
22
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
23
WARNING:NgdBuild:486 - Attribute "DUTY_CYCLE_CORRECTION" is not allowed on
24
   symbol "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be
25
   ignored.
26
WARNING:NgdBuild:486 - Attribute "FACTORY_JF" is not allowed on symbol
27
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
28
WARNING:NgdBuild:486 - Attribute "PHASE_SHIFT" is not allowed on symbol
29
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.
30
WARNING:NgdBuild:486 - Attribute "STARTUP_WAIT" is not allowed on symbol
31
   "XLXI_7/DCM_SP_inst" of type "DCM_SP".  This attribute will be ignored.

1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
use IEEE.STD_LOGIC_ARITH.ALL;
4
use IEEE.STD_LOGIC_UNSIGNED.ALL;
5
6
---- Uncomment the following library declaration if instantiating
7
---- any Xilinx primitives in this code.
8
library UNISIM;
9
use UNISIM.VComponents.all;
10
11
entity dcm_test2 is
12
13
 port ( 
14
     CLKIN       :in std_logic;   -- Clock input (from IBUFG, BUFG or DCM)
15
      RST        :in std_logic;
16
      CLK0       :out std_logic;     -- 0 degree DCM CLK ouptput
17
     -- CLK180      : out std_logic;-- 180 degree DCM CLK output
18
     -- CLK270      : out std_logic; -- 270 degree DCM CLK output
19
     -- CLK2X      : out std_logic;   -- 2X DCM CLK output
20
     -- CLK2X180    : out std_logic; -- 2X, 180 degree DCM CLK out
21
     -- CLK90      : out std_logic;   -- 90 degree DCM CLK output
22
     -- CLKDV      : out std_logic;   -- Divided DCM CLK out (CLKDV_DIVIDE)
23
      CLKFX      : out std_logic);   -- DCM CLK synthesis out (M/D)
24
     -- CLKFX180    : out std_logic); -- 180 degree CLK synthesis out
25
             -- DCM asynchronous reset input
26
end dcm_test2;
27
28
architecture Behavioral of dcm_test2 is
29
30
signal  CLKFB,GND_BIT  : std_logic;
31
signal LOCKED   :  std_logic; -- DCM LOCK status output
32
 
33
begin
34
35
GND_BIT <= '0';
36
37
DCM_SP_inst : DCM_SP
38
   generic map (
39
      CLKDV_DIVIDE => 2.0, --  Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
40
                           --     7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
41
      CLKFX_DIVIDE => 25,   --  Can be any interger from 1 to 32
42
      CLKFX_MULTIPLY => 9, --  Can be any integer from 1 to 32
43
      CLKIN_DIVIDE_BY_2 => FALSE, --  TRUE/FALSE to enable CLKIN divide by two feature
44
      CLKIN_PERIOD => 0.0, --  Specify period of input clock
45
      CLKOUT_PHASE_SHIFT => "NONE", --  Specify phase shift of "NONE", "FIXED" or "VARIABLE" 
46
      CLK_FEEDBACK => "1X",         --  Specify clock feedback of "NONE", "1X" or "2X" 
47
      DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", -- "SOURCE_SYNCHRONOUS", "SYSTEM_SYNCHRONOUS" or
48
                                             --     an integer from 0 to 15
49
      DLL_FREQUENCY_MODE => "LOW",     -- "HIGH" or "LOW" frequency mode for DLL
50
      DUTY_CYCLE_CORRECTION => TRUE, --  Duty cycle correction, TRUE or FALSE
51
      PHASE_SHIFT => 0,        --  Amount of fixed phase shift from -255 to 255
52
      STARTUP_WAIT => FALSE) --  Delay configuration DONE until DCM_SP LOCK, TRUE/FALSE
53
   port map (
54
      CLK0 => CLK0,     -- 0 degree DCM CLK ouptput
55
      CLK180 => open, -- 180 degree DCM CLK output
56
      CLK270 => open, -- 270 degree DCM CLK output
57
      CLK2X => open,   -- 2X DCM CLK output
58
      CLK2X180 => open, -- 2X, 180 degree DCM CLK out
59
      CLK90 => open,   -- 90 degree DCM CLK output
60
      CLKDV => open,   -- Divided DCM CLK out (CLKDV_DIVIDE)
61
      CLKFX => CLKFX,   -- DCM CLK synthesis out (M/D)
62
      CLKFX180 => open, -- 180 degree CLK synthesis out
63
      LOCKED => open, -- DCM LOCK status output
64
      PSDONE => open, -- Dynamic phase adjust done output
65
      STATUS => open, -- 8-bit DCM status bits output
66
      CLKFB => open,   -- DCM clock feedback
67
      CLKIN => CLKIN,   -- Clock input (from IBUFG, BUFG or DCM)
68
      PSCLK => GND_BIT,   -- Dynamic phase adjust clock input
69
      PSEN => GND_BIT,     -- Dynamic phase adjust enable input
70
      PSINCDEC => GND_BIT, -- Dynamic phase adjust increment/decrement
71
      RST => RST        -- DCM asynchronous reset input
72
   );
73
74
end Behavioral;

von Duke Scarring (Gast)


Lesenswert?

Im Spartan 3 heißt das Ding nur DCM. Schau Dich mal im UG607 um...
1
Library UNISIM;
2
use UNISIM.vcomponents.all;
3
4
-- DCM: Digital Clock Manager Circuit
5
-- Spartan-3
6
-- Xilinx HDL Libraries Guide, version 13.2
7
8
DCM_inst : DCM
9
generic map (
10
  CLKDV_DIVIDE => 2.0, -- Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
11
  -- 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
12
  CLKFX_DIVIDE => 1, -- Can be any interger from 1 to 32
13
  CLKFX_MULTIPLY => 4, -- Can be any integer from 1 to 32
14
  CLKIN_DIVIDE_BY_2 => FALSE, -- TRUE/FALSE to enable CLKIN divide by two feature
15
  CLKIN_PERIOD => 0.0, -- Specify period of input clock
16
  CLKOUT_PHASE_SHIFT => "NONE", -- Specify phase shift of NONE, FIXED or VARIABLE
17
  CLK_FEEDBACK => "1X", -- Specify clock feedback of NONE, 1X or 2X
18
  DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", -- SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
19
  -- an integer from 0 to 15
20
  DFS_FREQUENCY_MODE => "LOW", -- HIGH or LOW frequency mode for frequency synthesis
21
  DLL_FREQUENCY_MODE => "LOW", -- HIGH or LOW frequency mode for DLL
22
  DUTY_CYCLE_CORRECTION => TRUE, -- Duty cycle correction, TRUE or FALSE
23
  FACTORY_JF => X"C080", -- FACTORY JF Values
24
  PHASE_SHIFT => 0, -- Amount of fixed phase shift from -255 to 255
25
  SIM_MODE => "SAFE", -- Simulation: "SAFE" vs "FAST", see "Synthesis and Simulation
26
  -- Design Guide" for details
27
  STARTUP_WAIT => FALSE) -- Delay configuration DONE until DCM LOCK, TRUE/FALSE
28
port map (
29
  CLK0 => CLK0, -- 0 degree DCM CLK ouptput
30
  CLK180 => CLK180, -- 180 degree DCM CLK output
31
  CLK270 => CLK270, -- 270 degree DCM CLK output
32
  CLK2X => CLK2X, -- 2X DCM CLK output
33
  CLK2X180 => CLK2X180, -- 2X, 180 degree DCM CLK out
34
  CLK90 => CLK90, -- 90 degree DCM CLK output
35
  CLKDV => CLKDV, -- Divided DCM CLK out (CLKDV_DIVIDE)
36
  CLKFX => CLKFX, -- DCM CLK synthesis out (M/D)
37
  CLKFX180 => CLKFX180, -- 180 degree CLK synthesis out
38
  LOCKED => LOCKED, -- DCM LOCK status output
39
  PSDONE => PSDONE, -- Dynamic phase adjust done output
40
  STATUS => STATUS, -- 8-bit DCM status bits output
41
  CLKFB => CLKFB, -- DCM clock feedback
42
  CLKIN => CLKIN, -- Clock input (from IBUFG, BUFG or DCM)
43
  PSCLK => PSCLK, -- Dynamic phase adjust clock input
44
  PSEN => PSEN, -- Dynamic phase adjust enable input
45
  PSINCDEC => PSINCDEC, -- Dynamic phase adjust increment/decrement
46
  RST => RST -- DCM asynchronous reset input
47
);
48
-- End of DCM_inst instantiation

von Duke Scarring (Gast)


Lesenswert?

P.S.: Spartan 3 != Spartan 3E != Spartan 3A

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ich schrieb:
>    DCM_INST : DCM
Ramon F. schrieb:
> DCM_SP_inst : DCM_SP
Diehe dazu das da:
http://forums.xilinx.com/t5/Spartan-Family-FPGAs/Difference-in-DCM-and-DCM-SP/td-p/38519

Fazit: nicht einfach irgendwas herkopieren und dann nebenbei auch noch 
Teile davon umbenennen...

Und: Datenblatt/Userguide lesen...

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.