Generowanie równań boolowskich dla syntezowalnych źródeł języka VHDL opisujących logikę sekwencyjną

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

Download "Generowanie równań boolowskich dla syntezowalnych źródeł języka VHDL opisujących logikę sekwencyjną"

Transkrypt

1 P O L I T E C H N I K A S Z C Z E C I Ń S K A W Y D Z I A Ł I N F O R M A T Y K I mgr inż. Tomasz Wierciński Generowanie równań boolowskich dla syntezowalnych źródeł języka VHDL opisujących logikę sekwencyjną R o z p r a w a d o k t o r s k a P R O M O T O R : prof. dr hab. inż. Włodzimierz Bielecki SZCZECIN 2005

2 SSTRESZCZEN Sformatowano IETRESZCZENIE V HDL jest szeroko rozpowszechnionym i cieszącym się dużą popularnością w zastosowaniach przemysłowych językiem projektowania, symulacji oraz syntezy układów cyfrowych. Powstał w latach osiemdziesiątych jako część programu VHSIC (ang. Very High Speed Integrated Circuits) prowadzonego przez Departament Obrony Stanów Zjednoczonych, a w 1987 roku stał się standardem organizacji IEEE. Główną cechą języka VHDL jest umożliwienie projektantowi układów scalonych opisywania funkcji, struktury i parametrów realizowanego układu na wysokim poziomie abstrakcji, w sposób podobny do pisania programu w komputerowym języku programowania. Ze względu na szerokie zastosowanie, język VHDL posiada wiele konstrukcji, które nie pozwalają na bezpośrednią implementację sprzętową. W celu umożliwienia syntezy, konieczne jest wyodrębnienie pewnego podzbioru instrukcji języka, wystarczającego do opisu układów znajdujących się w sferze zainteresowań przemysłu elektronicznego. Ważną cechą języka VHDL jest możliwość określenia zachowań modelowanego układu w zależności od czasu. Służą do tego predefiniowane typy oraz instrukcje umożliwiające projektowanie układów sekwencyjnych sterowanych sygnałem zegarowym. W niniejszej pracy zawarto propozycję nowych metod kompilacji syntezowalnych źródeł VHDL opisujących układy sekwencyjne. Opracowane algorytmy dotyczą generowania zarówno pojedynczych elementów, w postaci

3 Streszczenie zatrzasków i przerzutników, jak i całych, złożonych struktur logicznych. Do sterowania synchronizacją układów wielostanowych wykorzystano model maszyny stanów, będący implementacją automatu skończonego Mealy ego. W pracy opisano budowę takiego modelu wraz z omówieniem wszystkich wejść i wyjść układu, a także przedstawiono reprezentujący go zbiór równań boolowskich. Zawarto w niej również szereg algorytmów analizy instrukcji procesu języka VHDL oraz generowania jednostki sterującej i jednostki wykonawczej maszyny stanów. Rozdział 4 pracy przedstawia i interpretuje wyniki eksperymentów identyfikujące potencjał skuteczności proponowanych algorytmów w środowisku istniejących kompilatorów VHDL. Omawia on również proces weryfikacji równań boolowskich, uzyskanych w wyniku kompilacji źródeł VHDL pochodzących z bazy testów opracowanych przez firmę Aldec oraz przez autora pracy. Rozdział przedstawia także narzędzia użyte do testowania, w skład których wchodzą zarówno kompilatory i symulatory przemysłowe, jak i akademickie, zbudowane specjalnie dla potrzeb projektu. W rozdziale 5 wskazane zostały kierunki dalszych badań, jakie mogą być prowadzone w ramach rozważanej dziedziny, jednym z których jest możliwość wykorzystania uzyskanych wyników przy implementacji kompilatorów innych języków opisu sprzętu, takich jak Verilog lub SystemC. Ponieważ duża część pojęć zaprezentowanych w pracy, mających swoje źródło w literaturze angielskojęzycznej, nie doczekała się jeszcze oficjalnego tłumaczenia na język polski, dlatego pragnę z góry przeprosić za wszelkie niedoskonałości mojej pracy związane z tym faktem. Słowa kluczowe: język VHDL, techniki kompilacji, synteza logiczna, projektowanie układów cyfrowych, równania boolowskie. Adres autora: T o m a s z W i e r c i ń s k i P o l i te c h n i k a S z c z e c i ń s k a Wydział Informatyki Katedra Technik Programowania ul. Żołnierska 49, Szczecin twiercinski@wi.ps.pl

4 Streszczenie

5 Pragnę szczególnie i serdecznie podziękować mojemu promotorowi Panu profesorowi Włodzimierzowi Bieleckiemu za pomoc udzieloną w trakcie realizacji pracy naukowej i cenne uwagi merytoryczne. Pracę dedykuję mojej Mamie Tomasz Wierciński

6 S P I S T R E Ś C I Sformatowano SPIS RYSUNKÓW... vi SPIS TABEL... ix SPIS SYMBOLI I SKRÓTÓW... x 1. WSTĘP STAN PROBLEMU CEL I TEZA PRACY STRUKTURA PRACY UKŁADY SEKWENCYJNE Klasyfikacja układów sekwencyjnych Sposoby opisu układów sekwencyjnych INSTRUKCJE JĘZYKA VHDL IMPLIKUJĄCE LOGIKĘ SEKWENCYJNĄ Instrukcja procesu Instrukcja oczekiwania wait Instrukcja warunkowa if Instrukcja warunkowa case Instrukcje pętli Instrukcja przypisania PODSUMOWANIE SYNTEZA UKŁADÓW SEKWENCYJNYCH ZE ŹRÓDEŁ VHDL GENEROWANIE ZATRZASKÓW Zatrzask typu D wyzwalany poziomem wysokim GENEROWANIE PRZERZUTNIKÓW Przerzutnik typu D wyzwalany zboczem narastającym Przerzutnik typu D wyzwalany zboczem opadającym Przerzutnik typu D z wejściami asynchronicznymi R i S wyzwalany zboczem narastającym i

7 Spis treści Przerzutnik typu D z wejściami asynchronicznymi R i S wyzwalany zboczem opadającym Przerzutnik synchroniczny RS wyzwalany zboczem narastającym Przerzutnik synchroniczny RS wyzwalany zboczem opadającym Przerzutnik synchroniczny RS z dodatkowymi wejściami asynchronicznymi wyzwalany zboczem narastającym Przerzutnik synchroniczny RS z wejściami asynchronicznymi wyzwalany zboczem opadającym GENEROWANIE MASZYNY STANÓW Budowa i działanie maszyny stanów PODSUMOWANIE ALGORYTM GENERACJI RÓWNAŃ BOOLOWSKICH DLA INSTRUKCJI PROCESU OPISUJĄCYCH LOGIKĘ SEKWENCYJNĄ ANALIZA STANÓW PROCESU ORAZ GENERACJA DANYCH POTRZEBNYCH DO ZBUDOWANIA MASZYNY STANÓW I DODATKOWYCH ATRYBUTÓW DLA KAŻDEJ INSTRUKCJI PRZYPISANIA W PROCESIE Z INSTRUKCJĄ WAIT Analiza instrukcji wait Analiza instrukcji warunkowych Analiza instrukcji pętli loop i while...loop Analiza instrukcji next Analiza instrukcji exit Analiza instrukcji przypisania Generowanie równania sygnału zerującego licznik GENEROWANIE RÓWNAŃ BOOLOWSKICH JEDNOSTKI STERUJĄCEJ GENEROWANIE RÓWNAŃ BOOLOWSKICH JEDNOSTKI WYKONAWCZEJ PODSUMOWANIE WERYFIKACJA SKUTECZNOŚCI PRZEDSTAWIONYCH ROZWIĄZAŃ METODY I NARZĘDZIA WERYFIKACJI OSZACOWANIE SKUTECZNOŚCI OPRACOWANYCH ALGORYTMÓW PODSUMOWANIE PODSUMOWANIE I PRZEDSTAWIENIE WYNIKÓW PRACY ii

8 Spis treści 5.1. OSZACOWANIE ZŁOŻONOŚCI CZASOWEJ OPRACOWANYCH ALGORYTMÓW PRACE POKREWNE A. Szablony układów sekwencyjnych generowane przez kompilator VHDL2BOOL 124 A.1. ZATRZASK TYPU D WYZWALANY POZIOMEM WYSOKIM A.1.1. Budowa zatrzasku typu D A.2. PRZERZUTNIK TYPU D WYZWALANEGO ZBOCZEM NARASTAJĄCYM A.2.1. Budowa dwuzboczowego przerzutnika typu D wyzwalanego zboczem narastającym A.2.2. Budowa przerzutnika typu D bez opóźnienia czasowego wyzwalanego zboczem narastającym A.3. PRZERZUTNIK TYPU D WYZWALANY ZBOCZEM OPADAJĄCYM A.3.1. Budowa dwuzboczowego przerzutnika typu D wyzwalanego zboczem opadającym 126 A.3.2. Budowa przerzutnika typu D bez opóźnienia czasowego wyzwalanego zboczem opadającym A.4. PRZERZUTNIK TYPU D Z WEJŚCIEM CE WYZWALANY ZBOCZEM NARASTAJĄCYM A.4.1. Budowa dwuzboczowego przerzutnika typu D z wejściem CE wyzwalanego zboczem narastającym A.4.2. Budowa przerzutnika typu D bez opóźnienia czasowego z wejściem CE wyzwalanego zboczem narastającym A.5. PRZERZUTNIK TYPU D Z WEJŚCIEM CE WYZWALANY ZBOCZEM OPADAJĄCYM A.5.1. Budowa dwuzboczowego przerzutnika typu D z wejściem CE wyzwalanego zboczem opadającym A.5.2. Budowa przerzutnika typu D bez opóźnienia czasowego z wejściem CE wyzwalanego zboczem opadającym A.6. PRZERZUTNIK TYPU D Z WEJŚCIAMI ASYNCHRONICZNYMI R I S WYZWALANY ZBOCZEM NARASTAJĄCYM A.6.1. Budowa dwuzboczowego przerzutnika typu D z wejściami asynchronicznymi R i S wyzwalanego zboczem narastającym A.6.2. Budowa przerzutnika typu D z wejściami asynchronicznymi R i S bez opóźnienia czasowego wyzwalanego zboczem narastającym A.7. PRZERZUTNIK TYPU D Z WEJŚCIAMI ASYNCHRONICZNYMI R I S WYZWALANY ZBOCZEM OPADAJĄCYM iii

