Metody samotestowania specjalizowanych urządzeń sterowania ruchem drogowym

Podobne dokumenty
WBUDOWANE SAMOTESTOWANIE RUCHEM DROGOWYM

Język opisu sprzętu VHDL

Zwiększanie wiarygodności systemów wykorzystujących układy programowalne

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH

Automatyczne testowanie w układach FPGA

Bezpieczeństwo informacji oparte o kryptografię kwantową

Katedra Mikroelektroniki i Technik Informatycznych

Bezpieczeństwo informacji oparte o kryptografię kwantową

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

Szybkie prototypowanie w projektowaniu mechatronicznym

PROJEKTOWANIE UKŁADÓW MIKROPROGRAMOWANYCH Z WYKORZYSTANIEM WBUDOWANYCH BLOKÓW PAMIĘCI W MATRYCACH PROGRAMOWALNYCH

Elementy cyfrowe i układy logiczne

PROGRAMOWALNE STEROWNIKI LOGICZNE

Opracował: Jan Front

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

5.3. Analiza maskowania przez kompaktory IED-MISR oraz IET-MISR wybranych uszkodzeń sieci połączeń Podsumowanie rozdziału

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Systemy na Chipie. Robert Czerwiński

Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu

Elektronika i techniki mikroprocesorowe

Sterowniki Programowalne (SP)

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Elementy cyfrowe i układy logiczne

Cyfrowe układy scalone

Cyfrowe układy scalone

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Szkolenia specjalistyczne

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Układy kombinacyjne Y X 4 X 5. Rys. 1 Kombinacyjna funkcja logiczna.

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

DiaSter - system zaawansowanej diagnostyki aparatury technologicznej, urządzeń pomiarowych i wykonawczych. Politechnika Warszawska

Układy programowalne. Wykład z ptc część 5

REALIZACJA SPECJALIZOWANYCH STEROWNIKÓW RUCHU DROGOWEGO

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

Sterowniki PLC. Elektrotechnika II stopień Ogólno akademicki. przedmiot kierunkowy. Obieralny. Polski. semestr 1

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Technika Cyfrowa 2 wykład 1: programowalne struktury logiczne - wprowadzenie

Laboratorium przedmiotu Technika Cyfrowa

METODY SYNTEZY I REALIZACJI SPECJALIZOWANYCH STEROWNIKÓW RUCHU DROGOWEGO W STRUKTURACH REPROGRAMOWALNYCH

PROTOTYPOWANIE UKŁADÓW ELEKTRONICZNYCH Programowalne układy logiczne FPGA Maciej Rosół, Katedra Automatyki AGH,

E-E-A-1008-s6. Sterowniki PLC. Elektrotechnika I stopień Ogólno akademicki. kierunkowy (podstawowy / kierunkowy / inny HES)

Układy logiczne układy cyfrowe

Metody optymalizacji soft-procesorów NIOS

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

ID1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki stacjonarne

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Projektowanie układów FPGA. Żródło*6+.

Systemy wbudowane. Układy programowalne

WPROWADZENIE Mikrosterownik mikrokontrolery

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

E-4EZA1-10-s7. Sterowniki PLC

Projektowanie. Projektowanie mikroprocesorów

Systemy wbudowane. Paweł Pełczyński

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Sterowniki programowalne Programmable Controllers. Energetyka I stopień Ogólnoakademicki. przedmiot kierunkowy

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Kurs Projektowanie i programowanie z Distributed Safety. Spis treści. Dzień 1. I Bezpieczeństwo funkcjonalne - wprowadzenie (wersja 1212)

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

PRZEWODNIK PO PRZEDMIOCIE

PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Weryfikacja logiczna projektów VHDL realizowanych w reprogramowalnych układach FPGA pracujących w trybie prądowym

Cyfrowe układy scalone c.d. funkcje

Politechnika Gdańska. Gdańsk, 2016

Cyfrowe układy scalone

Elektrotechnika I stopień Ogólno akademicki. kierunkowy (podstawowy / kierunkowy / inny HES)

Ćw. 7: Układy sekwencyjne

Testowanie i walidacja oprogramowania

Układy reprogramowalne i SoC Implementacja w układach FPGA

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

PROJEKTOWANIE UKŁADÓW VLSI

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Sławomir Kulesza. Projektowanie automatów synchronicznych

Metodyka projektowania komputerowych systemów sterowania

