Metastability

X

xstal

Guest
Hei,

Jeg vil vite hvordan vi kan synkronisere en asynkron innspill slik at jeg kan unngå metastability?

En løsning er å legge to flops i serien (synchroniser) på asynkron skriving.Men dette fungerer bare hvis metastability perioden floppen er mindre enn klokken perioden oppsett tid av neste floppen.dvs. floppen kommer ut av metastability godt før tidspunktet vindu av neste floppen.

Min tvil er at hvis metastability perioden er høyere enn eller lik en klokke periode, og hvordan vi skal unngå metastability??Er det noen løsning ??????

 
Den eneste måten å håndtere en virkelig async skriving er å kjøre det gjennom en flopp kjeden sychronize det.

Hvis async skriving har en ukjent fase til den interne klokke, men du er sikker på at denne fasen vil være konstant for noen intervall, kan du bruke dual floppen tilnærming.Form to kjeder av sychronizers, en bruker stigende kanten flops og en bruker fallende kanten flops.(Deretter velge en med den beste utgang. Når du er i den andre klokken domene, kan du enkelt flytte fra fallende kant klokken tilbake til den stigende kanten.) Hver gang en hendelse skjer som slås av, må du igjen gjøre den syncronizer utvelgingsprosessen igjen.

Mest FPGAs er metastability herdet.De ikke gå inn i langsiktige metastabile stater.Se på apps notater for logikken familien du bruker, er dette antakelig diskuteres.Derfor floppen kjeden fungerer fordi hvis du savne oppsett tid for første døgnet, vil du mer enn at det for neste døgnet.Dette forutsetter at de to klokke priser er like, eller at det er overgangen fra en tregere ekstern klokke til en raskere interne klokke.

Hvis den eksterne klokke er raskere enn interne klokke, og du har et problem!Den eneste gode løsningen på dette er et dual port FIFO.Siden eksterne klokke er raskere, kan dataene bare kommer i serieopptak eller FIFO vil raskt overflow.

 
hvor kan finne noen doc for det?

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Veldig Glad" border="0" />
 
Jeg vil gjette skrive FPGA eller CPLD leverandører navn og ordet metastability i en søkemotor.Når jeg googled "Xilinx metastability", fikk jeg mange treff.For eksempel

http://www.xilinx.com/bvdocs/appnotes/xapp094.pdf

 
Takk banjo for å svare og å sette ting sammen.Men spørsmålet mitt er fortsatt ikke besvart.
Takk

 
Jeg antar vi ikke forstå den virkelige spørsmålet da.Hvis du har en virkelig async tilfelle, må vare lenger enn en periode av fangst klokke.Ellers signalet er aldri aktiv i en klokke kanten og du savne pulsen helt.

Så,
etter å ha sett de lavere puls bredden på async hendelsen clock_period bordtennis klokken perioden pluss litt, er det to mulige puls bredde innenfor delen.Først får du en puls 1 klokken bredt, eller på grunn av enten meta hendelser eller plasseringen av async tilfelle en puls 2 klokker bredt.Denne gangen forvrengning er en juvel av prøvetaking en async hendelse og det er ingenting du kan gjøre med det.
Ovennevnte kommentarer holder generelt for prøvetaking klokker frekvenser under 200MHZ i de fleste FPGAs forutsatt at du også dobbelt buffer input som tidligere beskrevet.Fremfor 200MHZ er det en liten sjanse for at det kan tid forvrenge til en ekstra klokke syklus eller to.Dette er fordi hvis du overgangen til async hendelse på akkurat den rette punktet kan du låse opp floppen for en kort periode.

Ovennevnte ble forutsatt at async pulsen er normalt en null og pulser til en kort tid.Dersom det er normalt ett deretter det samme skjer bare logikken nivåer reverseres.

True metastability hendelsene er sjeldne i moderne FPGAs og logikk.I min erfaring, unexplained events at folk først skylden på metastability har i alle fall senere vist seg å være logiske feil eller software feil.Se på tallene FPGA docs, den probablities de Sitat svært svært lav.

 

Welcome to EDABoard.com

Sponsor

Back
Top