Projektowanie Systemów Cyfrowych

Podobne dokumenty
Projektowanie Systemów Cyfrowych

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

napięcie-częstotliwość

Kierunek Elektronika, III rok Języki Opisu Sprzętu. Platforma sprzętowa. Rajda & Kasperek 2016 Katedra Elektroniki AGH 1

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

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

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

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

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

Technika Mikroprocesorowa

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

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

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Liczniki z zastosowaniem

Temat: Pamięci. Programowalne struktury logiczne.

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

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

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

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

Liczniki z zastosowaniem

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

Programowany układ czasowy

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Wykład 10. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń. 20 grudzień 2017

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

Cyfrowe układy scalone

RODZAJE PAMIĘCI RAM. Cz. 1

Podstawy układów mikroelektronicznych

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

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

mgr inż. Tadeusz Andrzejewski JTAG Joint Test Action Group

(przykład uogólniony)

Szkolenia specjalistyczne

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

Programowanie Mikrokontrolerów

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

Cyfrowe układy scalone

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

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

Podstawy elektroniki cz. 2 Wykład 2

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

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Opis przedmiotu zamówienia

Systemy Czasu Rzeczywistego FPGA

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

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

Cyfrowe układy scalone

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

ZL10PLD. Moduł dippld z układem XC3S200

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

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Architektura komputerów

Ćw. 7: Układy sekwencyjne

Opis przedmiotu zamówienia CZĘŚĆ 1

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Programowalne układy logiczne

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

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

Projektowanie Scalonych Systemów Wbudowanych VERILOG

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

Układy logiczne układy cyfrowe

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

Cyfrowe układy scalone c.d. funkcje

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

Systemy Czasu Rzeczywistego FPGA

Projekt prostego procesora

Bramki Instrukcja do laboratorium AGH w Krakowie Katedra Elektroniki Ernest Jamro Aktualizacja:

Liczniki, rejestry lab. 07 Układy sekwencyjne cz. 1

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

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

SML3 październik

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.

Sterowniki Programowalne (SP)

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

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

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

Ćwiczenie 7 Matryca RGB

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

UKŁADY CYFROWE. Układ kombinacyjny

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

Podział układów cyfrowych. rkijanka

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

LEKCJA. TEMAT: Funktory logiczne.

THE HARDWARE IMPLMENTATION OF THE PS/2 PROTOCOL ON SPARTAN 3 FPGA DEVICE IMPLEMENTACJA SPRZĘTOWA PROTOKOŁU PS/2 W UKLADZIE FPGA SPARTAN 3

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

43 Pamięci półprzewodnikowe w technice mikroprocesorowej - rodzaje, charakterystyka, zastosowania

PAMIĘCI SYNCHRONICZNE

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

Różnicowe układy cyfrowe CMOS

Architektura komputerów

Pamięć operacyjna komputera

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Transkrypt:

Projektowanie Systemów Cyfrowych Prowadzący: dr inż. ż Andrzej jskoczeńń Układy programowalne generacji Spartan-3AN: Klasyfikacja: grupa, rodziny Paramatry układów rodziny Spartan-3AN Elementy architektury Konfiguracja układów Spartan-3x Dodatek 3 2014 Październik 2014 Bloki wejścia/wyjścia IOB; standardy sygnałów i ich konfiguracja UCF Drzewo zegara i blok DCM Biblioteki firmy Xilinx dla Spartana-3x http://fatcat.ftj.agh.edu.pl/~skoczen/hdl AGH WFiIS Informatyka Stosowana, I stopień Języki Opisu Sprzętu 1

Spartan od Xilinx a AGH, WFiIS, IS, st.i, HDL 2

ded Spartan 3 3A Exten Grupa układów Spartan 3x Spartan 3x jest grupą układów FPGA przeznaczoną do zastosowań w szerokim zakresie elektroniki użytkowej: dostęp szerokopasmowy, sieci domowe, wyświetlacze projektory, urządzenia telewizji cyfrowej. Obejmuje j ona 25 modeli układów w pięciu ę rodzinach stanowiącychą linięę rozwojową: Rodzina/Platforma Opis Liczba modeli w grupie Spartan 3 pierwszy przemysłowy FPGA w technologii 90nm 8 Spartan 3E z dodanymi cechami zwiększającymi wydajność i redukującymi koszt konfiguracji Spartan 3A kolejne polepszenie konfiguracji i redukcja zużycia mocy 5 Spartan 3AN Spartan 3A DSP wyposażony w nie ulotną pamięć i dużą ilość pamięci typu flash dostępnej dla użytkownika posiada zasoby wymagane dla cyfrowego przetwarzania sygnałów (DSP48A) Najmniejszy z tych układów zawiera 50 000 bramek systemowych, a największy 5 milionów. 5 5 2 AGH, WFiIS, IS, st.i, HDL 3

Architektura układów Spartan 3x Architektura opiera się ę na pięciu ę podstawowych programowalnych elementach funkcjonalnych: CLBs IOBs BRAM MBs DCMBs Configurable Logic Blocks Input/Output Blocks Block RAM Multiplier Blocks Digital Clock Manager Blocks Złożony z czterech SLICE, z których każdy zawiera dwie elastyczne pamięci podręczne LUT, które implementuje logikę, dwa multipleksery i dwa elementy pamięciowe używane jako przerzutnik lub zatrzask oraz logikę arytmetyczną z przeniesieniem. Sterują przepływem danych między pinami I/O i wewnętrzną logiką układu. Są dwukierunkowe i trójstanowe. Wspierają wiele standardów sygnałów, a wśród nich kilka wysokowydajnych standardów różnicowych. Dostępne są także rejestry typu DDR. Magazyn danych w postaci bloków 18 kbityowych o podwójnych portach. Akceptują 18 bitowe liczby binarne jako dwa argumenty i obliczają ich iloczyn. Układy rodziny Spartan 3A DSP posiadają także specjalne bloki mnożąco akumulujące DSP. Całkowicie cyfrowy, samokalibrujący się układ dystrybucji, opóźniania, mnożenia, dzielenia i przesuwania fazy sygnałów zegarowych. Objaśnienia: LUT Look Up Table DDR Double Data Rate DSP Digital Signal Processing AGH, WFiIS, IS, st.i, HDL 4

Architektura układów Spartan 3x AGH, WFiIS, IS, st.i, HDL 5

W centrum znajduje się regularna tablica CLBs ów. Dookoła umieszczony jest podwójny pierścień naprzemiennie ułożonych IOBs ów. Pamięćę BRAM zorganizowana jest w dwie kolumny, zktórych każda składa sięę zkilku bloków o pojemności 18 kbitów (wyjątek stanowi XC3S50AN, który ma tylko jedna kolumnę). Każdy blok BRAMu związany jest z multiplikatorem. Układy zarządzania zegarem DCM y umieszczone są w środku, dwa u góry i dwa na dole. (w układzie XC3S50AN tylko ugóry, a w XC3S700AN i XC3S1400AN dodanod jeszcze po dwa w środku obu kolumn RAM multiplikatory). Bogata sieć ścieżek łączy pięć podstawowych bloków funkcjonalnych przesyłając miedzy nimi sygnały. Każdy element funkcjonalny związny jest z matrycą przełączników zabezpieczających przed wielokrotnymi połączeniami. AGH, WFiIS, IS, st.i, HDL 6