Implementacja algorytmu szyfrującego

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Tranzystor JFET i MOSFET zas. działania

Ćwiczenie ZINTEGROWANE SYSTEMY CYFROWE. Pakiet edukacyjny DefSim Personal. Analiza prądowa IDDQ

Podstawy Automatyki. Wykład 8 - Wprowadzenie do automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

IZ1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki niestacjonarne

Projektowanie z użyciem softprocesora picoblaze w układach programowalnych firmy Xilinx

Systemy zabezpieczeń

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

mgr inż. Tadeusz Andrzejewski JTAG Joint Test Action Group

Układy programowalne. Wykład z ptc część 5

Krótkie przypomnienie

Układy sekwencyjne. 1. Czas trwania: 6h

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Systemy Wbudowane. Założenia i cele przedmiotu: Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi: Opis form zajęć

Automatyzacja procesu implementacji układów cyfrowych w technologii prądowych układów FPGA

Transkrypt:

Krzysztof Firląg 1 Wydział Transportu Politechniki Warszawskiej Metody samotestowania specjalizowanych urządzeń sterowania ruchem drogowym 1. WPROWADZENIE W ciągu ostatnich lat niezwykle dynamicznie rozwijane są systemy sterowania ruchem drogowym. W miejskich systemach sterowania ruchem drogowym niezwykle istotnym elementem systemu sterowania są urządzenia sterujące ruchem na poziomie lokalnym, na poszczególnych skrzyżowaniach. Sterowniki lokalne ruchu drogowego mogą zarówno samodzielnie sterować ruchem w obrębie skrzyżowania na podstawie informacji z sieci detektorów ruchu, jak również współpracować z innymi urządzeniami (sterownikami, centrami sterowania) i realizować sterowania wg odgórnie narzuconych założeń. Wymagania stawiane sterownikom ruchu drogowego powodują, że na przestrzeni lat, wraz z rozwojem techniki, urządzenia te ewoluowały od urządzeń mechanicznych poprzez urządzenia elektroniczne oparte na układach małej i średniej skali integracji, do rozwiązań opartych na platformach mikroprocesorowych, charakteryzujących się posiadaniem oprogramowania użytkowego i sekwencyjnością realizacji algorytmów sterowania i przetwarzania danych [4]. Problemy współczesnych rozwiązań pokonywane są poprzez stosowanie rozwiązań wieloprocesorowych, albo sprzętową realizację wyodrębnionych algorytmów. Proponowanym rozwiązaniem, zwiększającym prędkość przetwarzania jest powrót do sprzętowych realizacji urządzeń sterowania ruchem, z wykorzystaniem układów cyfrowych, dedykowanych do ściśle określonego zastosowania, gdzie cały, nieraz bardzo złożony system cyfrowy może mieścić się w jednym układzie scalonym. Wykorzystanie układów PLD (Programmable Logic Device) oprócz realizacji złożonych układów logicznych w jednym układzie umożliwia również przeprowadzenie całego procesu projektowego, wraz z prototypowaniem, bezpośrednio u projektanta urządzenia [5]. Współczesne układy reprogramowalne FPGA (Field Programmable Gate Array), będące jednym z rodzajów układów PLD, posiadają w swojej strukturze miliony bramek logicznych i tysiące wyprowadzeń umożliwiają realizację rozbudowanych systemów sterowania wewnątrz jednego scalonego w technice SoC (System on Chip). Metodę realizacji specjalizowanych sterowników ruchu drogowego w układach FPGA i wynikające z niej korzyści omówiono w poprzednich pracach [1]. Bezpośredni wpływ sterowników ruchu drogowego na bezpieczeństwo ruchu pieszych i pojazdów powoduję, że testowanie poprawności działania urządzeń jest sprawą kluczową. Niepoprawne działanie cyfrowego może być wynikiem błędów projektowania lub niedoskonałości procesu wytwarzania. Uszkodzenia mogą także powstać w czasie użytkowania. Metody testowania specjalizowanych urządzeń sterowania ruchem projektowanych i realizowanych w układach programowalnych FPGA przedstawiono w pracy [2]. W artykule kontynuowana będzie analiza zagadnień testowania oraz przedstawione zostaną badania metod samotestowania specjalizowanych sterowników lokalnych. 2. WERYFIKACJA BŁĘDÓW CYFROWYCH URZĄDZEŃ STEROWANIA RUCHEM DROGOWYM 2.1. Błędy w układach cyfrowych W pierwszym etapie projektowania urządzeń sterowania ruchem drogowym w układach programowalnych FPGA projektant zapisuje swoje wyobrażenia o urządzeniu. Odbywa się to w formie schematów logicznych, sieci działań (algorytmu pracy urządzenia) lub w formie języków opisu sprzętu np.: VHDL (Very High Speed Integrated Circuits Hardware Description Language). W drugim etapie następuje 1 kfr@wt.pw.edu.pl Logistyka 4/2014 1825

