Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W"

Transkrypt

1 Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W mgr inż. Maciej Rudek

2 UKŁADY KOMBINACYJNE

3 Układy kombinacyjne Układ kombinacyjny jest to układ dla którego zmiana na wejściu (którymkolwiek) powoduje natychmiastową zmianę na wyjściu. Uściślając wyjście układu kombinacyjnego jest zależne tylko od bieżących stanów na wejściu. Istnieją trzy sposoby opisu układów kombinacyjnych: Przypisania ciągłe Wykorzystanie instrukcji procesu always Za pomocą funkcji i zdań.

4 Przykład: always module muxn #(parametr N=1) ( input [N-1:0] A,B, output reg [N-1:0] Y, input S); * ) if (S==1) Y=B; else Y=A; endmodule Instrukcja zdarzenia rozpoczyna się od - inaczej mówiąc jest to lista wrażliwościowa. Oznacza to, że zmiana któregokolwiek z sygnałów spowoduje wykonanie instrukcji. Czyli aktualizacja wyjścia nastąpi podczas zmiany jednego z wyjść w liście wrażliwościowej. A co w momencie gdy zapomnimy o wpisaniu do listy wrażliwościowej jednego z istotniejszych sygnałów?

5 Przykład: instrukcja warunkowa module muxn #(parametr N=1) ( input [N-1:0] A,B, output reg [N-1:0] Y, input S); if (S==1) Y=B; else Y=A; endmodule output [N-1:0] Y, assign Y = (S)? B : A; Ogólna postać wyrażenia warunkowego ma postać: if (wyrażenie_x) if (wyrażenie_z) u = u+n; else u = 0; if (S==1) Y=B; else Y=A; assign Y = (S)? B : A;

6 Rejestry zatrzaskowe module XXX ( output reg f, input a, b, c); if (a == 1) f = b & c; endmodule Czy układ ten będzie układem kombinacyjnym? W momencie gdy wejście a dla stanu niskiego nie jest w żaden sposób zdefiniowane wówczas wyjście f nie będzie ulegać zmianom. A wartość wyjścia f będzie zależeć od poprzedniej konfiguracji. Jest to rejestr zatrzaskowy (latch) Układ kombinacyjny jest to układ dla którego zmiana na wejściu (którymkolwiek) powoduje natychmiastową zmianę na wyjściu.

7 Rejestr zatrzaskowy układ kombinacyjny Dodając instrukcję else: module XXX ( output reg f, input a, b, c); if (a == 1) f = b & c; else f = 0; endmodule Wykorzystując blok begin end: module XXX ( output reg f, input a, b, c); begin f = 0; if (a == 1) f = b & c; end endmodule W momencie zamiany linijek przypisania wartości wyjścia f =0 z instrukcją if, nastąpi opisanie układu którego stan wyjścia będzie posiadać permanentny stan 0. Wynika to z wykonywania instrukcji po kolei, w kolejności zapisania. W obecnym stanie, wartość f uzyskuje tylko domyślny stan.

8 Instrukcja case module sm( output reg y, input a, b, c); wire = w={a, b, c}; //1 begin y = 1 b1; //2 if (w==3 d0 w==3 d5 w==3 d6) y=1 b0; //3 end endmodule Jak to działa? a b c x stworzenie wektora w z wejść a,b,c 2 ustawieni domyślnej wartości stanu na 1 3 wyznaczenie przypadków w których wyjście y posiada stan 0 na wyjściu.

9 Instrukcja case module cas ( output reg y, input a, b, c); case ({a,b,c}) 3 b000: y = 1 b0; 3 b001: y = 1 b1; 3 b010: y = 1 b1; 3 b011: y = 1 b1; 3 b100: y = 1 b1; 3 b101: y = 1 b0; 3 b110: y = 1 b0; 3 b111: y = 1 b1; endcase endmodule module cas ( output reg y, input a, b, c); case ({a,b,c}) 3 b000: y = 1 b0; 3 b101: y = 1 b0; 3 b110: y = 1 b0; default: y = 1 b1; endcase endmodule a b c x Wykonywanie instrukcji odbywa się w kolejności w której zostały zapisane w opisie. Klauzula default pozwala uprościć zapis.