9 Spis treści A.7.1. Budowa dwuzboczowego przerzutnika typu D z wejściami asynchronicznymi R i S wyzwalanego zboczem opadającym A.7.2. Budowa przerzutnika typu D z wejściami asynchronicznymi R i S bez opóźnienia czasowego wyzwalanego zboczem opadającym A.8. PRZERZUTNIK TYPU D Z WEJŚCIEM CE ORAZ WEJŚCIAMI ASYNCHRONICZNYMI R I S WYZWALANY ZBOCZEM NARASTAJĄCYM A.8.1. Budowa dwuzboczowego przerzutnika typu D z wejściem CE oraz wejściami asynchronicznymi R i S wyzwalanego zboczem narastającym A.8.2. Budowa przerzutnika typu D z wejściem CE oraz wejściami asynchronicznymi R i S bez opóźnienia czasowego wyzwalanego zboczem narastającym A.9. PRZERZUTNIK TYPU D Z WEJŚCIEM CE ORAZ WEJŚCIAMI ASYNCHRONICZNYMI R I S WYZWALANY ZBOCZEM OPADAJĄCYM A.9.1. Budowa dwuzboczowego przerzutnika typu D z wejściem CE oraz wejściami asynchronicznymi R i S wyzwalanego zboczem opadającym A.9.2. Budowa przerzutnika typu D z wejściem CE oraz wejściami asynchronicznymi R i S bez opóźnienia czasowego wyzwalanego zboczem opadającym A.10. PRZERZUTNIK SYNCHRONICZNY RS WYZWALANY ZBOCZEM NARASTAJĄCYM A Budowa dwuzboczowego przerzutnika synchronicznego RS wyzwalanego zboczem narastającym A Budowa przerzutnika synchronicznego RS wyzwalanego zboczem narastającym bez opóźnienia czasowego A.11. PRZERZUTNIK SYNCHRONICZNY RS WYZWALANY ZBOCZEM OPADAJĄCYM A Budowa dwuzboczowego przerzutnika synchronicznego RS wyzwalanego zboczem opadającym A Budowa przerzutnika synchronicznego RS wyzwalanego zboczem opadającym bez opóźnienia czasowego A.12. PRZERZUTNIK SYNCHRONICZNY RS Z DODATKOWYMI WEJŚCIAMI ASYNCHRONICZNYMI WYZWALANY ZBOCZEM NARASTAJĄCYM A Budowa dwuzboczowego przerzutnika synchroniczny RS z wejściami asynchronicznymi wyzwalanego zboczem narastającym A Budowa przerzutnika synchroniczny RS z wejściami asynchronicznymi wyzwalanego zboczem narastającym bez opóźnienia czasowego A.13. PRZERZUTNIK SYNCHRONICZNY RS Z WEJŚCIAMI ASYNCHRONICZNYMI WYZWALANY ZBOCZEM OPADAJĄCYM A Budowa dwuzboczowego przerzutnika synchroniczny RS z wejściami asynchronicznymi wyzwalanego zboczem opadającym iv

10 Spis treści A Budowa przerzutnika synchroniczny RS z wejściami asynchronicznymi wyzwalanego zboczem opadającym bez opóźnienia czasowego LITERATURA v

11 SPIS RYSUNKÓW Rysunek 1-1. Wykres Y Gajskiego i Kuhn a Rysunek 1-2. Budowa kompilatora układów cyfrowych Rysunek 1-3. Struktura automatu: a) Mealy ego, b) Moore a Rysunek 1-4. Schemat układu synchronicznego Rysunek 2-1. Ogólna postać maszyny stanów Rysunek 2-2. Schemat licznika Rysunek 2-3. Schemat przerzutnika T Rysunek 3-1. Algorytm analizy instrukcji oczekiwania Rysunek 3-2. Algorytm analizy instrukcji warunkowych Rysunek 3-3. Algorytm analizy instrukcji pętli Rysunek 3-4. Algorytm generowania równania sygnału R Rysunek 4-1. Schemat blokowy modelu implementującego algorytm kryptograficzny RSA Rysunek 5-1. Wykres czasu generowania jednostki sterującej w zależności od rozmiaru licznika maszyny stanów Rysunek 5-2. Wykres czasu generowania jednostki wykonawczej w zależności od jej rozmiaru Rysunek A-1. Zatrzask typu D wyzwalany poziomem wysokim: a) schemat, b) przebieg czasowy Rysunek A-2. Przerzutnik dwuzboczowy typu D wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy Rysunek A-3. Przerzutnik typu D bez opóźnienia czasowego wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy Rysunek A-4. Przerzutnik dwuzboczowy typu D wyzwalany zboczem opadającym: a) schemat, b) przebieg czasowy vi

12 Spis rysunków Rysunek A-5. Przerzutnik typu D bez opóźnienia czasowego wyzwalany zboczem opadającym: a) schemat, b) przebieg czasowy Rysunek A-6. Przerzutnik dwuzboczowy typu D z wejściem CE wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy Rysunek A-7. Przerzutnik typu D bez opóźnienia czasowego z wejściem CE wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy Rysunek A-8. Przerzutnik dwuzboczowy typu D z wejściem CE wyzwalany zboczem opadającym: a) schemat, b) przebieg czasowy Rysunek A-9. Przerzutnik typu D bez opóźnienia czasowego z wejściem CE wyzwalany zboczem opadającym: a) schemat, b) przebieg czasowy Rysunek A-10. Przerzutnik dwuzboczowy typu D z asynchronicznymi wejściami R i S wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy Rysunek A-11. Przerzutnik typu D z asynchronicznymi wejściami R i S bez opóźnienia czasowego wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy Rysunek A-12. Przerzutnik dwuzboczowy typu D z asynchronicznymi wejściami R i S wyzwalany zboczem opadającym: a) schemat, b) przebieg czasowy Rysunek A-13. Przerzutnik typu D z asynchronicznymi wejściami R i S bez opóźnienia czasowego wyzwalany zboczem opadającym: a) schemat, b) przebieg czasowy Rysunek A-14. Przerzutnik dwuzboczowy typu D z wejściem CE oraz wejściami asynchronicznymi R i S wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy Rysunek A-15. Przerzutnik typu D z wejściem CE oraz wejściami asynchronicznymi R i S bez opóźnienia czasowego wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy Rysunek A-16. Przerzutnik dwuzboczowy typu D z wejściem CE oraz wejściami asynchronicznymi R i S wyzwalany zboczem opadającym: a) schemat, b) przebieg czasowy Rysunek A-17. Przerzutnik typu D z wejściem CE oraz wejściami asynchronicznymi R i S bez opóźnienia czasowego wyzwalany zboczem opadającym: a) schemat, b) przebieg czasowy Rysunek A-18. Dwuzboczowy przerzutnik synchroniczny RS wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy vii

13 Spis rysunków Rysunek A-19. Przerzutnik synchroniczny RS bez opóźnienia czasowego wyzwalany zboczem narastającym: a) schemat, b) przebieg czasowy Rysunek A-20. Dwuzboczowy przerzutnik synchroniczny RS wyzwalany zboczem opadający: a) schemat, b) przebieg czasowy Rysunek A-21. Przerzutnik synchroniczny RS bez opóźnienia czasowego wyzwalany zboczem opadającym: a) schemat, b) przebieg czasowy Rysunek A-22. Dwuzboczowy przerzutnik synchroniczny RS wyzwalany zboczem narastającym z wejściami asynchronicznymi RA i S.A: a) schemat, b) przebieg czasowy Rysunek A-23. Przerzutnik synchroniczny RS wyzwalany zboczem narastającym z wejściami asynchronicznymi RA i S.A. bez opóźnienia czasowego: a) schemat, b) przebieg czasowy Rysunek A-24. Dwuzboczowy przerzutnik synchroniczny RS wyzwalany zboczem opadającym z wejściami asynchronicznymi RA i S.A: a) schemat, b) przebieg czasowy Rysunek A-25. Przerzutnik synchroniczny RS wyzwalany zboczem opadającym z wejściami asynchronicznymi RA i S.A. bez opóźnienia czasowego: a) schemat, b) przebieg czasowy viii

14 SPIS TABEL Tabela 4-1. Czas kompilacji oraz zapotrzebowanie na pamięć operacyjną Tabela 4-2. Porównanie ilości wygenerowanych układów sekwencyjnych Tabela 4-3. Podział ilościowy przerzutników wygenerowanych przez kompilator VHDL2BOOL Tabela 4-4. Rozmiar plików zawierających równania boolowskie wygenerowanych przez kompilator VHDL2BOOL ix

