background image

 

 

1

SEMINARIUM DYPLOMOWE

Pytanie nr 15

„Proces projektowania 

cyfrowego układu scalonego 

(Design Flow)”

Wykonał: Marcin 

Szulc

background image

 

 

2

Układ  scalony  –  (ang.  intergrated  circuit,  chip
(potocznie kość), zminiaturyzowany układ elektroniczny 
zawierający  w  swym  wnętrzu  od  kilku  do  setek 
milionów  podstawowych  elementów  elektronicznych, 
takich jak tranzystory, diody, rezystory, kondensatory.
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 główne grupy:
  monolityczne,  w  których  wszystkie  elementy, 

elementy  czynne  wykonane  są  w  monokrystalicznej 
strukturze półprzewodnika,
  hybrydowe  -  na  płytki  wykonane  z  izolatora 

nanoszone  są  warstwy  przewodnika  oraz  materiału 
rezystywnego,  które  następnie  są  wytrawiane,  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

 

 

3

Ze względu na grubość warstw rozróżnia się układy: 
 cienkowarstwowe (warstwy ok. 2 mikrometrów),

 grubowarstwowe (warstwy od 5 do 50 mikrometrów).

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

 

 

4

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ść x oraz od poprzedniego stanu, 
zwanym  stanem  wewnętrznym,  pamiętanego  w  zespole 
rejestrów (pamięci). 

background image

 

 

5

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. 

Rys. 1. Schemat budowy układu sekwencyjnego

background image

 

 

6

W  najczęściej  stosowanych  układach  cyfrowych 
określa się dwa stany układu 0 i 1, ze względu na 
to,  że  sygnał  z  układu  może  mieć  różne  wartości 
spowodowane 

sygnałami 

wejściowymi 

zakłóceniami  przyjmuje  się  zakresy  uznawania 
sygnału za zero i jedynkę, czasami określa się też 
tzw. stan zabroniony, lub nieokreślony.
Często  stosuje  się  też  pojęcia  stan  wysoki  H 
(high) oraz stan niski (low).
Zazwyczaj  stan  wysoki  odpowiada  wartości  1,  a 
niski  wartości  0,  ale  spotyka  się  też  realizacje 
odwrotne,  gdzie  brak  sygnału  lub  jego  niska 
wartość oznacza wartość 1, a wysoka 0.
Układy  0,  1  są  najczęściej  stosowane  w  technice, 
dlatego często technika cyfrowa jest utożsamiana 
z  wartościami  0  i  1  oraz  z  dwójkowym  systemem 
liczenia, co nie jest do końca prawdą. 

background image

 

 

7

        Przy  projektowaniu  układów  cyfrowych  używa  się 
powszechnie  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.). 
        Ś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

 

 

8

Pierwsze  układy  scalone  były  projektowane  ręcznie  (za 
pomocą  ołówka  i  kartki  papieru).  Wymagało  to  od 
producenta  zatrudnienia  na  długi  okres  czasu  nie  tylko 
wielu doświadczonych inżynierów, ale i kreślarzy. W miarę 
wzrostu  złożoności  układów,  wydłużał  się  czas  potrzebny 
na  zrealizowanie  projektu,  jak  również  rosły  koszty 
przygotowania  układu  do  produkcji.  W  celu  dotrzymania 
kroku  szybko  zachodzącym  zmianom,  urządzenia  muszą 
być  projektowane  wyjątkowo  szybko,  co  wymaga 
automatyzacji  projektowania.  Projekty  cyfrowe  stały  się  w 
dużej  mierze  uzależnione  od  stosowanych  narzędzi 
komputerowego wspomagania projektowania przy pomocy 
narzędzi  CAD  (Computer-Aided  Design),  znanych  jako 
systemy  automatycznego  projektowania  DA  (Design 
automation)  lub  systemy  automatycznego  projektowania 
układów 

elektronicznych 

EDA 

(Electronic 

Design 

Automation).  Zastosowanie  tych  narzędzi  pozwala  na 
realizację dwóch zadań:
  syntezę  –  pozwala  na  translację  specyfikacji  (opisu)  na 

implementację projektu,
  symulację  –  pozwala  na  analizę  specyfikację  lub 

szczegóły  implementacji  w  celu  sprawdzenia  poprawności 
ich działania. 

background image

 

 

9

Ręczne  projektowanie  typowego  układu  VLSI 
trwałoby kilka lat i pochłaniałoby ogromne sumy 
pieniędzy. Zastosowanie systemów CAD pozwala 
znacznie  skrócić  czas  projektowania  układów 
scalonych i ma ogromne znaczenie ekonomiczne. 
Celem zastosowania programów CAD są:
 szybkie projektowanie,

 wykrywanie błędów w projekcie,

 umożliwienie szybkiego wprowadzania zmian,

 weryfikacja,

 testowanie,

 symulacja projektu. 

background image

 

 

10

Proces  projektowania  cyfrowego  układu  scalonego 
(Design Flow)

 
W  celu  projektowania  systemów  cyfrowych  wykorzystujących  bramki 
logiczne opracowano formalne metody projektowania:
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

 

 

11

Proces  projektowania  na  każdym  poszczególnym  poziomie  ma 
charakter  ewolucyjny.  Rozpoczyna  się  od  ustalenia  określonych 
wymagań.  Następnie  projekt  jest  rozwijany  i  testowany  na 
zgodność  z  wymaganiami.  Jeśli  okaże  się  być  z  nimi  niezgodny, 
wówczas musi być ulepszony. 

Design Flow

Projekt architektury 

