Hallo, folgendes, ich habe mir mit dem Clock_Divider Core drei Clocks erzeugt. Nun habe ich im Anschluss die Constraints in der ucf vorgenommen. Und zwar so: NET "SYSTEM_CLK_200MHZ_P" LOC = "K15"; NET"SYSTEM_CLK_200MHZ_N" LOC = "K16"; NET "CLK_FOR_ADC_20MHZ" LOC = "T9"; Leider bekomme ich folgende Fehlermeldung: WARNING:Place:1137 - This design is not guaranteed to be routable! This design contains a global buffer instance, <Component_1/clkout3_buf>, driving thenet, <CLK_FOR_ADC_20MHZ_OBUF>, that is driving the following (first 30) non-clock source pins.< PIN: CLK_FOR_ADC_20MHZ.O; >This is normally an ERROR but the CLOCK_DEDICATED_ROUTE constraint was applied on COMP.PIN <Component_1/clkout3_buf.O> allowing your design to continue. This constraint disables all clock placer rules related to the specified COMP.PIN. Ich denke es liegt daran, dass der PIN T9 nicht für einen Clock ausgelegt ist. Wie kann ich diese Fehlermeldung/ Warning nun umgehen. Wie definierte ich Clock PINs in der ucf File? Danke für eure Hilfe. Chris
Was ist "CLK_FOR_ADC_20MHZ" für ein Netz? Zeig doch mal den passenden Code...
Hallo, danke für die schnelle Antwort. Hier die Top_Level_Entity. Inklusive der Instanz des Dividers. entity Main is Port ( SAMPLING_DATA_FROM_ADC: in STD_LOGIC_VECTOR (15 downto 0); SQUARE_WAVE_OUTPUT: out STD_LOGIC; CLK_FOR_ADC_20MHZ : out std_logic; SYSTEM_CLK_200MHZ_P : in std_logic; SYSTEM_CLK_200MHZ_N : in std_logic ); end Averaging_Main; architecture Behavioral of Main is component CLK_Divider1 port ( CLK_IN1_P : in std_logic; CLK_IN1_N : in std_logic; CLK_OUT1 : out std_logic; CLK_OUT2 : out std_logic; CLK_OUT3 : out std_logic ); end component; begin Component_1: Clk_Divider1 port map (CLK_IN1_P => SYSTEM_CLK_200MHZ_P, CLK_IN1_N => SYSTEM_CLK_200MHZ_N, CLK_OUT1 => CLOCK_100MHZ, CLK_OUT2 => CLOCK_20MHZ, CLK_OUT3 => CLK_FOR_ADC_20MHZ); Ich möchte quasi den CLK_FOR_ADC_20MHZ auf den PIN T9 legen, wenn das geht.
Getreu dem Motto "Drill Deep": Was passiert im "CLK_Divider1"?
Ich teile den Quarz Systemtakt 200MHz einmal auf 100MHz (CLK_OUT1) und zweimal (CLK_OUT2 und CLK_OUT3) auf 20MHz runter, das ist dann auch mein CLK_FOR_ADC_20MHZ...
Für Clock-Ausgänge, die den FPGA verlassen sind bei Xilinx ODDR-FlipFlops strengstens empfohlen. Siehe UserGuide. Dann klappts auch, weil der CLK wirklich nur auf den Takt-Eingang von FlipFlops geht.
Danke, das wusste ich nicht. Wie würde das dann konkret aussehen? Ich lege an das ODER-FF einmal logisch '1' an und den Takt, hab ich das richtig verstanden?
Ach ja, jetzt habs ichs im USER Guide gesehen- ODDR2 ist mit einzubinden. Jetzt dämmerts, danke für den Tipp...
Chris schrieb: > Ich teile den Quarz Systemtakt 200MHz einmal auf 100MHz (CLK_OUT1) und > zweimal (CLK_OUT2 und CLK_OUT3) auf 20MHz runter Getreu dem Motto "Drill Deep": Wie teilst du den Takt herunter? Hoffentlich nicht einfach so mit einem Zähler... :-o Zum definierten Taktteilen gibt es Clock-Manager.
Ja klar, mach mir doch nicht umsonst Arbeit ;-)
Und wieso 2 mal 20 MHz? Haben die eine andere Phasenlage? Ansonsten reichts ja, die über 2 ODDR2 auszugeben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.