31
Plan wykładu VHDL krok po kroku, podstawy część II Obliczenia w układach FPGA Architektura układów FPGA Zegar a układy FPGA Koniec Reprogramowalne układy FPGA, 1 dr M.Pałka 21.03.2014 1 / 31 c dr Marek Pałka, Uniwersytet Jagielloński, wydział FAIS, 2013

Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Reprogramowalne układy FPGA, 1

dr M.Pałka

21.03.2014

1 / 31

c©dr Marek Pałka, Uniwersytet Jagielloński, wydział FAIS, 2013

Page 2: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Plan wykładu I

1 Plan wykładu

2 VHDL krok po kroku, podstawy część IIJednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

3 Obliczenia w układach FPGAPotokowość - ang. piplineRównoległość obliczeń

4 Architektura układów FPGA2 / 31

Page 3: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Plan wykładu II

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

5 Zegar a układy FPGACzęstotliwość pracy układu FPGAJakość zegara - jitterWytwarzanie zegarów - Spartan3Literatura

3 / 31

Page 4: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Plan wykładu III

6 Koniec

4 / 31

Page 5: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

Jednostaka projektowa - tworzenie komponentów

używanie komponentów

Komponent, który będzie użyty w ciele jednostki proejtkowej powinien zostaćnajpierw zadeklarowany. Nie jest to jednak konieczne, zazwyczaj w czasiekompilacji tworzona jest tymczasowa biblioteka work, w której zawarte sąwcześniej skompilowane komponenty będące niżej w hierarchii projektu.

Example

architecture counter of counter

5 / 31

Page 6: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

tablice

Dekleracja nowego typu tablicy o zadanej wielkości, na którą składa się wcześniejzdefiniowany typ danych. Na tej podstawie można deklarować sygnały nowegotypu.

Example

type signal_array_type is array (0 to ARRAY_SIZE 1) of std_logic_vector(7downto 0);signal signal_a_array, siganl_b_array : signal_array_type;

6 / 31

Page 7: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

Generate for

Generate for

signal X : std_logic_vector(9 downto 0);signal Y : std_logic_vector(7 downto 0)beginEtykieta_GEN : generate for i in 0 to 7 generateAND_OR_GEN : AND_OR1port map( A => X(i),B => X(i+1),C => X(i+2),Y => Y(i));end generate Etykieta_GEN; --...

Examples

X(3)

X(2)

X(9)

7 / 31

Page 8: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

Generate if

Generate if

signal X : std_logic_vector(8 downto 0);signal Y : std_logic_vector(7 downto 0);beginEtykieta_GEN_IF : if GEN_COND = 1 generateEtykieta_GEN_FOR : generate for i in 0

to 7 generateSELECT_A_IF : if i = 0 genertateAND_OR_GEN : AND_OR1port map( A => X(i), B => X(i+1),C => X(i+2), Y => Y(i));end genrate SELECT_A_IF;

SELECT_B_IF : if i > 0 genertateAND_OR_GEN : AND_OR1port map( A => Y(i-1), B => X(i+1),C => X(i+2), Y => Y(i));

end genrate SELECT_A_IF;end generate Etykieta_GEN_FOR;end generate Etykieta_GEN_IF;

Examples

8 / 31

Page 9: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

Funkcje

function

function nazwa_funkcji (lista typów) returntyp_zwracany isdeklaracjebeginciało_funckjiend nazwa_funkcji;

Examples

function convert_bool_to_std_logic(bool_in :boolean) return std_logic isbeginif bool_in then return ’1’;else return ’0’;end if;end convert_bool_to_std_logic;

Zastosowania

Funkcje stosujemy dlabloków operacji, które sączęsto wykonywane.Można je stosować wprzypadku częścipodlegającejimplementacji wukładach FPGA lub teżdla symulacji.

9 / 31

Page 10: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

Procedury

procedure

procedure nazwa_procedury (lista typów) isdeklaracjebeginciało_proceduryend nazwa_procedury;

Examples

procedure convert_bool_to_std_logic(bool_in : inboolean; my_std : out std_logic) isbeginif bool_in then my_std <= ’1’;else my_std <= ’0’;end if;end convert_bool_to_std_logic;... convert_bool_to_std_logic(my_bool,

another_my_std);

Zastosowania

Procedura wprzeciwieństwie dofunkcji może zmieniaćwartości zmiennych.Jednakże czy danazmienna może zostaćzmieniona zależne jestod jej rodzaju:

