50
kod kursu: ETD6203 __ Wrocław Programowanie Układów Logicznych – PUL Wykład 12 DR INŻ. MACIEJ RUDEK DR INŻ. DANIEL KOPIEC Optymalizacja procesu syntezy logicznej, PicoBlaze, ChipScope

Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

kod kursu: ETD6203

__ Wrocław

Programowanie

Układów Logicznych – PUL

Wykład 12

DR INŻ. MACIEJ RUDEK

DR INŻ. DANIEL KOPIEC

Optymalizacja procesu syntezy logicznej, PicoBlaze, ChipScope

Page 2: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

HDL

– Hardware Description Language

2

• ABEL (ang. Advanced Boolean Expression Language)

o Jeden z najstarszych języków opisu układów programowalnych, opracowany w firmie

DATA I/O,

• AHDL (ang. Altera Hardware Description Language)

o Opracowany przez Alterę, zintegrowany z narzędziem MAX+PLUS II,

• CUPL (ang. CUPL - Universal Compiler for Programmable Logic)

o Opracowany w firmie Logical Devices Inc.,

• VHDL (ang. Very High Speed Integrated Circuits Hardware Description Language )

o Na zlecenie Departamentu Obrony USA - 1981

o 1987 zatwierdzony standard IEEE1076, 1993 zatwierdzony standard IEEE1164, 1995

powołano standardy 1076.3, 1076.4

• Verilog

o Opracowany w firmie Gateway Design Automation 1985, migracja do Cadence Design

System 1989

Page 3: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

• Synteza logiczna

• Optymalizacja procesu syntezy

• Dekompozycja w wariancie ogólnym

• SOFTPROCESOR PicoBlaze

• ChipScope

• Podsumowanie – przykładowe pytania

Plan wykładu

3

Page 4: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

• Synteza logiczna • Translacja języka opisu sprzętu (HDL) na odpowiednią sieć

połączeń zasobów sprzętowych, bramek logicznych, przerzutników, komórek, która realizować będzie określony układ funkcjonalny

• Główny cel syntezy • Uzyskanie struktury, która po zaimplementowaniu w strukturze

układu będzie optymalna pod jakimś względem, np. powierzchni układu, szybkości działania, zużycia zasobów, łatwości testowania

• Podstawowy problem • Niedoskonałość narzędzi syntezy logicznej

Synteza logiczna

- znaczenie pojęcia

5

Page 5: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Etapy procesu implementacji

Główny cel:

• dopasowanie funkcji logicznych do

zasobów struktury programowalnej

Metody:

• wyszukiwanie wspólnych wyrażeń

logicznych, minimalizacja funkcji

• faktoryzacja pod kątem zasobów

• dekompozycja funkcjonalna

Ważną rolę w całym procesie

projektowania odgrywają procedury

syntezy logicznej, niejednokrotnie

decydujące o jakości transformacji sieci

logicznej na wynikowe struktury

odwzorowania technologicznego. 6

Page 6: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

• w dzisiejszych technologiach układy logiczne to nie tylko bramki,

• coraz większego znaczenia nabierają technologie, w których podstawowym elementem konstrukcyjnym są komórki logiczne (Logic Cell),

• metody syntezy - w szczególności minimalizacja - są nieskuteczne,

• określenie minimalnej liczby argumentów, od których funkcja istotnie zależy, jest bardzo istotna w redukowaniu złożoności obliczeniowej procedur minimalizacji funkcji boolowskich, a w konsekwencji może się przyczynić do uzyskiwania lepszych rezultatów

7

Page 7: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

CPLD • minimalizacja

dwupoziomowa,

• odwzorowanie technologiczne w

sieci bloków PAL, PLA

FPGA • dekompozycja,

• przyporządkowanie wyrażeń do

poszczególnych bloków LUT,

• rozmieszczenie bloków w strukturze,

CPLD vs FPGA

8

Page 8: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Sieć dwupoziomowa Sieć wielopoziomowa

9

Page 9: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja

Dekompozycja – odpowiedni sposób podziału całego problemu na