10 Instrukcja case module cas ( output reg y, input a, b, c); case ({a,b,c}) 3 b000: y = 1 b0; 3 b101: y = 1 b0; 3 b110: y = 1 b0; default: y = 1 b1; endcase endmodule a b c x Istotną informacją jest to, że w liście wyrażeń instrukcji case można przypisać więcej niż jedno wyrażenie. Wówczas kod z prawej strony można zapisać następująco: module cas ( output reg y, input a, b, c); case ({a,b,c}) 3 d0, 3 d5, 3 d6: y = 1 b0; default: y = 1 b1; endcase endmodule

11 Wartości nieistotne - case module cas ( output reg y, input a, b, c); case ({a,b,c}) 3 b001: y = 1 b1; 3 b010: y = 1 b1; 3 b011: y = 1 b1; 3 b100: y = 1 b1; 3 b110: y = 1 b0; 3 b111: y = 1 b1; default: f = 1 bx; endcase endmodule Dla wartości wejściowych a,b,c : 1, 2, 3, 4 i 7, wyjście przyjmie stan wysoki 1, a dla wartości 6 stan niski 0 ; Natomiast dla pozostałych stan nieustalony x Co dzięki temu zyskujemy? Powoduje to zoptymalizowanie układu kombinacyjnego przez narzędzia syntezy co wiąże się z minimalizacją funkcji logicznej oraz wykorzystaniem mniejszej ilości zasobów

12 Wartości nieistotne case (wewnątrz) Wartości nieistotne mogą występować również wewnątrz wyrażenia case. Wówczas należy skorzystać z instrukcji casex lub casez. module dek; reg [7:0]; begin r = 8 bx1x0x1x0; casex (r) 8 b001100xx: instrukcja _1; 8 b1100xx00: instrukcja_2; 8 b00xx0011: instrukcja _3; 8 bxx001100: instrukcja _4; endcase end endmodule Jak to działa? Dla zmiennej 8-bitowej r posiadającej wartość: x1x0x1x0, zostanie wykonana instrukcja_2. A czy inststrukcja_4 też? NIE. Instrukcja_4 nie zostanie wykonana ze względu na priorytet kolejności występujący w opisie instrukcji case.

13 Wartości nieistotne case (wewnątrz) module cas ( output reg y, input a, b); case ({a,b}) 2 b0?: y = 1 b1; 2 b10: y = 1 b0; 2 b11: y = 1 b1; endcase endmodule Jak to działa? Zastosowanie symbolu? w specyfikacji wyrażenia spowoduje że dla wartości wejścia a = 0 wyjście układu będzie w stanie wysokim, niezależnie od stanu na wejściu b. Notacja z wykorzystaniem symbolu? powoduje zwiększenie przejrzystości oraz zaoszczędzić wielkość kodu UWAGA: dla symulatora wartość x przyjmuje jedną z 4-ch wartości, a dla fizycznego obwodu będzie to 0 lub 1

14 Atrybuty

15 Atrybuty Są to dodatkowe informacje dla narzędzi syntezy, które mogą zmienić sposób działania np.: zoptymalizować przetwarzaną funkcję logiczną. Wstawiane sa tak jak komentarz w konstrucji: (* <atrybut> *) Mogą być stosowane w formie przedrostka do deklaracji modułu, instrukcji lub połączenia portu, albo jako przyrostek związany z operatorami lub nazwami funkcji podczas jej wywołania. (* INIT= 1 *) reg Q; Sum a + (* ripple_adder *) b;

16 Atrybuty W Verilogu NIE definiuje się konkretnych nazw atrybutów, lecz sposób w jaki zostaną wykorzystane. Nazwy, wartości oraz znaczenie atrybutów zależą od narzędzi syntezy które są stosowane. chip_pin direct_enable full_case keep maxfan max_depth multstyle noprune parallel_case preserve ram_init_file ramstyle romstyle read_comments_as_hdl syn_encoding translate_off translate_on useioff verilog_input_version

