Comprendi i tempi del registro a scorrimento


8

(Sto imparando la progettazione del circuito digitale. Mi scusi se questa è una domanda ingenua.)

Da Wikipedia , ho trovato il seguente diagramma sul registro a scorrimento SIPO:

inserisci qui la descrizione dell'immagine

A quanto ho capito, questo registro a scorrimento è realizzato in DFF (D Flip-Flop). Il DFF viene attivato sul fronte di salita del periodo di clock. Quindi, per ogni fronte di salita del Clocksegnale, i dati provenienti dalla Data Inpropagazione si propagheranno attraverso uno stadio di DFF.

La mia domanda è, poiché il Clockè condiviso da tutti i DFF, quando arriva il fronte di salita, tutti i 4 DFF devono essere in stato innescato / trasparente. Quindi, cosa garantisce che i dati si propagino attraverso lo only 1stadio di DFF anziché 2 o più stadi?

Diciamo:

  • Td è il ritardo interno per 1 stadio DFF per caricare i dati da D a Q.
  • Trè il tempo duraturo del fronte di salita dell'orologio. Vedi sotto la foto.

inserisci qui la descrizione dell'immagine

Penso che per limitare la propagazione a 1 stadio, deve essere:

Td < Tr < Td*2

Ho ragione?

Ma nel link sopra, dice:

In questa configurazione, ogni infradito è innescato dal fronte. Il flip-flop iniziale funziona alla frequenza di clock indicata. Ogni successivo infradito dimezza la frequenza del suo predecessore, raddoppiando il suo ciclo di lavoro . Di conseguenza, il fronte di salita / discesa impiega il doppio del tempo per innescare ogni successivo flip-flop; questo scagliona l'input seriale nel dominio del tempo, portando a output parallelo.

Mi rende confuso su alcune cose.

  • Cosa halves the frequencysignifica?
  • Come potrebbe un DFF essere caratterizzato con una frequenza?
  • Un DFF non funziona solo sul fronte di salita dell'orologio e in generale non importa a quale frequenza si trova l'orologio?
  • E come può la frequenza essere correlata al duty cycle? La frequenza è correlata al periodo, mentre il ciclo di lavoro indica semplicemente la percentuale di un periodo in cui un segnale o un sistema è attivo . Non vedo alcuna relazione tra frequenza e duty cycle.

AGGIUNGI 1

Come ha detto Neil_UK nella sua risposta di seguito, la citazione della wiki sopra è chiaramente sbagliata. E ha riparato la pagina wiki.

Come ha affermato EM Fields nella sua risposta di seguito,

... nulla può più accadere fino al prossimo fronte di salita dell'orologio, poiché il bordo di orologio che ha fatto il lavoro è già morto ...

A rigor di termini, non esiste un fronte di salita idealmente verticale. Dovrebbero essercene alcuni Trcome mostrato nell'illustrazione sopra. Immagino di limitare la propagazione del segnale attraverso gli stadi DFF, il fronte di salita deve durare abbastanza a lungo da consentire al segnale di propagarsi attraverso uno stadio e abbastanza corto da non far propagare il segnale allo stadio successivo.

Penso solo che questo tipo di controllo sia troppo complicato / delicato per essere vero. Ma se è vero, come si ottiene? (Ho appena posto una taglia per questa domanda.)


cosa intendi esattamente con "Tr è il tempo duraturo del fronte di salita dell'orologio"?
Elbehery,

1
@Elbehery Grazie per la risposta. Ho aggiunto un'illustrazione. Poiché l'orologio è condiviso da tutte le fasi del DFF, quindi durante il Tr, penso che tutti i DFF dovrebbero essere trasparenti da inserire. Ecco perché penso che sia necessario controllare fino a che punto il segnale può propagarsi.
smwikipedia,

