background image

 

 

1

Pytanie nr 15

„Proces projektowania 

cyfrowego układu scalonego 

(Design Flow)”

Grzegorz Golaś 127386

background image

Układ scalony

Układ  scalony  –  (ang.  intergrated  circuit,  chip)  to  zminiaturyzowany 

układ  elektroniczny  zawierający  w  swym  wnętrzu  od  kilku,  do  setek 

milionów podstawowych elementów elektronicznych; tranzystorów, diod, 

rezystorów, kondensatorów.

Zwykle  jest  on  zamknięty  w  hermetycznej  obudowie  -  szklanej, 

metalowej, ceramicznej lub wykonanej z tworzywa sztucznego.

 

Ze względu na sposób wykonania układy scalone dzieli się na:

monolityczne,  w  których  wszystkie  elementy  wykonane  są  w 

monokrystalicznej strukturze półprzewodnika,

hybrydowe  -  na  płytki  wykonane  z  izolatora  nanoszone  są  warstwy 

przewodnika  oraz  materiału  rezystywnego,  tworząc  układ  połączeń 

elektrycznych  oraz  rezystory.  Do  tak  utworzonych  połączeń  dołącza  się 

indywidualne,  miniaturowe  elementy  elektroniczne  (w  tym  układy 

monolityczne). 

background image

Układ scalony (2)

Ze względu na technologię wykonania rozróżnia się układy: 

 cienkowarstwowe

 grubowarstwowe 

Większość  stosowanych obecnie układów  scalonych jest wykonana w technologii 

monolitycznej.

 

Ze  względu  na  stopień  scalenia  występuje,  w  zasadzie  historyczny,  podział  na 

układy:

 małej skali integracji (SSI – small scale of integration) poniżej 20 elementów,

 średniej skali integracj (MSI – medium scale of integration) 20 – 200 elementów,

 dużej skali integracji (LSI – large scale of integration) 200 – 2000 ,

  wielkiej  skali  integracji  (VLSI  –  very  large  scale  of  integration)  2000  –  20000 

elementów,

  ultrawielkiej  skali  integracji  (ULSI  –  ultra  large  scale  of  integration)  powyżej 

20000 elementów.

Ponieważ  w  układach  monolitycznych  praktycznie  wszystkie  elementy  wykonuje 

się  jako  tranzystory,  odpowiednio  tylko  przyłączając  ich  końcówki,  dlatego  też 

często mówi się o gęstości upakowania tranzystorów na mm

2

background image

Układy cyfrowe

Układ cyfrowy  – układ elektroniczny, który realizuje operacje na 

wartościach,  którym  przypisano  wartości  liczbowe  –  w 

najprostszym przypadku logiczne, którym odpowiadają wartości 1 