17 Atrybuty: full_case i parallel_case full_case i parallel_case są atrybutami stosowanymi do instrukcji case. Instrukcja case w domyślny sposób jest typem pełnym (full), tzn. że przyjmuje wszystkie możliwe kombinacje stanów w sposób jawny lub za pomocą klauzuli default. Bez definiowania wszystkich stanów w instrukcji case, narzędzia syntezy zaimplementują w strukturę rejestr zatrzaskowy. Jest to niepożądana opcja w układach kombinacyjnych!

18 full_case W momencie nie wymienienia wszystkich stanów w instrukcji case a chcąc zachować jego działanie jako układ kombinacyjny można posłużyć się atrybutem full_case. Jego użycie spowoduje traktowanie instrukcji case (w każdym przypadku) jako typu pełnego. A nie opisane stany wejść będą traktowane jako nieistotne. Tym samym rejestry zatrzaskowe nie zostaną zaimplementowane w strukturę układu.

19 parallel_case Funkcja case będzie typu równoległego (parallel) w momencie gdy w danym czasie nie więcej niż jedno z wyrażeń związanych z case_element odpowiada co do wartości wyrażeniu znajdującemu się po słowie kluczowym case. Np. w momencie gdy wyrażenie jest zmienną, wówczas narzędzia syntezy nie mogą statycznie określić czy dana instrukcja case jest typu równoległego. Tak jak poprzednio, instrukcje case są wykonywane w kolejności występowania w opisie, wówczas może zostać zaimplementowany dekoder priorytetowy. Wiąże się to z nadmiarową rozbudową struktury co często jest nie wykorzystywane. Jeśli wiadomo, że w danym czasie tylko jedno wyrażenie case_element będzie równe wyrażeniu po słowie kluczowym to można wykorzystać do tego celu atrybut parallel_case.

20

21

22 Elementy trójstanowe Kolejnym układem kombinacyjnym sa elementy trójstanowe, które mogą przyjmować jedną z 3-ch wartości 0, 1, Z. W Języku Verilog można zamodelować taki układ strukturalnie lub behewioralnie. module 3state (input in,en, output reg out); if(en) out = in; else out = 1'bz; // assign out = EN? In : {1 bz}; endmodule

23 Funkcje i zadania Funkcje i zadania = funkcje i procedury Funkcja odpowiedzialna jest za przyjmowanie i zwracanie wartość niezbędnych do wykonania z operacji obliczenia np.: dodawania wielu zmiennych, algorytmu Zellera, Euklidesa, etc. Procedura (zadanie) - jest to fragment kodu który został wydzielony z większej całości i funkcjonuje osobno w celu realizowania konkretnego zadania / funkcji np.: wyświetla znak, zapala diodę, rysuje, wypisuje dane na wyświetlaczu.

24 Funkcje i zadania Zalety: Zwiększa czytelność kodu behewioralnego Podział opisu struktury na mniejsze bloki Ukrywanie niektórych danych dla dla reszty częsci projektu Umożliwia ułatwienie utrzymania kodu i jego modyfikację Zdefiniowane raz funkcje/zadania mogą być wykorzystywane wielokrotnie w projekcie

25 Porównanie cech funkcji i zadań Kategoria Funkcje Zadania Wywoływanie (aktywowanie) Wywołanie innych zadań i funkcji Funkcję wywołuje wyrażenie z wartością którą może zwrócić lub zostać użyta w tym wyrażeniu w celu obliczeń. Funkcja można wywołać w przez przypisanie ciągłe lub procedularnym. Z wnętrza funkcji możliwe jest wywołanie innej funkcji ale NIE można wywoływać zadania. Możliwe jest wywołanie przez funkcję tej samej funkcji lub rekurencyjnie. Osobna instrukcja procedularna wywołuje zadanie i nie może zostać wywołana z przypisania ciągłego Zadanie ma mozliwość wywołania innego zadania lub nawet funkcji. Wejścia i wyjścia Funkcja posiada co najmniej jedno wejście, jednak nie posiada portu dwukierunkowego (I/O). Z funkcji jednak można zwrócić wartość mimo braku typowego wyjścia. Zadanie nie musi mieć argumentów ale może posiadać ich wiele oraz dowolnego typu.

26 Zastosowanie funkcji - przykład Funkcja realizuje zadanie szyfrowania, przestawiają kolejność 8-bitowego słowa wejściowego, Wykorzystując operację selekcji bitowej oraz bitowej różnicy symetrycznej dokonywane jest przestawienie kolejności bitów. Wywołanie funkcji oraz przypisanie do odpowiednio starszych i młodszych części słowa.

