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



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

Model reprogramowalnego prądowego układu działającego w logice wielowartościowej

Modelowanie reprogramowalnych układów prądowych pracujących w logice. wielowartościowej.

MODEL KOMÓRKI UKŁADU FPGA ZBUDOWANEGO W OPARCIU O BRAMKI PRĄDOWE

Projekt i weryfikacja praktyczna podstawowych bloków układów FPGA zbudowanych w oparciu o bramki prądowe

Przerzutniki prądowe dla logiki wielowartościowej i arytmetyki resztowej

Język opisu sprzętu VHDL

KONCEPCJA REALIZACJI TESTÓW JEDNOSTKOWYCH W JĘZYKU VHDL

Wykorzystanie bramek prądowych i napięciowych CMOS do realizacji funkcji bloku S-box algorytmu Whirlpool

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

Projektowanie układów na schemacie

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Krótkie wprowadzenie do ModelSim i Quartus2

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

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

PRZEMYSŁAW SOŁTAN

Układy cyfrowe zbudowane w oparciu o bramki prądowe: stan obecny, perspektywy rozwoju i zastosowania

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

Katedra Mikroelektroniki i Technik Informatycznych

Szkolenia specjalistyczne

Bezpieczeństwo informacji oparte o kryptografię kwantową

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

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

PROGRAMOWALNE STEROWNIKI LOGICZNE

Minimalizacja funkcji logicznych w algebrze bramek prądowych

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

Ukªady Kombinacyjne - cz ± I

Laboratorium przedmiotu Technika Cyfrowa

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

Projektowanie Urządzeń Cyfrowych

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Systemy Czasu Rzeczywistego FPGA

Programowane połączenia w układach FPMA

Programowalne Układy Cyfrowe Laboratorium

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

Cyfrowe układy scalone c.d. funkcje

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

Technika cyfrowa. Laboratorium nr 7. Liczniki synchroniczne. Mirosław Łazoryszczak. Temat:

Systemy Czasu Rzeczywistego FPGA

1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...

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

Technika cyfrowa Synteza układów kombinacyjnych (I)

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

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Sposoby projektowania systemów w cyfrowych

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.

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

Ćwiczenie Digital Works 003 Układy sekwencyjne i kombinacyjne

Po ukończeniu szkolenia, jego uczestnicy będą w stanie swobodnie rozpocząć samodzielnie pracę z projektami w VHDL.

Modelowanie logiki rewersyjnej w języku VHDL

Projekt prostego procesora

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.

Sterowniki Programowalne (SP)

ćw. Symulacja układów cyfrowych Data wykonania: Data oddania: Program SPICE - Symulacja działania układów liczników 7490 i 7493

Funkcja Boolowska a kombinacyjny blok funkcjonalny

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. cz.2

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Technika cyfrowa Synteza układów kombinacyjnych

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

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

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

MentorGraphics ModelSim

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

Ćw. 1: Systemy zapisu liczb, minimalizacja funkcji logicznych, konwertery kodów, wyświetlacze.

Architektura komputerów Wykład 2

Elementy cyfrowe i układy logiczne

THE HARDWARE IMPLMENTATION OF THE PS/2 PROTOCOL ON SPARTAN 3 FPGA DEVICE IMPLEMENTACJA SPRZĘTOWA PROTOKOŁU PS/2 W UKLADZIE FPGA SPARTAN 3

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

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

Programowalne układy logiczne

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

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

Magistrale na schematach

Elektronika i techniki mikroprocesorowe

Układy logiczne układy cyfrowe

OPTYMALIZACJA MODELI SYMULACYJNYCH ZAMODELOWANYCH W JĘZYKU VERILOG HDL Z WYKORZYSTANIEM INTERFEJSU PLI

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8

TECHNIKA CYFROWA ELEKTRONIKA ANALOGOWA I CYFROWA. Badanie rejestrów

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

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

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

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

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

Szybkie prototypowanie w projektowaniu mechatronicznym

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016

Automatyzacja i robotyzacja procesów produkcyjnych

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

Zadania badawcze prowadzone przez Zakład Technik Programowania:

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Transkrypt:

