Recomandări privind proiectarea circuitelor integrate digitale
Experiența arată că cea mai sigură metodă de a controla funcționarea în timp a unui ASIC (
Application Specific Integrated Circuit - engl.) este de a proiecta un sistem sincron.Un sistem sincron se caracterizează prin:
Nerecomandat
Exemple de circuite care nu sînt sincrone:

![]()
Figura 1
Intrarea de ceas a unui bistabil legată la ieșirea altui bistabil.
![]()
Figura 2
Condiționarea semnalului de ceas printr-o poartă.

![]()
Figura 3
Comutarea bistabilelor pe ambele fronturi ale semnalului de ceas.
![]()
Figura 4
Intrarea asincronă de reset a unui bistabil legată la ieșirea altui bistabil.2. Buffer-area semnalului de ceas
Pentru a realiza aplicarea simultană a semnalului de ceas la toate elementele de memorare, evitînd problemele legate de fan-out, este necesară implementarea unei scheme de buffer-are.

![]()
Figura 5
Număr diferit de nivele de buffere.
Nerecomandat
Următoarele scheme de distribuție a semnalului de ceas sînt
nerecomandate:
![]()
Figura 6
Fan-out diferit pentru bufferele de ceas.
Recomandat
Schema de buffer-are a semnalului de ceas se recomandă a fi su
b formă arborescentă și balansată, așa cum se prezintă în figura 7.O schemă corectă de distribuție a semnalului de ceas presupune satisfacerea următoarelor condiții:
3. Condiționarea semnalului de ceas printr-o poartă
Un mod naiv de a controla un registru este de a-i condiționa semnalul de ceas prin intermediul unei porți logice (sau multiplexarea a două semnale de ceas).

![]()
Figura 7
Schemă de buffer-are arborescentă echilibrată.Condiționarea semnalului de ceas este periculoasă din două motive:
Nerecomandat
Figura 8 prezintă un circuit cu o funcționare nesigură. Comutarea semnalului de selecție al multiplexorului produce inevitabil un glitch care poate comuta eronat bistabilul.

![]()
Figura 8
Condiționarea semnalului de ceas printr-o poartă sau multiplexor.
Recomandat
Pentru a controla momentul de comutare al unui registru, se recomandă introducerea unui semnal suplimentar care să determine comutarea sau nu a circuitului de către frontul activ al semnalului de ceas. Dacă acest semnal (enable) este activ, atunci registrul comută și trece în starea determinată de intrările D. Dacă semnalul enable este inactiv, atunci registrul își păstrează starea pe care a avut-o înainte de apariția frontului activ al semnalului de ceas. În acest caz, prezentat în figura 9, se poate considera că bistabilul a ignorat frontul de ceas.

![]()
Figura 9
Bistabil de tip D cu semnal de enable.4. Comutarea bistabilelor pe ambele fronturi ale semnalului de ceas
O practică naivă de a crește frecvența de generare a datelor la ieșirea unui sistem (obținerea senzației că s-a dublat frecvența semnalului de ceas) constă în comutarea diferitelor registre pe fronturi diferite ale semnalului de ceas.
Comutarea registrelor pe ambele fronturi ale semnalelor de ceas vine în contradicție cu principiile sistemelor sincrone și generează cîteva probleme suplimentare:
Nerecomandat
Pentru circuitul din figura 10, un semnal de ceas cu factor de umplere diferit de 0.5 poate fi cauza neîndeplinirii timpilor de set-up și hold.

Figura 10
Sistem pipeline cu bistabile care comută pe ambele fronturi ale semnalului de ceas.
Recomandat
Circuitul sincron echivalent celui din figura 10 necesită o frecvență dublă a semnalului de ceas. Se recomandă
folosirea unor bistabile cu intrare de enable.
Figura 11
Sistem pipeline cu bistabile care comută pe un singur front al semnalului de ceas.Folosirea unui semnal de reset asincron într-un ASIC trebuie să țină cont de următoarele recomandări:
Trebuie remarcat cazul particular al stării S1. Din S1 se tranzitează necondiționat în S0 (starea inițială), deci ar fi fost inutilă testarea intrării de reset sincron.
Nerecomandat
Semnalul asincron de reset pe care îl primește al doilea bistabil din figura 13 poate determina modificarea stării unei porțiuni de circuit, asincron față de semnalul de ceas global.

Reset Asincron Reset Sincron
Figura 12
Organigrame ale unor sisteme sincrone cu semnal de reset asincron și sincron (activ în '0').
Figura 13
Resetarea asincronă a unui bistabil cu un semnal intern.
Recomandat
Soluția recomandată a fi folosită
totdeauna în sistemele sincrone, pentru distribuția semnalelor de ceas și de reset este prezentată în figura 14.
Figura 14
Reset global al tuturor bistabilelor din sistem.Registrele de deplasare sînt circuite a căror funcționare este foarte mult afectată de existența decalajului semnalelor de ceas (
clock-skew - engl.). Necesitatea bufferării semnalului de ceas de-a lungul bistabilelor care formează registrul poate determina apariția fenomenului de clock-skew.
Figura 15
Registru de deplasare cu lanțul semnalului de ceas în sens direct, bufferat.
Nerecomandat
Nu se recomandă intercalarea unor buffere pe lanțul de transmitere a semnalului de ceas nici dacă ceasul se propagă în sens direct (figura 15), nici dacă ceasul se propagă în sens invers (figura 16).

Figura 16
Registru de deplasare cu lanțul semnalului de ceas în sens invers, bufferat.
Recomandat
Se recomandă folosirea unei rețele arborescente balansate pentru distribuția semnalului de ceas, la fel ca în restul circuitului, așa cum se prezintă în figura 17.

Figura 17
Registru de deplasare cu lanțul semnalului de ceas bufferat arborescent balansat.Se recomandă sincronizarea intrărilor asincrone prin trecerea acestora prin două sau
mai multe bistabile D.
Recomandat
La circuitul prezentat în figura 18 există o probabilitate mai mică de a apare la ieșire un glitch existent pe intrarea de date.

Figura 18
Intrare asincronă care trece prin două bistabile D.8. Linii de întîrziere și monostabile
De multe ori, este aparent nevoie de crearea unor impulsuri scurte, de o durată mai mică decît o perioadă de ceas. Nu se recomandă proiectarea unor asemenea circuite deoarece timpul de întîrziere nu este predictibil și este foarte dependent de temperatură și procesul tehnologic.
Nerecomandat
În general, nu se recomandă nici un circuit a cărui funcționare se bazează pe întîrzieri prin porți logice așa cum sînt cele din figurile 19, 20 și 21.

Figura 19
Generator de puls (hazard combinațional datorat existenței a două căi cu timpi de propagare diferiți între intrare și ieșire).
Figura 20
Generator de puls (realizat prin utilizarea intrării asincrone a unui bistabil).
Figura 21
Circuit de oscilare (multivibrator).
Recomandat
Se recomandă evitarea circuitelor dependente de timpul de propagare prin porți logice. Soluții sigure sînt:

Figura 22
Generator de puls sincron.
Figura 23
Forme de undă ale generator de puls sincron (figura 22).