27 Porównanie cech funkcji i zadań Kategoria Funkcje Zadania Instrukcje opóźnienia # i instrukcja wait W funkcji nie można wykorzystywać instrukcji zdarzenia W zadaniach można używać instrukcji zdarzenie. Mogą one być aktywowane współbieżnie, przez wywołanie ich z współbieżnych bloków: always/initial. Pamięć (zasoby) Zwracanie wartości Pamięć przydzielana jest statycznie dla wejść funkcji oraz zadeklarowanych wewnątrz zmiennych. Pamięć może być dynamiczna przez wykonanie ich kopii wartości i deklaracje automatyczną Do wyrażenia z którego została wywołana, funkcja zwraca tylko jedną wartość. Wartość zwracana jest do identyfikatora nazwy funkcji. Pamięć przydzielona jest statyczna dla wejść, wyjść oraz wewnętrznych zmiennych. Współbieżne wywołanie dzieli zasoby. Dzięki deklaracji automatycznej można przydzielić pamięć dynamicznie. Wartość nie jest zwracana przez zadanie, ale może zapisać ją do swoich portów dwukierunkowych lub portu wyjściowego. Jest ona kopiowana po zakończeniu wykonywania zadania.

28 Funkcja realizuje zadanie szyfrowania, przestawiają kolejność 8-bitowego słowa wejściowego, Parametr key został przekazany nie za pośrednictwem listy portów a jako sygnał zewnętrzny. Zadanie musi zostać wywołane z wnętrze procesu (instrukcji always) a NIE przez przypisanie ciągłe jak to ma miejsce w funkcji.

29 Pętle Pętle jak w wielu językach programowania mogą zostać wykorzystane w języku Verilog w symulacjach lub syntezy. W tym ostatnim jednak mogą zostać zastosowane w ściśle określonych warunkach i zależnie od stosowanych narzędzi syntezy. forevr repeat while for W języku Verilog mamy do dyspozycji cztery różne pętle

30 Pętla: forever Między pętlą forever a blokiem alweys występuje pewna analogia obie działają podobnie, wykonując daną instrukcję w nieskończoności. Jednak wykorzystujac pętlę można ją przerwać przez wykonanie instrukcji disable lub $finish. Pętla ta nie jest syntezowalna dla narzędzi Xilinx Synthesis Technology (XST)

31 Pętla: repeat Pętla repeat wykonuję się określoną ilość razy w zależności od wartości wyrażenia, które jest oblizane na samym początku jej wykonania. Nie można zmienić jej z wnętrza pętli. Pętla ta jest syntezowalna dla narzędzi XST dla stałej wartości wyrażenia.

32

33 Pętla: while Pętle while wykonywane są warunkowo, w momencie w którym wyrażenie jest prawdziwe, a jej wartość musi być modyfikowana z wnętrza pętli. While a nie można wykorzystywać do oczekiwania na zmianę sygnału, który jest generowany na zewnątrz. Pętla ta jest syntezowalna dla narzędzi XST.

34 Przykład poprawnego zastosowania Przedstawiona konstrukcja jest układem kombinacyjnym, obliczającym ilość zer w słowie wejściowym (16-bitowym) W jaki sposób uzyskać układ do obliczania jedynek wykorzystując ten kod?

35 Pętla for Działanie pętli for jest podobne do tej znanej z języka C i C++. Jednak w celu umożliwienia syntezowania kodu przez narzędzia XST należy spełnić następujące warunki: Z góry znana ilość iteracji pętli przez określone statycznie granicznych wartości, Wykorzystanie operatorów <, <=, >, >=. Obliczanie kroku jest wykonywane przez następującą formułę: i = i + 1 lub i = i 1 (wartość = wartość ± krok)

36 Przykład dla pętli for Przedstawiona konstrukcja jest układem kombinacyjnym, obliczającym ilość zer w słowie wejściowym (16-bitowym)

