Logische hazards

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 50

Logische hazards

Hallo

Ik snap niet goed hoe een hazard werkt of hoe je ze moet vermijden. Ik heb ergens gelezen dat je een bijkomende term moet toevoegen. Iemande die me kan helpen alvast bedankt!

Gebruikersavatar
Berichten: 10.564

Re: Logische hazards

Als jij wat meer informatie geeft over de context van deze vraag, dan kan iemand je misschien helpen. Maar zoals het er nu staat is het nogal onduidelijk.
Cetero censeo Senseo non esse bibendum

Gebruikersavatar
Berichten: 50

Re: Logische hazards

Ik heb een voorbeeld in de bijlage gezet.
Bijlagen
Bijvoorbeeld.pdf
(86.77 KiB) 99 keer gedownload

Gebruikersavatar
Berichten: 5.609

Re: Logische hazards

Ik snap niet goed hoe een hazard werkt of hoe je ze moet vermijden. Ik heb ergens gelezen dat je een bijkomende term moet toevoegen. Iemande die me kan helpen alvast bedankt!
Afbeelding

Een logische hazard kom je tegen als je circuit van waarde eerst verandert, maar dan ook weer terug verandert naar zijn finale waarde. Dit kan, zeker bij asynchrone circuits erg gevaarlijk zijn, omdat je kunt verder werken met de waarde voor het eindresultaat. Meer zelfs, hoe weet je wanneer een resultaat een eindresultaat is?

Zie ook: en.wikipedia.org/wiki/Hazard_(logic)

De problemen kun je aanpakken door een ander logisch circuit te gebruiken die equivalent is aan je eerste, maar met (inderdaad) toegevoegde termen, die enkel dienen om de hazards weg te werken.

Bijvoorbeeld: f = X1 * X2 + X1' * X3

als je hier X1 aanpast, dan zal misschien of het linkse sneller reageren dan het rechtse. Het gevolg is dat voor een fractie van een seconde de uitgang f kan verkeerd zijn. Wanneer gaat hij verkeerd zijn? Als zowel X2 en X3 hoog zijn terwijl X1 verandert (moet je eens narekenen).

De oplossing is om de volgende functie te gebruiken: f = X1 * X2 + X1' * X3 + X2 * X3

Deze is logisch equivalent aan de eerste functie, maar op het moment dat X1 verandert terwijl X2 en X3 hoog zijn, gaat de uitgang f nooit verkeerd zijn! De laatste term zorgt er voor dat de uitgang f stabiel is tijdens het veranderen van de toestand.

Edit: ik zie net dat je nog een bestand toegevoegd hebt. Er is daar helaas iets mis mee, ik kan alvast de tabel niet lezen en zie ook niet over welke functie het gaat.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Reageer