LogicLab jednička je rozsah, ne číslo

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Zpoždění, setup a hold

Až sem byla řeč o napětích. Teď o čase — a o jediném rozpočtu, který v synchronním obvodu existuje: jedna perioda hodin. Do ní se musí vejít všechno, co se má mezi dvěma hranami stihnout, a nic z toho se nedá odložit.

T = 20,00 nslogika13,60 nst_co 1,20 nslogika 4,00 nst_su 0,80 nsskew 0,40 nsnejvyšší hodiny pro tuhle cestu: 156,3 MHzrezerva hold: 0,98 ns — na hodinách vůbec nezávisísetup projdevyužito 32 % periody
  1. T = 1/f = 20,00 ns

    Mezi dvěma hranami hodin se musí stihnout všechno. Perioda je pevná a nedá se z ní ukrojit.

  2. tco = 1,2 ns

    Od hrany hodin k tomu, než se na výstupu objeví nová hodnota, uplyne tco.

  3. tlogika = 4,0 ns

    Logika mezi klopnými obvody má svoje zpoždění, a platí ta nejdelší cesta, ne průměrná.

  4. tsu = 0,8 ns

    Data musí být klidná tsu PŘED hranou. Tenhle kus periody nepatří výpočtu.

  5. tskew = 0,3 ns

    Rozjezd hodin ubere z rozpočtu ještě jednou — a stejným dílem ublíží i podmínce hold.

  6. slack = 13,60 ns

    Kladná rezerva znamená, že to jede. Záporná znamená, že se musí zpomalit — nebo zkrátit logika.

Perioda jako krabice a čtyři věci, které se do ní cpou. Zvyšuj hodiny a sleduj, kdy zelený zbytek zmizí.

Setup: závod s hodinami

slack = T − ( tco + tlogika + tsu ) − tskewkladné = jede

Data musí být klidná před hranou, ne v ní — proto tsu patří do rozpočtu stejně jako výpočet. Když rezerva vyjde záporná, existují tři páky a všechny fungují: zpomalit hodiny, zkrátit nejdelší cestu (rozdělit logiku na dva takty), nebo srovnat hodiny.

Hold: závod, který zpomalení neřeší

Druhá podmínka říká, že data musí zůstat klidná ještě chvíli po hraně. Kdyby dorazila nová hodnota moc brzo, přepsala by tu, kterou klopný obvod právě zachycuje.

slackhold = ( tco,min + tlogika,min ) − thold − tskewperioda v tom není

Všimni si, co v tom vzorci chybí: T. Rezerva hold na frekvenci hodin vůbec nezávisí — je stejná při 200 MHz i při 1 MHz. To je jediný důvod, proč se o hold mluví zvlášť: porušení setupu se spraví zpomalením, porušení holdu ne. Deska, která nejde ani na nejnižších hodinách, má buď hold, nebo něco úplně jiného. V testech je tohle ověřené přes tři řády frekvence, ne jen na jednom bodě.

Rozjezd hodin bere dvakrát

Skew ubere ze setupu a stejným dílem z holdu — obojí najednou, obojí proti návrháři. Proto se hodinový strom kreslí jako rozvětvený, se stejně dlouhými větvemi, a proto se hodiny nikdy nevedou „odbočkou z nejbližšího místa". Je to jediný signál na desce, u kterého je stejná délka důležitější než krátká.

Vzorce v této kapitole

slack — rezerva setup
slack = T − (t_co + t_logic + t_su) − t_skew [s] statická časová analýza
slack_h — rezerva hold
slack_h = (t_co,min + t_logic,min) − t_h − t_skew [s] statická časová analýza