Perché cronometriamo le infradito?


19

Sto cercando di capire Flip Flop & Latches. Sto leggendo dal libro di Digital Logic di Morris Mano. Una cosa che non sono in grado di capire è perché abbiamo le infradito?

Capisco perché abbiamo bisogno di chiusure "abilitate" o chiuse. Ma a che serve l'orologio? Non sono in grado di capirlo. Perché non possiamo semplicemente abilitare le infradito richieste e dare loro l'input? Quando cambiamo input, l'output cambia. Perché dobbiamo cambiare l'uscita con il fronte di clock in aumento o in diminuzione (in caso di ribaltamento attivato dal fronte)?

Qualsiasi aiuto in merito è apprezzato.

Risposte:


18

Uno dei motivi per cui noi registriamo le infradito in modo che non ci sia caos quando le uscite delle infradito vengono inviate attraverso alcune funzioni logiche e ritornano ai loro input.

Se l'output di un flip-flop viene utilizzato per calcolare il suo input, è necessario che ci sia un comportamento ordinato: per impedire che lo stato del flip-flop cambi fino a quando l'output (e quindi l'input) è stabile.

Questo clock ci consente di costruire computer, che sono macchine a stati: hanno uno stato corrente e calcolano il loro stato successivo in base allo stato corrente e ad alcuni input.

Ad esempio, supponiamo di voler costruire una macchina che "calcoli" un conteggio incrementale di 4 bit da 0000 a 1111, quindi si avvolga intorno a 0000 e continui a funzionare. Possiamo farlo usando un registro a 4 bit (che è un banco di quattro flip-flop D). L'output del registro viene inviato attraverso una funzione di logica combinatoria che aggiunge 1 (un sommatore a quattro bit) per produrre il valore incrementato. Questo valore viene quindi semplicemente restituito al registro. Ora, ogni volta che arriva l'orologio, il registro accetterà il nuovo valore che è uno più il suo valore precedente. Abbiamo un comportamento ordinato e prevedibile che passa attraverso i numeri binari senza alcun problema tecnico.

I comportamenti di clock sono utili anche in altre situazioni. A volte un circuito ha molti ingressi, che non si stabilizzano contemporaneamente. Se l'uscita viene prodotta istantaneamente dagli ingressi, allora sarà caotica fino a quando gli ingressi non si stabilizzeranno. Se non vogliamo che gli altri circuiti che dipendono dall'uscita vedano il caos, rendiamo il circuito sincronizzato. Concediamo una generosa quantità di tempo affinché gli ingressi si stabilizzino e quindi indichiamo al circuito di accettare i valori.

Anche il clocking è intrinsecamente parte della semantica di alcuni tipi di infradito. Flip flop AD non può essere definito senza un input di clock. Senza un input di clock, ignorerà il suo input D (inutile!) O semplicemente copierà sempre l'input (non un flip-flop!) Un flip-flop RS non ha un orologio, ma usa due input controllare lo stato che consente agli ingressi di essere "auto-clock": vale a dire essere gli ingressi, nonché i trigger per il cambio di stato. Tutti i Flip-flop necessitano di una combinazione di input che programma il loro stato e una combinazione di input consente loro di mantenere il loro stato. Se tutte le combinazioni di ingressi attivano la programmazione o se tutte le combinazioni di ingressi vengono ignorate (lo stato viene mantenuto), ciò non è utile. Ora cos'è un orologio? Un orologio è uno speciale, input dedicato che distingue se gli altri input vengono ignorati o se programmano il dispositivo. È utile avere questo come input separato, piuttosto che codificarlo tra input multipli.


Ha senso quando si spiega la necessità di clock per contatore o macchina a stati. Se non c'è nessun orologio, il contatore continua a cambiare il suo valore (e azzerarlo) e iniziare all'infinito? e lo stesso con la macchina a stati. (Da quello che ho letto dal wiki, contrasta solo un tipo di macchine a stati, poiché gli stati vengono cambiati). Ma anche con i registri utilizziamo anche l'orologio, in quel caso perché? Voglio anche sapere ci sono dei Flip-flop (che possono essere) usati in qualsiasi applicazione senza un orologio?
avi

Ora arriviamo al punto di stabilità, se le uscite continuano a cambiare, allora altri dispositivi che hanno bisogno dell'uscita a fogli mobili non saranno in grado di riceverlo correttamente e potrebbero esserci comportamenti irregolari. Quindi è questo problema di stabilità? Ora sto cercando di capire il concetto di stabilità. Soprattutto questi due parametri che hai spiegato: "per evitare che lo stato del flip-flop cambi fino a quando l'output (e quindi l'input) è stabile". "A volte un circuito ha molti ingressi, che non si stabilizzano allo stesso tempo"
avi

7

Un flip flop sul fronte di salita può essere immaginato come due levette back to back, una delle quali è abilitata poco dopo che il segnale di clock si abbassa e rimane abilitato fino a quando non si alza; il secondo è abilitato poco dopo che l'orologio si alza e rimane abilitato fino a quando non si abbassa. Avere un breve momento durante il quale nessuno dei flip flop è abilitato significa che l'output di un flip flop può essere ricondotto in modo sicuro al suo input tramite logica combinatoria. Una modifica dell'uscita in un ciclo di clock può causare la modifica dell'ingresso, ma tale modifica dell'ingresso non avrà alcun effetto fino al successivo ciclo di clock.

Storicamente, era abbastanza comune per i dispositivi digitali usare quello che veniva chiamato un "orologio a due fasi", che aveva due fili di clock che erano alti per intervalli non sovrapposti durante ogni ciclo. Tutti i dispositivi di chiusura sono divisi in due gruppi, con un orologio che controlla il primo gruppo di dispositivi di chiusura e l'altro orologio che controlla il secondo; nella maggior parte dei casi, gli output di ciascun gruppo vengono utilizzati solo per calcolare gli input dell'altro. Ogni ciclo di clock è costituito da uno o più impulsi sul primo clock, almeno uno dei quali deve soddisfare specifiche di lunghezza minima e uno o più impulsi sul secondo (stesso requisito). Un vantaggio di tale progettazione è che può essere molto tollerante rispetto all'orologio inclinato a condizione che il tempo morto tra le fasi dell'orologio superi la quantità di inclinazione dell'orologio.

Un approccio più "moderno" consiste nel far sì che ogni elemento di aggancio (registro) riceva un singolo filo di orologio e generi essenzialmente i propri orologi interni non sovrapposti. Ciò richiede che l'inclinazione massima dell'orologio non superi il tempo minimo di propagazione tra i registri, ma gli strumenti moderni consentono di controllare l'inclinazione dell'orologio in modo più preciso di quanto fosse possibile nei decenni passati. Inoltre, in molti casi, il clock monofase semplifica i progetti eliminando la necessità di suddividere la logica in due gruppi.


2

Sappiamo tutti che i circuiti reali digitali conterranno MOLTE porte. Un segnale potrebbe dover prendere più percorsi per arrivare all'ultimo gate che fornisce l'uscita. Un segnale impiega un certo tempo per "propagarsi" sui diversi percorsi che raggiungono l'ultimo gate. Il tempo impiegato per propagarsi non è lo stesso su percorsi diversi. Questo porta a ciò che chiamiamo glitch. I glitch si verificano poiché alcuni percorsi sono più brevi di altri e quando un segnale raggiunge l'ultimo gate prima di prendere il percorso più breve, lo effettua immediatamente prima che gli altri segnali sul percorso più lungo raggiungano il gate. L'output che questo provoca momentaneamente è sbagliato e può diventare pericoloso in un circuito digitale che porta alla propagazione degli errori.

Ora arrivo al motivo per cui abbiamo bisogno di un orologio. Un orologio essenzialmente "sincronizza" il circuito con un singolo segnale esterno. Pensa a un ritmo in cui il circuito è sintonizzato sulla musica. Le cose accadono in sintonia con questo orologio, nessun clock = circuito è disabilitato. Usando l'orologio ci assicuriamo che le diverse parti del circuito lavorino in armonia allo stesso tempo . In questo modo il comportamento del circuito è più prevedibile. È inoltre meno influenzato dalle variazioni del ritardo di propagazione in base alla temperatura e alle variazioni di fabbricazione. Questo copre l'orologio.

I Flip-flop sono tali elementi circuitali digitali che agiscono (modificando la loro uscita in risposta a un ingresso sulla loro porta di ingresso) quando si verifica un "BORDO DELL'OROLOGIO". Il limite di clock è quando il segnale di clock passa da 0 a 1 o da 1 a 0. Basta disegnare un'onda di clock e capirai cosa intendo. Esiste un altro gruppo di elementi chiamati latch, l'uscita dei latch cambia in modo da riflettere l'ingresso quando un determinato segnale di controllo si trova in un LIVELLO logico specifico e non attendere alcun fronte, questo segnale di controllo viene chiamato ENABLE nei latch. I latch possono funzionare quando abilita è 1 e modificano il loro output o quando abilita è 0. Dipende dal tipo di latch. Al contrario, i flop Flips in realtà fanno solo qualcosaquando sono alimentati da un orologio EDGE. Notare questa differenza tra i latch e le infradito e ricordare che i latch sono collegati insieme per creare un infradito in modo tale che l'abilitazione induca il flip flop a fare qualcosa quando si verifica un fronte di clock. In questo caso chiamiamo il segnale Enable su Clock, e anche questo ha più senso. L'orologio per l'uomo va tick tick tick, il flip flop fa qualcosa solo a tick e NULLA tra i tick.

Se non è ancora chiaro di quanto trarrai beneficio guardando la conferenza nptelhrd su youtube dell'Indian Institute of Technology on Digital Circuits.


"Usando l'orologio ci assicuriamo che le diverse parti del circuito lavorino in armonia allo stesso tempo." - Come possiamo farlo? Controllerò i video.
avi

Si noti che le infradito sono dispositivi che cambiano la loro uscita in modo da riflettere l'ingresso sul fronte di salita (o sul fronte di discesa se si tratta di un flip flop attivato da fronte negativo) di un segnale di controllo per un flip flop attivato da fronte positivo. Questo segnale di controllo è chiamato orologio a causa della sua natura periodica, più simile al tick-tick dei nostri orologi da parete. Se è presente il segnale di clock, il flip flop farà qualcosa, altrimenti l'ingresso non farà accadere nulla all'output. Si prega di conoscere la differenza e la somiglianza tra i fermi e le infradito sin dalle prime fasi anche per non essere confusi.
quantum231,

1

Ci sono cose come contatori asincroni. Eccone uno: - inserisci qui la descrizione dell'immagine

È anche noto come contatore di ondulazioni perché quando arriva un impulso di ingresso all'ingresso (cambiando lo stato del primo flip-flop), quel cambiamento di stato impiega un tempo finito per passare dall'altro ai flip-flop rimanenti. Durante quel lasso di tempo limitato ma limitato, le uscite ABCD avranno un valore transitorio imprevedibile fino a quando il flip-flop finale non si sarà stabilizzato.

Se le uscite ABCD fossero quindi tutte alimentate tramite flip-flop di tipo D e sincronizzate insieme, qualche tempo dopo il periodo di assestamento, questa versione "migliore" di ABCD non "mostrerebbe" mai questo comportamento transitorio.

Per evitare ciò, gli ingegneri a volte usano circuiti di clock sincronizzati. Mi dispiace che l'input sia da sinistra su questo e da Q0 a Q3 mappare su ABC e D sul diagramma precedente: -

inserisci qui la descrizione dell'immagine

È un po 'più complesso ma è più veloce e ha meno parti rispetto a un contatore asincrono con un gruppo di tipi D sulle uscite.


Bene, con i contatori ha senso. Ma c'è qualche applicazione in cui le infradito sono usate senza orologi? o le infradito non possono mai essere usate senza orologi?
avi

@avi Il primo esempio (contatore asincrono) non deve essere considerato come prendere il suo input da un "clock". Potrebbero essere impulsi provenienti da un sensore magnetico che cercano di vedere quanto velocemente ruota un albero. Ci sarebbe un orologio "master" sul sistema che "porta" il conteggio ogni secondo, ma il "segnale" che entra nel contatore non è necessariamente un orologio. L'uscita da un comparatore analogico potrebbe "sincronizzare" un "1" sull'uscita di un tipo D e l'uscita da un altro comparatore analogico può ripristinare il tipo D - questo può essere usato per produrre un segnale derivato da una forma d'onda analogica - nessun orologio come tale
Andy aka

Considererei il comportamento di un contatore di ondulazioni come quantitativamente piuttosto che qualitativamente diverso da quello del contatore sincrono. Le uscite di entrambi i contatori diventeranno non valide per un certo periodo di tempo dopo l'arrivo di un impulso di clock e diventeranno nuovamente valide per un certo periodo di tempo dopo. Il contatore sincrono avrà una finestra più piccola durante la quale i suoi output non sono validi, ma la finestra sarà comunque diversa da zero. Vale anche la pena notare che la massima velocità di conteggio con il contatore come disegnato sarà limitata dalla lunghezza del contatore. Si potrebbe evitare questa limitazione ...
supercat

... facendo iniziare la catena di trasporto, ad esempio il quarto bit, generando i "e" dei primi tre bit, e facendo in modo che ciascun bit si capovolga solo se l'ingresso dalla catena di trasporto era alto, il bit 2 era alto, il bit 1 era alto e il bit 0 era alto. Anche se nel tempo richiesto arrivassero sette impulsi di conteggio necessari affinché un segnale si propagasse attraverso la catena di trasporto, questo non sarebbe un problema poiché la catena di trasporto inizierebbe a propagare il trasporto quando il conteggio xxx111 ... 111000 è stato raggiunto ma la sua uscita non avrebbe importanza fino a quando l'impulso di clock dopo xxx111 ... 111111 è stato raggiunto.
supercat

I contatori di increspature sono semplici ma detestati nel mondo reale dei circuiti digitali in cui lavoro. È bello sapere che esistono ma è altamente improbabile che ti sia permesso di usarli per progetti reali. Può sempre essere usato in esercizi banali in cui la loro natura "asincrona" non è un problema.
quantum231,

0

Perché è più facile progettare sistemi sincroni (sistema sincrono significa qualsiasi raccolta di logica combinatoria e flip-flop con clock) rispetto ai sistemi asincroni e i sistemi sincroni sono più affidabili. Tuttavia, la progettazione di macchine a stati asincroni è degna di studio perché può calcolare un'uscita molto più velocemente e con una potenza inferiore rispetto a un sistema sincrono.

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.