kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 ·...
Transcript of kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 ·...
Programowanie Układów Logicznych
kod kursu: ETD6203
JTAG
W13 –5.06.2019
mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec
JTAG
1985 – Frans Beenker, Philips Research Laboratories, powstaje
organizacja pod nazwą Join Test Action Group stowarzyszająca około
200 producentów układów elektronicznych (JTAG)
1990 - JTAG zostaje uznany za międzynarodowy standard pod nazwą
IEEE Std 1149.1
JETAG – Joint European Test Action Group
JTAG - Joint Test Action Group
2
JTAG (z ang. Joint Test Action Group) to nazwa standardu
IEEE 1149.1 definiującego protokół używany do testowania
połączeń na płytkach drukowanych, stosowany także do
uruchamiania i programowania układów programowalnych i
systemów mikroprocesorowych.
3
Daisy chain
Interfejs JTAG umożliwia łączenie szeregowe układów posiadających taki
interfejs.
4
Boundary Scanc - IEEE
Pozwala na kompletne sterowanie
oraz obserwowalność wyprowadzeń
układu scalonego zgodnego z JTAG
realizowane za pomocą
oprogramowania (bez potrzeby
podłączania urządzeń testujących !!!)
Układy pracują w ich normalnym
trybie lub w sposób umożliwiający
analizę wejść oraz ustawianie stanów
wyjść https://standards.ieee.org/stand
ard/1149_1-2001.html
JTAG - Join Test Action Group
5
JTAG – potrzeba testowania
6
Wady • zwiększona powierzchnia układu
potrzebna na realizację obwodu
Boundary Scan,
• dodatkowy koszt procesu
projektowania,
• zmniejszenie szybkości działania
układu przez wprowadzone
dodatkowe bloki,
• zwiększony pobór mocy
Zalety • ustawienie oraz obserwacja stanów
bez fizycznego połączenia,
• testowe sygnały mogą być
generowane nie tylko na wejściu
płytki ale również w dowolnym
punkcie wewnętrznym bez
potrzeby przerywania połączeń,
• redukcja punktów testowych na
płytkach,
• automatyczna identyfikacja
układów
JTAG - IEEE 1149.1
• Opracowany z myślą o testowaniu poprawności
połączeń między układami cyfrowymi
• w 1990 przyjęty przez IEEE jako standard 1149.1
– zdefiniowana struktura i sposób sterowania,
– The Test Access Port and Boundary Scan Architecture
• zależnie od urządzenia posiada 4 lub 5 –
przewodowy interfejs
• język opisu urządzeń i układów z JTAG
– BSDL (Boundary Scan Definition Language)
• wiele współczesnych układów
– µP, µC, CPLD, ASIC, FPGA, DSP,…
– pamięci Flash 9
BST - Boundary Scan Testing - podstawowa komórka
komórki I/O z rejestrami BST
Boundary Scan Testing
TDI – Test Data Input - szeregowe wejście danych do
testowania i konfiguracji
TMS – Test Mode Select - wejście sterujące pracą automatu
TAP
TCK – Test Clock Input - wejście sygnału zegarowego
TRST – Test Reset - wejście asynchroniczne sygnału
zerującego automat TAP
TDO – Test Data Output - szeregowe wyjście danych z rejestru
BST lub pamięci konfiguracji
10
11
Przykłądowa komunikacja
http://fiona.dmcs.pl/~cmaj/JTAG/JT
AG_IEEE-Std-1149.1-2001.pdf
Komórka BST - model uproszczony
13
Komórka BST - model uproszczony
„0”
„1” …TDO
14
W ramach powtórzenia… 1 pkt
Wymień jedną wadę i jedną zaletę przedstawionych
konfiguracji interfejsów
a) b) c)
N – nadajnik, O - odbiornik15
Komórka BST - testowanie krawędziowe
1 0 1 X X X X
X
X
1
0
X X 1 Test/Normal = „1”
16
JTAG – rejestry TAP
SAMPLE/PRELOAD - odczyt wartości z BSP
BYPASS - wyłączenie BSP
EXTEST - sekwencja wymuszeń
IDCODE - odczyt sygnatury układu
USERCODE - Odczyt sygnatury projektu
Bypass Register
Boundary Scan Register
JTAG – algorytm TAP
Kontroler TAP: - synchroniczny, 16-stanowy automat,
- sterowany sygnałem TMS,
- synchronizowany sygnałem TCK
- obsługa transferu danych z wejścia
TDI do wewnętrznych rejestrów oraz
sterowanie dekoderem instrukcji
Test-Logic-Reset
- testowanie jest wyłączone, a układ
pierwotny spełnia swoje normalne
funkcje użytkowe;
Run-Test/Idle
- następuje wykonanie autotestowania
(Run-Test) albo jest stanem
spoczynkowym (Idle);
Pause
- czasowe wstrzymanie komunikacji
szeregowej, np. w celu pobrania/wpisu
danych z/do zewnętrznej pamięci
masowej.
rejestr instrukcji
rejestr danych 18
Komórka BST - testowanie krawędziowe
strona wyprowadzeń zewnętrznych
strona wyprowadzeń wewnętrznych
19
JTAG – diagnostyka - ścieżka BSC - EXTEST
SAMPLE / PRELOAD
- sekwencja testowa
EXTEST
- testowanie połączeń
zewnętrznych
INTEST
- testowanie połączeń
wewnętrznych
20
JTAG – polecenia, instrukcje
• BYPASS - włącza jednobitowy rejestr obejściowy między TDI a TDO zamiast rejestru
brzegowego, dane są przesyłane przez układ bez zakłócania pracy
• SAMPLE - próbkuje testowany układ na jego wyprowadzeniach. Stan sygnałów
wejściowych i wyjściowych układu wpisuje do rejestru brzegowego
• INTEST - test samego elementu; element został wyizolowany z otoczenia; informacje
wejściowe są zadawane z rejestru brzegowego a informacje wyjściowe są
zapisywane do komórek rejestru brzegowego
• EXTEST
- tryb testu zewnętrznego, informacje wejściowe są wpisywane do rejestru
brzegowego a z innych komórek rejestru brzegowego informacje wpisywane
są na linie wyjściowe 21
Rozkazy JTAG
• 1149.1 definiuje 9 instrukcji, 3 są obowiązkowe
• Instrukcje obowiązkowe: BYPASS, SAMPLE/PRELOAD i
EXTEST
• instrukcje nieobowiązkowe: INTEST, RUNBIST, CLAMP,
HIGHZ, IDCODE oraz USERCODE
• Kody instrukcji i ich długość definiowane przez
producenta ukladu (minimum 2 bity długości instrukcji)
• Producent układu może zdefiniować dowolną liczbę
specyficznych instrukcji oraz zdefiniować ich działanie
JTAG – polecenia, instrukcje
• RUNBIST – powodującą wykonanie auto testu elementu; element jest wyizolowany z
otoczenia
• IDCODE – przesłanie unikatowego 32-bitowego kodu elementu,
• HIGHZ – deaktywacja wszystkim pinów wyjściowych
• CLAMP – wariant BYPASS, słaby pull up
23
JTAG – sposoby łączenia
24
JTAG – sposoby łączenia
25 https://www.xilinx.com/support/documentation/application_notes/xapp058.pdf
JTAG - Join Test Action Group
26
Przydatne linki
• https://www.xilinx.com/support/docume
ntation/sw_manuals/xilinx11/pim_r_boun
daryscan_basics.htm
• https://standards.ieee.org/standard/1149
_1-2001.html
• https://www.xilinx.com/support/docume
ntation/application_notes/xapp058.pdf
Powtórka wiadomości
Kalendarz - wykład
Zajęcia od 27 lutego do 5 czerwca Kolokwium 12 czerwca
Poprawa 19 czerwca 29 27 marca – delegacja Łódź !
Klasyfikacja układów logicznych
30
Producenci ukł. programowalnych
31
Rynek układów programowalnych
32
Podział układów programowalnych
PAL, PLA
Szkic architektury układów PLD o strukturze PAL i PLA
Standardowy symbol bramki AND i jego odpowiednik w
diagramie struktury PLA, PAL zajrzyjmy do wnętrza …
33
Podział układów programowalnych
Procesory strukturalne Procesory proceduralne
ASIC/ASSP PLD
SPLD HCPLD
PROM CPLD
FPGA PLE PLA PAL
GAL
PLE – OR
PLA – AND
PAL – OR i AND
GAL – PAL + rekonfiguracja
FPGA – od środka
35
Wnętrze CPLD i FPGA
Szkic architektury układów CPLD oraz FPGA
CPLD FPGA
36
2 pkt
Jakie są 2 istotne różnice ?
37
Sieć dwupoziomowa Sieć wielopoziomowa
38
Budowa CLB
SLICEM: - ulokowane w lewej części
CLB, - przystosowane do
implementacji funkcji logicznych, rejestrów przesuwnych, pamięci RAM
SLICEL: - ulokowane w prawej części
CLB, - przystosowane do
implementacji tylko funkcji logicznych
Każda komórka CLB składa się z czterech slice-ów. 39
40
Plan Ahead – konfiguracja I/O
Możliwe opcje konfiguracji portów, linii
wejścia/wyjścia
41
Stany I/O
Możliwe opcje konfiguracji portów, linii
wejścia/wyjścia
Schemat połączeń wewnętrznych w
obrębie portów wejścia/wyjścia
Pin wejścia/wyjścia
- możliwość komunikacji ze
światem zewnętrznym
sterowalny „pull up”
sterowalny „pull down”
stan pływający
„weak keeper”
42
Rodzaje bloków funkcjonalnych
43
Istnieją dwa formalne modele FSM:
Moore’a
Mealy’ego
Automaty porównanie
44
• wyjście jest tylko funkcją stanu,
• wyjście opisywane razem ze stanem
• wyjście jest funkcją wejścia i stanu
• wyjście opisywane nad strzałką
przejścia
𝑌 = 𝑓(𝑆)
𝑌 = 𝑓(𝑆, 𝑥0…𝑥𝑛)
Dekompozycja
Znaczenie praktyczne dekompozycji wynika
z konstrukcji typowych struktur
programowalnych jakimi są układy FPGA. 45
Pamięć – podział
• Różnica w sposobie dostępu do
pamięci, zapis/odczyt
• Pamięć rozproszona „distributed”
• Dedykowane bloki „Block RAM”
46
2 pkt
Której pamięci jest więcej ?
47
liczba komórek pamięci
k=1024
organizacja
(data width)
rozmiar: 16 Kib
(2 KiB kibibyte )
Pamięć – Block RAM - organizacja - BRAM-based
Pamięć – Block RAM - organizacja - BRAM-based, konfiguracja
48
CLB a pamięć
Skąd te liczby…. ktoś się orientuje ?
LUT: 8
ROM: 8LUT * 16 bitów = 128 bitów
Single-RAM: 4LUT * 16 bitów = 64 bity
Dual-RAM: 2LUT * 16 bitów = 32 bity
49
2 pkt
Ile to pamięci ?
50
Interfejsy komunikacyjne - klasyfikacja ogólna
Moc pobierana przez układ FPGA M
oc
po
bie
ran
a p
rze
z u
kła
d [
mW
]
Czas [ms]
rozruch statyczny + dynamiczny statyczny wyłączenie
51
Propagacja sygnałów
Matrycowe rozmieszczenie
komórek logicznych CLB
wymusza zastosowanie
segmentowych połączeń
między nimi, niesie to za
sobą trudne do przewidzenia
i zależne od algorytmów
syntezy logicznej parametry
czasowe realizowanego
projektu.
Trasa propagacji sygnału: tPD = t1 + t2 + t3 + t4 + t5 + t6 + … 52
Przykład – minimalny okres sygnału
TMIN = tDQ(A) + tPD(LK) + tST(B)
TMIN = 10 ns + 5 ns + 2 ns = 17 ns
f = 1/TMIN = 1/17 ns = 58,8 MHz 53
* Source: Jan Rabaey, BWRC 54
Zapotrzebowanie na wydajność
DSP SLICE Xilinx- podsumowanie
55
DSP48
• mnożnik 18 x 18,
• magistrale kaskadowe
• 48 - bitowy sumator/akumulator
DSP48A
• mnożnik 18 x 18,
• dodawanie przed mnożeniem,
• 48 - bitowy sumator/akumulator
DSP48E
• najbardziej zaawansowana architektura,
• mnożnik 25 x 18, większa precyzja
• jednostka ALU,
• detektor wzorca,
• wsparcie dla SIMD
Podstawowa operacja - MAC - Multiply and Accumulate
• MAC - podstawowa operacja w
cyfrowym przetwarzaniu sygnałów
• składa się z operacji mnożenia i
dodawania,
• realizowana w procesorach DSP
jako jednostka obliczeniowa
Filtr FIR 256 rzędu = 256 operacji mnóż i przechowaj (MAC) na pojedynczą
próbkę danych
Sekwencyjna struktura filtru FIR
dane
wejściowe
dane
wyjściowe
Jednostka
MAC
algorytm
iteracyjny
56
Sprzętowa implementacja neuronu
57
Sposób implementacji neuronu w strukturze
programowalnej
Dziękuję za uwagę :)