37 Instrukcja disable Zakończenie warunków kontynuacji jest możliwe do wykonania także w języku Verilog za pomocą instrukcji disable. Jednak jej funkcja jest bardziej ogólna niż dla typowych języków programowania. Po napotkaniu instrukcji disable, sterowanie przechodzi do następnej instrukcji poza blokiem begin end Dla narzędzi syntezy XST. Instrukcja ta jest NIE syntezowalna

38 Instrukcja generate Podobnie jak w tablicy instancji tak i dzięki instrukcji generate możliwe jest modelowanie wielu instancji danego obiektu np.: modułów, Podstawowe elementy logiczne Bloki procedularne initial i always Przypisanie ciągłe Deklaracje zmiennych i sieci Definicje zadań i funkcji Redefinicja parametrów

39 Przypomnienie: Tablice instancji module buf( input [1:8] in, oe, output [1:8] out); bufif0 ( out[1], in[1],oe[1] ), ( out[2], in[2],oe[2] ), ( out[3], in[3],oe[3] ), ( out[4], in[4],oe[4] ), ( out[5], in[5],oe[5] ), ( out[6], in[6],oe[6] ), ( out[7], in[7],oe[7] ), ( out[8], in[8],oe[8] ); endmodule 8-bitowy moduł bufora trójstanowego module suma( input [1:8] in, oe, output [1:8] out); bufif0 b[1:8] (out, in, oe); endmodule

40 Wykorzystanie bloku generate Blok generate endgenerate określa jak dane bloki będą powtarzane. Aby pętla for mogła wygenerować selekcję bitów należy wykorzystać wewnętrzną zmienną typu genvar. W rezultacie stworzone zostają 4 kopie instrukcji bufora

41 Wykorzystanie bloku generate

42 Wykorzystanie bloku generate Wykorzystanie bloku always spowoduje utworzenie czterech bloków always

43 Przypomnienie: Moduły module sumator_2( input [1:0] P,Q, output [1:0] S, input CI, output CO); suma modul_1(.a(p[0]),.b(q[0]),.y(s[0]),.cout(cy0),.cin(ci)); suma modul_2(.a(p[1]),.b(q[1]),.y(s[1]),.cout(co),.cin(cy0)); module suma( input A,B,Cin, output Y, Cout); [ ] endmodule

44 Wykorzystanie bloku generate Blok: suma W poniższym przykładzie przedstawiono połączenie jednobitowego sumatora sum1 z wykorzystaniem bloku generate. Wewnątrz funkcji for zostało wykorzystane generowanie instancji modułu sum1 oraz jego odpowiednie połączenie dla poszczególnych stopni.

45 Przykłady realizacji enkodera Jet to jedne z podstawowych rozwiązań enkodera 8- bitowego priorytowego. Zastosowano w nim instrukcję warunkową oraz proces always. W tej konstrukcji (if else) nie ma potrzeby stosowania bloku begin end ze względu zastosowanie pojedynczej instrukcji.

46 Przykłady realizacji enkodera 2 Dlaczego odwrócono kolejność sprawdzania zapalonego bitu? Ze względu na wykonywanie kolejności sprawdzania. Gdyby w kodzie zastosowano sprawdzanie od najstarszego do najmłodszego, wówczas w momencie gdy bit młodszy posiadał stan wysoki, sygnał na wyjściu byłby nieprawidłowy i reprezentował by stan z tego bitu a nie starszego. W tym przykładzie zastosowania konstrukcję enkodera bez wykorzystania klauzuli else, w tym celu należało bezwzględnie zastosować blok begin end (dlaczego?).

47 Przykłady realizacji enkodera 3 Zasadniczo nie ma co tutaj opisywać. Wykorzystano instrukcję casex śledząc pojawienie się tylko jedynki w miejscach istotnych.

48 Przykłady realizacji enkodera 4 Jest to związane z niesyntezowalnością instrukcji disable, którą należałoby zastosować przy testowaniu od bitu najstarszego, słowa wejściowego. Przykład enkodera stworzony z wykorzystaniem funkcji. Wartym zaznaczenia jest fakt, iż w pętli for testowanie słowa wejściowego zaczyna się on bitu najmłodszego. Dlaczego?