prostsze zagadnienia, podział projektowanego układu na podukłady

o zadanej liczbie wejść i wyjść

Rodzaje dekompozycji:

• kolumnowa,

• wierszowa,

• funkcjonalna,

• równoległa,

• szeregowa,

• zrównoważona. 10

PAL, PLA, CPLD

FPGA

Page 10: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

• Bloki LUT mające nLUT wejść umożliwiają realizację n-argumentowej funkcji, gdy spełniony jest warunek: nLUT n,

• gdy, nLUT < n wymagany jest podział argumentów

• Skuteczność dekompozycji jest tak ogromna, że mimo jej braku w narzędziach komercyjnych należy się z tymi metodami zapoznać i stosować w praktyce projektowania układów cyfrowych za pośrednictwem narzędzi uniwersyteckich.

• Metoda klasyczna to metoda tablicowa, graficzna, której podstawowe operacje wykonywane są na tzw. tablicy dekompozycji

• Z tych powodów dla struktur FPGA znacznie skuteczniejszą metodą syntezy okazuje się dekompozycja funkcji boolowskich, której istotą jest synteza funkcji boolowskich w strukturach wielopoziomowych złożonych z komponentów w postaci bloków logicznych typu LUT specyfikowanych pierwotnymi tablicami prawdy.

Dekompozycja

- ukierunkowana na układy FPGA

11

Page 11: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Jak to działa

12

Page 12: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja zrównoważona

dekompozycja

y=H(X1, G(X2))

równoległa szeregowa

13

Page 13: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja

- cel

14

Znaczenie praktyczne dekompozycji wynika

z konstrukcji typowych struktur

programowalnych jakimi są układy FPGA.

Page 14: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

• graficzne,

• analityczne,

• komputerowe,

Tablice Karnaugha, Metoda Quine’a – McCluskey’a

Pierwsze skuteczne narzędzie do minimalizacji wieloargumentowych i wielowyjściowych funkcji boolowskich (Uniwersytet Kalifornijski w Berkeley) :

Metoda i system Espresso (1984)

Podejście klasyczne

- minimalizacja funkcji boolowskich

15

Page 15: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Efekt dekompozycji

• bin2bcd1 – konwerter kodu binarnego na BCD dla liczb z zakresu od 0 do 99,

• bin2bcd2 – konwerter kodu binarnego na BCD dla liczb z zakresu od 0 do 355,

• DESboxes – zespół skrzynek podstawieniowych szyfru DES,

• rd88 – sbox z algorytmu kryptograficznego Rijndael, DESaut – kombinacyjna część układu sekwencyjnego z

implementacji algorytmu

• kryptograficznego DES,

• 5B6B – kombinacyjna część układu kodera 5B-6B,

• count4 – 4-bitowy licznik z mikrooperacjami COUNT UP, COUNT DOWN, HOLD,

• CLEAR i LOAD

W tabeli przedstawiono

wyniki porównania metody

wykorzystującej

dekompozycję

zrównoważoną systemu

DEMAIN z metodami

zaimplementowanymi w

systemach: SIS, FPGA

Express, Leonardo

Spectrum i MAX+PlusII.

16

Page 16: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

• Kanoniczna postać sumy (suma iloczynów AND-OR y=x1x2 + x3x1)

• Kanoniczna postać iloczynów (iloczyn sum OR-AND y=(x1+x2)( x3+x1))

Podejście klasyczne

- minimalizacja funkcji boolowskich

17

Page 17: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Podejście klasyczne

- minimalizacja funkcji boolowskich

18

Page 18: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Twierdzenie Ashenhursta-Curtisa

Niech będzie dana funkcja boolowska f oraz pewien podział zbioru zmiennych wejściowych na dwa rozłączne zbiory A i B,

wówczas:

f(A, B) = h(g1(B)),…gj(B), A) v(A|B) 2j

v(A|B) 2j - złożoność kolumnowa

A, B – zbiór wolny, zbiór związany

Dekompozycja funkcjonalna

- metoda klasyczna – podstawowe twierdzenie

