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

Podobne dokumenty
Siła (w) pamięci Obsługa zewnętrznych pamięci SDRAM w układach Cyclone IV firmy Altera

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Krótkie wprowadzenie do ModelSim i Quartus2

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

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

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

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

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

To nie huragan, to Cyclone II!

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

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA

ZL10PLD. Moduł dippld z układem XC3S200

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

Projekt prostego procesora

Systemy Czasu Rzeczywistego FPGA

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Projektowanie Urządzeń Cyfrowych

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

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

Sposoby projektowania systemów w cyfrowych

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

Specyfika projektowania Mariusz Rawski

Projektowanie hierarchiczne Mariusz Rawski

PUCY Kolos 2: Reloaded

Programowalne układy logiczne

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

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

Kurs SINAMICS G120 Konfiguracja i uruchomienie. Spis treści. Dzień 1

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Programowalne układy logiczne

Altera MAX10: nowa generacja FPGA i jej nowe możliwości

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Pierwsze kroki z FPGA (2)

Bezpieczeństwo informacji oparte o kryptografię kwantową

Quartus. Rafał Walkowiak IIn PP Wer

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

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

Projektowanie Systemów Wbudowanych

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

FPGA z szybkimi interfejsami komunikacyjnymi

Wstęp Architektura... 13

Projektowanie z użyciem procesora programowego Nios II

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

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

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

Język opisu sprzętu VHDL

2. Architektura mikrokontrolerów PIC16F8x... 13

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Języki opisu sprzętu VHDL Mariusz Rawski

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

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

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

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

System on Chip na miarę S P R Z Ę T

Projektowanie automatów z użyciem VHDL

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

ZL19PRG. Programator USB dla układów PLD firmy Altera

Przykładowa aplikacja LOGO! 8 Cyfrowy termometr z sygnalizacją przekroczenia progów

Opracował: Jan Front

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

ZL6PLD zestaw uruchomieniowy dla układów FPGA z rodziny Spartan 3 firmy Xilinx

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

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

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Przykład realizacji ćwiczenia nr 8.

Systemy na Chipie. Robert Czerwiński

Programowalne układy logiczne

1.1. Możliwości programu

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

dokument DOK wersja 1.0

Laboratorium przedmiotu Technika Cyfrowa

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

Wyświetlacz siedmiosegmentowy

Symulacja systemu z procesorem MicroBlaze w środowisku ActiveHDL

Siedmiomilowe buty Bezpłatne kompilatory C dla mikrokontrolerów firmy Renesas Do 64 kb za 0 zł!

OPTYMALIZACJA MODELI SYMULACYJNYCH ZAMODELOWANYCH W JĘZYKU VERILOG HDL Z WYKORZYSTANIEM INTERFEJSU PLI

Temat: Pamięci. Programowalne struktury logiczne.

Systemy Czasu Rzeczywistego FPGA

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

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

Podział układów cyfrowych. rkijanka

WebPack nadal bezpłatnie, ale z licencją

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

1.Wstęp. 2.Generowanie systemu w EDK

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

FAQ: /PL Data: 09/06/2012. Zastosowanie zmiennych Raw Data Type WinCC v7.0

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

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

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.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Quartus. Rafał Walkowiak IIn PP Listopad 2017

Transkrypt:

