Zad 1
W języku VHDL opisz strukturalnie licznik 4 bitowy z asynchronicznym zerowaniem liczący w kodzie NB w przód w zakresie 0-9.
Kod główny – opis strukturalny:
And2
Or2
Przerzutnik T:
Zad 2
Opisać w języku VHDL strukturalnie sumator jednobitowy, można użyć komponentów półsumatora
Kod główny– opis strukturalny:
Or 3
Xor2
And2
Zad 3
Narysować schemat bramki NAND w technologii CMOS i opisać jej działanie:
Działanie tej bramki polega na otwieraniu tranzystorów podłączonych do napięcia które chcemy otrzymać na wyjściu, a zamykaniu prowadzących do napięcia przeciwnego. Dzięki zastosowaniu tranzystorów PMOS polaryzowanych Vdd oraz NMOS polaryzowanych GND obie gałęzie operują na tym samym sygnale wejściowym (nie jest wymagana jego negacja). Szeregowe łączenie tranzystorów zapewnia że należy otworzyć oba aby otworzyć daną drogę, a równoległe że otwarcie danej drogi powodowane jest otwarciem pojedynczego tranzystora. Dzięki zastosowaniu technologii MOS i podłączaniu wejść bramki tylko do bramek tranzystorów wejścia praktycznie nie pobierają prądu (istotnym wyjątkiem jest chwila zmiany sygnału).
Zad4
Wyjaśnić zjawisko metastabilności układu, kiedy może powodować błędne działanie układu, oraz jakie są sposoby eliminacji tego zjawiska.
Każdy układ dwustabilny posiada trzeci stan, który jest niestabilny i jest przyczyną zjawiska metastabilności. Sygnał wejściowy przerzutnika nie może się zmieniać w czasie aktywnego zbocza zegarowego oraz tuż przed i tuż po nim. Jeśli warunek nie jest spełniony, przerzutnik może znaleźć się w stanie metastabilnym. Rzeczywisty układ po pewnym czasie przejdzie ze stanu metastabilnego w jeden ze stanów stabilnych. Nie wiadomo, który ze stanów stabilnych zostanie osiągnięty. Prawdopodobieństwo, że układ pozostanie w stanie metastabilnym przez czas t jest proporcjonalne do e-t, ale nigdy nie spada do 0. Wyjście przerzutnika w stanie metastabilnym ma określoną wartość logiczną. Przestają obowiązywać prawa logiki. Jeśli na wejście przerzutnika podajemy sygnał asynchroniczny, to od czasu do czasu przerzutnik przejdzie w stan metastabilny.
Sposoby eliminacji:
- Synchronizacja zegarów za pomocą pętli fazowej (rozwiązanie drogie i nie zawsze możliwe)
- Synchronizacja przesyłanych danych
- Przemyślane rozprowadzenie sygnałów, nie tylko zegarowych
- Sygnały zegarowe przesunięte w fazie
Zad5
W języku VHDL opisać licznik synchroniczny 8 bitowy liczący w przód w kodzie „one hot” z asynchronicznym zerowaniem, styl opisu dowolny.
Zad6
Opisać w VHDL układ realizujący funkcję f=A’B’C+A’BC’ + AB’C z użyciem komponentu AND3
kod główny– opis strukturalny:
And 3
Zad7
Opisać typy pamięci RAM – budowa i sposób działania
Zasada działania komórki pamięci dynamicznej opiera się na magazynowaniu ładunku na określonej, niewielkiej pojemności elektrycznej. Pojemność nie naładowana oznacza 0 logiczne, natomiast pojemność naładowana oznacza jedynkę logiczną. Taki sposób przechowywania stanów logicznych powoduje potrzebę odświeżania, czyli cyklicznego doładowania tych pojemności. Czas, jaki upływa od momentu podania prawidłowego adresu przez zarządcę magistral do momentu pojawienia się poprawnych danych na magistrali danych, nazywamy czasem dostępu i oznaczamy symbolem "ta". Po odczycie zawartości słowa musi upłynąć kolejny odcinek czasu potrzebny na doładowanie komórek pamięci odczytywanego słowa (ang. prechargedelay).Dopiero wówczas może się rozpocząć kolejny cykl dostępu do pamięci. Minimalny czas pomiędzy dwoma kolejnymi cyklami oznaczamy przez tc (tc> ta). Z powyższego opisu wynika, że dostęp do pamięci musi odbywać się z zachowaniem określonych zależności czasowych. Z drugiej strony praca magistrali taktowana jest sygnałem zegarowym o określonej częstotliwości. Częstotliwość ta jest zwykle podwielokrotnością częstotliwości zegara taktującego pracę procesora. Wartość tej częstotliwości zależy też od rodzaju magistrali (ISA, PCI). Zegar magistrali oznaczany jest symbolem BCLK (ang. Bus Clock). Dla magistrali ISA pojedynczy cykl magistrali realizowany jest w ciągu dwóch taktów zegara magistrali oznaczanych przez Ts (ang. send status) lub T1 oraz Tc (ang. Performc ommand) lub T2. Dla wyższych częstotliwości tego zegara lub wolniejszych pamięci konieczne jest opóźnienie wykonania operacji na pamięci. Przykładowo w przypadku operacji odczytu musimy poczekać, aż na magistrali danych ustalą się prawidłowe wartości bitów odczytywanego słowa. Opóźnienie to jest realizowane przez wstawianie dodatkowych taktów zegara magistrali zwanych stanami oczekiwania (ang. Wait states). Cykle odczytu i zapisu z/do pamięci mogą być rozdzielone czasem, podczas którego na magistrali nie są wykonywane żadne operacje. Stan taki, oznaczany symbolem Ti, nazywamy stanem uśpienia magistrali (ang. Iddle state).
W zależności od sposobu zapamiętywania bitów w komórkach pamięć RAM dzielimy na dwa rodzaje:
Pamięć statyczna RAM (ang. SRAM - Static Random Access Memory). Do zapamiętywania bitów stosuje się przerzutniki bistabilne. Pamięci statyczne są bardzo szybkie i mało kłopotliwe w obsłudze. Wadą jest złożoność przerzutnika zapamiętującego jeden bit danych. Zbudowany jest z co najmniej 6 elementów elektronicznych (tranzystorów CMOS). Ponieważ użyteczna pamięć musi zawierać setki milionów takich przerzutników (np. pamięć 1GB zawiera 8 • 107'3741'824 = 8'589'934'592 przerzutników = 51'539'607'552 tranzystorów CMOS), to jej wewnętrzna budowa bardzo się komplikuje. Jednakże przemysł elektroniczny radzi sobie z tymi trudnościami i pamięci statyczne zdobywają coraz większą popularność.
Pamięć dynamiczna RAM (ang. DRAM – Dynamic Random Access Memory). Ponieważ pamięci statyczne zawierają dużo elementów elektronicznych i są trudne w produkcji, inżynierowie od dawna poszukiwali prostszych układów pamięciowych. Rozwiązaniem okazała się pamięć dynamiczna, wynaleziona w 1966 roku i opatentowana w 1968 przez dr Roberta Dennarda z Centrum Badawczego Thomasa J. Watsona w IBM. Pomysł opiera się na wykorzystaniu kondensatorów do zapamiętywania bitów informacji. Kondensator naładowany ładunkiem elektrycznym utrzymuje ten stan. W pamięci dynamicznej dla każdego bitu wykorzystywany jest mikroskopijny kondensatorek sterowany pojedynczym tranzystorem CMOS (a nie sześcioma, jak w pamięci statycznej). Problem polega na tym, iż w tej skali trudno uzyskać materiały izolacyjne o wysokich parametrach (a pamięć dynamiczna ma być przecież tania, inaczej jej produkcja traci sens). Zatem naładowany kondensatorek szybko rozładowuje się z powodu przepływu elektronów przez warstwę izolacyjną. Czas rozładowania wynosi milisekundy. Ładunek kondensatorka musi być systematycznie odświeżany - stąd nazwa pamięć dynamiczna, ponieważ informacja jest pamiętana dynamicznie - trzeba ją cyklicznie regenerować, inaczej dosłownie rozpłynie się w strukturze układu scalonego. Do odświeżania (ang. refresh) zawartości pamięci dynamicznej stosuje się specjalne obwody (mogą one być umieszczone wewnątrz układu scalonego pamięci - wtedy mamy do czynienia z tzw. pamięcią pseudostatyczną, gdyż zewnętrznie obsługiwana jest identycznie jak pamięć statyczna). Z powodu odświeżania pamięć dynamiczna jest wolniejsza w działaniu od pamięci statycznej i bardziej kłopotliwa w eksploatacji. Jej zaletę stanowi natomiast duża pojemność z uwagi na mniejszą liczbę elementów elektronicznych przypadającą na bit danych w porównaniu z pamięcią statyczną. Pamięci dynamiczne są obecnie powszechnie stosowane w systemach komputerowych.
Pamięć stała (ang. ROM - Read Only Memory). Opisywane powyżej pamięci RAM tracą przechowywaną informację przy zaniku zasilania. Innymi słowy, jeśli wyłączysz komputer, to przestanie on pamiętać wszystko, co znajduje się w jego pamięci RAM. Z drugiej strony komputer potrzebuje pamięci, które przechowują dane nawet po wyłączeniu zasilania. Przykładem może być pamięć ROM-BIOS (ang ROM Basic Input/Output Subsystem), która zawiera program startowy oraz podstawowe procedury obsługi urządzeń zewnętrznych (klawiatura, monitor, dyski, itp.). Gdy włączymy zasilanie komputera, właśnie z pamięci ROM-BIOS wykonuje się program startowy, który uruchomi resztę systemu operacyjnego. Pamięć ROM można tylko odczytywać. Zawarta w ROM informacja została tam umieszczona na etapie produkcji w strukturze wewnętrznej układu scalonego i nie może być już zmieniona przez użytkownika.
Pamięć FLASH. Jest to pamięć nieulotna, tzn. można w niej zapisać dane, wyłączyć zasilanie, a dane nie zostaną stracone i wciąż będą obecne po ponownym włączeniu zasilania. Bity są zapamiętywane, podobnie jak w pamięci dynamicznej, w mikroskopijnych kondensatorach. Jednak tym razem warstwa izolacyjna jest tak dobra, iż ładunek zostaje uwięziony nawet na 10 lat. Czemu w takim razie nie stosuje się pamięci FLASH w charakterze pamięci RAM? Niestety, oprócz wymienionych zalet, pamięci FLASH posiadają również istotne wady. Po pierwsze nie są tak szybkie jak typowe pamięci SRAM czy DRAM. Ustępują im o rząd wielkości. Szybkość pracy pamięci jest kluczowa dla szybkości działania całego systemu komputerowego. Po drugie każdy zapis danych degeneruje warstwę izolacyjną i po kilku milionach cykli warstwa ta ulega całkowitemu uszkodzeniu - pamięć przestaje działać. Pomimo tych wad pamięć FLASH może być stosowana jako zastępca pamięci ROM do przechowywania BIOS komputera. Dzięki możliwości zapisu danych użytkownik może aktualizować oprogramowanie systemowe swojego komputera - np. aktualizacja usuwa wykryte przez producenta błędy, poprawia współdziałanie z nowymi składnikami systemu itp.
Zad8
Dany jest schemat układu, narysuj przebiegi czasowe na wyjściach Q1, Q2 dla 10 dziesięciu okresów zegara C, stan początkowy Q1 i Q2 to ‘0’.
Zad9
W języku VHDL opisz strukturalnie licznik liczący w kodzie NB w przód w zakresie 2-11.
Kod główny– opis strukturalny:
And2
Or 2
Przerzutnik T:
Sumator