in - zmienna tylkodo odczytu,

out - zmienna tylkodo zapisu,

inout - zmienna doodczytu i zapisu.

10 / 31

Page 11: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

Typ złożony - record

record

type nazwa_zbioru is recorddeklaracje_typów;end record

Examples

type my_record is recordpreambula: std_logic_vector(55 downto 0);destMAC: std_logic_vector(47 downto 0);a_array: signal_array_type;t : time;data_src : ...;end record;signal record_a : my_record;begin...my_eth_frame.destMAC <= x"AABBCCDDEEFF";...

Zastosowania

Record może zostaćużyty dla strukturdanych, które sąużywane w szereguprocesach. Pozwala teżuprościć i sprawić abyzapis stał się bardziejprzejrzysty. Typy array irecord mogą zawierać sięw sobie.

11 / 31

Page 12: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

alias

alias

alias nazwa : typ isnazwa_właściwa(opcjonalnie_zakres)

Examples

signal periph_interface : std_logic_vector(47downto 0);alias special_data : std_logic_vector(7 downto 0)is periph_interface(40 to 47);

Zastosowanie

Alias jest alternatywnąnazwą dla już istniejącejzmiennej. Ułatwiaszybki dostęp dozłożonych typówdanych.

12 / 31

Page 13: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

package

package

package nazwa_package isdeklaracjeend nazwa_package;

Examples

package przyklad_package isconstant FLAG : std_logic_vector(15 downto 0) :=x"ABBA";type FSM_STATE is (IDLE,TEST1,TEST2);end przyklad_package; ...use work.przyklad_package.all; ...beginmy_std <= FLAG; ...

Zastosowanie

Wszystkie zmienne,stałe, componenty itp.dla przejrzystościwłaściwego kodu mogązostać umieszczone woddzielnym pliku.

13 / 31

Page 14: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Jednostaka projektowa - tworzenie komponentówTablice - arrayGenerateFunkcjeProceduryTyp złożony - recordaliaspackagepackage body

package body

package body

package nazwa_package isdeklaracjeend nazwa_package;package body nazwa_package isdefinicjeend nazwa_package;

Examples

package przyklad_package isfunction convert_bool_to_std_logic(bool_in :boolean) return std_logic;end przyklad_package;package body nazwa_package isfunction convert_bool_to_std_logic(bool_in :boolean) return std_logic is ...end convert_bool_to_std_logic;end package body;

Zastosowanie

W ciele package możnadefiniować zachowaniesię funkcji i procedur.Package powinien byćoddzielnym plikiem dlazapewnieniaprzejrzystości kodu.

14 / 31

Page 15: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Potokowość - ang. piplineRównoległość obliczeń

Potokowość - ang. pipline

((A+B)*C)-D

15 / 31

Page 16: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Potokowość - ang. piplineRównoległość obliczeń

Równoległość obliczeń

16 / 31

Page 17: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

Sygnały - standardy

U(V)

czas(s)

LVTTL

U(V)

czas(s)

LVCMOS

Logiczne '0' '1' NET SIG_IN<0> LOC ="AC9" | IOSTANDARD="LVDS_25";

NET SIG_IN<0> LOC ="AC9" | IOSTANDARD="LVCMOS_25";

NET SIG_IN<0> LOC ="AC9" | IOSTANDARD="LVTTL";

R

U(V)

czas(s)

LVDS

R

ΔVmin/max 100Ω

VO/I Hmax

VO/I HminVO/I Lmax

VO/I Lmin

Pozytywna część sygnału LVDS

Negatywna część sygnału LVDS

17 / 31

Page 18: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

Sygnały - niedopasowanie

poprawna terminacja

zła terminacjapoziom napięcia dla

jedynki logicznej

poprawne wartości logiczne

zakłócenia spowodowaneniepoprawną terminacją

Sygnał "analogowy"

Jeśli sygnał elektryczny/cyfrowy ma stosunkowo dużą szybkość narastania,wówczas linia transmisyjna powinna być rozpatrywana jako tak zwana linia długa.Sytuacja taka następuje gdy wymiar linii długiej jest porównywalny z długościąfali przesyłanego sygnału elektrynczego.

50Hz - 950 km

fale radiowe (100MHz) - 50 cm

1GHz - 5cm

