Programowalne układy logiczne

Podobne dokumenty
Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA

Specyfika projektowania Mariusz Rawski

Programowalne układy logiczne

Programowalne układy logiczne

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

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Systemy Czasu Rzeczywistego FPGA

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

Projektowanie hierarchiczne Mariusz Rawski

Projektowanie automatów z użyciem VHDL

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

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

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

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

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

RODZAJE PAMIĘCI RAM. Cz. 1

Programowalne układy logiczne

Programowalne układy logiczne

Projektowanie Urządzeń Cyfrowych

Pod o z d ia i ł a r yn y k n u k u ( 2004 r.). źródło: Gartner 3

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

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

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

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

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

Przestrzeń pamięci. Układy dekoderów adresowych

Projekt prostego procesora

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

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Krótkie wprowadzenie do ModelSim i Quartus2

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

Obsługa kart pamięci Flash za pomocą mikrokontrolerów, część 1

Programowalne układy logiczne

Architektura komputerów

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

Architektura komputerów

Sposoby projektowania systemów w cyfrowych

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

DOKUMENTACJA PROJEKTU

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

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Sprawdzian test egzaminacyjny 2 GRUPA I

Błąd pamięci karty graficznej lub Uszkodzona lub źle podpięta karta graficzna

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

URZĄDZENIA WEJŚCIA-WYJŚCIA

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

Architektura systemów komputerowych. dr Artur Bartoszewski

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

PUCY Kolos 2: Reloaded

System mikroprocesorowy i peryferia. Dariusz Chaberski

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

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

Opis przedmiotu zamówienia CZĘŚĆ 1

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

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.

Wykład Mikrosystemy Elektroniczne 1

Pamięć operacyjna komputera

SPIS TREŚCI. 2. Arytmetyka rozproszona Symulacja układu programowalnego Realizacja algorytmu cyfrowego filtrowania

WPROWADZENIE Mikrosterownik mikrokontrolery

Układy wejścia/wyjścia

Technika Mikroprocesorowa

Architektura komputera

Karta sieciowa, 10/100/1000Mbit Dopuszcza się możliwość stosowania kart sieciowych zintegrowanych z płyta główną 8. Nagrywarka DVD+-RW DL SATA

Programowalne Układy Cyfrowe Laboratorium

KOMPUTER. Zestawy komputerowe podstawowe wiadomości

Technika mikroprocesorowa. Konsola do gier

Budowa pamięci RAM Parametry: tcl, trcd, trp, tras, tcr występują w specyfikacjach poszczególnych pamięci DRAM. Czym mniejsze są wartości tych

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

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

Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska,

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

Jednostka centralna. Miejsca na napędy 5,25 :CD-ROM, DVD. Miejsca na napędy 3,5 : stacja dyskietek

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

27. oc, 2o/p. ' ",r GIl!. Strona 1 DZIUI Za.F.H;Wlen Publtoz ch STA~Y SPECJAL TA

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

PUCY - Etap II - mikrokontroler 8-bitowy

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

Architektura komputerów

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

Sprawdzian test egzaminacyjny GRUPA I

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Linia SDA służy do dwukierunkowego. przesyłania danych zawsze inicjuje master. Slave nie może zainicjować

PRUS. projekt dokumentacja końcowa

Ogólne informacje. cią pracy, wielkości wyświetlan. cią obrazu, wietlaną rozdzielczości. częstotliwo. wieŝania obrazu.

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

Chipset i magistrala Chipset Mostek północny (ang. Northbridge) Mostek południowy (ang. Southbridge) -

KURS Hexcalcul (2) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym

OFERTA. Załącznik nr 1 do zapytania ofertowego: Wzór oferty. Dane oferenta. Pełna nazwa oferenta: Adres:. REGON:.. Tel./fax.: .

LEKCJA TEMAT: Zasada działania komputera.

Lp. Nazwa Parametry techniczne

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

Bezpieczeństwo informacji oparte o kryptografię kwantową