A

B

19

Page 19: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja funkcjonalna

- metoda klasyczna – tablica dekompozycji

2 powtarzające się wzorce kolumn, istnieje dekompozycja,

zmienne x1, x2, x3 zostają przeadresowane g1, g2

Tablica dekompozycji funkcji f to inaczej macierz dwuwymiarowa o kolumnach i

wierszach etykietowanych wartościami funkcji f ze zbioru A oraz B. Elementami

macierzy są wartości jakie przyjmuje funkcja f.

Liczbę istotnie różnych kolumn oznaczamy v(A|B)

A = {x4, x5}

B = {x1, x2, x3} f(A, B) = h(x4, x5, g1(x1, x2, x3), g1(x1, x2, x3))

20

Page 20: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja funkcjonalna

- metoda klasyczna

{(0, 0, 1), (0, 1, 0), (1, 0, 0)}

{(1, 1, 0), (1, 0, 1), (0, 1, 1)}

istnieje dekompozycja

Zmienne {x1, x2, x3} zostają przeadresowana na {g1, g2}

Tablica opisuje dekompozycję funkcji g 21

wstawiamy

nowe

adresy

Page 21: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja funkcjonalna

- metoda klasyczna

Tablica opisuje dekompozycję funkcji h

kolumny zgodne są sklejane

kodowanie

może być

dowolne

22

Page 22: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja funkcjonalna

- metoda klasyczna – określenie funkcji g, h

dekompozycja g dekompozycja h

g1 g2 h

g1=x1x2 + x2x3 + x1x3

g2=x1x2x3 + x1x2x3 + x1x2x3 +x1x2x3

h=x4x5g1 + x4g1g2 + x4x5g1g2

23

Page 23: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja funkcjonalna

- dekompozycja funkcji w pełni nieokreślonych

Ustalmy, które kolumny są zgodne:

- moment decyzyjny

K0, K1 - sprzeczne

K0, K2 - sprzeczne

K0, K3 - zgodna

K0,K4 - zgodna

K0, K3

K0, K4

K0, K6

K1, K3

K1, K4

K1, K5

K1, K6

K2, K5

K2, K7

K3, K4

K4, K6

K4, K5

K4, K6

K5, K7

K0, K3, K4

K0, K3, K6

K0, K4, K6

K1, K3, K4

K1, K3, K6

K1, K4, K5

K1, K4, K6

K2, K5, K7

K3, K4, K6

K0, K3, K4, K6

K1, K3, K4, K6

K1, K4, K5

K2, K5, K7

Podejmujemy decyzję o rozłącznych

klasach zgodności

f(A, B) = h(a, b, g1(c, d, e), g2(c, d, e))

kolumny powtarzająca się

usuwamy 24

Page 24: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja funkcjonalna

- przykład

K0, K3

K0, K4

K0, K6

K1, K3

K1, K4

K1, K5

K1, K6

K2, K5

K2, K7

K3, K4

K4, K6

K4, K5

K4, K6

K5, K7

K0, K3, K4

K0, K3, K6

K0, K4, K6

K1, K3, K4

K1, K3, K6

K1, K4, K5

K1, K4, K6

K2, K5, K7

K3, K4, K6

K0, K3, K4, K6

K1, K3, K4, K6

K1, K4, K5

K2, K5, K7

K0, K3, K4, K6

K1, K4, K5

K2, K5, K7

K0, K3, K4, K6

K1, K5

K2, K7

25

Niektóre kolumny występują w więcej niż w jednej klasie

zgodności, należy więc podjąć decyzję o wyborze

rozłącznych klas zgodności, każda kolumna musi być

reprezentowana w jednej klasie zgodności

Page 25: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dekompozycja funkcjonalna

- przykład

• uzyskaliśmy realizację pierwotnej funkcji 5 argumentów w dwóch blokach

• wyjścia bloku g są jednocześnie dodatkowymi wejściami do h

• bloki te mają mniejszą liczbę zmiennych wejściowych

26

Page 26: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Łuba, Tadeusz. Synteza układów logicznych.