W takiej sytuacji należy brać pod uwagę dopasowanie linii transmisyjnej doodbiornika - mogą wystąpić odbicia.

18 / 31

Page 19: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

LVDS

Zakłóceniaelektromagnetyczne

Sygnał LVDS (należący do grupy sygnałów różnicowych) ma tą zaletę, iżzakłócenia pochodzące z zewnątrz są w znacznym stopniu zredukowane. Wynikato z faktu iż wartość logiczna ’0’ lub ’1’ jest zależna od różnicy wartości sygnałudodatniego i ujemnego. To wraz z małą różnicą napięć pomiędzy pozytyną anegatywną częscią sygnały (typowo około +/- 350mV) daje możliwość przesyłaniadanych z szybkością do kilku Gbit/s.

19 / 31

Page 20: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

Setup i Hold

Stabilne dane

Dane

ts

th

Zegar

Czas Setup (ustalania) - jest to czas w jakim sygnał powinien być stabilny przedpojawieniem się zbocza zegara, Czas Hold (podtrzyamania) - jest to czas, wktórym sygnał powinien zachować swoją wartość po pojawieniu się zbocza zegara.W przypadku niedotrzymania powyższych czasów mogą nastąpić przekłamania wtrancmisji. W układach FPGA są specjalne instrukcje ustawiające powyższe czasy.Jest to bardzo ważne w sytuacji kiedy komunikujemy się z układu FPGA do”świata zewnętrznego”.

20 / 31

Page 21: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

FIFO

FIFO

dana do zapisu

FIFO

Zapis

FIFO

Zapis kolejnych danych

FIFO

FIFO

Zapis i odczyt

wejś

cie

wejś

cie

wejś

cie

wejś

cie

wejś

cie

wyjś

cie

WR_CLK

D_IN

RESET

RD_CLK

EMPTY

FULL

RD_DATA_CNTR

WR_EN RD_EN

D_OUT

FIFO

Pamięci FIFO w szególności są wykorzystywane w sytacji kiedy przekraczamydwie domeny zegarowe (części układu FPGA taktowane różnymi zegarami).Można je też wykorzystywać do zmiany szerekości magistrali dla napływającychdancyh (przykładowo 1bit na 16 bitów). Najczęściej szerkość magistrali danychjest potęgą liczby 2.

21 / 31

Page 22: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

Dual port RAM

CLK_A

D_IN_A

RESET

WR_A

ADR_A

RD_A

D_OUT_A

DPRAM

18kb

D_OUT_B

CLK_B

D_IN_B

WR_B

ADR_B

RD_B

Wbudowane pamięci RAM

W układach FPGA standardowoumiejscowione są bloki pamięci.Są one wbudowane (ang.embedded) w architekturęukładu FPGA i pogrupowaneprzestrzennie. Najczęściepojemność pojedyńczego blokuwynosi 18kb. Podstawowe blokipamięci można łączyć w celuuzysania większych blokówpamięci. Najczęście wykonuje sięto przy pomocy narzędzidostarczanych wrazoprogramowaniemprzeznaczonym dla układówFPGA (coregen, ipcore...).

22 / 31

Page 23: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

Rozproszony (ang. distributed) RAM

DPRAM18kb

NOT

AND OR XOR

NAND NOR XNOR

1

0

1

0

adres wyjście

LUT

komorkipamięciSRAM

Komórkapamięci

Rozproszona pamięćRAM

Do wytworzenia pamięcitypu RAM zużyte sązasoby logiczne FPGA(bramki, przerzutniki,LUT). Może to być wniektórych przypadkachlepsze ze względu naszybkość takwytworzonej pamięcigdyż może ona zostaćumieszczonabezpośrednio przydanym bloku logicznym.

23 / 31

Page 24: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

Zasoby pamięci w układach FPGA

Rodzina FPGA ilość pamięci (block ram) kb distributed RAM kbSpartan 3E 648 231Lattice E3PM 6850 303Virtex 5 18576 3420

Virtex 7 UltraSCALE 132000 28700Zasoby pamięci i zestawienie wybranych układów FPGA.

24 / 31

Page 25: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

Pamięć zewnętrzna SRAM

SRAM

W przypadkuniewystarczającychzasobów pamięci możnapodłaczyć pamięć typuSDRAM - wymaga onspecjalnego interfejsu,który może zostaćwygenerowany przezoprogramowanie dlaukładów FPGA.

25 / 31

