Qual è la condizione di gara nelle infradito?


8

Ho esaminato due dei miei libri di testo e ho consultato il mio insegnante, ma nulla sembra chiarire i miei dubbi.

Le due versioni di razza che mi hanno insegnato sono:

  1. Quando gli ingressi S e R di un flipflop SR sono su 1 logico, allora l'uscita diventa instabile ed è nota come condizione di gara.

  2. Quando gli ingressi S e R di un flipflop SR sono su 1 logico e quindi l'ingresso viene modificato in qualsiasi altra condizione, allora l'uscita diventa imprevedibile e questa viene chiamata condizione di gara.

Qual è giusto? Oppure, sono entrambi sbagliati, in tal caso, che cos'è effettivamente la razza?


2
Questa domanda riguarda i fermi o le infradito? Alcune delle risposte descrivono i latch ma li chiamano infradito. La distinzione è discussa qui: electronics.stackexchange.com/questions/21887/…
nobar

Sto parlando di infradito (meccanismo innescato dal bordo)
Soham,

La domanda è formulata in termini di S e R, quindi ovviamente non si tratta di logica con clock. Se Lucyfer avesse intenzione di fare qualcosa di diverso, potrebbe modificare la domanda, penso che non sia giusto avere un commento non solo per carificare una domanda, ma girarla di 180 gradi.
Wouter van Ooijen,

@WoutervanOoijen Sono d'accordo che sarebbe una buona idea per l'OP chiarire nella sua domanda che vuole infradito SR con clock innescato. In realtà tutte le risposte correnti (compresa la mia, che ho eliminato) utilizzavano i blocchi. Concederò che l'OP ha detto infradito nel suo post originale, non latch, e non ho capito la differenza. Si tratta di un flip-flop innescato dal limite : si noti che richiede due chiusure SR in serie.
Tcrosley,

Nel mio libro una cosa innescata dal bordo ha un singolo input di dati e una cosa con input S e R è una semplice NAND o NOR accoppiata. Questo è più costante dei termini FlipFlop / Register / Latch, quindi posso solo interpretare la sua domanda come riferita al semplice circuito. Ma ho esteso la mia risposta per coprire le cose innescate dal livello e dal bordo.
Wouter van Ooijen,

Risposte:


7

Una condizione di gara è un feonomenone relativo al tempo. Un SR FF standard (due gate NAND o NOR accoppiati in modo incrociato) è stabile per qualsiasi input stabile.

inserisci qui la descrizione dell'immagine

Il "divertimento" è nell'ingresso S = 1 R = 1, la situazione della memoria. Lo stato dell'FF dipende dallo stato precedente l'11, se era 01 l'FF è nello stato Q = 1, se era 10 l'FF è nello stato Q = 0. Questo è il classico effetto memoria di una FF.

Ma se era 00 ed entrambi gli ingressi cambiarono in 1 sufficientemente vicini l'uno all'altro nel tempo, l'FF può entrare in uno stato metastabile, che può durare significativamente più a lungo del tempo di ritardo delle porte. In questo stato le uscite possono spostarsi lentamente verso il loro stato finale oppure mostrare un'oscillazione smorzata prima di stabilizzarsi sullo stato finale. Il tempo necessario per il regolamento è illimitato, ma ha una distribuzione che cade rapidamente per il ritardo del gate.

Nel normale funzionamento, da 00 input, un input diventa 1 e il loop di feedback nel flipflop propaga questo (o meglio, il restante 0 input) attraverso entrambe le porte, fino a quando l'FF non si trova in uno stato stabile. Quando anche l'altro input gira 1 mentre la propagazione dal primo è ancora in corso, anche questo inizia a propagarsi, ed è la supposizione di chiunque quale vincerà. In alcuni casi nessuno dei due vince immediatamente e la FF entra nello stato metastabile.

La condizione di gara è che, da uno stato di ingresso 00, un ingresso cambia in 0 e anche il secondo cambia in 0 prima che l'effetto del primo cambiamento sia settato . Ora gli effetti dei due cambiamenti stanno "correndo" per priorità.

La spiegazione dichiarata è per un semplice Set-Reset FF (o latch, o come si desidera chiamarlo). Un circuito innescato dal livello (definirei un Latch) può essere pensato come un RS-FF con entrambi gli ingressi controllati dall'ingresso di abilitazione (CLK in questo diagramma):

inserisci qui la descrizione dell'immagine

In questo circuito, una transizione simulatena di 00 -> 11 degli "input" nascosti delle NAND accoppiate in modo incrociato provoca ancora una condizione di competizione. Tale transizione può verificarsi (a causa del ritardo causato dall'inverter) quando l'ingresso D cambia contemporaneamente con l'ingresso CLK passando da 1 a 0.

Si può pensare a un circuito di memoria con clock reale (innescato dal bordo) costituito da due blocchi, abilitati dai livelli di clock opposti (disposizione master-slave). Ovviamente il primo fermo è ancora suscettibile alle stesse condizioni di gara.

inserisci qui la descrizione dell'immagine

PS su Google per le immagini appropriate le ho prese da Come è stato memorizzato 1 bit nel Flip flop? :)


