https://www.mikrocontroller.net/articles/Taktung_FPGA/CPLD Im Ernst, ich habe genau kein Wort verstanden. Weil ich nicht 1/10 von der Ahnung habe, die der Autor da mal eben so mit uns teilt. Wow! Meine größte Leistung in Sachen Digitaltechnik war vor sehr vielen Jahren mal, einen Z80H (sic!) mit SRAM und EEPROM auf einer Euro-Platine zu verfädeln und ihn auf 10 MHz (sic!!) hochzutakten. Er hat später sogar CP/M kapiert (ja, sic! ^^). Ich finde es sensationell und einfach nur gut, wenn solche Fachleute ihr Wissen mit uns Einsteigern teilen. Die Lernkurve ist hier teilweise sehr hoch, aber so muss es wohl auch sein. Tolles Forum!
Was willst du uns damit jetzt sagen? Ich habe den Artikel nur kurz überflogen, wirkte in sich schlüssig. Die Takterei bei FPGAs ist nicht ganz ohne, aber ohne sich da tief reinzusteigern, scheitert man ohnehin schon lange vorher. BTDT.
Genau das wollte ich damit sagen: dass dieses Forum vom Anfänger bis zum Vollprofi allen was zu bieten hat, und dass es ab vom Elko etwa wohl das einzige Forum ist, das so eine große Spannweite bietet. Es war einfach ein Dankeschön an die vielen Autoren solcher Artikel, die mehr als U = R * I rausrücken wollen, nämlich auch die vielen Feinheiten aus der Praxis, die nicht in den Datenblättern stehen, sondern nur in den Hirnen von erfahrenen Profis. Auch wenn ich nach wie vor in diesem speziellen Text nix verstanden habe, ich bin mehr der Software-Mäkler ;)
Achso. Ich war mir nicht sicher, ob ich in deinem Text eher Ernst oder Ironie interpretieren sollte. :-) Aber ja, hier ist's recht schön. Ruppig, aber meist kompetent.
Der Artikel ist insofoern gut, weil er Aspekte bringt, die viele nicht kennen. Allerdings hat die Taktbaumstruktur in FPGAs wenig Gehalt, weil man die eh nicht konfigurieren kann. Damit ist das Wissen darüber eher theoretisch. Leider sind andere Aspekte etwas kurz geraten und auch nicht mehr zu 100% aktuell.
Bego schrieb: > Allerdings hat die Taktbaumstruktur in FPGAs wenig Gehalt, weil > man die eh nicht konfigurieren kann. Je nachdem, was man zum Taktbaum zählt kann man schon einiges konfigurieren. So kann man nicht nur Clockswitches oder PLL/oÄ dazuschalten oder am Ziel invertieren, es gibt z.B. bei einigen FPGAs konfigurierbare regionale und lokale Strukturen, die einen Teil des Baums darstellen. Das kann für schnelle Datenübertragung z.B. bei DDR-RAM wichtig sein. Sich damit zu beschäftigen kann also sehr wichtig sein.
Bego schrieb: > Allerdings hat die Taktbaumstruktur in FPGAs wenig Gehalt, weil > man die eh nicht konfigurieren kann. Damit ist das Wissen darüber eher > theoretisch. Wenn man setzen von timing constraints auch zur grauen Theorie zählt, dann ja. Ansonsten ist es schon wichtig den Begriff skew im zusammenhang mit timing constraints zu verstehen und der erschliesst sich eben über das Verständniss der physischen Struktur - also dem clock tree.
S. R. schrieb: > Die Takterei bei FPGAs ist nicht ganz ohne Allerdings hat die feste Struktur der Taktverteilung einen Vorteil, den der Hersteller über alle Flipflops im FPGA hinweg garantiert: man muss sich keine Gedanken um eine Race-Condition machen. Ein Bit kann da nicht einfach durch eine (Schiebe-)Registerkette "durchfallen", wie es z.B. bei diesem Aufbau in einem ASIC sein könnte:
1 | _ tp tp tp |
2 | Clk _| --------o----->-----o----->-----o----->-----. |
3 | | | | | |
4 | ----- ----- ----- ----- |
5 | | Clk | | | | | | | |
6 | In -----|D Q|-->--|D Q|-->--|D Q|-->--|D Q|--- Out |
7 | | | tp | | tp | | tp | | |
8 | ----- ----- ----- ----- |
9 | FF1 FF2 FF3 FF4 |
Wenn hier z.B. alle Flipflops '0' sind und der In '1', dann könnte es sein, dass mit der steigenden Flanke das FF1 "sofort" den Pegel '1' am Ausgang annimmt, und dieser Pegel zusammen mit der steigenden Flanke nach der Laufzeit tp am FF2 ankommt, und dieses dann gleich die '1' übernimmt, und das auch das FF2 und das FF3 macht. Dann ist die '1' mit einem einzigen Taktimpuls durch die Registerkette "durchgefallen". Besser wäre es dann, den Takt am FF3 einzuspeisen:
1 | tp tp tp _ |
2 | .----<------o----<------o----<------o-- _| Clk |
3 | | | | | |
4 | ----- ----- ----- ----- |
5 | | Clk | | | | | | | |
6 | In -----|D Q|-->--|D Q|-->--|D Q|-->--|D Q|--- Out |
7 | | | tp | | tp | | tp | | |
8 | ----- ----- ----- ----- |
9 | FF1 FF2 FF3 FF4 |
Dann kann dieses "Durchfallen" nicht passieren, weil ja erst das FF4 den Zustand vom FF3 übernimmt, usf bis zum Schluss das FF1 den Pegel vom In einliest. Wird die Taktverteilung in einem "Baum" gemacht, hat von der "Wurzel", (dem Takteingang) bis zu den "Blättern" (den Flipflops) das Taktsignal die gleiche Laufzeit.
1 | CLk_ |
2 | _| |
3 | |
4 | | |
5 | .-----------o-----------. |
6 | | | |
7 | .-----o-----. .-----o-----. |
8 | | | | | |
9 | ----- ----- ----- ----- |
10 | | Clk | | | | | | | |
11 | In -----|D Q|-----|D Q|-----|D Q|-----|D Q|--- Out |
12 | | | tp | | tp | | tp | | |
13 | ----- ----- ----- ----- |
14 | FF1 FF2 FF3 FF4 |
Weil der FPGA-Hersteller durch den balancierten Taktbaum garantiert, dass eine Race-Condition", also ein "Durchfallen" im FPGA nicht vorkommen kann, macht es einfach, synchrone Designs zu realisieren. Dass darüber hinaus die Taktgenerierung, die Taktmodifizierung und die Taktverteilung ein eigenes Kapitel im Handbuch haben, zeigt aber, dass das Taktmanagement weit über solche "Selbstverständlichkeiten" hinausgeht.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Weil der FPGA-Hersteller durch den balancierten Taktbaum garantiert, > dass eine Race-Condition", also ein "Durchfallen" im FPGA nicht > vorkommen kann, macht es einfach, synchrone Designs zu realisieren. Ich würde das etwas weicher formulieren, weil auch ein Taktbaum keine perfekte Verteilung garantiert. Der Baum ermöglicht eine geringere Diskrepanz zwischen frühester und spätester Flanke, als eine Kette und damit mehr budget für die Laufzeiten der Kombinatorik -> höhere Taktfrequenzen für das synchrone Schalten. Allerdings lassen sich genau durch solche Schaltungen innerhalb eines synchronen Taktes in ASIC besonders hohe Schaltgeschwindigkeiten erzielen, indem man solche Ketten lokal gezielt aufbaut und den später kommenden Takt am Ende der Kette nutzt. Heisst: Höhere Taktfrequenzen für das "asynchrone" Schalten. Dazu muss man allerdings speziell bauen und simulieren. Will man das bei speziellen Anwendungen in FPGAs nutzen wird das besonders anspruchsvoll, da mit den mikroskopischen Verzögerungen der LUTs und gegateten Takten gearbeitet werden muss. Eine Mischung der Techniken ist möglich, wenn man mit mehreren Takten arbeitet, die aus derselben PLL kommen und einen festen Bezug haben. Z.B: 0,90,180,270 Grad.
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.