Wyższa Szkoła Informatyki Stosowanej i

Zarządzania, 2000

W kwestii uzupełnienia

27

Page 27: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Softprocesor

http://www.xilinx.com/support/documentation/ip_documentation/ug129.pdf 28

Page 28: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Podejście układowe

IP core (ang. Intelectual Property core – rdzeń będący własnością intelektualną) 29

Page 29: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

PicoBlzae - procesor 8-bitowy w strukturze FPGA - Ken Chapman (KCPSM3)

KCPSM (Constant(K) Coded Programmable State Machine, lub „Ken Chapman’s PSM”),

• 16-bitowe instrukcje

• 2 cykle zegara na instrukcje

• osobna magistrala danych i programu

• zajmuje 35 CLB (układ Virtex 800 posiada: 4704 CLB)

• może wykonać 35 MIPs (millions instructions per second)

• wykonuje 49 różnych instukcji

• ma 16 rejestrów

• rejestr flag: Carry, Zero

• wewnętrzna pamięć stosu ograniczona do 15 zagnieżdżeń (wywołań funkcji)

PicoBlaze - specyfikacja

30

Page 30: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

PicoBlaze jest dostępny w

postaci IP core

Zaleta:

do woli można zmieniać zarówno

oprogramowanie, jak i istniejące

peryferia, łącznie z samym

rdzeniem.

31

Page 31: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

• Ise Xilinx WebPack

• Model Sim – symulacja VHDL

• KCPSM3 asembler do PicoBlaze – na podstawie opisu *.asm generuje element pamięci opisany w VHDL

• pBlazeIDE – testowanie, kompilacja

Niezbędne oprogramowani

PicoBlaze po implementacji w układzie Spartan–3E

zajmuje zaledwie 96 slice’ów i jeden blok pamięci BRAM.

Przy takiej implementacji, mikroprocesor może być

taktowany sygnałem zegarowym do 88 MHz (44 MIPS – 44

miliony instrukcji wykonanych w ciągu jednej sekundy) 32

Page 32: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

33

Page 33: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Lista instrukcji procesora

PICOBLAZ

34

Page 34: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

PicoBlaze

– lista instrukcji - asembler

Program Counter – 10-bitowy, może

przyjmować wartości od 0 do 1023.

Jeśli PC osiągnie maksymalną

wartość, następna instrukcja będzie

wykonana spod adresu 0 (o ile nie

był to skok)

• wszystkie instrukcje wymagają

dwóch cykli zegarowych na ich

wykonanie.

• lista rozkazów obejmuje 49

instrukcji asemblerowych

35

Page 35: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

PicoBlaze

- to nic więcej jak dodatkowy komponent

component KCPSM3

port (

address : out std_logic_vector( 9 downto 0);

instruction : in std_logic_vector(17 downto 0);

port_id : out std_logic_vector( 7 downto 0);

write_strobe : out std_logic;

out_port : out std_logic_vector( 7 downto 0);

read_strobe : out std_logic;

in_port : in std_logic_vector(7 downto 0);

interrupt : in std logic;

interrupt_ack : out std_logic;

reset : in std logic;

clk: in std logic;

);

end component; component prog_rom

port(

address : in std_logic_vector( 9 downto 0);

instruction : out std_logic_vector(17 downto 0);

clk : in std_logic

);

end component;

moduł procesora Pico Blaze3

moduł pamięci programu 36

Page 36: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

37

Page 37: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

PicoBlaze

- architektura

16 – rejestrów ogólnego przeznaczenia ALU

• porty mogą być adresowane bezpośrednio przez instrukcję lub pośrednio przez rejestr

• obsługa przerwania jest bardzo szybka i wymaga jedynie 5 taktów sygnału zegarowego

pamięć programu, synch

38

Page 38: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

PicoBlaze

– lista instrukcji - asembler

;**************************************************************************************

; Stale uzyte w programie

;**************************************************************************************

CONSTANT led_signal , 01 ; numer diody LED

CONSTANT led_port_nr , 00 ; numer portu, do ktorego przylaczony jest LED

