Studenti: Ristić Goran br.ind 10067 Filipović Darko br.ind 9551 Boundary-Scan Test
Potreba za testiranjem Trenutna situacija Kako štampane ploče postaju sve kompleksnije, potreba za njihovim testiranjem postaje sve aktuelnija . Sa druge strane, elektronska integrisana kola i sistemi su sve složeniji, metodi za njihovo testiranje sve kompleksniji, a uređaji za njihovo automatsko testiranje sve skuplji. Pitamo se : Šta je rešenje?
Rešenje Jedno od rešenja je : Automatsko testiranje po niskoj ceni Jedna od tehnika koja ispunjava ovaj zahtev je BST Šta je BST ? Boundary-Scan test (BST) je tehnika koja nudi mogućnost efikasnog testiranja komponenti na štampanim pločama. BST omogućava: -- dovodjenje test signala na ulaze kola serijskim pomeranjem, bez ometanja normalnog rada kola -- obradu tih podataka njihovim propuštanjem kroz kolo -- serijsko pomeranje dobijenog rezultata u jedinicu u kojoj se proverava da li je dobijena vrednost tačna.
Podela metoda za testiranje Adhok - Projektovanje kola za testiranje koje je prilagođeno samo za konkretno rešenje kola koje se testira Scan metode – Bazira se na lancu pomeračkih registara. Primenljivo je na različita rešenja Build-In Self Test (BIST) – Testiranje se zasniva na korišćenju specijalnih kodova za konkurentnu detekciju i korekciju grešaka (Hamming-ovi kodovi, Bose-Lin kodovi, Berger-ovi kodovi, kodovi parnosti, itd.)
Upršćena šema Bondary-Scan arhitekture
Funkcionalnost ulazno-izlaznih portova kod BST-a Blok DUT (Device Under Test) - logika (IC ili sistem) koji se testira. UCi , i=1,..,n - ulazne ćelije ICj j=1,..,m – izlazne ćelije Blok TAP ( Test Access Point ) - upravljačka logika koja definiše režim rada: normalni ili testiranje. Paralelni ulazi - dovode informacija koja se procesira u normalnom režimu rada Paralelni izlazi - dobija se rezultat Serijski ulazi – dovodi se test sekvenca Serijski izlazi – prihvata se rezultat testiranja
Testiranje DUT-a pomoću BST-a -opšta blok šema-
Definicija signala BST-a & DUT-a Serijski ulaz – Dovode se podaci kojima proveravamo rad kola Normal/Test - Bira režim rada Izbor ulaznog signala - Postavlja se na 1 kod serijskog unosa podatka Izbor izlaznog signala – Postavlja se na 1 kod prihvatanja podataka na izlazu
Signali sa predhodne slike (nastavak) Definicija signala BST-a & DUT-a Serijski izlaz – Dobijeni rezultat se serijski prosleđuju TAP-u CLK – Taktna pobuda PX,...,PY – Paralelni ulaz (prihvataju se ulazni operandi X i Y) P1,...,PN – Paralelni izlaz (rezultat operacije Z)
Struktura BST ćelije
Funkcija ulaza i izlaza kod BS ćelije PARALELNI ULAZ - Dovodi se jednobitna informacija : a) procesira se od strane DUT-a kada je ćelija tipa UCi b) procesira se od strane DUT-a kada je ćelija tipa ICj SERIJSKI ULAZ –Dovodi se jednobitna informacija koja se koristi za potrebe testiranja DUT-a. PARALELNI IZLAZ - Ovi signali se interpretiraju na sledeća dva načina: a) za ćelije tipa UCi signali na ovim izvodima su pobudni signali DUT-a b) za ćelije tipa ICj signali na ovim izvodima su izlazni signali sistema
Funkcija ulaza i izlaza kod BS ćelije (nastavak) SERIJSKI IZLAZ - Prosleđuje jednobitnu informaciju narednoj ćeliji u lancu BST-a CLOCK - Signal taktne pobude. ULAZ NA PARELELNI IZLAZ - Upravljački signal koji vrši selekciju pobude DUT-a (za UCi ), ili izbor izlaza DUT-a (za ICj) ULAZ NA SERIJSKI IZLAZ - Upravljački signal koji vrši selekciju signala na serijskom izlazu
VHDL kôd Boundary-Scan ćelije libary IEEE; use IEEE.std_logic_1164.all; --Definisanje entiteta tj definisanje signala ako ćeliju posmatramo kao crnu kutiju-- entity jednacelija is port ( clk : in STD_LOGIC; paralelni_ulaz : in STD_LOGIC; seriski_ulaz : in STD_LOGIC; ulaz_na_paralelni_izlaz : in STD_LOGIC; ulaz_na_seriski_izlaz : in STD_LOGIC;paralelni_izlaz : out STD_LOGIC; seriski_izlaz : out STD_LOGIC ); end jednacelija; --Arhitektura ćelije definisanje signala i funkcija koju obavlja kolo-- architecture jednacelija of jednacelija is component flipflop port ( D : in STD_LOGIC; clk : in STD_LOGIC; Q : out STD_LOGIC ); end component; component mux port ( izbor : in STD_LOGIC; ulaz0 : in STD_LOGIC; ulaz1 : in STD_LOGIC; izlaz : out STD_LOGIC);
VHDL kôd Boundary-Scan ćelije (nastavak) signal pom_sulaz : STD_LOGIC; begin -- Povezivanje-- ff : flipflop port map( D => seriski_ulaz, Q => pom_sulaz, clk => clk ); mux_p_izlaz : mux port map( izbor => ulaz_na_paralelni_izlaz, izlaz => paralelni_izlaz, ulaz0 => paralelni_ulaz, ulaz1 => pom_sulaz ); mux_s_izlaz : mux port map( izbor => ulaz_na_seriski_izlaz, izlaz => seriski_izlaz, end jednacelija
Struktura multipleksera BS ćelije
VHDL kôd multipleksera BS ćelije --Povezivanje signala sa već postojećim signalima od kojih se mux sastoji-- begin i0 : I_kolo port map( izlaz => pom0, ulaz1 => ulaz0, ulaz2 => pom ); i1 : I_kolo port map( izlaz => pom1, ulaz1 => ulaz1, ulaz2 => izbor ); ili : ILI_kolo port map( izlaz => izlaz, ulaz1 => pom1, ulaz2 => pom0 ); inv : INVERTOR port map( izlaz => pom, ulaz => izbor );
Struktura flip-flopa BS ćelije
VHDL kôd flip-flopa BS ćelije --Povezivanje signala sa već postojećim signalima od kojih se D ff sastoji-- inv : INVERTOR port map( izlaz => pom1, ulaz => clk ); inv1 : INVERTOR port map( izlaz => pom2, ulaz => pom1 ); master : lec port map( D => D, Q => pomQ, clk => pom1 ); slave : lec port map( D => pomQ, Q => Q, clk => pom2 );
Testiranje DUT-a
Ulazi i izlazi BST arhitekture CLOCK (ulazni) - 1-bit NORMAL / TEST (ulazni) - 1-bit IZBOR ULAZNOG SIGNALA (ulazni) - 1-bit IZBOR IZLAZNOG SIGNALA (ulazni) - 1-bit SERIJSKI ULAZ (ulazni) - 1-bit SERIJSKI IZLAZ (izlazni) - 1-bit PARALELNI ULAZ (ulazni) – n bitova PARALELNI IZLAZ (izlazni) – m bitova
Testiranje DUT-a Na Serijski ulaz (vidi sliku) dovode se test sekvenca u obliku serijske povorke bitova. Za vreme unosa test sekvence DUT i dalje radi u normalnom režimu, tako da je unos serijskog podatka potpuno transparentan na rad kola. Boundary-Scan arhitekturi se izdaje nalog za prelazak u Test režim rada. Paralelno se prosleđuje iz UCi ćelija (vidi sliku 1) prethodno serijski uneta test sekvenca na ulaze DUT-a sa prednjom ivicom Test impulsa. Sa zadnjom impulsom Test impulsa prihvata se odziv DUT-a od strane ICj ćelija. Test režim traje jedan taktni interval. Nakon toga ponovo se prelazi u Normal režim. Signale Boundary-Scan lanca (UCi i ICj) pomeramo na Serijski izlaz radi potrebe analize. Analizu obavlja logika za analizu rezultata. Upoređivanjem odziva DUT-a sa očekivanim utvrđuje se korektnost rada DUT-a.
(ikona za pokretanje waveform-a) Interface VHDL-a (ikona za pokretanje waveform-a)
Dva tipa DUT-a koji se testiraju Množač dva neoznačena broja ( X=8, Y=6, Z=14) – Prvi broj je osmobitni,drugi je šestobitni, a rezultat ima 14 bita. ALU ( X=8, Y=8, Z=8, Cout=1 ) – Dva osmobitna broja na ulazu i osmobitni broj kao rezultat zajedno sa prenosom na izlazu
Testiranje množača Pokrenuti VHDL i učitati Boundary-Scan projekat Selektovati ime koda na levoj strani ekrana koji želimo da pokrenemo (u ovom slučaju, to je test multipliers.vhd) Pokrenuti waveform za testiranje Desnim klikom na waveform - add signals dodati signale sa tabele na sledećem slajdu Proceduru testiranja sprovesti prema tabeli
Tabela testiranja množača
Waveform testiranja množača
Objašnjenje Postavili smo stanje signala kao na slici Uneli za X 00000111 i za Y 000010 Posle prvog kloka množač je izračunao rezultat (stanje na Z). Signali su dovedeni paralelno na množač i isto tako prosleđeni na izlaz kao da nema kola za testiranje. Testiramo kolo preko serijskog ulaza Serijski smo uneli prvo šestobitni Y 000100 i osmobitni X 00000101. Proizvod ova dva broja je 10100. Na obeleženom delu na slici je predstavljen ovaj niz u konkretnom slučaju koji se nalazi na serijskom izlazu.
Testiranje ALU-a Pokrenuti VHDL i učitati Boundary-Scan projekat Selektovati ime koda na levoj strani ekrana koji želimo da pokrenemo (u ovom slučaju, to je test alu.vhd) Pokrenuli waveform za testiranje Desnim klikom na waveform - add signals dodati signale sa tabele na sledećem slajdu Proceduru testiranja sprovesti prema tabeli
Tabela testiranja ALU-a
Waveform testiranja ALU-a
Objašnjenje Postavili smo stanje signala kao na slici ALU smo postavili za rad u aritmetičkom modu i obavljanje sabiranja ulaza i šiftovanje rezultata u levo za 1 Uneli za X 000000011 i za Y 000000010. Posle prvog kloka množač je izračunao rezultat (stanje na Z) Signali su dovedeni paralelno na ALU i isto tako prosleđeni na izlaz kao da nema kola za testiranje. Testiramo kolo preko serijskog ulaza Serijski smo uneli Y 00000110 i X 00000111. Na obeleženom delu na slici je predstavljen rezultat u konkretnom slučaju koji se nalazi na serijskom izlazu.
Zaključak – prednosti BST-a Testiranje širokog spektra komponenti i ploča - univerzalnost Jednostavnost implementacije Univerzalnost + jednostavnost implementacije = niska cena Zbog prednosti koje Boundary-Scan nudi ova metoda provere ispravnosti rada kola se veoma često koristi u ugradjenim računarskim sistemima.