15 SPIS SYMBOLI I SKRÓTÓW ASCII (ang. American Standard Code for Information Interchange) amerykański standard kodowania na potrzeby wymiany informacji ASIC (ang. Application Specific Integrated Circuit) nieprogramowalny półprzewodnikowy układ scalony projektowany na zamówienie użytkownika i realizujący konkretne funkcje BLIF (ang. Berkeley Logic Interchange Format) format tekstowy opisu układu cyfrowego na poziomie struktury logicznej, umożliwiający przenoszenie danych projektu pomiędzy różnymi narzędziami CAD, rozwijany przez Berkeley University of California CAD (ang. Computer Aided Design) komputerowe wspomaganie prac projektowych CPLD (ang. Complex Programmable Logic Devices) układy programowalne o strukturze hierarchicznej DFG (ang. Dependence Flow Graph) graf przepływu zależności EDIF (ang. Electronic Design Interchange Format) format tekstowy opisu układu cyfrowego na poziomie struktury logicznej, umożliwiający przenoszenie danych projektu układu cyfrowego pomiędzy różnymi narzędziami CAD, rozwijany przez organizację Electronic Design Automation FPGA (ang. Field Programmable Gate Arrays) układy programowalne o strukturze komórkowej FPLD (ang. Field Programmable Logic Devices) układy programowane przez użytkownika FSM (ang. Finite State Machine) skończony automat stanu GNU powszechna licencja publiczna zezwalająca na swobodne uruchamianie, kopiowanie, rozpowszechnianie, analizowanie, zmianę i ulepszanie programów komputerowych HDL (ang. Hardware Description Language) język opisu sprzętu IP (ang. Intellectual Property) własność intelektualna PLD (ang. Programmable Logic Devices) układy programowalne QDIF (ang. QuickLogic Data Interchange Format) format opisu układu cyfrowego umożliwiający przenoszenie danych projektu pomiędzy różnymi narzędziami CAD, rozwijany przez korporację QuickLogic RSA algorytm szyfrowania z kluczem publicznym RTL (ang. Register Transfer Level) poziom przesłań międzyrejestrowych x

16 Spis symboli i skrótów Verilog HDL język opisu sprzętu (standard IEEE-1364) VHDL język opisu sprzętu (standard IEEE-1076) XNF (ang. Xilinx Netlist Format) format tekstowy opisu układu cyfrowego na poziomie struktury logicznej, umożliwiający przenoszenie danych projektu pomiędzy różnymi narzędziami CAD, rozwijany przez firmę Xilinx xi

17 1.WSTĘP 1 Sformatowane: Punktory i numeracja 1. WSTĘP Poniższy rozdział stanowi zwięzłe wprowadzenie do tematyki poruszanej w pracy. Zaprezentowano w nim podział specjalizowanych układów cyfrowych oraz opisano wspomagane komputerowo techniki ich projektowania. Omówiono również sposoby modelowania układów logicznych na różnych poziomach abstrakcji oraz zdefiniowano pojęcie syntezy jako procesu przekształcenia modelu do niższego poziomu reprezentacji. Zasadniczą część punktu 1.1 poświęcono charakterystyce języków opisu sprzętu ze szczególnym uwzględnieniem języka VHDL będącego przedmiotem badań niniejszej pracy. W punkcie 1.4 rozdziału poruszono zagadnienia związane z teorią układów cyfrowych, podając ich definicję oraz dokonując ich podziału. Szczególną uwagę poświęcono układom sekwencyjnym w tym automatom skończonym. W ostatnim punkcie rozdziału zaprezentowano podzbiór instrukcji języka VHDL będący przedmiotem badań podjętych w pracy. W odniesieniu do tych konstrukcji wskazano ich składnię, określono funkcjonalność oraz przedstawiono listę ograniczeń w syntezowalnym podzbiorze języka VHDL. Równocześnie w tej części rozprawy określono tematykę kolejnych jej rozdziałów oraz postawiono tezę i zdefiniowano cel podjęty w pracy. 1

18 Wstęp 1.1. Stan problemu W ostatnich latach nastąpił gwałtowny rozwój technologii układów scalonych opartej na zastosowaniu materiałów półprzewodnikowych. Częstym elementem każdego systemu cyfrowego stały się specjalizowane układy cyfrowe ASIC (ang. Application Specific Integrated Circuits). Stanowią one nową technikę opracowywania i produkcji układów scalonych, tak zwanych. układów na zamówienie. Technika ta zmienia dotychczasowy sposób projektowania systemów cyfrowych oparty na wielu odrębnych, współpracujących ze sobą, układach standardowych. Jeden wyspecjalizowany układ umożliwia realizację całego, nawet bardzo złożonego systemu cyfrowego [57][58]. Ze względu na technologie wytwarzania oraz techniki projektowania specjalizowane układy scalone dzieli się zazwyczaj na układy zamawiane przez użytkownika (ang. full-custom), układy projektowane przez użytkownika (ang. semicustom) oraz układy programowane przez użytkownika FPLD (ang. Field Programmable Logic Devices) [60]. Pierwsze dwa typy układów są nazywane także układami specjalizowanymi maską. Rola użytkownika w ich wytwarzaniu sprowadza się do zamówienia u producenta (full-custom) lub do projektowania z wykorzystaniem gotowych komórek bibliotecznych (semi-custom). Układy FPLD, zwane również układami specjalizowanymi przez programowanie stanowią dalszy krok w kierunku uproszczenia procesu projektowania i wytwarzania układów scalonych. Ich zasadniczymi cechami, jakie zawdzięczają niewielkiej liczbie procesów produkcyjnych, jest krótki czas opracowania i oprogramowania oraz niski koszt wyprodukowania małych serii. Do grupy tych układów należą struktury PLD (ang. Programmable Logic Devices) oraz FPGA (ang. Field Programmable Gate Array). Wytwarzanie coraz bardziej złożonych układów o coraz większym stopniu scalenia, wymagające zwiększenia precyzji produkcji oraz silna konkurencja producentów sprzętu spowodowały, iż bardzo ważnym zagadnieniem stało się projektowanie wspomagane komputerowo CAD (ang. Computer Aided Design). Dzięki technikom wykorzystującym narzędzia komputerowe powstała metodyka umożliwiająca skrócenie czasu projektowania oraz zwiększenie jakości układów scalonych [28][34]. Wykorzystanie narzędzi do projektowania wspomaganego 2

19 Wstęp komputerowo obejmuje wiele etapów projektowania układów mikroelektronicznych, rozpoczynając od specyfikacji poprzez symulację, weryfikację oraz syntezę. Modelowanie układu cyfrowego może odbywać się na różnych poziomach abstrakcji. Jednocześnie do specyfikacji tego samego układu na danym poziomie abstrakcji mogą być rozpatrywane różne jego cechy. Ze względu na poziom abstrakcji modele układu można podzielić na trzy podstawowe rodzaje: model architektury, logiczny oraz geometrii. Najwyższym poziomem jest poziom architektury, na którym rozpatrywane są operacje wykonywane przez układ. Poziom logiczny opisuje układ cyfrowy, wykorzystując zestaw funkcji logicznych, natomiast na poziomie geometrycznym rozpatrywana jest topografia układu. Ze względu na cechy modele można podzielić na: behawioralne, strukturalne oraz fizyczne. Model behawioralny opisuje funkcjonowanie układu [106], model strukturalny połączenia między poszczególnymi elementami, natomiast model fizyczny rozpatruje fizyczne elementy układu. Sposoby opisu systemu cyfrowego uwzględniające taki podział przedstawia wykres Y Gajskiego i Kuhn a (rys. 1-1) [34]. Osie tego wykresu definiują trzy rodzaje modeli. Każdy z nich może być opisany na różnych poziomach abstrakcji. Rysunek 1-1. Wykres Y Gajskiego i Kuhn a. Źródło: Na podstawie [34]. 3

20 Wstęp Proces przekształcenia modelu do niższego poziomu reprezentacji układu nazywany jest syntezą. W zależności od rozpatrywanego poziomu można rozróżnić następujące rodzaje syntezy: synteza architektury, synteza logiczna oraz synteza geometryczna (projektowanie fizyczne) [34]. Synteza poziomu architektury (wysokiego poziomu) pozwala na przejście z modelu behawioralnego do modelu strukturalnego na poziomie architektury. Synteza logiczna polega na utworzeniu modelu strukturalnego na poziomie logicznym na podstawie opisu logicznego mającego postać tablicy stanów, schematu lub opisu w języku HDL. Projektowanie fizyczne ma za zadanie opracowanie modelu fizycznego układu scalonego na poziomie geometrii z uwzględnieniem rozmieszczenia elementów i ich połączeń (ang. place and route). Klasyczne metody syntezy, sformułowane m. in. Przez D.A. Huffmana, G.H. Mealy ego i E.F. Moore a, wykorzystują elementarne układy logiczne, jakimi są bramki i przerzutniki. Ze względu na skomplikowany charakter obliczeń w przypadku ręcznego projektowania układów cyfrowych, stosowanie tych metod jest ograniczone do liczby sygnałów wejściowych nie większej od trzech i liczby stanów wewnętrznych układu nie większej od ośmiu. W celu zwiększenia tych liczb możliwe jest zastosowanie tzw. technik dekompozycji polegających na podziale układu na mniejsze części, które są łatwiejsze w projektowaniu. Ze względów ekonomicznych i technologicznych bazowanie jedynie na elementach elementarnych staje się w ostatnich czasach niecelowe. Częstsze zastosowanie mają efektywniejsze metody syntezy wykorzystujące tzw. bloki funkcjonalne będące bardziej złożonymi układami cyfrowymi. Syntezę układu cyfrowego złożonego z takich bloków wykonuje się zazwyczaj metodą mikroprogramowania [47]. W ostatnich latach do modelowania układów scalonych o wielkiej gęstości upakowania takich jak układy PLD oraz FPGA, niezbędnym narzędziem stały się języki opisu sprzętu HDL (ang. Hardware Description Language). Zadaniem tych języków jest umożliwienie projektantowi układów scalonych opisywania funkcji, struktury i parametrów realizowanego układu na wysokim poziomie abstrakcji. Specyfikacja układu cyfrowego powinna zapewniać pełny i jednoznaczny opis wymaganego zachowania, łącznie z opisem wszystkich funkcjonalnych, strukturalnych i fizycznych ograniczeń [5][57][58]. Tworzenie modelu układu cyfrowego w języku opisu sprzętu jest podobne do pisania programu w komputerowym języku programowania. Języki HDL posiadają 4