PODZESPOŁY Siła (w) pamięci on-chip Implementacje pamięci w układach Cyclone IV firmy Altera Dodatkowe materiały na CD i FTP Jedną ze sztandarowych cech współczesnych układów FPGA jest możliwość implementacji w nich dzięki wbudowanym specjalnym zasobom logicznym - bloków szybkich pamięci RAM, CAM, ROM i FIFO, których jedyną wadą są ich relatywnie (w stosunku do powszechnie dostępnych w urządzeniach elektronicznych megabajtów ) niewielkie pojemności. Problem ten można bez większego trudu ominąć, a w jaki sposób pokażemy w EP za miesiąc. Teraz przybliżymy tajniki implementacji pamięci w wewnętrznych zasobach FPGA. Współczesne aplikacje układów FPGA wymagają ich współpracy z szybkimi pamięciami o pojemnościach często sięgających dziesiątek, a nawet setek megabajtów. Jeżeli wymagania aplikacji co do pojemności pamięci są mniejsze (do kilkunastu Mb), konstruktorzy mogą korzystać z konfigurowalnych bloków logicznych zoptymalizowanych konstrukcyjnie do implementowania w nich pamięci różnego rodzaju (RAM, ROM, FIFO, CAM, SIPO, PISO itp.). Rozwiązanie takie ma wiele zalet, spośród których warto wspomnieć przede wszystkim: dużą szybkość pracy pamięci wbudowanych w FPGA, łatwość ich integracji w projekcie, minimalizację liczby układów scalonych, ograniczenie Dodatkowe informacje: Testy sprzętowe niezbędne do opracowania artykułu przeprowadzono na zestawie Cyclone IV GX Transceiver Starter Kit udostępnionym przez firmę EBV Elektronik, tel. 71 342 29 44 oraz 22 640 23 55, www.ebv.com. emisji EM i poboru prądu oraz uproszczenie płytki drukowanej. Pamięci wbudowane w FPGA W układach Cyclone IV (najnowsza rodzina układów FPGA z serii Cyclone produkowana przez firmę Altera) do implementacji zespołów pamięci przewidziano dwa rodzaje zasobów logicznych (rysunek 1): Konfigurowalne bloki M9K o pojemności 8192 bitów danych oraz 1024 bitów parzystości, co daje łącznie 9216 komórek pamięci. Mogą być one w zależności od potrzeb konfigurowane jako 64 ELEKTRONIKA PRAKTYCZNA 10/2010

Implementacje pamięci w układach Cyclone IV Rysunek 1. Uproszczona budowa układów FPGA (pominięto bloki niepotrzebne podczas implementowania bloków pamięci) Tabela 1. Zestawienie wybranych zasobów układów Cyclone IV GX Cecha EP4CGX15 EP4CGX22 EP4CGX30 EP4CGX50 EP4CGX75 EP4CGX110 EP4CGX150 Liczba bloków LE 14400 21280 29440 49888 73920 109424 149760 Liczba bloków 60 84 120 278 462 610 720 M9K Pojemność pamięci w blokach M9K [kb] 540 756 1,080 2,502 4,158 5,490 6,480 ELEKTRONIKA PRAKTYCZNA 10/2010 pamięci o organizacji 1 8192, 2 4096, 4 2048, 8 1024, 9 1024, 16 512, 18 512, 32 256 lub 36 256 i architekturze ROM, RAM, FIFO, także w wersji dwuportowej. Bloki M9K mogą także być skonfigurowane jako rejestry przesuwające, co pozwala stosować je jako pamięci SIPO i PISO, często stosowane w filtrach FIR (Finite Impulse Response). Linie I/O danych pamięci mogą być rejestrowe lub kombinacyjne, użytkownik może mieć także, w pewnym zakresie, wpływ na sprzętowy interfejs pamięci. Rysunek 2. Okno edytora schematów w pakiecie Quartus II z wyświetlanym przykładowym symbolem bibliotecznym wymagającym parametryzacji Rysunek 3. Ze względu na dużą liczbę parametrów, konfiguracja megafunkcji altsyncram wymaga sporego nakładu pracy i może sprawić początkującym trudności Komórki logiczne Logic Element (LE) wyposażone w konfigurowalny przerzutnik LE/T/D/JK oraz 4-wejściową komórkę LUT (Look-up Table), która może spełniać rolę samoadresowalnej komórki ROM. Implementacja w LE pamięci o większych (począwszy od kilkunastu bajtów) pojemnościach nie jest racjonalna, bowiem są one (ze względu na fizyczne rozproszenie komórek w strukturze półprzewodnikowej) wolniejsze od pamięci implementowanych w wyspecjalizowanych blokach M9K, pochłaniają ponadto dużo, dość kosztownych, uniwersalnych zasobów FPGA. W tabeli 1 znajduje się zestawienie najważniejszych zasobów układów Cyclone IV GX, z której to rodziny wykorzystano w aplikacjach testowych układ EP4CGX15. Korzystanie z pamięci wbudowanych w FPGA w projektach przygotowywanych za pomocą pakietu Quartus II jest możliwe na wiele sposobów, z których zwłaszcza w przypadku większych projektów najwygodniejszy jest edytor schematów i udostępnione przez Alterę biblioteki z predefiniowanymi blokami pamięci. We wcześniejszych wersjach pakietów projektowych firmy Altera do implementacji bloków pamięci stosowane były parametryzowane bloki logiczne LPM (Library Parametrized Module rysunek 2), zwane także megafunkcjami, jak np. lpm_ram_dp (dwuportowa pamięć RAM) lub lpm_ram_io (pamięć z dwukierunkowymi liniami danych), które obecnie zastępuje uniwersalna megafunkcja altsyncram. W pakiecie Quartus II 10.0 jest ona automatycznie podstawiana podczas syntezy logicznej w miejsce megafunkcji lpm_ i konfigurowana w taki sposób, żeby użytkownik nie musiał samodzielnie modyfikować nastaw w kompilowanym projekcie. Pamięci z megafunkcji Korzystanie z megafunkcji we własnych projektach wymaga pewnej wprawy, bowiem każdorazowo wymagają one konfiguracji przez użytkownika, co w przypadku początkujących konstruktorów może sprawić nieco kłopotów ze względu na szeroką gamę możliwych opcji, co dość dobrze zilustrowano na rysunku 3. Na szczęście twórcy pakietu Quartus II nie zignorowali takich potrzeb Całkiem bezpłatnie Może się to wydawać niewiarygodne, ale zarówno pakiet Quartus II jak i zestaw bibliotek, których niewielki fragment przedstawiliśmy w artykule, są dostępne bezpłatnie na stronie www.altera.com. Pakiet Quartus II w wersji 10.0 opublikowaliśmy na płycie DVD-EP9/2010C, którą otrzymali bezpłatnie wszyscy prenumeratorzy EP. Obecnie na stronie Altery jest dostępna stabilniejsza wersja pakietu zintegrowana z SP1. 65

