1
System ISP - JTAG
System ISP (In-system programming - ISP™) zapewnia szybką
rekonfigurację układu PLD (bez demontażu) za pośrednictwem
programatora oraz specjalnego kabla łączącego system z komputerem.
Ten system jest szczególnie przydatny dla układów produkowanych w
obudowach przeznaczonych do montażu powierzchniowego SMD, gdzie
nie ma możliwości wyjęcia układu z podstawki. Są to takie typy obudów
jak:
• Thin Quad Flat Pack (TQFP),
• Ball Grid Array (BGA),
2
System ISP - JTAG
W pierwszym etapie projektowania
układu PLD należy stworzyć opis układu
bądź w języku VHDL, bądź w postaci
równań Boole’a, równań stanu lub
tablicy prawdy. Specjalizowane systemy
CAD pozwalają na generację pliku
standardowego JEDEC z każdego
poziomu abstrakcji zastosowanego do
opisu układu.
Programowanie polega na konwersji
danych z pliku JEDEC z macierzowej do
szeregowej i przesłaniu ich w takiej
postaci do programowanego układu.
System wspomagający CAD wykonuje tę
operację automatycznie. Obecnie do
programowania układów CPLD stosuje
się standard IEEE 1149.1-1990
(Boundary Scan Test Access Port - TAP).
3
System ISP - JTAG
• Pierwszym krokiem jest
opracowanie układu
(architektura), do czego
służą odpowiednie
narzędzia
wspomagające
CAD.
• Drugim krokiem jest
kompilacja
opracowanego
układu.
• Trzecim generacja
standardowego pliku
JEDEC, zawierającego
mapę tzw.
bezpieczników.
• Ostatnim, czwartym
krokiem jest
programowanie układu.
4
System ISP - JTAG
JTAG
1149.1
1532 ISP
Standard ten dla niektórych układów Xilinx’a obsługuje system J Drive™,
umożliwiając programowanie układów w systemie ISP (ISC). System ten
wykorzystuje język BSDL (Boundary Scan Description Language). Producenci
układów PLD załączają pliki napisane w języku BSDL standardu IEEE1532 dla
każdego typu układu PLD.
5
System ISP - JTAG
6
System ISP - JTAG
7
System ISP - JTAG
Testowanie z ograniczonym
skanowaniem (krawędziowe) –
(Boundary Scan Testing)
W 1980r. grupa zajmująca się testowaniem
układów (Joint Test Action Group - JTAG)
opracowała sposób testowania, który później
stał się standardem - IEEE Std. 1149.1-
1990.
Sposób ten (BST) pozwala na testowanie
poszczególnych wyprowadzeń układu bez
użycia jakichkolwiek próbników czy sond,
pozwalając na sprawdzenie funkcjonalnej
poprawności działania układu w czasie jego
normalnej pracy. Specjalne komórki układu
(Boundary Scan Cells) mogą przesunąć dane do
wyprowadzenia lub przechwycić dane z
wyprowadzenia układu. Dane te są szeregowo
przesuwane wzdłuż połączonych specjalnych
komórek skanujących. W ten sposób
przechwycona dana jest w końcu szeregowo
przesuwana na zewnątrz systemu, gdzie może
być porównana w trakcie testu.
8
System ISP - JTAG
Układy ISP zapewniają redukcję czasu wprowadzenia nowego produktu
na rynek o około 33% w stosunku do innych układów CPLD i około 83%
w porównaniu z implementacją w tradycyjnych układach
matrycowych (gate array).
9
System ISP - JTAG
Układy ISP nie tylko zrewolucjonizowały sposób projektowania
systemów cyfrowych, ale także wpłynęły na proces ich wytwarzania.
Układy ISP mogą realizować wiele funkcji. Układy ISP mogą być
specjalnie rekonfigurowane dla testów, co upraszcza proces ich
wytwarzania, wpływa pozytywnie na ich jakość oraz redukuje koszty.
Niektóre układy ISP mogą być
skonfigurowane jako testery do
testowania układów znajdujących
się w innej części systemu.
Takie testy mogą być
realizowane już na etapie
produkcji systemu w części cyklu
produkcyjnego, redukując
całkowite koszty wytwarzania.
Po przejściu cyklu testów z
wynikiem pozytywnym układy
ISP mogą być reprogramowane
do swojej normalnej konfiguracji.
10
System ISP -
JTAG
Wielofukcyjność systemów
wykorzystujących układy ISP
(Multi-Function Hardware)
Układy ISP, zapewniając możliwość
reprogramowania układu umieszczonego w
systemie, pozwalają na realizację fizyczną
cyfrowych systemów wielofunkcyjnych.
Wytwarzanie układów wielofunkcyjnych,
pozwala wytwórcy zredukować liczbę różnych
wersji systemu, upraszczając tym samym
proces wytwarzania. Poprzez wielofunkcyjność
systemu zmniejsza się nie tylko liczbę różnych
wersji, ale także liczbę różnych elementów
stosowanych w procesie produkcji, co obniża
całkowite koszty wytwarzania. Przykład
systemu zawierającego dwa procesory,
współdziałającego z interfejsami różnych typów
najlepiej ilustruje ten problem.
Rozwiązanie tradycyjne wymaga
dedykowanych układów logicznych dla każdego
interfejsu oddzielnie, co zwykle prowadzi do
realizacji wielu wersji układowych. Stosowanie
układów ISP umożliwia projektantowi
zaprojektowanie jednego specjalnego
interfejsu, który może być rekonfigurowany
bezpośrednio w systemie tworząc potrzebny w
danej chwili standard interfejsu, oszczędzając
liczbę wykorzystywanych elementów i
redukując koszty.
11
System ISP - JTAG
Programowanie układów firmy
Xilinx
12
System ISP - JTAG
Konfigurowanie układów firmy
Xilinx
13
System ISP - JTAG
Interfejs JTAG – iMPACT
Dla układów ISP XILINX.
Wysyła pliki JTAG
w różnych formatach –
także w formacie SVF
(Serial Vector Format)
14
System ISP -
JTAG
Architektura
JTAG
Sterownik TAP
Reaguje na sekwencje
przekazywane przez port kontrolny
(Test Access Port) generując także
sygnał zegarowy i sygnały
kontrolne potrzebne dla innych
bloków.
Rejestr Instrukcji
Jest to rejestr przesuwny
odpowiedzialny za wybór
wykonywanej kolejno operacji.
Rejestr Danych
Rejestr ten stanowi grupę
rejestrów przesuwnych,
wybieranych przez rejestr
instrukcji.
15
System ISP - JTAG
Podstawowa
komórka rejestru
skanującego BSC
dla układów:
Stratix, Stratix GX,
Cyclone & APEX II
firmy Altera.
16
System ISP - JTAG
Podstawowa
komórka rejestru
skanującego BSC
dla układów FPGA
firmy Xilinx.
17
System ISP - JTAG
• Instrukcje i dane są przesyłane do wejścia TDI, i na zewnątrz przez TDO
• Stany sterownika TAP są zdeterminowane przez sekwencję na linii TMS
• Sygnał TCK taktuje FSM i inne elementy systemu testującego
• Sygnał TRST stanowi asynchroniczne zerowanie - reset
Standard IEEE 1149.1
18
System ISP - JTAG
•
TDI – (Test Data Input) – wejście szeregowe
(dane są przesuwane narastającym
zboczem
TCK),
• TDO – (Test Data Output) – wyjście
szeregowe
(dane są przesuwane opadającym zboczem
sygnału TCK),
• TMS – (Test Mode Select) – wejście
sterujące
(musi być ustawione przed narastającym
zboczem sygnału TCK),
• TCK – (Test Clock Input) – wejście zegarowe
układu testującego,
TRST – (Test Reset Input) – wejście
zerowania
układu testującego (stan aktywny niski) –
sygnał
ten nie musi być wykorzystywany.
Sterownik TAP
Zwykle stosuje się
rezystory podciągające dla
linii TMS i TDI oraz
ściągający dla linii TCK.
19
System ISP - JTAG
20
System ISP - JTAG
Rejestr identyfikacyjny jest
dodatkowym rejestrem
zawierającym 32 bitowy
identyfikator o nastepującej
strukturze:
• Bit 0 (LSB) ma zawsze wartość
1
• Bity 1 do 11 określają
producenta • Bity 12 to 27
zawierają 16 bitowy numer
układu
• Bity 28 do 31 pozwalają na
identyfikację typu układu.
21
System ISP - JTAG
Format 32-bitowego identyfikatora
- ID
Fairchild
Układy
nieprogramowal
ne
Altera
Układy
programowaln
e
22
System ISP - JTAG
Sterownik TAP stanowi 16
stanową maszynę stanów
FSM.
Kabel programatora (ispDOWNLOAD
cable) powinien być jak najkrótszy i
nie powinien być dłuższy niż 2m.
Zaleca się stosowanie buforów: 74LS244 i
74LS367. Bufor nie może być zbyt szybki z
uwagi na możliwość pojawienia się odbić
sygnału. Tradycyjnie układy PLD są
programowane za pomocą specjalnych
programatorów, które same generują
wszystkie niezbędne sygnały a także,
wytwarzają wymagane wysokie napięcie
(typowo 12-14 V). Układy ISP posiadają
zdolność wytwarzania tego napięcia z
napięcia 3.3 V lub 5 V. Ta zdolność pozwala
na programowanie układów ISP przez
prosty interfejs.
23
System ISP - JTAG
Sterownik TAP
24
System ISP - JTAG
25
System ISP - JTAG
Parametry portu TAP dla układów Virtex - Xilinx
26
System ISP - JTAG
Zastosowanie
interfejsu JTAG
dla układów
programowalny
ch
27
System ISP - JTAG
Interfejs JTAG dla
układów
programowalnych
firmy Xilinx
28
System ISP - JTAG
Sterownik TAP
29
System ISP - JTAG
Sygnały sterownika
TAP
30
System ISP - JTAG
Wówczas, kiedy sterownik TAP jest w
trybie TEST_LOGIC/RESET, pozostała
część układu wykonuje normalne
operacje a system skanowania
krawędziowego pozostaje wyłączony.
Po włączeniu zasilania sterownik TAP
ustawia się w tryb
TEST_LOGIC/RESET. Tryb ten może
być również wymuszony utrzymując
stan wysoki na linii TMS przez pięć
kolejnych cykli zegara TCK lub
asynchronicznie - poprzez sygnał
TRST jeżeli taki jest doprowadzony.
Przechodząc do procedury IEEE Std.
1149.1 należy wprowadzić kod
operacji do rejestru instrukcji
(SHIFT_IR). Linia TMS jest wówczas
taktowana przy stanach 01100.
Rejestr danych Rejestr
instrukcji
31
System ISP - JTAG
Format SVF jest wykorzystywany do realizacji operacji szeregowej
transmisji bitów konfiguracyjnych poprzez interfejs JTAG. Operacji tej dla
układów firmy Xilinx dokonuje program iMPACT lub specjalny
programator JTAG. Pliki w formacie SVF są plikami tekstowymi ASCII, co
ułatwia ich modyfikację i odczyt. Mogą być one pisane za pomocą
dowolnego edytora tekstowego.
Format XSVF jest formatem specjalnym wprowadzonym przez firmę
Xilinx dla plików SVF o bardziej zwartej binarnej postaci. Pliki XSVF maja
postać optymalna z punktu widzenia operacji wykonywanych przez
sprzęg JTAG.
Pliki XSVF są generowane przy pomocy translatora plików SVF2XSVF,
który wykorzystuje pliki SVF napisane przy pomocy edytora iMPACT lub
programatora JTAG jako pliki wejściowe.
Fragment pliku
XSVF
32
System ISP - JTAG
Podstawowe instrukcje dla formatu SVF
Przesuwanie informacji do rejestru Instrukcji i rejestru danych odbywa się przy
użyciu dwóch instrukcji:
1. Skanowanie rejestru instrukcji (Scan Instruction Register - SIR)
SIR długość TDI (wejście) TDO (wyjście) SMASK (maska skanująca);
gdzie:
długość – oznacza liczbę bitów wprowadzanych do rejestru w stanie Shift-IR.
TDI – oznacza wprowadzany w stanie Shift-IR ciąg bitów.
SMASK – oznacza nieistotne bity “don’t care” w ciagu bitowym.
2. Skanowanie rejestru danych (Scan Data Register - SDR)
SDR długość TDI (wejście) SMASK (maska skanująca) [TDO (wyjście)
MASK (maska)];
gdzie:
długość – oznacza liczbę bitów wprowadzanych do rejestru w stanie Shift-DR.
TDI – oznacza wprowadzany w stanie Shift-DR ciąg bitów.
SMASK – oznacza nieistotne bity “don’t care” w ciagu bitowym (1 = istotny, 0
= nieistotny).
TDO – oznacza wyprowadzany przez TDO ciąg bitów w stanie Shift-DR.
MASK – oznacza nieistotne bity “don’t care” w ciagu bitowym na wyjściu TDO
(1 = istotny, 0 = nieistotny).
3. Instrukcja RUNTEST – określa jak długo sterownik TAP musi pozostać w
stanie Run-Test-Idle, dla wykonania algorytmu programowania określonych
układów programowalnych.
RUNTEST run_count TCK
; gdzie: run_count TCK – oznacza liczbę cykli
zegara.
33
System ISP - JTAG
1. SIR 8 TDI (fe) ;
Przesuwa ciąg bitów “11111110” do rejestru instrukcji.
2. SDR 32 TDI (00000000)
Przesuwa 32 zera poprzez rejestr danych, wyprowadzając 32-bitowy kod identyfikacyjny
- IDCODE.
Dla układu XC9572XL na wyjściu TDO powinien pojawić się kod identyfikacyjny o
postaci - 0xf9604093.
Uwaga! - Instrukcje SVF SIR i SDR nie pokazują w jaki sposób zmusić sterownik TAP do
przejścia w stan Shift-IR lub Shift-DR. Ta informacja jest zawarta w standardzie SVF, i
musi być rozumiana przez program odczytujący plik SVF.
34
System ISP - JTAG
Kiedy łańcuch JTAG liczy kilka układów, wówczas operacje są zwykle wykonywane
na poszczególnych układach w oddzielnych przedziałach czasowych. Jednakże,
ponieważ sygnały TMS i TCK są doprowadzone do wszystkich układów równolegle
nie można zmieniać stanów sterowników TAP poszczególnych układów niezależnie.
Jeżeli jakaś instrukcja jest wprowadzana (przesuwana) do jednego układu z
łańcucha inne instrukcje muszą być wprowadzone do pozostałych układów
(ponieważ każdy sterownik TAP będzie jednocześnie w stanie Shift-IR).
35
System ISP - JTAG
W celu wyprowadzenia 32-bitowego identyfikatora z jednego z rejestrów
instrukcji oraz przejścia dwóch jednobitowych rejestrów obejściowych należy
34 razy powtórzyć operację przesuwania. Na wyjściu pojawi się 40 bitów,
ponieważ 6 dodatkowych bitów potrzebnych jest do ustawienia sterownika TAP
w określonym stanie.
36
System ISP - JTAG
Podczas przesyłania instrukcji do określonego układu wysyłana jest do
pozostałych układów instrukcja obejścia (Bypass). Norma IEEE 1149.1
wymaga aby wypełnienie wszystkich bitów rejestru instrukcji jedynkami
było traktowane jako instrukcja obejścia. Instrukcja ta ma zatem różną
długość zależną od długości rejestru instrukcji dla różnych układów.
37
System ISP - JTAG
Wybrany został układ XC9572XL, a w pozostałych układach
pomiędzy wejście TDI i wyjście TDO wstawiony został
jednobitowy rejestr obejściowy.
38
System ISP - JTAG
1) Instrukcja przesuń 0x1fffdf (1_1111_1111_1111_1101_1111) do
połączonych włąńcuch rejestrów instrukcji oznacza:
XC18V02 IR <= “11111111” (Bypass)
XC9572XL IR <= “11111110” (IDCODE)
V150 IR <= “11111” (Bypass)
Długość rejestru IR układu V150 wynosi 5 bitów, a rejestru IR układów
XC18V02 i
XC9572XL po 8 bitów. Wartość maski SMASK wskazuje, że wszystkie 21
bitów doprowadzonych do TDI ma istotne znaczenie.
39
System ISP - JTAG
2) Ustawia sterownik TAP na odczyt rejestru danych i poprzez 34
takty zegara wyprowadza zawartość dwóch rejestrów obejściowych
i 32-bitowego rejestru identyfikacyjnego ID. Wyjściowy ciąg bitowy
składa się z 34 bitów pobranych z rejestrów danych i 6-ciu
dodatkowych bitów potrzebnych dla ustawienia sterownika TAP, co
daje razem 40 bitów wyprowadzonych poprzez TDO.
40
System ISP - JTAG
Interfejs JTAG – VM
Dla układów ISP
Lattice.
41
System ISP - JTAG
Lattice
Sygnały JTAG/ISP
TDO/SDO – Szeregowe wyjście
danych,
TDI/SDI - Szeregowe wejście danych,
TCK/SCLK – Wejście zegara,
TMS/MODE – Wejście sterujące
(tryb),
TRST/RESET – Wejście zerujące
asynchroniczne,
ispEN/BSCAN – Wejście kontrolne
42
System ISP - JTAG
43
System ISP - JTAG
Podstawowe instrukcje JTAG:
SAMPLE/PRELOAD – Umożliwia przechwytywanie stanów na
wyprowadzeniach układu i testowanie podczas normalnej pracy układu.
EXTEST – Umożliwia testowanie poprzez wymuszanie stanów testowych na
wyjściach układu i przechwytywanie wyników testu na wejściach.
BYPASS – Umieszcza jednobitowy rejestr obejściowy pomiędzy
wyprowadzeniami TDI i TDO, co umożliwia synchroniczny przepływ danych
poprzez wybrany układ do układu sąsiedniego podczas normalnej pracy
układu.
IDCODE – Wybiera rejestr IDCODE i umieszcza go miedzy wyprowadzeniami
TDI i TDO, umożliwiając szeregowy odczyt rejestru IDCODE poprzez TDO.
USERCODE – Wybiera rejestr USERCODE i umieszcza go miedzy
wyprowadzeniami TDI i TDO, co umożliwia szeregowy odczyt rejestru
USERCODE poprzez TDO.
CLAMP - Umieszcza 1-bitowy rejestr obejściowy między wyprowadzeniami
TDI i TDO, co umożliwia synchroniczny przepływ danych przez układ do
układu sąsiedniego podczas normalnej pracy w czasie kiedy stany na
wejściach i wyjściach układu są określone poprzez rejestr skanujący.
HIGHZ - Umieszcza 1-bitowy rejestr obejściowy między wyprowadzeniami
TDI i TDO, co umożliwia synchroniczny przepływ danych przez układ do
układu sąsiedniego podczas normalnej pracy w czasie kiedy wszystkie
wyprowadzenia układu przyjmują trzeci stan.
44
System ISP - JTAG
Wprowadzenie danych do rejestru
instrukcji
Po pierwszym
opadającym zboczu
zegara koniec
trzeciego stanu na
TDO.
Po poprawnym wprowadzeniu kodu do
rejestru instrukcji i ustawieniu linii TMS w
stan wysoki sterownik przechodzi w stan
EXIT1_IR a linia TDO zostaje ustawiona w
stan trzeci.
45
System ISP - JTAG
Instrukcja – Sample
/ Preload
46
System ISP - JTAG
W trybie SAMPLE/PRELOAD kod instrukcji jest wprowadzany poprzez wyprowadzenie
TDI. Sterownik TAP przechodzi do stanu CAPTURE_DR a potem do stanu SHIFT_DR, w
którym pozostaje w czasie kiedy linia TMS jest w stanie niskim. Dane przesuwane na
zewnątrz poprzez wyprowadzenie TDO składają się z danych, które były w rejestrach
przechwytujących po fazie przechwytywania. Rysunek pokazuje, że kod instrukcji z
wejścia TDI nie pojawia się na wyjściu TDO dopóki dane z rejestru przechwytującego
nie zostaną wyprowadzone na zewnątrz. Kiedy linia TMS jest w stanie wysokim w
czasie kolejnych dwóch cykli zegara TCK, sterownik TAP przechodzi w fazę
uaktualniania , czyli do stanu UPDATE_DR.
47
System ISP - JTAG
W fazie
przechwytywania -
Capture Phase:
• Dane z wejść OEJ i OUTJ
są wpisywane do rejestru
przechwytującego.
• Sygnał zegara dla
rejestru - CLOCK jest
pobierany z wyjścia
CLOCKDR sterownika TAP.
• Dane pozostające w tym
rejestrze są pozyskiwane
podczas normalnej pracy
układu.
48
System ISP - JTAG
W fazie przesuwania i
uaktualniania - Shift &
Update:
• Wcześniej przechwycone
sygnały z wejść OEJ i OUTJ są
przesuwane na zewnątrz
przez TDO w takt zegara
CLOCK.
• Kiedy dane są przesuwane
na zewnątrz, następne dane
testowe są wprowadzane
poprzez TDI.
• W tej fazie dane są
transferowane z rejestru
przechwytującego do
uaktualnionego z
wykorzystaniem linii zegara
UPDATE.
• Dane z rejestru UPDATE
mogą być wykorzystane w
czasie wykonywania instrukcji
EXTEST.
49
System ISP - JTAG
Instrukcja - Extest
50
System ISP - JTAG
W trybie EXTEST dane są pobierane inaczej niż w trybie SAMPLE/PRELOAD. Dane z
rejestru uaktualnionego są wybierane jako źródło dla wyjścia INJ i sygnału
udostępnienia wyjścia. Kiedy układ realizuje instrukcję EXTEST multipleksery
wybierają dane z rejestru uaktualnionego, zawierającego dane wpisane podczas
realizacji poprzednich cykli EXTEST lub SAMPLE/PRELOAD. W fazie przechwytywania
dane wpisywane są do rejestru przechwytującego po czym są przesuwane poprzez
TDO w fazie przesuwania. Nowe dane testowe są wpisywane do rejestru
uaktualnianego w fazie uaktualniania.
51
System ISP - JTAG
W fazie
przechwytywania -
Capture Phase:
•Dane z wejść OEJ i OUTJ
są wpisywane do rejestru
przechwytującego.
• Sygnał zegara dla
rejestru - CLOCK jest
pobierany z wyjścia
CLOCKDR sterownika TAP.
• Wcześniej zapisane dane
w rejestrze uaktualnionym
sterują komórkami IO, INJ i
przy stanie “1” na wejściu
OEJ rejestr „update”
ustawi bufor w stan trzeci.
52
System ISP - JTAG
W fazie przesuwania i
uaktualniania - Shift &
Update:
• Wcześniej przechwycone
sygnały z wejść OEJ i OUTJ są
przesuwane na zewnątrz
przez TDO w takt zegara
CLOCK.
• Kiedy dane są przesuwane
na zewnątrz, następne dane
testowe są wprowadzane
poprzez TDI.
• W tej fazie dane są
transferowane z rejestru
przechwytującego do
uaktualnionego z
wykorzystaniem linii zegara
UPDATE.
• Rejestr uaktualniony steruje
komórkami IO, INJ i pozwala
na wymuszenie trzeciego
stanu na wyprowadzeniu I/O.
53
System ISP - JTAG
Instrukcja - Intest
54
System ISP - JTAG
Instrukcja - Bypass
55
System ISP - JTAG
W trybie BYPASS dane wejściowe z wejścia TDI są przesuwane dodatnim zboczem
zegara TCK poprzez rejestr obejściowy, po czym są przesuwane do wyjścia TDO
opadającym zboczem tego samego impulsu zegarowego.
56
System ISP - JTAG
Instrukcja - Clamp
57
System ISP - JTAG
Instrukcja - Higz
58
System ISP - JTAG
Instrukcja - Runbist
59
System ISP - JTAG
Instrukcja - Idcode
60
System ISP - JTAG
Instrukcja -
Usercode
61
System ISP - JTAG
Program iMPACT
firmy Xilinx
wykorzystuje
format SVF (Serial
Vector Format).
62
System ISP - JTAG
AG – Generator
adresu
PSC – Programowalny
sterownik
PDS –
Programowalny
multiplekser
DATA – Rejestr danych
PFSM –
Programowalna
FSM
Szybki sterownik FAC
(Fast Access Controller)
dla systemu IEEE 1149.1
(Zegar – 3MHz)
63
System ISP - JTAG
Kody instrukcji dla języka
BSDL (Boundary Scan
Description Language).
64
System ISP - JTAG
Instrukcje BS realizowane przez układy
firmy Lattice Semiconductor.
65
System ISP - JTAG
66
System ISP - JTAG
Kody identyfikacyjne ID, dla układów
Virtex firmy Xilinx
67
System ISP - JTAG
System ACE (Advanced
Configuration Environment) firmy
Xilinx wykorzystujący interfejs
JTAG.
68
System ISP - JTAG
Interfejs
równoległy ISP-
JTAG
69
System ISP - JTAG
70
System ISP - JTAG
Byte
Blaster
II Altera
71
System ISP - JTAG
Byte
Blaster
II Altera
72
System ISP - JTAG
Sterownik
JTAG portu
równoległego
Corelis
73
System ISP - JTAG
Lattice
Sygnały wykorzystywane w łańcuchu skanującym (TCK, TMS, TDI, oraz TDO)
są przesyłane z taką prędkością jak dane w układzie realizowanym.
Jakkolwiek muszą być spełnione warunki terminowania i buforowania
przedstawione wcześniej. Niektóre układy mają specjalne wyprowadzenia
które ułatwiają programowanie.
Do programowania układów wykorzystuje się komputer klasy PC, specjalny
kabel oraz program CAD (np. ispVM). W systemie łańcucha skanującego
wykorzystywany jest czteroprzewodowy interfejs TAP. Linie TCK i TMS są
wspólne dla wszystkich programowanych układów w łańcuchu. Sygnały TDI
i TDO są przekazywane łańcuchowo z jednego układu do następnego.
Wejście łańcucha stanowi wyprowadzenie TDI a wyjście wyprowadzenie
TDO.
74
System ISP - JTAG
Programowanie układów CPLD jest podobne do programowania
układów pamięci typu EPROM lub FLASH. Układ jest traktowany jako
matryca, która ma być zaprogramowana wiersz po wierszu.
Lattice
75
System ISP - JTAG
Xilin
x
76
System ISP - JTAG
Xilin
x
77
System ISP - JTAG
Alter
a
78
System ISP - JTAG
Alter
a
79
System ISP - JTAG
Programowanie „jednoprzewodowe” (one-wire ISP)
Stowarzyszenie Infrared Data Association (IrDA), opracowało standard ISP-IrDA dostosowując
system ISP do standardów komunikacyjnych IrDA, dotyczących przesyłania sygnałów w
zakresie podczerwieni. Standard ten umożliwia zastąpienie tradycyjnych cztero lub
pięcioprzewodowych interfejsów, interfejsem jednoprzewodowym dostosowanym do
standardu IrDA.
W wielu przypadkach, a w szczególności dotyczy to układów ISP wykorzystywanych w
telekomunikacji, stosowanie interfejsów cztero lub pięcioprzewodowych nie jest praktyczne.
Firmy telekomunikacyjne chcą mieć możliwość reprogramowania układów poprzez
standardowe łącza telefoniczne.
80
System ISP - JTAG
W przypadku połączenia sygnałów ISP w jeden bajt, nie ma między nimi
żadnego konfliktu. Każdy bit ISP, zajmuje określoną pozycję w przesyłanym
szeregowo bajcie ISP. Metoda ta wprawdzie uniemożliwia szybką transmisję
danych, ponieważ wymaga przesłania całego bajtu w celu zmiany jednego
sygnału ISP, ale umożliwia łatwe dekodowanie sygnałów ISP. Po przypisaniu
wszystkich sygnałów ISP konieczna jest konwersja danych z postaci
równoległej do szeregowej i na odwrót. Odpowiedni układ sterujący
(controller) musi znaleźć się także po stronie układu programowalnego ISP
aby zapewnić kontrolę nad układem interfejsu oraz możliwość ponownej
konwersji danych do postaci równoległej. Podczas programowania układów
ISP sposób komunikacji między komputerem a układem zmienia się, z
komunikacji równoległej dwukierunkowej, stosowanej w metodzie
tradycyjnej na szeregową w trybie pół duplexu, co zabezpiecza
transmisję przed ewentualnym konfliktem.
81
System ISP - JTAG
Należy podkreślić, że w przypadku programowania układów ISP
większość sygnałów jest skierowana do układu
programowanego. Sygnał wyjściowy SDO jest
wykorzystywany do odczytu numeru identyfikacyjnego ID
układu, w celu weryfikacji przesłanych do układu danych oraz
do połączenia układów w łąńcuch (daisy chain). Sterowanie
transmisją w trybie pół duplexu jest dość skomplikowane. Dla
uproszczenia sterowania transmisją wykorzystuje się wolny Bit
7 w celu żądania dostępu do linii SDO.
82
System ISP - JTAG
Kiedy Bit 7 jest w stanie ‘1’, wówczas jeden bit z wyjścia SDO
jest odczytywany i wysyłany przez interfejs. Dla przykładu, gdy
komputer odczytuje bajty identyfikacyjne układu ID, zaczynając
od pierwszego bitu ID, wysyła sygnał żądania dostępu do linii
SDO. Następnie komputer czeka na bit wysłany z linii SDO
poprzez interfejs. Następny łańcuch szeregowo przesyłanych
bajtów przesuwa następny bit identyfikatora ID na linię SDO.
Komputer znowu żąda dostępu do linii SDO i czeka na
odpowiedź. Ten proces jest kontynuowany aż do całkowitego
odczytania identyfikatora.
83
System ISP - JTAG
Schemat systemu ISP-
IrDA
Dla umożliwienia dokonania operacji programowania układów
ISP za pośrednictwem specjalnych układów sterujących
wykorzystuje się program (ispCODE™) napisany w języku C dla
systemu operacyjnego DOS. Program ten służy do
programowania układów ISP poprzez port równoległy
komputera. Stosowanie tego programu wymaga specyfikacji
pliku (w linii poleceń) zawierającego mapę bitową w formacie
ispSTREAM™ dla każdego programowanego układu.
84
System ISP - JTAG
Schemat systemu ISP-
IrDA
Format pliku ispSTREAM jest specjalnym formatem firmy Lattice
zawierającym mapę bitową w formacie JEDEC (po kompresji) oraz
specjalne instrukcje wykorzystywane przez program w celu
zaprogramowania układów połączonych w łańcuch. Użytkownik musi
napisać także krótki plik tekstowy zwany DLD, wskazujący na numer
układu (typ), jego miejsce w łańcuchu, typ operacji do wykonania.
Większość nowych lap-top’ów posiada wbudowany interfejs IrDA
jako drugi port szeregowy. To upraszcza cały proces, ponieważ
interfejs IrDA jest automatycznie inicjalizowany po wyborze
odpowiedniego adresu portu. Stosując wersję programu ispCODE
3.05 lub późniejszą konieczne są tylko drobne modyfikacje.
85
System ISP - JTAG
Programowanie przez
internet
86
System ISP - JTAG
USB
Blast
er
Alter
a
MAX 7000
CPLD
87
System ISP - JTAG
Sterowni
k USB
firmy
Corelis
88
System ISP - JTAG
Wyniki testowania
połączenia między układami
U1 i U2
89
System ISP - JTAG
Architektura systemu do testowania układów CASCON-
GALAXY® firmy Goepel
90
System ISP - JTAG
Sterownik
skanera
krawędziowego
z magistralą
PCI
PSC 1149.1-B
91
System ISP - JTAG
System skanera
krawędziowego
firmy Intelltech
92
System ISP - JTAG
System BIST
firmy Intelltech
przeznaczony
dla układów
firm: Altera i
Xilinx
93
System ISP - JTAG
Sterownik JTAG - SCANSTA 101 firmy National Instruments
94
System ISP - JTAG
JTAG multiplekser SCANSTA 112 firmy National
Instruments
95
System ISP - JTAG
Schemat ideowy
multipleksera JTAG
SCANSTA 112 firmy National
Instruments
96
System ISP - JTAG
Sterowni
k PCI
firmy
Corelis
97
System ISP - JTAG
ScanPlus
Flash™
System ISP-
JTAG firmy
Corelis
98
System ISP - JTAG
Architektura SPACE firmy Goepel
Electronic
99
System ISP - JTAG
Kontrolery firmy Goepel Electronic