21 Wstęp cechy właściwe językom programowania takie jak: typy danych, pętle, instrukcje warunkowe, struktury danych. Jednak, inaczej niż w przypadku programów komputerowych, w budowie sprzętu ważniejszą rolę odgrywają aspekty strukturalne i fizyczne, dlatego języki opisu sprzętu charakteryzują się również cechami niedostępnymi dla typowych języków programowania komputerów. Przede wszystkim opis układu cyfrowego zawiera informacje strukturalne, takie jak opis interfejsu wraz z portami wejścia/wyjścia oraz definicje komponentów służących do budowy większych układów. Języki HDL muszą zatem umożliwiać tworzenie systemów zarówno w modelach strukturalnych jak i behawioralnych [34][57]. Równie ważną cechą języków HDL niespotykaną w językach komputerowych jest określanie zachowania modelowanego układu w zależności od czasu. Z tego względu języki HDL dostarczają predefiniowanych typów umożliwiających zawieszenie działania układu na określony kwant czasu. Jeszcze inną cechą tych języków jest umożliwienie przedstawienia równoległości działania układu przez zastosowanie współbieżnych procesów. Z tego powodu języki HDL są bliższe językom programowania maszyn równoległych. Pierwotnym zastosowaniem języków opisu sprzętu była jedynie symulacja układów, toteż posiadają one wiele cech takich jak: operacje na plikach, dynamiczna alokacja pamięci czy rekurencja, które uniemożliwiają bezpośrednią implementację sprzętową. Z tego powodu konieczne jest wyróżnienie syntezowalnego podzbioru danego języka oraz uzależnienie ostatecznej reprezentacji formy wyjściowej od układu, dla którego generowany jest sprzęt. Istnieje wiele języków opisu sprzętu, mających różne właściwości i umożliwiających realizację różnych zadań. Jednak w momencie pisania tej pracy do najbardziej popularnych można zaliczyć dwa z nich będące zarazem standardami przemysłowymi IEEE. Językami tymi są Verilog HDL [94] oraz VHDL [92][93], któremu poświęcona jest niniejsza praca. Język Verilog został zaprojektowany w sposób zapewniający dużą szybkość symulacji, dlatego w porównaniu z językiem VHDL posiada bardziej zwięzłą składnie oraz mniejszą różnorodność struktur językowych, co czyni go bardziej ograniczonym [12][34]. Język VHDL powstał w latach osiemdziesiątych jako część programu VHSIC (ang. Very High Speed Integrated Circuits) prowadzonego przez Departament Obrony Stanów Zjednoczonych. Głównym zadaniem programu było opracowanie efektywnych 5

22 Wstęp metod projektowania oraz wykorzystania najbardziej złożonych i bardzo szybkich układów scalonych [103]. W roku 1987 VHDL stał się standardem IEEE w dziedzinie języków opisu i projektowania układów VLSI. Kolejna ulepszona wersja języka została ustandaryzowana w roku VHDL jest oparty na języku ADA. Adaptuje baz zmian wiele jego konstrukcji. W chwili obecnej język VHDL jest szeroko rozpowszechniony wśród projektantów układów cyfrowych na świecie i cieszy się ogromnym powodzeniem w zastosowaniach przemysłowych. Do najważniejszych cech języka VHDL można zaliczyć [103]: - wparcie metodologii hierarchicznego projektowania sprzętu; - możliwość opisu oraz weryfikacji projektu w całym procesie jego powstawania (tj. na różnych poziomach abstrakcji); - niezależność od konkretnej technologii, metodologii projektowania i narzędzia wspomagania projektowania; - możliwość reprezentacji dynamiki systemu cyfrowego oraz współbieżnych operacji w sprzęcie; - możliwość samodokumentowania projektu osiągnięte dzięki prostej i przejrzystej strukturze języka; - dostarczenie mechanizmów modelowania układów z uwzględnieniem upływającego czasu cecha charakterystyczna dla typowego języka HDL; - możliwość symulowania projektowanych układów, a także możliwość tworzenia sekwencji sygnałów testujących (w tym również wbudowania sygnałów testowych w projekt); - możliwość realizacji nowych projektów z wykorzystaniem opracowanych, poznanych i zaimplementowanych uprzednio rozwiązań przechowywanych w bibliotece projektów. Mechanizmem abstrakcji, służącym w języku VHDL do modelowania układów cyfrowych jest jednostka projektowa (ang. design entity). Może ona reprezentować dowolnie złożone elementy lub układy logiczne. Jednostka projektowa składa się z dwóch części: - deklaracji jednostki projektowej (sprzęgu) (ang. entity declaration) opisującego interfejs układu cyfrowego z portami i parametrami formalnymi, - deklaracji jednego lub kilku ciał architektonicznych (ang. architecture body) definiujących własności strukturalne i behawioralne jednostki projektowej. 6

23 Wstęp W celu zapewnienia projektowanym układom możliwości wykonywania operacji współbieżnych język VHDL definiuje zbiór instrukcji współbieżnych, z których najważniejszą jest instrukcja procesu. Procesy są wykonywane równolegle w sposób niezależny, ale instrukcje sekwencyjne zawarte w procesie są wykonywane sekwencyjnie kolejno od pierwszej do ostatniej. Język VHDL wspiera różne typy danych, pozwala definiować własne typy oraz zmieniać zakres typów wbudowanych. Jest językiem o ścisłej typizacji wymagającym jawnej deklaracji wszystkich sygnałów i zmiennych użytych w projekcie. VHDL umożliwia użycie zmiennych, stałych oraz sygnałów. Zmienne mogą być używane wewnątrz modeli behawioralnych i nie są bezpośrednio powiązane ze sprzętem. Sygnały mogą być związane z sygnałami elektrycznymi przychodzącymi do portów układu i mogą zależeć od czasu. Język VHDL daje możliwość użycia konstrukcji typowych dla klasycznych języków programowania, takich jak wywołania funkcji i procedur, rozgałęzienia czy iteracje. Współbieżne modelowanie procesu umożliwia instrukcja wait służąca do wstrzymywania działania układu i synchronizacji z zegarem. Dostępne są również operatory logiczne, operatory relacji oraz operatory arytmetyczne. Działania arytmetyczne mogą być wykonywane tylko na liczbach całkowitych lub rzeczywistych. Ze względu na dopuszczenie przeciążania operatorów, operacje na pozostałych typach danych mogą być opracowane własnoręcznie przez użytkownika [34][103]. Oprócz VHDL a i Verilog a istnieje duża grupa mniej popularnych języków opisu sprzętu, jak np. opracowany w Japonii język UDL/I czy język Silage stworzony przez Hilfingera [34][43]. Od niedawna interesującą alternatywą, zyskującą coraz większe zainteresowanie, stanowią języki opisu sprzętu bazujące na języku C. W tej grupie dostępne są między innymi język ESIM [39], HardwareC [52] oraz SystemC [42][68][73][95]. Ostatni z wymienionych języków staje się coraz popularniejszym sposobem projektowania układów cyfrowych, wypierającym stopniowo języki VHDL i Verilog. Jest to projekt dostępny na zasadach licencji publicznej GNU, rozwijany przez organizację Open SystemC Initiative. Podstawowe zalety zastosowania języka C++ do opisywania układów cyfrowych to przede wszystkim duża popularność tego języka w programowaniu klasycznym (C i C++ są jednymi z najbardziej rozpowszechnionych języków wykorzystywanych w tworzeniu oprogramowania), wieloplatformowość (kompilatory języków C i C++ są dostępne na większości platform 7

24 Wstęp zarówno sprzętowych jak i systemowych) oraz duża ilość dostępnych kompilatorów i metod kompilacji źródeł opisanych w tym języku. Przez swoje szerokie zastosowanie w klasycznym programowaniu, język C++ wydaje się być naturalnym sposobem opisu układów logicznych. Rozwinięcie to pozwala na jednolity sposób opisu systemów oraz platform sprzętowo-programowych. SystemC dostarcza zorientowanych sprzętowo konstrukcji, zaimplementowanych jako biblioteki klas standardowego języka C++. Zawiera on odpowiednie elementy niezbędne do opisu układów cyfrowych, takie jak: procesy, moduły, porty, sygnały oraz interfejsy. Biblioteka języka SystemC dostarcza zbioru charakterystycznych dla opisu sprzętu typów danych, do których należą m.in. bit, bit vector, time, a także działających na nich funkcji. Język wprowadza również mechanizm zdarzeń, które służą do określania warunków uruchamiania bądź przerywania procesów. Podstawowym narzędziem projektowania układów PLD i FPGA, wykorzystywanym na etapie projektu logicznego oraz fizycznego, jest pakiet programów projektowych, określony jako kompilator HDL. Techniki kompilacji układów logicznych są podobne do kompilacji oprogramowania. W obydwu przypadkach w budowie kompilatora można wyróżnić dwie podstawowe części: przednią, przekształcającą program źródłowy w formę pośrednią oraz tylną, przekształcającą formę pośrednią w formę wynikową (rys. 1-2). Przód kompilatora składa się z faz, które zależą od języka źródłowego i są niemal niezależne od formy wynikowej. Zwykle część przednia składa się z analizatora leksykalnego, składniowego, semantycznego, tablicy symboli i generatora kodu pośredniego. W części tej dokonywana jest również optymalizacja formy pośredniej oraz istnieje obsługa błędów dla poszczególnych faz [6][34]. W części tylnej kompilatora oprogramowania znajdują się elementy zależne od maszyny docelowej oraz niezależne od języka źródłowego. W tej części znajduje się optymalizacja i generacja kodu oraz operacje obsługi błędów i tablicy symboli [6][34]. Rysunek 1-2. Budowa kompilatora układów cyfrowych. 8