49 Przykłady realizacji enkodera 5 Ten kod został sparametryzowany umożliwiając tym samym przystosowanie go do dowolnej liczby bitów. W zaznaczonej linijce uzyskano przypisanie wstępnej wartości dla wyjścia układu stosując operację sklejania i replikacji.

50 Przykłady realizacji enkodera 6 Przykład enkodera z wykorzystaniem przypisania ciągłego

51 Dziękuję za uwagę :)

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG Projektowanie Scalonych Systemów Wbudowanych VERILOG OPIS BEHAWIORALNY proces Proces wątek sterowania lub przetwarzania danych, niezależny w sensie czasu wykonania, ale komunikujący się z innymi procesami.

Bardziej szczegółowo

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS Język HDL - VERLOG Hardware Description Language (Syntetyzowalna warstwa języka) RUS RUS VERLOG rzegląd zagadnień RUS RUS prowadzenie do języka Reprezentacja układu cyfrowego w Verilogu opis strukturalny

Bardziej szczegółowo

Programowalne układy logiczne kod kursu: ETD Podstawy języka Verilog W

Programowalne układy logiczne kod kursu: ETD Podstawy języka Verilog W Programowalne układy logiczne kod kursu: ETD008270 Podstawy języka Verilog W2 2.03.2018 mgr inż. Maciej Rudek 2 Tematyka kursu wykład Poziom abstrakcji systemów opisu sprzętu Historia Verilog został stworzony

Bardziej szczegółowo

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS Język HDL - VERLOG Hardware Description Language (Syntetyzowalna warstwa języka) RUS RUS Język VERLOG w praktyce RUS RUS VERLOG Specyfikacja układów kombinacyjnych RUS RUS Operator warunkowy Conditional_expression?

Bardziej szczegółowo

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3. Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3. Jak umieszcza się komentarze w pliku symulacyjnym PSPICE? 4.

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR

Bardziej szczegółowo

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia Projektowanie scalonych systemów wbudowanych VERILOG VERLIOG - historia Początki lat 80 XX w. Phil Moorby Gateway Design Automation symulator Verilog XL 1987 Synopsys Verilog jako język specyfikacji projektu

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Podstawy programowania Laboratorium Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Instrukcja warunkowa if Format instrukcji warunkowej Przykład 1. if (warunek) instrukcja albo zestaw

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Zapis algorytmów: schematy blokowe i pseudokod 1

Zapis algorytmów: schematy blokowe i pseudokod 1 Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu

Bardziej szczegółowo

Funkcje i instrukcje języka JavaScript

Funkcje i instrukcje języka JavaScript Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje

Bardziej szczegółowo

Laboratorium przedmiotu Technika Cyfrowa

Laboratorium przedmiotu Technika Cyfrowa Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki Informatyka I Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Operacje relacji (porównania) A

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Język Verilog w projektowaniu układów FPGA

Język Verilog w projektowaniu układów FPGA POLITECHNIKA ZIELONOGÓRSKA Wydział Elektryczny Język Verilog w projektowaniu układów FPGA Jacek Bieganowski Grzegorz Wawrzyniak Promotor: dr inż. Marek Węgrzyn Zielona Góra, czerwiec 2001 Spis treści 1.

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Podstawy programowania w języku C i C++

Podstawy programowania w języku C i C++ Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Projektowanie układów na schemacie

Projektowanie układów na schemacie Projektowanie układów na schemacie Przedstawione poniżej wskazówki mogą być pomocne przy projektowaniu układach na poziomie schematu. Stałe wartości logiczne Aby podłączyć wejście do stałej wartości logicznych

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Układy kombinacyjne. cz.2

Układy kombinacyjne. cz.2 Układy kombinacyjne cz.2 Układy kombinacyjne 2/26 Kombinacyjne bloki funkcjonalne Kombinacyjne bloki funkcjonalne - dekodery 3/26 Dekodery Są to układy zamieniające wybrany kod binarny (najczęściej NB)

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

Programowanie w Turbo Pascal

Programowanie w Turbo Pascal Skróty: ALT + F9 Kompilacja CTRL + F9 Uruchomienie Struktura programu: Programowanie w Turbo Pascal Program nazwa; - nagłówek programu - blok deklaracji (tu znajduje się VAR lub CONST) - blok instrukcji

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 3 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Instrukcja wielokrotnego wyboru Instrukcja wielokrotnego wyboru switch umożliwia podejmowanie decyzji na podstawie wartości