lub 0 (Algebra Boole'a). Układy cyfrowe dzielą się na dwie główne 

grupy:

 układy kombinacyjne,

 układy sekwencyjne.

Układ  kombinacyjny  –  charakteryzuje  się  tym,  że  stan  wyjść 

zależy  wyłącznie  od  stanu  wejść;  stan  wyjść  opisują  funkcje 

boolowskie.

Układ sekwencyjny  charakteryzuje się tym, że stan wyjść zależy 

od  stanu  wejść   oraz  od  poprzedniego  stanu,  zwanym  stanem 

wewnętrznym, pamiętanego w zespole rejestrów (pamięci). 

background image

Rys. 1. Schemat budowy układu 
sekwencyjnego

Układy cyfrowe (2)

Wśród układów sekwencyjnych zaś 
wyróżnia się układy asynchroniczne 
i synchroniczne.
Przy czym najczęściej układy 
cyfrowe są synchroniczne, co 
oznacza, że  zmiany stanów są 
wyzwalane przez jeden lub więcej 
sygnałów zegarowych. 

background image

Układy cyfrowe (3)

Najczęściej układy cyfrowe operują na dwóch stanach: 0 i 1. 

W  celu  eliminacji  wpływu  czynników  zewnętrznych  (szumy, 

spadki  napięć  etc.)  ustalane  są  przedziały  odpowiadające 

logicznemu  “0”  i  “1”  często  pojawia  się  także  tzw.  stan 

zabroniony,  lub  nieokreślony  (dla  sygnałów  nie  należących 

do żadnego z przedziałów “0” i “1”).

Zamiennie  z  0  i  1  stosuje  się  też  pojęcia  stan  wysoki  H 

(high) oraz stan niski (low).

background image

Projektowanie układu scalonego

Do projektowania układów cyfrowych używa się często 

języków opisu sprzętu HDL (Hardware Description 

Language). Istnieją dwa zasadnicze sposoby opisu układów:

behawioralny – projektant definiuje zależności pomiędzy 

wyjściami a wejściami układu, natomiast realizacją układu 

zajmuje się kompilator; 

funkcjonalny – projektant definiuje bloki funkcjonalne oraz 

zależności między nimi; przy czym bloki funkcjonalne mogą 

być bardzo proste (realizujące np. funkcje podstawowych 

bramek logicznych), jak również bardzo skomplikowane (np. 

pamięci, rejestry, sumatory itp.). 

 

background image

Projektowanie układu scalonego (2)

Środowiska  do  przetwarzania  jęzków  HDL  mają  szerokie 

możliwości. Oprócz syntezy układów, umożliwiają różnorakie 

optymalizacje  (np.  minimalizacja  funkcji,  upraszczanie 

obwodów  przez  użycie  „prefabrykantów”),  testowanie 

zaprojektowanych układów oraz ich funkcjonalną symulację.

Najpopularniejszymi używanymi językami HDL są:

•VHDL,

•Verilog,

•Inne. 

background image

Narzędzia wspomagania projektowania

Początkowo układy scalone projektowano ręcznie, co straciło sens 

wraz  z  pojawieniem  się  układów  o  dużej  skali  integracji.  Wobec 

konieczności 

automatyzacji 

projektowania 

pojawiły 

się 

odpowiednie 

narzędzia 

komputerowego 

wspomagania 

projektowania CAD (Computer-Aided Design):

DA (Design automation) systemy automatycznego projektowania,

EDA  (Electronic  Design  Automation)  systemy  automatycznego 

projektowania układów elektronicznych.

 Zastosowanie tych narzędzi pozwala na realizację dwóch zadań:

syntezę – Umożliwia przejście od opisu do implementacji 

fizycznego układu,

symulację – pozwala sprawdzić poprawność projektu bez 

konieczności wykonywania urządzenia

background image

Narzędzia wspomagania projektowania 
(2) 

Zastosowanie  systemów  CAD  skraca  czas  projektowania 
układów scalonych i ma ogromne znaczenie ekonomiczne. 
Narzędzia CAD pozwalają na:

 szybkie projektowanie,

 wykrywanie błędów w projekcie,

 szybkie wprowadzanie zmian,

 weryfikację,

 testowanie,

 symulację projektu. 

background image

Design flow

Przykładowa procedura projektowania układu cyfrowego opartego na bramkach 

logicznych:

1. Przygotowanie specyfikacji.

2. W razie konieczności dokonanie podziału systemu na mniejsze części i 

przygotowanie specyfikacji dla każdej części.

3. Na podstawie specyfikacji stworzenie grafu automatu stanów, na którym 

zaprezentowano wszystkie możliwe stany systemu, kombinacje sygnałów 

wejściowych (warunki) określające zmiany stanów oraz wyjścia dla każdego 

stanu.

4. Minimalizacja liczby stanów (jest to krok opcjonalny i nie jest konieczny we 

wszystkich przypadkach).

5. Wyznaczenie zmiennych boolowskich reprezentujących wszystkie stany RTL 

(Register Transfer Level).

6. Wyprowadzenie stanów następnych oraz wyjść.

7. Optymalizacja stanów następnych i wyjść w celu minimalizacji liczby 

wymaganych bramek.

8. Wybór odpowiedniego rozmieszenia bramek w konkretnym układzie scalonym 

oraz układów scalonych na płytce drukowanej.

9. Wykonanie połączeń pomiędzy układami scalonymi. 

background image

Przykładowy proces projektowania

• Proces 

projektowania 
ma charakter 
ewolucyjny. 
Rozpoczyna się 
od ustalenia 
wymagań, 
następnie projekt 
jest rozwijany i 
testowany. 

background image

Projektowanie Hierarchiczne 

Jest  techniką  projektowania  opierającą  się  na  kolejnych  podziałach 

poszczególnych  modułów  na  mniejsze  części  (sub-moduły).  Proces 

dzielenia  trwa  do  momentu,  w  którym  poziom  skomplikowania 

mniejszych  elementów  pozwala  na  łatwe  ich  opracowanie. 

Zaprezentowane  wcześniej  główne  etapy  projektowania  mogą  posiadać 

hierarchiczną strukturę. 

Przykładem  hierarchicznego  podziału  struktury  może  być  4-bitowy 

sumator  CMOS  podzielony  na  poszczególne  komponenty.  Pierwszym 

krokiem jest podzielenie go na jednobitowe sumatory, które są następnie 

dzielone  na  bity  przeniesienia  oraz  sumy.  Ostatnim  krokiem  jest 

podzielenie  ich  na  bramki  logiczne.  Na  tym  poziomie  hierarchii 

zaprojektowanie  prostych  obwodów  realizujących  założenia  funkcji 

Boolowskich jest znacznie prostsze niż w przypadku wyższych poziomów 

hierarchii. 

background image

Projektowanie hierarchiczne (2)

background image

Modułowość i regularność

Modułowość

Modułowość w procesie projektowania oznacza, że wszystkie bloki funkcjonalne 
tworzące  większy  system  muszą  mieć  ściśle  zdefiniowane  funkcje  oraz  granice. 
Zastosowanie tej reguły pozwala na niezależne projektowanie każdego modułu z 
osobna. Modułowość umożliwia równoległe prowadzenie prac nad poszczególnymi 
elementami  systemu.  Dodatkową  zaletą  jest  możliwość  zastosowania 
poszczególnych modułów w innych projektach.

Regularność

Regularność  oznacza  uproszczenie  systemu  poprzez  stosowanie,  w  miarę 
możliwości,  identycznych  bloków.  Regularność  może  występować  na  wszystkich 
poziomach projektowania. Dzięki niej możliwe jest zredukowanie liczby różnych 
zastosowanych modułów, które muszą zostać zaprojektowane oraz sprawdzone.  

background image

Zlokalizowanie

Zlokalizowanie
Określenie granic poszczególnych modułów systemu sprawia, że wnętrze każdego 
modułu  przestaje  być  istotne  dla  innych  modułów.  Reguła  zlokalizowania 
zapewnia, że połączenia występują w większości pomiędzy sąsiadującymi ze sobą 
modułami  przy  jednoczesnym  unikaniu  połączeń  długodystansowych.  Jest  to 
bardzo  istotne  w  celu  unikania  nadmiernych  opóźnień.  Operacje,  które  są 
szczególnie  narażone  na  opóźnienia  powinny  być  przeprowadzane  lokalnie,  bez 
konieczności dostępu do odległych modułów lub sygnałów. 

background image

Najważniejsze metody projektowania

Podział na mniejsze bloki 

funkcjonalne (opcjonalnie)

Główna idea systemu

Weryfikacja poziomów 

systemu

Metoda Bottom-Up

(Full Custom)

Metoda Top-Down

(Standard Cell)

background image

Metoda projektowania Bottom-Up (Full 
Custom

Metoda  projektowania  Bottom-Up  bazuje  (głównie)  na 
ręcznej  konstrukcji  bloków  obwodów  na  poziomie 
tranzystorów oraz topologii maski. Są one następnie łączone 
w  celu  sformowania  kompletnego  projektu.  Dzięki 
elastyczności  na  niższych  poziomach  projektowania,  takich 
jak 

optymalizacja 

rozmiarów 

tranzystorów 

oraz 

minimalizacji  elementów  biernych,  metoda  Bottom-Up  jest 
bardzo  użyteczna  w  projektowaniu  modułów  cyfrowych  o 
bardzo  wysokiej  gęstości  oraz  osiągach,  jak  również 
zintegrowanych obwodach analogowych oraz mieszanych. 

background image

Metoda projektowania Bottom-Up (Full 
Custom (2)

 Tworzone są schematy poszczególnych bloków funkcjonalnych 
(
połączenia tranzystorów obwodu wykonane w edytorze).
 Przeprowadzana jest symulacja połączeń tranzystorów 
(
sprawdzenie funkcjonalności bloków np. SPICE)
 Wykonywane jest projekt rozmieszczenia elementów 
 Ekstrakcja (maskowanie) (wymiary urządzenia oraz parametry 
pasożytnicze są zależne od rozplanowania maski)
 Sprawdzenie zgodności maski ze schematem obwodu
 Symulacja końcowa

background image

Metoda projektowania Top_Down 
(Standard Cell)

Metoda  projektowania  Top-Down  odgrywa  ważną  rolę  przy 
automatycznej, 

wspomaganej 

komputerowo 

syntezie 

układów logicznych przy użyciu języków HDL. Syntetyzowana 
logika jest przekształcana na standardowe komórki biblioteki 
lub  na  FPGA.  Metoda  Top-Down  stosowana  jest  tylko  do 
projektów cyfrowych posiadających stosunkowo krótkie cykle 
produkcyjne  oraz  umiarkowane  wymagania  względem 
efektywności układu. 

background image

Biblioteki

Zawierają dostępne 

elementy oraz funkcje

Synteza logiczna oraz odwzorowanie bibliotek

Stworzenie opisu poziomu bramek przy użyciu 

biblioteki komórek

Kod struktury (HDL)

Szczegółowy kod opisujący strukturę 

poziomu bramek

Kod RTL (HDL)

Wyznaczenie zmiennych 

boolowskich reprezentujących 

wszystkie stany

 
 
 
 
 
 
 

 

Symulacja końcowa

Zasymulowanie końcowego układu logicznego w celu 

zweryfikowania rzeczywistych opóźnień oraz możliwości układu

Rozmieszczenie elementów oraz ścieżek

Stworzenie struktury obwodu przy użyciu odpowiednich narzędzi

Symulacja cyfrowa

Weryfikacja logicznej funkcjonalności obwodu

Poziom opisu sieci bramek

    

Metoda projektowania Top_Down 
(Standard Cell) (2)

background image

Wytwarzanie

Masowa produkcja zaprojektowanego 

układu

Testowanie

Weryfikacja osiągów układu oraz 

zidentyfikowanie możliwości 

wprowadzenia ewentualnych poprawek

Prototyp

Wyprodukowanie próbek układu

Stworzenie pliku w formacie 

umożliwiającym opis kolejnych etapów 

produkcji układu dla wytwórcy (Tape-

out)

Weryfikacja rozmieszczenia

Symulacje mające na celu zbadanie 

funkcjonalności i osiągów całego układu

Rozmieszczenie elementów oraz ścieżek 

całego układu (Top Level)

Produkcja

Etap  ten  zazwyczaj  wymaga  wielu  modyfikacji  w  celu  spełnienia 
wymagań  projektowych,  wyprodukowania  prototypu  oraz  wielokrotnego 
testowania w celu skorygowania ewentualnych wad projektu.