funkcjonalnej

Specyfikacja 

systemu

Weryfikacja 

architektury

Projekt logiki układu

Weryfikacja logiki 

układu

Projekt obwodu

Weryfikacja obwodu

Projekt fizyczny 

układu

Weryfikacja 

rozmieszczenia 

elementów

Odwzorowanie 

sposobu 

zachowania 

układu 

Stworzenie 

logiki układu 

(poziom bramek 

logicznych)

Tworzenie 

obwodu

Rozmieszczanie 

elementów

Wytworzenie 

oraz testowanie

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Rys. 2. Schemat ogólny procesu projektowania cyfrowego układu scalonego 

background image

 

 

12

Hierarchia projektowania
 
Hierarchia  projektowania  jest  techniką  wymagającą 
podzielenia 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  trzy  główne  domeny  projektowania  układów 
mogą  posiadać  hierarchiczną  strukturę  wyodrębnioną, 
dla  każdej  z  nich  z  osobna.  Jednakże  warunkiem 
koniecznym  jest  takie  uproszczenie  projektu  tak,  aby 
hierarchia  w  różnych  domenach  odnajdywała  w  prosty 
sposób 

swoje 

odzwierciedlenie 

we 

wszystkich 

pozostałych.
  Jako  przykład  hierarchicznego  podziału  struktury  może 
posłużyć  4-bitowy  sumator  CMOS  podzielony  na 
poszczególne  komponenty.  Pierwszym  krokiem  jest 
podzielenie  go  na  jedno-bitowy  sumatory,  które  są 
następnie  dzielone  na  bity  przeniesienia  oraz  sumy. 
Ostatnim  krokiem  jest  podzielenie  ich  na  indywidualne 
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

 

 

13

Rys.3. Hierarchiczny podział struktury 4-bitowego sumatora CMOS podzielonego na poszczególne komponenty

background image

 

 

14

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.

 

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 w miarę niezależne projektowanie modułu 
od  projektów  innych  modułów,  dzięki  temu,  że  nie  ma 
dwuznaczności  pomiędzy  zastosowaniami  oraz  granicami 
dwóch  bloków.  Dzięki  temu  wszystkie  bloki  mogą  zostać 
połączone  w  jedną  całość  na  koniec  procesu  w  celu 
stworzenia większego systemu. Dzięki modułowości możliwe 
są  równoległe  prace  nad  poszczególnymi  elementami 
systemu.  Dodatkową  zaletą  jest  możliwość  zastosowania 
poszczególnych 

modułów 

innych 

projektach 

(projektowanie plug-and-play). 

background image

 

 

15

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ługo-dystansowych.  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

 

 

16

Na poniższym wykresie zaprezentowano główne kroki typowych 
przebiegów procesu  projektowania cyfrowego układu scalonego 
(Design Flow). Wyróżniamy dwie główne metody:
 metoda Top-Down,

 metoda Bottom-Up. 

Podział na mniejsze 

bloki funkcjonalne 

(opcjonalnie)

Główna idea 

systemu

Weryfikacja poziomów 

systemu

Metoda Bottom-Up

(Full Custom)

Metoda Top-Down

(Standard Cell)

 

VLSI  Design 

Flow

 

  

background image

 

 

17

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 razem 
w  celu  sformowania  kompletnej  hierarchii 
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 

projektowaniu  modułów  cyfrowych  o  bardzo 
wysokiej  gęstości  oraz  osiągach,  jak  również 
zintegrowanych  obwodach  analogowych  oraz 
mieszanych. 

background image

 

 

18

Symulacja

Końcowa symulacja bloków 

obwodu przeprowadzona 

przy pomocy SPICE

Sprawdzenie zgodności 

maski rozmieszczenia 

elementów ze schematem 

obwodu

Ekstrakcja (maskowanie)

Rzeczywiste wymiary 

urządzenia oraz parametry 

pasożytnicze są zależne od 

rozplanowania maski

Rozmieszczenie 

elementów

Rozmieszczenie 

poszczególnych bloków 

obwodów wykonane w 

edytorze rozmieszczenia

Symulacja połączeń 

tranzystorów

Symulacja bloków obwodu w 

celu sprawdzenia ich 

funkcjonalności np. przy 

pomocy programu SPICE lub 

innego

Schematy poszczególnych 

bloków funkcjonalnych

Schemat połączeń 

tranzystorów obwodu 

wykonane przy pomocy  

edytora schematów

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      

Rys.5. Schemat przebiegu procesu projektowania metodą Bottom-Up (Full Custom)

background image

 

 

19

Metoda projektowania Top-Down (Standard 
Cell)

Metoda  projektowania  Top-Down  odgrywa 
podstawową 

rolę 

przy 

automatycznej, 

wspomaganej  komputerowo  syntezie  bramek 
przy  użyciu  języków  programowania  HDL. 
Syntetyzowana 

logika 

jest 

następnie 

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

 

 

20

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

 
 
 
 
 
 
 
 
 
 
 
 

    

Rys.6. Schemat przebiegu procesu projektowania metodą Top-Down (Standard Cell)

background image

 

 

21

Etap  produkcji  od  projektu  rozmieszczenia  elementów  oraz 
ścieżek do wyprodukowania gotowego chipu
Etap  ten  zazwyczaj  wymaga  wielu  modyfikacji  projektu 
rozmieszczenia  w  celu  spełnienia  wymagań  projektowych, 
wyprodukowania  prototypu  oraz  wielokrotnego  testowania  w  celu 
skorygowania ewentualnych wad projektu.

 

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)


Document Outline