Bardziej szczegółowo

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu danych

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Synteza logiczna APSC

Synteza logiczna APSC Jest to proces tłumaczenia opisu projektu przygotowanego na wysokim poziomie abstrakcji na zoptymalizowaną reprezentację na poziomie bramek logicznych w oparciu o zadaną technologiczną bibliotekę komórek

Bardziej szczegółowo

ECDL Podstawy programowania Sylabus - wersja 1.0

ECDL Podstawy programowania Sylabus - wersja 1.0 ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy

Bardziej szczegółowo

Architektura komputerów Wykład 2

Architektura komputerów Wykład 2 Architektura komputerów Wykład 2 Jan Kazimirski 1 Elementy techniki cyfrowej 2 Plan wykładu Algebra Boole'a Podstawowe układy cyfrowe bramki Układy kombinacyjne Układy sekwencyjne 3 Algebra Boole'a Stosowana

Bardziej szczegółowo

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h> Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch

Bardziej szczegółowo

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja Opis zagadnieo 1-3 Iteracja, rekurencja i ich realizacja Iteracja Iteracja to czynnośd powtarzania (najczęściej wielokrotnego) tej samej instrukcji (albo wielu instrukcji) w pętli. Mianem iteracji określa

Bardziej szczegółowo

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File 1. ISE WebPack i VHDL Celem ćwiczenia jest szybkie zaznajomienie się ze środowiskiem projektowym Xilinx ISE Design Suite 10.1 oraz językiem opisu sprzętu VHDL. Tworzenie projektu Uruchom program Project

Bardziej szczegółowo

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA Licznik binarny Licznik binarny jest najprostszym i najpojemniejszym licznikiem. Kod 4 bitowego synchronicznego licznika binarnego

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja; INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while

Bardziej szczegółowo

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini

Bardziej szczegółowo

Wykład 4. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Wykład 4. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Przypisania nieblokujące Stosowanie opóźnień w przypisaniach Wykład 4 2018

Bardziej szczegółowo

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Temat: Technologia informacyjna a informatyka 1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Technologia informacyjna (ang.) Information Technology, IT jedna

Bardziej szczegółowo

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder Treść wykładów: utomatyka dr inż. Szymon Surma szymon.surma@polsl.pl http://zawt.polsl.pl/studia pok., tel. +48 6 46. Podstawy automatyki. Układy kombinacyjne,. Charakterystyka,. Multiplekser, demultiplekser,.

Bardziej szczegółowo

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench)

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench) Wstęp SYSTEMY WBUDOWANE Układy kombinacyjne c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) Systemy wbudowane Rok akad. 2011/2012

Bardziej szczegółowo

Wykład 4. Języki Opisu Sprzętu

Wykład 4. Języki Opisu Sprzętu Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Wprowadzenie do Veriloga Przypisania proceduralne (c. d.) Wykład 4 2017 8 listopad

Bardziej szczegółowo

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG Projektowanie Scalonych Systemów Wbudowanych VERILOG VERLIOG - historia Początki lat 80 XX w. Phil Moorby Gateway Design Automation symulator Verilog XL 1987 Synopsys Verilog jako język specyfikacji projektu