25 Wstęp Źródło: Na podstawie [34]. W przypadku kompilatorów układów cyfrowych część końcowa jest bardziej złożona niż w kompilatorach oprogramowania. Korzysta ona z różnych technik syntezy (syntezy architektury, syntezy logicznej) oraz łączenia bibliotek polegającym na powiązaniu reprezentacji układu z komórkami biblioteki i ustaleniu połączeń między komórkami. W wyniku syntezy i optymalizacji logicznej dokonywanej przez system projektowy, powstaje opis układu w postaci pliku (netlisty), zazwyczaj w formatach EDIF (ang. Electronic Design Interchange Format), BLIF (ang. Berkeley Logic Interchange Format), QDIF (ang. QuickLogic Data Interchange Format) lub XNF (ang. Xilinx Netlist Format). Plik ten stanowi dane wejściowe dla programu wpasowującego projekt w wybrany układ FPGA (ang. fiter). Do sprawdzenia poprawności logicznej i parametrów dynamicznych układu stosuje się w kolejnym etapie tzw. program symulacyjny [47]. Języki opisu sprzętu stały się nierozerwalnie związane z programowalnymi układami logicznymi o wielkiej gęstości upakowania elementów zyskując zarazem nie mniejszą wagę, niż sama technologia produkcji. Zarówno w Polsce jak i na świecie badania w tej dziedzinie koncentrują się na kilku podstawowych problemach. Jednym z nich jest symulacja opisów VHDL umożliwiająca weryfikację funkcjonalną układu zanim zostanie wykonana synteza, dzięki czemu wszelkie błędy projektowe mogą zostać ujawnione na stosunkowo wczesnym etapie projektowania, a ich wpływ na cały cykl projektowy zostanie zminimalizowany. Inną grupę stanowią badania nad metodami optymalizacji systemów cyfrowych opracowanych z wykorzystaniem języków HDL minimalizującymi powierzchnię układów oraz zwiększającymi szybkość ich działania. Ostatnim kierunkiem badań, który jednocześnie stanowi przedmiot niniejszej pracy, są techniki kompilacji oraz syntezy układów cyfrowych ze źródeł HDL Cel i teza pracy Z powodu przemysłowego charakteru języka VHDL, większość dostępnych narzędzi do kompilacji i syntezy źródeł opisanych w tym języku to produkty komercyjne. Utrudnia to dostęp do wiedzy na temat metod i algorytmów zawartych w tych narzędziach. Najczęściej publikowanymi przez producentów informacjami są 9

26 Wstęp przewodniki oraz specyfikacje dotyczące podzbioru języka dostępnego w danym narzędziu. Wiodące w zastosowaniach przemysłowych kompilatory języka VHDL to: FPGA Express (i jego nowsza wersja Compiler II) firmy Synopsys [87], XST firmy Xilinx [104], LeonardoSpectrum firmy Exemplar Logic, Inc. [38] oraz Synplify firmy Synplicity, Inc. [88]. Specyfikacje tych narzędzi różnią się pod względem obsługiwanego podzbioru instrukcji VHDL oraz wprowadzonych ograniczeń dotyczących użycia tych instrukcji. Zawężony zakres funkcjonalności wprowadzony jest m.in. dla instrukcji implikujących logikę sekwencyjną, a zwłaszcza dla konstrukcji zawierających instrukcję wait. Wynika to ze złożoności układu generowanego w wyniku kompilacji takich konstrukcji lub wręcz niemożności wygenerowania prawidłowego układu. Oprócz ograniczeń wynikających ze specyfikacji IEEE języka VHDL [92], do których należy m.in. brak możliwości konstruowania procesu zawierającego jednocześnie listę czułości i instrukcje oczekiwania, specyfikacje wymienionych narzędzi wprowadzają podzbiór własnych ograniczeń zmniejszających funkcjonalność języka VHDL. Wszystkie z wymienionych narzędzi wymagają aby w przypadku wystąpienia instrukcji wait w którejkolwiek ścieżce logicznej procesu, wystąpiła ona również we wszystkich pozostałych jego ścieżkach. Kolejną wspólną regułą jest, aby wszystkie występujące w procesie instrukcje oczekiwania zawierały to samo wyrażenie złożone z jednobitowego sygnału zegarowego. Wspólna zasada dotycząca pętli (za wyjątkiem specyfikacji Synplify) wymusza stosowanie instrukcji oczekiwania wewnątrz pętli while...loop i loop oraz zabrania umieszczania instrukcji wait wewnątrz pętli for...loop. Ograniczenia różniące omawiane specyfikacje to wprowadzona w kompilatorze Synplify reguła określająca miejsce wystąpienia instrukcji oczekiwania na początku lub na końcu instrukcji procesu. Dodatkowe zasady, sformułowane w poniższych punktach, wprowadza kompilator XST: - proces może zawierać tylko jedną instrukcje pętli; - pierwszą instrukcją pętli musi być instrukcja wait; - po każdej instrukcji wait musi wystąpić instrukcja next lub exit. Najmniej ograniczoną pod względem funkcjonalności jest specyfikacja firmy Synopsys dotycząca kompilatora FPGA Express. Z tego względu stała się ona specyfikacją wzorcową, na której oparte zostały wszystkie algorytmy opracowane w ramach niniejszej pracy. 10

27 Wstęp Poza produktami komercyjnymi dostępne są również narzędzia akademickie powstające na kilku uczelniach, takich jak Department of Computer Science and Engineering of Auburn University. W grupie tej istnieją narzędzia generujące w wyniku kompilacji źródeł VHDL różne formy pośrednie, jak grafy przepływu zależności lub sieci Petriego [31][32][35]. Synteza opisanego w ten sposób układu wymaga przekształcenia go w inną, syntezowalną postać taką jak lista połączeń EDIF. Jednym z najbardziej rozpowszechnionych akademickich systemów do wspomagania projektowania układów cyfrowych jest Alliance VLSI CAD System rozwijany przez grupę Équipe Achitecture des Systemes et Micro-Électronique działającą na uniwersytecie Université Pierre et Marie Curie we Francji [37]. System ten jest kompatybilny ze standardem IEEE VHDL-87 [93]. Pakiet zawiera symulator i kompilator języka VHDL, zestaw narzędzi do syntezy logicznej oraz automatycznego rozmieszczania i łączenia elementów składowych układów FPGA. Badania dotyczące syntezy układów cyfrowych prowadzone są także w kilku placówkach w Polsce [1][2][3][4][57][58][59][60][89][90][91]. Realizowane są prace związane z komputerowym projektowaniem i syntezą układów logicznych przy wykorzystaniu języków opisu sprzętu, a także z modelowaniem układów cyfrowych za pomocą sieci Petriego oraz bezpośrednimi sposobami implementacji układów cyfrowych wyrażonych poprzez te sieci. Niniejsza praca leży w dziedzinie nauk technicznych i dotyczy dyscypliny Informatyka (Projektowanie logiczne, Układy scalone, Języki programowania, Inżynieria oprogramowania). Rozważanym w niej zagadnieniem naukowym jest opracowanie podstaw teoretycznych dotyczących automatycznej syntezy układów cyfrowych ze źródeł VHDL z wykorzystaniem metod kompilacji. Praca ma za zadanie rozwinąć dotychczasową wiedzę w zakresie kompilacji źródeł VHDL opisujących układy sekwencyjne do postaci równań boolowskich oraz upublicznić uzyskane w jej ramach rozwiązania. Mała liczba publikacji dotyczących metod efektywnej kompilacji języków opisu sprzętu do postaci syntezowalnej jest podstawowym problemem przy pracach nad tego rodzaju kompilatorami. Brak powszechnego dostępu do teorii opisującej metody i algorytmy kompilacji źródeł VHDL jest uzasadnieniem celu tej pracy jakim jest opracowanie, analiza i weryfikacja algorytmów automatycznego generowania równań boolowskich dla logiki sekwencyjnej opisanej instrukcjami procesu języka 11

