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 = 1/f = 20,00 ns
Mezi dvěma hranami hodin se musí stihnout všechno. Perioda je pevná a nedá se z ní ukrojit.
- tco = 1,2 ns
Od hrany hodin k tomu, než se na výstupu objeví nová hodnota, uplyne tco.
- tlogika = 4,0 ns
Logika mezi klopnými obvody má svoje zpoždění, a platí ta nejdelší cesta, ne průměrná.
- tsu = 0,8 ns
Data musí být klidná tsu PŘED hranou. Tenhle kus periody nepatří výpočtu.
- tskew = 0,3 ns
Rozjezd hodin ubere z rozpočtu ještě jednou — a stejným dílem ublíží i podmínce hold.
- slack = 13,60 ns
Kladná rezerva znamená, že to jede. Záporná znamená, že se musí zpomalit — nebo zkrátit logika.
Setup: závod s hodinami
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.
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á.