Programowanie Układów Logicznych kod kursu: ETD6203. VHDL, ISE WebPACK, Plan Ahead, Impact W

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

Modelowanie złożonych układów cyfrowych (1)

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL)

Systemy Czasu Rzeczywistego FPGA

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

Projektowanie hierarchiczne Mariusz Rawski

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

Projektowanie w VHDL

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Sposoby projektowania systemów w cyfrowych

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

Układy reprogramowalne i SoC Język VHDL (część 4)

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

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.

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Systemy Czasu Rzeczywistego FPGA

Projektowanie automatów z użyciem VHDL

Systemy Czasu Rzeczywistego FPGA

Języki opisu sprzętu VHDL Mariusz Rawski

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

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

Specyfika projektowania Mariusz Rawski

Programowalne układy logiczne

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1

Projekt prostego procesora

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.

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.

Krótkie wprowadzenie do ModelSim i Quartus2

Język opisu sprzętu VHDL

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

XC4000: LUT jako ROM Układy Cyfrowe i Systemy Wbudowane 2 Układy FPGA cz. 2 ROM32X1 VHDL inference example ROM 16x2b type

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Instrukcje sekwencyjne

Układy reprogramowalne i SoC Język VHDL (część 2)

Projektowanie Urządzeń Cyfrowych

Język VHDL podstawy Mariusz Rawski

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

Sterowniki Programowalne (SP)

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

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

Programowalne układy logiczne

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

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Projektowanie Scalonych Systemów Wbudowanych VERILOG

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

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

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN

mgr inż. Tadeusz Andrzejewski JTAG Joint Test Action Group

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia

Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

VHDL cz.1. Rafał Walkowiak IIn PP Wer

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Układy reprogramowalne i SoC Język VHDL (część 3)

MMfpga01. MMfpga11. Instrukcja konfiguracji środowiska, przykładowy projekt oraz programowanie układu

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

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

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Synteza logiczna. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

Synteza strukturalna

Architektura komputerów Wykład 2

Quartus. Rafał Walkowiak IIn PP Wer

Układy FPGA w przykładach, część 2

PUCY Kolos 2: Reloaded

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Systemy Czasu Rzeczywistego FPGA

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2014 Katedra Elektroniki AGH 2

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

Szkolenia specjalistyczne

Systemy na Chipie. Robert Czerwiński

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD

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

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

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

CZ1. Optymalizacja funkcji przełączających

VHDL. Behawioralny Strukturalny Czasowy. Poziom RTL

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench)

Programowalne układy logiczne

Technika Mikroprocesorowa

Wygląd okna aplikacji Project Navigator.

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

Kodery, dekodery, transkodery Synteza sprzętu przy pomocy VHDL

Projektowanie hierarchiczne Mariusz Rawski

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

Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe. Platforma sprzętowa. Rajda & Kasperek 2014 Katedra Elektroniki AGH 1

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

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

VHDL cz.1. Rafał Walkowiak IIn PP Wer

Transkrypt:

Programowanie Układów Logicznych kod kursu: ETD6203 VHDL, ISE WebPACK, Plan Ahead, Impact W2 28.02.2018 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Plan wykładu 1 2 3 4 5 6 VHDL powtórka ważniejszych zagadnień Architektura układów FPGA Ise WebPACK Plan Ahead Impact Podsumowanie 2

Z poprzedniego wykładu 1. Ogólna klasyfikacja układów programowalnych. 2. Wskazać zasadnicze różnice między układami PLA oraz PAL. 3. Który typ połączenia traktów zapewnia największą niezawodność? 4. Wskazać różnicę między mikrokontrolerem a procesorem. 3

