Układy VLSI Bramki 1.0

Podobne dokumenty
Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Realizer cz. 5 Krzysztof Górski

1. Przypisy, indeks i spisy.

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. QuIDE Quantum IDE PODRĘCZNIK UŻYTKOWNIKA

Programowanie w języku Python. Grażyna Koba

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Kadry Optivum, Płace Optivum

Instrukcja obsługi programu:

Program V-SIM tworzenie plików video z przebiegu symulacji

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

ABC 2002/XP PL EXCEL. Autor: Edward C. Willett, Steve Cummings. Rozdział 1. Podstawy pracy z programem (9) Uruchamianie programu (9)

Zadanie 11. Przygotowanie publikacji do wydrukowania

Kod składa się z kodu głównego oraz z odpowiednich kodów dodatkowych (akcesoriów). Do kodu można przyłączyć maksymalnie 9 kodów dodatkowych.

Zadanie 8. Dołączanie obiektów

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Tworzenie prezentacji w MS PowerPoint

Europejski Certyfikat Umiejętności Komputerowych. Moduł 3 Przetwarzanie tekstów

14. TWORZENIE MAKROPOLECEŃ

Dlaczego stosujemy edytory tekstu?

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Edytor tekstu MS Word podstawy

Mazowiecki Elektroniczny Wniosek Aplikacyjny

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

Dodawanie grafiki i obiektów

1. SFC W PAKIECIE ISAGRAF 2. EDYCJA PROGRAMU W JĘZYKU SFC. ISaGRAF WERSJE 3.4 LUB 3.5 1

1.Formatowanie tekstu z użyciem stylów


Laboratorium Systemów SCADA

Rys.1. Uaktywnianie pasków narzędzi. żądanych pasków narzędziowych. a) Modelowanie części: (standardowo widoczny po prawej stronie Przeglądarki MDT)

Podręczna pomoc Microsoft Power Point 2007

Edytor tekstu Word MK(c)

Ulotka. Zmiany w wersji Comarch ERP e-pracownik 1 Zmiany w wersji

Zakład Systemów Rozproszonych

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Menu Narzędzia w Edytorze symboli i Edytorze Widoku aparatów

ZINTEGROWANY SYSTEM ZARZĄDZANIA TREŚCIĄ

Ulotka. Zmiany w wersji Comarch ERP e-pracownik 1 Zmiany w wersji

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Pokaz slajdów na stronie internetowej

OPROGRAMOWANIE DEFSIM2

Budowa i generowanie planszy

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

Zadanie 9. Projektowanie stron dokumentu

e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda

Skorzystaj z Worda i stwórz profesjonalnie wyglądające dokumenty.

Magistrale na schematach

1. Zaczynamy! (9) 2. Edycja dokumentów (33)

INSTRUKCJA UŻYTKOWNIKA Podpis cyfrowy ISO 9001:2008 Dokument: Wydanie: Podpis cyfrowy

LICZNIKI LABORATORIUM. Elektronika AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. Wydział Informatyki, Elektroniki i Telekomunikacji

Edytor tekstu OpenOffice Writer Podstawy

Makropolecenia w Excelu

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

POMIARY WIDEO W PROGRAMIE COACH 5

Podstawy Kompilatorów

Umowy handlowe. Hipermarket, NET Spółka z o.o.

Dodawanie i modyfikacja atrybutów zbioru

System Informatyczny CELAB. Pożywkarnia

Informatyka II. Laboratorium Aplikacja okienkowa

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Klawiatura. Klawisze specjalne. Klawisze specjalne. klawisze funkcyjne. Klawisze. klawisze numeryczne. sterowania kursorem. klawisze alfanumeryczne

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Podręcznik użytkownika programu. Ceremonia 3.1

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

Programowanie aplikacji mobilnych

WSCAD. Wykład 5 Szafy sterownicze

Moduł rozliczeń w WinSkład (od wersji 18.40)

Roboty Przemysłowe. Rys. 1. Główne okno Automation Studio.

INSTRUKCJA UŻYTKOWNIKA Instalacja KS - EDE w systemie KS - ZSA ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

WASTE MANAGEMENT SYSTEM PODRĘCZNIK UŻYTKOWNIKA SERWISU WWW

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010

