układów logicznych – pulw12.pwr.wroc.pl/mikro/pul_v/wyklad/w12_v1.pdf · 2020. 5. 27. · -...
TRANSCRIPT
![Page 1: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/1.jpg)
kod kursu: ETD6203
__ Wrocław
Programowanie
Układów Logicznych – PUL
Wykład 12
DR INŻ. MACIEJ RUDEK
DR INŻ. DANIEL KOPIEC
Optymalizacja procesu syntezy logicznej, PicoBlaze, ChipScope
![Page 2: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/2.jpg)
HDL
– Hardware Description Language
2
• ABEL (ang. Advanced Boolean Expression Language)
o Jeden z najstarszych języków opisu układów programowalnych, opracowany w firmie
DATA I/O,
• AHDL (ang. Altera Hardware Description Language)
o Opracowany przez Alterę, zintegrowany z narzędziem MAX+PLUS II,
• CUPL (ang. CUPL - Universal Compiler for Programmable Logic)
o Opracowany w firmie Logical Devices Inc.,
• VHDL (ang. Very High Speed Integrated Circuits Hardware Description Language )
o Na zlecenie Departamentu Obrony USA - 1981
o 1987 zatwierdzony standard IEEE1076, 1993 zatwierdzony standard IEEE1164, 1995
powołano standardy 1076.3, 1076.4
• Verilog
o Opracowany w firmie Gateway Design Automation 1985, migracja do Cadence Design
System 1989
![Page 3: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/3.jpg)
• Synteza logiczna
• Optymalizacja procesu syntezy
• Dekompozycja w wariancie ogólnym
• SOFTPROCESOR PicoBlaze
• ChipScope
• Podsumowanie – przykładowe pytania
Plan wykładu
3
![Page 4: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/4.jpg)
• Synteza logiczna • Translacja języka opisu sprzętu (HDL) na odpowiednią sieć
połączeń zasobów sprzętowych, bramek logicznych, przerzutników, komórek, która realizować będzie określony układ funkcjonalny
• Główny cel syntezy • Uzyskanie struktury, która po zaimplementowaniu w strukturze
układu będzie optymalna pod jakimś względem, np. powierzchni układu, szybkości działania, zużycia zasobów, łatwości testowania
• Podstawowy problem • Niedoskonałość narzędzi syntezy logicznej
Synteza logiczna
- znaczenie pojęcia
5
![Page 5: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/5.jpg)
Etapy procesu implementacji
Główny cel:
• dopasowanie funkcji logicznych do
zasobów struktury programowalnej
Metody:
• wyszukiwanie wspólnych wyrażeń
logicznych, minimalizacja funkcji
• faktoryzacja pod kątem zasobów
• dekompozycja funkcjonalna
Ważną rolę w całym procesie
projektowania odgrywają procedury
syntezy logicznej, niejednokrotnie
decydujące o jakości transformacji sieci
logicznej na wynikowe struktury
odwzorowania technologicznego. 6
![Page 6: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/6.jpg)
• w dzisiejszych technologiach układy logiczne to nie tylko bramki,
• coraz większego znaczenia nabierają technologie, w których podstawowym elementem konstrukcyjnym są komórki logiczne (Logic Cell),
• metody syntezy - w szczególności minimalizacja - są nieskuteczne,
• określenie minimalnej liczby argumentów, od których funkcja istotnie zależy, jest bardzo istotna w redukowaniu złożoności obliczeniowej procedur minimalizacji funkcji boolowskich, a w konsekwencji może się przyczynić do uzyskiwania lepszych rezultatów
7
![Page 7: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/7.jpg)
CPLD • minimalizacja
dwupoziomowa,
• odwzorowanie technologiczne w
sieci bloków PAL, PLA
FPGA • dekompozycja,
• przyporządkowanie wyrażeń do
poszczególnych bloków LUT,
• rozmieszczenie bloków w strukturze,
CPLD vs FPGA
8
![Page 8: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/8.jpg)
Sieć dwupoziomowa Sieć wielopoziomowa
9
![Page 9: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/9.jpg)
Dekompozycja
Dekompozycja – odpowiedni sposób podziału całego problemu na
prostsze zagadnienia, podział projektowanego układu na podukłady
o zadanej liczbie wejść i wyjść
Rodzaje dekompozycji:
• kolumnowa,
• wierszowa,
• funkcjonalna,
• równoległa,
• szeregowa,
• zrównoważona. 10
PAL, PLA, CPLD
FPGA
![Page 10: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/10.jpg)
• Bloki LUT mające nLUT wejść umożliwiają realizację n-argumentowej funkcji, gdy spełniony jest warunek: nLUT n,
• gdy, nLUT < n wymagany jest podział argumentów
• Skuteczność dekompozycji jest tak ogromna, że mimo jej braku w narzędziach komercyjnych należy się z tymi metodami zapoznać i stosować w praktyce projektowania układów cyfrowych za pośrednictwem narzędzi uniwersyteckich.
• Metoda klasyczna to metoda tablicowa, graficzna, której podstawowe operacje wykonywane są na tzw. tablicy dekompozycji
• Z tych powodów dla struktur FPGA znacznie skuteczniejszą metodą syntezy okazuje się dekompozycja funkcji boolowskich, której istotą jest synteza funkcji boolowskich w strukturach wielopoziomowych złożonych z komponentów w postaci bloków logicznych typu LUT specyfikowanych pierwotnymi tablicami prawdy.
Dekompozycja
- ukierunkowana na układy FPGA
11
![Page 11: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/11.jpg)
Jak to działa
12
![Page 12: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/12.jpg)
Dekompozycja zrównoważona
dekompozycja
y=H(X1, G(X2))
równoległa szeregowa
13
![Page 13: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/13.jpg)
Dekompozycja
- cel
14
Znaczenie praktyczne dekompozycji wynika
z konstrukcji typowych struktur
programowalnych jakimi są układy FPGA.
![Page 14: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/14.jpg)
• graficzne,
• analityczne,
• komputerowe,
Tablice Karnaugha, Metoda Quine’a – McCluskey’a
Pierwsze skuteczne narzędzie do minimalizacji wieloargumentowych i wielowyjściowych funkcji boolowskich (Uniwersytet Kalifornijski w Berkeley) :
Metoda i system Espresso (1984)
Podejście klasyczne
- minimalizacja funkcji boolowskich
15
![Page 15: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/15.jpg)
Efekt dekompozycji
• bin2bcd1 – konwerter kodu binarnego na BCD dla liczb z zakresu od 0 do 99,
• bin2bcd2 – konwerter kodu binarnego na BCD dla liczb z zakresu od 0 do 355,
• DESboxes – zespół skrzynek podstawieniowych szyfru DES,
• rd88 – sbox z algorytmu kryptograficznego Rijndael, DESaut – kombinacyjna część układu sekwencyjnego z
implementacji algorytmu
• kryptograficznego DES,
• 5B6B – kombinacyjna część układu kodera 5B-6B,
• count4 – 4-bitowy licznik z mikrooperacjami COUNT UP, COUNT DOWN, HOLD,
• CLEAR i LOAD
W tabeli przedstawiono
wyniki porównania metody
wykorzystującej
dekompozycję
zrównoważoną systemu
DEMAIN z metodami
zaimplementowanymi w
systemach: SIS, FPGA
Express, Leonardo
Spectrum i MAX+PlusII.
16
![Page 16: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/16.jpg)
• Kanoniczna postać sumy (suma iloczynów AND-OR y=x1x2 + x3x1)
• Kanoniczna postać iloczynów (iloczyn sum OR-AND y=(x1+x2)( x3+x1))
Podejście klasyczne
- minimalizacja funkcji boolowskich
17
![Page 17: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/17.jpg)
Podejście klasyczne
- minimalizacja funkcji boolowskich
18
![Page 18: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/18.jpg)
Twierdzenie Ashenhursta-Curtisa
Niech będzie dana funkcja boolowska f oraz pewien podział zbioru zmiennych wejściowych na dwa rozłączne zbiory A i B,
wówczas:
f(A, B) = h(g1(B)),…gj(B), A) v(A|B) 2j
v(A|B) 2j - złożoność kolumnowa
A, B – zbiór wolny, zbiór związany
Dekompozycja funkcjonalna
- metoda klasyczna – podstawowe twierdzenie
A
B
19
![Page 19: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/19.jpg)
Dekompozycja funkcjonalna
- metoda klasyczna – tablica dekompozycji
2 powtarzające się wzorce kolumn, istnieje dekompozycja,
zmienne x1, x2, x3 zostają przeadresowane g1, g2
Tablica dekompozycji funkcji f to inaczej macierz dwuwymiarowa o kolumnach i
wierszach etykietowanych wartościami funkcji f ze zbioru A oraz B. Elementami
macierzy są wartości jakie przyjmuje funkcja f.
Liczbę istotnie różnych kolumn oznaczamy v(A|B)
A = {x4, x5}
B = {x1, x2, x3} f(A, B) = h(x4, x5, g1(x1, x2, x3), g1(x1, x2, x3))
20
![Page 20: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/20.jpg)
Dekompozycja funkcjonalna
- metoda klasyczna
{(0, 0, 1), (0, 1, 0), (1, 0, 0)}
{(1, 1, 0), (1, 0, 1), (0, 1, 1)}
istnieje dekompozycja
Zmienne {x1, x2, x3} zostają przeadresowana na {g1, g2}
Tablica opisuje dekompozycję funkcji g 21
wstawiamy
nowe
adresy
![Page 21: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/21.jpg)
Dekompozycja funkcjonalna
- metoda klasyczna
Tablica opisuje dekompozycję funkcji h
kolumny zgodne są sklejane
kodowanie
może być
dowolne
22
![Page 22: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/22.jpg)
Dekompozycja funkcjonalna
- metoda klasyczna – określenie funkcji g, h
dekompozycja g dekompozycja h
g1 g2 h
g1=x1x2 + x2x3 + x1x3
g2=x1x2x3 + x1x2x3 + x1x2x3 +x1x2x3
h=x4x5g1 + x4g1g2 + x4x5g1g2
23
![Page 23: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/23.jpg)
Dekompozycja funkcjonalna
- dekompozycja funkcji w pełni nieokreślonych
Ustalmy, które kolumny są zgodne:
- moment decyzyjny
K0, K1 - sprzeczne
K0, K2 - sprzeczne
K0, K3 - zgodna
K0,K4 - zgodna
K0, K3
K0, K4
K0, K6
K1, K3
K1, K4
K1, K5
K1, K6
K2, K5
K2, K7
K3, K4
K4, K6
K4, K5
K4, K6
K5, K7
K0, K3, K4
K0, K3, K6
K0, K4, K6
K1, K3, K4
K1, K3, K6
K1, K4, K5
K1, K4, K6
K2, K5, K7
K3, K4, K6
K0, K3, K4, K6
K1, K3, K4, K6
K1, K4, K5
K2, K5, K7
Podejmujemy decyzję o rozłącznych
klasach zgodności
f(A, B) = h(a, b, g1(c, d, e), g2(c, d, e))
kolumny powtarzająca się
usuwamy 24
![Page 24: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/24.jpg)
Dekompozycja funkcjonalna
- przykład
K0, K3
K0, K4
K0, K6
K1, K3
K1, K4
K1, K5
K1, K6
K2, K5
K2, K7
K3, K4
K4, K6
K4, K5
K4, K6
K5, K7
K0, K3, K4
K0, K3, K6
K0, K4, K6
K1, K3, K4
K1, K3, K6
K1, K4, K5
K1, K4, K6
K2, K5, K7
K3, K4, K6
K0, K3, K4, K6
K1, K3, K4, K6
K1, K4, K5
K2, K5, K7
K0, K3, K4, K6
K1, K4, K5
K2, K5, K7
K0, K3, K4, K6
K1, K5
K2, K7
25
Niektóre kolumny występują w więcej niż w jednej klasie
zgodności, należy więc podjąć decyzję o wyborze
rozłącznych klas zgodności, każda kolumna musi być
reprezentowana w jednej klasie zgodności
![Page 25: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/25.jpg)
Dekompozycja funkcjonalna
- przykład
• uzyskaliśmy realizację pierwotnej funkcji 5 argumentów w dwóch blokach
• wyjścia bloku g są jednocześnie dodatkowymi wejściami do h
• bloki te mają mniejszą liczbę zmiennych wejściowych
26
![Page 26: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/26.jpg)
Łuba, Tadeusz. Synteza układów logicznych.
Wyższa Szkoła Informatyki Stosowanej i
Zarządzania, 2000
W kwestii uzupełnienia
27
![Page 27: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/27.jpg)
Softprocesor
http://www.xilinx.com/support/documentation/ip_documentation/ug129.pdf 28
![Page 28: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/28.jpg)
Podejście układowe
IP core (ang. Intelectual Property core – rdzeń będący własnością intelektualną) 29
![Page 29: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/29.jpg)
PicoBlzae - procesor 8-bitowy w strukturze FPGA - Ken Chapman (KCPSM3)
KCPSM (Constant(K) Coded Programmable State Machine, lub „Ken Chapman’s PSM”),
• 16-bitowe instrukcje
• 2 cykle zegara na instrukcje
• osobna magistrala danych i programu
• zajmuje 35 CLB (układ Virtex 800 posiada: 4704 CLB)
• może wykonać 35 MIPs (millions instructions per second)
• wykonuje 49 różnych instukcji
• ma 16 rejestrów
• rejestr flag: Carry, Zero
• wewnętrzna pamięć stosu ograniczona do 15 zagnieżdżeń (wywołań funkcji)
PicoBlaze - specyfikacja
30
![Page 30: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/30.jpg)
PicoBlaze jest dostępny w
postaci IP core
Zaleta:
do woli można zmieniać zarówno
oprogramowanie, jak i istniejące
peryferia, łącznie z samym
rdzeniem.
31
![Page 31: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/31.jpg)
• Ise Xilinx WebPack
• Model Sim – symulacja VHDL
• KCPSM3 asembler do PicoBlaze – na podstawie opisu *.asm generuje element pamięci opisany w VHDL
• pBlazeIDE – testowanie, kompilacja
Niezbędne oprogramowani
PicoBlaze po implementacji w układzie Spartan–3E
zajmuje zaledwie 96 slice’ów i jeden blok pamięci BRAM.
Przy takiej implementacji, mikroprocesor może być
taktowany sygnałem zegarowym do 88 MHz (44 MIPS – 44
miliony instrukcji wykonanych w ciągu jednej sekundy) 32
![Page 32: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/32.jpg)
33
![Page 33: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/33.jpg)
Lista instrukcji procesora
PICOBLAZ
34
![Page 34: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/34.jpg)
PicoBlaze
– lista instrukcji - asembler
Program Counter – 10-bitowy, może
przyjmować wartości od 0 do 1023.
Jeśli PC osiągnie maksymalną
wartość, następna instrukcja będzie
wykonana spod adresu 0 (o ile nie
był to skok)
• wszystkie instrukcje wymagają
dwóch cykli zegarowych na ich
wykonanie.
• lista rozkazów obejmuje 49
instrukcji asemblerowych
35
![Page 35: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/35.jpg)
PicoBlaze
- to nic więcej jak dodatkowy komponent
component KCPSM3
port (
address : out std_logic_vector( 9 downto 0);
instruction : in std_logic_vector(17 downto 0);
port_id : out std_logic_vector( 7 downto 0);
write_strobe : out std_logic;
out_port : out std_logic_vector( 7 downto 0);
read_strobe : out std_logic;
in_port : in std_logic_vector(7 downto 0);
interrupt : in std logic;
interrupt_ack : out std_logic;
reset : in std logic;
clk: in std logic;
);
end component; component prog_rom
port(
address : in std_logic_vector( 9 downto 0);
instruction : out std_logic_vector(17 downto 0);
clk : in std_logic
);
end component;
moduł procesora Pico Blaze3
moduł pamięci programu 36
![Page 36: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/36.jpg)
37
![Page 37: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/37.jpg)
PicoBlaze
- architektura
16 – rejestrów ogólnego przeznaczenia ALU
• porty mogą być adresowane bezpośrednio przez instrukcję lub pośrednio przez rejestr
• obsługa przerwania jest bardzo szybka i wymaga jedynie 5 taktów sygnału zegarowego
pamięć programu, synch
38
![Page 38: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/38.jpg)
PicoBlaze
– lista instrukcji - asembler
;**************************************************************************************
; Stale uzyte w programie
;**************************************************************************************
CONSTANT led_signal , 01 ; numer diody LED
CONSTANT led_port_nr , 00 ; numer portu, do ktorego przylaczony jest LED
CONSTANT licznik , 2F ; do ilu bedziemy odliczac aby zmienic stan diody LED
;**************************************************************************************
; Rejestry specjalnego przeznaczenia ;
**************************************************************************************
; s0 ; rejestr użyty do zliczania impulsów
; s1 ; s1 – rejestr z wartością portu – 1
; s2 ; s2 – rejestr z wartością portu – 0
;;=========================================================
__start:
LOAD s1, 01 ; s1 <= 1
LOAD s2, 00 ; s2 <= 0
start:
LOAD s0, licznik ; ustaw licznik
LOAD sA, sA ; instrukcja pusta
petla1:
SUB s0, 01 ; odejmij jeden
COMPARE s0, 00 ; sprawdz, czy zero
JUMP NZ, petla1 ; jesli nie skocz do petla1
OUTPUT s1, led_port_nr ; ustaw sygnal LED_cntrl na „1”
LOAD s0, licznik ; ustaw licznik
petla2:
SUB s0, 01 ; odejmij jeden
COMPARE s0, 00 ; sprawdz, czy zero
JUMP NZ, petla2 ; jesli nie skocz do petla2
OUTPUT s2, led_port_nr ; ustaw sygnal LED_cntrl na „0”
JUMP start ; skocz na poczatek programu
LED_ustaw: process (clk_p, rst)
begin
if (rst = ‚1’)
then LED_cntrl <= ‚0’;
elsif clk_p’event and clk_p=’1’
then
if ((port_id=”00000000”)
and (write_strobe=’1’)) then
LED_cntrl <= out_port(0);
end if;
end if;
end process;
asm#1
asm#2
VHDL
39
![Page 39: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/39.jpg)
40
![Page 40: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/40.jpg)
• Sprawdzenie na żywym organizmie, po wykonaniu syntezy oraz implementacji
Sprawdzenie poprawności działania systemu
Źródło: https://www.element14.com/community/groups/fpga-group/blog/2015/06/17/gradient-filter-implementation-on-fpga-part-3-debugging-in-hdl
https://mil.ufl.edu/3701/DAD/DAD_tutorial.pdf
![Page 41: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/41.jpg)
• Sprawdzenie na żywym organizmie, po wykonaniu syntezy oraz implementacji
Sprawdzenie poprawności działania systemu
![Page 42: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/42.jpg)
Zintegrowany analizator
Chip Scope
43
![Page 43: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/43.jpg)
Wsparcie przy testowaniu funkcjonalności:
• test bench – symulacja,
• ChipScope – podgląd sygnałów
w strukturze (analizator stanów logicznych),
• narzędzie to jest częścią środowiska
projektowego ISE Design Suite
Chip Scope
44
![Page 44: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/44.jpg)
Analizator Chip Scope to 2 moduły: - ILA – analizator logiczny, Integrated Logic Analyzer,
- ICON – kontroler, Integrator Controller.
Chip Scope
45
![Page 45: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/45.jpg)
Au
rora
OPB SDRAM
User Logic
PL
B B
us
OP
B B
us
Bridge OPB GPIO
Arb
iter
46
![Page 46: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/46.jpg)
Chip Scope
Core Generator Core Inserter
ChipScope Pro
Core Generator
Instantiate Cores into
Source HDL
Connect Internal Signals
to Core (in Source HDL)
Synthesize
Implement
Synthesize
ChipScope Pro Core
Inserter (into netlist)
Download and debugging
Using ChipScope Pro software
47
![Page 47: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/47.jpg)
Chip Scope
48
![Page 48: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/48.jpg)
ChipScope
- analiza bezpośrednio w chipie
49
![Page 49: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/49.jpg)
1. Pojęcie syntezy logicznej
2. Na czym polega dekompozycja
4. PicoBlaze – architektura, główne bloki
5. PicoBlaze – informacje ogólne, lista rozkazów, porty, pamięć
6. ChipScope - zastosowanie
Przykładowe pytania
50
![Page 50: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona](https://reader036.vdocuments.us/reader036/viewer/2022071512/61331e83dfd10f4dd73ae1ed/html5/thumbnails/50.jpg)
Dziękuję za uwagę
51