Ja, bei den Themen FPGA hat die Information über aktuelle Technologie
eine enorme Latenz:-)
Es ist aber schon lustig: Das Thema META ist seit locker einer Dekade
keines mehr, trotzdem trifft man es bei fast jedem Kunden an. Xilinx und
auch Altera haben schon vor Jahren Dokumente dazu heraus gegeben, die
offenbaren, wie kurz diese Zeiten inzwischen geworden sind und dass das
praktisch untergeht, bzw. in den Timinganalysen berücksichtigt ist.
Das Thema META wurde auch hier im Forum schon mehrfach erörtert und
untersucht: Metastabilität ist x-mal unwahrscheinlicher, als andere
Einflüsse, wie Einstreuungen auf den Leitungen, die Signalübertragung
funktionell unsicher machen können und dass dem so ist, ist auch gut so,
denn das, was die Meisten gegen META unternehmen, nämlich FFs
spendieren, verläuft Dank vergessener keep-constraints ohnehin im Sande,
weil die munter verschoben werden und physisch gar nicht mehr
existieren, bzw. nicht dort, wo sie sitzen müssten um ihre Wirkung zu
tun. Wir hatten das bei der Reset-Problematik schon wenigstens 3mal an
unterschiedlichen Stellen hier durchexerziert, wozu das führen kann.
Siehe Lothars Kommentar oben.
Richtig ist auch:
Das, was Viele als "META-Problem" benennen, ist nach meiner Erfahrung
nichts anderes, als das grundsätzliche Datenunsicherheitsproblem, weil
man nicht sicher ist, zu welchem Zeitpunkt man ein Signal erwischt und
welchen Wert es beim Flankenwechsel hat. Bei Bussen ergibt sich dann ein
Inkonsistenzthema und wenn man dieses löst, ist das META - so überhaupt
existent - gleich implizit mitgelöst.
Aus der Erfahrung der Sichtung von sicher >100 designs in den letzten
Jahren kann ich zudem die Aussage treffen, dass die allermeisten
theoretisch existenten META-Probleme durch die designer künstlich
hervorgerufen wurden, weil sie mit allenmöglichen händisch erzeugten
Takten in den designs hantieren, welche sich dann gegenseitig Daten mit
ähnlichen Flankenzeitpunkten übergeben, statt einfach einen einzigen
Takt und enables zu nehmen.
Wenn dann wirklich mal in der Praxis solche Datenprobleme beobachtbar
waren, dann war auch genau so was immer der Grund.
Ich kann mich an ein design von vor 7 Jahren erinnern, das war absolut
legendär: Eine zweistellige Anzahl von Takten, wo 2-3 gereicht hätten
und mehr, als 25 Domänenübergänge mit angeblich ansynchronen Fifos und
Angst-FlipFlops dazwischen, die überhaupt erst dafür gesorgt haben, dass
das design richtig zeitkritisch wurde und teilweise inkonsistente Daten
eingetaktet wurden, statt sie abzufangen, während andere verloren
gingen.
Da gab es alles und sicher auch den einen oder anderen Meta-Übergang
inklusive verschleppter Daten infolge mangelnder constraints mit
Ergebnissen, die von der Temperatur und der synthetisierten Version
abhängig waren. Nach der Entmystifizierung des designs blieben 3 domains
und 3 synchrone Fifos über. Halb so groß, doppelt so schnell und vor
allem weniger "Rauschen" auf den Daten :-)