Geneza języka VHDL VHDL (VHSIC Hardware Descrption Language, gdzie VHSIC - Very High Speed Integrated Circuit Symulacja układów cyfrowych projekt Departamentu Obrony USA Rok 1987 zatwierdzony standard IEEE1076 (Institute of Electrical and Electronics Engineers) Standard języka VHDL był rewidowany trzykrotnie: w latach 1993, 2002 i 2008. Wersja z roku 1993 (IEEE 1076-1993) jest obecnie najpopularniejsza - większość narzędzi jest zgodna z tym standardem. Z początkiem roku 2009 opublikowano najnowszą wersję standardu: IEEE 1076-2008. 4

Cechy języka VHDL równoległość, strukturalność oznaczająca możliwość hierarchicznego opisywania projektów. "redesign" - typowy projekt cyfrowego układu elektronicznego zawiera w sobie do 80% fragmentów z innych projektów, możliwość wykonywania instrukcji sekwencyjnie, zdolność do jednolitego opisywania struktury, możliwość symulowania projektowanych układów; możliwość tworzenia sekwencji sygnałów testujących, możliwość wbudowania sygnałów testowych w projekt, "samodokumentowanie" osiągnięte dzięki prostej i przejrzystej strukturze, modelowanie układów z uwzględnieniem upływającego czasu. 5

VHDL - kodowanie 6 Język VHDL nie interpretuje wielkości liter. Elementy języka posiadają takie samo znaczenie niezależnie od tego czy pisane są małymi czy dużymi literami. Znakiem komentarze jest podwójny ciąg znaków minus: '--'. Pojawienie się tego ciągu w programie powoduje, że pozostała część linii programu traktowana jest jako komentarz. Typowym rozszerzeniem plików zawierających programy w języku VHDL jest *.vhd. Kompilatory języka na podstawie plików źródłowych tworzą pliki binarne, które mogą służyć do symulacji lub programowania układów programowalnych. Najmniejsza kompilowalna jednostka nosi nazwę projektu. VHDL traktuje wektor jako zbiór elementów tego samego typu, zgrupowanych razem dla wygody. Wektor (np. bitów) nie jest równoważny żadnej liczbie. Dlatego nie można wykonywać na wektorze bitów operacji arytmetycznych, a operacje relacyjne mają sens tylko wówczas gdy wektory są tej samej długości.

Słowa kluczowe, identyfikatory, obiekty danych (zastrzeżone) 7 abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant disconnect downto else elsif end entity exit file for function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process pure range record register reject return rol ror select severity signal shared sla sli sra srl subtype then to transport type unaffected units until use variable wait when while with xnor xor

8 VHDL poziom abstrakcji

Poziom abstrakcji diagram Y Reprezentacja funkcjonalna algorytmy operacje przesłań międzyrejestrowych równania Boolowskie równania różniczkowe Reprezentacja strukturalna procesor, pamięć, interfejs sumator, rejestr, multiplekser bramki, przerzutniki tranzystory, rezystory, kondensatory rozkład modułów IP rozkład tranzystorów 9 rozkład bloków funkcjonalnych Reprezentacja fizyczna rozkład komórek

VHDL logika wielowartościowa 10 Logika wielowartościowa posiada więcej typów niż tylko 0 i 1 logiczne. Pakiet Std_Logic_1164 wchodzący w skład języka VHDL zawiera definicję typów std_logic (typ "resolved") oraz std_ulogic (typ "unresolved") o podanych wyżej wartościach.

11 Operatory

12 Operatory przesunięć

Operatory W wypadku równoprawnych operacji wykonywanie odbywa się od lewej do prawej. a + b 1 > c or a < d Wykorzystując nawiasy można ustalić kolejność wykonywania operacji. (a and b) or (a and d) 13

Wektory Wektory są jednowymiarowymi tablicami: signal x : std_logic_vector (7 downto 0); x <= "11001010"; Powyższa linia jest równoważna z zapisem: x(7) <= '1'; x(6) <= '1'; x(5) <= '0'; x(4) <= '0'; x(3) <= '1'; x(2) <= '0'; x(1) <= '1'; x(0) <= '0'; signal y : std_logic_vector (0 to 7); 14 dla wektora x najbardziej znaczący bit MSB ma indeks 7 najmniej 0, dla wektora y najbardziej znaczący bit MSB ma indeks 0 najmniej 7. Możliwy jest dostęp do poszczególnych elementów: - x(7) najbardziej znaczący bit MSB, - x (3 downto 0) najmłodsze 4 bity

Układy 15 KOMBINACYJNE logika jest logiką kombinacyjna jeśli wartość wyjść w danej chwili zależy wyłącznie od wartości wejść w danej chwili, układ kombinacyjny nie posiada wewnętrznej pamięci ani pętli sprzężenia zwrotnego, przykładami funkcji kombinacyjnych są: dekodery, multipleksery, sumatory SEKWENCYJNE stan wyjść y zależy od stanu wejść x oraz od poprzedniego stanu, zwanego stanem wewnętrznym, pamiętanego w zespole rejestrów, synchroniczne, zmiana stanu podyktowana sygnałem zegara, asynchroniczne, zmiana stanu następuję natychmiast, podatne na zjawisko hazardu i wyścigu, przykład: przerzutniki, rejestry, liczniki

Instrukcje WSPÓŁBIERZNE (równoległe) SEKWENCYJNE (krokowe) Zachowanie układu jest niezależne od kolejności instrukcji przyporządkowania sygnałów. Stosowane w specyfikacji typu data flow description Stosowane w specyfikacji behawioralnej, przede wszystkim w procesach. Porządek zapisu instrukcji sekwencyjnych zmienia działanie układu. - instrukcje przypisanie sygnałów, - realizacja procesu, - konkretyzacja składnik, - instrukcja with select, - instrukcja for, - instrukcja oczekiwania, - instrukcja warunkowa if, - instrukcja wyboru case, - instrukcja pętli while loop. 16

Sygnał zegarowy if (clk'event and clk = '1') then if rising_edge(clk) then if (clk'event and clk = '0') then if falling_edge(clk) then 17

18 Struktura programu VHDL

Deklaracje bibliotek library IEEE; use IEEE.std_logic_1164.all; deklaracja użycia biblioteki IEEE, - uczyń bibliotekę dostępną użycie pakietu std_logic_1164 all użycie wszystkich składników pakietu Inne często używane biblioteki: IEEE.std_logic_signed.all; IEEE.std_logic_unsigned.all; IEEE.std_logic_arith.all; IEEE.numeric_std.all; std.text_io.all; 19

Definicja jednostki projektowej entity multiplexer is port ( s : in std_logic; x0, x1 : in std_logic_vector (7 downto 0); y : out std_logic_vector (7 downto 0) ); end entity multiplexer; 20 std_logic - podstawowy typ opisujący sygnał logiczny ( 0 i 1 ), std_logic_vector (7 downto 0) - wektorowa wersja sygnału std_logic pozwalająca opisywać np. magistrale, podany zakres indeksów wektora ma 8-bitów, in, out, inout, buffer, linkage - definicja wejść oraz wyjść, port odnosi się do końcówek I/O układu programowalnego. Każdy projekt musi składać się z co najmniej jednej jednostki projektowej (entity), Jednostek może być więcej zawsze jednak jest tylko jedna jednostka nadrzędna (top-level), znajdująca się na szczycie hierarchii.

Definicja architektury architecture data_flow of multiplexer is begin y <= x1 when ( s = '1' ) else x0; end architecture data_flow; nazwa architektury często wiele mówi o poziomie abstrakcji realizacji danej architektury ciało architektury, - instrukcje przypisania, - procesy, komponenty 21 Możliwe jest zdefiniowanie kilku architektur dla każdej jednostki projektowej. O tym, która z tych architektur jest następnie podana do syntezy czy symulacji decydują tzw. konfiguracje. Ciało architektury zawiera opis sprzętu, który ma sens instrukcji realizowanych współbieżnie. Kolejność umieszczenia tych instrukcji w ciele nie ma znaczenia.

Półsumator - realizacja library IEEE; use IEEE.std_logic_1164.all; entity HALF_ADDER is port ( a, b : in std_logic; sum, carry : out std_logic ); end entity HALF_ADDER; Realizacja półsumatora architecture Behavioral of HALF_ADDER is begin sum <= a xor b; carry <= a and b; end architecture Behavioral; 22

Licznik z resetem asynch. 23 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity LED_blink is Port ( ); end LED_blink; CLK_50MHz: in std_logic; LED : out std_logic architecture Behavioral of LED_blink is signal Counter: std_logic_vector (24 downto 0); signal CLK_1Hz: std_logic := '0'; begin Prescaler: process (CLK_50MHz) is begin if rising_edge(clk_50mhz) then if Counter < "111111111111111111111111" then Counter <= Counter + 1; else CLK_1Hz <= not CLK_1Hz; Counter <=(others => '0'); end if; end if; end process Prescaler; LED <= CLK_1Hz; end Behavioral; a co z resetem? Prescaler: process (CLK_50MHz, nreset) is begin if (nreset = '0') then Counter <=(others => '0'); CLK_1Hz <= '0 ; elseif rising_edge(clk_50mhz) then if Counter < "111111111111111111111111" then Counter <= Counter + 1; else CLK_1Hz <= not CLK_1Hz; Counter <=(others => '0'); end if; end if; end process Prescaler; LED <= CLK_1Hz; end Behavioral; Jeżeli model zawiera wiele procesów, wszystkie są wykonywane współbieżnie Instrukcje współbieżne poza procesami są również wykonywane współbieżnie Instrukcje wewnątrz procesu wykonywane sekwencyjnie

Zalecenia Każda instrukcja if jest kodowana jako enkoder priorytetowy. Zagnieżdżanie instrukcji if zwiększa zajętość zasobów oraz zwiększa opóźnienia. Zagnieżdżanie powinno być zastępowane instrukcją case. Instrukcja case nie koduje warunków priorytetowo. Rejestry typu Latch, powstają najczęściej wskutek występowania niekompletnych wyrażeń warunkowych. 24 LATCH: process (GATE, DATA) begin if (GATE = '1' ) then Q <= DATA; end if end process D_REG: process (CLK, DATA) begin if (CLK event and CLK = '1' ) then Q <= DATA; end if end process

Zalecenia Każda instrukcja if jest kodowana jako enkoder priorytetowy. Zagnieżdżanie instrukcji if zwiększa zajętość zasobów oraz zwiększa opóźnienia. Zagnieżdżanie powinno być zastępowane instrukcją case. Instrukcja case nie koduje warunków priorytetowo. Rejestry typu Latch, powstają najczęściej wskutek występowania niekompletnych wyrażeń warunkowych. 25 LATCH: process (GATE, DATA) begin if (GATE = '1' ) then Q <= DATA; end if ; end process; D_REG: process (CLK, DATA) begin if (CLK event and CLK = '1' ) then Q <= DATA; else Q <= 0 ; end if; end process;

Clock Enable i Gated Clocks Zaleca się stosowanie globalnych sygnałów zegarowych jako wejść zegarowych przerzutników, - jeżeli nie jest to możliwe i sygnał zegarowy tworzony jest jako funkcja innych sygnałów wykorzystuje się sygnały Clock Enable Tak nie robimy!!! 26 GATECLK <= (IN1 and IN2 and CLK); GET_PR: process (GATECLK, DATA, LOAD) begin if (GATECLK event and GATECLK = '1' ) then if (LOAD = '1' ) then OUT <= DATA; end if end if end process ENABLE <= (IN1 and IN2 and LOAD); EN_PR: process (ENABLE, DATA, CLK) begin if (CLK event and CLK = '1' ) then if (ENABLE = '1' ) then OUT <= DATA; end if end if end process

FPGA od środka Szkic architektury układów FPGA PROCESOR, MIKROKONTROLER 27 FPGA

28 FPGA od środka

29 FPGA od środka

CLB a pamięć Skąd te liczby. ktoś się orientuje? LUT: 8 ROM: 8LUT * 16 bitów = 128 bitów Single-RAM: 4LUT * 16 bitów = 64 bity Dual-RAM: 2LUT * 16 bitów = 32 bity 30

Realizacja w FPGA LUT Look-Up Table, tablica wartości funkcji, oraz multiplekser wielowejściowy jako blok logiczny 31 Uproszczona struktura komórki programowalnej - LUT Sposób dołączenie LUT-ów do traktów połączeniowych

LUT tablica wartości funkcji 32 Uproszczona struktura komórki programowalnej - LUT

33 źródło: http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Schemat blokowy komórki SLICEM z uwzględnieniem LUT

34

Architektura bloku logicznego Komórka zawiera kilka elementów: kombinacyjnych, sekwencyjnych (przerzutniki), pamięć konfigurowalną (RAM, ROM, FIFO), Specjalizowane funkcje Złożoność bloku: od komórki do matrycy komórek 35

Oznaczenia układów Xilinx Kod maski Kod wykonania Typ układu Obudowa Klasa szybkości Zakres temperatur Proces technologiczny Kod daty Kod partii Pin 1 znacznik 36

Zestawienie parametrów Zestawienie najważniejszych parametrów układów z rodziny Spartan 3 37

Xilinx Ise WebPACK Zintegrowane środowisko Xilinx Ise WebPACK: - implementacja układów cyfrowych, - oraz złożonych funkcjonalności. 38

Xilinx Ise WebPACK Tworzenie opisu sprzętu na podstawie: - VHDL, - Verilog, - Schematu. Testowanie funkcjonalności: - Test Bench Łączenie funkcjonalności: - pakiety, - moduły - systemy wbudowane np. PicoBlaze 39

Xilinx ISE we/wy - Plan Ahead Processes User Constraints I/O Pin Planning 40 Zintegrowane środowisko projektowania, planowania rozkładu pinów, analizy czasowej, lokowania zasobów

Plan Ahead - I/O Planner View 41 Rozmieszczenie pinów I/O układu, - odwzorowanie rzeczywiste Widok wnętrza struktury układu FPGA, zasoby

Sygnał GND Zasilanie VCC Pin ogólnego przeznaczenia z możliwością dystrybucji sygnału zegarowego Pin ogólnego przeznaczenia Pin konfiguracyjny Pin nie podłączony do struktury wewnętrznej Pin interfejsu JTAG (TMS, TDO, TCK, TDI) Znaczenie symboli pinów I/O 42 Dystrybucja zegara: dedykowane linie i wejścia układu do dystrybucji szybkich sygnałów zegarowych zapewniające minimalne nierównomierności czasów pojawienie się zboczy zegara. Możliwy jest dostęp do linii zegarowych poprzez globalne bufory z wyprowadzeń układu lub z linii połączeniowych ogólnego przeznaczenia

Plan Ahead RTL diagram 43 Symboliczna reprezentacja zawartości struktury programowalnej

Plan Ahead konfiguracja I/O Możliwe opcje konfiguracji portów, linii wejścia/wyjścia 44

Poziomy logiczne I/O Prąd wyjściowy dla określonych standardów 45

Stany I/O Schemat połączeń wewnętrznych w obrębie portów wejścia/wyjścia Pin wejścia/wyjścia - możliwość komunikacji ze światem zewnętrznym stan pływający weak keeper sterowalny pull up sterowalny pull down 46 Możliwe opcje konfiguracji portów, linii wejścia/wyjścia

Opcje we/wy - Netlista 47 Wymagania dla projektu są zadawane w pliku UCF (User Constraints File): - wyprowadzenia układu (który sygnał na której końcówce), - wymagania czasowe (częstotliwość zegara, maksymalne opóźnienia), - wymagania na rozmieszczenie komponentów.

Opcje we/wy - Netlista Tworzenie netlisty: sieć połączeń wewnętrznych 48 NET sygnał, LOC lokalizacja wewnątrz układu, IOSTANDARD standard sygnału wyjściowego itp. PULLUP, PULDOWN - sposób podciągania we/wy do potencjału

Xilinx ISE programowanie - Impact Programowanie: polega na zapisie tzw. bitstream a do pamięci konfiguracyjnej układu FPGA, tryby konfiguracyjne: slave serial, master serial, slave parallel oraz boundary-scan, boundary-scan umożliwia skanowanie wszystkich we/wy układu, odczyt konfiguracji z pamięci FLASH lub PROM, wykorzystanie protokołu JTAG, IEEE 1149 readback możliwość odczytania danych konfiguracyjnych układu wraz ze stanem wszystkich przerzutników, pamięci RAM, LUT 49

Xilinx ISE programowanie - JTAG 50 TDI Test Data Input - szeregowe wejście danych do testowania i konfiguracji TMS Test Mode Select - wejście sterujące pracą automatu TAP TCK Test Clock Input - wejście sygnału zegarowego TRST Test Reset - wejście asynchroniczne sygnału zerującego automat TAP TDO Test Data Output - szeregowe wyjście danych z rejestru BST lub pamięci konfiguracji

51 Operatory przesunięć - rozwiązanie

Przykładowe pytania 1. Na co wpływają priorytety operatorów 2. Znaczenie skrótu LUT 3. Różnica w układach sekwencyjnych a kombinacyjnych 4. Realizacja współbieżna a sekwencyjna 5. Poziomy sygnałów wyjściowych 6. Zadania NETLISTY 7. Konfiguracja rzeczywistego układu FPGA 8. Wyjaśnij znaczenie pojęcia REDBACK 52 9. Wyjaśnij znaczenie pojęcia Boundary-Scan