INSTRUKCJA UŻYTKOWNIKA Podpis cyfrowy ISO 9001:2008 Dokument: Wydanie: Podpis cyfrowy. Spis treści... 1

Programowanie obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

Aplikacja pozwala wyliczyd numer rachunku NRB zarówno dla jednego jak i wielu kontrahentów.

1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu

Copyright Softpasm, All Rights Reserved. No portions of Softpasm may be used without expressed, written permission

1.1 Zakładka Mapa. Kliknięcie zakładki "Mapa" spowoduje wyświetlenie panelu mapy:

Windows Commander (WinCmd)

Programowanie obiektowe

Rys.1. Technika zestawiania części za pomocą polecenia WSTAWIAJĄCE (insert)

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury

Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Program EWIDENCJA ODZIEŻY ROBOCZEJ INSTRUKCJA UŻYTKOWNIKA Przejdź do strony producenta programu

2017 Electronics For Imaging, Inc. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym

Temat: ANFIS + TS w zadaniach. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

W otrzymanym pakiecie źródłowym znajdują się pliki do edycji (tsmart i tsmartdoc). Edytuj tłumaczenia w plikach *.tsmart

W oknie tym wybieramy pożądany podział sekcji, strony, kolumny. Naciśnięcie powoduje pojawienie się następującego okna:

Zakładka Mapa. Kliknięcie zakładki "Mapa" spowoduje wyświetlenie panelu mapy:

Podręcznik użytkownika Obieg dokumentów

EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć

Transkrypt:

Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie wejść do schematu... 4 3. Generowanie schematu z równania... 4 3.1 Rozbiór równania... 5 4.0 Import danych w formacie Netlist... 6 5.0 Wykonywanie przeliczeń ilości przełączeń... 7 Krzysztof Rozpara, Marcin Rosiek 1

1. Wstęp Program Bramki 1.0 powstał w ramach projektu z przedmiotu Układy VLSI - laboratorium. Program składa się z prostego edytora schematów logicznych, dopuszczający trzy podstawowe rodzaje bramek NAND, NOR i NOT. Program potrafi tworzyć schemat na podstawie podanego równania, importować dane w formacie Netlist z programów Protel oraz OrCAD. Program umożliwia wyliczenia ilości przełączeń stanów poszczególnych bramek na podstawie schematu. Program został stworzony w technice obiektowej przy użyciu Microsoft Visual Studio i pracuje w środowisku Windows 98, oraz Windows NT 4.0 ( z Internet Explorer w wersji 4.0 lub wyższej). 2. Opis edytora schematów Edytor schematów jest wizualnym środowiskiem, które umożliwia tworzenie prostych schematów logicznych składających się z trzech podstawowych bramek NAND, NOR i NOT. Po uruchomieniu programu użytkownik widzi okno edycyjne służące do tworzenia schematu: Rys 2.0 Okno główne programu Krzysztof Rozpara, Marcin Rosiek 2

Okno podzielone zostało na dwie części. Lewa strona służy do graficznej edycji schematu, prawa wyświetla informacje o istniejących bramkach w systemie. 2.1 Dodawanie bramek do schematu: Aby dodać bramkę do schematu należy z paska narzędzi lub menu Bramki wybrać odpowiedni rodzaj. Kursor zmieni kształt symbolizujący rodzaj bramki, należy umieścić symbol bramki na wybranym miejscu schematu i wcisnąć lewy klawisz myszy. Aby zaniechać umieszczania bramki należy wcisnąć klawisz Escape. Symbole bramek Rys 2.1 Menu i pasek narzędzi programu 2.2 Łączenie bramek Łączenie bramek odbywa się poprzez wskazanie bramek między którymi będzie tworzone połączenie. W tym celu z paska narzędzi należy wybrać symbol dodawania połączenia : Połączenie bramek Rys 2.2 Dodawanie połączeń Następnie wskazać bramkę, której wyjście będzie wejściem do następnej bramki, po czym wskazać bramkę do której będziemy dodawać wejście. 2.3 Usuwanie bramek Usuwanie bramek odbywa się przez wybranie z paska narzędzi symbolu usunięcia bramki i wskazania wybranej bramki. Razem z bramką usuwane są wszystkie połączenia z nią związane Usuwanie bramek Rys.2.3 Usuwanie bramek Krzysztof Rozpara, Marcin Rosiek 3