synteza i implementacja projektu w postaci prototypu, następnie urządzenie trafia na linię produkcyjną gdzie jest wytwarzane. Proces ten przedstawiony jest na rysunku nr 1. Błędna specyfikacja Błędna realizacja Uszkodzenia realizacji Opis działania (Algorytm sterowania) Specyfikacja (VHDL, FSM, BDE) N weryfikacja T Synteza Realizacja, implementacja N testowanie T Badanie prototypu N testowanie T Produkcja urządzenia Weryfikacja (testowanie) oprogramowania Błędy specyfikacji Testowanie sprzętu Błędy i uszkodzenia realizacji Diagnostyka Rys. 1. Etapy procesu powstawania urządzeń cyfrowych. Powstałe w ten sposób urządzenie może nie spełnić postawionych mu wymagań. Przyczyny tego zwykle przedstawia się jako [6]: błędna specyfikacja rozbieżności pomiędzy działaniem wyspecyfikowanego urządzenia a założeniami, według których miało działać; błędna realizacja wynika ze złej dokumentacji, błędnej implementacji; uszkodzenia realizacji niewłaściwe prowadzenie procesu technologicznego, wadliwe podzespoły. Uszkodzenia mogą też powstać w czasie użytkowania na skutek naturalnego procesu starzenia lub niekorzystnej zmiany warunków zewnętrznych. W celu wyeliminowania wymienionych błędów konieczna jest ciągła weryfikacja i testowanie urządzeń cyfrowych na każdym etapie ich wytwarzania, oraz diagnostyka w czasie użytkowania urządzeń. 2.2. Weryfikacja na etapie specyfikacji Błędy na etapie specyfikacji, tzn. błędy w algorytmie działania urządzenia, pomyłki projektanta, pomyłki programisty, błędy w kodzie opisującym działanie, mogą być weryfikowane bezpośrednio na poziomie systemu CAD (Computer Aided Design), w którym nastąpiła specyfikacja. W poprzednich pracach [2] przedstawiono kompletną metodę weryfikacji błędów specyfikacji urządzeń sterowania ruchem, wykorzystującą metody testowania oprogramowania w odniesieniu do języka VHDL, będącego platformą opisu urządzeń realizowanych w FPGA. Kod (VHDL) weryfikuje się zarówno w oparciu o funkcje urządzenia (testowania funkcjonalne) jak i strukturę programu (testowania strukturalne). Częściowa automatyzacja procesu testowania możliwa jest poprzez wykorzystanie automatycznych środowisk testowych (Test Bench). Jako ocenę jakości procesu weryfikacji wykorzystuje się analizę pokrycia strukturalnego. Sprawdza się pokrycie instrukcji, bloków, decyzji, warunków. 3. TESTOWANIE BŁĘDÓW I USZKODZEŃ REALIZACJI URZĄDZEŃ W UKŁADACH FPGA Błędy oraz uszkodzenia realizacji, powstające podczas wytwarzania wskutek niedoskonałości procesów technologicznych, błędów operatorskich oraz uszkodzenia powstałe w czasie użytkowania można wykryć poprzez testowanie prototypu urządzenia. Testowanie na tym etapie może być przeprowadzone na poziomie pakietu oprogramowania integrującego w sobie narzędzia specyfikacji, implementacji i współpracującego z prototypem urządzenia, lub za pomocą systemów automatycznego testowania ATE (Automated Test Equipment). 1826 Logistyka 4/2014