2
Sei stato confuso da una voce su Wikipedia. Vedi la mia risposta e vedi la pagina di Wikipedia aggiornata (potrebbe essere necessario svuotare la cache del browser per vedere la nuova pagina)
Neil_UK

Risposte:


5

La mia domanda è, poiché l'orologio è condiviso da tutti i DFF, quando arriva il fronte di salita, tutti e 4 i DFF devono essere in stato innescato / trasparente. Quindi cosa garantisce che i dati si propagino attraverso solo 1 fase di DFF anziché 2 o più fasi?

Considerare i requisiti di temporizzazione di un tipico D Flip Flop .

D flip flop timing

Come puoi vedere, ci sono una serie di parametri; di maggiore importanza qui sono il tempo di installazione, il tempo di attesa e il ritardo di propagazione .

L'ingresso (in D) deve essere stabile per tutto il periodo indicato (da tSu per th).

Per questa particolare parte, il tempo di attesa minimo richiesto è di 3nsec. Questo è il tempo minimo in cui l'ingresso deve essere stabile dietro l'orologio per garantire prestazioni garantite (ovvero D viene trasferito a Q)

Tempi di installazione e attesa

Qualsiasi passaggio dell'ingresso dopo questo viene effettivamente ignorato dal dispositivo. A condizione che il periodo di clock sia maggiore ditSu + th funzionerà correttamente.

Ora diamo un'occhiata ai ritardi di propagazione (tplh e tphl)

Dal foglio dati, questi sono in genere 14 nsec:

ritardo di propagazione

Poiché questo evento si verificherà oltre il tempo di attesa, questa transizione al successivo ingresso D non avrà alcun effetto poiché l'ingresso è ora effettivamente bloccato dal meccanismo di feedback interno.