Opis przedmiotu zamówienia

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

Bajt (Byte) - najmniejsza adresowalna jednostka informacji pamięci komputerowej, z bitów. Oznaczana jest literą B.

Transkrypt:

Programowalne układy logiczne Worek różności jak dobrać się do gotowców w Spartanach? Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 12 kwietnia 2011

Spis treści Wbudowane układy mnożące Pamięć RAM Komunikacja z komputerem przez USB Dodatek: Obsługa interfejsu VGA

Chcielibyście pomnożyć dwie liczby? 1. Wersja dla wytrwałych. Spartan 3E-100 ma 4 układy mnożące, 18-bitowe. architecture foo of bar is component MULT18X18 port ( P : out STD_LOGIC_VECTOR (35 downto 0); A : in STD_LOGIC_VECTOR (17 downto 0); B : in STD_LOGIC_VECTOR (17 downto 0)); end component; begin my_nice_multiplier : MULT18X18 port map (P => wynik, A => mnozna, B => mnoznik); end foo;

Chcielibyście pomnożyć dwie liczby? 2. Wersja intuicyjna. architecture foo of bar is signal a: unsigned(6 downto 0); signal b: unsigned(7 downto 0); signal p: unsigned(a length+b length-1 downto 0); begin p <= a * b; end foo; Potem w logach można odszukać takie teksty: Found 6x -bit multiplier for signal <sqr_out_full>. Number of MULT18X18SIOs: 2 out of 4 50%

Chcielibyście pomnożyć dwie liczby? 3. Wersja dla odważnych. Project New Source IP (Core Generator) Multiplier

Chcielibyście pomnożyć dwie liczby? 3. Wersja dla odważnych. Project New Source IP (Core Generator) Multiplier

Chcielibyście pomnożyć dwie liczby? 3. Wersja dla odważnych. Project New Source IP (Core Generator) Multiplier

Chcielibyście pomnożyć dwie liczby? 3. Wersja dla odważnych. Project New Source IP (Core Generator) Multiplier Po co ta wersja? Jawny wybór technologii realizacji układu mnożącego. Możliwość stworzenia układu synchronicznego, potokowego, o dużej maksymalnej częstotliwości taktowania (kosztem kilkucyklowych opóźnień). Możliwość wyprowadzenia jedynie części wyniku, poprawnie zaokrąglonej. A może od razu chcielibyśmy mnożyć liczby zespolone? To też przejdzie, tylko trzeba wybrać opcję Complex Multiplier z listy dostępnych IP Core ów.

Interfejs pamięci Zadanie: jak powinien wyglądać interfejs do pamięci RAM?

Interfejs pamięci Zazwyczaj mamy: A k,..., A 0 szynę adresową D n,..., D 0 trójstanową szynę danych WE sygnał zapisu (write enable) OE sygnał odczytu (output enable)

Interfejs pamięci Zazwyczaj mamy: A k,..., A 0 szynę adresową D n,..., D 0 trójstanową szynę danych WE sygnał zapisu (write enable) OE sygnał odczytu (output enable) Zasada działania: D <= memory(a) when noe = 0 else (others => Z ); if nwe = 0 then memory(a) := D; Zapis może być wyzwalany zboczem WE, lecz najczęściej jest on wyzwalany stanem niskim utrzymywanym przez czas ustalony w specyfikacji. Nie ma tutaj jawnego zegara.

Łączenie kości pamięci CE sygnał aktywacji układu (Chip Enable, Chip Select) D <= memory(a) when noe = 0 and nce = 0 else (others => Z ); if nwe = 0 and nce = 0 then memory(a) := D;

Łączenie kości pamięci CE sygnał aktywacji układu (Chip Enable, Chip Select) D <= memory(a) when noe = 0 and nce = 0 else (others => Z ); if nwe = 0 and nce = 0 then memory(a) := D; A 9...8 0 1 2 3 CE CE CE CE 256B RAM 256B RAM 256B RAM 256B RAM A 7...0, D, OE, WE A 7...0, D, OE, WE A 7...0, D, OE, WE A 7...0, D, OE, WE A 7...0, D, OE, WE

