79
Programowalne układy logiczne kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 – 1.03.2019 mgr inż. Maciej Rudek

kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Programowalne układy logiczne

kod kursu: ETD008270

Wprowadzenie do techniki FPGA

W1 – 1.03.2019

mgr inż. Maciej Rudek

Page 2: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Informacje…

Prowadzący:

mgr inż. Maciej Rudek

Konsultacje:

Wt: 015a/104b C2 g. 10-12

Cz: 015a/104b C2 g. 10-12

Strona kursu:

http://www.w12.pwr.wroc.pl/mikro/

Kontakt:

email: [email protected]

lab. 015a lub 104b w C2

tel. 71 320 3651

2

Page 3: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Kalendarz - wykład

Zajęcia od1marca do 17 maja Kolokwium 31 maja

3 Zajęcia połówkowe 8:00 – 9:30

Page 4: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Kalendarz - projekt

Zajęcia pełne TN

Oddanie projektu 4

Zajęcia pełne TP

Oddanie projektu

Page 5: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Wymagania wstępne … cel …

5

Zakładam, że podstawy już opanowane…

W tym roku ciąg dalszy techniki cyfrowej i VHDL-a… w praktyce

Page 6: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Tematyka kursu – wykład

6

Page 7: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Tematyka kursu - projekt

7

8 spotkań po 2 godz. (90 min) i 1 spotkanie 1 godz. (45 min)

/ Quatrus Prime - ?

Page 8: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Zaliczenie …

8

• Wykład: cykl 7 wykładów

– kolokwium zaliczeniowe -> test wyboru,

– termin: ostatni wykład tj. 31 maja 2019 godz. 8:15,

– poprawa: odpowiedź ustna (?)

Page 9: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

• Projekt: 8 spotkań,

– praca na zajęciach – kilka zadań realizowanych w czasie zajęć,

– projekt indywidualny:

• wybór tematu,

• założenia projektowe,

• kod programu,

• uruchomienie,

• szczegółowa dokumentacja projektu,

• prezentacja.

Zaliczenie … zajęcia projektowe

9

Realizacja projektu: od drugich zajęć

Page 10: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

O jezyku Verilog i układach programowalnych FPGA:

[1] D. Kania, Układy logiki programowalnej, Podstawy syntezy i sposoby odwzorowania technologicznego,

Wydawnictwo PWN (2012)

[2] J. Majewski, P. Zbysiński, Układy FPGA w przykładach, Wydawnictwo BTC, 2007.

[3] P. Zbysiński, J. Pasierbiński, Układy programowalne pierwsze kroki, wydanie 2, BTC Warszawa, 2004

[4] J. Pasierbiński, P. Zbysiński, Układy programowalne w praktyce, Wydawnictwa Komunikacji i Łączności,

2001

[5] Z. Hajduk, Wprowadzenie do języka Verilog, Wydawnictwo BTC, 2009

[6] T. Łuba, B. Zbierzchowski, Komputerowe projektowanie układów cyfrowych, WKŁ, 2000

[7] Z. Hajduk, Wprowadzenie do języka Verilog, Wydawnictwo BTC, 2009

[8] P. Minns, E. Ian, FSM-based digital design using Verilog HDL, John Wiley & Sons, 2008

[9] P.P. Chu, FPGA prototyping by Verilog examples: Xilinx Spartan-3 version. John Wiley & Sons, 2011

[10] D. Donald, P. Moorby, The Verilog® Hardware Description Language, Vol. 2. Springer Science &

Business Media, 2002

Źródła internetowe:

[1] http://www.xilinx.com/training/free-video-courses.htm

[2] http://staff.uz.zgora.pl/rwisniew/instrukcje/inne/verilog/verilog_kurs.pdf

[3] http://fiona.dmcs.pl/~cmaj/Verilog/Kurs%20verilog.pdf

[4] https://neo.dmcs.pl/jhdl/private/verilog.pdf

[5] http://www.asic-world.com/verilog/veritut.html

[6] http://www.ece.umd.edu/class/enee359a/verilog_tutorial.pdf

[7] http://referencedesigner.com/tutorials/verilog/verilog_01.php

