5. Problemy projektowania dużych układów cyfrowych

5.1. Ogólne zasady projektowania układów cyfrowych CMOS

Podstawową zasadą projektowania układów cyfrowych, które mają być zrealizowane jako układy scalone CMOS, jest zasada, że powinny to być układy synchroniczne. Oznacza to, że:

  • wszystkie elementy pamięciowe w układzie (przerzutniki, rejestry, bloki pamięci RAM) mogą zmieniać swój stan tylko w odpowiedzi na sygnał zegara,
  • we wszystkich elementach pamięciowych zmiana stanu następuje w dokładnie tej samej chwili w odpowiedzi na to samo zbocze sygnału zegara.

Ta zasada oznacza między innymi, że w układzie występuje tylko jeden główny, globalny sygnał zegara. Ewentualne dodatkowe sygnały (np. zegar dwufazowy o fazach „1” nie nakładających się) są generowane lokalnie z zachowaniem synchronizacji z zegarem głównym. 

Tę ogólną zasadę trzeba uzupełnić kilkoma dalszymi regułami. Oto one:

Każdy układ zawierający elementy pamięciowe (przerzutniki, rejestry) musi mieć możliwość ustawienia w nich zadanych „startowych” stanów. Może to być zrealizowane w postaci zewnętrznego sygnału zerującego lub ustawiającego (w terminologii anglojęzycznej sygnał „Reset”). Można również zastosować układ automatycznie generujący sygnał „Reset” przy włączaniu zasilania. Takie układy, zwane „Power-on Reset”, są dostępne jako gotowe komórki w bibliotekach dostarczanych przez producentów układów. Jeżeli stosujemy układ „Power-on Reset” do zapewnienia prawidłowego startu, to nawet wtedy nasz układ powinien zawierać też wejście dla zewnętrznego sygnału „Reset”, aby była możliwość przywrócenia znanego z góry startowego stanu układu w czasie jego pracy. Taki globalny sygnał „Reset” może działać asynchronicznie (tj. zmieniać stan układu w dowolnej chwili, bez względu na stan sygnału zegara). Jeśli natomiast stosowany jest również lokalny sygnał „Reset” (lokalny oznacza ustawiający stany w elementach pamięciowych tylko w pewnym fragmencie układu), to taki sygnał musi działać synchronicznie. 

Nie należy używać żadnych układów, których poprawność działania jest uzależniona od wartości opóźnień wnoszonych przez bramki lub połączenia. Opóźnienia mogą się wahać w szerokich granicach, są bowiem uzależnione od rozrzutów produkcyjnych. Nie są w pełni przewidywalne i nie są powtarzalne.

Nie należy samemu zestawiać z bramek kombinacyjnych różnych układów przerzutników takich, jak przerzutniki RS, JK lub T. Używać należy wyłącznie przerzutników typu D. Mogą to być przerzutniki z biblioteki komórek dostarczonej przez producenta układów, a jeśli są samodzielnie projektowane, muszą być starannie zweryfikowane przez symulację elektryczną.