2.4 Usuwanie pojedynczych połączeń Usuwanie połączeń odbywa się w bardzo podobny sposób jak dodawanie połączeń. Należy wybrać z paska narzędzi symbol usuwania połączeń. Następnie wskazać pierwszą bramkę od której jest połączenie, później bramkę następną. W przypadku gdy bramki nie są połączone, lub są połączone w drugą stronę zostanie wygenerowany odpowiedni komunikat i usuwanie zostanie zaniechane. Usuwanie połączeń Rys.2.4 Usuwanie połączeń 2.5 Dodawanie wejść do schematu Wejścia są dodawane do schematu poprzez wybranie z menu Bramki polecenia Wstaw-> Wejście do systemu i umieszczenia symbolu na schemacie. Wejście usuwana jest w ten sam sposób jak usuwane są bramki. Rys 2.5 Menu Wejście do systemu 3. Generowanie schematu z równania Zamiast edytować schemat ręcznie mamy możliwość generacji schematu za pomocą równania. Równanie wprowadzane jest w oknie dialogowym uruchamianym poleceniem z menu Plik- >Nowy->Generacja z równania Rys 3.1 Menu Generacja z równania Po wybraniu polecenia uruchamiane jest okno dialogowe z polem do edycji równań. W edycji zostały przyjęte następujące symbole operacji: - NOT, + NOR, * NAND Krzysztof Rozpara, Marcin Rosiek 4

Rys 3.2 Edycja równania 3.1 Rozbiór równania Równanie podawane jest w postaci infiksowej, w związku z tym, algorytm rozbioru równania generuje drzewo, którego korzeniem jest bramka wyjściowa. Następnie równanie przetwarzane jest od lewej strony, szukając operatorów o najniższym priorytecie, przy znalezieniu takiego operatora tworzona jest nowa gałąź, która jest ponownie rozbierana na podstawowe części. Po całkowitym rozbiorze równania obliczane są najniższe podwyrażenia a ich wyniki służą do obliczania podwyrażeń znajdujących się wyżej. Po znalezieniu rodzaju operacji dodawana jest stosowna bramka, a po przeparsowaniu dalej do bramek dodawane są odpowiednie połączenia. Na końcu do bramek przyłączane są wejścia systemu. Rys 3.2.1 Schemat uzyskany z równania a+b+c Krzysztof Rozpara, Marcin Rosiek 5

4.0 Import danych w formacie Netlist Import danych pozwala na wgranie do programu prostych net list w formatach Protel a oraz w formacie OrCad/PCB II. Rozpoznanie formatu odbywa się automatycznie na podstawie danych w pliku. Ponieważ program operuje jedynie na bramkach NAND, NOR i NOT w net liście mogą się pojawić tylko takie nazwy bramek. W momencie gdy zostanie stwierdzona inna nazwa proces ładowania jest przerywany z błędem. Kolejnym założeniem jest unikalność nazw bramek. W przypadku gdy pojawiają się dwie bramki o tej samej nazwie działanie programu może być niepoprawne. Akceptowany format Protela: [ nazwa_bramki symbol bramki tylko: NAND, NOR i NOT ] ta sekcja może być powtórzona wielokrotnie ale nazwa musi być unikalna ( nazwa połączenia nazwa_bramki-numer_końcówki... ) Przy czym jeśli bramka jest typu NAND lub NOR to jeśli numer końcówki jest równy trzy to jest on uznawany za wyjście, natomiast dla NOT wyjściem jest końcówka o numerze 2. Pozostałe końcówki są uznawane za wejścia. W jednej sekcji połączenia może być tylko jedno wejście. Akceptowalny format OrCad a: ( {OrCAD PCB II Netlist Format} ( 00000001 nazwa_bramki symbol_bramki_not ( 1 Netnazwa_poprzedzającej_bramki_1 ) ( 2 Netnazwa_bramki_2 ) ) ( 00000002 nazwa_bramki symbol_bramki_nand_nor ( 1 Netnazwa_poprzedzającej_bramki_1 ) ( 2 Netnazwa_poprzedzającej_bramki_2 ) ( 3 Netnazwa_bramki_3 ) )... ) Bardzo ważne jest by pierwsza linia wyglądała dokładnie jak na specyfikacji, ponieważ na tej podstawie wykrywany jest format OrCad a. Ważne jest również zachowanie właściwych odstępów tzn. nazwa bramki musi się zaczynać na 14 pozycji. Zakończenie listy dla bramki musi mieć format spacja). W każdej z pozycji połączenia nazwa połączenia musi zaczynać się od liter Net po czym następuje nazwa bramki (do _ ). Krzysztof Rozpara, Marcin Rosiek 6

