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

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

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

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

Systemy Czasu Rzeczywistego FPGA

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

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

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. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Laboratorium przedmiotu Technika Cyfrowa

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

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

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

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Programowalne układy logiczne

Architektura komputerów

Temat: Pamięci. Programowalne struktury logiczne.

Tranzystor JFET i MOSFET zas. działania

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

ZL10PLD. Moduł dippld z układem XC3S200

Opis przedmiotu zamówienia CZĘŚĆ 1

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

Opis przedmiotu zamówienia

Technika Mikroprocesorowa

Siła (w) pamięci on-chip Implementacje pamięci w układach Cyclone IV firmy Altera

Programowalne układy logiczne

Systemy Czasu Rzeczywistego FPGA

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

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

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

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

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

Pamięci półprzewodnikowe na podstawie książki: Nowoczesne pamięci

Pamięci półprzewodnikowe

Programowalne układy logiczne

Programowalne układy logiczne

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

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

Systemy Czasu Rzeczywistego FPGA

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

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

Specyfika projektowania Mariusz Rawski

Metody optymalizacji soft-procesorów NIOS

Podstawy Informatyki Układ sterujący

Architektura komputerów

Systemy Czasu Rzeczywistego FPGA

PLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

System pamięci. Pamięć podręczna

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

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

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

REALIZACJA KONTROLERÓW

Programowalne Układy Cyfrowe Laboratorium

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

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

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Symulacja systemu z procesorem MicroBlaze w środowisku ActiveHDL

CZ1. Optymalizacja funkcji przełączających

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

RODZAJE PAMIĘCI RAM. Cz. 1

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Podstawy Informatyki JA-L i Pamięci

2. Architektura mikrokontrolerów PIC16F8x... 13

Szkolenia specjalistyczne

ARCHITEKTURA PROCESORA,

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

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Implementacja algorytmu szyfrującego

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

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

Implementacja Gigabitowego Ethernetu na układach FPGA dla eksperymentów fizycznych

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

Szczegółowy opis przedmiotu zamówienia. Część 1 - Laboratoryjny zestaw prototypowy

System mikroprocesorowy i peryferia. Dariusz Chaberski

Wykład II. Pamięci półprzewodnikowe. Studia Podyplomowe INFORMATYKA Architektura komputerów

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

Systemy wbudowane. Układy programowalne

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

napięcie-częstotliwość

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

Projekt prostego procesora

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Wykład II. Pamięci operacyjne. Studia stacjonarne Pedagogika Budowa i zasada działania komputera

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

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

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

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

Elektronika i techniki mikroprocesorowe

Architektura systemu komputerowego

Urządzenia wejścia-wyjścia

PUCY - Etap II - mikrokontroler 8-bitowy

Magistrala systemowa (System Bus)

Transkrypt:

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

Plan wykładu Pamięć w układach programowalnych Zasada działania, podział pamięci Miara pojemności pamięci Pamięć w układach SPARTAN Synteza a pamięć Core Generator

Z poprzedniego wykładu. Narysuj przebiegi wyjściowe enkodera obrotowego 2. Na czym polega multipleksowanie matrycy wyświetlaczy 7- segmentowych 3. Zapisz w VHDL kod, który w wyniku syntezy pozwoli uzyskać element pamiętający wyzwalany zboczem. 4. Zapisz w VHDL kod, który w wyniku syntezy pozwoli uzyskać zatrzask wyzwalany poziomem.

Ad.3 Zapisz w VHDL kod, który w wyniku syntezy pozwoli uzyskać element pamiętający wyzwalany zboczem. proces (clk) begin if (clk event and clk = ) then q < = d; end if; end process Aby w wyniku syntezy otrzymać przerzutnik (wyzwalany zboczem), na liście czułości procesu należy umieścić sygnał zegarowy, a w warunku if testować, czy nastąpiło zbocze narastające. 4 Aby powstał element pamiętający (przerzutnik D), należy wykorzystać instrukcję if, ale bez części else. W przypadku kiedy nie jest spełniony warunek występujący po if układ ma pamiętać poprzednią wartość q.

Ad.4 Zapisz w VHDL kod, który w wyniku syntezy pozwoli uzyskać zatrzask wyzwalany poziomem. proces (clk, d) begin if (clk = ) then q < = d; end if; end process 5 Aby otrzymać zatrzask (przerzutnik sterowany poziomem), należy dodać do listy czułości sygnał wejściowy i wyrzucić testowanie narastającego zbocza zegara