Spotykane odstępstwa Zamiast OE oraz WE jeden sygnał WR: noe <= WR; nwe <= not WR; Wówczas sterowanie odbywa się przez sygnał CE.

Spotykane odstępstwa Brak osobnej linii adresowej, za to rejestr adresu i pojedynczy sygnał A/D. Próba zapisu do pamięci podczas gdy A/D jest aktywny powoduje zapamiętanie wartości z linii danych do rejestru adresu. Wariacja nt. powyższego: zamiast A/D oraz WE mamy AStrobe oraz DStrobe, powodujące (na zboczu opadającym) odpowiednio wybranie adresu do manipulacji oraz wykonanie zapisu pod bieżącym adresem. Sygnał WAIT (lub BSY, RDY ) generowany przez układ pamięci, oznaczający zakaz zmiany stanu WE względnie AStrobe oraz DStrobe.

Pamięć w FPGA Project New Source IP (Core Generator) pamięć blokowa dużo, w jednym miejscu, pamięć dwuportowa (Dual-port RAM), tzn. posiadająca dwa niezależnie taktowane interfejsy, przechowywanie danych, np. pamięć wideo, kolejki FIFO. pamięć rozproszona mało, w wielu miejscach, przechowywanie stałych, np. funkcji, macierzy przekształceń, często spotykane w filtrach cyfrowych, realizowana przez użycie niewykorzystanych kawałków kombinatorycznych w normalnych elementach (slice ach) FPGA.

Wszystko jest pamięcią Wystarczy zmienić terminologię: pamięć RAM dowolne urządzenie adres numer rejestru zapis do pamięci zmiana wartości rejestru odczyt z pamięci odczyt wartości rejestru

Wszystko jest pamięcią Wystarczy zmienić terminologię: pamięć RAM dowolne urządzenie adres numer rejestru zapis do pamięci zmiana wartości rejestru odczyt z pamięci odczyt wartości rejestru Kto pamięta szynę ISA? CLK, RST, A 23,...,0 D 15,...,0 MEMRD, MEMWR, IORD, IOWR, IORDY. A na niej: klawiatura, mysz, zegar systemowy, koprocesor matematyczny, kontroler przerwań, kontroler DMA, dysk twardy, stacje dyskietek, porty szeregowe, równoległe, karta sieciowa, graficzna, nawet VGA!

Komunikacja z komputerem entity adeptio is Port ( EppAstb: in std_logic; EppDstb: in std_logic; EppWr : in std_logic; EppDB : inout std_logic_vector(7 downto 0); EppWait: out std_logic; ); end adeptio; Do tego oczywiście potrzeba odpowiedniego pliku.ucf (do wzięcia ze strony przedmiotu lub ze strony producenta płytki) oraz programu Adept (jest też dostępne SDK).

Dodatek obsługa VGA http://www.javiervalcarce.eu/wiki/vga_video_signal_ Format_and_Timing_Specifications Mamy na płytce standardowy interfejs VGA: entity demo is Port ( hsync: out std_logic; vsync: out std_logic; vout: out std_logic_vector(7 downto 0); -- RRRGGGBB ); end demo; Zegar nie jest wyprowadzany na zewnątrz. Monitor sam musi go odzyskać z odbieranego sygnału. Dlatego też tyle trwa zanim jakieś urządzenie załapie, że dostało obraz.

Dodatek obsługa VGA Potrzebujemy jeszcze precyzyjnie dobranego zegara VGA. Dostępny na płytce jest zbyt niestabilny, ale możemy dołożyć odpowiedni układ, wkładając go w podstawkę wlutowaną na płytce. Do wygenerowania zegara 25MHz do obsługi wyświetlania w rozdzielczości 640 480 może się przydać IP Core Single DCM SP.

Demo.