Literatura kursu

1

0

Page 11: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Prawo Moore’a

Prawo Moore’a

1965 –

przewiduje

wykładniczy

wzrost liczby

tranzystorów w

układach

scalonych co 12

– 18 miesięcy

Page 12: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

… od tranzystora do FPGA

Pierwszy układ scalony, 1958

• 1947 pierwszy tranzystor ostrzowy skonstruowany w laboratoriach firmy Bell

Telephone Laboratories przez Johna Bardeena oraz Waltera Housera Brattaina,

• 1949 pierwszy tranzystor złączowy Shockley,

• 1958 pierwszy układ scalony, Jack Kilby, Texas Instruments, (Kilby zastosował

german i połączenia drucikami)

• 1959 pierwszy monolityczny krzemowy prototyp układu scalonego Robert Noyce,

Fairchild Sem.

• 1961 pierwsze planarne układy scalone, Fairchild Sem. i Texas Instruments

• Prawo Moore’a 1965 – przewiduje wykładniczy wzrost liczby tranzystorów w

układach scalonych co 12 – 18 miesięcy

• 1967 Micromosaic – precursoc ASIC, (Application-Specific Integrated Circuit - ASIC)

• 1970 – pamięć statyczna RAM (256 bitów) – Fairchild, symbol 4100,

• 1970 – pamięć dynamiczna RAM (1024 bity) – Intel, symbol 1103,

• 1971 – opracowanie pierwszego mikroprocesora 4-bitowego Intel 4004, (2300

tranzystorów, 34 rozkazy, 60k rozkazów/s), rok później Intel 8008 (8-bit, 45

rozkazów, 300k rozkazów/s)

• 1975 – prekursor PLD opracowany przez firmę Signetics – układ o strukturze PLA

• 1978 – opracowanie układu o strukturze PAL przez firmę Monolithic Memoriec

• 1980 – technologia CMOS, dominują układy BiCMOS i SOI, pierwszy milion

tranzystorów w jednym układzie

• 1985 – narodziny FPGA firma Xilinx

Pierwszy tranzystor, 1947

Pierwszy monolityczny układ

scalony,1959 12

Page 13: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Czym jest VLSI?

VLSI (Very-large-scale integration) – jest to proces łączenia ze sobą

tysięcy tranzysotrów w pojedynczym chipie krzemowym w celu

wykonania układu scalonego IC (integrated circuit). VLSI znane jest od

lat 70’ch i zanim się pojawiło układy elektroniczne pełniły tylko jedna

funkcję np. ROM, RAM, CPU. Wraz z pojawieniem się techniki VLSI

możliwe było wykonanie ich w pojedynczym chipie – jednym słowem

wspomaga procedurę projektową IC.

Skala integracji Liczba tranzystorów

SSI – Smal-Scale Integration 0 - 102

MSI – Medium-Scale In. 102-103

LSI – Large-Scale In. 103-105

VLSI – Very Large-Scale In. 105-107

ULSI – Ultra Large-Scale In. >= 107

Page 14: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Czym jest VLSI

Zasadniczo istnieją trzy typy zastosowania technologii VLSI:

• Analogowe – wzmacniacze, filtry, przetworniki danych,

pętle synchronizacji fazowych (PLL), sensory...

• ASIC – urządzenia które realizują ściśle określone

zadanie np.: procesory sygnałowe, układy graficzne,

kodeki dźwięku/grafiki…

• SoC (system on chip) kompletny układ cyfrowy, elementy

cyfrowe, analogowe, radiowe. Ze względu na złożoność

często poszczególne elementy pochodzą od różnych

dostawców

Page 15: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Procedura projektowa IC

Specyfikacja

Co ma dany układ wykonywać,

in/out

Architektura

Podstawowe zasoby, połączenia,

Rejestry-komunikacja

maszyny stanów, połączenia

Logika

Bramki, przełączniki, zatrzaski,

połączenia

Schemat

Tranzystory, elementy elektryczne,

połączenia

Weryfikacja

Realizacja - fabrykacja

Maski itp.

Page 16: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

VLSI vs HDL vs ASICS vs FPGA

