Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Modelowanie Układów Cyfrowych
Wykład w
prowadzający
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Program dzisiejszego wykładu
Modelowanie układów cyfrowych – podstawowe
pojęcia
Reprezentacja danych o układach i systemach
cyfrowych
»
Dziedziny reprezentacji
»
Poziomy abstrakcji i diagram Y Gajskiego
Wprowadzenie do języków opisu sprzętu
»
Kilka słów o historii
»
Powstanie języka VHDL
Przedstawienie programu przedmiotu
i warunków zaliczenia, literatura
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Sygnały cyfrowe i ich przetwarzanie
Sygnały analogowe (elektryczne i nieelektrycze)
Kwantyzacja:
»
przetwarzanie analogowo-cyfrowe (skończona dokładność, liniowość)
Kodowanie:
»
Reprezentacja danych za pomocą ciągów zer i jedynek, przy użyciu konwencji wysokie napięcie
(PRAWDA) 1, niskie napięcie (FAŁSZ) 0
»
Sygnały logiczne (dwustanowe)
»
Informacja symboliczna (np. kod ASCII, kodowanie stanów automatów)
»
Liczby binarne (stałoprzecinkowe), kody BCD
»
reprezentacja liczb ze znakiem i liczb zmiennoprzecinkowych (m*2
C
)
»
Kody korekcyjne (ECC)
Wykonywanie operacji arytmetycznych w systemie dwójkowym
100010
100111
011001
001101
....
A
/
C
101110
0
SUMATOR BINARNY
1000001
0011011
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Ogólna architektura układu
cyfrowego
Pamięć
Układ sterujący
Ścieżka danych
C/A
A/C
Sygnały wejściowe
Sygnały wyjściowe
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Zalety techniki cyfrowej
Możliwość wykonywania operacji bez utraty
dokładności
Możliwość realizacji urządzeń o bardzo wysokiej
rozdzielczości (np. pomiar kąta)
Możliwość transmisji informacji przy wysokim poziomie
zakłóceń bez utraty danych (łatwość regeneracji,
możliwość stosowania kodów korekcyjnych)
Łatwość przechowywania (wielkich ilości)
informacji bez ograniczeń w czasie
Niewielka zależność własności układu
od rozrzutu parametrów elementów składowych
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
System czy układ cyfrowy
Układ cyfrowy,
to sprzęt realizujący funkcje
za pomocą odpowiedniej struktury
elementów elektronicznych
System cyfrowy ...
»
zawiera co najmniej jeden programowalny procesor i ...
»
realizuje znaczną część swoich funkcji
za pomocą oprogramowania
wykonywanego przez ten procesor
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Systemy wbudowane
System wbudowany (ang.
embedded system
)
to system mikroprocesorowy (komputerowy)
wbudowany
w dowolne urządzenie techniczne
(samochód, samolot, router sieciowy, telefon,
kuchenkę mikrofalową, pióro, ... )
pełniący specyficzne funkcje sterujące, pomiarowe,
przetwarzające sygnały itp.,
ew. umożliwiające operacje na danych i ich transmisję
Istotne elementy systemu wbudowanego:
»
Mikrokontroler / mikroprocesor
»
Sprzęt specyficzny dla danej aplikacji ( ... ASIC / FPGA)
»
oprogramowanie aplikacyjne
»
ew. system operacyjny czasu rzeczywistego (RTOS)
Istotne (nowe) zagadnienia projektowe:
»
projektowanie na poziomie systemowym,
»
współprojektowanie sprzętu i oprogramowania
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Ewolucja specjalizowanych układów scalonych
(ASIC)
w kierunku systemów scalonych (SoC / SoPC)
Możliwości technologiczne pozwalają
zmieścić w jednym układzie scalonym:
»
procesor (a nawet kilka procesorów
- np. procesor sygnałowy i mikrokontroler),
»
Pamięć (ROM & SRAM,
w specyficznych procesach pamięć Flash, nawet „e”-DRAM)
»
standardowe bloki komunikacyjne (np. kontroler I2C lub USB)
»
podukłady logiczne specyficzne dla danej aplikacji (dawny ASIC)
»
układy analogowe (np. przetworniki ADC i DAC)
»
mikrosystemy mechaniczne (np. sensory)
Przy odpowiedniej skali produkcji
- optymalne wykorzystanie wszystkich zalet integracji
Także układy programowalne zawierają obecnie zasoby
logiczne umożliwiające realizację systemów w pojedynczym
układzie (w tym procesory wbudowane): SoPC
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Modelowanie w procesie
projektowania systemów cyfrowych
Modelowanie na poziomie systemowym
»
analiza wydajności
Specyfikacja zachowania na poziomie algorytmicznym
»
wstępna weryfikacja funkcjonalna algorytmów
»
podział na sprzęt i oprogramowanie
»
synteza wysokiego poziomu
Symulacyjne modele behawioralne elementów standardowych -
symulacja funkcjonalne na poziomie systemu / pakietu
»
pełne
»
magistralowe
Syntezowalne modele na poziomie RTL (register transfer level)
- pełna specyfikacja funkcjonalna projektu (ograniczenia)
Model otoczenia układu (testbench)
Modele symulacyjne komórek bibliotecznych producentów układów
scalonych (standard VITAL) - finalna weryfikacja czasowa układów ASIC
(sign off)
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Zadanie projektowe
- dwuwejściowa bramka NAND
Funkcja:
Ograniczenia projektowe:
»
technologia realizacji - CMOS
»
komórka standardowa
(wymiary)
»
czas propagacji
»
pobór mocy
»
fanout (dopuszczalna
pojemność obciążenia)
a
b
c
0
0
1
0
1
1
1
0
1
1
1
0
ab
c
c
a
b
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Schemat i topografia bramki NAND
V
DD
c
a
b
I
V
V V
V
V
V
V
V
Dn
n
GS
Tn
DS
DS
n
GS
Tn
DS
DS sat
0
2
2
2
1
2
2
(
)
(
)
,
n
n
ox
C
W
L
Źródło
Bramka
Dren
W
L
Dren
Bramka / kanał
Źródło
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Specyfikacja w języku naturalnym:
Zaprojektować układ synchroniczny o jednym
wejściu A i dwóch wyjściach X i Y działający w
następujęcy sposób:
Jeśłi wejście A jest w stanie niskim to wejście Y
jest także w stanie niskim, a wejście X zmienia
swój stan w każdym takcie zegarowym; dla A w
stanie wysokim na wyjściach XY występuje
sekwencja:
00 – 01 – 11 – 00
Zadanie projektowe
– automat sekwencyjny
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Zadanie projektowe
– automat sekwencyjny c.d.
Odwzorowanie specyfikacji
w języku naturalnym
w postaci grafu przejść –
wyjść
Usunięcie braków,
nieścisłości,
sprzeczności w specyfikacji
»
S2, S4 A=0 ??
S4, 11
S3, 10
S2, 01
S1, 00
A=1
A=0
A=0
A=1
A=1
A=0
A=0
Specyfikacje
wykonywalne
(executable) –
walidacja przez symulację
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
PRE
10
CLK
11
D
12
CLR
13
Q
9
Q
8
U2B
SN7474
PRE
4
CLK
3
D
2
CLR
1
Q
5
Q
6
U2A
SN74LS74A
8
9
10
U1C
SN7402
5
6
4
U1B
SN7402
11
12
13
U1D
SN7402
2
3
1
U1A
SN7402
VCC
1
9
2
10
3
11
4
12
5
13
6
14
7
15
8
J?
DB15
Automat sekwencyjny c.d. (schemat)
Synteza sekwencyjna
»
Minimalizacja liczby
stanów
»
Kodowanie stanów
Synteza
kombinacyjna
(funkcje wzbudzeń)
Opracowanie
struktury logicznej:
»
wybór technologii (SSI)
»
faktoryzacja funkcji
w celu minimalizacji
ilości układów
scalonych
Inne ograniczenia
projektowe:
»
Prędkość działania
»
Pobór mocy
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Automat sekwencyjny c.d. (pcb)
Opracowanie obwodu
drukowanego
»
wybór technologii
realizacji
– układy TTL lub CMOS
– druk jedno- lub
wielowarstwowy,
»
wybór obudów itp.
– Obudowa DIP
»
połączenia
mechaniczne
»
zasilanie ?
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Reprezentacja systemu cyfrowego:
diagram Y - Gajskiego
architektura systemu
procesory - pamięci -
kanały komunikacyjne (PMS)
moduły sprzętowe
ścieżka danych, kontroler
bloki funkcjonalne:
ALU,
sumator, rejestr, licznik
elementy logiczne
bramki, przerzutniki
elementy układowe
tranzystory, elementy RC
podział fizyczny na urządzenia,
moduły, płyty PCB, układy scalone
plan powierzchni układu scalonego
(floorplan) lub podział fizyczny
topografia komórek standardowych
(prostokąty)
topografia symboliczna komórek (obrys)
plan powierzchni modułów
(floorplan)
(np. bloków komórek
standardowych)
Geometria
Struktura
Poziom systemowy
Poziom algorytmiczny
Poziom RTL
Poziom logiczny
P. układowy
nieformalny (?)
opis funkcji systemu
i ograniczeń projektowych
definicja algorytmów
opis na poziomie
przesłań
międzyrejestrowych
(RTL)
równania boolowske
układ nieliniowych
równań całkowo-różniczkowych
Funkcja
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Etapy projektowania
Specyfikacja
Synteza
»
realizacja funkcji w oparciu o elementy składowe (biblioteczne)
»
optymalizacja (np. minimalizacja logiczna)
»
generacja (realizacja fizyczna struktury)
Analiza
»
symulacja – walidacja, testy regresyjne
»
weryfikacja formalna (równoważności dwóch reprezentacji)
»
weryfikacja reguł projektowania i własności
Implementacja
»
z elementów katalogowych SSI / MSI / LSI / VLSI (pamięci / ASSP)
»
Układy programowalne (FPGA / CPLD)
»
Układy specjalizowane (ASIC)
»
Systemy wbudowane (tradycyjne i scalone - SoC)
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Specyfikacja
– krótka historia języków opisu sprzętu
CDL (Computer Design Language) –
modelowanie maszyn cyfrowych na poziomie RTL
(Yaohan Chu: Organizacja i Mikroprogramowania Maszyn Cyfrowych)
»
Bloki składowe
– Rejestry
– Pamięci, Dekodery, Multipleksery, Zegary ...
– Sieci logiczne
– Przełaczniki, Lampki sygnałowe ...
»
Mikrooperacja:
– [etykieta-warunek] <rej> <- F(<rej 1>,<rej 2>, ...);
ISP, ISP’, ISPS (instruction set processor specification)
– Carnegie Mellon University
Sieci Petri (DACAPO)
Języki algorytmiczne – na bazie języków programowania
(APL > AHPL: IBM 370, C > M: GDT)
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Rozwój języków opisu sprzętu c.d.
IBM ...
Texas Instruments - TI HDL
Języki do układów PLD – ABEL, CUPL, PALASM
CONLAN (consensus language) –
»
międzynarodowy wysiłek standaryzacyjny (od połowy lat 70-tych:
R.Piloty, M.Barbacci, D.Dietmayer, D.Borrione, F.Hill, P.Shelly)
»
solidne podstawy matematyczne
»
Raport w 1983
»
Base CONLAN - mechanizm tworzenia języków pochodnych o
wspólnej składni podstawowej i sematyce operacyjnej
»
Reglan (weryfikacja formalna !)
MODLAN (Politechnika Śląska, dr Adam Pawlak - 1982)
Verilog – rozwój języka na bazie b.dobrego symulatora
logicznego (83/84 Gateway > Cadence > IEEE STD 1364 - 1995)
... VHDL IEEE STD 1076 – 1987, 1993
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
VHDL
:
V
HSIC
H
ardware
D
escription
L
anguage
Program
V
ery
H
igh
S
peed
I
ntegrated
C
ircuits
(finansowany przez US Depatment of Defense - 1980)
Standaryzacja języka według reguł IEEE
(
Institute of Electrical and Eletronic Engineers, I –
triple E
)
w latach 1985 .. 1987
(wsparcie przez Air Force Wright Aeronautical Laboratories)
V 1987 - opublikowanie standardu IEEE Std 1076 –1987
standardowy pakiet do modelowania logicznego IEEE Std 1164-
Rewizja standardu w latach 1991-93: IEEE Std 1076-1993
Powstanie standard WAVES (IEEE Std 1129)
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
VHDL – rozwój języka i środowiska
c.d.
Kontynuacja prac rozwojowych
nad środowiskiem języka VHDL:
»
1076.1 rozszerzenie języka o możliwości modelowania
układów analogowych (VHDL-AMS - Analog Mixed Signal)
»
1076.2 standardowy pakiet matematyczny
»
1076.3 standardowy pakiet do syntezy
– mało popularny z uwagi
na upublicznienie pakietów firmy Synopsys
»
Opracowanie standardu VITAL (1076.4)
»
1076.6 standardowy podzbiór do syntezy RTL ...
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Metodologia projektowania układów
FPGA i ASIC z wykorzystaniem
syntezy
Symulacja
»
Modelsim, ActiveHDL
Synteza
»
FPGA
– Synplify, Leonardo,
FPGA Express
»
ASIC
– Behavioral Compiler
– Design Compiler (Synopsys)
Projektowanie fizyczne
(topografii)
»
FPGA
– Max Plus II /Quartus (Altera)
– Foundation/ISE (Xilinx)
»
ASIC
– Cadence, Mentor
– Avanti / Synopsys,
– Magma, Monterey
Opis RTL
Opis RTL
Synteza
Optymalizacja
Synteza
Optymalizacja
Place &
Route
Place &
Route
Weryfikacja
Symulacja funkcjonalna
Weryfikacja
Symulacja funkcjonalna
OK
OK
OK
Weryfikacja
Symulacja czasowa
Weryfikacja
Symulacja czasowa
Opis
behawioralny
Opis
behawioralny
Walidacja
Symulacja funkcjonalna
Walidacja
Symulacja funkcjonalna
Weryfikacja
Symulacja funkcjonalna
na poziomie bramkowym
Weryfikacja
Symulacja funkcjonalna
na poziomie bramkowym
OK
Synteza
behawioralna
Netlista
Netlista
Weryfikacja
Statyczna
analiza
czasowa
Weryfikacja
Statyczna
analiza
czasowa
Topografia,
plik konfiguracyjny
Topografia,
plik konfiguracyjny
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Program kursu
Język VHDL
»
Podstawowe elementy języka, typy, obiekty
»
Instrukcja proces, instrukcje wait i przypisanie sygnału, cykl symulacji
»
inne instrukcje sekwencyjne, instrukcje współbieżne
»
pakiety i podprogramy, typy plikowe i wskaźnikowe,
»
atrybuty, konfiguracja
Zastosowanie języka VHDL w procesie projektowym
»
Modelowanie na potrzeby syntezy RTL i sterowanie syntezą
»
Budowa środowisk testujących i metody weryfikacji
»
Symulacja czasowa (standard VITAL)
»
Zarządzanie procesem projektowym i dobre praktyki
»
Wprowadzenie do syntezy behawioralnej
Wprowadzenie do języka Verilog
Modelowanie na poziomie systemowym
»
SystemC
»
Informacja o języku UML i UML Statecharts
»
Informacja o języku SDL
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Literatura
Włodzimierz Wrona, VHDL język opisu i
projektowania układów cyfrowych,
Pracownia Komputerowa Jacka
Skalmierskiego, 1998,
ISBN: 83-8664417-6
Kevin Skahill, Język VHDL. Projektowanie
programowalnych układów logicznych,
Wydawnictwa Naukowo-Techniczne, 2001,
ISBN: 83-204-2616-2
Peter J. Ashenden,
The Designer’s Guide to VHDL,
Morgan Kaufmann Publishers, 1995,
ISBN 1558602704
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Literatura c.d.
Mark Zwoliński, Projektowanie układów
cyfrowych z wykorzystaniem języka VHDL
ISBN 83-206-1452-X
Praca zbiorowa pod redakcją Józefa Kalisza
Język VHDL w praktyce, Wydawnictwa
Komunikacji Łączności, ISBN 83-206-1440-6
Douglas J. Smith, HDL Chip Design, Doone
Publications, March 1998,
ISBN: 0965193438
Writing Testbenches: Functional Verification of
HDL Models, Janick Bergeron, Kluwer Academic
Publishers, 2000, ISBN: 0792377664
Himanshu Bhatnagar, Advanced ASIC Chip
Synthesis: Using Synopsys Design Compiler,
Physical Compiler, and Prime Time, 2 wyd., Kluwer
Academic Publishers, 2002, ISBN: 0792376447
Zakład Techniki Cyfrowej i Mikroprocesorowej Instytutu Elektroniki
Literatura c.d.
Tadeusz Łuba, Krzysztof Jasiński, Bogdan Zbierzchowski
Specjalizowane układy cyfrowe w strukturach PLD i
FPGA Wydawnictwa Komunikacji i Łączności,
ISBN: 83-206-1235-7
Jerzy Pasierbiński, Piotr Zbysiński, Układy
programowalne w praktyce, Wydawnictwa Komunikacji i
Łączności,
ISBN 83-206-1393-0
Giovanni De Micheli, Synteza i optymalizacja układów
cyfrowych Wydawnictwa Naukowo-Techniczne, 1998,
ISBN: 83-204-2219-1
Michael J.S. Smith, Application Specific Integrated
Circuits, Addison-Wesley, 1997