PODZESPOŁY Nie chcesz rysować, wolisz HDL? To nie problem! Dla wszystkich megafunkcji poddawanych parametryzacji Quartus II generuje komplety plików w językach Verilog, VHDL lub AHDL. Można z nich korzystać jak z funkcji przykład w VHDL dla mem_one_ port_le pokazano poniżej: Rysunek 4. Pierwszy krok MegaWizarda podczas parametryzowania megafunkcji altsyncram i wyposażyli go w kreator elementów bibliotecznych (MegaWizard Plug-in Manager), który w przyjazny sposób prowadzi projektanta przez meandry konfiguracji predefiniowanych megafunkcji. Dzięki kreatorowi użytkownik może wybrać megafunkcję do parametryzacji i określić w jakim języku Listing 1. Przykładowy plik *.mif z zawartością pamięci RAM ustawianą po włączeniu zasilania -- Quartus II generated Memory Initialization File (.mif) WIDTH=4; DEPTH=64; ADDRESS_RADIX=UNS; DATA_RADIX=UNS; CONTENT BEGIN 0 : 12; 1 : 15; 2 : 9; [3..4] : 0; 5 : 9; 6 : 2; [7..10] : 0; 11 : 11; 12 : 0; 13 : 8; 14 : 3; 15 : 15; 16 : 4; [17..18] : 0; 19 : 11; 20 : 0; 21 : 7; 22 : 4; 23 : 15; 24 : 4; [25..26] : 0; 27 : 11; 28 : 0; 29 : 6; 30 : 5; 31 : 15; 32 : 4; [33..34] : 0; 35 : 11; 36 : 0; 37 : 5; 38 : 6; 39 : 15; 40 : 4; [41..42] : 0; 43 : 11; 44 : 0; 45 : 4; 46 : 7; 47 : 15; 48 : 3; [49..50] : 0; 51 : 11; 52 : 0; 53 : 3; 54 : 8; 55 : 15; 56 : 3; [57..58] : 0; 59 : 11; 60 : 0; 61 : 2; 62 : 9; 63 : 15; END; Rysunek 5. Kolejny etap parametryzacji megafunkcji altsyncram HDL ma zostać utworzony jej model (rysunek 4). Na potrzeby testowe została wybrana megafunkcja jednoportowej, dwubramowej, synchronicznej pamięci RAM (rysunek 5), która będzie wyposażona w 4-bitowe bramy wejściową i wyjściową i miała głębokość 64 takich pół-bajtów. Oczywiście organizacja pamięci może być inna (we wspomnianym wcześniej zakresie), a skonfigurowane pamięci można łączyć w zespoły o dowolnej organizacji. Jak widać na rysunku 5, użytkownik może wybrać sposób implementacji w FPGA parametryzowanej megafunkcji: można wymusić jej implementację w blokach M9K lub wymusić jej implementację w rozproszonych komórkach logicznych LC (Logic Cells odpowiedniki LE w układach Cyclone IV). W zależności od przyjętego sposobu implementacji bloku pamięci zgodnie z intuicyjnymi oczekiwaniami jest on umieszcza- ny w którymś z bloków M9K (co widać na rysunku 6) lub w uniwersalnych komórkach logicznych (rysunek 7). Na rysunkach tych pokazano także szczegółowy podgląd sposobu implementacji obydwu wersji pamięci w strukturze układu Cyclone IV oraz fragment wyników kompilacji projektu, z których wyraźnie widać różnice wykorzystanych zasobów. Na rysunku 8 pokazano schemat implementowanego projektu z zastosowaną megafunkcją mem_one_port_le, którą utworzono Listing 2. Jeden z alternatywnych opisów HDL pamięci RAM o organizacji 64x8, udostępniony przez firmę Altera library ieee; use ieee.std_logic_1164.all; entity single_port_ram is port ( data : in std_logic_vector(7 downto 0); addr : in natural range 0 to 63; we : in std_logic := 1 ; clk : in std_logic; q : out std_logic_vector(7 downto 0) ); end entity; architecture rtl of single_port_ram is subtype word_t is std_logic_vector(7 downto 0); type memory_t is array(63 downto 0) of word_t; signal ram : memory_t; signal addr_reg : natural range 0 to 63; begin process(clk) begin if(rising_edge(clk)) then if(we = 1 ) then ram(addr) <= data; end if; end rtl; addr_reg <= addr; end if; end process; q <= ram(addr_reg); FUNCTION ram_one_port_le ( address[5..0], data[3..0], inclock, outclock, wren ) RETURNS ( q[3..0] ); Wstępna inicjalizacja pamięci......po włączeniu nie jest możliwa w przypadku implementowania jej w uniwersalnych komórkach logicznych. Pliki *.mif (Memory Initialization File) lub standardowe *.hex będą przydatne wyłącznie w przypadku pamięci implementowanych w blokach M9K. 66 ELEKTRONIKA PRAKTYCZNA 10/2010