28 Wstęp VHDL, w oparciu o metody kompilacji oraz badanie efektywności i określenie zakresu stosowalności tych algorytmów. Prowadzone w pracy rozważania służą wykazaniu prawdziwości następującej tezy: Istnieje możliwość opracowania formalnych algorytmów, opartych o metody kompilacji, generujących w sposób automatyczny równania boolowskie dla konstrukcji języka VHDL implikujących logikę sekwencyjną o jakości spełniającej wymogi przemysłu. Metodyka użyta do uzyskania wyników teoretycznych polegała na analizie krytycznej istniejących popularnych narzędzi syntezy. W jej rezultacie określono ograniczenia syntezowalnego podzbioru instrukcji VHDL opisujących logikę sekwencyjną. Ponadto zbadano strukturę układów cyfrowych wygenerowanych w wyniku syntezy. Pozwoliło to na ustalenie rodzajów podstawowych elementów logicznych, z jakich zostały zbudowane te układy. Przy opracowaniu rezultatów teoretycznych korzystano z zagadnień dotyczących teorii układów logicznych, budowy i syntezy układów cyfrowych, teorii automatów, metod kompilacji oraz specyfikacji języków opisu sprzętu w tym języka VHDL. Do zbadania poprawności uzyskanych wyników wykorzystano metodykę opartą na badaniach eksperymentalnych. Weryfikacja została przeprowadzona z wykorzystaniem bazy testów w języku VHDL opracowanych przez firmę Aldec oraz autora pracy. Badane źródła zostały dobrane w taki sposób, aby zawierały wydzielone konstrukcje VHDL rozważane w pracy. Kierując się ich składem, testy podzielono na trzy grupy: z instrukcjami wait, z instrukcjami wait oraz warunkowymi, z instrukcjami wait oraz pętlami (w tym z instrukcjami next i exit). Do przeprowadzenia badań wykorzystano symulatory ModelSim i VHDL Simili oraz kompilator FPGA Express opisane szerzej w rozdziale 4.1. W skład środowiska testowego wchodziły również narzędzia akademickie takie jak: symulator równań boolowskich oraz automat testujący. Sposób weryfikacji polegał na porównaniu wygenerowanych wyników z narzędziem wzorcowym, a jego szczegółowe kroki przedstawiono w rozdziale 4.1. Dane wejściowe układu testowego stanowiły wektory wartości sygnałów cyfrowych w postaci 0 i 1 oddzielonych średnikiem, a wielkościami mierzonymi były wektory sygnałów wyjściowych. Otrzymane wyniki zostały skumulowane w zaprojektowanej bazie danych w celu dalszej analizy. Przeprowadzona analiza wyników została przedstawiona w rozdziale 4.2 w postaci tabel zestawieniowych oraz wniosków. 12

29 Wstęp Nowością pracy jest forma wyjściowa zastosowana w opracowanym narzędziu, jaką stanowią równania boolowskie. Autorowi nie są znane narzędzia kompilacji języka VHDL wprost do równań boolowskich. Wyrażenie boolowskie (formuła boolowska) jest utworzone z pewnej liczby symboli zmiennych boolowskich oraz stałych 0 i 1 przez zastosowanie skończonej liczby operacji logicznych: sumy (ang. OR), iloczynu (ang. AND) oraz negacji (ang. NOT) [47][61]. Równania boolowskie są matematyczną formą reprezentacji układów logicznych wygodną do dalszych etapów odwzorowania technologicznego. Jako wynik syntezy umożliwiają zastosowanie wszystkich istniejących technik i narzędzi do minimalizacji, walidacji, symulacji i syntezy układów logicznych oraz podział równań i zastosowanie symulacji wieloprocesorowej. Ważną zaletą równań boolowskich jest możliwość ich upraszczania, a co za tym idzie możliwość uzyskiwania mniejszej liczby bramek logicznych projektowanego układu cyfrowego. Zasady formalne upraszczania formuł boolowskich związane są z aksjomatami algebry Boole a. Proces ten ma ogromne znaczenie praktyczne, przez co, oprócz klasycznych metod minimalizacji wyrażeń boolowskich, takich jak metoda Quine a-mccluskey a czy metoda Karnaugha, opracowano dla jego potrzeb wiele zaawansowanych rozwiązań, stanowiących podstawę nowoczesnej syntezy logicznej. Do metod tych należą: stosowana w układach PLA synteza dwupoziomowa oraz używana w układach semi- i full-custom synteza wielopoziomowa, wykorzystująca procedury faktoryzacji i dekompozycji (w tym dekompozycji funkcji boolowskich). Metody oraz narzędzia syntezy układów cyfrowych są szeroko opisane w książkach [57][58][59][60]. Wymienione wyżej argumenty stanowiły główny powód wyboru równań boolowskich na formę wyjściową opracowanych algorytmów. Rozwiązania powstałe w ramach pracy obejmą szeroki zakres języka VHDL zgodny ze specyfikacją firmy Synopsys dotyczącą kompilatorów do syntezy logicznej [87]. Zezwalają na stosowanie wielu instrukcji oczekiwania w pojedynczym procesie VHDL, a także dowolne jej zagnieżdżanie w konstrukcjach warunkowych if i case oraz pętlach loop i while...loop. Do sterowania synchronizacją w procesie z wieloma instrukcjami wait zaproponowano maszynę stanów będącą implementacją automatu skończonego Mealy ego. Opracowano jej reprezentację w formie równań boolowskich. 13

30 Wstęp Dodatkowo opracowano szablony przerzutników D i RS (także wersje z wejściami asynchronicznymi) stosowane do realizacji instrukcji przypisania w części wykonawczej maszyny stanów. Przedstawione w pracy rozwiązania zostały zaimplementowane w module generatora kodu będącego częścią kompilatora VHDL2BOOL języka VHDL, opracowywanego w Katedrze Technik Programowania Wydziału Informatyki Politechniki Szczecińskiej [15][22]. Prace nad tym narzędziem zostały zainicjowane przez firmę Aldec. Kompilator jest oparty na specyfikacji firmy Synopsys dotyczącej kompilatorów do syntezy logicznej [87]. Składa się on z sześciu podstawowych komponentów: analizatora leksykalnego, analizatora syntaktycznego, analizatora semantycznego, generatora kodu, postprocesora oraz optymalizatora równań boolowskich. Wynikiem kompilacji są równania boolowskie generowane przez generator kodu po wcześniejszej analizie źródła VHDL przez analizatory leksykalny, syntaktyczny oraz semantyczny. Ostatnim etapem kompilacji jest optymalizacja równań boolowskich przy użyciu postprocesora i optymalizatora Struktura pracy Treść rozprawy została podzielona na pięć rozdziałów. Dalsza część tego rozdziału dostarcza podstaw teoretycznych niezbędnych do zrozumienia badań podjętych w pracy. Zdefiniowano w nim pojęcie układów cyfrowych oraz dokonano ich podziału ze względu na sposób działania. W szczególności w rozdziale scharakteryzowano układy sekwencyjne, przedstawiono ich rodzaje oraz podano opisy w formie równań logicznych. Rozdział porusza również zagadnienia związane z teorią automatów w zakresie niezbędnym do zrozumienia zagadnień rozpatrywanych w pracy. W jednym z punktów tego rozdziału zaprezentowano podzbiór instrukcji języka VHDL będący przedmiotem podjętych badań. Omówiono instrukcję procesu tworząca niezależny wątek reprezentujący wydzieloną część projektu, instrukcję oczekiwania wait oraz instrukcje warunkowe if i case. Dodatkowo opisano instrukcje pętli loop oraz while...loop, instrukcje następną next, wyjścia exit oraz przypisania. W odniesieniu do wymienionych konstrukcji w rozdziale wskazano ich składnię, określono funkcjonalność oraz przedstawiono listę ograniczeń w syntezowalnym podzbiorze języka VHDL. 14

31 Wstęp Rozdział 2 poświęcony jest układom logicznym generowanym dla poszczególnych instrukcji języka VHDL implikujących logikę sekwencyjną. Dokonano w nim systematyki tych konstrukcji uwzględniając rodzaj generowanego dla nich układu cyfrowego. W szczególności omówiono instrukcje języka VHDL wymuszające generowanie maszyny stanów. Przedstawiono opisy i schematy oraz omówiono budowę poszczególnych jej części z wyszczególnieniem wszystkich wejść i wyjść układu, a także opisano reprezentujący ją zbiór równań boolowskich. Rozdział 3 zawiera szczegółową propozycję, dotyczącą algorytmu generowania równań boolowskich dla instrukcji języka VHDL, implikujących logikę sekwencyjną, który w celu uproszczenia prezentacji został podzielony na fragmenty dotyczące analizy poszczególnych zagadnień. Opisano w nim sposoby analizy i generowania równań boolowskich reprezentujących część sterującą maszyny stanów oraz warunki generowania równań logicznych części wykonawczej. Rozdział 4 omawia sposoby sprawdzania poprawność proponowanych rozwiązań. Przedstawiono w nim również propozycję automatyzacji procesu generowania testów oraz samej weryfikacji. Następnie opisano wykonane eksperymenty, wyjaśniono uzyskane wyniki oraz dostarczono na ich podstawie odpowiedzi na temat skuteczności opracowanych algorytmów. Rozdział ten oszacowuje także ocenę wyników własnej pracy na tle innych kompilatorów i narzędzi syntezy języka VHDL. Rozdział 5 dokonuje przeglądu literatury naukowej w zakresie istniejących metod i algorytmów syntezy układów logicznych oraz formułuje wnioski końcowe. Podjęta w nim zostaje również próba oszacowania złożoności uzyskanych rozwiązań Układy sekwencyjne Istnieją dwie podstawowe odmiany układów cyfrowych: układy kombinacyjne i układy sekwencyjne. Cechą odróżniającą obie grupy jest właściwość pamiętania stanów logicznych, którą charakteryzują się układy sekwencyjne, a której są pozbawione układy kombinacyjne. Układ kombinacyjny służy do przetwarzania informacji dyskretnej dwuwartościowej. Informacja dyskretna składa się ze znaków, którymi mogą być zarówno litery, cyfry, jak i inne symbole. W układzie kombinacyjnym każda kombinacja sygnałów wejściowych określa jednoznacznie kombinację sygnałów 15

Język opisu sprzętu VHDL

Język opisu sprzętu VHDL Język opisu sprzętu VHDL dr inż. Adam Klimowicz Seminarium dydaktyczne Katedra Mediów Cyfrowych i Grafiki Komputerowej Informacje ogólne Język opisu sprzętu VHDL Przedmiot obieralny dla studentów studiów

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

Elementy cyfrowe i układy logiczne

Elementy cyfrowe i układy logiczne Elementy cyfrowe i układy logiczne Wykład 5 Legenda Procedura projektowania Podział układów VLSI 2 1 Procedura projektowania Specyfikacja Napisz, jeśli jeszcze nie istnieje, specyfikację układu. Opracowanie

