Nel campo della comunicazione di rete, negli switch ATM, nei router di base, Gigabit Ethernet e in vari dispositivi gateway, la velocità dei dati di sistema e la velocità di clock continuano ad aumentare e anche la frequenza operativa del processore corrispondente sta diventando sempre più alta; Trasmissione dati, voce e immagini La velocità è molto superiore a 500Mbps e backplane di centinaia di megabyte e persino gigabyte stanno diventando sempre più comuni. L'aumento della velocità dei sistemi digitali significa che il tempo di salita e caduta del segnale è il più breve possibile e una serie di problemi di progettazione ad alta velocità causati dall'aumento della frequenza e della velocità di bordo del segnale digitale sono diventati sempre più prominenti. Quando il ritardo di interconnessione del segnale è superiore al 20% del tempo di capovolgimento del segnale del bordo, i fili del segnale sulla scheda mostreranno l'effetto della linea di trasmissione e questo disegno diventa un disegno ad alta velocità. L'emergere di problemi ad alta velocità ha portato maggiori sfide alla progettazione hardware. Ci sono molti disegni che sono corretti da un punto di vista logico. Se non sono gestiti correttamente nella progettazione PCB effettiva, l'intero progetto fallirà. Questa situazione sta perseguendo sempre più reti ad alta velocità. Il campo delle comunicazioni è ancora più evidente. Gli esperti prevedono che in termini di costi di progettazione del circuito hardware in futuro, il costo della progettazione delle funzioni logiche sarà notevolmente ridotto e il costo associato alla progettazione ad alta velocità rappresenterà l'80% o più del costo totale. Il problema dell'alta velocità è diventato uno dei fattori importanti per il successo della progettazione del sistema.
L'overshoot del segnale, il sottoshoot, la riflessione, il suono, il crosstalk, ecc. causati da problemi ad alta velocità influenzeranno seriamente la sequenza normale del sistema. La riduzione del margine di sequenza del sistema costringe le persone a prestare attenzione a vari fenomeni che influenzano la sequenza e la qualità delle forme d'onda digitali. Quando la tempistica diventa difficile a causa dell'aumento della velocità, non importa quanto approfondito il principio del sistema sia compreso in anticipo, qualsiasi ignoranza e semplificazione può portare gravi conseguenze al sistema. Nella progettazione ad alta velocità, l'impatto dei problemi di temporizzazione è più critico. Questo articolo discuterà in modo specifico l'analisi dei tempi e le strategie di simulazione nella progettazione ad alta velocità.
1 Analisi del tempo e simulazione della sincronizzazione dell'orologio comune
Nei circuiti digitali ad alta velocità, la trasmissione dei dati è generalmente controllata dall'orologio per inviare e ricevere segnali dati in modo ordinato. Il chip può inviare e ricevere dati solo secondo la tempistica prescritta. Un ritardo eccessivo del segnale o una corrispondenza impropria del ritardo del segnale possono causare violazione della tempistica del segnale e confusione funzionale. In un sistema a bassa velocità, fenomeni come ritardo di interconnessione e squillo sono trascurabili, perché in questo sistema a bassa velocità il segnale ha abbastanza tempo per raggiungere uno stato stabile. Tuttavia, in un sistema ad alta velocità, la velocità di bordo aumenta, la velocità di clock del sistema aumenta, il tempo di trasmissione del segnale tra i dispositivi e il tempo di preparazione della sincronizzazione sono abbreviati e la capacità e l'induttanza equivalenti sulla linea di trasmissione causeranno anche ritardo e distorsione nella conversione digitale del segnale. Accoppiato con la disallineazione del ritardo del segnale e altri fattori, influenzerà il tempo di installazione e di attesa del chip, con conseguente incapacità del chip di inviare e ricevere dati correttamente e il fallimento del sistema di funzionare normalmente.
La cosiddetta sincronizzazione comune dell'orologio significa che nel processo di trasmissione dei dati, l'estremità di guida e l'estremità di ricezione sul bus condividono la stessa sorgente dell'orologio, e lo stesso buffer dell'orologio (CLOCK BUFFER) invia un orologio in fase per completare la trasmissione dei dati e la ricezione. La figura 1 mostra un diagramma schematico di un tipico lavoro sincrono di invio e ricezione di dati dell'orologio comune. Nella Figura 1, l'oscillatore a cristallo CRYSTAL genera un segnale di uscita CLK_IN che raggiunge il distributore orologio CLOCK BUFFER. Dopo che il BUFFER CLOCK distribuisce e buffer, invia due orologi in fase, uno è CLKB, che viene utilizzato per l'uscita dei dati del DRIVER; L'altro è CLKA, che viene utilizzato per il campionamento dei dati inviati dal DRIVER al RECEIVER. L'orologio CLKB arriva al DRIVER dopo un tempo di volo di Tflt_CLKB (FLIGHT TIME). I dati interni del DRIVER sono bloccati da CLKB e vengono visualizzati sulla porta di uscita del DRIVER dopo TCO_DATA time. I dati di uscita raggiungono quindi la porta di ingresso di RECEIVER dopo un tempo di volo Tflt_DATA; Sulla porta di ingresso di RECEIVER, utilizzare un altro orologio CLKA generato da CLOCK BUFFER (il ritardo è il tempo di volo dell'orologio CLKA, cioè, Tflt_CLKA) per campionare e bloccare questo lotto di dati dal DRIVER, completando così la trasmissione dei dati di un ciclo di clock del processo dell'orologio COMUNE.
Il processo di cui sopra mostra che i dati che arrivano a RECEIVER sono campionati dal bordo ascendente del ciclo successivo dell'orologio. In base a questo, si possono ottenere due condizioni necessarie per la trasmissione dei dati: 1. I dati all'ingresso di RECEIVER generalmente hanno il tempo di setup richiesto Tsetup. Significa che i dati devono essere validi prima del valore minimo di tempo dell'orologio. Il segnale di dati dovrebbe arrivare all'estremità di ingresso prima del segnale di clock, in modo che la disuguaglianza soddisfatta dal tempo di installazione possa essere ottenuta; 2. Per bloccare con successo i dati nel dispositivo, il segnale dati deve rimanere valido per un tempo sufficiente all'ingresso del chip ricevente per garantire che il segnale sia bloccato correttamente dal campione dell'orologio. Questo periodo di tempo è chiamato tempo di attesa. Il ritardo di CLKA deve essere inferiore al tempo non valido dei dati (INVALID). La disuguaglianza soddisfatta dal tempo di attesa può essere ottenuta.
1.1 Analisi temporale del tempo di creazione dei dati
Secondo la prima condizione, il segnale dati deve arrivare all'estremità ricevente prima dell'orologio CLKA per bloccare correttamente i dati. Nel bus di clock comune, la funzione del primo ciclo di clock è di bloccare i dati all'uscita del DRIVER e il secondo ciclo di clock per bloccare i dati all'interno del RECEIVER, il che significa che il tempo per il segnale di dati per raggiungere l'ingresso del RECEIVER dovrebbe essere sufficientemente precedente del segnale di clock CLKA. Per soddisfare questa condizione, è necessario determinare il ritardo per i segnali di clock e di dati per raggiungere il RECEIVER e garantire che i requisiti di tempo di configurazione del ricevitore siano soddisfatti. Qualsiasi periodo di tempo più lungo del tempo di impostazione richiesto è il margine di tempo di impostazione Tmargin. Nel diagramma temporale della figura 1, tutte le linee di freccia indicano i ritardi generati dai segnali di dati e dai segnali di clock all'interno del chip o sulla linea di trasmissione. Le linee di freccia sottostanti indicano il ritardo totale dal primo bordo dell'orologio valido ai dati che raggiungono l'input RECEIVER., La linea di freccia in alto rappresenta il ritardo totale dell'orologio ricevuto CLKA. Il ritardo totale da quando il primo bordo dell'orologio è valido a quando i dati arrivano all'ingresso RECEIVER è:
TDATA_DELAY=TCO_CLKB+Tflt_CLKB+TCO_DATA+Tflt_DATA
Il ritardo totale del ciclo successivo dell'orologio ricevente CLKA è:
TCLKA_DELAY=TCYCLE+TCO_CLKA+Tflt_CLKA
Per rispettare l'orario di creazione dei dati, devono essere:
TCLKA_DELAY_MIN-TDATA_DELAY_MAX-Tsetup-Tmargin>0
Dopo aver sviluppato e considerato fattori come clock jitter, Tjitter, otteniamo:
TCYCLE+(TCO_CLKA_MIN-TCO_CLKB_MAX)+ (Tflt_CLKA_MIN-Tflt_CLKB_MAX)-TCO_DATA_MAX-Tflt_DATA_SETTLE_DELAY_MAX-Tjitter-Tsetup-Tmargin>0 (1)
In formula (1), TCYCLE è un ciclo di orologio dell'orologio; nella prima staffa è la differenza massima di fase tra l'orologio CLOCK BUFFER clock di uscita CLKA e CLKB chip, che nel manuale è chiamato obliquo di uscita-uscita; È la differenza massima di ritardo tra i due orologi CLKA e CLKB in uscita dal chip CLOCK BUFFER per raggiungere rispettivamente il RECEIVER e il DRIVER.
Nella formula (1), TCO_DATA si riferisce all'intervallo di tempo che va dall'attivazione dell'orologio al momento in cui i dati appaiono sulla porta di uscita e raggiungono la soglia della tensione di prova Vmeas (o VREF) in determinate condizioni di carico e di prova. La dimensione di TCO_DATA è correlata al ritardo logico interno del chip. Tempo, caratteristiche buffer OUTPUT BUFFER, condizioni di carico in uscita sono direttamente correlate, TCO può essere trovato nella scheda tecnica del chip.
Secondo la formula (1), ci sono in realtà solo due parti regolabili: Tflt_CLKB_MIN-Tflt_CLKB_MAX e Tflt_DATA_SETTLE_DELAY_MAX. Per soddisfare solo il tempo di installazione, Tflt_CLKA_MIN dovrebbe essere il più grande possibile, mentre Tflt_CLKB_MAX e Tflt_DATA_SETTLE_DELAY_MAX dovrebbero essere il più piccolo possibile. In sostanza, è necessario che l'orologio ricevente arrivi più tardi e i dati arrivino prima.
1.2 Analisi temporale dei tempi di conservazione dei dati
Per bloccare correttamente i dati all'interno del dispositivo, il segnale dati deve rimanere valido all'ingresso del chip ricevente per un tempo sufficiente a garantire che il segnale sia bloccato correttamente dal campione dell'orologio. Questo periodo di tempo è chiamato tempo di attesa. Nel bus di clock comune, il buffer terminale ricevente utilizza il secondo bordo dell'orologio per bloccare i dati e allo stesso tempo l'estremità del driver blocca i dati successivi all'estremità di invio dei dati. Pertanto, al fine di rispettare il tempo di attesa dell'estremità ricevente, è necessario assicurarsi che i dati validi siano bloccati nel flip-flop terminale ricevente prima dell'arrivo del prossimo segnale dati. Ciò richiede che il ritardo dell'orologio ricevente CLKA sia inferiore al ritardo del segnale dati ricevente.
E il ritardo dei dati:
TDATA_DELAY=TCO_CLKB+Tflt_CLKB+TCO_DATA+Tflt_DATA_SWITCH_DELAY
Se si desidera rispettare il tempo di conservazione dei dati, è necessario disporre di:
TDATA_DELAY_MIN-TCLKA_DELAY_MAX-Thold-Tmargin>0
Espandere, organizzare e considerare fattori come clock jitter Tjitter, la seguente relazione può essere ottenuta:
(TCO_CLKB_MIN-TCO_CLKA_MAX)+(Tflt_CLKB_MIN-Tflt_CLKA_MAX)+TCO_DATA_MIN+Tflt_DATA_SWITCH_DELAY_MIN-Thold-Tmargin-Tjitter>0 2
Nella formula (2), la prima staffa è ancora la differenza di fase massima tra l'orologio di uscita del chip CLOCK BUFFER; La seconda staffa continua ad essere intesa come i due orologi CLKA e CLKB output dal chip clock raggiungono rispettivamente RECEIVER e DRIVER Per soddisfare il tempo di conservazione dei dati, ci sono solo due parti effettivamente regolabili, vale a dire Tflt_CLKB_MIN-Tflt_CLKA_MAX e Tflt_DATA_SWITCH_DELAY_MIN. Dal punto di vista di soddisfare il tempo di attesa da solo, Tflt_CLKB_MIN e Tflt_DATA_SWITCH_DELAY_MIN dovrebbero essere il più grande possibile, e Tflt_CLKA_MAX dovrebbe essere il più piccolo possibile. In altre parole, se si desidera rispettare l'orario di attesa, è necessario far arrivare l'orologio di ricezione presto e i dati devono essere non validi in seguito.
Al fine di ricevere correttamente i dati, il tempo di istituzione e di conservazione dei dati devono essere considerati in modo completo, cioè sia (1) che (2) sono soddisfatti allo stesso tempo. Analizzando queste due disuguaglianze, si può vedere che ci sono solo tre modi per regolare: inviare ritardo dell'orologio, ricevere ritardo dell'orologio e ritardo dei dati. Lo schema di regolazione può essere eseguito come segue: In primo luogo, supponiamo che il ritardo dell'orologio di trasmissione sia strettamente uguale al ritardo dell'orologio di ricezione, cioè, Tflt_CLKA_MIN-Tflt_CLKB_MAX =0 e Tflt_CLKB_MIN-Tflt_CLKA_MAX =0 (la deviazione di temporizzazione causata dalle ipotesi di queste due equazioni sarà considerata più tardi), E poi l'intervallo di ritardo dei dati può essere ottenuto attraverso la simulazione. Se il ritardo dei dati non ha soluzione, tornare alle due equazioni di cui sopra per regolare il ritardo dell'orologio di invio o ricevere il ritardo dell'orologio. Quanto segue è un esempio della trasmissione e ricezione dei dati di sincronizzazione dell'orologio comune del bus GLINK in uno switch di rete a banda larga: In primo luogo, presumere che il ritardo dell'orologio di invio sia strettamente uguale al ritardo dell'orologio di ricezione, quindi determinare l'intervallo di ritardo dei dati e sostituire i parametri, (1) e (2) rispettivamente Diventa:
1.5-Tflt_DATA_SETTLE_DELAY_MAX-Tmargin>0
0.5+Tflt_DATA_SWITCH_DELAY_MIN-Tmargin>0
Sotto il prompt di disuguaglianza, combinato con l'attuale layout PCB, determinare Tflt_DATA_SETTLE_DELAY_MAX<1.1; tflt_data_switch_delay_min>-0.1, e il margine rimanente 0.4ns viene assegnato alla differenza di tempo e Tmargin dei due orologi. Estrarre la topologia in SPECTRAQUEST ed eseguire la simulazione dell'integrità del segnale per determinare la lunghezza della linea e la topologia di ogni segmento. Eseguire la simulazione di scansione completa su questa struttura (un totale di 12 combinazioni), e ottenere Tflt_DATA_SETTLE_DELAY_MAX=1.0825 Tflt_DATA_SWITCH_DELAY_MIN =-0.0835004, che soddisfa il determinato 1.1 e
Indice di intervallo 0,1. Da questo si possono tracciare le regole di vincolo della linea dati bus GLINK: 1. Il ritardo dalla resistenza di corrispondenza all'estremità di invio non dovrebbe essere superiore a 0,1ns;
2. La linea dati deve essere abbinata in 0.1ns, cioè, ogni linea dati deve essere compresa tra 0.65ns e 0.75ns. Con le regole di vincolo sopra, il cablaggio può essere guidato.
Successivamente, considerare l'impatto delle rigide normative "Tflt_CLKA_MIN-Tflt_CLKB_MAX=0 e Tflt_CLKB_MIN-Tflt_CLKA_MAX=0. Vincoli l'orologio di invio e quello di ricezione per avere la stessa lunghezza in anticipo (corrispondenti a 0,02ns in funzionamento effettivo). Nell'ambiente CADENCE viene eseguita la simulazione dell'orologio e il risultato è: |Interconnessione Tflt_CLKA_MIN-Tflt_CLKB_MA X|<0.2 e |tflt_clkb_min-tflt_clka_max|<0.2 . Si può vedere che il margine lasciato per tmargin è 0.2ns.
I risultati finali della simulazione sono: 1. Il ritardo tra la resistenza corrispondente e l'estremità di trasmissione non deve essere superiore a 0,1ns; 2. La linea di dati è abbinata a 0.1ns, cioè, ogni linea di dati deve essere compresa tra 0.65ns e 0.75ns; 3. l'invio dell'orologio e la ricezione L'orologio è abbinato con la stessa lunghezza di 0.02ns; 4. Tmargin=0.2ns. Con il modello topologico di cui sopra e le regole di vincolo, SPECTRAQUEST o ALLEGRO possono essere importati in CONSTRAINS MANAGER. Dopo aver impostato queste regole di vincolo di progettazione, è possibile utilizzare il router automatico per il cablaggio automatico guidato da regole o la regolazione manuale della linea.
2 Esempi di relazione di sincronizzazione della sorgente e simulazione
La cosiddetta sincronizzazione della sorgente significa che il segnale di clock gating CLK viene inviato dal chip di azionamento insieme ai dati di invio e non utilizza una sorgente di clock indipendente come la sincronizzazione dell'orologio comune. Nella trasmissione e ricezione sincroni dei dati di origine, i dati vengono prima inviati all'estremità ricevente e quindi inviati all'estremità ricevente dopo un breve periodo di tempo gating l'orologio per il campionamento e il blocco di questo lotto di dati. Il diagramma schematico è illustrato nella figura 2. L'analisi dei tempi della sincronizzazione delle sorgenti è più semplice di quella della sincronizzazione dell'orologio pubblico e il metodo di analisi è molto simile. La formula di analisi è riportata di seguito:
Tempo di installazione: Tvb_min+(Tflt_clk_min-Tflt_data_settl_delay_max)-Tsetup-Tmargin>0
Tempo di attesa: Tva_min+(Tflt_data_switch_delay min-Tflt_clk _max)-Thold-Tmargin>0
Tra questi, Tvb è il tempo di setup del driver, che indica quanto tempo i dati del driver sono validi prima che l'orologio sia valido; Tva è il tempo di attesa del mittente, che indica l'ora in cui i dati del conducente rimangono validi dopo la validità dell'orologio; altri parametri hanno lo stesso significato di prima. Ora prendete l'interfaccia TBI molto comune nel circuito di comunicazione come esempio per introdurre l'analisi del tempo di sincronizzazione della sorgente e il processo di simulazione. L'interfaccia TBI include principalmente l'invio di dati di invio di clock e 10bit, due orologi di ricezione e dati di ricezione 10bit. RBC0 e RBC1 sono due orologi riceventi. In Gigabit Ethernet, questi due orologi hanno una frequenza di 62.5MHz e una differenza di 180°. I bordi rialzati dei due orologi vengono utilizzati per bloccare i dati a turno. In base ai parametri temporali della scheda tecnica, si può ottenere la sostituzione con la formula di cui sopra:
2.5+ Tflt_clk _min-Tflt_data__settle_delay_max -1-Tmargin>0
1.5+ Tflt_data__switch_delay min-Tflt_clk _max -0.5-Tmargin>0
Imitare il metodo di analisi di cui sopra: Assumendo che il tempo di volo dell'orologio e delle linee di segnale dei dati sono rigorosamente uguali, cioè l'orologio e i dati sono completamente abbinati e quindi analizzare l'impatto della loro disallineazione. La formula di cui sopra diventa
1,5-Tmargine>0
1-Tmargin>0
Si può vedere che c'è un ampio margine sia per il tempo di installazione che per il tempo di attesa. Dopo la simulazione, si scopre che i dati e l'orologio sono esattamente la stessa lunghezza (prendere 0,02ns corrispondenza come esempio), e c'è ancora una differenza di 0,3ns, cioè,
Tflt_clk_min-Tflt_data_settl_delay_max <0,3< p="">
Tflt_data_switch_delay min-Tflt_clk_max <0.3< p="">
Prendere Tmargin=0.5ns per ottenere la corrispondenza tra l'orologio e i dati come 0.2ns, cioè, la corrispondenza di lunghezza tra i dati e l'orologio non dovrebbe superare 0.2ns.
Nella simulazione effettiva, l'integrità del segnale dell'orologio e dei dati viene analizzata e simulata in primo luogo, e una forma d'onda ricevuta migliore può essere ottenuta attraverso una corretta corrispondenza di terminazione. La figura 3 è un insieme di diversi confronti di forme d'onda di simulazione di corrispondenza passiva dell'estremità e linee di clock attive di corrispondenza dell'estremità, da cui si può vedere che la simulazione dell'integrità del segnale è necessaria prima.
Nella sincronizzazione comune dell'orologio, la trasmissione e la ricezione dei dati devono essere completati entro un ciclo di clock. Allo stesso tempo, il ritardo del dispositivo e il ritardo delle tracce PCB limitano anche la frequenza di funzionamento teorica massima del bus orologio comune. Pertanto, la sincronizzazione di clock comune è generalmente utilizzata per velocità di trasmissione inferiori a 200MHz a 300MHz. Per trasmissioni superiori a questa velocità, dovrebbe essere generalmente introdotta la tecnologia di sincronizzazione delle sorgenti. La tecnologia di sincronizzazione della sorgente funziona in un sistema di clock relativo, utilizzando la trasmissione parallela dei dati e dell'orologio, la velocità di trasmissione è determinata principalmente dalla differenza di tempo tra i dati e il segnale dell'orologio, in modo che il sistema possa raggiungere una velocità di trasmissione più elevata. Attraverso l'analisi dell'integrità del segnale, l'analisi di temporizzazione e la simulazione della scheda host e figlia dello switch Ethernet a banda larga, l'autore accorcia notevolmente il ciclo di progettazione del prodotto e risolve efficacemente l'integrità del segnale, la temporizzazione e altri aspetti della progettazione ad alta velocità attraverso l'analisi e la simulazione. Il problema, che garantisce pienamente la qualità di progettazione e la velocità di progettazione, raggiunge davvero un singolo passaggio della scheda PCB. La scheda principale e la scheda figlia sono stati debugged e trasferiti con successo alla produzione.