VHDL(VHSIC HDL czyli Very High Speed Integrated Circuit

Hardware Description Language) oraz VERILOG – są

językami programowania które pomagają w automatyzacji

projektowania IC. Umożliwiają projektowanie oraz

symulację, zanim zostanie wykonana fizyczna struktura.

Pozwala to na wykonanie układu na poziomie abstrakcji(?)

RTL (register transfer level) oraz pozwala na transfer „tego

czegoś” do postaci bramek logicznych oraz połączeń między

nimi – czyli przejście do wykonania schematu połączeń i

planowania rozmieszczenia elementów.

Co to takiego to RTL? I o co chodzi z

poziomami abstrakcji?

Page 17: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Poziomy abstrakcji

• Behavioral – najwyższy poziom abstrakcji, określa

zachowanie układu, lub jego otoczenie. Jego postać

zbliżona jest do algorytmu jak w programie

komputerowym, NIE jest syntezowalny.

• RTL – niższy poziom abstrakcji, Jest zdefiniowany przez

połączone ze sobą przerzutniki, multipleksery, zatrzaski

– określa sprzęt (hardware) który ma być wykorzystany

oraz sposób wymiany danych między tymi

komponentami. JEST syntezowalny.

• Gate level – najniższy poziom abstrakcji, z

wykorzystaniem elementów logicznych, bramek. Nie

musi być syntezowalny lub może być wynikiem syntezy.

Page 18: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

VLSI vs HDL vs ASICS vs FPGA

Więc jaka jest różnica między VLSI a HDL?

• VLSI – są to duże układy oraz użyta

technologia do ich wytworzenia

• HDL – technika opisu sprzętu za pomocą

języka VHDL lub/i Verilog

Page 19: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

VLSI vs HDL vs ASICS vs FPGA

Page 20: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

FPGA vs ASIC

FPGA

• Krótszy czas wprowadzania produktu

• Brak początkowe wydatków na NRE (non-recurring

engineering)

• Prostsze cykl projektowania

• Bardziej przewidywalny cykl projektu

• Reprogramowalne pola

ASIC

• Pełna możliwość niestandardowej konfiguracji

• Niższe koszty jednostkowe (przy wielkich partiach

produkcyjnych)

• Small Form Factor – SSF – zmniejszanie rozmiarów

urządzenia do minimum

Page 21: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Producenci ukł. programowalnych

21 , Altium Designer

Page 22: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Definicja układu programowalnego

• Układ programowalny to układ scalony, którego właściwości

funkcjonalne nie są definiowane przez producenta, lecz przez

końcowego użytkownika.

• Najważniejszą cechą jest możliwość nadawania im określonych

cech funkcjonalnych przez programistę.

• Układ programowalny jest wytwarzany z pełnym zestawem

połączeń usuwanych w trakcie programowania w specjalnym

programatorze wg. zaprojektowanej maski przepaleń.

22

Page 23: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Klasyfikacja układów logicznych

23

Page 24: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

24

Cel stosowania

logicznych układów programowalnych

Załóżmy, że musimy powielić ten schemat 100 razy …

… a to jego fizyczna realizacja 30 lat temu

1 układ scalony

Page 25: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

PAL - Programmable Logic Arrays

PLA - Programmable Array Logic

Szkic architektury układów PLD o strukturze PAL i PLA

Standardowy symbol bramki AND i jego odpowiednik w

diagramie struktury PLA, PAL zajrzyjmy do wnętrza …

25

GAL 16V8

PLD

Page 26: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

26

Architektura układów CPLD i FPGA

Szkic architektury układów CPLD oraz FPGA

CPLD FPGA

CPLD – zapewnia stałe opóźnienie, przewidywalne czasy propagacji

Page 27: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Podział układów programowalnych

Procesory strukturalne Procesory proceduralne

ASIC/ASSP PLD

SPLD HCPLD

PROM CPLD

FPGA PLE PLA PAL

GAL

PLE – OR

PLA – AND

PAL – OR i AND

GAL – PAL + rekonfiguracja

Page 28: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Struktura wewnętrzna

PROCESOR,

