WARNING:Route, Spartan3

OP #1559183
Lesenswert?
• ▲
▼
Hallo
Ich brauche für meine Schaltung ein Clock und ein dazue 
phasenverschobener Clock, welcher ich mit der DCM erzeuge. Um meine 
Schaltung zu clocken verwende ich den 'clk_Filt_100M' und der 
phasenverschobene clock heisst 'clk_OutReg_100M'. Letztere brauche ich 
um die Daten aus dem FPGA zu clocken. Doch der untenstehende Code 
erzeugt das Warning:

"WARNING:Route - CLK Net:clk_Filt_100M is being routed on general 
routing resources. Please consider using a dedicated
   clocking routing resource. For more information on clock routing 
resources, see the target architecture's user guide."

Ich habe dazu keine weiteren Hilfestellungen gefunden. Was mache ich 
falsch?

library IEEE;
Library UNISIM;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_SIGNED.ALL;
use UNISIM.vcomponents.all;
Library XilinxCoreLib;

entity DA_Interface is
  Port (
    CLOCK : in  STD_LOGIC;
    RST : in  STD_LOGIC;
    Button0 : in STD_LOGIC;
    Button2 : in STD_LOGIC;
    Led0 : out std_logic;
    BM : out STD_LOGIC;
    I_DATA_POLY5 : out std_logic_vector(13 downto 0);
    Q_DATA_POLY5 : out std_logic_vector(13 downto 0)
  );
end DA_Interface;

architecture Behavioral of DA_Interface is

COMPONENT dcm1
  PORT(
    CLKIN_IN : IN std_logic;
    CLKIN_IBUFG_OUT : OUT std_logic;
    CLK0_OUT : OUT std_logic;
    LOCKED_OUT : OUT std_logic
    );
  END COMPONENT;

signal clk_OutReg_100M : std_logic;
signal lock_dcm1 : std_logic;
signal clk_Filt_100M : std_logic;

begin

process(clk_Filt_100M)
begin
  if (clk_Filt_100M='1' and clk_Filt_100M'event) then
    if lock_dcm1 = '1' then
      Led0 <= Button0 and Button2;
      BM <= Button2;
    end if;
  end if;
end process;


  Inst_dcm1: dcm1 PORT MAP(
    CLKIN_IN => CLOCK,
    CLKIN_IBUFG_OUT => clk_Filt_100M,--has no delay
    CLK0_OUT => clk_OutReg_100M,--has some delay
    LOCKED_OUT => lock_dcm1
  );
end Behavioral;
(Firma: www.dossmatik.de) #1559215
Lesenswert?
• ▲
▼
Bei der Verwendung der DCM müssen spezielle Puffer mit verschaltet 
werden.
Es gibt keine direkte Verbindung von der DCM auf eine Clockleitung.

Dafür gibt ist ein Puffer notwendig.

Da gibt es bei Xilinx eine Literatur. User guide oder so ähnliches. Habe 
ich auch nicht gerade bei der Hand.
#1559253
Lesenswert?
• ▲
▼
Hast du den DCM mit dem Core-Generator erzeugt? Wenn ja, schau mal, ob 
für die Ausgänge wirklich die BUFG verwendet werden. Ist das alles an 
Code? Gibst du den Clock noch aus dem FPGA aus an einem Pin? Wenn ja, da 
musst du ein ODDR Register verwenden, damit die Clock-Leitungen für das 
Routing dahin benutzt werden können.
#1559328
Lesenswert?
• ▲
▼
Der CLK0 ist doch in Phase mit den Eingangs-Takt, solange du die festen 
Phasenverschiebungen in 90° Schnritten benutzt. Wenn du feinere Stufen 
brauchst, musst du wirklich auf den CLKIN_IBUFG_OUT benutzen, aber dann 
zwischen diesen Ausgang und dem CLK noch einen BUFG setzen.
2. aber schlechtere Möglichkeit ist, den DCM auf "Internal" Taktquelle 
zu stellen und den Takt von außen direkt auf deine Logik und auf den 
DCM. Das ist aber auch nicht sauber und schränkt die Performance des DCM 
ein.

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