Page 26: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Sygnały - standardySygnały - niedopasowanieLVDSSetup i HoldFIFODual port RAMRozproszony (ang. distributed) RAMZasoby pamięci w układach FPGAPamięć zewnętrzna SRAMPamięć zewnętrzna DDR RAM

Pamięć zewnętrzna DDR RAM

FPGA

DDR RAM

DDR RAM

Dostęp do pamięci możebyć zbyt wolny w takichwypadkach możnazastosować pamięciDDR. Wymagane jestjednak aby warchitekturze FPGAbyły wbudowaneelementy DDR, którepozwalają nawysłanie/odebranie wciągu jednego taktusystemoweg zegara kilkubitów (wraz ze zboczamiopadającymi jak inarastającymi.)

26 / 31

Page 27: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Częstotliwość pracy układu FPGAJakość zegara - jitterWytwarzanie zegarów - Spartan3Literatura

Częstotliwość pracy układu FPGA

Częstotliwość pracy

Częstotliwośc pracy danego układu FPGA jestograniczona poprzez:

technologię w jakiej dany układ został wykonany(długość bramki tranzystora - nm),

jakość kodu napisanego przez programistę,

użyte elementy architektoniczne,

jakość użytego zegara,

parametry kompilacji (można położyć nacisk naczęstotliwość pracy lub ilość zużytych zasobów).

27 / 31

Page 28: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Częstotliwość pracy układu FPGAJakość zegara - jitterWytwarzanie zegarów - Spartan3Literatura

Jakość zegara - jitter

zmiana f po

dłuższym czasiezmiana fazy od jednego cyklu

zegarowego do drugiego

przebieg idealny

zmiana f w funkcji

temperatury czy zasilania

Jitter

Jitter - jest to odchylenie w czasie odidealnych wartośći przebiegu okresowego.Można rozróżnić deterministyczny ilosowy. Istnieje dość duża ilośćparametrów opisująca zachownanie sięzegara ze względu na jago fazę,częstotliwość w krótkich i długichokresach. Jitter może być wprowadzanyprzez urządzenia, przez które przechodzizegar (przykładowo dystrybucja zegara).Istnieją układy pozwalające nazmniejszenie jittera (ang. jitter cleaner) -co szczególnie przydatne jest dlawysokich częstotliwości pracy.

28 / 31

Page 29: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Częstotliwość pracy układu FPGAJakość zegara - jitterWytwarzanie zegarów - Spartan3Literatura

Wytwarzanie zegarów - DCM Spartan

Block RAMColumn

DCM_X1Y1

DCM_X1Y0DCM_X0Y0

DCM_X0Y1Global buffer multiplexers

EmbeddedMultiplierColumn

Global buffer multiplexers

XC3S50 only

x462_01_061803

DS099-2_07_040103

PSINCDECPSENPSCLK

CLKIN

CLKFB

RSTSTATUS [7:0]

LOCKED8

CLKFX180

CLKFX

CLK0

PSDONE

ClockDistribution

DelayCLK90CLK180CLK270CLK2XCLK2X180CLKDV

StatusLogic

DFSDLL

PhaseShifter

DelayTaps

OutputStage

InputStage

DCM

DCM - Digital Clock Manager -Xilinx

W układach FPGA wbudowanesą dedykowane układy służącesyntezie zegara. Po lewej stronieprzykład układu dla Spartan3.

29 / 31

Page 30: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Częstotliwość pracy układu FPGAJakość zegara - jitterWytwarzanie zegarów - Spartan3Literatura

Literatura

Literatura:„Student’s Guide to VHDL” P. Ashenden“Designer’s Guide to VHDL” P. Ashenden“Język VHDL” K. Skahillhttp://www.gstitt.ece.ufl.edu/vhdl/refs/ (książka open source)Konsultacje - czwartki 13.00 pokój C-2-03, proszę się umówić wcześniej przeze-mail.

30 / 31

Page 31: Reprogramowalne układy FPGA, 1iswiki.if.uj.edu.pl/images/d/df/FPGA_Wyklad_3.pdf · 2019. 4. 3. · 5 Zegar a układy FPGA Częstotliwość pracy układu FPGA Jakość zegara - jitter

Plan wykładuVHDL krok po kroku, podstawy część II

Obliczenia w układach FPGAArchitektura układów FPGA

Zegar a układy FPGAKoniec

Dziękuję

31 / 31