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

Podobne dokumenty
LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

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

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

Systemy Czasu Rzeczywistego FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Systemy Czasu Rzeczywistego FPGA

Projektowanie automatów z użyciem VHDL

Specyfika projektowania Mariusz Rawski

Programowalne układy logiczne

PUCY Kolos 2: Reloaded

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

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

Projektowanie hierarchiczne Mariusz Rawski

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

Projekt prostego procesora

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

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

Systemy Czasu Rzeczywistego FPGA

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

Projektowanie w VHDL

Systemy Czasu Rzeczywistego FPGA

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

Projektowanie hierarchiczne Mariusz Rawski

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

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

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

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

VHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014

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

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

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

Synteza strukturalna

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

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

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

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

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

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

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

VHDL cz.1. Rafał Walkowiak IIn PP Wer

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

Projektowanie systemów cyfrowych w językach opisu sprzętu. Studium Zaoczne IV rok kierunek Elektronika i Telekomunikacja. Wykład 2

Projektowanie Urządzeń Cyfrowych

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

Programowanie Mikrokontrolerów

Programowalne układy logiczne

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

Technika Cyfrowa. Wprowadzenie do laboratorium komputerowego część II

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

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

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Quartus. Rafał Walkowiak IIn PP Wer

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

Języki opisu sprzętu VHDL Mariusz Rawski

Sposoby projektowania systemów w cyfrowych

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.

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

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

Instrukcje sekwencyjne

Podstawy techniki cyfrowej zima 2015 Rafał Walkowiak

Programowalne układy logiczne

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

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

Przykład realizacji ćwiczenia nr 8.

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

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

VHDL cz.1. Rafał Walkowiak IIn PP Wer

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

Podstawy techniki cyfrowej zima 2017 Rafał Walkowiak Synteza strukturalna wyższego poziomu

Pomoc do programu konfiguracyjnego RFID-CS27-Reader User Guide of setup software RFID-CS27-Reader

Quartus. Rafał Walkowiak IIn PP Listopad 2017

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

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji

Realizacja własnych modułów IP Cores w srodowisku EDK

PUCY - Etap II - mikrokontroler 8-bitowy

Programowalne układy logiczne

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

Architektura mikroprocesorów z rdzeniem ColdFire

Elementy języka VHDL

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

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Cyfrowe układy scalone

System mikroprocesorowy i peryferia. Dariusz Chaberski

Programowalne układy logiczne

Układy Cyfrowe laboratorium

Szkolenia specjalistyczne

Architektura typu Single-Cycle

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

Inżynieria Układów Programowalnych

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

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

Realizacja stopera na układzie Spartan-II przy uŝyciu pakietu Xilinx ISE

Metoda Newtona przyjmuje następujące założenia dla funkcji :

CZ1. Optymalizacja funkcji przełączających

Transkrypt:

Układy Cyfrowe i Systemy Wbudowane 2 XC4000: LUT jako ROM Układy FPGA cz. 2 dr inż. Jarosław Sugier Jaroslaw.Sugier@pwr.edu.pl W-4/K-9, pok. 227 C-3 FPGA(2) - 1 FPGA(2) - 2 ROM32X1 VHDL inference example ROM 16x2b -- ROM type declaration type rom_type is array (0 to 15) of STD_LOGIC_VECTOR(1 downto 0); constant ROM : rom_type := (0 => "00", 1 to 7 => "01", others => "11"); -- Address & output buses signal Addr : STD_LOGIC_VECTOR(3 downto 0); signal DOut : STD_LOGIC_VECTOR(1 downto 0); -- Distr. ROM = single concurrent assignment (asynchr. read!) DOut <= ROM( to_integer( unsigned( Addr ) ) ); use IEEE.NUMERIC_STD.ALL DOut <= ROM( to_integer( unsigned( Addr ) ) ); FPGA(2) - 3 use IEEE.STD_LOGIC_UNSIGNED.ALL DOut <= ROM( conv_integer( Addr ) ); FPGA(2) - 4 Asynchroniczna pamięć RAM (RAM16X1) Synchroniczna pamięć RAM (RAM16X1S) Speed grades 4-1: TWC 8.0 min ns TAS 2.0 min ns TWP 4.0 min ns TDS 4.0 0.8 min ns TAH 2.5 2.0 min ns TDH 2.0 min ns TWC address write cycle time Speed grades 4-1: TWOS 10.3 5.6 (16x2) 11.6 7.0 (32x1) max ns TILO 2.7 1.3 max ns TWSS 2.2 1.5 min ns TDSS 3.5 1.5 min ns TASS 2.8 1.5 min ns TWHS TDHS 0 min ns TAHS 7.5 4.0 min ns TWPS 1 max ms TWCS 15.0 8.0 min ns FPGA(2) - 5 TWCS address write cycle time (clock K period) FPGA(2) - 6 1