perdona la mia stupidità, ma non riesco ancora ad avvolgere la testa su cosa significhi veramente "correre" da questa risposta.
Soham,

aggiunto del testo
Wouter van Ooijen,

Questa risposta è per un latch, non per un infradito. L'OP era interessato alle infradito SR con clock. Vedi commento sotto il suo post.
Tcrosley,

L'immagine che hai aggiunto non è un flip-flop SR innescato dal bordo (che è l'argomento di questa domanda), è un flip-flop D innescato dal bordo. Vedi l'immagine a cui mi sono collegato nel commento sotto la domanda, che è un flip-flop SR innescato dal limite. Non so perché stai portando le infradito D a questo punto. Il tuo commento sopra l'immagine in basso sul fatto che il primo fermo è suscettibile alla stessa condizione di gara ovviamente non si applica alle infradito D, i due ingressi al fermo non possono mai essere entrambi 1.
tcrosley,

Possono, per un breve momento, a causa di ritardi. E un breve momento è tutto ciò che serve per ottenere una (possibile) situazione metastabile.
Wouter van Ooijen,

1

Le condizioni di corsa nei circuiti digitali si verificano quando lo stato finale dell'uscita dipende da come arrivano gli ingressi.

I circuiti digitali hanno ritardi intrinseci. Quindi è possibile che uno degli ingressi arrivi un po 'prima o dopo gli altri, cioè gli ingressi che erano destinati a essere presenti contemporaneamente arrivano effettivamente in momenti diversi a causa di ritardi diversi lungo il loro percorso.

Di conseguenza, l'output cambia in modo imprevedibile. In altre parole, c'è una corsa tra gli input su quale influenzerà l'output. Generalmente questo assume la forma di punte, che possono essere sia alte che basse.

Per il tuo caso:

inserisci qui la descrizione dell'immagine

Considera cosa accadrà se sia S che R sono alti.

Supponiamo che q = 0 e q '= 1 inizialmente. Poi

Se A arriva prima di B, Q cambierà in Alto che momentaneamente imposterà Q 'basso che a sua volta dovrebbe idealmente mantenere Q alto e così via.

Ora dopo un momento, arriva B (durata molto breve). Questo trasformerà Q 'alto che a sua volta imposterà Q alto.

Puoi controllare per vedere cosa succede quando B arriva prima di A.

Ora in realtà, ci sono 2 cose che accadono qui:

1) L'uscita dipende momentaneamente dall'ingresso che arriva per primo. Questa in sostanza è la condizione della razza.

2) Lo stato finale è q = 1 e q '= 1. Questa NON è una condizione di gara. Questo è semplicemente uno stato non valido. Idealmente, Q e Q 'devono essere opposti, il che non è il caso qui.

Spero di avere ragione.


1

Tutte le risposte inserisci qui la descrizione dell'immagine

Innanzitutto non corre intorno a condion .... non confonderlo .... le sue condizioni di gara .....

Quando S = R = 1 Q = Q '= 1. È ben definito ... ma il problema sorge quando sia S che R cambiano simultaneamente a 0 da 1 (alto a basso)

I transistor cercheranno di uscire dalla saturazione ...

Ora entrambi i transistor Qr e Q cercheranno di uscire dalla saturazione ... ma come ritardo di saturazione se i transistor raramente possono essere uguali nella produzione di massa ... vincerà il transistor con meno ritardo di saturazione ... e bloccherà il circuito. ..

Se Qr è più veloce, allora la tensione su M diminuirà e Q = 0 Se Qs è più veloce, allora la tensione su N diminuirà e Q '= 0

Pertanto l'output è imprevedibile

Anche se le velocità sono uguali, anche le uscite Q e Q 'oscilleranno tra 1 e 0 e quindi tra 0 e 1, quindi l'uscita è instabile ...


0

Penso che il caso 1 sia appropriato. cioè, quando entrambi gli ingressi di un latch SR sono '1', allora l'uscita è instabile.

Ora da S = R = '1' l'ingresso è cambiato in S = R = '0' a questa condizione se si suppone che l'uscita sia lo stato precedente. Ma lo stato precedente era instabile. Quindi l'output potrebbe bloccarsi su '1' o '0'. Non puoi prevedere.

Quindi il caso 2 è corretto se l'ingresso è stato cambiato da '11' a '00'.


bene se non usi né cancelli allora sono le 11
Soham,

0

Ogni volta che forniamo 1 sia a J che a K nel Flip Flop JK, l'output dovrebbe integrare l'output precedente. Questo si chiama race around condition (simile allo stesso concetto in "sistema operativo", in cui l'output finale dipende dalla sequenza con cui vengono eseguiti i processi).

Per ovviare a questo problema, utilizziamo il flip flop master-slave.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.