Instrukcja
Transkrypt
Instrukcja
Technika Cyfrowa i Układy Programowalne Bramki Instrukcja do laboratorium AGH w Krakowie Katedra Elektroniki Ernest Jamro Aktualizacja: 21-10-2016 1. Podłączenie układu Podłącz wyprowadzenia płytki z układem FPGA (i płytki BNC) do oscyloskopu zgodnie z numeracją kanałów oraz kabel SUB do komputera PC zgodnie z poniższym rysunkiem. Włącz zasilanie na płytce (przełącznikiem POWER – zaświeci się czerwona dioda). 2. Programowanie układu FPGA Sprawdź czy istnieje katalog: C:/tc/bramki − w tym katalogu znajdują się pliki konfiguracji układu FPGA. Jeśli nie istnieje ten katalog, to stwórz go oraz ściągnij ze strony http://www.fpga.agh.edu.pl/tc/ materiały do tego laboratorium a następnie rozpakuj ten plik do tego katalogu. Następnie uruchom program Vivado klikając odpowiednią ikonę na pulpicie lub wybierając Start / Programy / Xilinx Design Suit ??? / Vivado ??? / Vivado ???, gdzie ??? to wersja programu Vivado. W programie Vivado kliknij ikonę: Open Hardware Manager. Następnie kliknij link Open target i wybierz menu Auto Connect co przedstawia poniższy rysunek. Następnie kliknij link Program Device i wybierz układ xc7a100. Następnie w ustawieniach Bitstream file wybierz ścieżkę C:/tc/bramki oraz plik bramki_typy.bit. Naciśnij przycisk Program. W przyszłości aby zaprogramować układ FPGA innym plikiem konfiguracyjnym należy powtórzyć czynności opisane w tym akapicie. 3. Typy Bramek Po zaprogramowaniu układu FPGA plikiem bramki_typy.bit i ustaw przełącznik S1 (na płytce z wyjściami BNC) w pozycji OFF. W zależności od przełączników SW0 i SW1 realizowane są różne funkcje logiczne: ch3 = F3(ch1, ch2) oraz ch4 = F4(ch1, ch2) kanały: ch1, ch2 − wymuszenia (wejścia) kanały: ch3, ch4 − wyjścia. Ustaw przełączniki SW0 i SW1 w różnych pozycjach i zaobserwuj stany czterech kanałów na oscyloskopie (synchronizacja kanał ch2). Określ jakie funkcje logiczne realizuje układ FPGA: SW1, SW0 00 01 10 11 Ch3 Ch4 4. Charakterystyka przejściowa Zaprogramuj układ FPGA plikiem bramki_chrakterystyka.bit oraz ustaw przełącznik S1 w pozycję ON, SW0 w stan Lo. Schemat połączeń układu został przedstawiony na poniższym rysunku. W wyniku otrzymujemy na ch1 przebieg przypominający przebieg piłokształtny (wyjście układu całkującego RC) a na ch2 otrzymujemy odpowiedz bufora na ten przebieg. Ustaw synchronizację na kanał ch1 lub ch3. Płytka FPGA ch1 ch2 R=10kΩ ch3 ch4 C=1nF oscyloskop Zaobserwuj przebieg na kanałach 1 i 2. Zwiększ czułość do 0.5V/dz. Zaobserwuj przy jakim wejściowym napięciu progowym (na kanale ch1) następuje zmiana stanu na wyjściu (ch2), zarówno dla zbocza opadającego jak i narastającego ch1. Czy napięcie progowe różni się dla sygnału narastającego i opadającego. W sprawozdaniu napisz z czego to wynika. Jakie napięcie wyjściowe odpowiada stanom 0 i 1 - jest to standard LVCMOS3.3. Następnie przełącz oscyloskop w tryb XY (menu: Display / Format XY) i zaobserwuj (i zapisz) charakterystykę przejściową bramki Uwy = F(Uwy) (określ na charakterystyce gdzie znajduje się zero!). Następnie przejdź na standardowy przebieg YT. Przełącz przełącznik SW0 w stan Hi. Spowoduje to generację złożonego przebiegu na kanale ch1, o czym świadczy ten przebieg? Powiększ wybrane zbocze sygnału ch2. 5. Czasy propagacji od sygnału wewnętrznego Zaprogramuj układ FPGA plikiem bramki_propag.bit. Konfiguracja ta prezentuje czasy propagacji od wewnętrznego (znajdującego się w układzie FPGA) sygnału zegarowego. Przełącznik SW0 = Lo: Kanały wskazują następujące sygnały: ch1 − wyjście o obniżonej wydajność prądowa 2 mA i dodatkowo obciążone pojemnością 1 nF (S1 w pozycji ON); 2 ch2 − wyjście o obniżonej wydajności prądowej do 2 mA; ch3 − wyjście bramki Open Drain (wydajność prądowa 2mA); ch4 − wyjście o wydajności prądowej 24 mA. Uwaga: Pomiędzy wyjściem bramek a oscyloskopem znajduje się rezystor zabezpieczający 200Ω. Oszacuj czasy propagacji (a właściwie różnice w czasach propagacji od najszybszego sygnału) i omów je (w sprawozdaniu). Jak jest definiowany czas propagacji. Oszacuj ile wynosi czas narastania dla poszczególnych sygnałów. Jest on definiowany jako czas który upłynie od przekroczenia progu 10% napięcia nominalnego (tutaj 3.3V) do przekroczenia progu 90%. Zwróć uwagę na różnice w czasie propagacji ze stanu niskiego do wysokiego i na odwrót dla kanału ch3. Czy czas propagacji dla tak zniekształconych sygnałów może być wiarygodny? Co jest przyczyną zniekształceń. W jaki sposób zniekształcenia mogą być zmniejszone. Spróbuj dla kanału ch2 użyć dużo dłuższego kabla łączącego układ FPGA i oscyloskop a następnie użyć sondy oscyloskopowej z podziałem 1:10. Zaobserwuj różnice. 6. Czasy propagacji sygnału zewnętrznego Zaprogramuj układ FPGA plikiem bramki_propag_ext.bit. Ustaw przełącznik SW0 w pozycję Lo oraz S1 w pozycję OFF. Schemat połączeń jest podany na poniższym rysunku − należy połączyć kablem BNC za pomocą rozdzielacza BNC wyjście kanały ch1 z wejściem kanału ch2 i dodatkowo połącz je z oscyloskopem − najlepiej jak rozdzielacz jest umiejscowiony przy oscyloskopie): Płyta PCB FPGA ch1 ch2 ch3 Rozdzielacz BNC Do oscyloskopu ch4 Zaobserwuj przebieg na kanale ch4. Co on przedstawia: jak powinien wyglądać w teorii a jak wygląda w praktyce. Jak nazywa się to zjawisko? A co się stanie jak połączy się wejście z wyjście inwertera? W tym celu przełącz przełącznik SW0 w stan Hi, schemat konfiguracji układu FPGA dla tego ustawienia przełącznika przedstawia poniższy rysunek. Płyta FPGA ch1 ch2 ch3 ch4 S1 Do oscyloskopu 3 W ogólnym przypadku odpowiedź nie jest jednoznaczna − w tym przypadku stosujemy bardzo długie połączenia co ułatwia otrzymanie oscylacji. Jeśli nie powstaną oscylacje to jaki otrzymamy stan? Aby lepiej zaobserwować przebiegi na oscyloskopie można przejść w tryb rejestracji pojedynczego przebiegu (przycisk: RUN/STOP). A co się stanie jak dodatkowo dołączy się kondensator (przełącznik S1 w stan ON)? 7. Bramka Open Drain Zaprogramuj układ FPGA plikiem bramki_mux_od.bit. Schemat wewnętrzny konfiguracji jest przedstawiony na poniższym rysunku (przełącznik S1 ustaw w stan OFF). Użyte bramki są typu Open Drain (OD). Jaką logikę można uzyskać z bramkami OD. W sprawozdaniu napisz jak przy użyciu tych bramek można uzyskać multiplekser, czy będzie on szybko działał? Płyta FPGA OD OD ch1 VDD ch2 ch3 ch4 Do oscyloskopu 8. Łączenie bramek trójstanowych Zaprogramuj układ FPGA plikiem bramki_mux_ts.bit. Schemat połączeń został przedstawiony na poniższym rysunku. W momencie kiedy wejście T jest w stanie '1' bramka znajduje się w stanie wysokiej impedancji. Opisz 4 różne stany zaobserwowane na oscyloskopie. W sprawozdaniu porównaj szybkość bramek trójstanowych i Open Drain. Uwaga: w celu lepszego zilustrowania co się dzieje w stanie wysokiej impedancji użyto rezystora podciągającego. Płyta FPGA GND T T VDD ch1 ch2 ch3 ch4 Vdd Do oscyloskopu 9. Realizacja funkcji logicznej za pomocą multipleksera Zaprogramuj układ FPGA plikiem: bramki_mux_logic.bit. Schemat układu został przedstawiony na poniższym rysunku (należy podłączyć wszystkie kanały do oscyloskopu). Za pomocą multipleksera (podobnie jak za pomocą pamięci LUT) można zrealizować dowolną zaprogramowaną przez użytkownika funkcję y = f(sel). Należy na wejścia wyboru (sel) podać wartości wejściowe, a na wejścia multipleksera odpowiednie wartości funkcji. Przedstawia to poniższy rysunek. Wejścia wyboru multipleksera (sel) są sterowane kolejnymi stanami od 0 do 7 z licznika. Odpowiednio ustawiając stan przełączników SW0-SW7 możemy zrealizować dowolną funkcję logiczną trzech zmiennych wejściowych ch1, ch2, ch3 (sygnał wejściowy sel). Ustaw synchronizację oscyloskopu na 4 kanał ch3. Na przykład ustawiając SW0 w pozycji Hi oraz SW1−SW7 w pozycji Lo otrzymujemy funkcję: NOR(ch1, ch2, ch3). Odpowiednio ustawiając stan SW0-SW7 zaprogramuj następującą logikę: ch1 xor ch2 xor ch3, oraz inną logikę podaną przez prowadzącego. GND Płyta VDD GND SW0 FPGA VDD SW7 0 7 mux ch1 ch2 ch3 ch4 Do oscyloskopu 5