Pamięć podział Pamięć rozproszona distributed Dedykowane bloki Block RAM Różnica w sposobie dostępu do pamięci, zapis/odczyt 6

7 FPGA od środka cd

Jak działa pamięć 5 4 3 2 Dane odczytane 4 Linie adresowe 8

CLB a pamięć Skąd te liczby. pamiętamy? LUT: 8 ROM: 8LUT * 6 bitów = 28 bitów Single-RAM: 4LUT * 6 bitów = 64 bity Dual-RAM: 2LUT * 6 bitów = 32 bity 9

Pamięć podział Układy SPARTAN posiadają wewnętrzną, konfigurowalną pamięć SRAM, można ją zastosować jako: jedno lub dwuportową pamięć RAM, jedno lub dwuportową pamięć ROM, CAM (Content-Adressable Memory) pamięć skojarzeniową, kolejkę FIFO. Spartan 3E (XC3S5E) zawiera w swojej strukturze 2 bloków pamięci RAM po 8 Kb każda, co daje w sumie 36 Kb dostępnej pamięci.

Pamięć jednostki pojemności Podstawową jednostką pamięci jest: bajt (ang. byte) [B] bajt, inaczej oktet zawiera 8 bitów [b] Do oznaczenia większych ilości bajtów stosuje się przedrostki dziesiętne układu SI, będące wielokrotnościami liczby. [kb] kilobit 3 czyli bity [Mb] magabit 6 czyli 2 bitów [Gb] gigabit 9 czyli 3 bitów W informatyce oraz elektronice do oznaczenia większych ilości bajtów stosuje się przedrostki binarne wg. standardu *IEC 627-2, będące potęgami liczby 2 [Kib] kibibit 2 czyli 24 bity (24 ) [Mib] mebibit 2 2 czyli 48576 bitów (24 2 ) [Gib] gibibit 2 3 czyli 7374824 bitów (24 3 ) * IEC - International Electrotechnical Commission's standard

A po teorii praktyka a więc zaczynamy kb = Kib = 3 b = b 2 b = 24 b kb = KiB = 3 B = B = 8 b 2 B = 24 B = 892 b 2

Pamięć rozproszona - distributed Implementacja w CLB (Slice, LUT) Wady: Ograniczenie uniwersalnych zasobów logicznych 3

Pamięć organizacja w LUT - pamięć rozproszona (distributed RAM) Tablice LUT w blokach CLB można skonfigurować jako pamięć: ROM, 28 bitów, typ: single, dual port SRAM, 64 bitów, DualPortRAM, 2 6 bit. RAM 6 S LUT Ilość komórek organizacja RAM6 S D WE LUT = WCLK A A OUT A2 A3 4

LUT tablica wielu zmiennych - pamięć rozproszona (distributed RAM) zmienne funkcji 6 LUT tabl. wartości OUT 5 6 LUT Za pomocą 2 LUT: 32 x single-port RAM 6 x 2 single-port RAM 6 x dual-port RAM wartości wyjściowe funkcji

Top Level: Distributed ROM Top Level: Distributed ROM

Pamięć organizacja w LUT - pamięć rozproszona (distributed RAM) Kaskadowe łączenie LUT umożliwia rozszerzanie dostępnej przestrzeni: np. za pomocą 2-LUT można stworzyć: 32 x single-port RAM, 6 x 2 single-port RAM, 6 x dual-port RAM. RAM6 D LUT LUT = RAM32 S D WE WCLK A A A2 A3 A4 O lub RAM6 2S D D WE WCLK A A A2 A3 O O lub D WE WCLK A A A2 A3 DPRA DPRA DPRA2 SPO DPO DPRA3 7

ROM przykład implementacji w VHDL - pamięć rozproszona (distributed ROM) ROM 64 x 2S 8

ROM przykład implementacji w VHDL - pamięć rozproszona (distributed ROM) W wyniku syntezy utworzona została pamięć ROM 64 x 2 bitów 9

Generator sinusa z ROM - próbki w ROM prawie jak DDS B 8 6 4 2 Wartoś -2-4 -6-8 5 5 2 25 3 Numer próbki w pamięci 2

Single-Port and Dual-Port Distributed RAM zapis danej synchronizowany zegarem wymagany jeden cykl zegara, asynchroniczny odczyt - należy zapewnić odpowiedni czas na odczyt danej, dla pamięci typu Dual-Port, zapis i odczyt są niezależne od siebie

23 Pamięć organizacja w obrębie CLB - pamięć rozproszona (distributed RAM)

