Beginners Guide To Clock Data Recovery
Hvis du er ny til en verden av design og verifisering, har du sannsynligvis mange spørsmål! En av dem kan gjelde et viktig element – Klokken Datarekonstruksjon. I denne bloggen prøver vi å avmystifisere denne prosessen.
formålet med å designe ulike protokoller er å overføre et sett med informasjon (data) fra ett sted til et annet. Ofte brukes seriell datakommunikasjon til å overføre dataene med høy hastighet. På mottakerens ende må de overførte dataene hentes uten å miste integriteten med den medfølgende timinginformasjonen. Denne prosessen kalles Klokke Og datarekonstruksjon.
i denne artikkelen skal vi utdype KRAVENE TIL CDR og hvordan det fungerer, hvordan å takle problemer som jitter og PPM i modellering AV CDR.
BTW, HVIS du bruker mye tid på å stirre på bølgeformer, prøver å gi mening, kan protocol debug tool (PDA) være interessant for deg. Ta en titt på en kort 3 minutters demo her (Ingen øretelefoner? Ingen bekymringer! Den har undertekster!).
Ulike Teknikker For Datakommunikasjon:
før DU starter PÅ CDR, vil vi se på forskjellige teknikker for datakommunikasjon, som er:
1. Seriell Datakommunikasjon
i seriell kommunikasjon overføres databiter sekvensielt en etter en.
2. Parallell Datakommunikasjon
i parallell kommunikasjon blir databiter drevet på flere ledninger samtidig.
ved å se på tallene ovenfor kan man enkelt dømme at parallell kommunikasjon vil bli mye raskere enn seriell kommunikasjon.
men så oppstår spørsmålet, hvorfor er seriell kommunikasjon foretrukket over parallell kommunikasjon???
dette skyldes at parallell kommunikasjon i praksis ikke er raskere enn seriell kommunikasjon. Dette skyldes følgende grunner –
a) Skew
Reiselengden for hver bit kommer til å være annerledes.På grunn av dette kan noen biter komme tidlig eller før enn andre som kan ødelegge informasjonen.
for å løse dette kan du pad biter. Men dette ville være på bekostning av fart som det vil redusere hastigheten på hver kobling til den tregeste av alle.
b) inter symbol interferens og Cross talk
PÅ grunn AV flere parallelle koblinger ISI OG Cross talk er innført i systemet som blir mer alvorlig som lengden på koblingen er økt. Så dette begrenser lengden på en tilkobling.
c) Begrensning av antall i / O-pin
Parallell datakommunikasjon krever mye mer i / O-pins enn det som kreves av seriell datakommunikasjon.
Hva Er Klokke Datarekonstruksjon?
siden de fleste høyhastighets serielle grensesnitt ikke har noen medfølgende klokke, må mottakeren gjenopprette klokken for å prøve dataene på serielle linjer.
for å gjenopprette samplingsklokken trenger mottakeren en referanse en klokke med omtrent samme frekvens. For å generere den gjenopprettede klokken, må mottakeren fase justere referanseklokken til overgangene på innkommende datastrøm. Dette kalles Som Klokke utvinning.
Prøvetaking av det innkommende datasignalet med gjenopprettet klokke for å generere en bitstrøm kalles Som datagjenoppretting. Sammen kalles Dette Clock Data Recovery, ELLER CDR.
CDR er nødvendig for å gjenopprette data fra innkommende datastrøm i fravær av medfølgende klokkesignal, uten noen bitfeil på grunn av over / under prøvetaking.
Hvordan Klokke Data Utvinning Arbeid?
de to hovedfunksjonene for å utføre CDR er frekvensdeteksjon og fasejustering.
I) Frekvensdeteksjon
det er en prosess for låsing på en frekvens som hentes fra innkommende datastrøm. Dette gjøres ved å oppdage tidsforskjellen mellom to påfølgende kanter på datastrømmen.
denne låste frekvensen brukes til å regenerere den overførte databitstrømmen.
for å gjøre deg mer kjent med frekvensdeteksjon, la meg gi deg en analogi med tegnsetting i en setning. Du har kanskje observert at når en vei gjennomgår reparasjonsarbeid byggefirmaet setter opp en skjerm melding på et bord for å bremse ned biler som passerer. Den meldingen er noe som dette –
SAKTE, MENN på JOBB
nå Hvis den samme meldingen er skrevet uten riktig tegnsetting, kan det innebære noe helt annet! –
SAKTE MENN på JOBB
Tegnsetting er som oppdaget frekvens. Hvis låst på en feil frekvens som vil føre til feil datainnsamling!
Så spørsmålet her er hvordan du prøver en innkommende databitstrøm riktig?
en løsning som kommer til å tenke umiddelbart, er å prøve bitstrømmen på samme frekvens som den ble overført.
for å gjøre det må man generere klokken på mottakeren med samme frekvens som data ble overført. Men det er ikke mulig å generere to klokker med nøyaktig samme frekvens ved å bruke to forskjellige klokkegeneratorer, selv om de har samme spesifikasjoner.
det Er Heller Ikke mulig å generere en klokke med en presis frekvens.
samtidig kan en liten forskjell i samplingsfrekvens føre til en bitfeil som beskrevet i følgende diagram:
Som vist i figuren ovenfor, blir en enkelt bit samplet to ganger på grunn av en minuttforskjell I TX og RX-frekvens.
hvordan genereres ellers en klokke med samme frekvens AV ‘TX clock’?
Dette kan gjøres ved å sjekke kantene på innkommende data bit stream.Men i denne prosessen går de første bitene som blir vant til å oppdage frekvensen, tapt. For å løse dette overføres et bestemt sett med bitsekvenser før overføring av gyldige data. Disse sekvensene kalles som treningssekvenser. Treningssekvenser har svært høy kanttetthet, slik at mottakeren enkelt kan låse på en frekvens ved å sjekke de påfølgende kantene på ledningen før starten av gyldige data. Nedenfor viser figuren en sekvens med hoy kanttetthet.
Frekvens fra innkommende data bit stream har blitt gjenopprettet. RX klokke kan nå genereres basert på gjenvunnet frekvens.
ovennevnte gjenvunnet frekvens er greit for et ideelt tilfelle når det ikke er noe støy introdusert i overføring, dvs. Også data er en integrert multiplum AV TX Klokke periode. Men det er ikke sant praktisk talt, så det er en rekke attributter som påvirkerdataoverføring og forvrenge ensartethet av klokke.
under figuren viser en sanntidsklokke som har variasjoner i sin periode.
det er hovedsakelig to attributter som påvirker mest høyhastighets seriell datakommunikasjon-
A) Jitter:
Jitter er et skifte i kantene av et periodisk signal. Dette bryter signalets periodicitet.
Jitter er en kortsiktig effekt. Det følger Gaussisk fordeling, derfor er gjennomsnittet av jitter null, dvs. den kumulative effekten av jitter er null.
Siden det er et skifte i kantene av klokkesignalet på grunn av jitter, er spørsmålet hva er den optimale posisjonen for å prøve litt?
en bit bør prøves i midten. Det er den optimale posisjonen der maksimal forskyvning i kantene på hver side (fra venstre til høyre eller høyre til venstre) kan oppstå. Men hvis skiftet i en kant blir større enn halvparten av bitperioden, vil det være litt feil.
B) ppm (deler per million):
PPM er en unøyaktighet av visse komponenter (kvartskrystall ved klokkegenerator) i en krets som fører til generering av et signal med unøyaktig periode. PPM bryter ikke periodiciteten til et signal. SOM navnet sier, ER PPM en langsiktig effekt som angir unøyaktigheten i bitperioden over en million klokkesykluser. PPM er additiv eller subtraktiv i naturen.
Barehvis kumulativ effekt av jitter eller PPM i TX CLK blir mer enn halvparten AV RX CLK, vil det være feil på grunn av over / under prøvetaking.
et eksempel nedenfor viser hvordan pågående variasjoner i innkommende datastrøm kan påvirke datautvalget. Det samme eksemplet vil bli vurdert for å løse problemene når vi går videre.
RX CLK (FD) er frekvens låst under frekvens deteksjon. Som den innkommende datastrømmen blir samplet PÅ FD, som vist i den røde boksen, blir en enkelt bit samplet to ganger. Dette skjer på grunn av variasjonene i den innkommende databitstrømmen.
for å møte disse variasjonene i FREKVENSEN AV TX CLK, KOMMER DEN ANDRE funksjonen TIL CDR, Fasejustering i bildet. Dette justerer rx CLK kanter.
II) Fasejustering
Fasejustering er en prosess for å matche fasen av et signal med et annet signal. Her er det matchende fase av klokken gjenvunnet i frekvens deteksjon med innkommende data bit stream.
La meg gi deg en analogi for fasejustering.
du har kanskje sett en analog radio. Det er to knotter nemlig grov tune og finjustere på analog radio. Når man ønsker å lytte til noen hørbare signaler, grov tune knotten brukes til å låse på en frekvens der signalene er hørbare, men med noen forstyrrelser. Her grov melodi er så god som frekvens deteksjon og forstyrrelser er jitter OG PPM. For å fjerne disse forstyrrelser og gjøre stemmen hørbar, finjustere knotten brukes som justerer pre låst frekvensen litt her og der for å få en perfekt lydsignaler. Her finjustering er beslektet med fasejustering.
Følgende regler må følges for Fasejustering:
- hvis en overgang oppdages på ledning, gjør du nivå AV RX CLK (FD+PD) = 1.
- HVIS RX CLK (FD) – perioden er fullført etter en posedge på RX CLK (FD + PD)og ingen overgang oppdages på ledning, må du hevde posedge AV RX CLK (FD+PD).
HER ER rx CLK(FD) klokkefrekvens låst under frekvensdeteksjonsprosessen og RX CLK(FD+PD) er klokkefrekvens under fasejusteringsprosessen.
Det er på tide å se på arbeidet med fasejustering. La oss ta det samme eksemplet som ble vurdert tidligere for PPM jitter.
her klokke periode RX CLK (FD) = 10
Klokker som ikke har blitt tildelt med en periode i figuren har som standard periode på 10.
i figuren ovenfor har vi tidligere sett at siste bit ble samplet to ganger som følge av kontinuerlig konstant variasjon (fra 10 til 12) I TX CLK (kan skyldes PPM).Men nå, som vist i rød boks, blir biten samplet riktig.
i DEN første TX-klokkesyklusen er perioden 10 tidsenhet som er låst etter frekvensdeteksjon og reflekteres også PÅ RX CLK (FD+PD). I henhold til regel 1 vil kanten på data gjøre nivået AV RX CLK (FD + PD)til 1 (betegnet med første prikkede pil). Deretter vil negedge bli hevdet PA RX CLK (FD + PD)etter halvparten av RX CLK(FD) perioden. Deretter vil posedge bli hevdet PÅ RX CLK (FD+PD) avhengig av halvparten AV RX CLK (FD) periode eller overgang på DATA avhengig av hva som kommer først (regel nummer 2).
på sjette OG syvende TX klokke syklus databitene er 0 og 0, ingen overgang på linje. Så RX CLK (FD+PD) vil følge regel nummer 2 for å ha en klokkeperiode PÅ RX CLK(FD), avbildet i første syklus AV RX CLK (FD+PD) i rød boks. Siden perioden for syvende klokke syklus er 12 tidsenhet, vil overgang PÅ DATA skje etter 2 tidsenhet enn forventet. NÅ rx CLK(FD+PD) allerede hevdet posedge og begynner å vente på ferdigstillelse av halvparten AV RX CLK (FD) periode for å hevde negedge PÅ RX CLK (FD+PD). Men etter ferdigstillelse av 2 tidsenhet, en overgang blir oppdaget som fører til å starte ventetiden på halvparten AV RX CLK(FD). Det fører til negedge AV RX CLK (FD+PD) etter 7 tidsenhet i stedet for 5 (dvs. halvparten AV RX CLK (FD) periode). Deretter posedge etter 5 tidsenhet (2. syklus AV RX CLK (FD + PD)i rød boks). På samme måte justerer fasejusteringen klokkeperioden basert på konstante variasjoner i innkommende datastrøm.
under figuren viser negativ jitter tilfelle…
den tredje TX-klokkeperioden har blitt variert fra 10-tidsenhet til 7-tidsenhet på grunn av negativ jitter. Denne variasjonen oppstod riktig ved fasejustering som vist i rød boks.
posedge på RX CLK(FD+PD) oppstår som overgang oppdaget PÅ DATA. Negedge på RX CLK (FD+PD) oppstår etter fullføring av halvparten AV RX CLK (FD) periode. Nå er en overgang sett PÅ DATA før fullføring av halvparten AV RX CLK (FD) periode som fører til et nivå overgang fra 0 til 1 PÅ RX CLK (FD+PD) (vist med 3.buet prikket pil).
under figuren viser positiv jitter saken…
Femte TX klokke periode har blitt variert fra 10 tidsenhet til 13 tidsenhet på grunn av positiv jitter. Denne variasjonen oppstod riktig ved fasejustering som vist i rød boks.
RX CLK(FD+PD) vil følge regel nummer 2 for å ha en klokkeperiode PÅ RX CLK (FD), avbildet i første syklus AV RX CLK (FD+PD) i rød boks. Siden perioden for femte klokke syklus er 13, vil overgang PÅ DATA skje etter 3 tidsenhet enn forventet. NÅ HEVDER RX CLK (FD + PD)allerede posedge og begynner å vente på ferdigstillelse av halvparten av rx CLK (FD) periode for å hevde negedge på RX CLK (FD+PD). Men etter ferdigstillelse av 3 tidsenhet, en overgang blir oppdaget som fører til å starte ventetiden på halvparten AV RX CLK(FD). Det fører til negedge AV RX CLK (FD+PD) etter 8 tidsenhet i stedet for 5 (dvs. halvparten AV RX CLK (FD) periode). Deretter posedge etter 5 tidsenhet (2. syklus AV RX CLK (FD + PD)i rød boks).
Det handlet om arbeidsprosess med fasejustering.
En advarsel…!
det er ett problem som ikke dekkes av frekvensdeteksjon og fasejustering! Fasejustering fungerer ved overgang i innkommende datastrøm. Det er imidlertid mulig å ha lang identisk bitstrøm som ikke har noen overgang i den. I dette tilfellet hvis kumulativ skift i en kant blir mer enn halvparten av gjenopprettet klokkeperiode(RX CLK (FD)), vil det føre til bitfeil og prøve dataene feil.
for å løse dette problemet behandles bitsekvenser med ulike typer koding før de sendes på ledning. Dette begrenser antall påfølgende identiske biter til et visst nivå. Dette reduserer sannsynligheten for å nærme seg det kumulative skiftet til mer enn halvparten AV RX CLK (FD).
for EKSEMPEL i USB 3.0 blir databitene behandlet MED 8b10b-koding før de overføres på en ledning.
nedenfor figuren beskriver atferds blokkdiagram AV CDR
Innkommende datastrøm sendes som inngang TIL fd (frekvensdetektor), ED(kantdetektor) og En d-flip-flop. Frekvensdetektor genererer en frekvens basert på treningssekvenser. Edge detector gir utgang når den oppdager en overgang på innkommende data. Utgangene til frekvensdetektor og kantdetektor passerte som inngang til klokkegeneratorblokk som genererer en klokke for å prøve dataene. Denne genererte klokke og innkommende data sendes Til d flip flop å regenerere bit stream.
under figuren viser flytskjema for klokke generasjon etter fase justering
RX CLK (FD+PD) vil bli initialisert til enten 1 eller 0. Etter initialisering vil to parallelle prosesser starte, vent timer for halvparten AV RX CLK (FD) tid og kantdeteksjon på innkommende data. Det som er fullført først ut av de to parallelle prosessene, vil deaktivere den andre prosessen. Hvis timeren ble tidsavbrutt før noen kant oppdages, vil den sjekke for dagens NIVÅ AV RX CLK (FD+PD). Hvis NIVÅET AV RX CLK (FD+PD) er 1, så gå til” RX CLK(FD+PD)=0 “aktivitet og tilbakestill RX CLK (FD+PD) til 0 ellers gå til” RX CLK(FD+PD)=1 ” aktivitet. Start begge parallelle prosesser på nytt og vent på ferdigstillelse av en av dem. Hvis en kant oppdages før ferdigstillelse ventetimer, flytt deretter til” RX CLK(FD+PD)=0 ” aktivitet og sett NIVÅET PÅ RX CLK (FD + PD) til 1.Start begge parallelle prosesser på nytt og vent på ferdigstillelse av en av dem.
jeg håper denne artikkelen vil hjelpe ingeniører til å modellere klokken og datarekonstruksjon.
Forfatter: Deepak Nagaria med Aditya Mittal