kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 ·...

58
Programowanie Układów Logicznych kod kursu: ETD6203 JTAG W13 –5.06.2019 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Transcript of kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 ·...

Page 1: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Programowanie Układów Logicznych

kod kursu: ETD6203

JTAG

W13 –5.06.2019

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Page 2: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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.

Page 3: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

3

Daisy chain

Interfejs JTAG umożliwia łączenie szeregowe układów posiadających taki

interfejs.

Page 4: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 5: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

JTAG - Join Test Action Group

5

Page 6: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

JTAG – potrzeba testowania

6

Page 7: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL
Page 8: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 9: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 10: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 11: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

11

Page 12: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Przykłądowa komunikacja

http://fiona.dmcs.pl/~cmaj/JTAG/JT

AG_IEEE-Std-1149.1-2001.pdf

Page 13: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Komórka BST - model uproszczony

13

Page 14: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Komórka BST - model uproszczony

„0”

„1” …TDO

14

Page 15: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

W ramach powtórzenia… 1 pkt

Wymień jedną wadę i jedną zaletę przedstawionych

konfiguracji interfejsów

a) b) c)

N – nadajnik, O - odbiornik15

Page 16: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Komórka BST - testowanie krawędziowe

1 0 1 X X X X

X

X

1

0

X X 1 Test/Normal = „1”

16

Page 17: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 18: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 19: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Komórka BST - testowanie krawędziowe

strona wyprowadzeń zewnętrznych

strona wyprowadzeń wewnętrznych

19

Page 20: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

JTAG – diagnostyka - ścieżka BSC - EXTEST

SAMPLE / PRELOAD

- sekwencja testowa

EXTEST

- testowanie połączeń

zewnętrznych

INTEST

- testowanie połączeń

wewnętrznych

20

Page 21: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 22: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 23: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 24: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

JTAG – sposoby łączenia

24

Page 25: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

JTAG – sposoby łączenia

25 https://www.xilinx.com/support/documentation/application_notes/xapp058.pdf

Page 26: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

JTAG - Join Test Action Group

26

Page 27: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 28: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Powtórka wiadomości

Page 29: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Kalendarz - wykład

Zajęcia od 27 lutego do 5 czerwca Kolokwium 12 czerwca

Poprawa 19 czerwca 29 27 marca – delegacja Łódź !

Page 30: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Klasyfikacja układów logicznych

30

Page 31: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Producenci ukł. programowalnych

31

Page 32: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Rynek układów programowalnych

32

Page 33: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 34: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 35: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

FPGA – od środka

35

Page 36: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Wnętrze CPLD i FPGA

Szkic architektury układów CPLD oraz FPGA

CPLD FPGA

36

2 pkt

Jakie są 2 istotne różnice ?

Page 37: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

37

Page 38: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Sieć dwupoziomowa Sieć wielopoziomowa

38

Page 39: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 40: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

40

Page 41: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Plan Ahead – konfiguracja I/O

Możliwe opcje konfiguracji portów, linii

wejścia/wyjścia

41

Page 42: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 43: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Rodzaje bloków funkcjonalnych

43

Page 44: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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…𝑥𝑛)

Page 45: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Dekompozycja

Znaczenie praktyczne dekompozycji wynika

z konstrukcji typowych struktur

programowalnych jakimi są układy FPGA. 45

Page 46: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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 ?

Page 47: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

47

liczba komórek pamięci

k=1024

organizacja

(data width)

rozmiar: 16 Kib

(2 KiB kibibyte )

Pamięć – Block RAM - organizacja - BRAM-based

Page 48: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Pamięć – Block RAM - organizacja - BRAM-based, konfiguracja

48

Page 49: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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 ?

Page 50: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

50

Interfejsy komunikacyjne - klasyfikacja ogólna

Page 51: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 52: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 53: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 54: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

* Source: Jan Rabaey, BWRC 54

Zapotrzebowanie na wydajność

Page 55: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 56: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

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

Page 57: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Sprzętowa implementacja neuronu

57

Sposób implementacji neuronu w strukturze

programowalnej

Page 58: kod kursu: ETD6203 JTAG W13 5.06w12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W13-PUL.pdf · 2019-06-11 · CPLD PROM FPGA PLE PLA PAL GAL PLE – OR PLA – AND PAL – OR i AND GAL – PAL

Dziękuję za uwagę :)