Synteza logiczna w projektowaniu układów cyfrowych

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Minimalizacja formuł Boolowskich
Inżynieria Systemów Programowalnych Część I
Układy cyfrowe W układach cyfrowych sygnały napięciowe (lub prądowe) przyjmują tylko określoną liczbę poziomów, którym przyporządkowywane są wartości liczbowe.
Kod Hamminga Podstawy Telekomunikacji Autor: Paweł Zajdel
Układy sekwencyjne - pojęcie automatu
Modelem układu sekwencyjnego jest AUTOMAT
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Architektura systemów komputerowych
UKŁADY ARYTMETYCZNE.
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Algorytmy – różne przykłady
Michał Łasiński Paweł Witkowski
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Wykład 2: Liczby rzeczywiste (stało i zmiennoprzecinkowe) Koprocesor
Systemy liczbowe w architekturze komputerów materiał do wykładu 1/3
Budowa komputera Wstęp do informatyki Wykład 15
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Od algebry Boole’a do komputera
Projektowanie cyfrowych systemów w oparciu o układy (VLSI i) PLD
Struktury układów logicznych
Architektura komputerów
FORMATY ARKUSZY: A3 594 A2 A1 A4 297 A
Zapis informacji Dr Anna Kwiatkowska.
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
Układy kombinacyjne cz.2
opracowanie: Agata Idczak
Układy sekwencyjne - pojęcie automatu
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
Problem kodowania stanów w układach sekwencyjnych (automatach)
Problem kodowania x s 1 A B C D Wariant I A = 00 B = 01 C = 10 D = 11
Cyfrowe układy logiczne
Architektura komputerów
Postać kanoniczna i iloczynowa równania funkcji kwadratowej.
Sekwencyjne bloki funkcjonalne
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
UKŁADY MIKROPROGRAMOWANE
Architektura systemów komputerowych (zima 2013)
Minimalizacja funkcji boolowskich
Jak to jest zrobione? Kalkulator.
Przykład syntezy strukturalnej
Minimalizacja funkcji boolowskich
Minimalizacja automatu
Synteza logiczna w projektowaniu…
Problematyka wykładu Podział rejestrów i liczników
Metoda klasyczna ... to metoda tablicowa, graficzna, której podstawowe
Liczby całkowite dodatnie BCN
Systemy Liczbowe (technika cyfrowa)
Struktury układów logicznych
Posługiwanie się systemami liczenia
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Matematyka i system dwójkowy
schemat tworzenia kodu liczby dwójkowej z dziesiętnej
Prezentacja Multimedialna
Złożone układy kombinacyjne
Podstawy arytmetyki komputerowej Paweł Perekietka
Bramki logiczne i układy kombinatoryczne
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Działania w systemie binarnym
Układy asynchroniczne
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
I T P W ZPT Konwerter BIN2BCD 1 LK „8” DEC LK = 0 LOAD1 R3R2R1  K S3 S2S1 A B „5” K  5 MUX 1 0 A R4 LOAD2 Y = LD B LB „3” US Układ wykonawczy Układ sterujący.
Programowalne układy cyfrowe, czyli fabryka na Twoim biurku
Układy logiczne – układy cyfrowe
ZPT Evatronix Kontroler Ethernet MAC (Media Access Control) 10/100Mbit spełniający rolę rolę podstawowej arterii wymiany danych pomiędzy urządzeniami sterującymi.
ZPT f Gate ArrayStandard Cell Programmable Logic Devices PAL, PLA 1 Omówione do tej pory metody syntezy dotyczą struktur bramkowych… Dekompozycja funkcji.
Układy logiczne – układy cyfrowe
Synteza logiczna w projektowaniu układów cyfrowych
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL
Zapis prezentacji:

Synteza logiczna w projektowaniu układów cyfrowych (Wpływ syntezy logicznej na jakość realizacji układów cyfrowych) System cyfrowy XZ D Z UW – z bloków funkcjonalnych US UW US – automat lub układ mikroprogramowany XP ZY F

Przykład syntezy strukturalnej Konwerter kodu binarnego na kod BCD: W kodzie BCD (Binary Coded Decimal) każda cyfra liczby zapisanej w kodzie dziesiętnym jest przedstawiana czterobitową liczbą binarną Np. liczba 489 zostanie zapisana jako wektor binarny z wykorzystaniem 12 bitów (3  4 bity) 4 8 9 BCD 0100 1000 1001

Celem jest pokazanie różnych metod projektowania Konwerter Bin2BCD 1 27BIN 27BCD 1 0  liczby  99 BIN/BCD Celem jest pokazanie różnych metod projektowania i wykazanie, że najlepszą realizację uzyskamy stosują zaawansowane procedury syntezy logicznej