Si noti che la velocità massima che può raggiungere un registro a scorrimento è 1tSu(mion) +tprop(mun'X)poiché l'ingresso D deve essere stabile per almeno il tempo di impostazione dopo che l'uscita Q precedente è diventata stabile.

A condizione che il ritardo di propagazione sia maggiore del tempo di attesa, può essere ignorato per la massima frequenza di clock.

Quindi la linea di fondo è che a condizione che il ritardo di propagazione da D a Q sia maggiore del tempo di attesa richiesto, un singolo evento di clock non può propagarsi su più di un flip flop.

Usando il tuo diagramma, l'orologio si verifica in qualche momento t0. Il risultatoQ1cambierà dopo il ritardo di propagazione del primo flip flop, ma poiché ciò avverrà dopo il tempo di impostazione dell'input al secondo flip flop, a condizione che il ritardo di propagazione del primo flip flop sia maggiore del tempo di attesa in ingresso del secondo flip flop (è sempre, nella mia esperienza), quindi la transizione in Q1 (D del secondo flip flop) non ha alcun effetto per questo evento di clock .


5

Quel link di Wikipedia aveva una descrizione errata, era per una divisione in cascata per 2 contatori. Ora ho corretto la voce di Wikipedia in modo che descriva un registro a scorrimento. Potrebbe non essere la migliore descrizione (fatta in un minuto), ma almeno non è del tutto sbagliata!


2

Affinché i tempi funzionino correttamente, il tempo di mantenimento sull'ingresso D deve essere inferiore al ritardo di propagazione del flipflop meno l'incertezza del clock. Finché questa condizione è vera, i nuovi dati del precedente flipflop non cambieranno fino a quando la fase successiva non avrà bloccato i dati.

Per un NXP 74HC74 vediamo dal foglio dati che il tempo di attesa è il caso peggiore di 3 ns, e il ritardo di propagazione è tipicamente di 14 ns, quindi un disallineamento di clock fino a 11 nn non causerà un problema (a 5 V) con questi tempi. Si noti tuttavia che il ritardo di propagazione non è in genere minimo, quindi i margini su una determinata parte possono essere molto più stretti, tuttavia per ragioni abbastanza ovvie la maggior parte delle infradito D sono progettate in modo tale che questo tipo di cose funzioni in modo tempestivo, poiché è probabile che anche ottenere una particolarmente veloce hanno requisiti di tempo di attesa più brevi.


1

I DFF non sono trasparenti ma operano sul bordo del segnale di clock. Il bordo dell'orologio deve essere abbastanza veloce affinché i circuiti funzionino correttamente.

Di seguito è mostrato un esempio:inserisci qui la descrizione dell'immagine

Il primo stadio è attivo durante la fase bassa dell'orologio. Quando l'orologio sale, i primi inverter collegati (latch) back-to-back memorizzano lo stato corrente e l'ingresso viene disconnesso dalla porta di trasmissione lasciata al nodo X. Allo stesso tempo il secondo TG diventa trasparente e aziona il secondo latch. Non appena l'orologio si abbassa di nuovo, il secondo fermo mantiene il valore.

Nel circuito preso da Wikipedia le infradito formano un registro a scorrimento, funzionano tutte alla stessa frequenza. Potrebbero essere usati come contatori o divisori di clock, tuttavia per questo sarebbe usata una configurazione diversa.


Ma come hai intenzione di ottenere phi e phi_bar simmetrici al 100%? Probabilmente useresti un inverter, portando almeno un ritardo di gate tra i due. Quindi ora la tua prima porta di trasmissione può passare uno '0' un po 'più a lungo di uno' 1 ', e la seconda porta di trasmissione può passare uno' 1 'un po' più a lungo di uno '0', a causa di orologi irregolari. Effetti simili si verificano con i dispositivi di feedback tristato. C'è anche un instradamento di metallo tra i punti di clock. Niente è esatto. Quindi questa analisi ideale nasconde solo i problemi che esistono nella vita reale. Imo.
jbord39,

@ jbord39 - Naturalmente i tempi devono essere verificati. Rendere simmetrici phi e phi_bar non è così difficile. Se fosse necessario un margine di errore, potrebbe essere introdotto un ritardo tra i due TG. Il routing è solo locale e molto breve. I ritardi sono generalmente determinati dopo l'estrazione parassitaria e possono anche essere verificati. Naturalmente ci sono design più robusti, ma ho già visto questo nelle librerie di celle standard.
Mario,

Sì, è sempre nelle librerie di celle standard, è il DFF più semplice. Ma gli orologi sono raramente fatti per essere simmetrici. Il ritardo di 10ps / inverter è "abbastanza buono". Il motore di caratterizzazione raccoglierà le differenze di salita / discesa e le rappresenterà comunque nelle tabelle. Il mio punto è che l'OP solleva una domanda completamente logica, che ha causato errori reali nella progettazione. Soffiarlo come "sul fronte di salita lo cattura istantaneamente" è una grande semplificazione, ma non molto buona quando la domanda riguarda la sfumatura nei tempi.
jbord39,

@ jbord39 - Il mio punto è che questo design può essere reso robusto quanto basta. Se ciò causa un errore nella progettazione, è necessario correggere il flusso della progettazione. A parte questo, penso che tu stia leggendo troppo nella domanda. Tuttavia, vedo il tuo punto.
Mario,

1

In parole povere, non c'è nulla che impedisca la situazione che descrivi, tranne per le conoscenze proprie dei progettisti durante la costruzione. Tieni presente che esiste un ritardo finito tra l'attivazione del fronte di clock e la modifica dell'output, generalmente chiamato clk-to-q o clk-to-out.

Con un DFF in stile Transmission-Gate comune (più utilizzato oggi nelle CPU) nella tecnologia di oggi, molto probabilmente incontreresti la situazione che descrivi. È noto come violazione della sospensione.

In effetti, le violazioni in sospeso sono le più pericolose per i chip digitali. Se si verifica una violazione dell'installazione, è possibile semplicemente rallentare il clock fino a quando il percorso lento smette di fallire. Tuttavia, in caso di violazione della sospensione, di solito non è necessario eseguire alcuna operazione (a meno che non si inseriscano misure di sicurezza come i bordi di clock mobili per registro). Perché sono così mortali che è normale tamponare furiosamente per prevenire eventuali violazioni della sospensione. Quindi se hai una pista ciclabile (diciamo 400ps @ 2,5 GHz) che è solo flop-> flop; non c'è motivo di non aggiungere parecchi buffer. Questo è in effetti incoraggiato.

Altri hanno anche affermato che i DFF non sono trasparenti. Questo certamente dipende dal DFF , la maggior parte dei VLSI FF oggi ha una trasparenza di un paio di picosecondi. Altri vengono intenzionalmente modificati per rimanere trasparenti più a lungo (tempo in prestito flip flop - garantendo ulteriore tempo per l'installazione e costringendo a conservare più a lungo i dati validi) ritardando l'orologio principale rispetto allo slave.

Se il segnale dovesse saltare il flip flop, verrebbe considerato un percorso a 0 cicli. Questa è generalmente considerata una "violazione di sospensione", il che significa che i dati non sono stati conservati abbastanza a lungo.

I tempi di configurazione e di attesa di ogni infradito sono diversi. Se sono stati progettati per l'uso in un registro a scorrimento, posso quasi garantirvi che avranno un tempo di mantenimento negativo (ritardare l'orologio sul fermo slave rispetto al fermo principale; facendo sì che il fermo principale si chiuda prima e diventi non trasparente, qualche volta prima che il dispositivo di chiusura slave diventi trasparente). O quello, o il clk-> fuori da questi infradito può essere molto più lungo del tempo di attesa. Oppure hanno inserito un ritardo tra le fasi; sul percorso dati o sul percorso del clock (invertito).

Risolvere questo problema è molto semplice. In effetti ci sono molti, molti, molti modi per risolvere il problema. Due semplici: basta inserire un ritardo appropriato tra ogni fase di flip flop. Oppure, metti un ritardo tra l'orologio per ogni infradito nel registro a scorrimento; a partire dall'ultimo della catena. Questo farà in modo che ogni infradito afferri i dati stabili dal precedente infradito.


1

Questo schema mostra la logica delle porte di trasmissione e invertendo le porte di trasmissione subito dopo il fronte di salita attivo dell'orologio che controlla la serie di interruttori con una capacità di memorizzazione sufficiente per consentire a un interruttore di retroazione di mantenere attivamente quel livello logico in isolamento dall'ingresso.

Tre (3) fasi di infradito D sono mostrate sotto come parte o come registro a scorrimento che potrebbe essere Serial In Parallel Out (SIPO) o Serial In Serial Out (SISO)

Sebbene l'orologio sia invertito per la guida bipolare delle porte di trasmissione, è simbolicamente mostrato come un controllo a relè per una comprensione semplificata.

schematico

simula questo circuito - Schema creato usando CircuitLab


1

Questa è davvero un'ottima domanda! Per come funziona DFF, vai qui , per il cronometraggio e la transizione troverai la risposta qui che dice quanto segue

L'azione di attivazione di Schmitt nell'ingresso del clock rende il circuito altamente tollerante per rallentare i tempi di salita e discesa.

L'implementazione di questa azione Schmitt rimuoverà al massimo la metastabilità durante la transizione del clock. Pertanto l'orologio aumenterà logicamente una sola volta, facendo in modo che il trigger ne verifichi lo stato una sola volta. Per la frequenza del clock, i DFF hanno solitamente valori min e max nei loro fogli dati per garantire la propagazione del segnale sincrono all'interno dei suoi elementi logici.

Nella configurazione SIPO il tuo compito è garantire che il ritardo di propagazione attraverso DFF sia inferiore al periodo di clock più un po 'di gioco per garantire che il segnale sia stabile nel filo collegato all'ingresso D del DFF successivo.


0

Quando l'ingresso di clock di un flip-flop di tipo "D" sale, lo stato dell'ingresso D - in quell'istante - verrà trasferito all'uscita Q e Q rimarrà in quello stato indipendentemente da eventuali cambiamenti in D fino al successivo bordo dell'orologio di alto livello.

Un fermo trasparente, d'altra parte, opera facendo in modo che Q segua D mentre l'orologio è alto, e quindi agganciando lo stato di D in Q nel momento in cui l'orologio si abbassa.

Nel circuito che mostri, l'orologio è in parallelo con tutti i dflop, quindi una volta che il bordo dell'orologio passa in alto e il contenuto di D viene trasferito a Q - e quindi a D della fase successiva - non può accadere altro fino a quando il successivo fronte di salita dell'orologio, dal momento che l'orologio che ha fatto il lavoro è già morto.

Di seguito è riportato il tuo circuito animato con alcuni driver e la sua risposta è illustrata con un diagramma di temporizzazione.

Si noti che gli stati di uscita delle fasi precedenti vengono propagati attraverso le fasi successive solo una volta per ciascun fronte di clock in aumento.

inserisci qui la descrizione dell'immagine


Grazie per la risposta. Come hai detto, ... nulla può succedere di più fino al prossimo fronte di salita dell'orologio, poiché il bordo di orologio che ha fatto il lavoro è già morto . A rigor di termini, non esiste un fronte di salita verticale ideale come Trindica la mia domanda. Quindi immagino che il fronte di salita debba durare abbastanza a lungo da consentire al segnale di propagarsi attraverso uno stadio e abbastanza corto da consentire al segnale di non propagarsi allo stadio successivo. Penso solo che questo tipo di controllo sia troppo complicato / delicato per essere vero. Ma se è vero, come si ottiene?
smwikipedia,

0

Il modo in cui funziona è che ogni DFF è abilitato per un periodo molto breve. Per trasformare un latch in un flip-flop si usa qualcosa come il seguente circuito sul suo segnale di abilitazione. bordo dell'orologio L'orologio è collegato come ingresso. Quando si ottiene il fronte di salita, viene generato solo un impulso molto breve. Supponiamo che inizialmente l'orologio sia a 0. Le uscite delle porte NOT nella porta AND sono alte. Quando si ottiene il fronte di salita dell'orologio, entrambi gli ingressi della porta AND sono alti, generando il segnale di abilitazione alto. Tuttavia, poco dopo l'orologio alto si propaga attraverso le porte non e l'uscita della porta AND diventa di nuovo bassa.

Puoi cronometrare abbastanza accuratamente scegliendo le dimensioni del transistor nelle porte NOT. L'impulso di abilitazione ha la lunghezza giusta affinché il segnale cambi una volta nel registro a scorrimento e non abbia una propagazione multipla. Questo dipende ovviamente dal processo ed è piuttosto difficile da ottenere.


1
Non sono d'accordo con te su questo. L'aggiunta di quel circuito a un latch lo rende semplicemente un "latch di impulsi": eetimes.com/document.asp?doc_id=1271447 Per convertire un latch in un flip flop (vero FF) prendi due latch, rimettili indietro e dare loro clock di fase opposti come abilita. Puoi farlo con qualsiasi tipo di fermo. JK, D, SR, ecc .; non importa: la differenza fondamentale tra un latch e un flip flop sta nella topologia master-slave.
jbord39,

1
Inoltre, semplicemente non è vero. I latch a impulsi SONO utilizzati, ma devono essere fortemente marginati a causa della loro natura più dinamica. Ad esempio, è necessario assicurarsi che l'impulso sia sufficientemente lungo da consentire la scrittura dei dati a bassa e alta tensione, a tutte le temperature e negli angoli di processo. Questo è certamente possibile, ma probabilmente 3-5 volte più difficile di un tradizionale infradito master-slave.
jbord39,
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.