Układów Logicznych - PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W1_v1.pdf · kod kursu: ETD6203...

Preview:

Citation preview

kod kursu: ETD6203

27.02.2020 Wrocław

Programowanie

Układów Logicznych - PUL

DR INŻ. MACIEJ RUDEK

DR INŻ. DANIEL KOPIEC

Prowadzący: mgr inż. Maciej Rudek

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

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

Kontakt: email: maciej.rudek@pwr.edu.pl

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?

• `

Kalendarz - wykład

3

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

Poprawa 18 czerwca

Wymagania wstępne … cel …

Zakładam, że podstawy już opanowane…

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

Tematyka kursu – wykład

Tematyka kursu - projekt

UWAGA: Tematyka kursu ulegnie modyfikacji, proszę o zapoznanie

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

• 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

• 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

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

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

• 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

Projekt indywidualn

• 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

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

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ń

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

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

• 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

• 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

• 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

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

Peryferia dodatkowe

HC-SR04 • Arduino Nano

• LCD Nokia – dodatkowo

• HC-SR04 – czujnik odległości

• Analog Discovery ver. 1

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

• DockLight

• Putty

• Terminal

Oprogramowanie dodatkowe

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

Oprogramowanie

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

ownload.html

Projekt indywidualny - założenia

Śmiało nie gryzę

Jak to się zaczęło?

Prawo Moore’a

Prawo Moore’a

1965 –

przewiduje

wykładniczy

wzrost liczby

tranzystorów w

układach

scalonych co 12

– 18 miesięcy

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

… 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

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

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

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

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

Producenci ukł. programowalnych

36 , Altium Designer

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

Klasyfikacja układów logicznych

38

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

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

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

Struktura wewnętrzna

PROCESOR,

MIKROKONTROLER

FPGA

42

Jaka jest różnica?

Macierze połączeniowe

43

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

• 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

Vivado

Vivado

Dziękuję za uwagę

65

Recommended