Bardziej szczegółowo

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Temat 1. Algebra Boole a i bramki 1). Podać przykład dowolnego prawa lub tożsamości, które jest spełnione w algebrze Boole

Bardziej szczegółowo

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, 2017 Spis treści Przedmowa 11 ROZDZIAŁ 1 Wstęp 13 1.1. Rys historyczny 14 1.2. Norma IEC 61131 19 1.2.1. Cele i

Bardziej szczegółowo

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18 Spis treści Przedmowa... 11 Wykaz oznaczeń... 13 1. Wstęp... 15 1.1. Układycyfrowe... 15 1.2. Krótki esej o projektowaniu.... 15 2. Układy kombinacyjne... 18 2.1. Podstawyprojektowaniaukładówkombinacyjnych...

Bardziej szczegółowo

UKŁADY MIKROPROGRAMOWALNE

UKŁADY MIKROPROGRAMOWALNE UKŁAD MIKROPROGRAMOWALNE Układy sterujące mogą pracować samodzielnie, jednakże w przypadku bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ sterujący jest tylko jednym z układów drugim

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

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

Systemy na Chipie. Robert Czerwiński

Systemy na Chipie. Robert Czerwiński Systemy na Chipie Robert Czerwiński Cel kursu Celem kursu jest zapoznanie słuchaczy ze współczesnymi metodami projektowania cyfrowych układów specjalizowanych, ze szczególnym uwzględnieniem układów logiki

Bardziej szczegółowo

Sterowniki Programowalne (SP)

Sterowniki Programowalne (SP) Sterowniki Programowalne (SP) Wybrane aspekty procesu tworzenia oprogramowania dla sterownika PLC Podstawy języka funkcjonalnych schematów blokowych (FBD) Politechnika Gdańska Wydział Elektrotechniki i

Bardziej szczegółowo

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys. Sterowanie procesami dyskretnymi laboratorium dr inż. Grzegorz Bazydło G.Bazydlo@iee.uz.zgora.pl, staff.uz.zgora.pl/gbazydlo Lista zadań nr 5 Zagadnienia stosowanie skończonych automatów stanów (ang. Finite

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów

Bardziej szczegółowo

Katedra Mikroelektroniki i Technik Informatycznych

Katedra Mikroelektroniki i Technik Informatycznych Katedra Mikroelektroniki i Technik Informatycznych Bloki obieralne na kierunku Mechatronika rok akademicki 2013/2014 ul. Wólczańska 221/223, budynek B18 www.dmcs.p.lodz.pl Nowa siedziba Katedry 2005 2006

Bardziej szczegółowo

T. Łuba, B. Zbierzchowski Układy logiczne Podręcznik WSISiZ, Warszawa 2002.

T. Łuba, B. Zbierzchowski Układy logiczne Podręcznik WSISiZ, Warszawa 2002. Książkę: T. Łuba, B. Zbierzchowski Układy logiczne Podręcznik WSISiZ, Warszawa 2002. Można zakupić po najniższej cenie w księgarni Wyższej Szkoły Informatyki Stosowanej i Zarządzania ul. Newelska 6 pok.

Bardziej szczegółowo

Rok akademicki: 2013/2014 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2013/2014 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Języki opisu sprzętu Rok akademicki: 2013/2014 Kod: JIS-1-015-s Punkty ECTS: 5 Wydział: Fizyki i Informatyki Stosowanej Kierunek: Informatyka Stosowana Specjalność: - Poziom studiów: Studia

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 1 (3h) Wprowadzenie do obsługi platformy projektowej Quartus II Instrukcja pomocnicza do laboratorium z przedmiotu

Bardziej szczegółowo

Część 2. Funkcje logiczne układy kombinacyjne

Część 2. Funkcje logiczne układy kombinacyjne Część 2 Funkcje logiczne układy kombinacyjne Zapis funkcji logicznych układ funkcjonalnie pełny Arytmetyka Bool a najważniejsze aksjomaty i tożsamości Minimalizacja funkcji logicznych Układy kombinacyjne

Bardziej szczegółowo

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15. Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop. 2017 Spis treści Wstęp 15 Podziękowania 23 Listy kontrolne 25 Tabele 27 Rysunki 29 Część I Proces budowy oprogramowania

Bardziej szczegółowo

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki Wykład 13 - Układy bramkowe Instytut Automatyki i Robotyki Warszawa, 2015 Układy z elementów logicznych Bramki logiczne Elementami logicznymi (bramkami logicznymi) są urządzenia o dwustanowym sygnale wyjściowym

Bardziej szczegółowo

Automat skończony FSM Finite State Machine

Automat skończony FSM Finite State Machine Automat skończony FSM Finite State Machine Projektowanie detektora sekwencji Laboratorium z Elektroniki Współczesnej A. Skoczeń, KOiDC, WFiIS, AGH, 2019 AGH, WFiIS, Elektronika Współczesna 1 Deterministyczny

Bardziej szczegółowo

Opisy efektów kształcenia dla modułu

Opisy efektów kształcenia dla modułu Karta modułu - Języki opisu sprzętu 1 / 8 Nazwa modułu: Języki opisu sprzętu Rocznik: 2012/2013 Kod: JIS-1-013-s Punkty ECTS: 5 Wydział: Fizyki i Informatyki Stosowanej Poziom studiów: Studia I stopnia

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara Elektronika cyfrowa i mikroprocesory Dr inż. Aleksander Cianciara Sprawy organizacyjne Warunki zaliczenia Lista obecności Kolokwium końcowe Ocena końcowa Konsultacje Poniedziałek 6:-7: Kontakt Budynek

Bardziej szczegółowo

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204 Opracował: prof. dr hab. inż. Jan Kazimierczak KATEDA INFOMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 204 Temat: Hardware'owa implementacja automatu skończonego pełniącego

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek Programowalne Układy Logiczne Wykład I dr inż. Paweł Russek Literatura www.actel.com www.altera.com www.xilinx.com www.latticesemi.com Field Programmable Gate Arrays J.V. Oldfield, R.C. Dorf Field Programable

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Metody Kompilacji Wykład 1 Wstęp

Metody Kompilacji Wykład 1 Wstęp Metody Kompilacji Wykład 1 Wstęp Literatura: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Princiles, Techniques, and Tools. Addison-Wesley 1986, ISBN 0-201-10088-6 Literatura: Alfred V. Aho,

Bardziej szczegółowo

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia. Kilka informacji o przerzutnikach Jaki układ elektroniczny nazywa się przerzutnikiem? Przerzutnikiem bistabilnym jest nazywany układ elektroniczny, charakteryzujący się istnieniem dwóch stanów wyróżnionych

Bardziej szczegółowo

Opisy efektów kształcenia dla modułu

Opisy efektów kształcenia dla modułu Karta modułu - Projektowanie Systemów Cyfrowych 1 / 8 Nazwa modułu: Projektowanie Systemów Cyfrowych Rocznik: 2012/2013 Kod: JIS-2-205-s Punkty ECTS: 5 Wydział: Fizyki i Informatyki Stosowanej Poziom studiów:

Bardziej szczegółowo

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++ Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Chemia, poziom pierwszy Sylabus modułu: Laboratorium programowania (0310-CH-S1-019) Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania

Bardziej szczegółowo

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop. 2017 Spis treści O autorze 9 Wprowadzenie 11 Rozdział 1. Sterownik przemysłowy 15 Sterownik S7-1200 15 Budowa zewnętrzna

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

Asynchroniczne statyczne układy sekwencyjne

Asynchroniczne statyczne układy sekwencyjne Asynchroniczne statyczne układy sekwencyjne Układem sekwencyjnym nazywany jest układ przełączający, posiadający przynajmniej jeden taki stan wejścia, któremu odpowiadają, zależnie od sygnałów wejściowych

Bardziej szczegółowo

PROGRAMOWALNE STEROWNIKI LOGICZNE

PROGRAMOWALNE STEROWNIKI LOGICZNE PROGRAMOWALNE STEROWNIKI LOGICZNE I. Wprowadzenie Klasyczna synteza kombinacyjnych i sekwencyjnych układów sterowania stosowana do automatyzacji dyskretnych procesów produkcyjnych polega na zaprojektowaniu

Bardziej szczegółowo

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM Spis treści 1. Wstęp... 9 2. Ćwiczenia laboratoryjne... 12 2.1. Środowisko projektowania Quartus II dla układów FPGA Altera... 12 2.1.1. Cel ćwiczenia... 12 2.1.2. Wprowadzenie... 12 2.1.3. Przebieg ćwiczenia...

Bardziej szczegółowo

Elektronika i techniki mikroprocesorowe

Elektronika i techniki mikroprocesorowe Elektronika i techniki mikroprocesorowe Technika cyfrowa ZłoŜone one układy cyfrowe Katedra Energoelektroniki, Napędu Elektrycznego i Robotyki Wydział Elektryczny, ul. Krzywoustego 2 PLAN WYKŁADU idea

Bardziej szczegółowo

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych (Na przykładzie projektowania układów sterujacych) Grzegorz Łabiak i Marek Węgrzyn Instytut Informatyki

Bardziej szczegółowo

Szybkie prototypowanie w projektowaniu mechatronicznym

Szybkie prototypowanie w projektowaniu mechatronicznym Szybkie prototypowanie w projektowaniu mechatronicznym Systemy wbudowane (Embedded Systems) Systemy wbudowane (ang. Embedded Systems) są to dedykowane architektury komputerowe, które są integralną częścią

Bardziej szczegółowo

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej. Efekty dla studiów pierwszego stopnia profil ogólnoakademicki na kierunku Informatyka w języku polskim i w języku angielskim (Computer Science) na Wydziale Matematyki i Nauk Informacyjnych, gdzie: * Odniesienie-

Bardziej szczegółowo

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

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych Systemy wbudowane Wykład 11: Metody kosyntezy systemów wbudowanych Uproszczone metody kosyntezy Założenia: Jeden procesor o znanych parametrach Znane parametry akceleratora sprzętowego Vulcan Początkowo

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015 Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów synchronicznych Rafał Walkowiak Wersja.2 24/25 UK Funkcje wzbudzeń UK Funkcje wzbudzeń Pamieć Pamieć UK Funkcje wyjściowe

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Krótkie wprowadzenie do ModelSim i Quartus2

Krótkie wprowadzenie do ModelSim i Quartus2 Krótkie wprowadzenie do ModelSim i Quartus2 wersja 04.2011 1 Plan Oprogramowanie Pliki źródłowe Scenariusze użycia 2 Programy Programy w wersji darmowej do pobrania ze strony www.altera.com ModelSim-Altera

Bardziej szczegółowo

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji mgr inż. Paulina Mazurek Warszawa 2013 1 Wstęp Układ

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

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

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur Piotr Fita Elektronika cyfrowa i analogowa Układy analogowe - przetwarzanie sygnałów, których wartości zmieniają się w sposób ciągły w pewnym zakresie

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

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1 Część 3 Układy sekwencyjne Układy sekwencyjne i układy iteracyjne - grafy stanów 18.11.2017 TCiM Wydział EAIiIB Katedra EiASPE 1 Układ cyfrowy - przypomnienie Podstawowe informacje x 1 x 2 Układ cyfrowy

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Technika Cyfrowa 2 wykład 1: programowalne struktury logiczne - wprowadzenie

Technika Cyfrowa 2 wykład 1: programowalne struktury logiczne - wprowadzenie Technika Cyfrowa 2 wykład 1: programowalne struktury logiczne - wprowadzenie Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej e-mail: Jacek.Mazurkiewicz@pwr.edu.pl Sprawy formalne konsultacje,

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

ID1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki stacjonarne

ID1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki stacjonarne Załącznik nr do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013

Bardziej szczegółowo

Metody optymalizacji soft-procesorów NIOS

Metody optymalizacji soft-procesorów NIOS POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011

Bardziej szczegółowo

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski Wykład nr 3 Techniki Mikroprocesorowe dr inż. Artur Cichowski Automat skończony jest przetwornikiem ciągu symboli wejściowych na ciąg symboli wyjściowych. Zbiory symboli wejściowych x X i wyjściowych y

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Projektowanie. Projektowanie mikroprocesorów

Projektowanie. Projektowanie mikroprocesorów WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne Schemat ogólny X Y Układ kombinacyjny S Z Pamięć Zegar Działanie układu Zmiany wartości wektora S możliwe tylko w dyskretnych chwilach czasowych

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

Języki opisu sprzętu VHDL Mariusz Rawski

Języki opisu sprzętu VHDL Mariusz Rawski CAD Języki opisu sprzętu VHDL rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Języki opisu sprzętu System cyfrowy może być opisany na różnych poziomach abstrakcji i z wykorzystaniem różnych sposobów

Bardziej szczegółowo

Zakładane efekty kształcenia dla kierunku Wydział Telekomunikacji, Informatyki i Elektrotechniki

Zakładane efekty kształcenia dla kierunku Wydział Telekomunikacji, Informatyki i Elektrotechniki Jednostka prowadząca kierunek studiów Nazwa kierunku studiów Specjalności Obszar kształcenia Profil kształcenia Poziom kształcenia Forma kształcenia Tytuł zawodowy uzyskiwany przez absolwenta Dziedziny

Bardziej szczegółowo

Podsumowanie wyników ankiety

Podsumowanie wyników ankiety SPRAWOZDANIE Kierunkowego Zespołu ds. Programów Kształcenia dla kierunku Informatyka dotyczące ankiet samooceny osiągnięcia przez absolwentów kierunkowych efektów kształcenia po ukończeniu studiów w roku

Bardziej szczegółowo

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional

Bardziej szczegółowo

Tranzystor JFET i MOSFET zas. działania

Tranzystor JFET i MOSFET zas. działania Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej

Bardziej szczegółowo

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch) DSCH2 to program do edycji i symulacji układów logicznych. DSCH2 jest wykorzystywany do sprawdzenia architektury układu logicznego przed rozpoczęciem projektowania fizycznego. DSCH2 zapewnia ergonomiczne

