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

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

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

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

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

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

Systemy Czasu Rzeczywistego FPGA

Laboratorium Asemblerów, WZEW, AGH WFiIS Tester NMOS ów

Programowalne Układy Cyfrowe Laboratorium

Laboratorium przedmiotu Technika Cyfrowa

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. Szczegóły realizacji projektu indywidualnego W dr inż.

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

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

Przetwornik analogowo-cyfrowy

Elektronika i techniki mikroprocesorowe

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

Tranzystor JFET i MOSFET zas. działania

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

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

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

Systemy Czasu Rzeczywistego FPGA

Programowalne układy logiczne

Technika Mikroprocesorowa

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik

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

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

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

Opis przedmiotu zamówienia

Zastosowania mikrokontrolerów w przemyśle

Programowalne układy logiczne

ZL10PLD. Moduł dippld z układem XC3S200

Architektura komputerów

Temat: Pamięci. Programowalne struktury logiczne.

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

Architektura komputerów

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

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

Programowanie mikrokontrolerów. 8 listopada 2007

Opis przedmiotu zamówienia CZĘŚĆ 1

Szczegółowy Opis Przedmiotu Zamówienia: Zestaw do badania cyfrowych układów logicznych

Sprawdzian wiadomości z jednostki szkoleniowej M3.JM1.JS3 Użytkowanie kart dźwiękowych, głośników i mikrofonów

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

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

napięcie-częstotliwość

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

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

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

KAmodRPiADCDAC. Moduł przetwornika A/C i C/A dla komputerów RaspberryPi i RaspberryPi+

O sygnałach cyfrowych

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

Programowalne układy logiczne

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

dr inż. Jarosław Forenc

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

HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy bufor dwukierunkowy HC244 dwa 4-bitowe bufory jednokierunkowe

Parametryzacja przetworników analogowocyfrowych

Specyfika projektowania Mariusz Rawski

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

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

Moduł wejść/wyjść VersaPoint

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

Spis treści. 1. Cyfrowy zapis i synteza dźwięku Schemat blokowy i zadania karty dźwiękowej UTK. Karty dźwiękowe. 1

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Komputerowe systemy pomiarowe. Podstawowe elementy sprzętowe elektronicznych układów pomiarowych

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

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

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

System pamięci. Pamięć podręczna

Pamięci półprzewodnikowe

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

Przetworniki analogowo-cyfrowe (A/C)

Enkoder magnetyczny AS5040.

Szkolenia specjalistyczne

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Systemy Czasu Rzeczywistego FPGA

CZ1. Optymalizacja funkcji przełączających

Systemy Czasu Rzeczywistego FPGA

Metody optymalizacji soft-procesorów NIOS

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

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

2. Architektura mikrokontrolerów PIC16F8x... 13

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

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

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

Programowalne układy logiczne

Samba OPLC SM35-J-R20

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

Podstawy Informatyki Układ sterujący

System mikroprocesorowy i peryferia. Dariusz Chaberski

RODZAJE PAMIĘCI RAM. Cz. 1

Karta katalogowa JAZZ OPLC JZ20-R31

Elementy cyfrowe i układy logiczne

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

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

Podstawy Informatyki JA-L i Pamięci

Transkrypt:

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

Plan wykładu Powtórka wiadomości 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. Przebiegi wyjściowe enkodera obrotowego 2. Multipleksowanie matrycy wyświetlaczy 7-segmentowych 3. Jak będzie wyglądać kod w VHDL w, który w wyniku syntezy pozwoli uzyskać element pamiętający wyzwalany zboczem. 4. Jak będzie wyglądać kod w VHDL u, który w wyniku syntezy pozwoli uzyskać zatrzask wyzwalany poziomem. 5. I inne

Ad. Enkoder obrotowy Sygnały wyjściowe z enkodera obrotowego

Ad. Enkoder obrotowy ¼ okresu / AB/K S / / / / S / S S / / AB/K gdzie: AB wyjścia enkodera K kierunek działania Stan początkowy automatu jest taki jak bieżące położenie pokrętła 5

Ad. 2 Wyświetlacz 7-seg. Multipleksowany - układ z PUL 6

Sterowanie katod poszczególnych segmentów Ad. 2 Wyświetlacz 7-seg. multipleksowany Cykl działania wyświetlacza ms 5 ms ¼ cyklu ¼ cyklu ¼ cyklu ¼ cyklu CYFRA CYFRA 2 CYFRA 3 CYFRA 4 7 Sterowanie anod 7 linii odpowiedzialnych za wyświetlenie cyfr

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. 8 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 9 Aby otrzymać zatrzask (przerzutnik sterowany poziomem), należy dodać do listy czułości sygnał wejściowy i wyrzucić testowanie narastającego zbocza zegara

Kwantowanie, próbkowanie Twierdzenie o próbkowaniu: częstotliwość próbkowania (f s ) powinna być dwukrotnie większa niż pasmo przenoszonych częstotliwości (f). Przykład: Sygnał akustyczny o częstotliwości do 2 khz, zgodnie z twierdzeniem Shannona- Kotielnikowa powinien być próbkowany z częstotliwością co najmniej 4 khz. W praktyce częstotliwość próbkowania jest równa 44 khz. Jeśli w sygnale pojawi się częstotliwość 46 khz to po próbkowaniu z fs=44 khz w widmie znajdziemy prążek 2 khz (tzw. alias)-czyli dźwięk słyszalny. W takiej sytuacji konieczne jest zastosowanie tzw. filtrów antyaliasingowych (dolnoprzepustowych).

Rozdzielczość w bitach Dobór przetwornika Liczba bitów N Liczba poziomów kwantyzacji Kwant dla napięcie 5V 8 256 9,5 mv 24 4,8 mv 2 496,2 mv 6 65536 76,3 µv Szybkość próbkowania Parametry wejściowe: - rozdzielczość, - rodzaj kodu - poziomy logiczne, - format danych A Glossary of Analog-to-Digital Specifications and Performance Characteristics http://www.ti.com/lit/an/sbaa47b/sbaa47b.pdf

2 DAC LTC2624 Quad DAC

DAC LTC2624 Quad DAC LTC2624: - ilość bitów N=2, tak więc 2 2 = 496 - załóżmy REFx = 3,3V, REFLO = V (GND) U OUT = k 2N REFx k = U OUT REFx 2N 3 http://cds.linear.com/docs/en/datasheet/264fd.pdf

4 ADC LTC47A-

ADC LTC47A- ilość bitów N=4, tak więc 2 4 = 6384 poziomów kwantowania, zakres przetwarzanych napięć ±,25 V (2,5 V), rozdzielczość przetwarzania: R = U IN 2 N 2, 5 V = 6384 = 53 μv Zakres przetwarzania w Spartan 3E Starter Board: k = GAIN U IN, 65V, 25V 892 wzmocnienie układu LTC692 5

Pamięci

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

FPGA od środka cd

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

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 2

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. 2 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 ) 22 * IEC - International Electrotechnical Commission's standard - Międzynarodowa Komisja Elektrotechniczna

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 23

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

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 25

LUT tablica wielu zmiennych - pamięć rozproszona (distributed RAM) zmienne funkcji 6 LUT tabl. wartości OUT 26 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 28

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

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

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 3

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

RAM RAM6XD

34 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. 36 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 37

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

Pamięć Block RAM - organizacja - BRAM-based, Port Aspect Ratios 39 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 4 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

4 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 42

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 43

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 44

Core Generator - ROM, RAM i wiele innych

46 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 5