FPGA Nulstil gennemførelsen

G

Guybrush

Guest
Jeg forsøger at designe en pålidelig projekt i en FPGA ACTEL, for rummet ansøgning.Denne teknologi har F / F med asynkront procedurekald forudindstilling eller klar.Så jeg stillede et simpelt POR kredsløb med en lang tidskonstant, således at oscillatoren allerede vil producere en stabil ur, mens reset er frigivet.Men jeg tror, at visse tidsmæssige brud kan opstå, når nulstillingen er frigivet tæt på de stigende uret kant, på grund af skew, at der i et signal sendes videre til de enkelte F / F kan være høj.Min løsning var at gøre det nulstille asynkront men deassert det på en stigende kanten af systemets ur.Du tror, at dette er den bedste løsning eller ej?Tak.

 
Nulstil genererer altid kontroverser.Jeg har designet flere FPGA til rummet, altid Actel enheder, og min filosofi om en generel nulstilling er, at skal gøres gældende asynkront, men løsladt synkront.Du kan designe en simpel Synchronizer med tre registre.

En nulstilling som den foreslår jeg skal forbruge mere logik ressourcer, således at den maksimale clock frekvensen skal være nedsat (ikke et problem i de fleste rum applikationer), men du sikre, at alle FF's skal initialiseres på samme tid og dit design skal fungere korrekt.

Under alle omstændigheder vil jeg anbefale dig at analysere omhyggeligt din grænseflader at få et godt kendskab til bestyrelsen logik.Du kan være nødvendigt at gøre nogle særlige tilfælde.

 
En nulstilling skal altid være asynkron, du bare ikke kan vente på et stabilt ur til deassertion selvom du gøre det asynkront.Hvis du gør, skal du sørge for, at oscillatoren er stabil.Selv hvis uret aldrig bliver stabilt, Systemet, der holder i sæt eller nulstille tilstand ikke ville sagen meget.

Se nedenstående uddrag fra NASA's WIRE fiasko:

Dette afsnit er en forkortet omskrivning af den manglende undersøgelsesrapport, RD5, for Wide-Field Infrarød Explorer (WIRE) rumfartøjer.Der er flere andre fund i ovennævnte rapport, at der ikke er omfattet af dette dokument, da der uden for dens rækkevidde.

NASA WIRE rumfartøj blev lanceret i 1999 og et problem, blev opdaget under sit andet passere over jordstation, når rumfartøjet blev målt til spinning.Det blev bestemt af den manglende Review Board, at dækslet blev skubbet ud på omtrent det tidspunkt, at
Det WIRE Pyro kassen blev først tændt.Instrumentets solid brint cryogen levering begyndte at sublimere hurtigere end planlagt, hvilket rumfartøjet til at dreje op til en hastighed på tres omdrejninger i minuttet, når de sekundære cryogen ventilen var åben.Uden nogen fast brint
tilbage, kunne instrumentet ikke udføre sine bemærkninger.

Den sandsynlige årsag til WIRE uheld er logik design fejl.Den forbigående udførelsen af komponenter, var ikke fyldestgørende rede for i designet.Den manglende var forårsaget af to forskellige mekanismer, som enten enkeltvis eller i fællesskab, opstår utilsigtet pyroteknisk enhed
fyring i den indledende pyro boksen power-up.Den logik design udnyttede et synkront nulstille at tvinge den logik i en sikker tilstand.Men den opstartsfasen af krystal ur oscillator blev ikke taget i betragtning, at forlade banen i en ikke-deterministisk tilstand i en længere periode.Ligeledes opstarten karakteristika FPGA blev ikke anset.Disse enheder er ikke garanti for at følge deres sandhed bordet, indtil en intern afgift pumpe starter den del, og den ukontrollerede output ikke blev blokeret fra pyrotekniske enheder 'driver kredsløb.En medvirkende faktor til det pågældende uheld var den manglende dokumentation for FPGA's power-up forbigående karakter i enheden datablad.Disse oplysninger er imidlertid tilgængelige i FPGA Data Book og design guide i to ansøgning noter.

Mindst tre konklusioner kan drages af WIRE Uheld:
udformning bør aldrig stole på den standard værdi af enheden produktionen i power-up
designere bør løbende indsamle og læse alle tilgængelige enhed dokumentation
der bør være en direkte asynkron sti fra reset input til initialisering enhedens tilstand, er uafhængig af enhver ur aktivitet

 
Jeg er enig med din kommentar "forsinkelse" Jeg var klar over WIRE fiasko, og det går i den linje af mine kommentarer.Jeg har designet flere pyrothecnics registeransvarlige og den bedste løsning er brugen af eksterne tri-state buffere, der er aktiveret ved hjælp af din power-on reset.Som du bemærkning du skal vide, at din oscillator kan have en start-tid fra 10 til 100 ms (så din POR skal være aktiv i et stykke tid> 100ms), men også, at afhængigt af den stigende tidspunkt for din levering produktionen stifter af din FPGAs kan køre de belastninger, uafhængigt af den tilstand dine nulstillet.
Endnu en gang må jeg sige nulstille sæt asynkront, men løsladt synkront og studere adfærd af alle komponenter i dit design i strømforsyningen op og lukke ned.

 

Welcome to EDABoard.com

Sponsor

Back
Top