Hallo, ich benutze ein SPARTAN SP 601 system, welches éin 200 MHZ sys clock besitzt. Ich möchte ein Signal dem 200 MHz zuteilen, aber in der ucf komm ich nicht so recht, in der annleitung steht: NET "SYSCLK_N" LOC = "K16"; NET "SYSCLK_P" LOC = "K15"; Wenn mein Signal MASTERCLK heist, wie sieht die ucf aus? So : ? NET "MASTERCLK_N" LOC = "K16"; NET "MASTERCLK_P" LOC = "K15"; ? Gruss DANKE
Wenn die beiden Signale im Toplevel auch so heißen, dann ja. Du musst ja mit beiden Signalen bis zu einem IBUFGDS oder direkt zu einem DCM gehen und die da anschließen.
Ich hab aber nur ein Signal das ich mit 200 Mhz betereiben möchte. Aber diese 200 MHz gibt es nur als diff. Signal.... wie mach ich es dann? ALso nur ein MASTERCLK....?
Dann musst du einen IBUFGDS instanziieren um das differenzielle Signal erst mal in den Chip zu bekommen.
>Dann musst du einen IBUFGDS instanziieren um das differenzielle Signal
erst mal in den Chip zu bekommen.
Hm... und wie mach ich das ?
Gruß
Schau mal in dein ISE: Edit -> Language Templates -> VHDL -> Device Primitive Instantiation -> Spartan-6 -> I/O Components -> Input -> Differential Global Clock Da hast du rechts dann den VHDL Code und sogar mit Erklärung. Alternativ steht das auch im Datenblatt/User Guide.
Ok, danke für die antwort. ICh hab das so gemacht
1 | Library UNISIM; |
2 | use UNISIM.vcomponents.all; |
3 | |
4 | |
5 | library IEEE; |
6 | use IEEE.STD_LOGIC_1164.ALL; |
7 | use IEEE.STD_LOGIC_ARITH.ALL; |
8 | use IEEE.STD_LOGIC_UNSIGNED.ALL; |
9 | |
10 | ---- Uncomment the following library declaration if instantiating
|
11 | ---- any Xilinx primitives in this code.
|
12 | --library UNISIM;
|
13 | --use UNISIM.VComponents.all;
|
14 | |
15 | entity Test is |
16 | Port ( CLKIN : in STD_LOGIC; |
17 | reset : in std_logic; |
18 | CLKOUT1: out std_logic; |
19 | CLKOUT2 : out STD_LOGIC); |
20 | end Test; |
21 | |
22 | |
23 | architecture Behavioral of Test is |
24 | |
25 | signal cnt: integer range 0 to 1 :=0; |
26 | |
27 | begin
|
28 | |
29 | |
30 | IBUFGDS_inst : IBUFGDS |
31 | generic map ( |
32 | DIFF_TERM => FALSE, -- Differential Termination |
33 | IOSTANDARD => "DEFAULT") |
34 | port map ( |
35 | O => open, -- Clock buffer output |
36 | I => CLKIN, -- Diff_p clock buffer input (connect directly to top-level port) |
37 | IB => CLKIN -- Diff_n clock buffer input (connect directly to top-level port) |
38 | );
|
So ganz klappt das nicht, bin aber auch anfänger. Kann mir jemand sagen wo ich den Fehler mache? und wie muss ide ucf. ausschauen? Gruß Danke
Du kannst nicht den selben Takt auf den p und den n eingang geben. Das müssen 2 zueinandergehörende, aber unterschiedliche Pins sein. Und ganz am anfang schreibst du doch was vom MASTERCLK_N und MASTERCLK_P... Also eher so:
1 | entity Test is |
2 | Port ( MASTERCLK_P : in STD_LOGIC; |
3 | MASTERCLK_N : in STD_LOGIC; |
4 | reset : in std_logic; |
5 | CLKOUT: out std_logic); |
6 | end Test; |
7 | |
8 | |
9 | IBUFGDS_inst : IBUFGDS |
10 | generic map ( |
11 | DIFF_TERM => FALSE, -- Differential Termination |
12 | IOSTANDARD => "DEFAULT") |
13 | port map ( |
14 | O => CLKOUT, -- Clock buffer output, das ist jetzt der FPGA-interne Takt |
15 | I => MASTERCLK_P, -- Diff_p clock buffer input (connect directly to top-level port) |
16 | IB => MASTERCLK_N -- Diff_n clock buffer input (connect directly to top-level port) |
17 | );
|
Die andere Richtung wäre ein OBUFDS...
Hi, danke aber eigentlich will kein _p und _N ich möchte die 200 MHZ auf ein Signal geben, diese sind aber nur Differentiel verfügbar, also wie sag ich den bescheid das ich dies nur auf Eingang beziehen will? Danke
Diferentielle Signale haben nun mal eine p und eine n Strippe (oder auch eine + und eine - oder eine h und eine l). Du willst also aus einem differentiellen LVDS-Signal ein "normales" Signal machen? Fall ja:
1 | entity Test is |
2 | Port ( MASTERCLK_P : in STD_LOGIC; |
3 | MASTERCLK_N : in STD_LOGIC; |
4 | reset : in std_logic; |
5 | CLKOUT: out std_logic); |
6 | end Test; |
7 | |
8 | IBUFDS_inst : IBUFDS |
9 | generic map ( |
10 | DIFF_TERM => FALSE, -- Differential Termination |
11 | IOSTANDARD => "DEFAULT") |
12 | port map ( |
13 | O => CLKOUT, -- Clock buffer output, das ist jetzt der FPGA-interne Takt |
14 | I => MASTERCLK_P, -- Diff_p buffer input (connect directly to top-level port) |
15 | IB => MASTERCLK_N -- Diff_n buffer input (connect directly to top-level port) |
16 | );
|
Ja, wo isser denn, der Unterschied? Falls nein: Zeichne einfach mal ein Bild, damit man sich was drauf Abbilden kann.
Gast schrieb: > Hi, > > danke aber eigentlich will kein _p und _N ich möchte die 200 MHZ auf ein > Signal geben, diese sind aber nur Differentiel verfügbar, also wie sag > ich den bescheid das ich dies nur auf Eingang beziehen will? Das geht nur mit dem IBUFGDS, wie schon gesagt wurde. Die beiden differenziellen Pins setzt der in ein normales Clock Signal um. Du musst über _p und _n gehen, wenn dein Takt differenziell am Chip anliegt.
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.