3.1. Modele błędów układów FPGA Poza klasycznymi modelami błędów sklejeń (Stuck-At) i zwarć (Wired), w układach FPGA występują błędy charakterystyczne dla układów programowalnych: błędy struktury FPGA błędy połączeń, błędy typu sklejeń, całkowite rozłączenie lub zwarcie pary połączeń; błędy komórek CLB błędy multiplekserów, przerzutników D; błędy komórek LUT błędy pamięci, błędy dekodera. Ponadto, poza błędami statycznymi, występują błędy dynamiczne, których efekty mogą ujawniać się przy zmianach sygnałów wejściowych np.: błędy opóźnieniowe. Oprócz trwałych uszkodzeń występują jeszcze błędy przemijające, chwilowe, typu zmiana wartości komórki pamięci, rejestru, linii sygnałowej na wartość przeciwną do poprawnej. Wraz z rozwojem technologii, zmniejszaniem się wymiarów technologicznych, obserwuje się również wzrastającą czułość układów na błędy przemijające. Dla poszczególnych modelów błędów opracowano wiele metod ich weryfikacji, opartych głównie na dekompozycji układów i specjalistycznych metodach testowania. 3.2. Techniki testowania układów programowalnych Współczesne programowalne struktury logiczne można podzielić na układy [5]: ASIC układy zamawiane bądź projektowane przez użytkownika, programowane przez producenta; CPLD (Complex PLD)/FPGA układy projektowane i programowane przez użytkownika. Zależnie od typów układów testowanie ich można podzielić na dwa rodzaje: testowanie wszystkich komórek i wszystkich połączeń (testowanie niezależne od aplikacji); testowanie logiki użytej do realizacji funkcji (testowanie zależne od aplikacji). Pierwsze testowanie odnosi się do układów ASIC i nie zaprogramowanych układów CPLD i FPGA. Testowanie to ma na celu wykrycie uszkodzeń struktury. Testowaniu temu układy poddawane są głównie u producenta (test produkcyjny). Drugi rodzaj testowania odnosi się do zaprogramowanego FPGA. Polega on na testowaniu zaprogramowanej logiki działania (funkcji użytkownika). Technika ta zwykle wykorzystuje ideę samotestowania. Techniki testowania układów programowalnych możemy podzielić na: zewnętrzne techniki, gdzie dla danego modelu uszkodzeń, odpowiednio opracowana sekwencja wektorów testowych, podawana jest z zewnętrznego generatora testów ATE (Automatic Test Equipment). Technika ta wymaga drogich specjalistycznych testerów; wewnętrzne techniki testowania, wykorzystujące wbudowane elementy testowe BIST (Built-In Self- Test) wbudowane samotestowanie. 3.3. Wbudowane samotestowanie BIST Wady i zalety samotestowania układów Główne zalety wbudowanego testowania to [7]: eliminacja drogich zewnętrznych narzędzi diagnostycznych; zmniejszenie czasu detekcji i lokalizacji uszkodzeń; możliwość testowania on-line (współbieżnego z normalną pracą urządzenia); Głównymi wadami wbudowanego testowania spotykanymi w literaturze są [7]: znaczny nadmiar układowy; wzrost ceny urządzenia o cenę wbudowanego testera; konieczność ograniczenia stopnia złożoności wbudowanego testującego; integracja projektowania z projektowaniem testera (trudno zautomatyzować ten proces); dodatkowe wyprowadzenia; spowolnienie pracy testowanego. Architektura typowego BIST Architektura prostego BIST przedstawiona została na rysunku nr 2. Logistyka 4/2014 1827

