Was ist ein "Half-Latch" in einem FPGA?

In einem Artikel über strahlungsharte FPGAs bin ich auf diesen Satz gestoßen:

„Ein weiteres Problem in Bezug auf Virtex-Geräte sind halbe Latches. Halbe Latches werden manchmal in diesen Geräten für interne Konstanten verwendet, da dies effizienter ist als die Verwendung von Logik.“

Ich habe noch nie von einem FPGA-Bauelement gehört, das als "Half Latch" bezeichnet wird. Soweit ich weiß, klingt es nach einem versteckten Mechanismus, um eine Konstante '0' oder '1' in den Backend-Tools zu "beschaffen" ... Kann jemand erklären, was genau ein "halber Latch" ist, insbesondere im Kontext von FPGAs , und wie sie verwendet werden können, um Logik zu speichern?

BEARBEITEN: Das Papier, in dem ich dies gefunden habe, war ein Vergleich von strahlungsharten und strahlungstoleranten FPGAs für Weltraumanwendungen

Welche Suchmaschine hast du verwendet?
Es handelt sich um einen Fehler, der in der Entwurfsphase gemeldet wird und aufgrund beschleunigter Belastung Korrekturmaßnahmen erfordert , wie z. B. ein interner Bitfehler, außer dass er einrastet und einen Tristate erzeugen kann eine Ausgabe zum Beispiel
@TonyStewart.EEsince'75 Fehler werden für interne Konstanten verwendet? Das macht keinen Sinn.
Nein. Half-Latches sind versteckte Fehler, die es zu vermeiden gilt.
@ TonyStewart.EEsince'75 Das macht im Kontext immer noch keinen Sinn. Die Präsentation, auf die Sie verlinkt haben, zeigt neben anderen Dingen wie "Konfigurationsbits" und "BRAM" deutlich einen "halben Latch" als Teil des FPGA. Es ist kein Fehler; es ist etwas, das durch einen Fehler beeinflusst werden kann.
Sie sind Konstruktionsfehler, da eine schwache positive Rückkopplung einen Fehler verursacht, wenn ein Port in den Tristate geht und verriegelt wird, sodass Verilog sie als Halbverriegelungsfehler meldet, dann müssen Sie eine Low-Level-Diagnose durchführen, um sie zu verhindern
@TonyStewart.EEsince'75 Es tut mir leid, aber das ist immer noch nicht richtig. Half-Latches sind nicht dasselbe wie abgeleitete Latches, die eine Synthesewarnung ( nicht "Fehler") verursachen können. Ein "Fehler" im Kontext der von Ihnen verlinkten Präsentation ist eine elektrische Störung - beispielsweise verursacht durch ein Strahlungsereignis - die die auf dem FPGA laufende Logik stört.
@duskwolf Ich habe mich nie auf abgeleitete Verriegelungen bezogen, sondern auf denselben Gegenstand, der von Dmitry beschrieben wurde

Antworten (2)

Ein Half-Latch ist ein Gate mit positiver Rückkopplung, das mit einem schwachen Pull-up-Transistor implementiert ist:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Wenn der Eingang aktiv angesteuert wird, überschreibt er das Signal, das vom schwachen Pullup kommt. Wenn sich der Eingang im Z-Zustand befindet, kann der schwache Pullup die logische "1" am Eingang (und "0" am Ausgang) auf unbestimmte Zeit halten. Es wird den entgegengesetzten Zustand nicht zuverlässig halten, daher "Half-Latch".

Warum sollte jemand einen halben Riegel anstelle eines vollen Riegels wollen? Bei manchen Signalen ist es nicht sinnvoll, beide Konstanten speichern zu können. Beispielsweise kann ein D-Flipflop einen enableEingang haben, der nur hoch gelatcht ist, und einen resetEingang, der nur niedrig gelatcht ist, sonst wird er während der Synthese einfach eliminiert. Das ist die Art von Signalen, für die Half-Latches verwendet werden: Sie werden entweder auf den Standardwert gelatcht oder durch die Verbindung gesteuert.

Sie sollten also den Eingang für einen Moment hoch treiben, bevor Sie ihn schweben lassen, oder Sie werden mit einem metastabilen Zustand enden, der schließlich, aber unvorhersehbar, umkippen wird?
@HenningMakholm Ja, das FPGA treibt vor jedem Programmierzyklus alle Halblatches an.
Das klingt nach einer erheblichen Komplikation der Schaltung, die den Eingang liefert, nur um einen einzelnen Transistor zu sparen. Wenn Sie etwas darüber schreiben könnten, warum in aller Welt das es wert wäre, würde dies meiner Meinung nach die Antwort verbessern.
@HenningMakholm Warum sparen Ihrer Meinung nach halbe Latches nur einen einzelnen Transistor? AFAIK werden sie als Konstanten verwendet, die sonst in LUTs codiert werden müssten.
Ein voll funktionsfähiger Latch würde zusätzlich zu Ihrem Diagramm nur einen einzigen schwachen NMOS benötigen, um den Eingang nach unten zu ziehen, wenn der Ausgang hoch ist, oder? Ich weiß nicht, was eine LUT ist - können Sie in Ihrer Antwort etwas darüber sagen, wie "als Konstanten verwendet" funktioniert, wenn das einzige, was es zuverlässig speichern kann, eine 1 ist? Wie werden diese Dinge verwendet ?
@HenningMakholm LUT ist ein Akronym für Nachschlagetabelle. Ich habe ein Beispiel hinzugefügt.
@HenningMakholm Und übrigens, wenn Sie eine volle Verriegelung verwenden, müssen Sie sie trotzdem einmal fahren, um sie in einen vorhersehbaren Zustand zu bringen, oder?
Ah, wenn ich Sie also richtig verstehe, ist dies für den Fall gedacht, dass Sie in der Entwurfsphase entweder das Eingangssignal anschließen können (in diesem Fall sollten Sie es die ganze Zeit treiben, anstatt es manchmal mit drei Zuständen zu verwenden ) oder ganz unverbunden lassen, in diesem Fall liefert der Half-Latch einen Standardwert?
(Zunächst klang Ihre Beschreibung für mich so, als ob die Eingabe so etwas wie eine gemeinsame Tri-State-Leitung sein sollte, auf der manchmal niemand sie ansteuert).
@Dimitry: Gute Antwort. Verstehe ich richtig, dass halbe Latches (häufig?) In FPGA-Verbindungsmatrizen verwendet werden? Und durch das Quellen konstant von "innerhalb" der Verbindungsmatrizen müssen keine Logikressourcen verwendet werden.
@schaden Genau.

Es scheint, dass sie die Logik zum Beibehalten von Konstanten liefern.

Da sie nicht beobachtbar sind, nur einmal initialisiert werden können (also nur nach Geräteinitialisierung rekonfigurierbar sind), verbrauchen sie keine volle LUT und sind viel einfacher, aber dennoch nützlich.

Ich habe diesen abstrakten Text auch gesehen, als ich Google gesucht habe. Es erklärt sie nicht richtig gemäß der Frage von OP und führt sie auch nicht zu einem Datenblattbeispiel. Abwertung.
Wenn es eine andere Struktur des FPGA und weniger als eine vollständige LUT ist, mit ein paar weiteren Einzelheiten, dann erklären Sie bitte, wie es die Frage „Was ist das“ nicht beantwortet und wie „Wie es Logik speichert“, das auch beantwortet wird .