Moin, jetzt habe ich endlich mal vor mit einer HDL anzufangen. Das Spartan-3AN Board kann ich nehmen, oder? Die Beiträge dazu sehen ja ganz gut aus. Aber meine Fragen sind: Kann man einen FPGA ohne Takt betreiben, also praktisch, dass man eine (komplexe) Logik programmiert und das Ergebnis nach der Laufzeit am Ausgang anliegt. Also programmiert man zum Beispiel nur ein Oder-Gatter und verbindet Pin1 und Pin2 (nenne ich einfach mal so) mit den Eingängen des Gatters und Pin3 mit dem Ausgangssignal und hat dann dann nach wenigen Nanosekunden (Laufzeit) am Pin3 das Ergebnis von Pin1 OR Pin2. Zweite Frage: Ist es möglich mit normalen Mitteln einen hohen internet Takt zu erzeugen, indem man das Ausgangssignal eines Negierers (NOT) auf den Eingang zurückführt? Der müsste dann ja sehr schnell, entsprechend der Laufzeit, schwingen. Oder wird sowas durch die Syntheseprogramme oder die Architektur verhindert. Es geht mir nicht darum, ob es sinnvoll ist, sondern nur darum, mehr theoretisch über den Aufbau und die Funktion eines FPGAs zu lernen.
Hallo, Ja, Spartan-3AN ist ok für den Einstieg. Für's Lernen von einer HDL (Veriloh, VHDL) brauchst Du mitunter nicht unbedingt ein FPGA Board, sondern ein gutes Buch. Kombinatorische Logik geht natürlich auch mit einem FPGA. Ja, Du kannst einen Laufzeitoszillator in einem FPGA bauen. Aber warum? Murkser
>Für's Lernen von einer HDL (Veriloh, VHDL) brauchst Du mitunter >nicht unbedingt ein FPGA Board, sondern ein gutes Buch. Ich habe schon ein bisschen gelernt, aber ich möchte jetzt auch mal was Richtiges machen. >Aber warum? Wie ich geschrieben habe, geht es mir nur theoretisch darum. Der Takt wäre wahrscheinlich auch zu unsauber und zu schnell. Aber ich habe mich gefragt, ob es da von der Soft- oder Hardware Beschränkungen gibt, die sowas vermeiden.
Frage 1: Ja, völlig problemlos. Allerdings wird sich der FPGA etwas unterfordert fühlen :-) Frage 2: Kann man, wie der Murkser schon bemerkte, aber warum? Du wirst mit Sicherheit viele Warnungen beim Compilieren kriegen, eventuell auch Fehler. Die Hardware kann das, die Software wirds wahrscheinlich zulassen. Schau dir lieber mal die PLLs an, die auf dem Chip drauf sind. Bei Xilinx heissen die glaube ich DCM (Digital Clock Module) und haben die Funktion, einen von aussen zugeführten Takt entsprechend aufzubereiten, eventuell zu multiplizieren etc und auf die richtigen Taktleitungen zu verteilen. Alles andere mag für ganz spezielle Anwendungen sinnvoll sein, ist aber in 99,9% der Fälle Murks.
>Allerdings wird sich der FPGA etwas unterfordert fühlen Ja, das Oder war nur ein Beispiel. Man kann sicher auch einen ganzen FPGA mit Logik vollpacken. Wofür weiß ich natürlich nicht ;-) >Alles andere mag für ganz spezielle Anwendungen sinnvoll sein, ist aber >in 99,9% der Fälle Murks. Wie gesagt, theoretisch. Ich denke mal, dass die Laufzeit eines Negierers schon ziemlich kurz ist. Damit wird der Takt für (fast) alle anderen Module zu hoch sein. Vielleicht könnte man noch einen Taktteiler dahintersetzen. Wenn (falls) ich das Board bald mal habe, werde ich es ausprobieren und dann wieder vergessen :-)
Dussel schrieb: > Übrigens danke für die Antworten. Ich würde an Deiner Stelle auch mit einem guten Buch anfangen :-)
@ Dussel (Gast) >Es geht mir nicht darum, ob es sinnvoll ist, sondern nur darum, mehr >theoretisch über den Aufbau und die Funktion eines FPGAs zu lernen. Warum glaubst du, mit solchen praxisfremden Problemstellungen was über FPGAs zu lernen? MFG Falk
>Ich würde an Deiner Stelle auch mit einem guten Buch anfangen Ich habe mir verschiedene Tutorials angesehen. Damit habe ich schonmal (Zugang zu) Grundlagen. Wenn ich dann das Board habe, sehe ich mal, wie weit ich damit komme. Das heißt jetzt nicht, dass ich nichts weiß und warte bis ich das Board habe, um zu sehen, ob ich überhaupt einen Anfang schaffe. Ich habe Logikschaltungen schon mit einem 'Symboleditor' (Logicsim, glaube ich) aufgebaut. Sowas zu übertragen ist dann (soweit ich das jetzt sehe) eigentlich nur noch Syntax. Natürlich kann man gibt es noch mehr, aber ich denke mit dem Wissen kann ich schon ein bisschen was aufbauen. Ich kann mein Wissen jetzt ohne Überprüfung schlecht einschätzen, deshalb will ich es halt probieren. >Warum glaubst du, mit solchen praxisfremden Problemstellungen was über >FPGAs zu lernen? Dabei ging es mir um den internen Aufbau. Die erste Frage bezog sich darauf, ob man auf den Takt verzichten und die Ergebnisse von den Pins durch den FPGA direkt auf andere Pins legen kann, ohne irgendwelche Flipflops benutzen zu müssen. Ich dachte, es gäbe vielleicht an den Pins Flipflops, die man aus irgendeinem Grund benutzen muss. Die zweite Frage war, ob man einen Ausgang auf den Eingang zurückführen kann und das mit einem Negierer dann auch wirklich anfängt zu schwingen oder ob irgendwas am Aufbau das verhindert.
Dussel schrieb: > Die zweite Frage war, ob man einen Ausgang auf den Eingang zurückführen > kann und das mit einem Negierer dann auch wirklich anfängt zu schwingen > oder ob irgendwas am Aufbau das verhindert. Nein, aber die Tools legen dir da ein paar Steinchen in den Weg... ;-) > Der müsste dann ja sehr schnell, entsprechend der Laufzeit, schwingen. Spartan 3 --> etwa 400MHz http://www.lothar-miller.de/s9y/categories/29-Ringoszillator
Bei VHDL bin ich skeptisch ob man das so einfach aus einem "guten Buch" lernen kann. Stellenweise verwirren die Bücher mehr als sie für einen Anfänger nützen, weil sie nicht sauber zwischen Synthese und Simulation trennen. Die Fragen des OP hätte kein Buch beantwortet. Und es ist ein großer (Laufzeit) Unterschied ob du deinen Oszillator durch eine rückgekoppelte LUT (= Funktionstabelle oder Lookup table) oder über rückgekoppelte Aus/Eingänge machst. Rückkopplungen von Ausgängen auf Eingänge mit Schmitt-Trigger Verhalten werden tatsächlich gemacht. Oszillatoren über LUTs sind in der Praxis irrelevant.
Falk Brunner schrieb: > Warum glaubst du, mit solchen praxisfremden Problemstellungen was über > FPGAs zu lernen? Als unbeteiligter Zaungast finde ich solche Grundsatzfragen schon aufschlußreich. Mit einem Controller und delay* wird auch niemand auf Dauer LEDs blinken lassen; trotzdem ist das zum Verständnis sinnvoll.
Klaus Wachtler schrieb: > Falk Brunner schrieb: >> Warum glaubst du, mit solchen praxisfremden Problemstellungen was über >> FPGAs zu lernen? > > Als unbeteiligter Zaungast finde ich solche Grundsatzfragen > schon aufschlußreich. > > Mit einem Controller und delay* wird auch niemand auf Dauer > LEDs blinken lassen; trotzdem ist das zum Verständnis sinnvoll. Wobei dein Beispiel durch den Quarz des Controllers vorhersagbare und temperaturstabile Ergebisse bringt ;)
... was aber für das Verständnis bei einem Gedankenexperiment eher n-rangig ist :-) Falls man überhaupt einen Quarz nimmt und nicht den internen -nein, ich sage nicht Quartttz- Oszillator.
Wobei man da ein schönes Vergleichsbeispiel daraus machen kann .. Nehmen wir mal an wir wollen unseren oszillator langsamer laufen lassen .. Beim Controller wirst du eine For Schleife n-mal durchlaufen und in der Schleife zB einen NOP haben .. In VHDL baust du dir einen Inverter (Entity). Instanziierts in einer For Schleife N Inverter und schaltest sie hintereinander. Jetzt noch Anfang und Ende verbinden ... und du kannst damit ein komplettes FPGA mit einem Oszillator auslasten ;) Wenn dein FPGA Schmitt Trigger Eingänge hat, kannst du es wie bei TTL Bausteinen über externe Kondensatoren machen. Dies geht natürlich auch bei Controllern mit Komperatoren ;)
Ja das ist dann als würde man seinen Ferrari um 30cm höher legen und eine Anhängekupplung anschrauben, damit man damit zum Baumarkt fahren kann um ein paar Bretter kaufen. :)
Mir ging es um die For Schleife .. Der Controller führt diese Schleife jedes mal aus, nachdem er programmiert ist .. In VHDL ist das nur eine Konstruktion um nicht 6000 Inverter per Hand hintereinander schalten zu müssen. Im FPGA gibts am Ende keine For Schleife mehr sondern nur hintereinander geschaltete Inverter.
>Hat dein Ferrari eine JTAG Schnittstelle ?
Ja, alle aktuellen Ferraris haben gleich mehrere davon. Fast alle
Steuergeräte haben eine. Allerdings ist die erst zugänglich, wenn du das
Steuergerät zerlegst. Hab für Ferrari die Türsteuergeräte mitentwickelt.
tron schrieb: >>Hat dein Ferrari eine JTAG Schnittstelle ? > Ja, alle aktuellen Ferraris haben gleich mehrere davon. Fast alle > Steuergeräte haben eine. Allerdings ist die erst zugänglich, wenn du das > Steuergerät zerlegst. Hab für Ferrari die Türsteuergeräte mitentwickelt. Geht auch schneller, wie die Kiste über CAN zu configurieren und der Leiterplattentest via boundary Scan ist auch noch mit dabei.
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.