Metoda +3 27 = 1 1 1 1 LDA LDB LB LDB  5 NIE TAK  8 LDB := LDB 27 = 1 1 1 1 LDA LDB LB LDB  5 NIE TAK  8 LDB := LDB LDB := LDB+3

LDA LDB LB LDB < 5 1 1 LDB < 5 2 1 LDB < 5 3 1 LDB < 5 4 1 LDB < 5 1 5 1 1 1 LDB < 5 1 1 6 1 1 LDB  5 1 1 1 1 7 + 1 1 1 1 LDB < 5 1 1 1 8 1 1 1 1 1 LDBCD = 1 1 1 1 = 27 2 7

Algorytm konwersji z kodu BIN na BCD START LOAD (LB) LDA := 0 LDB := 0 LK := 8 Liczba konwertowana zapisana jest w postaci binarnej LDB  5 TAK Przekształcenie polega na wykonaniu określonej liczby prostych operacji LDB := LDB + 3 NIE LDA  5 TAK Wykorzystuje proste operacje na liczbach binarnych: przesunięcie w lewo, zwiększenie o 3, porównanie ze stałą. NIE LDA := LDA + 3 LDA := SHL(LDA,LDB3) LDB := SHL(LDB,LB7) LB := SHL(LB) LK := DEC(LK) NIE LK = 0 TAK LD := LDA  LDB KONIEC

Algorytm konwersji Rejestry LB, LDA, LDB z operacjami: KONIEC LOAD (LB) LDA := 0 LDB := 0 LK := 8 LDB  5 LDB := LDB + 3 LDA := LDA + 3 LDA  5 START LDA := SHL(LDA,LDB7) LDB := SHL(LDB,LB7) LB := SHL(LB) LK := DEC(LK) LD := LDA  LDB LK = 0 NIE TAK Rejestry LB, LDA, LDB z operacjami: zeruj wpisz, przesuń. Licznik LK z operacjami: ustaw, zmniejsz o 1. Sumator Komparator

Opis strukturalny UW US LK LB MUX  K R4 R3 R2 R1 A B LB Y LK = 0 10 S 8 LK 4 „8” LOAD1 DEC LK = 0 4 LB R3 R2 R1 S3 S2 S1 A B MUX 1 UW LB Y LK = 0 10 US S K  5 „5” „3” 4  K 4 A B K  5 R4 LOAD2 8 Y = LD

Sieć działań z uwzględnieniem UW LK = 0 SHL 1, SHL 2, SHL 3, DEC (LK) MUX := 0 MUX := 1 LOAD 4 LOAD 2 LOAD 3 S 1 LOAD 1 CLEAR 2,3 LOAD (LK) K > 5 A0 A1 Synteza układu sterującego! A2 A6 A3 Numeracja stanów wewnętrznych A7 A4 A5

Zamiana SD na automat sterujący Nowe oznaczenia sygnałów predykatowych LK = 0 SHL 1, SHL 2, SHL 3, DEC (LK) MUX := 0 MUX := 1 LOAD 4 LOAD 2 LOAD 3 S 1 LOAD 1 CLEAR 2,3 LOAD (LK) K > 5 A0 A1 A2 A3 A4 A5 A6 A7 A0/Z0 x2 A1/Z1 x1 A2/Z2 A6/Z4 A3/Z3 x1 A7/Z5 A4/Z6 A5/Z7 x0

Tablica p-w automatu sterującego A0/Z0 A1/Z1 A2/Z2 A3/Z3 A4/Z6 A6/Z4 A7/Z5 A5/Z7 x1 x0 x2 x2x1x0 S 000 001 011 010 110 111 101 100 Z A0 Z0 A1 Z1 A2 Z2 A3 Z3 A4 Z6 A5 Z7 A6 Z4 A7 Z5 A0 A1 A2 A2 A3 A6 A3 A4 A7 A2 A5 A0 A3 Tablica p-w wystarcza do realizacji automatu!

Opis strukturalny UO US LK LB MUX  K 4 8 LK 4 „8” LOAD1 DEC LK = 0 4 LB R3 R2 R1 S3 S2 S1 A B UO LB Y LK = 0 10 US S K  5 MUX 1 „5” „3” 4  K Zrealizowany automat jest Układem Sterującym 4 A B K  5 R4 LOAD2 8 Y = LD

Konwerter Bin2BCD Tradycyjną metodę syntezy strukturalnej 1 Tradycyjną metodę syntezy strukturalnej skonfrontujemy z nowoczesnymi metodami syntezy logicznej 13

Zasady konfrontacji Realizacja – w strukturze FPGA (Stratix) EPF10K Jakość realizacji: a) Liczba zajętych komórek LC b) Szybkość – maksymalna liczba słów przetwarzanych w ciągu 1 sek. 14