MIKROKONTROLER

FPGA

28

Page 29: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Macierze połączeniowe

29

Page 30: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Technologia połączeń wewnętrznych

• FUSE – bezpieczniki

• ANTIFUSE – antybezpieczniki • przewodzi po przepaleniu

• programowane jednokrotnie

• dane o konfiguracji nie są przenoszone poza układ, „revers enginering” praktycznie niemożliwy

• brak wewnętrznych tranzystorów

• stosowane w lotnictwie i aeronautyce – niezawodne, odporne na promieniowanie

• 20% mniejsze zużycie mocy

• mniejsza powierzchni układu

• szybsze działanie – brak pojemności tranzystorów

• droższe w produkcji,

• nie nadają się do budowy prototypów

• EPROM – kasowalne światłem UV

• EEPROM – kasowalne elektrycznie (reprogramowalna)

• FLASH • programowanie wielokrotne,

• zawartość pamięci nieulotna

• droższe ze względu na integrację pamięci FLSAH, skomplikowany proces technologiczny

• większy pobór mocy

• SRAM • programowane wielokrotnie

• oparte na technologii CMOS

• SRAM ulotne, konieczność ponownego programowanie po wyłączeniu zasilania, ładownie z

zewnętrznej pamięci EPROM lub FLASH

• opóźniony start urządzenia – ze względu na czas ładowania programu

• rozmiar fizyczny komórki SRAM o rząd większe niż rozmiary złącza programowalnego 30

Page 31: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

XILINX vs ALTERA

XILINX ALTERA MAX 10

Page 32: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

XILINX vs ALTERA

Page 33: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

XILINX vs ALTERA

configurable logic blocks CLB - XILINX

Logic array blocks LAB - ALTERA

Page 34: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Przykładowe pytania

1. Klasyfikacja układów programowalnych.

2. Wskazać zasadnicze różnice między układami PLA, PLE oraz PAL.

3. Wskazać różnice w budowie układów CPLD oraz FPGA.

4. Czym różni się VLS od FDL?

5. Czym różnią się układy HCPLD od SPLD?

6. Wskazać różnicę między mikrokontrolerem a procesorem.

7. Czy układy CPLD/FPGA realizują operacje sekwencyjnie czy równolegle ?

8. Na jakie parametry układu CPLD/FPGA należy zwrócić uwagę ?

9. Jakie są poziomy napięć akceptowane przez układy FPGA ?

35

Page 35: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Programowalne układy logiczne

kod kursu: ETD008270

Wprowadzenie do Altery

W1 – 22.02.2018

mgr inż. Maciej Rudek

Page 36: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Makieta - Altera

FPGA 10M08DAF256C8GES

• 8000 komórek LE

• 378 kb konfigurowalnej pamięci M9K

• 1376 kb wewnętrznej pamięci Flash dla

aplikacji użytkownika

• Flash

• Wewnętrzny generator

• 12-bitowy przetwornik ADC @1MSPS

• 24 sprzętowe multiplikatory

• 2 wewnętrzne generatory PLL

• sensor temperatury

• interfejsy LVDS

Page 37: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Makieta - Altera

• 5 kanałów ADC (12 bitów/1 MSPS) z ochroną nadnapięciową (zakres pomiarowy

0…+2,5 V)

• Interfejs HDMI (z warstwą fizyczną CEC oraz DDC)

• Interfejs wideo VGA

• Generator sygnału zegarowego 10 MHz

• 4 diody LED dla aplikacji użytkownika

• 2 diody LED sygnalizacyjne (zasilanie, konfiguracja FPGA)

• Potencjometr analogowy

• Gniazdo karty Flash MicroSD

• Złącze konwertera USB/UART

• Zasilacz na układach Altera Enpirion

• Przycisk globalnego zerowania

• Zasilanie z USB (z bezpiecznikiem polimerowym) lub napięciem 5 V z zewnętrznego

zasilacza

• Złącze JTAG zgodne z USB Blasterem

Page 38: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Wybór na stronie

https://www.altera.com/products/design-software/fpga-design/quartus-

prime/download.html

Page 39: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Wybór na stronie