Bardziej szczegółowo

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG Projektowanie Scalonych Systemów Wbudowanych VERILOG VERLIOG - historia Początki lat 80 XX w. Phil Moorby Gateway Design Automation symulator Verilog XL 1987 Synopsys Verilog jako język specyfikacji projektu

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska Sumatory 1 Sumator 1-bitowy full adder Równanie boolowskie sumy: s k = a k XOR b k XOR c k = a k b k c k Równanie boolowskie przeniesienia: c k+1 = (a k AN b k ) OR (a k AN c k ) OR (b k AN c k ) = (a

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

Bardziej szczegółowo

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL 1. Cel ćwiczenia W ćwiczeniu student projektuje i implementuje w strukturze układu FPGA (Field Programmable Gate Array)

Bardziej szczegółowo

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości Stałe - constant Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości późniejszych zmian Deklarowane w ciele architektury Widoczne dla całej architektury architecture

Bardziej szczegółowo

Wykład 3 Składnia języka C# (cz. 2)

Wykład 3 Składnia języka C# (cz. 2) Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja; INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while

Bardziej szczegółowo

Laboratorium Podstaw Techniki Cyfrowej

Laboratorium Podstaw Techniki Cyfrowej Laboratorium Podstaw Techniki Cyfrowej Ćwiczenie 5: Wprowadzenie do języków opisu sprzętu 1. Języki opisu sprzętu Języki opisu sprzętu(hdl Hardware Description Language) to języki słuŝące do opisu układów

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty

Bardziej szczegółowo

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki. Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów

Bardziej szczegółowo

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE Katedra Elektroniki Akademia Górniczo-Hutnicza w Krakowie Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE opis układu w Verilog, kompilacja i symulacja

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Układy VLSI Bramki 1.0

Układy VLSI Bramki 1.0 Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie

Bardziej szczegółowo

Konstrukcje warunkowe Pętle

Konstrukcje warunkowe Pętle * Konstrukcje warunkowe Pętle *Instrukcja if sposób na sprawdzanie warunków *Konstrukcja: if(warunek) else { instrukcje gdy warunek spełniony} {instrukcje gdy warunek NIE spełniony} * 1. Wylicz całkowity

Bardziej szczegółowo

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL Arkadiusz Bukowiec 1 Radosław Gąsiorek 2 Agnieszka Węgrzyn 3 Prezentowany referat przedstawia ogólną koncepcję

Bardziej szczegółowo

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie. TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE 1. Po uruchomieni programu Greenfoot początkowa scena ma następujące składniki: a. obiekty scenerii i jeden obiekt ruchomy, b. obraz tła, jeden lub więcej

Bardziej szczegółowo

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) // to jest pojedynczy komentarz (1-linijkowy) to jest wielolinijkowy komentarz Budowa "czystego" skryptu PHP (tak

Bardziej szczegółowo

Magistrale na schematach

Magistrale na schematach Magistrale na schematach Jeśli w projektowanym układzie występują sygnały składające się z kilku powiązanych ze sobą logicznie linii (na przykład liczby wielobitowe) wskazane jest używanie magistrali (Bus).

Bardziej szczegółowo

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zapis znak - moduł (ZM) Zapis liczb w systemie Znak - moduł Znak liczby o n bitach zależy od najstarszego bitu b n 1 (tzn. cyfry o najwyższej pozycji): b

Bardziej szczegółowo

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do

Bardziej szczegółowo

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal Instrukcja wyboru, pętle 2 wykład. Podstawy programowania - Paskal Tematy Instrukcja wyboru jeden z wielu wariantów: case Pętle while repeat for Instrukcje sterowania pętli break continue goto Instrukcja

Bardziej szczegółowo

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności

Bardziej szczegółowo

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

Bardziej szczegółowo

Umieszczanie kodu. kod skryptu

Umieszczanie kodu. kod skryptu PHP Definicja PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona

Bardziej szczegółowo

Instrukcje sterujące. Programowanie Proceduralne 1

Instrukcje sterujące. Programowanie Proceduralne 1 Instrukcje sterujące Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne * mnożenie x * y x y x / dzielenie x / y y + dodawanie x +

Bardziej szczegółowo

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

Bardziej szczegółowo

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131) - języki graficzne (LD, FBD); języki tekstowe (ST, IL).

W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131) - języki graficzne (LD, FBD); języki tekstowe (ST, IL). Norma IEC-61131-3 definiuje typy języków: graficzne: schematów drabinkowych LD, schematów blokowych FBD, tekstowe: lista instrukcji IL, tekst strukturalny ST, grafów: graf funkcji sekwencyjnych SFC, graf

Bardziej szczegółowo

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie

Bardziej szczegółowo

Sposoby projektowania systemów w cyfrowych

Sposoby projektowania systemów w cyfrowych Sposoby projektowania systemów w cyfrowych Top-down Idea całości projektu Dekompozycja na mniejsze bloki Projekt i rafinacja podbloków Łączenie bloków w całość PRZYKŁAD (sumator kaskadowy) zdefiniowanie

Bardziej szczegółowo