VHDL inference template example single port RAM16X1S type ram_type is array (0 to 15) of STD_LOGIC; signal RAM : ram_type; -- if needed initialize here Pamięć RAM dwuportowa (RAM16X1D) -- Write functionality process (CLK) if rising_edge( CLK ) then if (WE = '1') then RAM( to_integer( unsigned( A ) ) ) <= DI; -- Read functionality DO <= RAM( to_integer( unsigned( A ) ) ); FPGA(2) - 7 FPGA(2) - 8 VHDL inference template example dual port RAM16X1D type ram_type is array (0 to 15) of STD_LOGIC; signal RAM : ram_type; -- if needed initialize here -- Write functionality process (CLK) if rising_edge( CLK ) then if (WE = '1') then RAM( to_integer( unsigned( A ) ) ) <= DI; -- Read functionality DO <= RAM( to_integer( unsigned( A ) ) ); DPO <= RAM( to_integer( unsigned( DPRA ) ) ); FPGA(2) - 9 FPGA(2) - 10 Spartan-3E Zajętość zasobów FPGA(2) - 11 FPGA(2) - 12 2

Nowość: LUT jako rejestr przesuwny Np.: rejestry o stałej długości FPGA(2) - 13 FPGA(2) - 14 Np.: rejestry o długości dynamicznej VHDL inference example FPGA(2) - 15 FPGA(2) - 16 Blokowa pamięć RAM Praca jednoportowa (A) Spartan-II (A) Spartan-II: od 4k x 1 do 256 x 16 (B) Spartan-3 (B) Spartan-3: od 16k x 1 do 512 x 32 + dodatkowe bity parzystości FPGA(2) - 17 FPGA(2) - 18 3

Operacje podstawowe Wyprowadzenia (XC3S) FPGA(2) - 19 FPGA(2) - 20 Synchroniczny zapis oraz odczyt Odczyt podczas zapisu: trzy tryby Rysunek dla organizacji 256 x 16 (XC2S) XC3S: WRITE_MODE = WRITE_FIRST FPGA(2) - 21 FPGA(2) - 22 XST User Guide (14.7): process (clk) -- Write-First Mode if rising_edge( clk ) then if en = 1 then if we = 1 then RAM(to_integer(unsigned(addr))) <= di; do <= di; else do <= RAM(to_integer(unsigned(addr))); process (clk) -- Read-First Mode if rising_edge( clk ) then if en = 1 then if we = 1 then RAM(to_integer(unsigned(addr))) <= di; do <= RAM(to_integer(unsigned(addr))) ; FPGA(2) - 23 Praca dwuportowa FPGA(2) - 24 4

XST User Guide: DP RAM with different clocks Clock-to-clock set-up type ram_type is array of STD_LOGIC_VECTOR; shared variable RAM : ram_type; process( CLKA ) if rising_edge( CLKA ) then if ENA = 1 then if WEA = 1 then RAM(to_integer(ADDRA)) := DIA; DOA <= RAM(to_integer(ADDRA)); For Read-First mode: DOA <= RAM(... if WEA... RAM(... process( CLKB )... as above but for CLKB, ADDRB, etc.... FPGA(2) - 25 FPGA(2) - 26 Przykłady zastosowań Wykorzystanie obu portów: Długie bufory cykliczne Dwa niezależne moduły 256 x 72 FPGA(2) - 27 FPGA(2) - 28 Szybkie liczniki o dowolnym cyklu (ROM) FPGA(2) - 29 FPGA(2) - 30 5

Maszyny stanów (ROM) Złożone funkcje logiczne (ROM) FPGA(2) - 31 FPGA(2) - 32 Układy generacji przeniesienia Lepiej: C3 A3 B3 S3 C2 A2 B2 S2 C1 A1 B1 S1 C0 A0 B0 S0 0 A B CIN COUT 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 A = B, COUT = A A B, COUT = CIN A = B, COUT = A FPGA(2) - 33 FPGA(2) - 34 Przy mnożeniu FPGA(2) - 35 FPGA(2) - 36 6

Przykład: ADD8 Przykład: ADSU8 FPGA(2) - 37 FPGA(2) - 38 Liczniki binarne Przykład: CC8CE FPGA(2) - 39 FPGA(2) - 40 Przykład: CC8CLED Wielowejściowe funktory AND, OR FPGA(2) - 41 FPGA(2) - 42 7

Komparatory (COMPMC16) FPGA(2) - 43 8