Przemysław Sołtan Wydział Elektroniki Politechnika Koszalińska ul. Śniadeckich 2, 75-453 Koszalin e-mail: kerk@ie.tu.koszalin.pl Weryfikacja logiczna projektów VHDL realizowanych w reprogramowalnych układach FPGA pracujących w trybie prądowym Słowa kluczowe: układy reprogramowalne (FPGA), język opisu sprzętu (VHDL), bramki prądowe, testowanie, weryfikacja. STRESZCZENIE W pracy zaprezentowano sposób weryfikacji projektów cyfrowych implementowanych w układzie FPGA zbudowanym w oparciu o bramki prądowe nowe bramki logiczne cechujące się niskim poziomem szumu cyfrowego. Prądowy układ FPGA został zaprojektowany jako prototyp funkcjonalny znanego układu FPGA Spartan II firmy Xilinx. Zaprezentowano modelu układu oraz przedstawiono metody jego weryfikacji ze wzorcem opisywanym za pomocą odpowiednio zaprojekowanych procesów testowych. Koncepcję realizacji testów oparto o własną bibliotekę vhdlunit. Jej zastosowanie umożliwiło automatyzację testów oraz rozbudowę standardowych mechanizmów języka VHDL takich jak: asercja i raportowanie. 1. WPROWADZENIE Jednym z najważniejszych problemów projektowania jest testowanie i weryfikacja tworzonych systemów. Podczas prac badawczych autorzy opracowali kilka modeli układów FPGA zbudowanych w oparciu o bramki prądowe [1]. Złożoność projektów wymusiła znalezienie określonych rozwiązań automatyzujących ich pracę. Jako prototyp układu wybrany został układ SPARTAN II firmy Xilinx [2]. Z tego względu opracowane układy charakteryzują się jednakowymi wyprowadzeniami (wejścia/wyjścia) oraz trybami pracy. Zasadniczą różnicą jest ich wewnętrzna budowa zrealizowana w oparciu o logikę wielowartościową. Podczas projektowania podstawowym czynnikiem sprawdzania wiarygodności tworzonego modelu prądowego było porównywanie wyników z analogicznym modelem realizowanym w standardowej technologii napięciowej, co przedstawiono na rys. 1. Rys. 1. Schemat blokowy procesu implementacji i weryfikacji projektów w prądowych układach FPGA

Aby uprościć proces porównywania zdecydowano się na realizacje własnej biblioteki vhdlunit umożliwiającej automatyzację testów porównawczych. W tym celu opracowano metodologię tworzenia specjalnych testów bazujących na tworzeniu procesów testowych. Podstawowym celem tworzenia testów jest programowa symulacja i weryfikacja projektu wraz z raportowaniem wyników na podstawie zaprojektowanych metod asercji. Termin asercja określa wymuszenie zachowania określonego warunku pracy symulowanego systemu (np. przyjmowanie przez dany sygnał określonego stanu wartości). 2. MODEL PRĄDOWY TESTOWANEGO UKŁADU FPGA Podczas prac nad reprogramowalnym układem FPGA realizowanym w technologii bramek prądowych stworzono kilka modeli układów. Wstępne prace dotyczyły opracowania trybów pracy poszczególnych bloków i ich implementację w fizycznych strukturach półprzewodnikowych. Zaproponowany model jest najbardziej rozbudowaną wersją z dotychczas zaprojektowanych układów. Funkcjonalne działanie układu jest zgodne z napięciowym układem FPGA Sparan II firmy Xilinx i dzięki temu do tworzenia plików konfiguracyjnych użyto pakietu ISE [3]. Producent oprogramowania udostępnił specjalny format danych XDL umożliwiający eksportowanie struktury układu FPGA. W oparciu o ten mechanizm zaprojektowano specjalny program GEDEON umożliwiający konwersję konfiguracji danego projektu do projektu prądowego opartego o własną bibliotekę nstd_logic [5]. Rys. 2. Struktura bloku SLICE W skład prądowego układu FPGA wchodzą różnego rodzaju bloki funkcyjne. Najważniejszymi z nich są układy IOB do konfiguracji wyprowadzeń układu FPGA, oraz bloki funkcyjne SLICE. Szczegółowa budowa poszczególnych bloków została opisana we wcześniejszych publikacjach [5] i [6]. W projekcie zastosowano zmodyfikowane wersje bloków opisanych w podanych publikacjach. Na wejściach układu SLICE (wyprowadzenia BY,CE,SR,BX) zastosowano specjalne bloki multiplekserów przedstawione na rys. 2. Multipleksery sterowane przy pomocy wejść konfiguracyjnych umożliwiają wybór jednego z czterech stanów sygnałów

