65
kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ. MACIEJ RUDEK DR INŻ. DANIEL KOPIEC

Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

  • Upload
    others

  • View
    12

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

kod kursu: ETD6203

27.02.2020 Wrocław

Programowanie

Układów Logicznych - PUL

DR INŻ. MACIEJ RUDEK

DR INŻ. DANIEL KOPIEC

Page 2: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Prowadzący: mgr inż. Maciej Rudek

Konsultacje: Czw.: sala/budynek g. 1645-1730

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

Kontakt: email: [email protected]

PWr, C-2, 012, 015a, 104b, 404 z:

dr hab. inż. Tomasz Piasecki mgr inż. Bartosz Świadkowski

dr hab. inż. Andrzej Sikora prof. inż. Teodor Gotszalk

Informacje

2

Jakie to są

układy aktywne

a jakie pasywne?

Page 3: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• `

Kalendarz - wykład

3

Zajęcia od 27 lutego do 4 czerwca Kolokwium 10 czerwca

Poprawa 18 czerwca

Page 4: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Wymagania wstępne … cel …

Zakładam, że podstawy już opanowane…

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

Page 5: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Tematyka kursu – wykład

Page 6: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Tematyka kursu - projekt

UWAGA: Tematyka kursu ulegnie modyfikacji, proszę o zapoznanie

się z regulaminem na stronie: http://www.w12.pwr.wroc.pl/mikro

Page 7: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• Wykład: cykl 15 wykładów – kolokwium zaliczeniowe -> test wyboru + pytania otwarte,

– termin: ostatni wykład tj. 10 czerwca 2020 godz. 1515,

– poprawa: 18 czerwca

• Dostępność materiałów: - Literatura przedmiotu

- Strona internetowa

Zaliczenie - wykład

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

pul-vhdl.html

Page 8: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• Projekt: 8 spotkań,

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

– kartkówki,

– aktywność,

– projekt indywidualny: • wybór tematu,

• założenia projektowe,

• kod programu,

• uruchomienie,

• szczegółowa dokumentacja projektu,

• Prezentacja i przesłanie kodu wraz z dokumentacją.

Zaliczenie - projekt

Page 9: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• A jaki projekt?

• Brak czasu i odkładanie na „potem”,

• Systematyczność,

• Niezdefiniowanie celu i kamieni milowych,

• Konsultacje,

• Zmiana założeń,

• Prace domowe,

Zaliczenie - projekt

Przykładowe przyczyny niezrealizowania projektu

• Plagiat • „Cudzesy”

Page 10: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

W ramach powtórzenia techniki cyfrowej:

[1] K. M. Noga, M. Radwański, Multisim, Technika cyfrowa w przykładach, Wydawnictwo BTC, 2009

[2] B. Wilkinson, Układy cyfrowe, Wydawnictwa Komunikacji i Łączności, 2003

O jezyku VHDL i układach programowalnych FPGA:

[1] D. Kania, Układy logiki programowalnej, Podstawy syntezy i sposoby odwzorowania technologicznego, Wydawnictwo PWN (2012)

[2] K. Skahill, Język VHDL: projektowanie programowalnych układów logicznych, Wydawnictwa Naukowo-Techniczne, 2004

[3] M. Zwolinski, Projektowanie układów cyfrowych z wykorzystaniem języka VHDL, Wydawnictwa Komunikacji i Łączności, 2002

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

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

[6] W. Wrona, VHDL: język opisu i projektowania układów cyfrowych, Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego, 1998

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

Źródła internetowe:

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

[2] http://www.digilentinc.com/data/textbooks/intro_digital_design-digilent-vhdl_online.pdf

[3] http://www.fpga4fun.com/

[4] http://www.eng.auburn.edu/department/ee/mgc/vhdl.html

[5] http://www.ics.uci.edu/~alexv/154/VHDL-Cookbook.pdf

Literatura kursu

Page 11: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• Wiśniewski, Remigiusz ,Prototyping of Concurrent Control Systems Implemented in FPGA Devices, 2017

• Sklyarov, V., Skliarova, I., Barkalov, A., Titarenko, L., Synthesis and Optimization of FPGA-Based System, 2014

• Skliarova, Iouliia, Sklyarov, Valery, FPGA-BASED Hardware Accelerators, 2019

• Churiwala, Sanjay, Designing with Xilinx® FPGAs Using Vivado, 2017

• Fabrizio Tappero, Bryan Mealy, Free Range VHDL. The no-frills guide to writing powerful code for your digital implementations, 2013

• A. Arockia Bazil Raj, FPGA-Based Embedded System Developer's Guide, 2018

• Pong P. Chu, FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version

• Douglas L. Perry, VHDL: Programming by Example

• R. Sandige, M. Sandige, Fundamentals of Digital and Computer Design with VHDL

• https://www.xilinx.com/products/design-tools/vivado.html

• https://www.youtube.com/watch?v=eY8-qMB0ar0

• https://blog.digilentinc.com/

Literatura kursu cz2

Inne pozycje, video, linki

https://www.xilinx.com/support/documentation/university/Vi

vado-Teaching/HDL-Design/2013x/Nexys4/Verilog/docs-

pdf/Vivado_tutorial.pdf

Page 12: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Projekt indywidualn

Page 13: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• TERMIN [1]: Zajęcia wstępne, wprowadzenie

• TERMIN [2]: Wybór tematu projektu, lista założeń

• TERMIN [3-6]: Realizacja projektów

• TERMIN [7]: Prezentacja projektów

• TERMIN [8]: Prezentacja / Dyskusja / Ocena

Projekt indywidualny

Page 14: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

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

• propozycja własna – mile widziana.

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 (UML), algorytm

• opis symboli, bloków.

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

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

Termin 2 - założenia

Page 15: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

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 peryferii, np. DAC, ADC, LCD, LED…

Termin 3-6

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

Page 16: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Termin 8

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, kod

Prezentacja ustna

- PPT 5 – 7 min

Test ze sprzętem

- implementacja

Page 17: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

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 (kluczowe elementy)

9. Raport z syntezy HDL, wykorzystane zasoby

10. Wynik implementacji

11. Wnioski

Dokumentacja - zawartość

Kilka stron tekstu,

bez rysunków na pół

strony i więcej*

* Osobny załącznik

Page 18: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• Analizator stanów logicznych.

• Cyfrowy regulator PID - sterowanie temperaturą.

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

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

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

• Obsługa wyświetlacza OLED, ze sterownikiem SSD1306.

• Obsługa portu szeregowego UART - komunikacja z PC.

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

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

• Generator sygnałów arbitralnych.

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

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

Lista tematów

Page 19: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• Implementacja algorytmu szybkiej transformaty Fouriera - FFT,

• Odbiornik SDR - Software Defined Radio.

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

• Termometr - pogodynka

• Organki – syntezer częstotliwości

• Zegar czasu rzeczywistego – godziny, minuty, sekundy

• Stoper – licznik czasu

• Woltomierz, multimetr analogowy

• Sterowane enkoderem źródło napięcia w zakresie działania przetworników DAC

• Modulator, modulacja amplitudowa sygnałów

• Implementacja własnego procesora w strukturze programowalnej

• Jednostka ALU – kalkulator

• Prywatne moduły – mile widziane

Lista tematów cz. 2

Propozycje własne

Page 20: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• FPGA Xilinx Artix-7 XC7A35T-L1CSG324I,

• DDR3L 256 MB, szyna 16-bitowa, 667 MHz,

• 16 MB pamięci Flash,

• Ethernet 10/100 Mb,

• Konwerter USB – UART,

• Przełączniki, przyciski, RGB,

• złącza dla modułów Pmod,

• Złącze dla shieldów Arduino,

• Zasilanie – USB, zasilacz,

• Regulator zasilania ADP5052,

• Reset FPGA

Makieta ARTY A7

https://reference.digilentinc.com/reference/programmable-logic/arty/reference-manual?redirect=1

https://www.xilinx.com/products/silicon-

devices/fpga/artix-7.html

Page 21: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• gniazdo PS/2

• gniazdo VGA (przez D-Sub15)

• enkoder EN12

• buzzer piezo

• 4x 7segm

• LCD HD44780 2x16 znaków

• OLED SSD1306, 128x32 px

• MCP3201 ADC

• MAX5705 DAC

• SGTL5000 kodek audio

• 24C04 pamięć EEPROM

Makieta ARTY A7

Projekt wykona mgr inż. Bartosz Świadkowski, 012 C-2

• MCP9701T czujnik temp.

• PCT2075 czujnik temp.

• układ z fototranzystorem (KDT00030)

• układ z grzejnikiem rezystorowym

• 74HC595

Co to za układy?

Page 22: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Peryferia dodatkowe

HC-SR04 • Arduino Nano

• LCD Nokia – dodatkowo

• HC-SR04 – czujnik odległości

• Analog Discovery ver. 1

Page 23: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Analizator stanów logicznych firmy Digilent

pełni rolę:

• oscyloskopu,

• 16-kanałowego analizatora stanów logicznych,

• 2-kanałowego generatora

• etc.

Oscyloskop cyfrowy - AD

Page 24: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• DockLight

• Putty

• Terminal

Oprogramowanie dodatkowe

Page 25: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Podstawowa dokumentacja

• https://www.xilinx.com/support/documentatio

n/data_sheets/ds180_7Series_Overview.pdf

• https://www.xilinx.com/support/documentatio

n/data_sheets/ds181_Artix_7_Data_Sheet.p

df

• https://www.xilinx.com/support/documentatio

n/data_sheets/ds197-xa-artix7-overview.pdf

• https://www.xilinx.com/products/boards-and-

kits/arty.html#documentation

Page 26: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Oprogramowanie

https://www.xilinx.com/support/d

ownload.html

Page 27: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Projekt indywidualny - założenia

Śmiało nie gryzę

Page 28: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Jak to się zaczęło?

Page 29: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Prawo Moore’a

Prawo Moore’a

1965 –

przewiduje

wykładniczy

wzrost liczby

tranzystorów w

układach

scalonych co 12

– 18 miesięcy

Page 30: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

… od tranzystora do FPGA

Pierwszy układ scalony,

1958

Pierwszy tranzystor, 1947

Pierwszy monolityczny

układ scalony,1959 30

• 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)

Page 31: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

… od tranzystora do FPGA

31

• 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

Page 32: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Prace zapoczątkowano w 1980 przez Ross Freeman’a tworząc pierwszy układ FPGA ( Field Programmable Gate Array). Pomysł został zastrzeżony w patencie US4870302A: Configurable electrical circuit having configurable logic elements and configurable interconnects

1985 – Xilinx XC2064

https://spectrum.ieee.org/tech-history/silicon-revolution/chip-hall-of-fame-xilinx-xc2064-fpga

https://datasheetspdf.com/parts/XC2064.pdf?id=625540

Page 33: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

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.

Czym jest VLSI?

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

33

Page 34: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Zasadniczo istnieją trzy typy zastosowania technologii VLSI:

• Analogowe – wzmacniacze, filtry, przetworniki danych, pętle synchronizacji fazowych (PLL), sensory...

• ASIC (application-specific integrated circuit) - 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

Czym jest VLSI?

34

Page 35: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

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 35

Page 36: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Producenci ukł. programowalnych

36 , Altium Designer

Page 37: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

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

Definicja układu programowalnego

37

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.

Page 38: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Klasyfikacja układów logicznych

38

Page 39: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

39

Cel stosowania układów FPGA

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

… a to jego fizyczna realizacja 30 lat temu

1 układ scalony

Page 40: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

PLD - programmable logic device 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 …

40

GAL 16V8

PLD

Page 41: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

41

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 42: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Struktura wewnętrzna

PROCESOR,

MIKROKONTROLER

FPGA

42

Jaka jest różnica?

Page 43: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Macierze połączeniowe

43

Page 44: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

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 44

Page 45: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

• Język VHDL jest jednym z nowszych języków opisu i projektowania układów cyfrowych. Już w lipcu 1983 roku zespół złożony z przedstawicieli firm Intermetrics, IBM oraz Texas Instruments rozpoczął pierwszy etap pracy nad nowym językiem opisu i projektowania układów VLSI. Po roku pracy zaimplementowano dany język, dzięki czemu w grudniu 1985 otrzymano pierwszą wersję narzędzia napisanego w języku Ada dla komputerów klasy VA 11/780 i IBM 370.

• Projekt VHDL był częścią programu Departamentu Obrony USA o nazwie VHSIC, którego zadaniem było opracowanie metod projektowania oraz wykorzystanie najbardziej złożonych i bardzo szybkich układów scalonych. W roku 1987 VHDL stał się obowiązującym standardem w dziedzinie języków opisu i projektowania układów VLSI. Ulepszona wersja języka pojawiła się dopiero w 1993 roku i obecnie jest stosowana przez większość projektantów układów cyfrowych na świecie.

VHDL – język opisu sprzętu

45

Page 46: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Vivado

Page 47: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 48: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 49: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 50: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 51: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 52: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 53: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 54: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Vivado

Page 55: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 56: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 57: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 58: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 59: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 60: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 61: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 62: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 63: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 64: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL
Page 65: Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203 27.02.2020 Wrocław Programowanie Układów Logicznych - PUL DR INŻ.MACIEJ RUDEK DR INŻ.DANIEL

Dziękuję za uwagę

65