Implementacje pamięci w układach Cyclone IV Rysunek 6. Ilustracja skutków implementacji wykreowanej megafunkcji w blokach M9K FPGA lubią synchronizm Zdziwienie może budzić taktowanie bram: wejściowej i wyjściowej pamięci zastosowanej w przykładowym projekcie. Wynika ono z konieczności synchronizowania projektów implementowanych w układach FPGA, co zapobiega zaburzeniom w ich pracy wywołanych opóźnieniami w propagacji sygnałów pomiędzy poszczególnymi fragmentami projektu. na potrzeby projektu za pomocą kreatora MegaWizard jako wariant megfunkcji altsyncram. Projekt wygląda identycznie w przypadku zastosowania zamiast mem_one_port_ le megafunkcję mem_one_port, która jest przeznaczona do implementacji w blokach M9K, a nie w uniwersalnych komórkach logicznych jak mem_one_port_le. Wróćmy do prezentacji kolejnych etapów pracy kreatora-konfiguratora megafunkcji (ostatni z dotychczas omówionych etapów pokazano na rysunku 5). W oknie pokazanym na rysunku 9 jest możliwy wybór synchronicznego lub asynchronicznego sposobu pracy linii danych wyjściowych pamięci, wybór sygnałów blokujących taktowanie od ELEKTRONIKA PRAKTYCZNA 10/2010 strony wejścia i/lub wyjścia, a także innych sygnałów pomocniczych. W kolejnym etapie (rysunek 10) projektant może skonfigurować zachowanie pamięci podczas odczytu komórki, która jest w tym samym czasie zapisywana, następnie ale tylko w przypadku pamięci implementowanej w blokach M9K jest ustalane zachowanie pamięci po włączeniu zasilania. Pakiet Quartus II umożliwia zapisanie w implementowanej pamięci inicjalnej zawartości (rysunek 11), która jest przechowywana w pliku *.mif (Memory Initialization File), którego przykładową zawartość, zastosowaną w prezentowanym projekcie, pokazano na listingu 1. Zawartości pliku nie trzeba tworzyć ręcznie, do tego celu można wykorzystać edytor wbudowany w pakiet Quartus II, którego fragment okna edycyjnego pokazano na rysunku 12. Zamiast plików *.mif do inicjalizacji zawartości pamięci można wykorzystywać także klasyczne pliki *.hex utworzone za pomocą dowolnego programu narzędziowego. Po zakończeniu konfiguracji (parametryzacji) megafunkcji system projektowy generuje pliki niezbędne do stosowania sparametryzowanych megafunkcji w projektach i samoczynnie dodaje je do zestawu elementów bibliotecznych (symboli) dostępnych dla projektanta (rysunek 13). Można z nich korzystać także podczas przygotowywania innych projektów. W podobny do przedstawionego sposób konfigurowania megafunkcji można zastosować w przypadku implementacji bloków pamięciowych o innych cechach: liczbie portów, sposobie synchronizacji, zasadzie działania (cechach funkcjonalnych) itp. Opcje dostępne na poszczególnych etapach konfigurowania mogą być inne niż pokazane, ale generalna zasada jest zawsze taka sama. Inne możliwości Przedstawione w artykule sposoby utworzenia pamięci w układach FPGA firmy Altera nie są jedynymi możliwymi projektant może samodzielnie opisać (np. za pomocą któregoś z języków HDL) dowolną pamięć i zaimplementować ją w FPGA wykorzystując pakiet Quartus II, podobnie jak dzieje się to z innymi blokami sprzętowymi implementowanymi 67