Architektura CLB układów Spartan 3x Każdy slice to układ taki jak CLB w rodzinie XC4000XL. AGH, WFiIS, IS, st.i, HDL 7

CLB rodziny XC4000XL Składa się z: Dwóch przerzutników D (konfigurowalne także jako zatrzaski), Dwóch 4 o wejściowych pamięci podręcznych LUT (funkcje F i G), Jednej 3 ój wejściowej pamięci podręcznej LUT (funkcja H), Wielu multiplekserów. Rozwiązanie CLB stosowane przez firmę Xilinx w rodzinach XC4000XL, Spartan, Spartan/XL. Dzięki zastosowaniu tablicy H, jeden CLB może realizować dowolna funkcje do 9 zmiennych. Przerzutniki D mają wspólny zegar K i wejścia umożliwiające EC. Akceptuja bezposrednio wejścia H1 i DIN albo wyjścia tablic F, G, H. Sposób kasowania określany jest wejsciem SR. Funkcje F i G zawieraja logike generacji przeniesienia, którą mozna łączyć bezpośrednio z sąsiednimi CLB w celu buduwy szybkich układów artmetycznych dowolnej długości. CLB może być skonfigurowany jako pamięć 16x2, 32x1 lub 16x1 bitów. Pamięć ta może być synchroniczna lub dwuportowa. AGH, WFiIS, IS, st.i, HDL 8

Architektura SLICE ów Spartan a 3x Look Up Table (LUT) jest generatorem funkcji logicznych zbudownym w oparciu o pamięć RAM. Ponieważ ma cztery wejścia to nadaje się do funkcji 4 ech zmiennych. Dalszą rozbudowę umożliwiają multipleksery Fi(5)MUX. W przypadku SLICE ów M, LUT y można skonfigurować jako 16 bitowe bloki rozproszonej pamięci (Distributed RAM) lub rejestrów przesuwnych (SRL). AGH, WFiIS, IS, st.i, HDL 9

LUT może być połączony do: Multipleksera F5MUX, Logiki arytmetyki i przeniesienia, Bezpośrednio do wyjścia CLB, Do elementu sekwencyjnego FFX(Y). i adres 6 X0Y0, X1Y0 7 X0Y1 8 X1Y1 Każdy SLICE ma 2 multipleksery: F5MUX w dolnej części, ę FiMUX w górnej części. F5MUX multipleksuje wyjścia dwóch LUT ów. FiMUX multipleksuje bezpośrednio wejścia CLB. Wejścia te mogą być połączone z wyjściami Fi(5)MUX tego samego lub innego SLICE. AGH, WFiIS, IS, st.i, HDL 10

Sekwencyjny element pamięciowy, programowalny do pracy jako przerzutnik typu D lub wrazliwy na poziom przeźroczysty zatrzask, dostarcza sposobu synchronizacji danych do zegara. Element ten dodatkowo zaopatrzony jest w multiplekser na wejściu D, który umożliwia ominięcie elementu sekwencyjnego i wykorzystanie wyjścia kombinacyjnego. Synchroniczne kasowanie i ustawianie AGH, WFiIS, IS, st.i, HDL 11

Rodzina układów Spartan 3AN System Gates Equivalent Logic Cells CLBs Slices Distributed RAM Bits Block RAM Bits XC3S50AN 50k 1584 176 704 11k 54k XC3S200AN 200k 4032 448 1792 28k 288k XC3S400AN 400k 8064 896 3584 56k 360k XC3S700AN 700k 13248 1472 5888 92k 360k XC3S1400AN 1400k 25344 2816 11264 176k 576k Multiplkatory DCM Maksymalna liczba linii I/O Maksymalna liczba par I/O Rozmiar strumienia bitów In System Flash Bits XC3S50AN 3 2 108 50 427k 1M XC3S200AN 16 4 195 90 1 168k 4M XC3S400AN 20 4 311 142 1 842k 4M XC3S700AN 20 8 372 165 2 669k 8M XC3S1400AN 32 8 502 227 4 644k 16M DCM Digital Clock Manager układ zarządzania sygnałem zegara AGH, WFiIS, IS, st.i, HDL 12

IO Bank 0 DCM DCM IO Bank 1 BRAM Multiplikator BRAM Multiplikator DCM DCM Matryca CLB DCM DCM BRAM Multiplikator BRAM Multiplikator IO Bank 3 DCM DCM IO Bank 2 Ogólna jednorodna architektura FPGA Architektura Spartan 3AN model XC3S700AN AGH, WFiIS, IS, st.i, HDL 13

XC3S700AN Liczba CLB: n CLB = 1 472 szt. Jeden CLB składa się z czterech SLICE ów: Liczba SLICE: n SLICE = n CLB 4 = 5 888 szt. Jeden SLICE składa się zdwóchkomóreklogicznychlc: Liczba LC: n LC = n SLICE 2 = 11 776 szt. Równoważna komórka logiczna ELC jest obliczana ze współczynnikiem 1,125: Liczba ELC: n ELC = 1,125 n LC = 13 248 szt. Liczba bramek systemowych wynika ze skomplikowanych przeliczeń poszczególnych elementów układu na dwuwejściowe bramki NAND i ma charakter raczej marketingowy. Maksymalny rozmiar pamięci rozproszonej DRAM konfigurowalny na LUT ch SLICE ów M: s DRAM = 4 n CLB 16 bitów = 94 208 bitów = 92 kbity gdyż cztery LUT y na CLB mają własność konfigurowalności do DRAM. Liczba bloków BRAM: n BRAM = 20 szt. czyli rozmiar pamięci blokowej: s BRAM = n BRAM 18kbitów = 360 kbitów gdyż jeden blok ma rozmiar 18kbitów. AGH, WFiIS, IS, st.i, HDL 14

Blok pamięci rozproszonej DRAM16 Kofiguracja LUT ów SLICE M do pracy jako DRAM. słowo adresowane przez data_a data_d A3-A0 DPRA3-DPRA0 AGH, WFiIS, IS, st.i, HDL 15

Blok Rejestru przesuwnego SRL16 Kofiguracja LUT ów SLICE M do pracy jako SRL. m = 0, 1, 2, 3 AGH, WFiIS, IS, st.i, HDL 16

Blok pamięci rozproszonej BRAM AGH, WFiIS, IS, st.i, HDL 17

Blok multiplikatora AGH, WFiIS, IS, st.i, HDL 18