Bardziej szczegółowo

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Układy kombinacyjne

Wstęp do Techniki Cyfrowej... Układy kombinacyjne Wstęp do Techniki Cyfrowej... Układy kombinacyjne Przypomnienie Stan wejść układu kombinacyjnego jednoznacznie określa stan wyjść. Poszczególne wyjścia określane są przez funkcje boolowskie zmiennych wejściowych.

Bardziej szczegółowo

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO II Konferencja Naukowa KNWS'05 "Informatyka- sztuka czy rzemios o" 15-18 czerwca 2005, Z otniki Luba skie SNTEZA AUTOMATÓW SKOŃCZONCH Z WKORZSTANIEM METOD KODOWANIA WIELOKROTNEGO Arkadiusz Bukowiec Instytut

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

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

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania). Ćw. 10 Układy sekwencyjne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną układy rejestrów

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

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne Alfabety i litery Układ logiczny opisywany jest przez wektory, których wartości reprezentowane są przez ciągi kombinacji zerojedynkowych.

Bardziej szczegółowo

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych Opracował: dr inż. Zbigniew Buchalski KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Automatyzacja i robotyzacja procesów produkcyjnych

Automatyzacja i robotyzacja procesów produkcyjnych Automatyzacja i robotyzacja procesów produkcyjnych Instrukcja laboratoryjna Technika cyfrowa Opracował: mgr inż. Krzysztof Bodzek Cel ćwiczenia. Celem ćwiczenia jest zapoznanie studenta z zapisem liczb

Bardziej szczegółowo

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów Studia Podyplomowe INFORMATYKA Architektura komputerów Wykład I Podstawowe pojęcia 1, Cyfrowe dane 2 Wewnątrz komputera informacja ma postać fizycznych sygnałów dwuwartościowych (np. dwa poziomy napięcia,

Bardziej szczegółowo

Cyfrowe układy scalone c.d. funkcje

Cyfrowe układy scalone c.d. funkcje Cyfrowe układy scalone c.d. funkcje Ryszard J. Barczyński, 206 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Kombinacyjne układy cyfrowe

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

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz Wykład 8 Testowanie w JEE 5.0 (1) Autor: 1. Rola testowania w tworzeniu oprogramowania Kluczową rolę w powstawaniu oprogramowania stanowi proces usuwania błędów w kolejnych fazach rozwoju oprogramowania

Bardziej szczegółowo

Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu

Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu Temat: Sprawdzenie poprawności działania przerzutników. Wstęp: Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu cyfrowego, przeznaczonego do przechowywania i ewentualnego

Bardziej szczegółowo

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH Praca laboratoryjna 2 TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH Cel pracy poznanie zasad funkcjonowania przerzutników różnych typów w oparciu o różne rozwiązania układowe. Poznanie sposobów

Bardziej szczegółowo

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę

Bardziej szczegółowo

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej. Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk PROLOG www.agh.edu.pl Pewnego dnia przyszedł na świat komputer Komputery

Bardziej szczegółowo

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011 SYLLABUS na rok akademicki 010/011 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr 1(rok)/1(sem) Specjalność Bez specjalności Kod katedry/zakładu

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

Efekty kształcenia dla makrokierunku: INFORMATYKA STOSOWANA Z KOMPUTEROWĄ NAUKĄ O MATERIAŁACH Wydział: MECHANICZNY TECHNOLOGICZNY

Efekty kształcenia dla makrokierunku: INFORMATYKA STOSOWANA Z KOMPUTEROWĄ NAUKĄ O MATERIAŁACH Wydział: MECHANICZNY TECHNOLOGICZNY Efekty kształcenia dla makrokierunku: INFORMATYKA STOSOWANA Z KOMPUTEROWĄ NAUKĄ O MATERIAŁACH Wydział: MECHANICZNY TECHNOLOGICZNY nazwa kierunku studiów: Makrokierunek: Informatyka stosowana z komputerową

Bardziej szczegółowo

Bezpieczeństwo informacji oparte o kryptografię kwantową

Bezpieczeństwo informacji oparte o kryptografię kwantową WYŻSZA SZKOŁA BIZNESU W DĄBROWIE GÓRNICZEJ WYDZIAŁ ZARZĄDZANIA INFORMATYKI I NAUK SPOŁECZNYCH Instrukcja do laboratorium z przedmiotu: Bezpieczeństwo informacji oparte o kryptografię kwantową Instrukcja

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

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

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

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB Ćw. 9 Przerzutniki 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami sekwencyjnymi, czyli przerzutnikami. Zostanie przedstawiona zasada działania przerzutników oraz sposoby

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

JĘZYKI PROGRAMOWANIA STEROWNIKÓW JĘZYKI PROGRAMOWANIA STEROWNIKÓW dr inż. Wiesław Madej Wstęp Języki programowania sterowników 15 h wykład 15 h dwiczenia Konsultacje: - pokój 325A - środa 11 14 - piątek 11-14 Literatura Tadeusz Legierski,

Bardziej szczegółowo

Sterowniki PLC. Elektrotechnika II stopień Ogólno akademicki. przedmiot kierunkowy. Obieralny. Polski. semestr 1

Sterowniki PLC. Elektrotechnika II stopień Ogólno akademicki. przedmiot kierunkowy. Obieralny. Polski. semestr 1 Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu E-E2T-09-s2 Nazwa modułu Sterowniki PLC Nazwa modułu w języku angielskim Programmable Logic

Bardziej szczegółowo