PODZESPOŁY Rysunek 7. Ilustracja skutków implementacji wykreowanej megafunkcji w uniwersalnych komórkach logicznych w układach cyfrowych. Przykładowe opisy różnych typów pamięci przygotowali i umieścili na firmowej stronie internetowej (w dziale Support >Design Examples >On-Chip Memory) inżynierowie firmy Altera. Jeden z udostępnionych opisów (pamięć RAM o organizacji 64 8) pokazano na listingu 2. Na zakończenie Zasoby lokalnych pamięci dostępnych w układach FPGA wystarczają w przypadku Rysunek 8. Schemat projektu implementowanego w FPGA z megafunkcją mem_one_ port_le Rysunek 9. Na tym etapie parametryzacji megafunkcji altsyncram projektant może skonfigurować zachowanie wyjść pamięci podczas zapisu odczytywanej komórki 68 ELEKTRONIKA PRAKTYCZNA 10/2010

Implementacje pamięci w układach Cyclone IV Rysunek 10. Kolejny etap parametryzacji megafunkcji altsyncram Rysunek 11. W przypadku implementowania pamięci w blokach M9K można określić stany jej komórek po włączeniu zasilania większości aplikacji cyfrowych, ich powiększenie będzie na pewno niezbędne w przypadku implementacji rdzenia mikrokontrolera lub mikroprocesora (jak choćby alterowskiego NIOS II). Twórcy współczesnych rodzin FPGA uwzględnili potrzeby tego typu i wyposażyli w odpowiednie zasoby zarówno same układy jak i programy narzędziowe. O tym jak dołączyć do FPGA pamięć SDRAM lub jeszcze nowocześniejszą napiszemy za miesiąc. Czytelników zainteresowanych tą tematyką zachęcam do kontaktu nie tylko w przypadku problemów. Piotr Zbysiński, EP piotr.zbysinski@ep.com.pl Rysunek 12. Fragment okna edytora plików *.mif Rysunek 13. Utworzone (poprzez konfigrację megafunkcji altsyncram) elementy biblioteczne są dodawane do bibliotek elementów dostępnych w projekcie R E K L A M A ELEKTRONIKA PRAKTYCZNA 10/2010 69