DRINGEND. Storingen in de productie

X

xman24

Guest
Hi .. Ik doe een beetje dingen detector module voor mijn project. toewijzen bit_stuff_detect = (ONES_COUNT == 3'd6 && ingang == 1'b0)? 1'b1: 1'b0; toewijzen bit_stuff_error = (ONES_COUNT == 3'd6 && ingang == 1'b1)? 1'b1: 1'b0; altijd @ (posedge CLK) {................................... ONES_COUNT
 
Hoi, Dus de glitch ontstaat als "input" gaat 1-0? Wordt ONES_COUNT gaan 111-000 tegelijkertijd dat "input" 0 gaat? Wat is de timing relatie tussen "input" en "posedege van clk"? Btw, is het altijd veilig om de decodering van een teller te synchroniseren, want er zijn gevallen waarin een combinatorische decoderen zal een glitch in silicium veroorzaken. dat wil zeggen: 011> 100 zou kunnen gaan door de staten 111 dan 101 dan 100. Zoals u kunt zien, zou als je het decoderen van 111 zou krijgen een glitch.
 
Bedankt voor het beantwoorden ... Ja, de de glitch er gebeurt als ingang gaat van 1 naar 0. De input zal veranderen alleen in de posedge van de klok .. ya wordt ONES_COUNT zal 0 als bereikt 6. dus de eigenlijke code is altijd @ (posedge CLK) beginnen als (input == 1) beginnen ONES_COUNT = ONES_COUNT +1; if (ONES_COUNT == 3'd6) beginnen ONES_COUNT = 3'd0; end end end
 
ok, dus de "input"-signaal gaat "actief" (0), terwijl het aantal gaat van "check" (110) te wissen (000). Dit is als de ingangen van een twee-NAND gaande 10 tot 01 onder doorleiden 11 >> storing. Kun je synchroniseren "input" of is "input" asynchrone? Nog beter, misschien kun je synchroniseren bit_stuff_detect en bit_stuff_error. De glitches kan en zal gebeuren, maar ze zullen niet worden bemonsterd.
 
i dint krijg de mededeling dat je zei over in-en NAND-gat .. en schakelen 01 tot 10, enz.. Ik krijg glitch, omdat, na de ONES_COUNT gaat naar 6 en asyncronously ik ben het controleren van mijn inbreng of de steeds 0 of 1. Mijn logische uitgang moet net als zijn, als ik een 0 in ingang na het tellen van 6 die dan bit_stuf_detect moet een voor de betreffende periode bij de ingang 0 eindigt. Mijn bit_stuff_error moet hoog als ONES_COUNT is 6 en ik als ik een ingang met 1 nogmaals, het moet asyncronuosly dus controleer dat ik de uitvoer te krijgen op hetzelfde moment als de ingang is 1 .. Maar deze logica leidt tot glitch .. Hoe te elimineren dit, is er een andere logica op het bovenstaande ding te implementeren?? En ik moet async bit_stuff_detect en bit_stuff_error hebben in mijn ontwerp ... Input wordt gesynchroniseerd met de klok .....
 
Hoi, Sorry voor de verwarring. Mijn NAND voorbeeld was te laten zien hoe silicium kan zich gedragen als je timing toe te voegen aan de logica; signalen niet direct aankomen, sommige sneller dan andere. Dit soort overgangen zorgt ervoor dat storingen op de uitgangen van de combinatorische logica, in feite krijgen we heel veel glitches in ontwerpen na elke klok overgang, we zijn gewoon niet bemonstering deze signalen tijdens de "de afwikkeling van de tijd". Nu voor uw probleem, is INPUT verandert op hetzelfde moment als ONES_COUNT, dit wil glitch op specifieke tijden. Niet wetende van het systeem specificatie, kan ik niet vertellen hoe je de-skew de signalen synchroon. Het enige wat ik kan zeggen, is dat het zinvol is om glitch en u beter niet de tijd / rust iets met de glitchy signalen. Weet je zeker dat je niet kunt bit_stuff uitgangen uit posedge van clk proeven? Dit zou je probleem opgelost, terwijl het uitstellen van de signalen een klok.
 
Hey! Dankzij .. Ik heb het punt dat je probeert te zeggen met NAND-poort! : Smile: Bedankt Dan, Over mijn probleem .. Eigenlijk heb ik cant synchroniseren mijn bit_stuff-uitgang, want het zal mijn uitgang uit te stellen door een klokpuls en van nu af, het zal mijn andere module uit te stellen .. Deze uitgangen zijn nodig voor het uitschakelen van een shiftregister werking voor de periode van een klok, zodat de gevulde bit niet wordt verschoven in het register in het volgende blok dat ik ga ontwerpen. Mijn specificatie is als bit_stuff_detect moet hoog als de seriële ingang, die is gesynchroniseerd met de klok (input waarde verandert alleen tijdens posedges van de CLK) is het hebben 1.111.110, en dit bit_stuff_detect signaal moet hoog zijn voor de klok periode waarin input is 0 (111111'0 '). bit_stuff_error moet hoog zijn als de seriële ingang, die is gesynchroniseerd met de klok (input waarde verandert alleen tijdens posedges van de CLK) is het hebben 1.111.111, en dit bit_stuff_detect signaal moet hoog zijn voor de klok periode waarin input 1 (7e een, 111111'1 ' ). dit is mijn spec, en wat is uw logica om dit te ontwerpen ... Pls helpen.
 
Hoi, Ik denk dat ik iets gevonden in jouw RTL. In uw "werkelijke" code Ik zie dat je blokkeert in plaats van met behulp van NON_BLOCKING opdrachten. Typisch we
 
Hoi, ik denk dat ik iets gevonden in jouw RTL. In uw "werkelijke" code Ik zie dat je blokkeert in plaats van met behulp van NON_BLOCKING opdrachten. Typisch we
 
Beide uitgangen bit_stuff_detect en bit_stuff_error worden gegenereerd door combinaties van logica. De uitgang van combinatorische logische schakeling algemeen moet bij storingen hebben als meerdere ingangen gelijktijdig veranderen. Dit is bijvoorbeeld het geval bij de teller bits, dat naar de logica. Als eerste opmerking, zijn de storingen niet uit, indien de signalen worden verwerkt in een klok gevoelige altijd blokkeren geklokt door dezelfde klok. De oplossing is echter eenvoudig. Als u wilt dat de uitgangen glitch-vrij, moet je ze registreren.
 
Het lijkt me dat het gewoon een typische synchrone logica en glitch doet er niet toe. De glitch gebeurt de hele tijd in de kam logica totdat al het signaal tot rust, maar wat telt is het signaal staat op de rand van het vastleggen van de klok. Aangezien zowel van input en COUNT is synchroon, zie ik niet de reden waarom u wilt bit_stuff_ * behandelen als async. Bovendien, als u de behandeling van beide bit_stuff_ * als 'asynchrone' zoals je zei, op het ontvangende blok, moet je waarschijnlijk ervoor te zorgen dat er ZERO vertraging verschil (wat onmogelijk is) tussen bit_stuff_error en bit_stuff_detect anders wanneer deze twee signalen uit te gaan van synchroniseren met elkaar als gevolg van een kleine vertraging, kan uw ontvangen blok in een toestand niet te verwachten dat als beiden is '1 '. als je wilt glitch te vermijden, je hebt maar 2 opties. Een daarvan is het floppen, een ander wordt de input patronen die niet leiden tot een glitch plukken. Bijvoorbeeld, als 2 in-en, 10 te vermijden -> 01 overgang.
 
Hi .. Ik doe een beetje dingen detector module voor mijn project. toewijzen bit_stuff_detect = (ONES_COUNT == 3'd6 && ingang == 1'b0)? 1'b1: 1'b0; toewijzen bit_stuff_error = (ONES_COUNT == 3'd6 && ingang == 1'b1)? 1'b1: 1'b0; altijd @ (posedge CLK) {................................... ONES_COUNT
 
toewijzen bit_stuff_detect = (ONES_COUNT == 3'd6 && ingang == 1'b0)? 1'b1: 1'b0; toewijzen bit_stuff_error = (ONES_COUNT == 3'd6 && ingang == 1'b1)? 1'b1: 1'b0; altijd @ (posedge CLK) {................................... ONES_COUNT
 

Welcome to EDABoard.com

Sponsor

Back
Top