2013 SYSTEMY WBUDOWANE I MIKROPROCESORY Aleksandra Zalewska nr 14169 SPRAWOZDANIE NR 1
1 QUARTUS II WPROWADZENIE DO QUARTUSA Program Quartus II firmy Altera jest programem umożliwiającym na projektowanie układów scalonych, oraz na symulację ich działania. Jest on przyjazny ze względu na przejrzysty interfejs graficzny użytkownika, jednakże oprócz takiej opcji symulację można przeprowadzić za pomocą języka VHDL (Very High Speed Integrated Circuits Hardware Description Language). Wszelkie wyniki symulacji (również i błędy) możemy przeanalizować za pomocą otrzymanych raportów, przebiegów czasowych itd. Program Quartus (podobnie jak MaxPlus) ma szerokie zastosowania w projektowaniu układów scalonych. Co najważniejsze pozwala on na analizę zaprojektowanych układów. Dzięki niemu możemy zauważyć takie zjawisko jak hazard. Jest to krótkotrwała, niezamierzona zmiana wartości logicznej sygnału wyjściowego, powstała na wskutek nierównych czasów propagacji dla różnych ścieżek w układzie. Czas propagacji - czas liczony od momentu pojawienia się sygnału wejściowego do momentu ustalenia sygnału wyjściowego.
2 Bramki logiczne Bramki logiczne są to układy, które realizują pewne proste funkcje logiczne, których to argumentami mogą być zmienne logiczne 0 lub 1 (Algebra Boole a ), w układach TTL mówimy o nich stan niski lub stan wysoki itp. BRAMKI PODSTAWOWE - realizujące podstawowe funkcje logiczne. Funkcja logiczna Nazwa Symbol Przebiegi czasowe Opis Koniunkcja, iloczyn logiczny AND Stan wysoki na wyjściu, tylko gdy wszystkie wejścia są w stanie wysokim. Alternatywa, suma logiczna OR Stan wysoki na wyjściu, gdy przynajmniej jedno wejścia pozostaje w stanie wysokim Zaprzeczenie NOT Stan na wyjściu jest przeciwny do tego na wejściu. BRAMKI FUNKCJONALNIE PEŁNE pozwalające zbudować układ realizujący dowolną funkcję logiczną. Nazwa Symbol Przebiegi czasowe Opis NAND NOT AND NOR NOT OR
3 Hazard Hazardem nazywamy krótkotrwałą, niezamierzoną zmianę wartości logicznej sygnału wyjściowego, powstałą na wskutek nierównych czasów propagacji dla różnych ścieżek w układzie. HAZARD STATYCZNY mamy z nim do czynienia gdy wyjście, które powinno pozostać w tym samym stanie, krótkotrwale zmienia znak na przeciwny: o Hazard statyczny w jedynce, gdy wyjście powinno pozostać w stanie 1 o Hazard statyczny w zerze, gdy wyjście powinno pozostać w stanie HAZARD DYNAMICZNY mamy z nim do czynienia gdy na wyjściu powinna nastąpić pojedyncza zmiana stanu, zmieniła swój stan wielokrotnie SPOSOBY ELIMINOWANIA HAZARDU Stosowanie układów taktujących Wprowadzenie w siatce Karaugh a grup anty-hazardowych zawierających elementy sąsiadujących grup Aby zaprezentować zjawisko hazardu i metodę jego eliminacji, zasymuluje poniższy układ: Wejścia CD Stan 00 01 11 10 00 0 0 0 0 01 0 1 1 0 AB 11 0 0 1 1 10 0 0 1 1 Y = AC+A BC
4 Po eliminacji hazardu (dodaniu dodatkowej grupy antyhazardowej) tablica wygląda następująco: Wejścia CD Stan 00 01 11 10 00 0 0 0 0 01 0 1 1 0 AB 11 0 0 1 1 10 0 0 1 1 Y=AC+A BC+BCD
5 Schemat układu po wprowadzeniu grupy antyhazardowej: Wyniki symulacji po wprowadzeniu dodatkowej grupy antyhazardowej: Jak zauważamy, w drugiej symulacji, nie ma żadnych niepotrzebnych skoków napięcia na wyjściu. HAZARD występuje na skutek nierównych czasów propagacji dla różnych ścieżek układu, czyli sygnał dociera od wejścia do wyjścia w różnym czasie zależnym od długości ścieżki dla tego sygnału. O ile przy pojedynczych bramkach lub układach zjawisko to występuje w małej skali, o tyle w przypadku zaawansowanych układów może być ono bardzo niekorzystne i trudne do przewidzenia, dlatego istnieją sposoby eliminacji hazardu.
6 Przerzutniki Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu cyfrowego, przeznaczonego do przechowywania i ewentualnego przetwarzania informacji. Przerzutnik współtworzy najniższe piętro struktury układu i zdolny jest do zapamiętania jednego bitu informacji. Grupa czterech lub ośmiu połączonych ze sobą przerzutników tworzy następne, wyższe piętro - tzw. rejestr, zdolny już do pamiętania jednego bajtu informacji. Zastosowanie przerzutników: pamiętania stanu układu przechowywania obecnie przetwarzanego słowa danych implementacji liczników implementacji rejestrów przesuwnych (źródło http://ultra.ap.krakow.pl/~whudy/pliki/elektronikaw09.pdf) PODZIAŁ PRZERZUTNIKÓW: Przerzutnik Astabilny Przerzutniki Astabline wytwarzają przebiegi samoczynnie, bez udziału sygnału zewnętrznego, podobnie do generatorów sinusoidalnych. Przerzutnik Monostabilny W przerzutniku monostabilnym istnieje tylko jeden trwały stan równowagi, w którym układ może utrzymać się przez czas nieograniczony Przerzutnik Bistabilny Przerzutnik bistabilny charakteryzuje istnienie dwóch stanów równowagi trwałej (dwa stany stabilne), przy czym dla przejścia z jednego stanu do drugiego konieczne jest doprowadzenie zewnętrznego sygnału wyzwalającego Asynchroniczny - pracuje bez sygnału taktującego; stan przerzutnika ustala się bezpośrednio w wyniku zmiany stanu wejść. Synchroniczny - pracuje z udziałem sygnału taktującego, a stan wejść informacyjnych jest przekazywany na wyjście w chwilach występowania narastającego lub opadającego zbocza sygnału taktującego (żródła: http://home.agh.edu.pl/~maziarz/labpe/przerzutnik.html http://zto.ita.pwr.wroc.pl/~luban/uklady_sek/przerzutniki/przerzutniki.html)
7 PRZERZUTNIK RS (ASYNCHRONICZNY) Poniższy przerzutnik RS (Reset - Zeruj; Set -Ustaw) jest przerzutnikiem asynchronicznym (synchroniczne posiadają dodatkowy zegar). Wynik symulacji przerzutnika RS (asynchronicznego) Poniżej przedstawiłam tablicę prawdy dla poszczególnych kombinacji wejść. S R 0 0 X X 0 1 1 0 1 0 0 1 1 1 Przy stanach niskich obu wejść mamy do czynienia ze stanem zabronionym.
8 PRZERZUTNIK RS (SYNCHRONICZNY) Jest to odmiana przerzutnika RS z dodatkowym wejściem taktującym (dlatego nazywamy synchronicznym). W tym przerzutniku tabela prawdy się nie zmieni. Różnica jaka tkwi pomiędzy tym przerzutnikiem a poprzednim jest taka, że jakakolwiek zmiana na wyjściu może nastąpić w przypadku rosnącego zbocza zegara własność układów posiadających wejście taktujące. W przerzutniki bez zegara, sama zmiana wartości wejść, zmienia wynik wyjścia układu.
9 PRZERZUTNIK JK Należy on do grupy przerzutników synchronicznych, ponieważ posiada wejście taktujące - zegar, za sprawą którego wejścia J i K mogą oddziaływać na wyjścia. Chwile, w których następują te oddziaływania są wyznaczane przez zbocze dodatnie bądź ujemne przebiegu taktującego, dlatego mówimy o synchronizacji układu zboczem narastającym lub opadającym. W chwilach tych stan innych wejść nie powinien się zmieniać. Schemat układu: Nasze analizy symulacji wskazują na to iż nasz układ zgadza się z poniższą tabelą prawdy dla przerzutnika JK: J K Q n+1 0 0 Q n 1 0 1 0 1 0 1 1 Q n
10 PRZERZUTNIK D Jest to kolejny przykład przerzutnika synchronicznego. Zasada działania jest podobna do przerzutnika JK jednak posiada on tylko jedno wejście (nie licząc zegara). Nasze analizy symulacji wskazują na to iż nasz układ zgadza się z poniższą tabelą prawdy dla przerzutnika D: D Qn Qn+1 0 1 0 1 0 1 gdzie D i Qn wskazują na obecny stan wejścia i wyjścia, Qn+1 wskazuje na stan wyjścia jaki nastąpi w przypadku wysokiego stanu zegara. Z analizy przerzutników synchronicznych wiemy, że jakiekolwiek zmiany na wyjściu mogą zajść tylko gdy sygnał zegara na to zezwoli dlatego wykazują one więc mniejszą podatność na zakłócenia. Ze względu więc na posiadanie zegarów przez przerzutniki synchroniczne znajdują zastosowanie w budowie liczników.
11 Rejestry Rejestr to układ zbudowany w oparciu o przerzutniki zdolny zapisywać, przechowywać i odtwarzać informacje w postaci pojedynczych bitów (0 lub 1). PODZIAŁ REJESTRÓW Ze względu na sposób w jaki wprowadza się dane rejestry można podzielić na: Rejestry szeregowe SISO (Serial In Serial Out, szeregowo-szeregowe) - umożliwiające szeregowe wprowadzenie i odtwarzanie danych (bit po bicie). Rejestry równoległe PIPO (Parallel In Parallel Out, równoległorównoległe) - umożliwiające równoległe wprowadzenie i wyprowadzenie informacji jednocześnie do wszystkich pozycji rejestru. Rejestry szeregowo-równoległe SIPO (Serial In Parallel Out) - umożliwiające szeregowe wprowadzenie i równoległe wyprowadzenie informacji. Rejestry równoległo szeregowe PISO (Parallel In Serial Out) - umożliwiające równolegle wprowadzenie i szeregowe wyprowadzenie informacji. Rejestr uniwersalny pozwala na wprowadzanie i wyprowadzanie danych zarówno szeregowo jak i równolegle, ponadto umożliwia przesuwanie rejestrów w lewo lub w prawo. Rejestry można także podzielić (ze względu na użyte przerzutniki) na synchroniczne i asynchroniczne. PARAMETRY REJESTRÓW Parametrami charakteryzującymi rejestr są: Długość rejestru, równa liczbie przerzutników - N Pojemność rejestru, równa 2 N Szybkość rejestru; o w przypadku rejestru równoległego będzie to czas wprowadzania lub wyprowadzania informacji, o w przypadku rejestru szeregowego maksymalna możliwa częstotliwość impulsów przesuwających, przy której nie następuje zniekształcenie informacji. Może to być też po prostu czas propagacji zastosowanych przerzutników.
12 REJESTR PRZESUWAJĄCY W PRAWO REJESTR SZEREGOWO-RÓWNOLEGŁY
13 REJESTR SAMOKORYGUJĄCY
14 REJESTR 7495 Rejestry mają szerokie i zróżnicowane zastosowanie w technologii informacyjnej, wszędzie tam gdzie mamy do czynienia z cyfrowymi danymi, poczynając od procesorów (np. pamięci cache), pamięci ROM i RAM, poprzez napędy CD/DVD (bufory odczytu/zapisu), mikrochipy i wykraczając poza komputery, wszystkie urządzenia cyfrowe, bazujące na operacjach na informacji cyfrowej. Rejestry są podstawą pamięci, a ich pojemność określa się wzorem 2^N, dlatego pojemności kości pamięci wynoszą 8, 16, 32, itd. bity/bajty/megabajty.
15 Systemy i układy liczące w PC oraz dzielniki częstotliwości Dzielniki częstotliwości to element służący do zmiany częstotliwości sygnału wejściowego n razy (często realizowany za pomocą licznika modulo n). Może przyjmować różne wartości od dzielników dekadowych (np. 1:10, 1:100, 1:10000), przez dzielniki dzielące częstotliwość wejściową za pomocą potęgi liczby 2 (np. 1:4, 1:16, 1:8), dzielniki innych liczb całkowitych (np. 1:3, 1:7, 1:12) i kończąc na dzielnikach ułamkowych (np. 2:3, 2:5, 3:10). DZIELNIK MODULO 3 Dzielnik modulo 3 zbudowany został w oparciu o 2 przerzutniki JK, które są ze sobą sprzężone (sygnał z wyjścia dzielnika po zanegowaniu trafia do wejścia J pierwszego przerzutnika), dzięki czemu dzielnik z założenia dzielący częstotliwość sygnału wejściowego na 4, będzie dzielił tą częstotliwość na 3 (zaznaczony na schemacie)
16 DZIELNIK MODULO 4 Budowa dzielnika modulo 4 jest bardzo zbliżona do budowy poprzedniego dzielnika (modulo 3). Różni się on brakiem sprzężenia wyjścia z wejściem J, oraz połączeniem wejść J i K w wejście T.
17 Liczniki podobnie jak dzielniki należą do kategorii użytecznych układów sekwencyjnych. Licznik jest bowiem rejestrem, który może być z łatwością zwiększany o 1 modulo pojemność rejestru. Gdy zawartość licznika jest zwiększana poza jego wartość maksymalną, jest on ustawiany na 0. Podobnie jak w przerzutnikach (a przecież z nich zbudowane są liczniki) mamy do czynienia zlicznikami synchronicznymi i asynchronicznymi. Liczniki asynchroniczne są jednak powolne, ze względu na to, iż wyjście jednego przerzutnika wyzwala zmianę stanu następnego przerzutnika. Liczniki synchroniczne mają to do siebie, że wszystkie przerzutniki zmieniają stan jednocześnie, dlatego są znacznie szybsze i stosuje się je w procesorach. (źródło: W. Stallings Organizacja i architektura systemu komputerowego.) LICZNIK SAMOKORYGUJĄCY
18 LICZNIK REWERSYJNY 74193 Liczniki i dzielniki częstotliwości są to cyfrowe układy liczące, wykorzystywane są oczywiście w budowie komputerów (mikroprocesorów), oraz wszystkich układów cyfrowych, mikroprocesorowych niekoniecznie związanych tylko z komputerami osobistymi lub przemysłowymi, ale wykorzystywane są szeroko tam, gdzie mamy do czynienia z cyfrową reprezentacją danych i operacjami na nich wykonywanymi np. w radiokomunikacji, robotyce, mechatronice oraz wielu innych dziedzinach.
19 Kodery, dekodery, transkodery Dekoder - układ kombinacyjny, który działa odwrotnie niż koder, tzn. zamienia kod binarny na kod 1 z n, gdzie tym razem n to liczba wyjść, a nie, jak w przypadku enkodera - wejść. Dekodery dzieli się ze względu na stosunek wejść do wyjść: I. Dekodery pełne nazywane są tak, gdy w dekoderze zachodzi zależność 2 n =m, gdzie n= liczbie wejść, a m= liczbie wyjść II. Dekodery niepełne zyskują takie miano, gdy zachodzi nierówność 2 n >m. DEKODER SN 7442
Transkoder to kolejny układ kombinacyjny, potrafiący przetworzyć dowolny kod cyfrowy na dowolny inny kod cyfrowy. Naszym i najczęściej spotykanym przykładem transkodera jest układ zamieniający kod binarny na kod dziesiętny przedstawiony na 7-segmentowym wyświetlaczu. 20 TRANSKODER 7449
21 Enkoder to jeden z układów kombinacyjnych służący do zamiany danego kodu, np. dziesiętnego, na kod binarny rozumiany przez komputery i układy cyfrowe. Enkodery można podzielić na: I. Enkodery zwykłe- służące do konwersji kodu 1 z n (kodu pierścieniowego), co oznacza, że brane pod uwagę jest tylko informacje z jednego wejścia, gdyż istnieje fizyczna możliwość aktywacji więcej niż jednego wejścia na raz. II. Enkodery priorytetowe- konwertują kod x z n, czyli uwzględniane jest x wejść, a na wyjściu pojawia się kod wejścia z największym priorytetem ENKODER 74148
22 Sumatory i komparatory Sumator jest to układ logiczny, który umożliwia nam wykonania działania sumy na dwóch(lub więcej) liczbach dwójkowych. W zależności od rodzaju sumatora mogą to być liczby jednobitowe lub wielobitowe. Ze względu na rodzaj dodawanych liczb możemy wyróżnić sumatory binarne i dziesiętne. Ze względu na sposób wykonywania obliczeń na kolejnych pozycjach liczb wielocyfrowych, możemy wyróżnić sumatory równoległe i szeregowe. SUMATOR PEŁNY Sumator pełny (Full Adder) oprócz dwóch wejść Ai B posiada również wejście przeniesienia z poprzedniej pozycji (Cin) Symbolicznie, sumator pełny możemy przedstawić za pomocą schematu: Tabela prawdy: Ci-1 Ai Si Bi Ci Ci-1 Bi Ai S Ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1
KOMPARATOR Komparator, jest to układ cyfrowy który służy do porównywania dwóch liczb binarnych i nie tylko takich. Typowy, uniwersalny komparator realizuje trzy kryteria porównawcze: A=B A>B A<B Proste komparatory sprawdzają tylko czy dane liczby są równe czy nie, jednakże są też specjalne komparatory, które oprócz kryteriów uniwersalnego komparatora, sprawdza również różnice pomiędzy liczbami itp. Sumatory i komparatory mają zastosowanie we wszystkich urządzeniach przetwarzających cyfrowe informacje. Znajdują się one, np. w kalkulatorach, mikroprocesorach komputerów, wszędzie tam gdzie zachodzi potrzeba sprawdzenia jakiegoś warunku czy też jego utworzenia. Sumatory pozwalają zliczać bity, a co za tym idzie dane, na których w danym momencie przeprowadzana jest operacja, a komparatory potrafią porównać do trzech elementów i nadają się bardzo dobrze do tworzenia pętli warunkowych (z użyciem sumatorów).
24 RAM, ROM Pamięć RAM (Random-access Memory)- pamięć swobodnego dostępu. Pamięć ulotna- po odłączeniu zasilania znikają wszystkie dane, dlatego musi być cyklicznie odświeżana jej zawartość o bezpośrednim dostępie do dowolnej komórki pamięci. Służy do przechowywania informacji i danych przetwarzanych właśnie programów i poleceń. Parametrami pamięci RAM są pojemność- określa ile danych możemy zapisać, wyrażana w kilobajtach, megabajtach, najnowsze w gigabajtach. Nowsze rodzaje pamięci składają się z matrycy komórek zbudowanych z pojedyńczych tranzystorów i kondensatorów, mogących przechowywać jeden bit informacji. Każda komórka posiada swój adres w postaci numeru wiersza i kolumny. Pamięci można podzielić biorąc pod uwagę technologię wykonania na: SRAM (Static-RAM)- pamięć statyczna, do przechowywania danych nie potrzebuje zasilania, dzięki czemu wyróżnia się krótkim czasem dostępu i głównie używana do produkcji pamięci cache. DRAM (Dynamic-RAM)- pamięć dynamiczna, potrzebuje napięcia zasilającego do przechowywania danych, dane muszą być odświeżane cyklicznie, ą w tym czasie nie ma do nich dostępu, co wpływa na ich dłuższy czas dostępu. LPM_RAM DP
25 LPM_RAM DQ
26 ALT_RAM Wynik Symulacji: Pamięci przedstawione wyżej różnią się budową i zasadą działania, układ ALTDPRAM charakteryzuje się wejściem blokującym działanie układu, jak widać w wyniku symulacji, ma najkrótszy czas dostępu. Układ LP_RAM_DQ, natomiast, informację wysyła tylko przy rosnącym zboczu zegara inclock.
Pamięć ROM (Read-only Memory)- pamięć tylko do odczytu, służy do przechowywania informacji potrzebnych do funkcjonowania danego urządzenia. Programuje je głównie producent urządzenia. Pamięć ta nie potrzebuje zasilania do utrzymania przechowywanych informacji. Podział pamięci ROM PROM (Programmable Memory)- pamięć niezapisana, zapisanie informacji polega na połączeniu wewnętrznych połączeń w pamięci, co powoduje, że błąd eliminuje pamięć z użycia. Można powiedzieć, że jest to pamięć jednokrotnego zapisu. EPROM (Erasable Programmable Memory)- pamięć, której zawartość można skasować naświetlając intensywnie pamięć promieniem UV, kasowana jest cała zawartość. Można w niej wielokrotnie zapisać dane. Jej trwałość oceniana jest na 10 lat. EEPROM (Electrically Erasable Memory)- pamięć, której każdy bit można skasować przy użyciu prądu elektrycznego. Pamięć powinna wytrzymać 100 000 kasowań. LPM_ROM 27 Zawartość pliku inicjalizacji pamięci Memory Initialization File (.mif) depth=4; głębokość szyny pamięci width=16; szerokość szyny pamięci address_radix=dec; system liczbowy szyny adresowej pamięci data_radix=dec; system liczbowy szyny danych pamięci content zawartość konfiguracji inicjalizacji pamięci begin początek części konfiguracji inicjalizacji pamięci [0..1]:0; warunki zachowania pamięci (jeżeli 0 1 to wpisz 0) [2..3]:1; warunki zachowania pamięci (jeżeli 2 3 to wpisz 1) end; koniec części konfiguracji inicjalizacji pamięci
28 Pamięci RAM i ROM niezbędne są do budowy komputerów odkąd powstała ich koncepcja, pamięć ROM służy do obsługi urządzenia, rozruchu odpowiednich komponentów, do przechowywania instrukcji dla procesora itd. Pamięć RAM służy, natomiast, do przechowywania informacji używanych przez użytkownika, oraz uruchomione programy. Parametrami pamięci są czas dostępu i pojemność, które zmieniają się wraz z postępem technologii. Dla przykładu, obecny na zajęciach mikrokomputer Commodore 64 z lat 80-tych wyposażony jest w 64 kilobajty pamięci RAM, a dzisiejsze komputery PC zaopatrzone są w pamięci RAM o pojemnościach rzędu kilki gigabajtów (1 gigabajt= 1048576 kilobajtów).