Bloki pamięci RAM Pamięci RAM (Random Access Memory) umożliwiają zarówno odczyt jak i zapis informacji w trakcie działania układu, Ilość cykli zapisu i odczytu jest praktycznie nieograniczona, Nadają się do przechowywania wszelkich informacji tymczasowych, podlegających ciągłym modyfikacjom, np. wyników obliczeń cząstkowych, Cechą charakterystyczną pamięci RAM jest ulotność zgromadzonych informacji po odłączeniu zasilania wbudowane matryce pamięci Block RAM lub EAB (Embedded Array Block), ich użycie zmniejsza zapotrzebowanie na komórki logiczne (LUT), niewykorzystane bloki EAB mogą zostać użyte jako pamięć ROM, realizująca złożone układy kombinacyjne

Pamięć Block RAM - BRAM-based Dedykowane bloki pamięci RAM, Możliwość tworzenia bloków o różnej pojemności, Krótkie czasy dostępu. 25 Spartan 3E (XC3S5E) zawiera w swojej strukturze 2 bloków pamięci RAM po 8 Kb każda, co daje w sumie 36 Kb dostępnej pamięci.

Pamięć Block RAM - organizacja - BRAM-based rozmiar: 6 Kib (2 KiB kibibyte ) organizacja (data width) liczba komórek pamięci k=24 26

27 RAM przykład implementacji w VHDL - BRAM-based

Pamięć Block RAM - organizacja - BRAM-based, Port Aspect Ratios 28 linie danych bity parzystości szerokość słowa oznaczenie liczba komórek linie danych organizacja linie parzystości Spartan 3E (XC3S5E) zawiera w swojej strukturze 2 bloków pamięci RAM po 8 Kb każda, co daje w sumie 36 Kb dostępnej pamięci. 8 Kb pod warunkiem korzystania z bitów parzystości

Dual Port Block RAM operacja transportu z portu do portu zapis odczyt zapis odczyt Port A Spartan-3 Dual-Port Block RAM Port B Block RAM 29 Operacja transferu standardowego dostępu zapis/odczyt Pamięć dwuportowa jednoczesny zapis i odczyt spod/do różnych adresów. Użytkownik decyduje o szerokości i głębokości pamięci Dwa niezależne interfejsy do tej samej pamięci

3 Pamięć Block RAM - organizacja - BRAM-based, konfiguracja

Dual Port Block RAM Możliwość konfiguracji szerokości magistral każdego z portów, Łatwa konwersja szerokości danych bez dodatkowej logiki 3

Content-addressable memory - pamięć skojarzeniowa 5 4 3 2 Dane wejściowe 3 Adres komórki Podajemy wartość danej, a pamięć CAM zwraca adres (lub adresy) pod którymi znajduje się podane dana, W konsekwencji należy przeszukać całą pamięć aby otrzymać adres pod, którym znajduje się podana dana 32

Pamięć w układach SPARTAN - dokumentacja XAPP463 Using Block RAM in Spartan-3 Generation FPGAs xilinx: XAPP463 XAPP464 Using Look-Up Tables as Distributed RAM in Spartan-3 Generation FPGAs xilinx : XAPP464 XST User Guide, Section: RAMs and ROMs HDL Coding Techniques xilinx : XST User Guide (PDF) ISE In-Depth Tutorial, Section: Creating a CORE Generator Software Module xilinx : ISE In-Depth Tutorial XAPP5 Parameterizable Content-Addressable Memory xilinx : XAPP5 33

Core Generator - ROM, RAM i wiele innych

35 Core Generator w praktyce - ROM, RAM

Parametry pamięci ilość komórek szerokość słowa (liczba bitów) typ pamięci symbol, wyprowadzenia układu

Parametry pamięci Synchronizacja danych przez CLK Synchronizacja danych przez CLK

Parametry pamięci wsad wartość domyślna symbol, wyprowadzenia układu

Przygotowanie pliku wsadowego

Przykładowe pytania. Przerzutnik, zatrzask, element pamiętający struktura 2. Rodzaje pamięci w układach programowalnych (SPARTAN 3) 3. 4 wejściowy LUT ile to pamięci ROM, RAM 4. KiB, Kib, KB, Kb 5. Które elementy układu odpowiadają za pamięć rozproszoną 6. Znaczenie Block RAM 7. Pamięć jedno i dwu portowa, zasada działania 8. Pamięć skojarzeniowa zasada działania 9. Core Generator zastosowania 4