Generator sekwencji testowych (TPG) Testowany Układ (CUT) Analizator odpowiedzi (ORA) Rys. 2. Podstawowa struktura BIST. W skład podstawowej struktury BIST wchodzą [3]: testowany CUT (Circuit Under Test); generator sekwencji testowych TPG (Test Patern Generator); analizator odpowiedzi ORA (Output Response Analizer). Zwykle BIST zawiera również multipleksery, pozwalające na odcięcie z systemu i poddaniu procesowi testowania oraz kontroler, nadzorujący proces testowania. Przykładowa, rzeczywista struktura BIST przedstawiona została na rysunku 3. Bist Start Sterownik Kontroler testu Bist Done Generator sekwencji testowych (TPG) Analizator odpowiedzi (ORA) Fail Wejście 0 1 Testowany Układ (CUT) Wyjście Rys. 3. Przykładowa implementacja BIST Źródło: opracowanie na podstawie [7]. Samotestowanie można zrealizować wbudowując w układ generator wektorów testowych oraz układ analizujący prawidłowość odpowiedzi. Jest to do zrealizowania przez wprowadzenie do dwóch pamięci stałych: pamięci wektorów testowych i pamięci poprawnych odpowiedzi, oraz porównującego odpowiedzi otrzymane z prawidłowymi. Jest to jednak rozwiązanie niepraktyczne, bo potrzebne do tego pamięci z reguły zajmowałyby w układzie bardzo dużo miejsca. W związku z tym dąży się do upraszczania generatorów sekwencji testowych, tak aby wykorzystując jak najmniejsze zasoby, generowały sekwencję testowe, pozwalające na wykrycie uszkodzeń. Generatory sekwencji testowych wykorzystują następujące koncepcje generacji wymuszeń [7]: pamięciowe wykorzystuje się wzorce zapisane w pamięci; układy liczników wyczerpujące testowanie dla n wejściowych układów kombinacyjnych; testowanie pseudowyczerpujące sekwencje testujące bazują na wbudowanych generatorach LFSR (sekwencje o maksymalnej długości) ze sprzężeniem zewnętrznym lub wewnętrznym lub bazujące na automatach komórkowych; specjalistyczne automaty generujące sekwencję deterministyczne wg określonych algorytmów. Analiza odpowiedzi może polegać na komparacji odpowiedzi testowanego z wzorcowym lub na poddawaniu kolejnych odpowiedzi kompakcji prowadzącej do otrzymania sygnatury pojedynczego słowa binarnego, które ma jednoznacznie określoną wartość w przypadku sprawnego, natomiast przyjmuje inne wartości, jeśli w testowanym układzie jest uszkodzenie. Techniki redukcji informacji (kompakcji, koncentracji) w analizatorach odpowiedzi, sprzętowo wykorzystują: koncentratory: wykorzystujące bramki XOR (rys. 4); wykorzystujące układy LFSR; techniki licznikowe: zliczanie jedynek; zliczanie zboczy; kontrolę parzystości; 1828 Logistyka 4/2014

d 7 d 6 d 5 d 4 Skoncentrowane wyjście (do ORA) d 3 d 2 d 1 d 0 Rys. 4. 8-bitowy koncentrator informacji Źródło: opracowanie na podstawie [7]. Techniki samotestowania w układach FPGA Metody samotestowania BIST można podzielić na: samotestowanie współbieżne normalną z pracą systemu (on-line): testowanie równoległe bazujące na redundancji układowej; w stanach nieaktywności ; samotestowanie prewencyjne (off-line): stałe układy BIST mogą być na stałe wbudowane w strukturę układów FPGA; dynamiczne, gdzie samotestowanie może odbywać się przez wykorzystanie cechy rekonfigurowalności w systemie. Wykorzystywane są wolne zasoby FPGA, które przekształcane są tymczasowo w generator i analizator testu dla pozostałych komórek. Po przetestowaniu przywracana jest konfiguracja odpowiadająca normalnej pracy. W ten sposób samotestowanie przeprowadzane jest bez nadmiaru układowego. 4. IMPLEMENTACJA TECHNIK SAMOTESTOWANIA W STEROWNIKACH RUCHU DROGOWEGO Poszczególne techniki samotestowania zaimplementowano w bloki logiczne sterowników ruchu drogowego. Do badań wykorzystano opracowaną we wcześniejszych pracach bazę modeli specjalizowanych adaptacyjnych sterowników ruchu drogowego dla izolowanych skrzyżowań. Układy badano zarówno na poziomie modelów w językach opisu sprzętu w środowisku programu Active HDL, jak również na poziomie prototypów zrealizowanych w zestawach uruchomieniowych, np.: z układem Spartan3 XC3S200 FT256 (rys. 5a), z układem Spartan3E-100 CP132 (rys 5b) i innych. a) b) Rys. 5. Zestawy uruchomieniowe z układami FPGA: a) XC3S200FT256, b) S3E100CP132. 4.1. Testowanie współbieżne z pracą systemu (on-line), zależne od aplikacji Testowanie współbieżne z pracą systemu przeprowadzono w dwóch wariantach: bez podziału na makrobloki (rys. 6a); z podziałem na makrobloki (rys. 6b), gdzie podział wynikał z funkcjonalności układów. Logistyka 4/2014 1829