podawanych na ich wejścia (przenoszenie sygnału, jego negacja, ustawienie wartości 1 lub 0). Podobnie postąpiono z układem IOB (wyprowadzenia T, TCE, O, OCE, ICE, SR) przedstwionym na rys. 5. Poważniejsze zmiany wprowadzono dla układu LUT będącego elementem składowym bloków SLICE. Zastosowano konfigurację bloku LUT pracującego w trybie równoległego zapisu. Wcześniejsze modele umożliwiały jedynie zapis sekwencyjny przy pomocy specjalnego trybu pracy. Wydłużało to proces konfiguracji i dodatkowo komplikowało jego realizację. Konfiguracja z zapisem równoległym polega na podaniu na nowe 16-bitowe wejście CFG_LUT wartości 16 bitów, która będzie inicjowała wewnętrzne przerzutniki. Rys. 3. Fragment struktury bloku LUT Tryb zapisu występuje przy stanie niskim wejścia CFG (odcięcie kolejki FIFO od zewnętrznych wejść), a bezpośredni zapis do przerzutników dokonywany jest zboczem narastającym CFG_WRITE. Tryb równoległej konfiguracji (zapis wartości CFG_LUT do przerzutników) oraz tryb pracy (na wyprowadzeniu D pojawia się stan przerzutnika wskazywanego przez wejścia sterujące A1,A2,A3,A4) zostały przedstawione na przebiegu z rys. 4. Tryb zapisu sekwencyjnego jest w dalszym ciągu wykorzystywany jako jeden ze standardowych trybów pracy kolejki FIFO realizowanej przy pomocy bloków LUT. Tryby pracy układu LUT zostały szczegółowo opisane w publikacji [6]. Rys. 4. Przebieg testowy trybu kunfiguracji i pracy bloku LUT Na rys. 6 przedstawiono wewnętrzną budowę bloku przerzutnika. Zaprojektowany układ może pracować jako konfigurowalny przerzytnik ustawiany i zerowany synchronicznie

lub asynchroniczny oraz sterowany poziomem lub zboczem sygnału taktującego [7]. 3. KONCEPCJA REALIZACJI TESTÓW Jako podstawową jednostkę testową zaproponowano wykorzystanie odpowiednio zaprojektowanych procesów języka VHDL umieszczanych wewnątrz standardowego testu (TestBench). Kod testu zawiera również zestaw procesów stymulujących testowany model układu FPGA (Stymulus). Opisana koncepcja została przedstawiona na rys. 7. Rys. 7. Środowisko testowe prądowego układu FPGA Przedstawiony proces testowy (TestCase) realizuje porównanie wyników uzyskanych podczas symulacji skonfigurowanego modelu układu FPGA ze wzorcem zaimplementowanym w formie funkcji. Powyższa metoda uniezależnia proces porównywania od wartości sygnałów stymulujących badany układ. Proces weryfikacji oparto również o modele układów zawartych w bibliotece UniSim (UNIfied SIMulation - functional components library for xilinx designers). Jest to biblioteka zawierająca funkcjonalny opis trybów pracy układów FPGA firmy Xilinx [3]. Dla zamodelowanego układu FPGA zaprojektowano zestaw testów (testy konfiguracji bloków LUT, układów kombinacyjnych, multiplekserów, sumatorów, komparatorów i rejestrów). Zaprojektowana biblioteka vhdlunit umożliwia stosowanie weryfikacji opartej o wzorzec w postaci porównywania dwóch modeli: prądowego i napięciowego. W tym celu zostały zaprojektowane funkcje konwersji pomiedzy typami std_logic i std_logic_vector, a typami wielowartościowymi nstd_logic i nstd_logic_vector. Całość została zawarta w rozszerzeniu biblioteki vhdlunit (vhdlunit_ext_nstd_logic). Dzięki temu biblioteka vhdlunit nie ogranicza się tylko do technologii prądowej, ale może mieć zastosowanie także przy innych projektach (biblioteka posiada status otwartego oprogramowania - OpenSource).

Proces testowy jest najmniejszą jednostką testową składającą się z metody setup() inicjujacej test, grupy metod asercji assertxxx(), testujących stan testowanych sygnałów, oraz metody teardown() zakończenia testu. Przykładowy proces testowy pełnego sumatora (Full Adder) Powyżej przedstawiono przykładowy proces testowy pełnego sumatora z zastosowaniem metody asercji asserttime(...) określającej czas wywoływania metody assertequals(...). 4. RAPORTOWANIE WYNIKÓW TESTU Zastosowanie biblioteki vhdlunit umożliwia raportowanie przebiegu testów w dokumencie HTML. W postaci kolorowych wierszy następuje odwzorowanie wyników testów ułatwiające analizę i wyłapywanie błędnych sytuacji. Przykładowy raport przedstawiono na rys. 8. Rys. 8. Widok przykładowego raportu wygenerowanego przy użyciu biblioteki vhdlunit (pełny sumator FA). W wyniku realizacji testów wykonano weryfikację układu FPGA skonfigurowanego do pracy jako pełny sumator (full-adder). Wykonanie metody asercji assertequals(wartość oczekiwana, wartość otrzymana) powoduje generację określonego wiersza raportu zawierającego informację o wyniku porównania wartości oczekiwanej z wartością otrzymaną z symulacji dla