Stosując rutynowe metody… uzyskaną strukturę zapisujemy w języku opisu sprzętu i kompilujemy w systemie Quartus SPECYFIKACJA SIEĆ FUNKCJONALNA LOGICZNA (HDL) SYNTEZA OPTYMALIZACJA FUNKCJONALNA LOGICZNA ODWZOROWANIE OPIS RTL TECHNOLOGICZNE 54 LEs ─ 33 mln/sek TRANSLACJE SPECYFIKACJI 15

Konwerter Bin2BCD na poziomie logicznym Wejścia Wyjścia 0 00000000 0000 0000 1 00000001 0000 0001 2 00000010 0000 0010 3 00000011 0000 0011 4 00000100 0000 0100 5 00000101 0000 0101 6 00000110 0000 0110 7 00000111 0000 0111 8 00001000 0000 1000 * * * * 97 01100001 1001 0111 98 01100010 1001 1000 99 01100011 1001 1001 BIN/BCD 16

Komputerowe projektowanie… SPECYFIKACJA SIEĆ FUNKCJONALNA LOGICZNA (HDL) SYNTEZA OPTYMALIZACJA FUNKCJONALNA LOGICZNA ODWZOROWANIE OPIS RTL TECHNOLOGICZNE 24 LEs ─ 313 mln/sek TRANSLACJE SPECYFIKACJI 17

Odwzorowanie technologiczne Specjalistyczne oprogramowanie Mając świadomość, że metody syntezy logicznej są niedoskonałe System komercyjny Specyfikacja HDL Synteza funkcjonalna Synteza logiczna Odwzorowanie technologiczne Specjalistyczne oprogramowanie akademickie nowocześnie wykształcony inżynier 18

…ale czy warto do tych obliczeń stosować system komercyjny Konwerter Bin2BCD na poziomie logicznym Wejścia Wyjścia BIN/BCD 0 00000000 0000 0000 1 00000001 0000 0001 2 00000010 0000 0010 3 00000011 0000 0011 4 00000100 0000 0100 5 00000101 0000 0101 6 00000110 0000 0110 7 00000111 0000 0111 8 00001000 0000 1000 * * * * 97 01100001 1001 0111 98 01100010 1001 1000 99 01100011 1001 1001 …ale czy warto do tych obliczeń stosować system komercyjny ..nie, bo systemy komercyjne nie mają wbudowanych procedur dekompozycji 19

Specjalizowana procedura dekompozycji TITLE " Decomposed project: bin2bcd "; % Translated from DEMAIN format % % Warsaw University of Technology % % Institute of Telecommunications % SUBDESIGN A ( in_1, in_2, in_3, in_4 :INPUT; in_5, in_6, in_7 :INPUT; out_1, out_2, out_3, out_4 :OUTPUT; out_5, out_6, out_7, out_8 :OUTPUT; ) VARIABLE g1_1, g1_2, g1_3, g3_1 :LCELL; g2_1, g2_2 :LCELL; BEGIN ---- Level 1 ---- TABLE (in_1, in_2, in_3, in_4) => (g1_1); B"1000" => B"0"; B"0011" => B"0"; ................. B"0001" => B"1"; B"1011" => B"1"; END TABLE; (in_6, g1_1, g2_1, g2_2) => (out_7); B"0X10" => B"0"; END; # Konwerter bin2bcd .type fr .i 7 .o 8 .p 100 0000000 00000000 0000001 00000001 0000010 00000010 0000011 00000011 0000100 00000100 0000101 00000101 . . . .......... 1011111 10010101 1100000 10010110 1100001 10010111 1100010 10011000 1100011 10011001 .e Procedura dekompozycji  13 komórek (!!!) 352 mln/sek 20

Realizacja programowa KONIEC LOAD (LB) LDA := 0 LDB := 0 LK := 8 LDB  5 LDB := LDB + 3 LDA := LDA + 3 LDA  5 START LDA := SHL(LDA,LDB3) LDB := SHL(LDB,LB7) LB := SHL(LB) LK := DEC(LK) LD := LDA  LDB NIE TAK LK = 0 Procesor AMD Athlon™ 64X2 Dual Core 4200+ 2.2 GHz – 9,17 mln/sek 21

Porównanie realizacji BIN2BCD Liczba elementów logicznych ─ liczba słów Synteza strukturalna – 54 LEs ─ 33 mln/sek Synteza logiczna: system komercyjny Quartus – 24 LEs ─ 313 mln/sek system specjalizowany – 13 LEs ─ 352 mln/sek Procesor AMD Athlon™ 64X2 Dual Core 4200+ 2.2 GHz – 9,17 mln/sek Nie zapominajmy o syntezie logicznej w projektowaniu układów cyfrowych 22

Więcej na ten temat w książce: 23