Page 40: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Wybór na stronie

Page 41: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Pobieranie plików

Page 42: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Instalacja

Page 43: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Instalacja

Page 44: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Obsługa programu

Page 45: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

10M08DAF256C8GES

Page 46: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Makieta

Page 47: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

• Czujnik temperatury STLM20W87F

firmy STMicroelectronics

• Cztery wyświetlacze 7-segmentowe,

sterowane multipleksowo

• Dwie diody wielokolorowe (RGB)

typu WS2812B

• Wbudowane dwa przyciski

użytkownika oraz przycisk

zerowania

Page 48: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Programowalne układy logiczne

kod kursu: ETD008270

Wprowadzenie projektów

mgr inż. Maciej Rudek

Page 49: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Tematyka kursu - projekt

5

0

8 spotkań po 2 godz. (90 min) i 1 spotkanie 1 godz. (45 min)

Page 50: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

TERMIN 2

5

1

1. Wybór tematu projektu (przemyśleć): • lista na stronie www,

• propozycja własna.

2. Założenia projektowe do wybranego tematu: • układ, urządzenie, peryferia,

• ogólna koncepcja, zasada działania, zastosowanie.

3. Proces realizacji: • schemat działania, diagram przepływu danych, algorytm

• opis symboli, bloków.

4. Zasoby sprzętowe: • ilość potrzebnych układów peryferyjnych,

• ocena możliwości implementacji w sprzęt.

Ocena na podstawie raportu *.doc, z powyższych punktów

Page 51: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

TERMIN 3-6

5

2

1. Realizacja koncepcji projektowej • kod VHDL,

• diagramy, maszyna/y stanów itp…,

• ograniczenia.

2. Kodowanie • testy, głównie testbench,

• komponenty,

• schemat kodowy,

• troska o zasoby sprzętowe.

3. Implementacja • testy poszczególnych funkcjonalności ze sprzętem,

• testowanie peryferiów, np. DAC, ADC, DS18B20 itp.

Ocena na podstawie postępów – realizacji założeń

Page 52: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

TERMIN 8

5

3

Oddanie projektu

Zaliczenie: na podstawie projektu oraz ocen cząstkowych:

waga oceny z projektu indywidualnego: 65%

Proszę brać pod uwagę fakt, że na realizacją projektu należy poświęcić

więcej czasu niż wynika to z ilości godzin przeznaczonych na projekt.

Dokumentacja:

PDF

Prezentacja ustna

- PPT 5 – 7 min

Test ze sprzętem

- implementacja

Page 53: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Dokumentacja projektu - zawartość

5

4

1. Temat projektu

2. Ogólny opis projektu z zaznaczeniem jego funkcji

3. Założenia projektowe, ograniczenia, koncepcja

4. Zastosowane urządzenia peryferyjne np. LCD, ADC, itp. lista wraz z

opisem zasady działania

5. Schematy maszyn stanów, diagramy przepływu danych, opis

realizowanych funkcji przez poszczególne bloki

6. Podział projektu na komponenty

7. Schemat projektu generowany z ISE

8. Symulacja – test bench

9. Raport z syntezy HDL, wykorzystane zasoby

10. Wynik implementacji

11. Wnioski

Page 54: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

5

5

Lista tematów

1. Analizator stanów logicznych.

2. Cyfrowy regulator PID - sterowanie temperaturą.

3. Obsługa interfejsu VGA - wyświetlenie dowolnego tekstu na ekranie

monitora.

4. Obsługa interfejsu PS2 - odczyt danych z klawiatury komputera.

5. Obsługa wyświetlacza LCD ze sterownikiem HD44780.

6. Obsługa portu szeregowego - komunikacja z PC.

7. Częstotliwościomierz sygnałów okresowo zmiennych.

8. Generator sygnału sinusoidalnego o regulowanej częstotliwości.

9. Generator sygnałów arbitralnych.

10. Trójkanałowy sterownik PWM o regulowanych parametrach.

11. Realizacja maszyny stanów - pralka, automat do kawy itp...

12. Implementacja algorytmu szybkiej transformaty Fouriera - FFT.