Sterownik Sterownik Moduł odliczania czasów Wzorcowy moduł odliczania czasów kompa rator błąd liczn Wzorcowy Układ Komparator Fail wejście Moduł obsługi logiki detektorowej Moduł sterowania Moduł transkodera grup sygnałowych wyjście Wejście Testowany Układ (CUT) Wyjście Wzorcowy moduł obsługa logiki detektorowej kompa rator Wzorcowy moduł sterowania kompa rator Wzorc. moduł transkodera grup sygnałowych kompa rator a) b) Rys. 6. Implementacja układów samotestowania do modułu sterownika: a) bez podziału na makrobloki, b) z podziałem na makrobloki. Testowania bez podziału na makrobloki W testowaniu bez podziału na makrobloki potraktowano cały sterownik jako jeden blok logiczny, specyfikację sterownika z wbudowanym samotestowaniem przedstawia rysunek 7a, zewnętrznie sterownik zyskał jedynie jedno dodatkowe wyprowadzenie fault (rys. 7b), informujące o wykryciu błędu w działaniu sterownika, wynikającego z uszkodzenia. błąd detektor błąd sterow błąd trans a) b) Rys. 7. Specyfikacja sterownika z wbudowanym samotestowaniem: a) struktura, b) blok sterownika. Głównym problem jaki wiążą się z tą techniką samotestowania jest brak lokalizacji błędu. W procesie testowania otrzymywana jest informacja, że błąd wystąpił, natomiast nie ma możliwości stwierdzenia który moduł (element) sterownika uległ uszkodzeniu. Dużym problemem w takiej strukturze jest również maskowanie błędów. Weryfikacja jedynie poprawności sygnałów na wyjściu ze złożonego powoduje, że można nie wykryć uszkodzenia mniej ważnego modułu, który nie ma bezpośredniego wpływu na wyjście. Powyższe rozwiązanie zostało zweryfikowane na modelu w programie Active-HDL. Przeprowadzono również syntezę, implementację i prototypowanie tego rozwiązania do FPGA. Wybrano układ xc2s15vq100, gdyż był on najmniejszym z dostępnych układów. Parametry z syntezy przedstawiono w tabeli 1. 1830 Logistyka 4/2014

Tabela 1. Wykorzystanie zasobów układów FPGA. Zasoby układów FPGA Sterownik Sterownik z BIST FPGA: xc2s15vq100 FPGA: xc2s15vq100 Wyprowadzeń WE/WY 23/64 (35%) 24/64 (37%) Bloków Slice 84/192 (43%) 170/192 (88%) Komórek LUT 4 wejściowych 148/384 (38%) 299/384 (77%) Przerzutników 52/384 (13%) 104/384 (27%) Maksymalna częstotliwość pracy 131,165 MHz 131,165 MHz Zgodnie z oczekiwaniami wykorzystanie zasobów logicznych FPGA wzrosło dwukrotnie. Pomimo dwa razy większej struktury maksymalna dopuszczalna prędkość taktowania, czyli szybkość jego dziania, nie uległa zmianie. Wynika to ze współbieżnej realizacji procesów w układach FPGA. Realizacje obydwu układów, testowanego i wzorcowanego, pomimo iż fizycznie znajdują się w jednym układzie cyfrowym, są niezależne. Wniosek ten potwierdza również analiza struktury FPGA w narzędziu FPGA Editor, gdzie wyraźnie widoczne jest niezależne rozmieszczenie elementów logicznych poszczególnych sterowników w strukturze FPGA (rys. 8). Testowany sterownik Rys. 8. Fragment struktury FPGA z zaimplementowanym układem BIST. Testowanie z podziałem na makrobloki W testowaniu z podziałem na makrobloki, podział wynikał z wewnętrznej struktury sterownika, gdzie wyodrębniono poszczególne bloki funkcyjne. Do każdego bloku dobudowano blok wzorcowy i komparator (rys. 9a). Zewnętrznie układ zwiększył się o cztery dodatkowe wyprowadzenia (rys. 9b). Rozwiązanie umożliwia lokalizację błędów, a także zmniejsza możliwość ich maskowania. Możliwe jest, że pomimo wykrycia błędu (uszkodzenia) w jednym z modułów, wynik na wyjściu będzie poprawny. Przy podziale na większą liczbę bloków wskazane jest zakodowanie informacji o błędzie, co zmniejszy liczbę dodatkowych wyprowadzeń. Synteza, implementacja i prototypowanie tego rozwiązania wykazały dwukrotny wzrost wykorzystania zasobów logicznych FPGA (tab. 2). Podobnie jak w poprzedniej realizacji, pomimo dwa razy większej struktury, maksymalna dopuszczalna prędkość taktowania, nie uległa znaczącej zmianie. Również w tym przypadku możliwe jest takie rozmieszczenie elementów logicznych w strukturze FPGA, aby zajmowały one niezależne obszary krzemu. Tabela 2. Wykorzystanie zasobów układów FPGA Wzorcowy sterownik Zasoby układów Sterownik Sterownik z BIST FPGA: xc2s15vq100 FPGA: xc2s15vq100 Wyprowadzeń WE/WY 23/64 (35%) 27/64 (42%) Bloków Slice 84/192 (43%) 155/192 (80%) Komórek LUT 4 wejściowych 148/384 (38%) 272/384 (70%) Przerzutników 52/384 (13%) 108/384 (28%) Maksymalna częstotliwość pracy 131,165 MHz 127,698 MHz Logistyka 4/2014 1831

