Forum: FPGA, VHDL & Co. clock signal ausgeben


von Mark Gregory (Gast)


Lesenswert?

Hallo,
ich habe gerade mit meiner Studienarbeit angefangen, und dabei geht es
anfangs auch um eine FPGA-Programmierung.
Uns zwar ist das erste Ziel, das Clock-Signal vom FPGA an beliebige
Ausgänge des Bords zu legen. Wie ich allgemein Ports für die Signale
zuweise ist nicht das Problem; vielmehr wie ich mir die Clock einmal
anzeigen lassen kann am Oszi.
Ist dies nur über Zähler möglich?
Hab auch schon probiert das Clock-Signal mittels einer einfachen
UND-Verknüpfung mit einem HIGH zu verknüpfen.
Dann meckert aber der Compiler!

Benutze das Xilinx Spartan2 board mit einem 66MHz-Oszillator.

Vielen Dank für eure Hilfe,
Gruß Mark

von Matthias (Gast)


Lesenswert?

öhm, wo ist denn das genaue Problem?

Der VHDL Code könnte einfacher nicht sein:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

ENTITY BLABLA IS
  PORT(
    OUTCLK : IN STD_LOGIC;
    INCLK : IN STD_LOGIC;
  );
END BLABLA;

ARCHITECTURE BLABLA_arch OF BLABLA IS
BEGIN
  OUTCLK <= INCLK;
END BLABLA_arch;


Und dann noch mit Assign Package Pins den INCLK an den Pin mit dem
66Mhz Oszillator und OUTCLK an den Pin wo man das Signal hin haben will
zuweisen.

Oszi an den ausgang anschließen und hinschauen, fertig. oder übersehe
ich was?

von Mark Gregory (Gast)


Lesenswert?

Hallo Matthias,
vielen Dank für deine Antwort. Ich habe eigentlich die "einfachen"
Sachen schon alle ausprobiert. Hab allerdings die Fehlermeldung auch
nicht mehr ganz im Kopf. Morgen schaue ich mir das dann mal vor Ort
an.
P.S. bei OUTCLK : IN STD_LOGIC; meinst du aber OUT STD_LOGIC, oder?
Gruß Mark

von Matthias (Gast)


Lesenswert?

ja, natürlich
hatte as nur gerade n bissl per copy & paste zusammengebaut, das heißt
das Ding ist nicht fehlerfrei. Aber eigentlich sollte es gehen.
Es kann höchstens sein, dass er ne Warnung bringt, die sagt das das
Routing eines Clock Nets auf einen nicht Clock Ausgang Probleme bringen
könnte. Aber Fehler dürfte eigentlich nicht sein.

von Mark Gregory (Gast)


Lesenswert?

Hallo Matthias,
ich bin´s nochmal.
Hab das gerade mal getestet und da kam dann auch promt wieder folgende
Fehlermeldung:


ERROR:Pack:1107 - Unable to combine the following symbols into a single
IOB
   component:
     PAD symbol "INCLK" (Pad Signal = INCLK)
     BUF symbol "INCLK_IBUF" (Output Signal = OUTCLK_OBUF)
   Each of the following constraints specifies an illegal physical site
for a
   component of type IOB:
     Symbol "INCLK" (LOC=P80)
   Please correct the constraints accordingly.


Vielleicht kannst du was damit anfangen?
Gruß Mark

von T.M. (Gast)


Lesenswert?

Du musst im ucf-File für den Takt einen der Clock-IOs mittels
LOC-Constraint festlegen. Ich nehme mal an, dass die Fehlermeldung
daran liegt. Zu jedem Clock-Eingang gehört ein sogenannter IBUF, der
das Clocksignal auf den FPGA-internen Clocktree legt. Ich kenne die
Fehlermeldung zumindestens nur in dem Zusammenhang.

von Jürgen Schuhmacher (Gast)


Lesenswert?

Diese CLK ist aber nicht etwas die CLK des FPGA, oder ?

von Mark Gregory (Gast)


Lesenswert?

Hallo Jürgen,
doch doch, ich möchte einfach das 66MHz-Signal vom Bord an mehrere
Ausgänge des Bords legen. Ich kann mir ja zum Beispiel über einen
2-bit-Zähler die doppelte clock anzeigen lassen. (if clk='1' and
clk'event then ...).
Hast du eine einfachere Lösung ,wie ich mir die clock vom bord direkt
ausgeben lassen kann?
Gruß Mark

von Dirk (Gast)


Lesenswert?

Hi,

direkt von der DCM  DLL  PLL Stufe.

Gruß,
Dirk

von Jürgen Schuhmacher (Gast)


Lesenswert?

Ein direktes Herausführen des zentralen Clocks ist signaltischnisch
problematisch und geht IMO bei Xilinx z.B. garnicht so ohne weiteres.
Der Clock muss auf eine DDR-Zelle, deren Datenkanal für CLK=hi auf
"1" gesetzt wurde - resp. Datenkanal für Lo auf "0". Die Zelle wird
dann direkt in die IOs geschoben und treibt eine saubere clk heraus.
Wenn die interen CLK über eine PLL geführt wurde, dann hast Du auch ein
sauberes 50:50.

von Mark Gregory (Gast)


Lesenswert?

Schonmal vielen Dank für die Hinweise!
Das Bord hat letzte Woche seinen Geist aufgegeben. Wahrscheinlich ein
Kurzer im Chip. Das Teil hat ziemlich viel Strom gezogen!
Jetzt kommt ein Spartan-3E Starter Kit. Dann werde ich mich mal an das
Clock-Problem setzen.
Gruß Mark

von High_speed (Gast)


Lesenswert?

Dann war es wohl ein Latchup.
Durch eine elektrostatische Entladung hast du wahrscheinlich einen
herstellungsbedingten parasitären Thyhristor gezündet.
Wenn man dann ohne Strombegrenzung arbeitet, war es das.

Oder hat ein Ausgang gegen GND oder VDD getrieben?

Holger

von Jürgen Schuhmacher (Gast)


Lesenswert?

Im ersten Fall "erholen" sich einige Schaltungen nach einen gewissen
Zeit der Stronmlosigkeit manchmal wieder. Hatte ich schon desöfteren.
Wenn allerdings ein großer Strom floss, hört es sich nicht gut an.

Ausgang falsch getrieben, ruiniert meist nur die IO-Zelle.

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.