5.0 Wykonywanie przeliczeń ilości przełączeń W celu obliczeń ilości przełączeń bramek, obiekt Cbramka został rozszerzony o następujące atrybuty: int IloscPrzelaczen_0_1; zapamiętywana w nim jest ilość zmian wyjścia bramki z stanu 0 do 1. int IloscPrzelaczen_1_0; zapamiętywana w nim jest ilość zmian wyjścia bramki z stanu 1 do 0. long Iteracja; zmienna w której zapisany jest numer sygnału wejściowego, który dotarł do bramki i dla którego dana bramka ustaliła już swoje wyjście. int WartoscWyjscia; wartość wyjścia konkretnej bramki. Na początku obliczeń wszystkie bramki są zerowane przy pomocy metody void CBramka::ZerujBramke() Ustawia ona ilości przełączeń na 0, wartość na wyjścia ustalana jest na stan niski (logiczne zero). Numer aktualnej iteracji ustawiany jest na 1, co ma oznaczać że nie rozpoczęło się obliczanie ilości przełączeń. Następnie w funkcji void CSchemat::ObliczPrzelaczenia() dokonywane jest obliczenie kolejnych stanów bramek w wprowadzonych schemacie. Wykonywane jest to według następującego algorytmu: 1. Obliczana jest liczba wejść w schemacie oraz zapamiętywane są ich numery. 2. Zerowane są wszystkie bramki należące do schematu. 3. W przypadku gdy nie zostało wprowadzone żadne wejście algorytm kończy działanie. 4. Obliczany jest zakres sygnałów, które będą podawane na wejścia (od 0 do 1 << iloscwejsc) 5. W pętli symulowane jest podawanie kolejnych sygnałów na wejścia schematu (ustawiany jest atrybut iteracja na wartość bieżącego sygnału, która zarazem jest numerem iteracji oznacza ona że na wejściach został ustalony już sygnał): long maska = 0x0001; for(i=0; i < iiloscwejsc; i++) { int ipozycjawejscia = capozycjewejsc.getat(i); CBramka bramka = cbbramkischematu.getat(ipozycjawejscia); if ( (maska & czas)!= 0 )bramka.wartoscwyjscia = 1; else bramka.wartoscwyjscia = 0; bramka.iteracja = czas; maska = maska << 1; } 6. Następnie ustalamy wartości kolejnych bramek: dla każdej bramki, która nie ma jeszcze ustalonego sygnału na wyjściu dla bieżącego sygnału (warunek: b.iteracja < czas) oraz nie jest to bramka typu wejście lub wyjście układu sprawdzamy czy posiada ona ustalone wszystkie wejścia (czy bramki, których wyjścia są połączone z wejściami aktualnie analizowanej bramki zostały już obliczone. W przypadku gdy możemy dokonać obliczenia stanu danej bramki wywoływana jest funkcja dokonująca obliczeń oraz Krzysztof Rozpara, Marcin Rosiek 7

ustawiająca atrybut Iteracja na bieżącą wartość zmiennej czas. Ten sam algorytm wykonujemy dla każdej z bramek, dopóki cały schemat nie zostanie obliczony. 7. Następnie zmieniany jest sygnał wprowadzany na wejście schematu i powtarzany jest punkt 5 i 6 algorytmu. Wykonywanej jest to dopóki na wejściach układu nie pojawią się wszystkie możliwe kombinacje stanów. Krzysztof Rozpara, Marcin Rosiek 8