Konfiguracja układów Spartan 3AN Programowanie odbywa się przez załadowanie danych konfiguracyjnych do reprogramowalnych zatrzasków CCL (CMOS Configuration Latches), które zbiorowo sterują wszystkimi i funkcjami elementów i zasobów je łączących. h Dane konfiguracyjne przechowywane są w układzie (on chip) w pamięci nieulotnej Flash lub zewnętrznie w układzie PROM lub w jakimś innym rodzaju nieulotnego (NVM) nośnikaś danych (na płycieł lub poza nią). W wewnętrznej pamięci Flash możliwe jest przechowywanie wielu plików konfiguracyjnych. Jest to własności MultiBoot. AGH, WFiIS, IS, st.i, HDL 19

Konfiguracja układów Spartan 3AN Po włączeniuą zasilania dane konfiguracyjne sąą przepisywane p do CCL iwewnątrzą FPGA używając jednego z siedmiu trybów: z wewętrznej pamięci SPI Flash (M2M1M0=011), łącze szeregowe do Xilinx Platform Flash PROM, wykorzystywane w pracowni Serial Peripheral Interface (SPI) z zewnętrznej stanadrdowej pamięci SPI Flash, Byte Peripheral Interface (BPI) z zewnętrznej stanadrdowej pamięci równoległej NOR Flash, Slave Serial, ładowane z procesora, Slave Parallel, ładowane z procesora, Boundary Scan (JTAG), ładowane z procesora lub testera systemowego. 33V 3,3V Wskazują chwilę zakończenia konfiguracji AGH, WFiIS, IS, st.i, HDL 20

Strumień bitowy konfiguracji Plik strumienia bitowego jest binarnym plikiem zawierającym dane konfiguracyjne do przepisania do konfiguracyjnej pamięci SRAM. Konfiguracja może być: Statyczna (static reconfiguartion) załadowanie konfiguracji gdy aplikacja nie działa i rebootowanie urządzenia, Dynamiczna (dynamic reconfiguartion) konfiguracja jest częścią aplikacji tzn. sprzęt może być adaptowany do potrzeb w czasie wykonania. Chwila przeprowadzenia częściowej rekonfiguracji jest ukryta, gdyż pozostała część układu pracuje. Strumień ń bitowy może ż być ć pełny ł lub częściowy: ś Pełny (full) pełna konfiguracja układu w projekcie statycznym lub początkowa konfiguracja w projekcie typu dynamicznego. Częściowy (partial) konfiguracja części układu lub jedna z rekonfiguracji w podejściu dynamicznym. AGH, WFiIS, IS, st.i, HDL 21

Pamięć konfiguracji jest zorganizowana w ramki (frames), które pokrywają cały układ. Ramki są najmniejszym adresowalnym segmentem przestrzeni pamięci konfiguracji. Wszystkie operacje muszą działać na ramce. Pamięć konfiguracji jest prostokątną tablicą bitów. Ramki grupują bity w pionie i mają szerokość jednego bitu i wysokość całej tabeli. Ramka jest podstawową jednostką budującą konfigurację, najmniejszą częścią, która może być zapisywana lub odczytywana. Ramki nie odpowiadają bezpośrednio żadnemu fragmentowi sprzętu, tzn. nie konfigurują konkretnego CLBlubIOBalerzeczywiście konfigurują częśćę kilku zasobów logicznych lub połączeniowych (routing). Ramki zgrupowane są wwiększe jednostki zwane kolumnami. Liczba i rozmiar ramek sąą inne dla każdego członka rodziny Spartan, np. dla XC3S700AN: Liczba ramek n f 844 Rozmiar ramki [słowa] s f 202 Rozmiar pamięci ikonfiguracyjnej j [słowa] s cm =n f s f 170 488 Dodatkowe informacje w strumieniu bitowym [słowa] d ad 302 Rozmiar strumienia bitowego [bity] s bs =(s cm +d ad ) 16 2 732 640 słowo = 16 bitów AGH, WFiIS, IS, st.i, HDL 22

Pamięć Flash w systemie Każdy Spartan 3AN zawiera pamięć typu Flash (z szeregowym interfejsem SPI), której zastosowanie jest: Przechowywanie konfiguracyjnego strumienia bitowego (mieszczą się dwa różne) lub Jako nieulotna pamięć aplikacji. AGH, WFiIS, IS, st.i, HDL 23

Konfiguracja Spartan a 3AN Układ nadzorujący konfigurację składa się z: procesora pakietów, który steruje przepływem danych przez interfejs do odpowiedniego rejestru, zbioru 29 rejestrów, które sterują wszystkimi innymi aspektami konfiguracji, sygnałów globalnych, które są sterowane przez zawartość rejestrów. Nagłówek pakietu typu 1: Typ pakietu Kod operacji Adres rejestru Liczba słów 0 0 1 x x 0 x x x x x x x x x x Kod Funkcja operacji 0 0 NOP Po tym nagłówku następuje określona przez 5 najmniej j znaczących hbitów liczba słów 16 bitowych. 0 1 Read 1 0 Write 1 1 Reserved AGH, WFiIS, IS, st.i, HDL 24

Konfiguracja Spartan a 3AN Nagłówek pakietu typu 2: Typ pakietu Kod operacji Adres rejestru Liczba słów 0 1 0 x x 0 x x x x x R R R R R 0 0 0 0 x x x x x x x x x x x x x x x x x x x x x x x x x x x x Po tym nagłówku następuje określona przez 28 bitów dwóch słów 16 bitowych liczba słów 16 bitowych. AGH, WFiIS, IS, st.i, HDL 25

Konfiguracja Spartan a 3AN Opis niektórych rejestrów konfiguracyjnych: CRC Cyclic Redundant Check Sprawdzenie poprawności transmisji. CMD Command Register Służy do wygenerowania sygnałów globalnych i wykonania czynności konfiguracji. Komenda z tego rejestru jest wykonywana przy każdej modyfikacji rejestru FAR. Dla Spartana 3AN jest 16 komend. 32 bitowe słowo specyficzne dla każdego układu. Jego IDCODE Device ID register porównanie z zapisanym w hardwarze identyfikatorem układu w celu ustalenia czy strumień przygotowano dla właściwego układu. Zawiera adres początkowego bloku i kolumny dla następnej FAR Frame Address Register konfiguracyjnej danej. Zwykle strumień bitowy typu pełnego zaczyna sie od adresu 0 i jest inkrementowany az do końcowej wartości. FDRI COR Frame Data Register, Input Rejestr przesuwny do zapisu słów tworzących ramkę. Configuration Option Register AGH, WFiIS, IS, st.i, HDL 26

Sekwencja czasowa: Konfiguracja Spartan a 3AN 1 2 3 4 5 6 7 8 Budzenie z Czyszczenie Próbkowanie Synchro Sprawdzenie Ładowanie Sprawdzenie Sekwencja resetu nizacja ID konfiguracji CRC startowa pamięci konfiguracji Setup pinów sterujących M[2:0] i VS[2:0] Ładowanie strumienia bitowego AGH, WFiIS, IS, st.i, HDL 27