Page 55: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

5

6

Lista tematów

13. Odbiornik SDR - Software Defined Radio.

14. Obsługa interfejsu USB - komunikacja z PC.

15. Obsługa interfejsu ETHERNET - serwer lub klient, komunikacja.

16. Termometr DS18B20 - pogodynka

17. Organki – syntezer częstotliwości

18. Zegar czasu rzeczywistego – godziny, minuty, sekundy

19. Stoper – licznik czasu

20. Woltomierz, multimetr analogowy

21. Sterowane enkoderem źródło napięcia w zakresie działania

przetworników DAC

22. Modulator, modulacja amplitudowa sygnałów

23. Implementacja własnego procesora w strukturze programowalnej

24. Jednostka ALU – kalkulator

Page 56: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

57

Obsługa portu szeregowego - komunikacja z PC

Projekt powinien zawierać: - informację na temat transmisji szeregowej

(wymagane linie, poziomy napięć),

- specyfikacja sprzętowa,

- budowa ramki danych,

- maszyna stanów,

- kod, symulacja

- implementacja

Page 57: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Obsługa portu szeregowego - komunikacja z PC

Projekt powinien zawierać: - testy komunikacji z PC np. przez Docklight, Terminal, Putty

58

Page 58: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Analizator stanów logicznych

59

Projekt powinien zawierać: - specyfikację, czyli informację o parametrach sygnałów wejściowych: poziomy logiczne,

możliwość identyfikacji standardowych ramek, pakietów danych

- specyfikacja sprzętowa, jak będzie prezentowany wynik analizy, ile kanałów będzie

obsługiwanych,

- sposób implementacji projektu,

- kod, testy

- implementacja

Prezentacja wyniku:

- wyświetlacz alfanumeryczny 2 x 16,

- wyświetlacz 4 x 7 segmentów,

- monitor,

- transmisja do PC

Page 59: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Termometr DS18B20 - pogodynka

60

Projekt powinien zawierać: - specyfikację, zakres mierzonych temperatur,

- schemat połączeniowy

- informacje na temat interfejsu 1-wire,

- sposób prezentacji wyniku,

- sposób implementacji projektu,

- kod, testy

- implementacja

Prezentacja wyniku:

- wyświetlacz alfanumeryczny 2 x 16,

- wyświetlacz 4 x 7 segmentów,

- monitor,

- transmisja do PC,

- diody LED

Page 60: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Woltomierz, multimetr analogowy

61

Prezentacja wyniku:

- wyświetlacz alfanumeryczny 2 x 16,

- wyświetlacz 4 x 7 segmentów,

- monitor,

- transmisja do PC,

- diody LED

Projekt powinien zawierać: - specyfikację, zakres mierzonych napięć,

- schemat połączeniowy, blokowy,

- informacje na temat wykorzystywanych układów peryferyjnych DAC, ADC itp..

- sposób prezentacji wyniku,

- sposób implementacji projektu,

- kod, testy

- implementacja

Page 61: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Zegar czasu rzeczywistego, stoper

62

Prezentacja wyniku:

- wyświetlacz alfanumeryczny 2 x 16,

- wyświetlacz 4 x 7 segmentów,

- monitor,

- transmisja do PC,

- diody LED

Projekt powinien zawierać: - specyfikację, czyli co i jak długo liczymy co wyświetlamy,

- schemat połączeniowy, blokowy

- sposób prezentacji wyniku,

- sposób implementacji projektu,

- kod, testy

- implementacja

Page 62: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Pytania …?

sugestie …?

uwagi …?

63

Page 63: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Wprowadzenie do środowiska

ISE WebPACK

Page 64: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Strona

https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadN

av/design-tools.html 65

Page 65: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Xilinx Ise WebPACK

66

Page 66: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Xilinx Ise WebPACK

67

Page 67: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Xilinx Ise WebPACK

68

Page 68: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Xilinx Ise WebPACK

Zintegrowane środowisko Xilinx Ise WebPACK:

- implementacja układów cyfrowych,

- oraz złożonych funkcjonalności.

69

Page 69: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Xilinx Ise WebPACK

70

