Timinganalyse en CDC
Controleer met meerkeuzevragen statische timinganalyse, zoals de berekening van setup- en hold-slack, OCV en multicycle paths, en het ontwerp van clock domain crossings met synchronisators en asynchrone FIFO's.
Timinganalyse en CDC: kernpunten
Om een synchrone schakeling correct te laten werken, moet de data op elk pad tussen flip-flops aankomen met inachtneming van de setup- en holdtijd. Statische timinganalyse (STA) berekent op basis van de in SDC opgegeven constraints voor klokken en in- en uitgangsvertragingen de slack van elk pad, en vindt overtredingen met inbegrip van skew, jitter en procesvariatie.
Tussen asynchrone klokken daarentegen kan de timing niet worden gegarandeerd en is metastabiliteit niet te vermijden. Ook het ontwerp en de verificatie van clock domain crossings (CDC), waarbij signalen veilig worden doorgegeven met bijvoorbeeld synchronisators met 2 flip-flops, handshakes en asynchrone FIFO's met Gray-codepointers, behoren tot de basis van logisch ontwerp.
Alle vragen over Timinganalyse en CDC (50)
- In een synchrone schakeling met een klokperiode van 2,0 ns is de clock-to-output-vertraging van de verzendende flip-flop 0,2 ns, de vertraging van de combinatorische logica 1,4 ns en de setuptijd van de ontvangende flip-flop 0,1 ns. Hoe groot is de setup-slack als de klokscheefheid (skew) 0 is?
- Op een pad tussen flip-flops is de clock-to-output-vertraging 0,15 ns, de maximale vertraging van de combinatorische logica 2,2 ns en de setuptijd 0,15 ns. Wat is de maximale klokfrequentie waarop dit pad kan werken als skew en klokonzekerheid worden genegeerd?
- Welke beschrijving van WNS en TNS, zoals die in STA-rapporten voorkomen, is juist?
- Een pad heeft een klokperiode van 1,0 ns, een clock-to-output-vertraging van 0,1 ns, een vertraging van de combinatorische logica van 0,85 ns en een setuptijd van 0,08 ns. Hoe groot is de setup-slack als de klok van de ontvangende flip-flop 0,05 ns later aankomt dan die van de verzendende?
- Wat is het juiste effect op setup en hold als de klok van de ontvangende flip-flop later aankomt dan die van de verzendende (positieve skew)?
- De clock-to-output-vertraging van de verzendende flip-flop is minimaal 0,08 ns, de minimale vertraging van de combinatorische logica 0,02 ns en de holdtijd van de ontvangende flip-flop 0,05 ns. Hoe groot is de hold-slack als de ontvangende klok 0,1 ns later aankomt dan de verzendende?
- Op een gewoon pad dat op de stijgende flank van dezelfde klok verzendt en overneemt, is een holdovertreding (slack −0,03 ns) gevonden. Wat gebeurt er juist met deze overtreding als de klokfrequentie wordt gehalveerd?
- Om een holdovertreding te repareren worden vertragingsbuffers in het datapad ingevoegd. Wat is daarbij het belangrijkste om te controleren?
- Op een pad met een klokperiode van 1,25 ns (800 MHz) is de som van de clock-to-output-vertraging en de vertraging van de combinatorische logica 1,05 ns, de setuptijd 0,05 ns en de klokonzekerheid voor setup ingesteld op 0,05 ns. Hoe groot is de setup-slack?
- Bij het instellen van klokonzekerheid wordt periodejitter vaak wel meegenomen voor setup, maar niet voor hold. Wat is de juiste reden daarvoor?
- Welke combinatie van corners waarin bij STA respectievelijk setup en hold hoofdzakelijk worden gecontroleerd, is juist?
- Als OCV-derating worden bij de setupanalyse de vertragingen van het verzendende klokpad en van het datapad met 1,1 vermenigvuldigd en die van het ontvangende klokpad met 0,9. Hoe groot is de setup-slack bij een verzendend klokpad van 1,0 ns, een datapad (inclusief clock-to-output) van 1,5 ns, een ontvangend klokpad van 1,0 ns (geen gemeenschappelijk deel), een periode van 3,0 ns en een setuptijd van 0,1 ns?
- Welke beschrijving van CRPR (verwijdering van het pessimisme van het gemeenschappelijke pad), die bij STA met OCV-derating wordt toegepast wanneer het verzendende en het ontvangende klokpad tot een bepaald punt gemeenschappelijk zijn, is juist?
- In een schakeling die op een klok met een periode van 2,0 ns werkt, is er een pad met een aankomsttijd van de data (som van clock-to-output-vertraging en vertraging van de combinatorische logica) van 3,3 ns en een setuptijd van 0,1 ns. Omdat dit pad maar eens per 2 cycli hoeft over te nemen, is een setup-multicycle path van 2 ingesteld. Hoe groot is de setup-slack?
- Als het setup-multicycle path op N (N ≥ 2) wordt ingesteld, wordt voor hold gewoonlijk een multicycle path van N − 1 ingesteld. Wat is de juiste reden daarvoor?
- Voor welk pad is het instellen van een false path (set_false_path) passend?
- Met een klok met een periode van 2,0 ns en een duty cycle van 50% is er een pad dat op de stijgende flank verzendt en op de dalende flank overneemt. Wat is bij een setuptijd van 0,1 ns en een skew van 0 de maximaal toegestane som van de clock-to-output-vertraging en de vertraging van de combinatorische logica?
- Met een klok met een periode van 2,0 ns is er een pad van een flip-flop die op de stijgende flank op tijdstip 0 data uitgeeft naar een latch die op tijdstip 1,0 ns opengaat (transparant wordt) en op tijdstip 2,0 ns sluit. Hoeveel tijd is in deze latch geleend (time borrowing) als de data op tijdstip 1,4 ns bij de latch aankomt?
- Wat controleert de clock-gating-check van STA juist in een schakeling die de klok stopt met een AND-poort met 2 ingangen voor de klok en een enable-signaal?
- Met een klok met een periode van 2,0 ns is op een ingangspin set_input_delay 0,6 ns ingesteld. Wat is de maximaal toegestane vertraging van het pad binnen de chip van de ingangspin tot de flip-flop als de setuptijd van de interne flip-flop 0,1 ns is en klokvertraging en skew worden genegeerd?
- Wat stelt de waarde die bij set_output_delay wordt opgegeven juist voor?
- Met een klok met een periode van 2,5 ns (400 MHz) is op een uitgangspin set_output_delay 0,8 ns ingesteld. Wat is de maximaal toegestane vertraging van de combinatorische logica en bedrading van de flip-flop tot de uitgangspin als de clock-to-output-vertraging van de flip-flop die de uitgangspin aanstuurt 0,2 ns is (klokvertraging wordt genegeerd)?
- Met een klok met een periode van 1,0 ns is er een pad met flip-flops A→B→C. A→B heeft inclusief clock-to-output-vertraging en setuptijd 1,2 ns nodig, B→C heeft genoeg aan 0,8 ns. Wat moet er met de klok van B gebeuren om met opzettelijke skew aan beide setupeisen te voldoen (de klokken van A en C komen tegelijk aan)?
- Hoe wordt in SDC juist omgegaan met een klok die met een deler door 2 wordt gedeeld en voor een andere schakeling wordt gebruikt?
- Welke controle onderzoekt bij STA of bij een flip-flop met asynchrone reset het opheffen van de reset niet te dicht bij de klokflank ligt?
- Voor welk pad tussen twee klokdomeinen is een synchronisator nodig?
- Hoe verandert de gemiddelde tijd tussen storingen door metastabiliteit (MTBF) juist als een synchronisator met 2 flip-flops wordt uitgebreid tot 3 trappen?
- Als de klokfrequentie aan de ontvangende kant van een synchronisator wordt verhoogd, wordt de MTBF korter. Wat is de juiste reden?
- Welk aandachtspunt voor de verbinding tussen de eerste en de tweede trap van een synchronisator met 2 flip-flops is juist?
- Wat is de juiste reden waarom de uitgang van combinatorische logica in het verzendende klokdomein niet direct op de synchronisator aan de ontvangende kant mag worden aangesloten?
- Elke bit van 4-bit data krijgt een eigen synchronisator met 2 trappen en wordt zo naar een ander klokdomein doorgegeven. Welk probleem kan juist optreden als de data van 0111 naar 1000 verandert?
- Welke methode om multibitdata veilig naar een ander klokdomein door te geven is juist?
- Een puls die in een klokdomein van 500 MHz één cyclus (2 ns) lang 1 is, wordt met een synchronisator met 2 trappen doorgegeven aan een domein van 100 MHz. Welk probleem kan juist optreden?
- Om een niveausignaal betrouwbaar met een synchronisator van een domein van 400 MHz naar een domein van 100 MHz door te geven, moet de breedte van het signaal minstens 1,5 keer de klokperiode aan de ontvangende kant zijn. Hoeveel cycli van de verzendende klok moet de breedte minimaal zijn?
- Wat is bij toggle-synchronisatie (een methode waarbij aan de verzendende kant een niveausignaal wordt gemaakt dat bij elke puls omklapt, en dat wordt doorgegeven) de juiste manier om aan de ontvangende kant de oorspronkelijke puls terug te winnen?
- Welke beperking geldt juist bij het doorgeven van pulsen met toggle-synchronisatie van een snel naar een traag klokdomein?
- Wat is bij een 4-fasen-handshake met req en ack de juiste volgorde van de signalen bij het doorgeven van één data-item?
- Wat is juist een nadeel van dataoverdracht tussen klokdomeinen met een handshake?
- Wat is de juiste reden waarom in een asynchrone FIFO de schrijf- en leespointer naar Gray-code worden omgezet voordat ze naar het andere domein worden gesynchroniseerd?
- Welke waarde is de omzetting van de 4-bit binaire waarde 0110 (decimaal 6) naar Gray-code?
- Wat is de juiste reden waarom in een asynchrone FIFO met een diepte van 16 woorden de schrijf- en leespointer 5 bits zijn, 1 bit meer dan het adres?
- Welke voorwaarde om aan de schrijfkant vol (full) te detecteren is juist bij een asynchrone FIFO met een diepte van 16 woorden en 5-bit Gray-codepointers?
- In een asynchrone FIFO wordt de pointer van de andere kant gesynchroniseerd gebruikt, dus de zichtbare pointerwaarde is 2–3 cycli oud. Welk effect heeft deze vertraging juist op de full/empty-detectie?
- In een asynchrone FIFO met 100 MHz aan de schrijfkant en 80 MHz aan de leeskant schrijft de schrijfkant bursts van 100 woorden, elke cyclus 1 woord, en leest de leeskant elke cyclus 1 woord. Tussen de bursts is er voldoende rust. Wat is de minimale diepte om overlopen te voorkomen (vertraging door synchronisatie wordt genegeerd)?
- De schrijfkant schrijft op 200 MHz elke cyclus 1 woord, in bursts van 120 woorden. De leeskant leest met een klok van 150 MHz in 2 van elke 3 cycli 1 woord. Wat is de minimale diepte om overlopen te voorkomen (vertraging door synchronisatie wordt genegeerd)?
- Met 250 MHz aan de schrijfkant en 200 MHz aan de leeskant wordt aan beide kanten elke cyclus 1 woord overgedragen. Wat is de berekende minimale diepte van een FIFO die bursts van 64 woorden ontvangt (vertraging door synchronisatie wordt genegeerd, naar boven afronden)?
- Welke opbouw van een resetsynchronisator, die uit een actief-lage externe reset een interne reset maakt die „asynchroon wordt geactiveerd en synchroon wordt gedeactiveerd”, is juist?
- Twee stuursignalen uit hetzelfde verzendende domein worden elk met een eigen synchronisator met 2 trappen ontvangen en aan de ontvangende kant met een AND gecombineerd. Wat is juist het probleem van dit ontwerp?
- Wat is de juiste reden waarom controle met een CDC-verificatietool nodig wordt geacht, ook als STA en RTL-simulatie worden uitgevoerd?
- Wat is de juiste reden waarom het een probleem kan zijn om het pad waarlangs de Gray-codepointer van een asynchrone FIFO naar het andere domein gaat zonder constraint te laten (false path), alleen omdat het asynchroon is?
Andere onderwerpen in Ontwerp en industrie
- LSI-ontwerpflow en EDA RTL, logische synthese, place-and-route, STA
- Cleanroom en productieapparatuur Reinheidsklassen, gele ruimte, FOUP
- Milieu en veiligheid Waterstoffluoride, SDS, PFC-gassen
- Halfgeleiderindustrie en markt Foundry, fabless, IDM, wet van Moore
- Geavanceerde technologieën (3D-integratie, chiplets) TSV, HBM, interposers
- Datasheets lezen Maxima, typ/max, thermische weerstand, timing