Strumień bitowy konfiguracji Część kometarzowa głównie ASCII, zawierająca nazwę pliku, datę utworzenia, oznaczenie modelu układu i inne. Słowo ślepe Słowo synchronizacji Seria pakietów składających się znagłówka i odpowiadjącej mu wartości, które zapisywane są do rejestrów konfiguracyjnych sprzetu konfigurującego układ. Nagłówek określa: Typ operacji do wykonania na rejestrze konfiguracyjnym (zwykle null lub write), Adres rejestru do zapisania i (5 bitów), Liczbę następujących po nim słów danych do wpisania do tego rejestru. Początkowe wpisy do rejestrów Pakiety typu 1 są najbardziej powszechne. Pakiety typu 2 są używane tylko gdy pole liczby słów danych w nagłówkutypu1jestzbytmałe. Nie zawiera on pola adresu, które jest znany z poprzedzającego go nagłówka typu 1, aby powiększyć pole lczby słów danych. Komentarz 0xFFFFFFFF 0xAA995566 Nagłóweg typu 1 Ładunek Nagłóweg typu 1 Ładunek... Nagłóweg typu 1 Ładunek Nagłóweg typu 1 Ładunek Nagłóweg typu 1 Nagłóweg typu 2 Słowo konfiguracyjne Słowo konfiguracyjne Słowo konfiguracyjne AGH, WFiIS, IS, st.i, HDL 28...

Strumień bitowy konfiguracji... Kolejna seria pakietów zapisujących rejestry konfiguracyjne sprzętu konfigurującego układ oraz wysłanie komend startowych. Końcowe wpisy do rejestrów Słowo konfiguracyjne Słowo konfiguracyjne Słowo konfiguracyjne Nagłóweg typu 1 Ładunek Nagłóweg typu 1 Ładunek Nagłóweg typu 1 Ładunek AGH, WFiIS, IS, st.i, HDL 29

Blok wejścia/wyjścia IOB Spartan-3AN model XC3S50AN XC3S200AN XC3S400AN XC3S700AN XC3S1400AN Liczba IOB 108 195 311 372 502 Bloki I/O Spartan 3AN wspierają następujące stanadrdy sygnałowe asymetryczne (single ended): 33Vlowvoltage 3.3V low voltage TTL (LVTTL), Low voltage CMOS (LVCMOS) z zasilaniem 3.3V, 2.5V, 1.8V, 1.5V, lub 1.2V, 3.3V PCI (Peripheral Component Interface) o częstotliwości 33 MHz or 66 MHz, HSTL (High Speed Transceiver Logic) I, II, i III z zasilaniem 1.5V i 1.8V, zwykle używany do współpracy z pamięciami, SSTL (Stub Series Terminated Logic) I i II z zasilaniem 1.8V, 2.5V, i 3.3V, zwykle używany do współpracy z pamięciami. AGH, WFiIS, IS, st.i, HDL 30

Blok wejścia/wyjścia IOB Spartan-3AN Bloki I/O Spartan 3AN wspierają następujące stanadrdy sygnałowe symetryczne (differential): LVDS (Low Voltage Differential Signal), mini LVDS, RSDS (Reduced Swing Differential Signaling), i PPDS (Point to Point to Differential Signaling) I/O na 2.5V lub 3.3V, BLVDS (Bus Low Voltage Differential Signal) I/O na 2.5V, TMDS (Transition Minimized Differential Signaling) I/O na 3.3V, 3V używany przez DVI i HDMI, Różnicowe odmiany HSTL (High Speed Transceiver Logic) i SSTL (Stub Series Terminated Logic) I/O, LVPECL (Low Voltage Positive Emitter Coupled Logic) wejścia na 2.5V lub 3.3V. AGH, WFiIS, IS, st.i, HDL 31

Różnicowe (differential) standardy sygnałów wymagają dwóch linii sygnałowych dla przenoszenia jednego bitu. Pozwala to na osiągnięcie wysokiej odporności na zkłócenia w stosunku do sygnałów przesyłanych asymetrycznie. Dla LVPECL amplituda logiczna napięcia (voltage swing) pomiędzy dwiema liniami sygnałowymi wynosi około 850 mv. Wymaga użycia rezystora kończącego linię przesyłową (resistor termination). AGH, WFiIS, IS, st.i, HDL 32

Dla LVDS amplituda logiczna napięcia pomiędzy dwiema liniami sygnałowymi wynosi około 350 mv. LVDSwymaga użycia rezystora kończącegoą linięę przesyłową. ą BLVDS (Bus LVDS) jest wersją standardu przystosowaną do formowania dwukierunkowych magistral między wieloma urządzeniami. Wymagane są zewnętrzne rezytory kończące. LVDS Extended (Extended Mode LVDS) dostarcza wyższy prąd wyjściowy i amplitudę logiczną (350 750 mv), umożliwiając przesył kablem na większe odległości. AGH, WFiIS, IS, st.i, HDL 33

Konfiguracja standardu sygnałowego Określenie standardu sygnałów wejścia/wyjścia odbywasię poprzez odpowiednie ustawienie wartości atrybutu IOSTANDARD.Możeonbyć określony: na węźle lub sygnale dołączonym do padu. Wtedy IOSTANDARD jest dołączony do komórki pierwotnej IOB. do elementu projektu i wtedy stosuje się dowszystkichelementówwhierarchii, do których może być zastosowany. Metoda 1: W kodzie Verilog a IOSTANDARD można określić za pomocą atrybutu syntezy: //synthesis attribute iostandard [of] {modname insname} [is] iostandard_ name; Metoda 2: Z wykorzystaniem pliku ograniczeń użytkownika User Constraints File (UCF): NET pad_net_name IOSTANDARD=iostandard_name; Lub na konkretyzacji elementu I/O: INST instance_name IOSTANDARD=iostandard_name; AGH, WFiIS, IS, st.i, HDL 34

Konfiguracja za pomocą UCF W standardach LVTTL i LVCMOS dostępne jest niezależne progamowanie nachylenia zbocza sygnału (slew rate) i siły sterowania sygnału (drive strength). Wykonuje się to za pomocą opcji DRIVE i SLEW do atrybutu IOSTANADRD. Przykład: NET pad_ net_ name IOSTANDARD=LVCMOS15 SLEW=SLOW DRIVE=4 Wartości domyślne: NET pad_net_name IOSTANDARD=LVCMOS25 SLEW=SLOW DRIVE=12 Dostępne wartości: SLEW FAST SLOW QUIETIO DRIVE 2 4 8 12 16 24 AGH, WFiIS, IS, st.i, HDL Używaj najmniejszego nachylenia zboczy i najmniejszego prądu wyjściowego, które spełniają wymagania projektu. Zwróć uwagę, że dla rodziny Extended Spartan 3A, 16 ma prądu wyjścia daje większą szybkość niż 24 ma z ustawieniem SLOW dla opcji SLEW. 35

