Springen naar inhoud

Logische hazards


  • Log in om te kunnen reageren

#1

new holland

    new holland


  • >25 berichten
  • 50 berichten
  • Ervaren gebruiker

Geplaatst op 02 augustus 2012 - 18:41

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!

Veranderd door new holland, 02 augustus 2012 - 18:44


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Marko

    Marko


  • >5k berichten
  • 8936 berichten
  • VIP

Geplaatst op 02 augustus 2012 - 20:58

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


#3

new holland

    new holland


  • >25 berichten
  • 50 berichten
  • Ervaren gebruiker

Geplaatst op 03 augustus 2012 - 08:14

Ik heb een voorbeeld in de bijlage gezet.

Bijgevoegde Bestanden


#4

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 03 augustus 2012 - 08:20

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!

Geplaatste 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-





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures