Chips, hoe signaal op hetzelfde moment bij AND/OR/NOT etc?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
Vooraf: ik ben een volledige leek op dit gebied (middelbare school natuurkunde), het is puur iets wat ik me opeens afvroeg.

Voor chips bij een hoge kloksnelheid, hoe wordt ervoor gezorgd dat het signaal voor bijv. een AND-port in die chip, op precies hetzelfde moment bij de beide ingangen is?

Afbeeldingslocatie: https://tweakers.net/i/KE-lBqYMK7SKedr_JaSXlVwRjFg=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/YuC3Lk8RLZ3bsRnCyVv1q7wt.png?f=user_large

Fysiek zal er zeer waarschijnlijk een klein lengteverschil zitten tussen het 'draadje' a en het 'draadje' b, waardoor het signaal van de ingangen iets later aankomt (Of: waardoor het signaal van de vorige 'clock cycle' nog op één van de ingangen staat).

Hierdoor kun je dus verkeerde resultaten krijgen, lijkt me.

Acties:
  • 0 Henk 'm!

  • Mavamaarten
  • Registratie: September 2009
  • Laatst online: 20:17

Mavamaarten

Omdat het kan!

Over het algemeen is het pas op het moment van een klok-puls dat men het resultaat van de AND/OR/NOT poort uitleest. En je hebt wel gelijk, het is mogelijk dat de lengte van traces invloed heeft, maar ook de impedance. Bij echt hoogfrequente schakelingen zorgt men er dan ook effectief voor dat de traces even lang zijn. Zoek maar eens bij Google afbeeldingen naar PCB trace length matching: https://www.google.com/se...=X&biw=1792&bih=914&dpr=2

Android developer & dürüm-liefhebber


Acties:
  • 0 Henk 'm!

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 26-09 18:17
Het korte antwoord is: "niet"
Daarvoor is de "klok" uitgevonden.
Alle input signalen en output signalen zijn ongedefinieerd.
Alleen op het moment van de klok zijn ze correct en logisch conform afspraken.
Tussen 2 klokpulsen in is er geen garantie.

Je geeft het zelf ook al aan.
Naar mate een circuit netter en strakker wordt, kan de kloksnelheid omhoog.
Dat is ook een kwestie van testen en uitproberen.
Ook temperatuur speelt een rol.
Hogere temperatuur betekent doorgaans lagere kloksnelheid.

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


Acties:
  • 0 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 00:54

memphis

48k was toen meer dan genoeg.

Bij een AND of een OR poort zal het boeien of er 1 wat later is omdat de uitgang niet anders is bij dat tussenmoment. Praat je over een XOR waarbij de uitgang wel degelijk anders is bij 1 input tov 2 inputs hoog heb je altijd nog te maken met de schakelsnelheid van de poort. Zeker op hogere frequenties zal een miniem tijdsverschil door de traagheid van het schakelen geen effect hebben.

[ Voor 7% gewijzigd door memphis op 14-12-2021 10:35 ]

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • PolarBear604
  • Registratie: Januari 2014
  • Laatst online: 25-09 11:55
Het antwoord is inderdaad dat het alleen relevant is op het moment wanneer je het uitleest. Aangezien de delay van de interconnect (draadje) en de switch time voor normale bouwwerken irrelevant zijn (in de nanoseconden) is dat daar geen probleem.

Heb je het over geïntegreerde schakeling (IC's) dan is het wel van belang dat de totale delay van je logica + interconnects tussen de memory elements (die worden aangestuurd door het kloksignaal) minder blijft dan je kloksignaal zodat dit soort fouten worden voorkomen.

Als je dit interessant vindt, het boek "Digital Integrated Circuits, A Design Perspective" van Rabaey heeft vrijwel alle basiskennis over geïntegreerde schakelingen en is denk ik ook vrij goed te lezen met middelbare school niveau natuurkundekennis.

Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
Dank!!!

Dat boek lijkt me ook razend interessant, nu nog tijd vinden om het te lezen ;-).

Acties:
  • 0 Henk 'm!

  • Antonius
  • Registratie: Juli 2000
  • Laatst online: 25-09 17:02
Nog een aanrader is het boek "Bebop to the boolean boogie", van Clive Maxfield, ISBN 9781856175074. Hij heeft een onconventionele benadering van deze materie, met een flinke dosis humor.

Acties:
  • 0 Henk 'm!

Verwijderd

Zoals hierboven aangegeven, de klok bepaald wanneer signalen uit de divere logische componenten beoordeeld worden. Als je het echt heel interessant vind zou je je(ook) eens kunnen verdiepen in FPGA's. Daar moet de designer alle logica zelf aan elkaar lijmen en heeft dus bijvoorbeeld de keuze om bepaalde bouwstenen asynchroon te laten lopen. Als intermediate signaal fluctuaties geen problemen geven kan zo een grote snelheidswinst (en functies/mm2 Si) behaald worden, juist door dit soort zaken (looptijden, wel/geen klok) slim in te zetten.

Acties:
  • 0 Henk 'm!

  • xah5kiDe
  • Registratie: Juli 2017
  • Laatst online: 02:09

xah5kiDe

Usernaam=wachtwoord

Op chips wordt digitale logica vrijwel altijd synchroon gebruikt. Een klok zorgt voor het vastleggen van het logische niveau aan de ingang van alle flipfloppen. Het pad gaat van de uitgang van een FF via logische poorten naar de ingang van diverse FFen. Tools berekenen automatisch of alle paden voldoende snel zijn voor de gekozen klok. Alleen rondom de klok overgang dient het signaal correct te zijn.
Naast deze synchrone circuits worden ook asynchrone circuits toegepast al komt dat veel minder voor omdat verschillende looptijden inderdaad voor glitches kunnen zorgen. Voorbeeld is de logica in een asynchrone reset lijn. Zit daar een glitch in, dan kan het toch onbedoeld erg verkeerd gaan. Vandaar dat synchrone circuits de voorkeur hebben.

Theo


Acties:
  • 0 Henk 'm!

  • Flake
  • Registratie: Februari 2001
  • Laatst online: 01-11-2024
Rekcor schreef op dinsdag 14 december 2021 @ 09:18:

Voor chips bij een hoge kloksnelheid, hoe wordt ervoor gezorgd dat het signaal voor bijv. een AND-port in die chip, op precies hetzelfde moment bij de beide ingangen is?
Niet. Transistoren/FETS (waar die dingen uit bestaan) hebben tijd nodig om te schakelen, voor oude materialen (bijvb 7400 series) orde van grootte tientallen nanoseconden. Precies hetzelfde moment is onmogelijk, inderdaad een klok bij complexe schakelingen waarbij de data wordt klaargezet op de neergaande flank, en geldig is op de opgaande flank.
Fysiek zal er zeer waarschijnlijk een klein lengteverschil zitten tussen het 'draadje' a en het 'draadje' b, waardoor het signaal van de ingangen iets later aankomt (Of: waardoor het signaal van de vorige 'clock cycle' nog op één van de ingangen staat).

Hierdoor kun je dus verkeerde resultaten krijgen, lijkt me.
De lengte van het spoortje speelt alleen een rol als de klok echt heel hoog is, het is vooral de schakeltijd waar je rekening mee moet houden. Of dit een probleem is, is sterk afhankelijk van de applicatie. Als je zonder klok werkt (combinatorische schakeling) kunnen er pieken in je output optreden door vertragingen in je schakeling, waardoor de output korte tijd niet is wat je had verwacht. Dit noemt men hazards, maar daar kun je je tegen wapenen door bijvb AND-gates in te zetten op het eind van je output, en die output pas vrij te geven als de gewenste output beschikbaar is.

Bij sequentiële schakelingen (met klok) is het een eis dat de data geldig is op de opgaande flank van de klok, dus alle hazards moeten tussen de opgaande en de neergaande flank plaatsvinden.
Pagina: 1