a) b) Rys. 9. Specyfikacja sterownika z wbudowanym samotestowaniem z podziałem na makrobloki: a) struktura, b) blok sterownika. 4.2. Testowanie w czasie bezczynności (off-line), zależne od aplikacji Technikę testowanie w czasie bezczynności (off-line) badano w wersji z elementami BIST na stale wbudowanymi w strukturę FPGA. Zaproponowana architektura (rys. 3) zawiera układ multipleksera umożliwiający odseparowanie badanego od systemu, generator sekwencji testowych generujący wymuszenia dla, analizator odpowiedzi oraz układ kontrolujący przebieg testu. Analizując możliwość realizacji samotestowania w trybie bezczynności stwierdzono, że wymagana ilość logiki do zrealizowania układów BIST zdecydowanie przewyższa ilość logiki wykorzystywanej przez testowany układ. Niezwykle trudne jest testowania w ten sposób całego sterownika, gdyż byłaby wymagana bardzo długa sekwencja testowa zapewniająca gruntowne przetestowania całego, lub gwarantująca zadany poziom niepewności detekcji przy testowaniu losowym. Wymagany jest podział na makrobloki i testowanie gruntowne lub losowe poszczególnych bloków. W przykładzie na rysunku 10, testowaniu poddano układ detekcji badanego sterownika. Jest to układ kombinacyjny o 10 wejściach, jako TPG wykorzystano licznik mod 1024, co pozwoliło przeprowadzić gruntowne testowanie. Czas pełnego testu, przy zegarze 50[MHz], wynosił około 21[µs]. Na przebiegu z procesu testowania (rys. 11) wyróżniono trzy charakterystyczne punkty. Włączenie procesu testowania Start_BIST=1, zakończenie testu przez układ BIST_Done=1, wyłączenie procesu testowania i rozpoczęcie pracy w systemie Start_BIST=0. W procesie testowania nie wykryto błędów Fail=0. Dla układów kombinacyjnych powyżej 40 wejść, zalecana jest dekompozycja na mniejsze bloki, gdyż czas pełnego testowania przekracza kilka godzin. Przy układach sekwencyjnych, gdzie na długość sekwencji testującej wpływ ma zarówno liczba wejść jak i liczba przerzutników w układzie, testowanie gruntowne jest nieopłacalne. Najlepiej w tym przypadku sprawdzają się metody generacji wektorów testowych oparte na generatorach LFSR lub automatach komórkowych. Przeprowadzone badania wskazały również konieczność kompakcji wyników testowania, w celu zmniejszenia zasobów wykorzystywanych przez tester. 1832 Logistyka 4/2014

Logistyka - nauka Rys. 10. Specyfikacja BIST do testowania modułów w trybie off-line. Rys. 11. Przebiegi czasowe procesu testowania detekcji sterownika. 5. POSUMOWANIE I WNIOSKI Przeprowadzone badania wybranych metod testowania urządzeń sterowania ruchem z wykorzystaniem wbudowanego samotestowania wykazały, że korzystną metodą jest samotestowanie współbieżne z pracą systemu, w wariancie z podziałem na makrobloki. Zaletą tej metody jest łatwość implementacji i możliwość lokalizacji błędów. Testowanie to wymaga dwukrotnie większych zasobów urządzenia, ale nie wpływa na prędkość przetwarzania, czyli wydajność testowanych urządzeń. Pomimo umieszczenie zarówno testera jak i testowanego urządzenia w jednym układzie FPGA, możliwe jest niezależne rozmieszczenie tych elementów w różnych częściach scalonego. Logistyka 4/2014 1833