Architektura IOB Spartan-3AN T T1 D Q TFF1 Blok IOB posiada trzy możliwe drogi sygnału: T2 D Q DDR Wejściowa przenosi dane z padu PAD, poprzez element programowanego opóźnienia DL bezpośrednio do wnętrza układu I lub poprzez parę przerzutników IFF1 i IFF2 na linie IQ1 iiq2. Wyjściowa przenosi dane z linii O1 i O2 z wnętrza układu poprzez multiplekser i bufor trój stanowy bezpośrednio do padu PAD lub poprzez parę przerzutników OFF1 i OFF2. O1 O2 TFF1 D Q OFF1 D Q OFF1 DDR Trójstanowa Wyjściowa IO Pin PAD Trój stanowa służy do określenia kiedy bufor wyjściowy jest w stanie wysokiej impedancji. Linie T, T1 i T2 niosą dane z wnętrza układu i bezpośrednio lub poprzez multiplekser lub dodatkowo przez parę przerzutników trafiają na wejście sterujące bufora. I IQ1 IQ2 Q D IFF1 Q D IFF1 DL DL Wejściowa LV SE Diff V ref Pin PAD IO Pin Sąsiedniego IOB PAD AGH, WFiIS, IS, st.i, HDL 36

Blok wejścia/wyjścia IOB Spartan-3AN do wnętrza Wejście o podwójnej prędkości danych DDR Transmisja Double Data Rate Data (DDR) to technika synchronizacji sygnałów do obydwu narastającegi i opadajacego zbocza sygnału zegarowego. Każda z trzech dróg sygnałowych w bloku IOB jest zdolna do wykonywania operacji DDR, gdyz każda z nich zawiera dwa przerzutniki. Para przerzutników stanowi wejściowy rejestr. Jeden przerzutnik D1 jest taktowany narastającym zboczem zegara ICLK1 i drugi przerzutnik D2 jest taktowany narastającym zboczem zegara ICLK2. Zegary sąą względem ę siebie przesunięte ę o pół okresu tak, że zbocze narastające ICLK2 przypadanachwilę ę opadającego zbocza ICLK1. Do wygenerowania odpowiednich zegarów słóży blok DCM. Następnie dane dwiema liniami trafiają do wnętrza układu gdzie w pewnym momencie muszą zostać wprowadzone w jedną domenę zegarową,którą zwykle jest zegar ICLK1. Operacja ta jest trudna przy dużych częstotliwościachę ponieważ dostępny czas stanowi tylko połowę ę okresu zegara (przy wypełnienu 50%). AGH, WFiIS, IS, st.i, HDL 37

Blok wejścia/wyjścia IOB Spartan-3AN Wyjście o podwójnej prędkości danych DDR z wnętrza Para przerzutników stanowi wyjściowy rejestr. Jeden przerzutnik D1 jest taktowany narastającym zboczem zegara ICLK1 i drugi przerzutnik D2 jest taktowany narastającym zboczem zegara ICLK2. Po wyjściu z rejestru te dwa bity danych są multipleksowane przez multiplekser DDR i przekazywane na pad wyjściowy. Wewnątrz układu bity danych wędrujące linią D2 muszą być przesynchronizowane z domeny podstawowej, kó którą zwykle jest OCKL1 do domeny zegara OCLK2. Robi się to za pomocą przerzutników wewnątrz SLICE. Przy wysokich częstotliwościachę położenie SLICE ów wykonujących ta operację jest krytyczne ponieważ dostępny czas stanowi tylko połowę okresu zegara (przy wypełnienu 50%). AGH, WFiIS, IS, st.i, HDL 38

Obudowa FG484 2,6 mm 0,5 mm mm 1,0 06 0,6 mm 30 o 21 mm 23 mm Liczba pinów: 22 kolumny 22 rzędy = 484 pinów AGH, WFiIS, IS, st.i, HDL 39

INPUT VREF Piny ogólnego przeznaczenia IO, które mogą być parowane w różnicowe Piny ogólnego przeznaczenia ale wyłącznie wejściowe INPUT Normalne piny IO lub INPUT, ale mogą dostarczać napięć referncyjnych w niektórych trybach nieróżniciwych (wtedy muszą być zwarte w obrębie jednego banku) Normalne piny IO ale mogą mieć drugą funkcję w czasie konfiguracji Normalne piny IO albo specjalne wejścia zegarowe po 4 na każdy bank z czego 8 taktuje prawą cześć układu, a 8 lewą. Dedykowane piny do konfiguracji układu Nadzór modu oszczędzania ę energii JTAG (Joint Test Action Group) to nazwa standardu IEEE 1149.1 definiującego protokół używany do testowania połączeń w układach cyfrowych lub ich programowania. Cztery dedykowane piny do obsługi interfejsu JTAG Uziemienia. Wszystkie muszą być połączone. Zasilanie pomocnicze 2,5 lub 3,3 V. Wszystkie muszą być połączone. Zasilanie buforów wyjściowych niezależne dla każdeho banku IO (6 linii). Możliwe wartości: 3.3V, 3.0V, 2.5V, 1.8V, 1.5V, or 1.2V Zasilanie rdzenia układu 1,2 V. Wszystkie muszą być połączone. AGH, WFiIS, IS, st.i, HDL 40

