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
ö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?
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
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.
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
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.
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
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.