Wykorzystanie techniki testowania w czasie bezczynności pozwala na wykrycie uszkodzeń, których wykrycie podczas normalnej pracy byłoby niezwykle trudne. Ten wariant testowania wykorzystuje jednak duże zasoby układowe, znacznie przewyższające zasoby wykorzystane przez testowany układ. Niezbędne w tym przypadku jest wykorzystanie dekompozycji układów, losowych metod generacji testów bazujących na generatorach LFSR oraz skutecznych metod kompakcji wyników testowania. Zagadnienia te należy nadal badać. Rozwiązaniami wymagającymi dalszych badań są również metody samotestowania dynamicznego, gdzie wykorzystywane są wolne zasoby FPGA, które przekształcane są tymczasowo w generator i analizator testu dla pozostałych komórek, bez stałego nadmiaru układowego. Streszczenie Budowa sterowników lokalnych jako urządzeń specjalizowanych w układach FPGA, umożliwia otrzymanie nowej klasy urządzeń, posiadających zalety dotychczasowych urządzeń, jednocześnie pozbawionych większości ich wad. Bezpośrednia odpowiedzialność za bezpieczeństwo uczestników ruchu, powoduję, że niezwykle ważnym zagadnieniem jest testowanie specjalizowanych urządzeń sterowania ruchem drogowym. Testowanie zarówno na wszystkich etapach powstawania tych urządzeń jak i podczas ich pracy w systemie sterowania. Przedmiotem pracy jest analiza metod wbudowanego samotestowania (BIST) urządzeń cyfrowych oraz badanie ich przydatności do testowania urządzeń sterowania ruchem realizowanych w układach FPGA. Wybrane metody samotestowania zaimplementowano w modelach specjalizowanych sterowników ruchu drogowego i weryfikowano ich działanie. Badano również prototypy sterowników ruchu w zestawach uruchomieniowych z układami FPGA. Umożliwiło to analizę wykrywania błędówi uszkodzeń realizacji urządzeń. Badano również wpływ nadmiarowych elementów testowych na parametry działania sterowników. Słowa kluczowe: specjalizowane urządzenia sterowania ruchem drogowym, testowanie sterowników lokalnych, wbudowane samotestowanie. Self-test methods of specialized traffic controller devices Abstract Construction of local controllers as specialized devices within FPGA systems allows for obtaining a new class of devices having the advantages of already existing devices which are simultaneously deprived of most of their disadvantages. Direct responsibility for the safety of traffic participants makes the testing of specialized traffic control devices an extremely important issue. Testing performed both in all stages of the formation of such devices as well as during their operation in the control system. The aim of the paper is to analyze methods of built-in self-test (BIST) of digital devices and study their suitability for testing traffic control devices implemented in FPGA systems. Selected methods of self-testing have been implemented in models of specialized traffic controllers and their operation has been verified. Prototypes of traffic controllers have also been tested in starter kits in FPGA systems. This enabled the analysis of error detection and failures in the implementation of devices. Influence of redundant test elements on operation parameters of controllers has also been investigated. Key words: specialized traffic control devices, testing traffic controllers, built-in self-test. LITERATURA [1] Firląg K., Projektowanie i realizacja specjalizowanych sterowników ruchu drogowego w reprogramowalnych strukturach logicznych, Politechnika Warszawska, Prace Naukowe - Transport, z.77, str. 27-44, OWPW, 2011, Warszawa. [2] Firląg K., Testowanie specjalizowanych urządzeń sterowania ruchem drogowym w strukturach FPGA, Politechnika Warszawska, Prace Naukowe - Transport, z.95, str. 115-124, OWPW, 2013, Warszawa. [3] Jha N. K., Gupta S., Testing of digital systems, Cambridge University Press, 2003. [4] Leśko M., Guzik J., Sterowanie ruchem drogowym. Sterowniki i systemy sterowania i nadzoru ruchu, Wydawnictwo Politechniki Śląskiej, 2000, Gliwice. [5] Łuba T., Jasiński K., Zbierzchowski B.: Specjalizowane układy cyfrowe w strukturach PLD i FPGA. WKŁ, 1997, Warszawa. [6] Sapiecha K., Testowanie i diagnostyka systemów cyfrowych, PWN, 1987, Warszawa. [7] Stroud C. E., A Designer's Guide to Built-In Self-Test, Kluwer Academic Publishers, 2002. 1834 Logistyka 4/2014