350 likes | 546 Views
UKŁADY LOGICZNE. Wykład dla kierunków: Elektronika, Telekomunikacja. Prowadzi: Tadeusz ŁUBA, (GE pok. 472). Wykład. http://www. zpt.tele.pw.edu.pl. Organizacja. T. Łuba. dr G. Borowik mgr D. Ojrzeńska –Wójter dr P. Szotkowski dr B . Zbierzchowski. Ćwiczenia. Egzamin.
E N D
UKŁADY LOGICZNE Wykład dla kierunków: Elektronika, Telekomunikacja Prowadzi: Tadeusz ŁUBA, (GE pok. 472)
Wykład http://www.zpt.tele.pw.edu.pl Organizacja T. Łuba dr G. Borowik mgr D. Ojrzeńska –Wójter dr P. Szotkowski dr B. Zbierzchowski Ćwiczenia
Egzamin... Ćwiczenia 35 pkt. Egzamin 65 pkt.
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
Z układami logicznymi mamy do czynienia od dawna... Rok 1847
Już w latach 80. 20 wieku Układ logiczny 12
…dzisiaj miliony bramek logicznych Nowa jakość… …programowanie połączeń Programowalne moduły logiczne(ProgrammableLogic Devices)
PLD 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.
Układy programowalne wyrównują szanse w dostępie do najnowszych technologii… …niezależnie od miejsca zatrudnienia!
F@*q~ PLD Układ kryptograficzny
Komputerowe systemy projektowania Ze względu na skomplikowaną budowę struktur programowalnych ich realizacja nie może się odbywać bez… 17
Specyfikacja HDL Synteza funkcjonalna Synteza logiczna Odwzorowanie technologiczne Komputerowe projektowanie… 18 18
Specyfikacja HDL Synteza funkcjonalna Synteza logiczna Odwzorowanie technologiczne Komputerowe projektowanie… …aż do zaprogramowania układu! Ogromne znaczenie w projektowaniu mają procedury syntezy logicznej 19 19
Niestety… Jak je skonfigurować??? MILIONY BRAMEK !!!
Układ kombinacyjny x1 x2 x3 x10 y UK 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
Realizacja funkcji F w systemie Quartus QuartusII 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) BEGIN 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;
Realizacja funkcji F w systemie Quartus QuartusII 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) BEGIN 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; 23 komórki (Stratix)
Procedura dekompozycji 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) BEGIN 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; VHDL 2 komórki (Stratix) Dobrze ułożone puzzle!
Specyfikacja HDL Synteza funkcjonalna Synteza logiczna Nowe procedury syntezy logicznej Odwzorowanie technologiczne Skuteczne rozwiązanie tego problemu… Tradycyjne procedurysyntezy logicznej 26
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 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
Sytuacja zawodowa Przeznaczenie: Komp., sam. wiek Stan konta Staż pracy w danym zakładzie pracy Przykładowa tablica danych...
Zastosowania 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ć
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.