Komputerowe systemy wspomagania projektowania układów cyfrowych 1
Komputerowe projektowanie SPECYFIKACJA PROJEKTU KOMPIACJA WERYFIKACJA I PROGRAMOWANIE Edytor graficzny Symulator Edytor tekstowy Wykresy czasowe Analizator opóznien ' ' Programator Standard CAE Standard CAE 2
System MAX+Plus II W pełni zintegrowany system do projektowania układów cyfrowych z wykorzystaniem układów programowalnych Udostępnia środowisko projektowe niezaleŝne od architektury układów cyfrowych Wspiera wszystkie układy produkowane przez firmę Altera Nie wspiera układów innych producentów Udostępnia narzędzia umoŝliwiające Opis projektu Syntezę Fitting, Partitioning Symulację Analizę czasową Programowanie układów 3
System projektowania CA firmy ATERA Tworzenie projektu Edytor graficzny Edytor symboli Edytor tekstowy Edytor przebiegów czasowych Edytor planu zasobów A V Inne standardy System MAX+PlusII Weryfikacja projektu Symulator Edytor przebiegów czasowych Analizator czasowy Inne Standardy Programowanie układów Programator 4
Narzędzia środowiska Max+Plus II Tworzenie projektu Przetwarzanie projektu Edytor tekstowy Edytor graficzny Kompilator Edytor przebiegów czasowych Edytor symboli Edytor planu zasobów Weryfikacja projektu Prezentacja struktury projektu Programowanie ukladów / Symulator Edytor przebiegów czasowych Programator Analizator czasowy 5
Okno główne systemu Menu główne Przyciski szybkiego reagowania Nowy projekt, otwarcie pliku, zapis pliku, druk pliku Wytnij, kopiuj, wklej, cofnij Pomoc Moduły systemu Ustalenie projektu Zapisz i wykonaj... Obszar roboczy 6
Moduły systemu MAX+Plus II Edytor hierarchii projektu Edytor graficzny Edytor symboli Edytor tekstowy Edytor przebiegów czasowych Edytor planu zasobów Kompilator Symulator Analizator czasowy Programator Procesor błędów 7
Edytor hierarchii 8
Edytor graficzny ostępne biblioteki symboli i gotowych bloków funkcjonalnych Wirtualne połączenia Łatwość obsługi Współpraca z procesorem błędów 9
Edytor tekstowy Szablony Kolorowanie kodu Współpraca z procesorem błędów 10
Edytor symboli 11
Przetwarzanie projektu Baza danych MAX+PUS II Kompilator Compiler Netlist Extractor (zawiera wypis całej sieci połączeń) atabase Builder ogic Synthesizer esign octor Partitioner Fitter Functional, Timing, or inked SNF Extractor EIF, V & Verilog Netlist Writers Assembler.sym.cnf.hif.rpt.fit.tdo.snf.edo.aco.vho.vo.pof.sof.jed Raport utylizacyjny MAX+PUS II Message Processor.mmf Raport błędów do symulatora i analizatora czasowego MAX+PUS II do innego przemysłowego symulatora do MAX+PUS II lub innego przemysłowego programatora 12
Kompilator 13
Symulator 14
Edytor przebiegów czasowych 15
Analizator czasowy 16
Edytor planu zasobów 17
Programator 18
Programowanie układów Wektory testowe Moduł programujący Kompilator MAX+PUS II.pof.jed.sof.scf.vec Programator.plf.jed.pof BitBlaster Raport.hex.ttf.sbf.rbf 19
Komputerowe projektowanie układów cyfrowych Więcej informacji o systemie MAX+PUS II m. in. w ksiąŝce T. Łuba, B. Zbierzchowski: Komputerowe projektowanie układów cyfrowych 20
MAX+Plus II proces projektowy 21
Projekt do realizacji NaleŜy zrealizować układ sterujący wyświetlaczem 7-segmentowym: a wyświetlanie cyfr 0 9 diody zapalane stanem wysokim - logiczną jedynką f g b e c d 22
Koncepcja i schemat blokowy układu Koncepcja układu sterującego wyświetlaczem: sygnały wejściowe reprezentują cyfry 0 9 zapisane w kodzie BC liczba wejść 4 log 2 liczba symboli wejściowych liczba wyjść 7 liczba diod wyświetlacza wartości 10 15 nie obsługiwane x1 x2 x3 x4 a g f e a g d b c 23
Opis układu Opis układu. x1 x2 x3 x4 a b c d e f g 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 2 0 0 1 0 1 1 0 1 1 0 1 3 0 0 1 1 1 1 1 1 0 0 1 4 0 1 0 0 0 1 1 0 0 1 1 5 0 1 0 1 1 0 1 1 0 1 1 6 0 1 1 0 1 0 1 1 1 1 1 f e a g d b c 7 0 1 1 1 1 1 1 0 0 0 0 8 1 0 0 0 1 1 1 1 1 1 1 9 1 0 0 1 1 1 1 1 0 1 1 10 1 0 1 0 - - - - - - - 11 1 0 1 1 - - - - - - - 24
Równanie sterujące diodą d Tablica Karnaugh a x1 x2 x3 x4 d x1 x2/x3 x4 00 01 11 10 00 1 0 1 1 01 0 1 0 1 11 - - - - 10 1 1 - - d = x1 + x3 x4 + x2 x3 + x2 x4 + x2 x3 x4 0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 1 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 1 9 1 0 0 1 1 10 1 0 1 0-11 1 0 1 1-25
Równanie sterujące diodą d wykorzystanie systemu Espresso Tablica Karnaugh a # dioda.i 4.o 1.type fr 0000 1 0001 0 0010 1 0011 1 0100 0 0101 1 0110 1 0111 0 1000 1 1001 1 1010.e x1 x2 x3 x4 d 0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 1 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 1 9 1 0 0 1 1 10 1 0 1 0-11 1 0 1 1-26
Graficzny opis projektu Otwórz nowy plik projektu FIE ->NEW Wybierz Graphic editor file Zapisz pod wybraną nazwą (np. dioda_d) File -> Save 27
Graficzny opis projektu dostępne elementy Biblioteki: prim podstawowe elementy, takie jak bramki logiczne, symbole reprezentujące końcówki wejściowe i wyjściowe, mf makrofunkcje, takie jak multipleksery, liczniki, odpowiedniki układów serii 74XXX, mega_lpm parametryzowane megabloki realizujące sumatory, układu mnoŝące, itd., symbole z biblioteki uŝytkownika. 28
Graficzny opis projektu schemat graficzny d = x1+ x3 x4+ x2 x3 + x2 x4+ x2 x3 x4 Wstawienie potrzebnych symboli: 3 AN2, AN3, OR5, 3 NOT, 4 INPUT, OUTPUT. 29
Graficzny opis projektu schemat graficzny c.d. d = x1+ x3 x4+ x2 x3 + x2 x4+ x2 x3 x4 Zmiana nazw symboli wejściowych i wyjścia, Połączenie symboli: liniami wirtualnie (nadając nazwy liniom połączeniowym) 30
Kompilacja projektu Ustawienie utworzonego pliku jako projekt do przetwarzania File->Project->Set Project to Current File Wybór docelowej rodziny układów programowalnych Assign->evice. 31
Kompilacja projektu c.d. Ustawienie stylu syntezy logicznej Assign-> Global Project ogic Synthesis Włączenie esign octor a Processing (opcjonalnie) Kompilacja funkcjonalna Processing (opcjonalnie) Uruchomienie modułu kompilatora Cel optymalizacji Styl syntezy 32
Kompilacja projektu c.d. Baza danych MAX+PUS II Kompilator Compiler Netlist Extractor (zawiera wypis całej sieci połączeń) atabase Builder ogic Synthesizer esign octor Partitioner Fitter Functional, Timing, or inked SNF Extractor EIF, V & Verilog Netlist Writers Assembler.sym.cnf.hif.rpt.fit.tdo.snf.edo.aco.vho.vo.pof.sof.jed Raport utylizacyjny MAX+PUS II Message Processor.mmf Raport błędów do symulatora i analizatora czasowego MAX+PUS II do innego przemysłowego symulatora do MAX+PUS II lub innego przemysłowego programatora 33
Kompilacja projektu cd. Analiza komunikatów i ewentualna korekta opisu projektu Analiza wymaganych zasobów przed zakończeniem procesu alokacji zasobów (fitting) i ewentualne przerwanie kompilacji. Statystyka wykorzystania zasobów Otwiera plik raportu 34
Analiza wykorzystania zasobów Analiza pliku raportu w celu: ustalenia ilości wykorzystanych zasobów odczytania wygenerowanych równań opisujących projekt ** EVICE SUMMARY ** Chip/ Input Output Bidir Shareable POF evice Pins Pins Pins Cs Expanders % Utilized diodad EPM7032C44-6 4 1 0 1 0 3 % User Pins: 4 1 0 ** EQUATIONS ** x1 : INPUT; x2 : INPUT; x3 : INPUT; x4 : INPUT; x1 x2/x3 x4 00 01 11 10 00 1 0 1 1 01 0 1 0 1 11 - - - - 10 1 1 - - -- Node name is 'd' -- Equation name is 'd', location is C017, type is output. d = CE( _EQ001 $ VCC); _EQ001 =!x1 & x2 & x3 & x4 #!x1 &!x2 &!x3 & x4 #!x1 & x2 &!x3 &!x4; Programowalna negacja pozwala na pewną elastyczność d = x1+ x3 x4+ x2 x3 + x2 x4+ x2 x3 x4 35
Edytor hierarchii Uruchomienie edytora hierarchii Prezentacja projektu hierarchicznego w postaci drzewa Łatwa nawigacja pomiędzy modułami składowymi projektu i plikami dotyczącymi poszczególnych modułów Moduły składowe Pliki raportu, symulacji, konfiguracji, itp. 36
Przygotowanie pliku testowego Uruchomienie edytora przebiegów czasowych Wprowadzenie sygnałów, na podstawie których będzie ustalana poprawność implementacji 37
Przygotowanie pliku testowego c.d Ustalenie czasu symulacji na np. 10 ns (domyślnie 1 ns) Ustalenie poziomów logicznych sygnałów wejściowych w poszczególnych momentach czasowych Zaznaczenie przedziału czasowego Wybór poziomu logicznego 38
Ustalenie przebiegów testowych Zgrupowanie sygnałów (istotna kolejność grupowanych sygnałów najstarszy bit pierwszy) Konieczne przestawienie sygnałów w edytorze Wybór systemu w jakim prezentowane będą wartości Grupa reprezentuje liczbę, w tym przypadku 4-bitową 39
Automatyczne ustalenie przebiegów testowych Nadanie wartości grupie odbywa się podobnie jak w przypadku pojedynczego sygnału przez zaznaczenie odcinka czasu i ustalenie wartości, tym razem przy uŝyciu przycisku Albo zaznaczeniu całej grupy i uŝyciu automatu 40
Symulacja Zapisanie pliku z testami pod nazwą proponowaną przez system Uruchomienie modułu symulatora (np. przyciskiem ) Uruchomienie symulacji Przełączenie do okna edytora przebiegów czasowych 41
Analiza czasowa Uruchomienia modułu analizatora czasowego (np. przyciskiem ) Uruchomienie analizy Wypisanie informacji o danej ścieŝce opóźnienia 42
Wpływ wyboru struktury układu Wybór rodziny układów FEX10K Analiza pliku raportu po kompilacji ** EVICE SUMMARY ** Chip/ Input Output Bidir Memory Memory Cs POF evice Pins Pins Pins Bits % Utilized Cs % Utilized diodad EPF10K10C84-3 4 1 0 0 0 % 1 0 % User Pins: 4 1 0 ** EQUATIONS ** { } -- Node name is ' OR5:6 :1' = ' OR5:6 OUT' -- Equation name is '_C8_B14', type is buried _C8_B14 = CE( _EQ001); _EQ001 = x1 # x2 &!x3 & x4 #!x2 & x3 #!x2 &!x4 # x3 &!x4; d = x1+ x3 x4+ x2 x3 + x2 x4+ x2 x3 x4 43
Wpływ wyboru struktury układu cd. Symulacja Analiza czasowa 44
Wpływ wyboru struktury układu cd. I/O OUTPUT ENABE PRESET SYSTEM COCK Cascade Out ARRAY COCK CEAR P C Q TO I/O CONTR O BOCK ATA1 ATA2 ATA3 ATA4 Cascade In Carry IN ook-up Table (UT) Carry Chain Cascade Chain PR CR Q Programmable Register E Out Carry Out From inputs From PIA Expander Product Terms I/O and Macrocell Feedback Komórka MAX: potrafi więcej zajmuje więcej miejsca jest szybsza Preset Clear Clock Komórka FEX: potrafi mniej zajmuje mniej miejsca jest wolniejsza 45
Wykorzystanie edytora planu zasobów 46
Edycja zasobów Zapamiętanie alokacji zasobów z ostatniej kompilacji Wyłączenie techniki QUARTUS (Processing->Fitter Settings) Przełączenie widoku na aktualne modyfikacje zasobów Modyfikacja alokacji zasobów metodą chwyć i upuść 47
Wpływ edycji zasobów Analiza czasowa: mniejsze opóźnienia ciągle róŝne opóźnienia Symulacja: bez zmian szpilki pozostały 48
Umieszczenie układu w bibliotece uŝytkownika Wybranie okna z opisem projektu plik graficzny diodad.gdf Wybranie opcji File->Create efault Symbol 49
Programator 50
Programowanie układów Wektory testowe Moduł programujący Kompilator MAX+PUS II.pof.jed.sof.scf.vec Programator.plf.jed.pof BitBlaster Raport.hex.ttf.sbf.rbf 51