CONSTANT licznik , 2F ; do ilu bedziemy odliczac aby zmienic stan diody LED

;**************************************************************************************

; Rejestry specjalnego przeznaczenia ;

**************************************************************************************

; s0 ; rejestr użyty do zliczania impulsów

; s1 ; s1 – rejestr z wartością portu – 1

; s2 ; s2 – rejestr z wartością portu – 0

;;=========================================================

__start:

LOAD s1, 01 ; s1 <= 1

LOAD s2, 00 ; s2 <= 0

start:

LOAD s0, licznik ; ustaw licznik

LOAD sA, sA ; instrukcja pusta

petla1:

SUB s0, 01 ; odejmij jeden

COMPARE s0, 00 ; sprawdz, czy zero

JUMP NZ, petla1 ; jesli nie skocz do petla1

OUTPUT s1, led_port_nr ; ustaw sygnal LED_cntrl na „1”

LOAD s0, licznik ; ustaw licznik

petla2:

SUB s0, 01 ; odejmij jeden

COMPARE s0, 00 ; sprawdz, czy zero

JUMP NZ, petla2 ; jesli nie skocz do petla2

OUTPUT s2, led_port_nr ; ustaw sygnal LED_cntrl na „0”

JUMP start ; skocz na poczatek programu

LED_ustaw: process (clk_p, rst)

begin

if (rst = ‚1’)

then LED_cntrl <= ‚0’;

elsif clk_p’event and clk_p=’1’

then

if ((port_id=”00000000”)

and (write_strobe=’1’)) then

LED_cntrl <= out_port(0);

end if;

end if;

end process;

asm#1

asm#2

VHDL

39

Page 39: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

40

Page 40: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

• Sprawdzenie na żywym organizmie, po wykonaniu syntezy oraz implementacji

Sprawdzenie poprawności działania systemu

Źródło: https://www.element14.com/community/groups/fpga-group/blog/2015/06/17/gradient-filter-implementation-on-fpga-part-3-debugging-in-hdl

https://mil.ufl.edu/3701/DAD/DAD_tutorial.pdf

Page 41: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

• Sprawdzenie na żywym organizmie, po wykonaniu syntezy oraz implementacji

Sprawdzenie poprawności działania systemu

Page 42: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Zintegrowany analizator

Chip Scope

43

Page 43: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Wsparcie przy testowaniu funkcjonalności:

• test bench – symulacja,

• ChipScope – podgląd sygnałów

w strukturze (analizator stanów logicznych),

• narzędzie to jest częścią środowiska

projektowego ISE Design Suite

Chip Scope

44

Page 44: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Analizator Chip Scope to 2 moduły: - ILA – analizator logiczny, Integrated Logic Analyzer,

- ICON – kontroler, Integrator Controller.

Chip Scope

45

Page 45: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Au

rora

OPB SDRAM

User Logic

PL

B B

us

OP

B B

us

Bridge OPB GPIO

Arb

iter

46

Page 46: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Chip Scope

Core Generator Core Inserter

ChipScope Pro

Core Generator

Instantiate Cores into

Source HDL

Connect Internal Signals

to Core (in Source HDL)

Synthesize

Implement

Synthesize

ChipScope Pro Core

Inserter (into netlist)

Download and debugging

Using ChipScope Pro software

47

Page 47: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Chip Scope

48

Page 48: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

ChipScope

- analiza bezpośrednio w chipie

49

Page 49: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

1. Pojęcie syntezy logicznej

2. Na czym polega dekompozycja

4. PicoBlaze – architektura, główne bloki

5. PicoBlaze – informacje ogólne, lista rozkazów, porty, pamięć

6. ChipScope - zastosowanie

Przykładowe pytania

50

Page 50: Układów Logicznych – PULw12.pwr.wroc.pl/mikro/PUL_V/Wyklad/W12_v1.pdf · 2020. 5. 27. · - ukierunkowana na układy FPGA 11 . Jak to działa 12 . Dekompozycja zrównoważona

Dziękuję za uwagę

51