Bank 0 36 IO różnicowych, 20 IO nieróżnicowych (w tym 6 napięć referencyjnych) h6 zasilań IO nieróżnicowych pięć referencyjnych h) Bank 3 owych, 2 IO n (w tym 2 na 6 zasilań IO 92 IO różnico Bank 2 36 IO różnicowych, 20 IO nieróżnicowych (w tym 6 napięć referencyjnych) 6 zasilań IO Bank 1 94 IO różnicow wych 6 zasilań IO SE Bank Diff Vcco 2 Diff razem 0 36 72 20 92 6 1 47 94 0 94 6 2 36 72 2 74 6 3 46 92 20 112 6 razem 165 372 24 AGH, WFiIS, IS, st.i, HDL 41

Sygnały zegarowe Spartan-3AN Globalne zasoby zegarowe składają się z trzech elementów: Pady wejściowe GCLK Global Clock, Bufor multiplekser BUFGMUX globalnego zegara, i Prowadzenie (routing) globalnego zegara Ścieżka zegara pierwotnego zaznaczona jest pogrubioną linią od padu GCLK sterującego centralny bufor multiplekser BUFGMUX, który poprzez sieć połączeń (global routing) dostarcza zegar do wejść przerzutników i innych elementów wymagających zegara. Pady GCLK mogą być użyte jako wejście/wyjście ogólnego przeznaczenia. Blok DCM (Digital Clock Manager) może być wstawiony w ścieżkę pomiędzy pad a bufor w celu obróbki zegara. DCM może także uformować sygnał zegarowy z zasobów ogólnego przeznaczenia. Bufor BUFGMUX możę multipleksować między dwoma źródłami zegara lub może pracować jako zwykły bufor zegara. Tylko ten bufor może sterować zasoby prowadzenia zegara (global routing). Tylko tą drogą wysterowane zostają wejścia zegarowe. Jednak, wejścia zegarowe przerzutników mogą także być sterowane z sieci ogólnego przeznaczenia (general purpose routing), chociaż takie postępowanie nie jest rekomendowane ze względu na wyższe rozbieżności dostarczania zboczy zegara (skew). AGH, WFiIS, IS, st.i, HDL 42

Układy zarządzania zegarem Układy zarządzania zegarem DCM (Digital Clock Managers) służą do generacji sygnałów zegarowych odpowiednich dla projektowanego urządzenia, szczególnie dla zastosowań wysokoczęstotliwościowych: Eliminuje różnice czasów przybycia zegara (clock ckew) wewnątrz układu i do zewnętrznych elementów w celu poprawy paramatrów całego projektowanego układu i eliminacji opóźnień rozprowadzania zegara, Wytwarzat przesunięcia i fazowe zegara o stały ł procent okresu lub o wartość wzrastającą, Mnoży lub dzieli częstotliwość przychodzącego zegara lub syntezuje zupełnie nowy sygnał zegarowy stosując obie te operacje, Kondycjonuje zegar zapewniając czystyzegarzwypełnieniem 50%, Buforuje, przekazuje lub wytawrza odbicie lustrzane, konwertuje standardy sygnałowe zegara, a także likwiduje różnice w czasach przybycia zegara (deskew), Powyższe operacje może wykonywać równocześnie. AGH, WFiIS, IS, st.i, HDL 43

Rozmycie czasów przybycia zegara Clock latency Czas martwy zegara Clock Rozmycie czasów skew przybycia zegara Całkowity czas jaki zabiera przebycie sygnału zegarowego g od źródła (definicji) do punktu końcowego (zegarowe wejście przerzutnika). Różnica w czasie przybycia sygnału zegara do punktów końcowych drzewa wynikająca z różnych dróg jakie pokonuje sygnał zegarowy na drodze do różnych przerzutników. Skew pogarsza pracę układu synchronicznego poprzez wzrost czasu przygotowania (setup time) i wydłużenie opóźnienia międzyę zegarem i wyjściem (clock to output). Razem wydłuża to potrzebny czas okresu zegara. Podobnie skew może zwiększyć wymagany czas trzymania (hold time) na niektórych przerzutnikach, czyli prowadzić do pogorszenie się niezawodności układu. Urządzenie zewnętrzne na płycie AGH, WFiIS, IS, st.i, HDL 44

Rozmycie czasów przybycia zegara Urządzenie zewnętrzne na płycie Blok DCM przewiduje przyszłość? Idealne zsynchronizowanie zegara Wyprzedzone zegary eliminują rozmycie Okres T Opóźnienie przebiegu o stałej częstotliwości wygląda jakby przwidywanie przyszłośći! AGH, WFiIS, IS, st.i, HDL 45

Układ zarządzania zegarem Składa się z czterech elementów: Delay Locked Loop (DLL) pętla opóźnieniowa umożliwiająca eliminację skew zegara, Digital Frequency Synthesizer (DFS) generowanie częstotliwości w oparciu o dwa atrybuty, Phase Shift (PS) statyczne i dynamiczne przesunięcie fazowe z precyząa 15 35ps, Status Logic sygnalizuje stan pracy DCM poprzez sygnały LOCKED i STATUS[7:0]. AGH, WFiIS, IS, st.i, HDL 46

Delay-Locked Loop CLKIN Linia opóźniająca o zmiennym opóźnieniu CLKOUT Sieć rozprowadzania zegara Global Routing CLKFB Sterowanie Układ sterowania próbkuje zegar wchodzący CLKIN i zegar sprzężenia zwrotmego CLKFB i w oparciu o ich czasowy odstęp odpowiednio dostraja linię opóźniającą. Linia opóźniająca jest układem cyfrowym złożonym z szeregowo połączonych elementów opóźniających. DLL wstawia opóźnienia między zegar wejściowy i ze sprzężenia zwrotnego, aż ich zbocza narastające zsynchronizują się, faktycznie opóźniając CLKFB o cały okres. Oznacza to wyzerowanieopóźnienia i i (fazy), czyli stan synchronizacji pętli (lock). AGH, WFiIS, IS, st.i, HDL 47

Delay-Locked Loop AGH, WFiIS, IS, st.i, HDL 48

CLKDV_DIVIDE CLKFX_MULTIPLY CLKFX_ DIVIDE Atrybuty DCM Określa częstotliwość na wyjściu CLKDV. Dozwolone wartości dla CLKDV_DIVIDE: 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 9, 10, 11, 12, 13, 14, 15, 16. Wartości nie całkowite wydłużają czas synchronizacji. f f = CLKIN CLKDV CLKDV_DIVIDE Określają współczynnik podziału i/lub mnożenia częstotliwości na wyjściach CLKFX i CLKFX180. Dozwolone wartości to liczby całkowite: dla CLKFX_MULTIPLY od 2 do 32 (domyślnie 4), a dla CLKFX_DIVIDE od 1do32(domyślnie 1). f CLKFX = f CLKIN CLKFX_MULTIPLY CLKFX_DIVIDE Przykład: aby utworzyć zegar 155 MHz mając na wejściu przebieg o częstotliwości 75 MHz potrzebny jest współczynnik 31/15. Nie oznacza to mnożenia przez 31! AGH, WFiIS, IS, st.i, HDL 49

Atrybuty DCM CLKIN_PERIOD 0.0 Okres zegara na wejściu CLKIN_DIVIDE_BY_2 FALSE CLKOUT_PHASE_SHIFT NONE PHASE_SHIFTSHIFT 0 CLK_FEEDBACK DESKEW_ADJUST Aktywacja dodatkowego dzielenia przez 2 sygnału zegara na wejściu TRUE / FALSE Określenie trybu przesunięcia fazy. Wartości: NONE / FIXED / VARIABLE. Wwersji VARIABLE wartość może być zmieniana przez aplikację przy pomocy wejść sterujących PSEN, PSCLK, PSINCDEC, PSDONE. Wartość stałego przesunięcia (FIXED) fazy wyrażona w 1/256 okresu. Wartości: od 255 do 255 Określa częstotliwość wyjściową względem wejściowej. Wartości: NONE (gdy tylko wyjścia CLKFX są używane), 1X (zegar 1X wykorzystuje wyjście CLK0), 2X (podwojona częstotliwość wejściowa jest dostępna na wyjściach CLK2X. SYSTEM_ Wartości: SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS lub SYNCHRONOUS wartość od 0 do 15 DLL_FREQUENCY_MODE LOW HIGH or LOW frequency mode for DLL DUTY_CYCLE_CORRECTION FALSE Korekcja współczynnika wypełnienia. Wartości: TRUE / FALSE STARTUP_WAIT FALSE Konfiguracja czeka na sygnał LOCKED zanim uaktywni DONE AGH, WFiIS, IS, st.i, HDL 50

Atrybuty DCM DCM_SP #(.CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0.CLKFX_DIVIDE(1), // Can be any integer from 1 to 32.CLKFX_MULTIPLY(4), // Can be any integer from 2 to 32.CLKIN_DIVIDE_BY_2("FALSE"), // TRUE/FALSE to enable CLKIN divide by two feature.clkin_period(0.0), // Specify period of input clock.clkout_phase_shift("none"), // Specify phase shift of NONE, FIXED or VARIABLE.CLK_FEEDBACK( FEEDBACK("1X") ), // Specify clock feedback of NONE, 1X or 2X.DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or an integer from 0 to 15.DLL_FREQUENCY_MODE("LOW"), // HIGH or LOW frequency mode for DLL.DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE.PHASE_SHIFT(0), // Amount of fixed phase shift from 255 to 255.STARTUP_WAIT("FALSE") // Delay configuration DONE until DCM LOCK, TRUE/FALSE ) DCM_SP_inst (.CLK0(CLK0), // 0 degree DCM CLK output.clk180(clk180), // 180 degree DCM CLK output.clk270(clk270), // 270 degree DCM CLK output.clk2x(clk2x), // 2X DCM CLK output Dostęp do zasobów bibliotek z ISE:.CLK2X180(CLK2X180), // 2X, 180 degree DCM CLK out Project New Source.CLK90(CLK90), // 90 degree DCM CLK output t.clkdv(clkdv), // Divided DCM CLK out (CLKDV_DIVIDE).CLKFX(CLKFX), // DCM CLK synthesis out (M/D).CLKFX180(CLKFX180), // 180 degree CLK synthesis out.locked(locked), // DCM LOCK status output.psdone(psdone), // Dynamic phase adjust done output.status(status), // 8 bit DCM status bits output.clkfb(clkfb), // DCM clock feedback.clkin(clkin), // Clock input (from IBUFG, BUFG or DCM).PSCLK(PSCLK), // Dynamic phase adjust clock input.psen(psen), // Dynamic phase adjust enable input.psincdec(psincdec), // Dynamic phase adjust increment/decrement.rst(rst) // DCM asynchronous reset input ); Wybrać IP Coregen & Architecture Wizard i podać nazwę pliku.xaw Z listy wybrać potrzebny element (w tym wypadku single DCM_SP). Sposób alternatywny: Edit Language Templates Rozwinąć drzewo Verilog i kolejne poziomy aby znaleźć właściwy element (Device Primiyive Instantiation Spartan 3A Clock Component DCM_SP) W sąsiednim oknie dostępny będzie kod instansu wraz z obszernym opisem parametrów i portów Copy and Paste do swojego pliku *.v. AGH, WFiIS, IS, st.i, HDL 51

Biblioteki Xilinx a Xilinx dostarcza następujące biblioteki symulacyjne dla symulacji komórek pierwotnych i rdzeni: UNISIM funkcjonalne symulacje komórek pierwotnych UniMacro funkcjonalne symulacje makr XilinxCoreLib funkcjonalne symulacje rdzeni Xilinx EDK behawioralne symulacje elementów IP Xilinx Embedded Development Kit EDK SIMPRIM czasowe symulacje komórek pierwotnych SmartModel/SecureIP funkcjonalne i czasaowe symulacje Xilinx Hard IP, takich jak PPC, PCIe, GT, and TEMAC IP. AGH, WFiIS, IS, st.i, HDL 52

Biblioteki Xilinx a Funkcje arytmetyczne Arithmetic Functions 2 Elementy zegarowe Clock Components 6 Elementy konfiguracji i testowania Config/BSCAN Components 6 Elementy wejścia wyjścia I/O Components 15 Pamięci o dostępie swobodnym RAM 13 Pamięci stałe ROM 5 Rejestry i zatrzaski Registers/Latches 7 Rejestry przesuwne w oparciu o LUT Shift Register LUT 8 Elementy pierwotne na CLB lub SLICE Slice/CLB Primitives 32 RAZEM 94 AGH, WFiIS, IS, st.i, HDL 53

Biblioteki Xilinx a Funkcje arytmetyczne DSP48A Wielofunkcyjny, kaskadowalny, 48 bitowy blok arytmetyczny MULT18X18SIO Multiplikator z opcjonalnymi rejestrami na wejściu i wyjściu, zezwalaniem zegara i synchronicznym kasowaniem AGH, WFiIS, IS, st.i, HDL 54

Biblioteki Xilinx a Elementy zegarowe BUFG BUFGCE BUFGMUX DCM_SP IBUFG IBUFGDS Globalny bufor zegara Globalny bufor zegara z zezwalaniem zegara Globalny bufor multiplekser zegara Cyfrowy blok zarządzania zegarem (Digital Clock Manager) Bufor wejściowy zegara Różnicowy bufor wejściowy zegara z opcjonalnym opóźnieniem AGH, WFiIS, IS, st.i, HDL 55

Biblioteki Xilinx a Elementy konfiguracji i testowania (BSCAN) BSCAN_SPARTAN3A CAPTURE_SPARTAN3A DNA_PORT ICAP_SPARTAN3A SPI_ACCESS STARTUP_SPARTAN3A Logika dostępowa do rejestrów skanowania JTAG Odczyt strumienia bitowego zawierającego stan rejestrów Port dostępu do danych Device DNA Data Access Port Internal Configuration Access Port Internal Logic Access to the Serial Peripheral Interface (SPI) PROM Data Spartan 3A Global Set/Reset, Global 3 State and Configuration Start Up Clock Interface Joint Test Action Group (JTAG) jest powszechnie stosowaną nazwą na intefejs początkowo przeznaczony do testowania obwodów drukowanych przy użycia skanowania rejestrów. The use of scan registers to capture state from device input and output pins Interfejs ten określony został normą IEEE 1149.1 Standard Test Access Port and Boundary Scan Architecture (BSAN). AGH, WFiIS, IS, st.i, HDL 56

Biblioteki Xilinx a Elementy wejścia wyjścia IBUF Bufor wejściowy IBUF_DLY_ADJ Bufor wejściowy o dynamicznie dostrajanym opóźnieniu wejściowym IBUFDS Różnicowy bufor wejściowy IBUFDS_DLY_ADJ Różnicowy bufor wejściowy o dynamicznie dostrajanym opóźnieniu wejściowym IBUFG Bufor wejściowy przeznaczony dla sygnału zegarowego IBUFGDS Differential Signaling Dedicated Input Clock Buffer and Optional Delay IOBUF Bufor dwukierunkowy IOBUFDS 3 State Differential Signaling I/O Buffer with Active Low Output Enable KEEPER KEEPER Symbol OBUF Bufor wyjściowy OBUFDS Differential Signaling Output Buffer OBUFT 3 State Output Buffer with Active Low Output Enable OBUFTDS 3 State Output Buffer with Differential Signaling, Active Low Output Enable PULLDOWN Resistor to GND for Input Pads, Open Drain, and 3 State Outputs PULLUP Resistor to VCC for Input PADs, Open Drain, and 3 State Output AGH, WFiIS, IS, st.i, HDL 57

Pamięci o dostępie swobodnym RAM Biblioteki Xilinx a RAM16X1D 16 Deep by 1 Wide Static Dual Port Synchronous RAM RAM16X1S 16 Deep by 1 Wide Static Synchronous RAM RAM32X1S 32 Deep by 1 Wide Static Synchronous RAM RAM64X1S 64 Deep by 1 Wide Static Synchronous RAM RAMB16BWE 16K bit Data and 2K bit Parity Configurable Synchronous Dual Port Block RAM RAMB16BWE_S18 Primit16K bit Data and 2K bit Parity Synchronous Single Port Block RAM with 18 bit Port RAMB16BWE_S18_S18 16K bit Data and 2K bit Parity Synchronous Dual Port Block RAM with 18 bit Ports RAMB16BWE_S18_S9 16K bit Data and 2K bit Parity Synchronous Dual Port Block RAM with 18 bit and 9 bit Ports RAMB16BWE_S36 16K bit Data and 2K bit Parity Synchronous Single Port Block RAM with 36 Bit Port RAMB16BWE_S36_S18 16K bit Data and 2K bit Parity Synchronous Dual Port Block RAM with 36 bit and 18 bit Ports RAMB16BWE_S36_S36 Prim16K bit Data and 2K bit Parity Synchronous Dual Port Block RAM with 36 bit Ports RAMB16BWE_S36_S9 16K bit Data and 2K bit Parity Synchronous Dual Port Block RAM with 36 bit and 9 bit Ports RAMB16BWER 16K bit Data and 2K bit Parity Configurable Synchronous Dual Port Block RAM with Optional Output Registers AGH, WFiIS, IS, st.i, HDL 58

Biblioteki Xilinx a Pamięci stałe ROM ROM128X1 ROM16X1 ROM256X1 ROM32X1 ROM64X1 128 Deep by 1 Wide ROM 16 Deep by 1 Wide ROM 256 Deep by 1 Wide ROM 32 Deep by 1 Wide ROM 64 Deep by 1 Wide ROM AGH, WFiIS, IS, st.i, HDL 59

Rejestry i zatrzaski Biblioteki Xilinx a FDCPE D Flip Flop with Clock Enable and Asynchronous Preset and Clear FDCPE_1 D Flip Flop with Negative Edge Clock, Clock Enable, Asynchronous Preset,Clear FDRSE D Flip Flop l with Synchronous Reset and Set and Clock Enable FDRSE_1 D Flip Flop with Negative Clock Edge, Synchronous Reset and Set, Clock Enable IDDR2 Double Data Rate Input D Flip Flop with Optional Data Alignment, Clock Enable and Programmable Synchronous or Asynchronous Set/Reset LDCPE Transparent Data Latch with Asynchronous Clear and Preset and Gate Enable ODDR2 Dual Data Rate Output D Flip Flop with Optional Data Alignment, Clock Enable and Programmable Synchronous or Asynchronous Set/Reset AGH, WFiIS, IS, st.i, HDL 60

Biblioteki Xilinx a Rejestry przesuwne w oparciu o LUT SRL16 16 Bit Shift Register Look Up Table (LUT) SRL16_11 16 Bit Shift Register Look Up Table (LUT) with Negative Edge Clock SRL16E 16 Bit Shift Register Look Up Table (LUT) with Clock Enable SRL16E_1 16 Bit Shift Register Look Up Table (LUT) with Negative Edge Clock and Clock Enable SRLC16 16 Bit Shift Register Look Up Table (LUT) with Carry SRLC16_1 16 Bit Shift Register Look Up Table (LUT) with Carry and Negative Edge Clock SRLC16E 16 Bit Shift Register Look Up Table (LUT) with Carry and Clock Enable SRLC16E_1 16 Bit Shift Register Look Up Table (LUT) with Carry, Negative Edge Clock, Clock Enable AGH, WFiIS, IS, st.i, HDL 61

Biblioteki Xilinx a Elementy pierwotne na CLB lub SLICE BUFCF Fast Connect Buffer LUT1 1 Bit Look Up Table with General Output LUT1_D 1 Bit Look Up Table with Dual Output LUT1_L 1 Bit Look Up Table with Local Output LUT2 2 Bit Look Up Table with General Output LUT2_D 2 Bit Look Up Table with Dual Output LUT2_L 2 Bit Look Up Table with Local Output LUT3 3 Bit Look Up Table with General Output LUT3_D 3 Bit Look Up Table with Dual Output LUT3_L 3 Bit Look Up Table with Local Output LUT4 4 Bit Look Up Table with General Output LUT4_D 4 Bit Look Up Table with Dual Output LUT4_L 4 Bit Look Up Table with Local Output AGH, WFiIS, IS, st.i, HDL 62

Biblioteki Xilinx a Elementy pierwotne na CLB lub SLICE c. d. MULT_AND Bramk AND z przeznaczeniem do budowy szybkich multiplikatorów MUXCY 2 to 1 Multiplexer for Carry Logic with General Output MUXCY_D 2 to 1 Multiplexer for Carry Logic with Dual Output MUXCY_L 2 to 1 Multiplexer l for Carry Logic with Local Output t MUXF5 2 to 1 Look Up Table Multiplexer with General Output MUXF5_D 2 to 1 Look Up Table Multiplexer with Dual Output MUXF5_L 2 to 1 Look Up Table Multiplexer with Local Output MUXF6 2 to 1 Look Up Table Multiplexer with General Output MUXF6_D 2 to 1 Look Up Table Multiplexer with Dual Output MUXF6_L 2 to 1 Look Up Table Multiplexer with Local Output MUXF7 2 to 1 Look Up Table Multiplexer with General Output MUXF7_D 2 to 1 Look Up Table Multiplexer with Dual Output MUXF7_L 2 to 1 look up table Multiplexer with Local Output MUXF8 2 to 1 Look Up Table Multiplexer with General Output MUXF8_D 2 to 1 Look Up Table Multiplexer with Dual Output MUXF8_L 2 to 1 Look Up Table Multiplexer with Local Output XORCY XOR for Carry Logic with General Output XORCY_D XOR for Carry Logic with Dual Output XORCY_L XOR for Carry Logic with Local Output AGH, WFiIS, IS, st.i, HDL 63

Biblioteki Xilinx a Biblioteka czasowa SIMPRIM Biblioteka funkcjonalna UNISIM `timescale 1 ps / 1 ps module BUF (O, I); output O; input I; `timescale 1 ps/1 ps module X_BUF (O, I); parameter LOC = "UNPLACED"; output O; input I; buf (O, I); buf B1 (O, I); specify endmodule (I => O) = (0:0:0, 0:0:0); specparam PATHPULSE$ = 0; endspecify endmodule AGH, WFiIS, IS, st.i, HDL 64