Tworzenie opisu sprzętu na

podstawie:

- VHDL,

- Verilog,

- Schematu.

Testowanie funkcjonalności:

- Test Bench

Łączenie funkcjonalności:

- pakiety,

- moduły

- systemy wbudowane np.

PicoBlaze

Page 70: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Xilinx ISE – we/wy - Plan Ahead

Processes

User Constraints

I/O Pin Planning

Zintegrowane

środowisko

projektowania,

planowania rozkładu

pinów, analizy

czasowej , lokowania

zasobów 71

Page 71: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Plan Ahead - I/O Planner View

Rozmieszczenie pinów I/O układu,

- odwzorowanie rzeczywiste

Widok wnętrza struktury układu

FPGA, zasoby 72

Page 72: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Znaczenie symboli pinów I/O S

yg

nał

GN

D

Dystrybucja zegara: dedykowane linie i wejścia układu do dystrybucji szybkich

sygnałów zegarowych zapewniające minimalne nierównomierności czasów pojawienie

się zboczy zegara. Możliwy jest dostęp do linii zegarowych poprzez globalne bufory

z wyprowadzeń układu lub z linii połączeniowych ogólnego przeznaczenia

Zas

ila

nie

VC

C

Pin

og

óln

eg

o

prz

ezn

ac

zen

ia z

mo

żli

wo

ścią

dys

try

bu

cji

sy

gn

ału

zeg

aro

weg

o

Pin

og

óln

eg

o

prz

ezn

aczen

ia

Pin

ko

nfi

gu

racyjn

y

Pin

nie

po

dłą

czo

ny d

o

str

uktu

ry w

ew

nętr

zn

ej

Pin

in

terf

ejs

u J

TA

G

(TM

S,

TD

O,

TC

K,

TD

I)

73

Page 73: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Plan Ahead – RTL – diagram

Symboliczna reprezentacja zawartości

struktury programowalnej 74

Page 74: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Plan Ahead – konfiguracja I/O

Możliwe opcje konfiguracji portów, linii

wejścia/wyjścia

75

Page 75: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Poziomy logiczne I/O

Prąd wyjściowy dla

określonych standardów

76

Page 76: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Stany I/O

Możliwe opcje konfiguracji portów, linii

wejścia/wyjścia

Schemat połączeń wewnętrznych w

obrębie portów wejścia/wyjścia

Pin wejścia/wyjścia

- możliwość komunikacji ze

światem zewnętrznym

sterowalny „pull up”

sterowalny „pull down”

stan pływający

„weak keeper”

77

Page 77: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Opcje we/wy - Netlista

Wymagania dla projektu są zadawane w pliku UCF (User Constraints File):

- wyprowadzenia układu (który sygnał na której końcówce),

- wymagania czasowe (częstotliwość zegara, maksymalne opóźnienia),

- wymagania na rozmieszczenie komponentów. 78

Page 78: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Opcje we/wy - Netlista

79

Tworzenie netlisty: sieć połączeń wewnętrznych

NET – sygnał,

LOC – lokalizacja wewnątrz układu,

IOSTANDARD – standard sygnału wyjściowego itp.

PULLUP, PULDOWN … - sposób „podciągania” we/wy do potencjału

Page 79: kod kursu: ETD008270 Wprowadzenie do techniki FPGA W1 1.03w12.pwr.wroc.pl/mikro/PUL_Verilog/Wyklad/W1.pdf · 2019-05-10 · 2. Wskazać zasadnicze różnice między układami PLA,

Xilinx ISE – programowanie - Impact

Konfiguracja

• polega na zapisie tzw. bitstream do

pamięci konfiguracyjnej układu FPGA,

• tryby konfiguracyjne: slave serial,

master serial, slave parallel oraz

boundary-scan,

• boundary-scan umożliwia zeskanowanie

wszystkich we/wy układu,

• odczyt konfiguracji z pamięci FLASH lub

PROM,

• wykorzystanie protokołu JTAG, IEEE 1149

• Readback – możliwość odczytania danych

konfiguracyjnych układu wraz ze stanem

wszystkich przerzutników, pamięci RAM,

LUT

80