Was ist ein "Half Latch" in einem FPGA?

10

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

"Ein weiteres Problem bei Virtex-Geräten sind halbe Latches. Manchmal werden in diesen Geräten halbe Latches für interne Konstanten verwendet, da dies effizienter ist als die Verwendung von Logik."

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

EDIT: Das Papier, in dem ich fand, dass dies ein Vergleich von strahlungsharten und strahlungstoleranten FPGAs für Weltraumanwendungen war

andrsmllr
quelle
7
Welche Suchmaschine haben Sie benutzt?
Ale..chenski
Es handelt sich um einen Fehler, der in der Entwurfsphase gemeldet wird und Korrekturmaßnahmen erfordert. Slideserve.com/delilah/single-event-upsets-in-sram-fpgas aufgrund beschleunigter Beanspruchung, wie z eine Ausgabe zum Beispiel
Tony Stewart Sunnyskyguy EE75
1
@ TonyStewart.EEsince'75 Fehler werden für interne Konstanten verwendet? Das macht keinen Sinn.
Abenddämmerung -inaktiv-
Nein. Half-Latches sind versteckte Fehler, die vermieden werden müssen.
Tony Stewart Sunnyskyguy EE75
1
@ TonyStewart.EEsince'75 Das macht im Kontext immer noch keinen Sinn. Die Präsentation, mit der 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 von einem Fehler betroffen sein kann.
Abenddämmerung -inaktiv-

Antworten:

14

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

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

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) unbegrenzt behalten. Es wird den entgegengesetzten Zustand nicht zuverlässig halten, daher "Half-Latch".

Warum sollte jemand einen halben Riegel anstelle eines vollen Riegels wollen? Für einige Signale ist es nicht sinnvoll, beide Konstanten speichern zu können. Beispielsweise kann ein D-Flipflop einen enableEingang haben, der nur hoch und der resetEingang nur niedrig zwischengespeichert ist, andernfalls wird er während der Synthese einfach eliminiert. Dies ist die Art von Signalen, für die Halb-Latches verwendet werden: Sie werden entweder auf den Standardwert zwischengespeichert oder über eine Verbindung angesteuert.

Dmitry Grigoryev
quelle
Sie sollten also den Eingang für einen Moment hoch treiben, bevor Sie ihn schweben lassen, oder Sie werden einen metastabilen Zustand haben, der irgendwann, aber unvorhersehbar umkippt?
Hmakholm verließ Monica
@HenningMakholm Ja, das FPGA steuert vor jedem Programmierzyklus alle Half-Latches an.
Dmitry Grigoryev
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 um alles in der Welt sich das lohnt, würde dies meiner Meinung nach die Antwort verbessern.
Hmakholm verließ Monica
@HenningMakholm Warum spart ein halber Latch Ihrer Meinung nach nur einen einzigen Transistor? AFAIK werden sie als Konstanten verwendet, die sonst in LUTs codiert werden müssten.
Dmitry Grigoryev
Ein voll funktionsfähiger Latch würde zusätzlich zu Ihrem Diagramm nur ein einziges schwaches 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 sie zuverlässig speichern kann, eine 1 ist? Wie werden diese Dinge verwendet ?
Hmakholm verließ Monica
-2

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

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

Gommer
quelle
1
Ich habe diesen abstrakten Text auch bei der Suche nach Google gesehen. Es erklärt sie nicht richtig gemäß der Frage des OP und führt sie auch nicht zu einem Datenblattbeispiel. Downvoting.
TonyM
Wenn es sich um eine andere Struktur des FPGA handelt und weniger als eine vollständige LUT mit ein paar weiteren Einzelheiten, erklären Sie bitte, wie es die Frage „Was ist das?“ Nicht beantwortet und was „Wie es Logik spart“, auch beantwortet wird .
Gommer