UKŁADY LOGICZNE Prowadzi: Tadeusz ŁUBA, (GE pok. 472) Wykład dla kierunków: Elektronika, Telekomunikacja Prowadzi: Tadeusz ŁUBA, (GE pok. 472)
Organizacja Wykład dr G. Borowik dr G. Janczyk Ćwiczenia T. Łuba Wykład dr G. Borowik dr G. Janczyk mgr D. Ojrzeńska -Wójter dr D. Rosołowski dr P. Szotkowski dr B. Zbierzchowski dr A. Wielgus Ćwiczenia http://www.zpt.tele.pw.edu.pl
Egzamin... Ćwiczenia 35 pkt. Egzamin 65 pkt.
Literatura Ashar P., Devadas S., Newton A. R.: Sequential logic synthesis, Kluwer Academic Minimization Algorithms for VLSI Synthesis, Kluwer Academic Publishers, Boston, 1984. Brown F. M.: Boolean Reasoning. The Logic of Boolean Equation, Kluwer Academic Publishers, 1990. Brzozowski J. A, Seger C-J.: Asynchronous Circuits, Springer Verlag, New York 1995. Brzozowski J., Łuba T.: Decomposition of Boolean Functions Specified by Cubes. Journal of Multiple-Valued Logic and Soft Computing. Vol. 9, pp. 377–417. Old City Publishing, Inc., Philadelphia 2003. De Micheli G.: Synthesis and Optimization of Digital Circuits. McGraw-Hill, New York, 1994. Również tłumaczenie polskie: Synteza i optymalizacja układów cyfrowych. WNT, Warszawa 1998. Devadas, S., Ghosh, A., and Keutzer, K. Logic Synthesis. McGraw-Hill, New York, 1994. Gajski D.D.: Principles of digital design. Prentice-Hall International, New jersey 1997. Hassoun S., Sasao T., Brayton R. (ed.): Logic Synthesis and Verification. Kluwer Academic Publishers, New York 2002. Iman S., Pedram M.: Logic Synthesis for Low Power VLSI Design, Kluwer Academic Publishers, 1999. Kamionka-Mikuła H., Małysiak H., Pochopień B.: Układy cyfrowe. Teoria i przykłady. Wyd. Pracowni Komputerowej Jacka Skalmierskiego. Gliwice 2003. Kania D.: Synteza logiczna przeznaczona dla matrycowych struktur programowalnych typu PAL. Politechnika Śląska. Zeszyty Naukowe. Nr 1619. Gliwice 2004. Katz R. H.: Contemporary logic design. The Benjamin/Cummings Publishing Company, Inc., Redwood City, 1994 Kohavi Z.: Switching and Finite Automata Theory. Mc-Graw-Hill, New York, 1978. Kuźmicz W.: Układy ASIC w polskich realiach. Przegląd Telekomuni- kacyjny i Wiadomości Telekomunikacyjne, nr 8, pp. 457-460, 1995. Lala P.K.: Practical digital logic design and testing. Prentice-Hall, New Jersey 1996. Łuba T.(red.), Rawski M., Tomaszewicz P., Zbierzchowski B.: Synteza układów cyfrowych. WKŁ Warszawa 2003. Łuba T., Zbierzchowski B., Zbysiński P.: Układy reprogramowalne dla potrzeb telekomunikacji cyfrowej. Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, nr 5, 2002. Łuba T.: Synteza układów logicznych. Wyższa Szkoła Informatyki Stosowanej i Zarządzania, Wyd. 2, Warszawa 2001. Łuba T.: Rola i znaczenie syntezy logicznej w technice cyfrowej układów programowalnych. Elektronika, str. 15 ¸ 19, nr 7-8, 2002. Łuba T., Jasiński K., Zbierzchowski B.: Programowalne układy przetwarzania sygnałów i informacji - technika cyfrowa w multimediach i kryptografii, Przegląd Telekomunikacyjny i Wiado- mości Telekomunikacyjne, str. 408-418, nr 8-9, 2003. Majewski W., Albicki A.: Algebraiczna teoria automatów. WNT, Warszawa 1980. Mikołajczak B.: Algebraiczna i strukturalna teoria automatów. PWN, Warszawa – Łódź 1985. Mulawka J.: Systemy ekspertowe. WNT, Warszawa 1996. Mrózek A., Płonka L.: Analiza danych metodą zbiorów przybliżonych. Zastosowania w ekonomii, medycynie i sterowaniu. Akademicka Oficyna Wydawnicza PLJ, Warszawa 1999. McCluskey E. J.: Logic design principles, with emphasis on testable semicustom circuits. Prentice-hall International, Inc., New Jersey 1986. Pawlak Z.:Rough Sets. Theoretical Aspects of Reasoning about Data, Kluwer Academic Publishers, 1999. Roth C. H.: Fundamentals of Logic Design. West Publ. CO., 1985. Salsic Z., Smailagic A.: Digital systems design and prototyping using field programmable logic. Kluwer Academic Publishers, 1997. Sasao T.: Switching Theory for Logic Synthesis, Kluwer Academic Publishers, 1999. Sasao T.: Logic Synthesis and Optimization. Kluwer Academic Publishers,1993. Słowiński R.(ed.): Intelligent Decision Support - Handbook of Applications and Advances of the Rough Sets Theory, Kluwer Academic Publishers, Dordrecht 1992. Scholl C.: Functional Decomposition with Application to FPGA Synthesis. Kluwer Academic Publisher, Boston 2001. Tyszer J.: Układy cyfrowe. Materiały pomocnicze do wykładów. Wyd. Politechniki Poznańskiej. Poznań 2000. Zieliński C.: Podstawy projektowania układów cyfrowych. PWN, Warszawa 2003. Zbysiński P., Pasierbiński J.: Układy programowalne – pierwsze kroki. Wyd. II, Wydawnictwo BTC. Warszawa 2004. Łuba T.: Synteza układów logicznych. Oficyna Wydawnicza PW 2005 Łuba T., Ojrzeńska-Wójter D. Układy logiczne w zadaniach. OWPW Warszawa 2011
Literatura
Literatura dla najbardziej zainteresowanych
Z układami logicznymi mamy do czynienia od dawna... Rok 1847
Już w latach 80. 20 wieku Układ logiczny 12
…programowanie połączeń …dzisiaj miliony bramek logicznych Nowa jakość… …programowanie połączeń Programowalne moduły logiczne (Programmable Logic Devices)
Układy programowalne (Programmable Logic Devices) to układy scalone, których właściwości funkcjonalne są definiowane nie przez producenta, lecz przez końcowego użytkownika. Najważniejsza cechą tych układów jest możliwość nadawania im (przez programowanie) określonych przez użytkownika cech funkcjonalnych, w jego laboratorium czy na biurku, a nie w fabryce. PLD
Układy programowalne wyrównują szanse w dostępie do najnowszych technologii… …niezależnie od miejsca zatrudnienia!
Układ kryptograficzny F@*q~ PLD
Komputerowe systemy projektowania Ze względu na skomplikowaną budowę struktur programowalnych ich realizacja nie może się odbywać bez… 17
Komputerowe projektowanie… Specyfikacja HDL Synteza funkcjonalna Synteza logiczna Odwzorowanie technologiczne 18 18
Komputerowe projektowanie… Specyfikacja HDL Synteza funkcjonalna Synteza logiczna Odwzorowanie technologiczne …aż do zaprogramowania układu! Ogromne znaczenie w projektowaniu mają procedury syntezy logicznej 19 19
Niestety… Jak je skonfigurować??? MILIONY BRAMEK !!!
Metoda puzzli
Przykład – prosty układ kombinacyjny .type fr .i 10 .o 1 .p 25 0010111010 0 1010010100 0 0100011110 0 1011101011 0 1100010011 0 0100010110 0 1110100110 0 0100110000 0 0101000010 0 0111111011 1 0000010100 1 1101110011 1 0100100000 1 0100011111 1 0010000110 1 1111010001 1 1111101001 1 1111111111 1 0010000000 1 1101100111 1 0010001111 1 1111100010 1 1010111101 1 0110000110 1 0100111000 1 .e Układ kombinacyjny x1 x2 x3 x10 UK y
Realizacja funkcji F w systemie Quartus LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY tl27 IS PORT ( in: IN STD_LOGIC_VECTOR(9 DOWNTO 0); out: OUT STD_LOGIC_VECTOR(0 DOWNTO 0) ); END tl27; ARCHITECTURE tl27_arch OF tl27 IS BEGIN pandor: PROCESS (in) CASE in IS WHEN "0010111010" => out <= "0"; WHEN "1010010100" => out <= "0"; WHEN "0100011110" => out <= "0"; WHEN "1011101011" => out <= "0"; WHEN "1100010011" => out <= "0"; WHEN "0100010110" => out <= "0"; WHEN "1110100110" => out <= "0"; WHEN "0100110000" => out <= "0"; WHEN "0101000010" => out <= "0"; WHEN "0111111011" => out <= "1"; WHEN "0000010100" => out <= "1"; WHEN "1101110011" => out <= "1"; WHEN "0100100000" => out <= "1"; WHEN "0100011111" => out <= "1"; WHEN "0010000110" => out <= "1"; WHEN "1111010001" => out <= "1"; WHEN "1111101001" => out <= "1"; WHEN "1111111111" => out <= "1"; WHEN "0010000000" => out <= "1"; WHEN "1101100111" => out <= "1"; WHEN "0010001111" => out <= "1"; WHEN "1111100010" => out <= "1"; WHEN "1010111101" => out <= "1"; WHEN "0110000110" => out <= "1"; WHEN "0100111000" => out <= "1"; WHEN OTHERS => out <= "0"; END CASE; END PROCESS pandor; END tl27_arch; QuartusII
Realizacja funkcji F w systemie Quartus LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY tl27 IS PORT ( in: IN STD_LOGIC_VECTOR(9 DOWNTO 0); out: OUT STD_LOGIC_VECTOR(0 DOWNTO 0) ); END tl27; ARCHITECTURE tl27_arch OF tl27 IS BEGIN pandor: PROCESS (in) CASE in IS WHEN "0010111010" => out <= "0"; WHEN "1010010100" => out <= "0"; WHEN "0100011110" => out <= "0"; WHEN "1011101011" => out <= "0"; WHEN "1100010011" => out <= "0"; WHEN "0100010110" => out <= "0"; WHEN "1110100110" => out <= "0"; WHEN "0100110000" => out <= "0"; WHEN "0101000010" => out <= "0"; WHEN "0111111011" => out <= "1"; WHEN "0000010100" => out <= "1"; WHEN "1101110011" => out <= "1"; WHEN "0100100000" => out <= "1"; WHEN "0100011111" => out <= "1"; WHEN "0010000110" => out <= "1"; WHEN "1111010001" => out <= "1"; WHEN "1111101001" => out <= "1"; WHEN "1111111111" => out <= "1"; WHEN "0010000000" => out <= "1"; WHEN "1101100111" => out <= "1"; WHEN "0010001111" => out <= "1"; WHEN "1111100010" => out <= "1"; WHEN "1010111101" => out <= "1"; WHEN "0110000110" => out <= "1"; WHEN "0100111000" => out <= "1"; WHEN OTHERS => out <= "0"; END CASE; END PROCESS pandor; END tl27_arch; QuartusII 23 komórki (Stratix)
Ciekawe jak zachowa się Quartus z nową procedurą syntezy logicznej? LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY tl27 IS PORT ( in: IN STD_LOGIC_VECTOR(9 DOWNTO 0); out: OUT STD_LOGIC_VECTOR(0 DOWNTO 0) ); END tl27; ARCHITECTURE tl27_arch OF tl27 IS BEGIN pandor: PROCESS (in) CASE in IS WHEN "0010111010" => out <= "0"; WHEN "1010010100" => out <= "0"; WHEN "0100011110" => out <= "0"; WHEN "1011101011" => out <= "0"; WHEN "1100010011" => out <= "0"; WHEN "0100010110" => out <= "0"; WHEN "1110100110" => out <= "0"; WHEN "0100110000" => out <= "0"; WHEN "0101000010" => out <= "0"; WHEN "0111111011" => out <= "1"; WHEN "0000010100" => out <= "1"; WHEN "1101110011" => out <= "1"; WHEN "0100100000" => out <= "1"; WHEN "0100011111" => out <= "1"; WHEN "0010000110" => out <= "1"; WHEN "1111010001" => out <= "1"; WHEN "1111101001" => out <= "1"; WHEN "1111111111" => out <= "1"; WHEN "0010000000" => out <= "1"; WHEN "1101100111" => out <= "1"; WHEN "0010001111" => out <= "1"; WHEN "1111100010" => out <= "1"; WHEN "1010111101" => out <= "1"; WHEN "0110000110" => out <= "1"; WHEN "0100111000" => out <= "1"; WHEN OTHERS => out <= "0"; END CASE; END PROCESS pandor; END tl27_arch; Procedura dekompozycji VHDL 2 komórki (Stratix) Dobrze ułożone puzzle!
Skuteczne rozwiązanie tego problemu… Tradycyjne procedury syntezy logicznej Specyfikacja HDL Synteza funkcjonalna Synteza logiczna Odwzorowanie technologiczne Nowe procedury syntezy logicznej 26
Metody syntezy logicznej w zadaniach eksploracji danych
Eksploracja danych (Data mining) jest dynamicznie rozwijającą się dziedziną informatyki o szerokich zastosowaniach: • do wykrywania anomalii w sieciach tkm • medycynie • bankowości • lingwistyce • rozpoznawaniu mowy Przez eksplorację danych rozumie się proces automatycznego odkrywania znaczących i dotychczas nieznanych informacji z dużych baz danych, czyli informacji ujawniających ukrytą wiedzę o badanym przedmiocie.
Typowe zastosowanie Przykładowo: Podejmowanie decyzji np. przy wnioskach kredytowych składanych w bankach. Ponieważ część z nich jest akceptowana, a część odrzucana, można dane zebrane w dłuższym okresie czasu zapisać w tablicy decyzyjnej, uogólnić i dalej stosować w uproszczonej formie do podejmowania decyzji. Klientów charakteryzuje się za pomocą następujących cech jakościowych i ilościowych: Przykładowo: Sytuacja zawodowa: B (bezrobotny), P (pracujący) przeznaczenie kredytu: komputer (K), sprzęt audio (A), biżuteria (B)… wiek w latach stan konta
Przykładowa tablica danych... Sytuacja zawodowa Przeznaczenie: Komp., sam. wiek Stan konta Staż pracy w danym zakładzie pracy C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 Klasa P K S nie 18 200 20 15 1 tak 100 2 B R 25 50 40 12 • M 21 1500 30 3 38 1000
Zastosowania ……. LERS Po uogólnieniu reguł decyzyjnych… [wiek > 25] & [stan konta > 70] & [staż pracy > 2] tak ……. [płeć = kobieta] & [wiek < 25] nie LERS
Rough Set Exploration System http://logic.mimuw.edu.pl/~rses/
RSES ROSETTA Biomedical Centre (BMC), Uppsala, Sweden. Nie są to systemy doskonałe i metodami syntezy logicznej można je znacznie udoskonalić
Eksperymenty atributes objects RSES/ROSETTA prop. method reducts atributes objects RSES/ROSETTA prop. method reducts trains 33 10 >5 h out of memory <1 sec. 689 KAZ 22 31 70 min. 5574 house 17 435 4 sec. 2 sec. 1 audiology 71 200 2 min. 37367 dermatology 35 366 90 min. 115556
Podsumowanie Sytuacja ta czyni z Układów logicznych jedną z najciekawszych dziedzin techniki, której opanowanie może być kluczem do sukcesu zawodowego wielu specjalistów elektroniki, inżynierii komputerowej , telekomunikacji, a nawet inżynierii biomedycznej i biocybernetyki.