określonego momentu czasu wskazanego w kolumnie Time(s). W przykładzie wykonano 8 testów sprawdzających wszystkie stany sygnałów stymulujących układ badanego sumatora (sygnały a, b i ci). Na podstawie wzorca wygenerowano wartości oczekiwane, które następnie zostały porównywane ze stanami sygnałów pojawiającymi się na modelowanym układzie FPGA (sygnały cout i sout). Zgodność obu wartości potwierdzona została generacją komunikatu Success zawartego w kolumnie Status. Na zakończenie testu została wygenerowana statystyka obejmująca procentowy udział prawidłowo wykonanych testów i testów zakończonych niepowodzeniem. Zaprezentowany raport jest wynikiem prostego testu sumatora jednobitowego pokazującego jedynie wynik realizacji testów. W pracy nad projektem zrealizowano szereg bardziej złożonych testów np. sumatorów wielobitowych zajmujących wiele układów SLICE i IOB. 5. WNIOSKI W niniejszej pracy zaprezentowano procedurę weryfikacji projektów implementowanych w reprogramowalnym układzie FPGA pracującym w technologii prądowej. Zautomatyzowana procedura implementacji wykorzystuje dostępne narzedzia do syntezy i umożliwia testowanie układów prądowych. W pracy wykorzystano własne środowisko programowe umożliwiające analizę plików konfiguracyjnych udostępnionych przez narzędzia place & route i na ich podstawie generację projektu modelu prądowego. Podczas tworzenia projektu modelu układu FPGA wykazano szczególną użyteczność zaprojektowanej biblioteki vhdlunit, ponieważ złożona rekonfigurowalność układ FPGA wymagała realizacji wielu samodzelnych symulacji oraz ich weryfikowania. Dostosowanie modelu do pracy w jednym trybie pracy wymagała sprawdzenia, czy wcześniej zaprojektowana funkcjonalność innych trybów również działała prawidłowo. Proces weryfikacji ułatwił realizację tego zadania dzieki zastosowaniu specjalnych procesów testowych zawierających metody asercji pracujące w logice wielowartościowej. BIBLIOGRAFIA [1] A. Guziński, P. Pawłowski, D. Czwyrow, J. Kaniewski, O. Maslennikow, N. Maslennikowa, D. Rataj, Design of Digital Circuits with Current-mode Gates, Bulletin of the Polish Academy of Sciences, Technical Sciences, Electronics and Electrotechnics, Vol. 48, No. 1, 2000, pp. 74-91. [2] The Programmable Logic Data Book, Xilinx, Inc., 2000 [3] Dokumentacja do programu Foundation/ISE (Version 4.1). Xilinx, Inc., 2001. [4] D. Gretkowski, J. Kaniewski, N. Maslennikowa, P. Soltan, Current-mode digital Circuits Design and Modeling Proc. of the XXII Nat.Conf. on Circuit Theory and Elektronic Networks, Warszawa-Stare Jablonki, Poland, 1999, pp.161-167. [5] P. Sołtan, O. Maslennikow, R. Berezowski, M. Rajewska, Automatyzacja procesu implementacji układów cyfrowych w technologii prądowych układów FPGA Prace I Konferencji Krajowej Elektroniki, KKE 2002, Kołobrzeg, 2002, pp.843-848. [6] O. Maslennikow, R. Berezowski, P. Soltan, M. Rajewska. Designing Prototype of the Spartan II FPGA Slice with the Current-Mode Gates, Proc. of the IEEE Int.Conf. on Circuits and Systems for Communication, ICCSC 2002, ST.-Petersburg, pp. 182-185 [7] O. Maslennikow, R. Berezowski, P. Sołtan. Model komórki układu FPGA zbudowanego w oparciu o bramki prądowe. Prace V Konferencji Krajowej Reprogramowalne uklady cyfrowe, RUC 2002, Szczecin, 2002, pp.189-196. Praca wykonana w ramach grantu KBN 3T11B 05926