Elektronika cyfrowa
Elektronika cyfrowa to dziedzina elektroniki zajmująca się badaniem sygnałów cyfrowych i inżynierią urządzeń, które je wykorzystują lub wytwarzają. Jest to w przeciwieństwie do analogowej elektroniki i sygnałów analogowych .
Cyfrowe układy elektroniczne są zwykle wykonane z dużych zespołów bramek logicznych , często zapakowanych w układy scalone . Złożone urządzenia mogą mieć proste elektroniczne reprezentacje funkcji logicznych Boole'a .
Historia
System liczb binarnych został udoskonalony przez Gottfrieda Wilhelma Leibniza (opublikowanego w 1705 r.), który również ustalił, że za pomocą systemu binarnego można połączyć zasady arytmetyki i logiki. Logika cyfrowa, jaką znamy, była pomysłem George'a Boole'a w połowie XIX wieku. W liście z 1886 roku Charles Sanders Peirce opisał, w jaki sposób logiczne operacje mogą być przeprowadzane przez elektryczne obwody przełączające. Ostatecznie lampy próżniowe zastąpiły przekaźniki operacji logicznych. Modyfikacja zastawki Fleminga dokonana przez Lee De Foresta w 1907 roku mogła być wykorzystana jako bramka AND . Ludwig Wittgenstein przedstawił wersję 16-rzędowej tabeli prawdy jako propozycję 5.101 Tractatus Logico-Philosophicus (1921). Walther Bothe , wynalazca obwodu koincydencji , otrzymał w 1954 roku Nagrodę Nobla w dziedzinie fizyki za stworzenie pierwszej nowoczesnej elektronicznej bramki AND w 1924 roku.
Mechaniczne komputery analogowe zaczęły pojawiać się w pierwszym wieku, a później były używane w epoce średniowiecza do obliczeń astronomicznych. Podczas II wojny światowej mechaniczne komputery analogowe były używane do specjalistycznych zastosowań wojskowych, takich jak obliczanie celowania torped. W tym czasie powstały pierwsze elektroniczne komputery cyfrowe , a termin „cyfrowy” zaproponował George Stibitz w 1942 roku . Pierwotnie były wielkości dużego pokoju, zużywając tyle energii, co kilkaset nowoczesnych pecetów .
Z3 był komputerem elektromechanicznym zaprojektowanym przez Konrada Zuse . Ukończony w 1941 roku, był pierwszym na świecie działającym programowalnym , w pełni automatycznym komputerem cyfrowym. Jego działanie ułatwiło wynalezienie lampy próżniowej w 1904 roku przez Johna Ambrose'a Fleminga .
W tym samym czasie cyfrowe obliczenia zastąpiły analogowe, czysto elektroniczne elementy obwodów, wkrótce zastąpiły ich mechaniczne i elektromechaniczne odpowiedniki. John Bardeen i Walter Brattain wynaleźli tranzystor punktowy w Bell Labs w 1947 roku, a następnie William Shockley wynalazł bipolarny tranzystor złączowy w Bell Labs w 1948 roku.
Na Uniwersytecie w Manchesterze zespół pod kierownictwem Toma Kilburna zaprojektował i zbudował maszynę wykorzystującą nowo opracowane tranzystory zamiast lamp próżniowych. Ich „ komputer tranzystorowy ” i pierwszy na świecie działał do 1953 r ., A druga wersja została tam ukończona w kwietniu 1955 r. Od 1955 r. Tranzystory zastąpiły lampy próżniowe w projektach komputerowych, dając początek „drugiej generacji” komputerów. W porównaniu z lampami próżniowymi tranzystory były mniejsze, bardziej niezawodne, miały nieokreśloną żywotność i wymagały mniej energii niż lampy próżniowe - wydzielając w ten sposób mniej ciepła i umożliwiając znacznie gęstsze skupienie obwodów, do dziesiątek tysięcy w stosunkowo niewielkiej przestrzeni.
Pracując w Texas Instruments w lipcu 1958 roku, Jack Kilby nagrał swoje wstępne pomysły dotyczące układu scalonego (IC), a następnie z powodzeniem zademonstrował pierwszy działający układ scalony 12 września 1958 roku. Chip Kilby'ego został wykonany z germanu . W następnym roku Robert Noyce z Fairchild Semiconductor wynalazł krzemowy układ scalony . Podstawą krzemowego układu scalonego Noyce'a był proces planarny , opracowany na początku 1959 roku przez Jeana Hoerniego , który z kolei opierał się na metodzie pasywacji powierzchni krzemu opracowanej w 1957 roku przez Mohameda Atallę . Ta nowa technika, układ scalony, pozwoliła na szybkie, niskie - kosztowna produkcja złożonych obwodów poprzez posiadanie zestawu obwodów elektronicznych na jednej małej płytce („chipie”) z materiału półprzewodnikowego , zwykle krzemu.
Tranzystor polowy z efektem metal-tlenek-półprzewodnik (MOSFET), znany również jako tranzystor MOS, został wynaleziony przez Mohameda Atallę i Dawona Kahnga w Bell Labs w 1959 r. Zalety tranzystora MOSFET obejmują wysoką skalowalność , przystępność cenową, niskie zużycie energii i wysoką gęstość tranzystora . Jego szybka prędkość przełączania elektronicznego włączania i wyłączania sprawia, że idealnie nadaje się do generowania ciągów impulsów , podstawy elektronicznych sygnałów cyfrowych , w przeciwieństwie do BJT, które wolniej generują sygnały analogowe przypominające fale sinusoidalne . Wraz z integracją na dużą skalę MOS (LSI) te czynniki sprawiają, że MOSFET jest ważnym urządzeniem przełączającym dla obwodów cyfrowych . MOSFET zrewolucjonizował przemysł elektroniczny i jest najpopularniejszym urządzeniem półprzewodnikowym .
We wczesnych latach układów scalonych każdy chip był ograniczony tylko do kilku tranzystorów, a niski stopień integracji oznaczał, że proces projektowania był stosunkowo prosty. Wydajność produkcji była również dość niska jak na dzisiejsze standardy. Szerokie zastosowanie tranzystora MOSFET we wczesnych latach siedemdziesiątych XX wieku doprowadziło do powstania pierwszych integracyjnych na dużą skalę (LSI) z ponad 10 000 tranzystorów w jednym układzie scalonym. Po szerokim przyjęciu CMOS , rodzaju logiki MOSFET, w latach 80. miliony, a następnie miliardy MOSFET-ów można było umieścić na jednym chipie w miarę postępu technologii, a dobre projekty wymagały dokładnego planowania, co dało początek nowym metodom projektowania . Liczba tranzystorów w urządzeniach i całkowita produkcja wzrosły do niespotykanych dotąd rozmiarów. Całkowitą ilość tranzystorów wyprodukowanych do 2018 roku oszacowano na 1,3 × 10 22 (13 sektylionów ).
Rewolucja bezprzewodowa (wprowadzenie i rozprzestrzenianie się sieci bezprzewodowych ) rozpoczęła się w latach 90. XX wieku i była możliwa dzięki szerokiemu zastosowaniu wzmacniaczy mocy RF opartych na MOSFET ( moc MOSFET i LDMOS ) oraz obwodów RF ( RF CMOS ). Sieci bezprzewodowe umożliwiły publiczną transmisję cyfrową bez potrzeby stosowania kabli, co doprowadziło do powstania telewizji cyfrowej , GPS , radia satelitarnego , bezprzewodowego Internetu i telefonów komórkowych w latach 90. – 2000.
Nieruchomości
Zaletą obwodów cyfrowych w porównaniu z obwodami analogowymi jest to, że sygnały reprezentowane cyfrowo mogą być przesyłane bez degradacji spowodowanej szumem . Na przykład ciągły sygnał audio transmitowany jako sekwencja jedynek i zer może zostać zrekonstruowany bez błędów, pod warunkiem, że szum wychwycony podczas transmisji nie jest wystarczający, aby uniemożliwić identyfikację jedynek i zer.
W systemie cyfrowym bardziej precyzyjną reprezentację sygnału można uzyskać, używając do jego reprezentacji większej liczby cyfr binarnych. Chociaż wymaga to większej liczby obwodów cyfrowych do przetwarzania sygnałów, każda cyfra jest obsługiwana przez ten sam rodzaj sprzętu, co daje łatwo skalowalny system. W systemie analogowym dodatkowa rozdzielczość wymaga fundamentalnej poprawy charakterystyki liniowości i szumów na każdym etapie łańcucha sygnałowego .
Dzięki sterowanym komputerowo systemom cyfrowym nowe funkcje można dodawać poprzez zmiany oprogramowania i nie są potrzebne żadne zmiany sprzętowe. Często można to zrobić poza fabryką, aktualizując oprogramowanie produktu. W ten sposób błędy projektowe produktu mogą być korygowane nawet po tym, jak produkt znajdzie się już w rękach klienta.
Przechowywanie informacji może być łatwiejsze w systemach cyfrowych niż analogowych. Odporność systemów cyfrowych na zakłócenia umożliwia przechowywanie i pobieranie danych bez pogorszenia jakości. W systemie analogowym hałas spowodowany starzeniem i zużyciem pogarsza jakość przechowywanych informacji. W systemie cyfrowym, o ile całkowity szum jest poniżej pewnego poziomu, informacje można doskonale odzyskać. Nawet jeśli występują większe zakłócenia, zastosowanie redundancji pozwala na odzyskanie oryginalnych danych pod warunkiem, że nie wystąpi zbyt wiele błędów.
W niektórych przypadkach obwody cyfrowe zużywają więcej energii niż obwody analogowe do wykonania tych samych zadań, wytwarzając w ten sposób więcej ciepła, co zwiększa złożoność obwodów, takich jak włączenie radiatorów. W systemach przenośnych lub zasilanych bateryjnie może to ograniczać wykorzystanie systemów cyfrowych. telefony komórkowe zasilane bateryjnie często wykorzystują analogowy interfejs o niskim poborze mocy do wzmacniania i dostrajania sygnałów radiowych ze stacji bazowej. Jednak stacja bazowa jest zasilana z sieci i może korzystać z energochłonnych, ale bardzo elastycznych radiotelefonów programowych . Takie stacje bazowe można łatwo przeprogramować do przetwarzania sygnałów wykorzystywanych w nowych standardach komórkowych.
Wiele użytecznych systemów cyfrowych musi tłumaczyć ciągłe sygnały analogowe na dyskretne sygnały cyfrowe. Powoduje to błędy kwantyzacji . Błąd kwantyzacji można zmniejszyć, jeśli system przechowuje wystarczającą ilość danych cyfrowych, aby reprezentować sygnał z wymaganym stopniem wierności . Twierdzenie Nyquista-Shannona o próbkowaniu dostarcza ważnych wskazówek co do tego, ile danych cyfrowych jest potrzebnych do dokładnego zobrazowania danego sygnału analogowego.
Jeśli pojedyncza część danych cyfrowych zostanie utracona lub błędnie zinterpretowana, w niektórych systemach może wyniknąć tylko niewielki błąd, podczas gdy w innych systemach znaczenie dużych bloków powiązanych danych może się całkowicie zmienić. Na przykład jednobitowy błąd w danych audio zapisanych bezpośrednio jako liniowa modulacja impulsowo-kodowa powoduje w najgorszym przypadku pojedyncze słyszalne kliknięcie. Ale podczas korzystania z kompresji audio w celu zaoszczędzenia miejsca w pamięci i czasu transmisji błąd pojedynczego bitu może spowodować znacznie większe zakłócenia.
Ze względu na efekt klifu użytkownikom może być trudno stwierdzić, czy dany system jest na skraju awarii lub czy może tolerować znacznie większy hałas przed awarią. Kruchość cyfrową można zmniejszyć, projektując system cyfrowy zapewniający solidność . Na przykład bit parzystości lub inny sposób zarządzania błędami można wstawić do ścieżki sygnału. Schematy te pomagają systemowi wykrywać błędy, a następnie poprawiać je lub żądać retransmisji danych.
Budowa
Obwód cyfrowy jest zwykle zbudowany z małych obwodów elektronicznych zwanych bramkami logicznymi , których można użyć do stworzenia logiki kombinacyjnej . Każda bramka logiczna jest zaprojektowana do wykonywania funkcji logiki boolowskiej podczas działania na sygnałach logicznych. Bramka logiczna jest zwykle tworzona z jednego lub więcej sterowanych elektrycznie przełączników, zwykle tranzystorów , ale zawory termionowe były używane w przeszłości. Wyjście bramki logicznej może z kolei sterować lub zasilać więcej bramek logicznych.
Inna forma obwodu cyfrowego jest zbudowana z tablic przeglądowych (wiele z nich jest sprzedawanych jako „ programowalne urządzenia logiczne ”, chociaż istnieją inne rodzaje PLD). Tablice przeglądowe mogą wykonywać te same funkcje, co maszyny oparte na bramkach logicznych, ale można je łatwo przeprogramować bez zmiany okablowania. Oznacza to, że projektant często może naprawić błędy projektowe bez zmiany ułożenia przewodów. Dlatego w przypadku produktów o małej objętości często preferowanym rozwiązaniem są programowalne urządzenia logiczne. Zwykle są projektowane przez inżynierów za pomocą do automatyzacji projektowania elektronicznego .
Układy scalone składają się z wielu tranzystorów na jednym chipie krzemowym i są najtańszym sposobem na wykonanie dużej liczby połączonych ze sobą bramek logicznych. Układy scalone są zwykle połączone ze sobą na płytce drukowanej, która jest płytką, która zawiera elementy elektryczne i łączy je ze sobą za pomocą miedzianych ścieżek.
Projekt
Inżynierowie stosują wiele metod, aby zminimalizować redundancję logiki w celu zmniejszenia złożoności obwodu. Mniejsza złożoność zmniejsza liczbę komponentów i potencjalne błędy, a tym samym zazwyczaj obniża koszty. Nadmiarowość logiki można usunąć za pomocą kilku dobrze znanych technik, takich jak binarne diagramy decyzyjne , algebra Boole'a , mapy Karnaugha , algorytm Quine'a-McCluskeya i heurystyczna metoda komputerowa . Operacje te są zwykle wykonywane w projektowania wspomaganego komputerowo .
Systemy wbudowane z mikrokontrolerami i programowalnymi sterownikami logicznymi są często używane do implementacji logiki cyfrowej w złożonych systemach, które nie wymagają optymalnej wydajności. Systemy te są zwykle programowane przez inżynierów oprogramowania lub elektryków przy użyciu logiki drabinkowej .
Reprezentacja
Relację wejścia-wyjścia obwodu cyfrowego można przedstawić jako tablicę prawdy . Równoważny obwód wysokiego poziomu wykorzystuje bramki logiczne , z których każda ma inny kształt (znormalizowany przez IEEE / ANSI 91-1984). Reprezentacja niskiego poziomu wykorzystuje równoważny obwód przełączników elektronicznych (zwykle tranzystorów ).
Większość systemów cyfrowych dzieli się na systemy kombinacyjne i sekwencyjne . Wyjście systemu kombinacyjnego zależy tylko od obecnych wejść. Jednak w systemie sekwencyjnym niektóre z jego wyjść są zwracane jako dane wejściowe, więc jego dane wyjściowe mogą zależeć od przeszłych danych wejściowych oprócz obecnych danych wejściowych, aby wytworzyć sekwencję operacji . Uproszczone reprezentacje ich zachowania zwane automatami stanów ułatwiają projektowanie i testowanie.
Systemy sekwencyjne dzielą się na dwie dalsze podkategorie. „Synchroniczne” systemy sekwencyjne zmieniają stan jednocześnie, gdy sygnał zegara zmienia stan. „Asynchroniczne” systemy sekwencyjne propagują zmiany za każdym razem, gdy zmieniają się dane wejściowe. Synchroniczne systemy sekwencyjne są tworzone przy użyciu przerzutników , które przechowują wprowadzone napięcia jako bity tylko wtedy, gdy zmienia się zegar.
Systemy synchroniczne
Zwykłym sposobem implementacji synchronicznej sekwencyjnej maszyny stanów jest podzielenie jej na fragment logiki kombinacyjnej i zestaw przerzutników zwany rejestrem stanu . Rejestr stanu reprezentuje stan jako liczbę binarną. Logika kombinacyjna tworzy binarną reprezentację następnego stanu. W każdym cyklu zegara rejestr stanu przechwytuje sprzężenie zwrotne wygenerowane z poprzedniego stanu logiki kombinacyjnej i przekazuje je z powrotem jako niezmienne wejście do kombinacyjnej części maszyny stanowej. Częstotliwość zegara jest ograniczona przez najbardziej czasochłonne obliczenia logiczne w logice kombinacyjnej.
Systemy asynchroniczne
Większość logiki cyfrowej jest synchroniczna, ponieważ łatwiej jest stworzyć i zweryfikować projekt synchroniczny. Jednak logika asynchroniczna ma tę zaletę, że jej szybkość nie jest ograniczona przez dowolny zegar; zamiast tego działa z maksymalną prędkością swoich bramek logicznych.
Niemniej jednak większość systemów musi akceptować zewnętrzne niezsynchronizowane sygnały w swoich synchronicznych obwodach logicznych. Ten interfejs jest z natury asynchroniczny i musi być analizowany jako taki. Przykłady szeroko stosowanych obwodów asynchronicznych obejmują przerzutniki synchronizatora, przełączniki odbijające i arbitry .
Asynchroniczne komponenty logiczne mogą być trudne do zaprojektowania, ponieważ należy wziąć pod uwagę wszystkie możliwe stany we wszystkich możliwych czasach. Zwykłą metodą jest skonstruowanie tabeli minimalnego i maksymalnego czasu, w którym każdy taki stan może istnieć, a następnie dostosowanie obwodu w celu zminimalizowania liczby takich stanów. Projektant musi zmusić obwód do okresowego czekania, aż wszystkie jego części wejdą w zgodny stan (nazywa się to „samoresynchronizacją”). Bez starannego zaprojektowania łatwo jest przypadkowo wytworzyć logikę asynchroniczną, która jest niestabilna — to znaczy, że rzeczywista elektronika będzie dawać nieprzewidywalne wyniki z powodu skumulowanych opóźnień spowodowanych niewielkimi zmianami wartości elementów elektronicznych.
Zarejestruj systemy transferu
Wiele systemów cyfrowych to maszyny do przepływu danych . Są one zwykle projektowane przy użyciu logiki synchronicznego przesyłania rejestrów i zapisywane w językach opisu sprzętu, takich jak VHDL lub Verilog .
W logice przesyłania rejestrów liczby binarne są przechowywane w grupach przerzutników zwanych rejestrami . Sekwencyjna maszyna stanów kontroluje, kiedy każdy rejestr akceptuje nowe dane ze swojego wejścia. Wyjścia każdego rejestru to wiązka przewodów zwana magistralą , która przenosi tę liczbę do innych obliczeń. Obliczenia to po prostu element logiki kombinacyjnej. Każde obliczenie ma również szynę wyjściową, a te mogą być podłączone do wejść kilku rejestrów. Czasami rejestr będzie miał multiplekser na wejściu, dzięki czemu może przechowywać numer z dowolnej z kilku magistral.
Asynchroniczne systemy transferu rejestrów (takie jak komputery) mają ogólne rozwiązanie. W latach 80. niektórzy badacze odkryli, że prawie wszystkie synchroniczne maszyny do przesyłania rejestrów można przekształcić w konstrukcje asynchroniczne przy użyciu logiki synchronizacji „pierwsze weszło, pierwsze wyszło”. W tym schemacie maszyna cyfrowa jest scharakteryzowana jako zbiór przepływów danych. W każdym kroku przepływu obwód synchronizacji określa, kiedy wyjścia tego kroku są ważne i instruuje następny etap, kiedy użyć tych wyjść. [ potrzebne źródło ]
Projekt komputerowy
Najbardziej uniwersalną maszyną logiczną do przesyłania rejestrów jest komputer . Jest to w zasadzie automatyczne binarne liczydło . Jednostka sterująca komputera jest zwykle zaprojektowana jako mikroprogram uruchamiany przez mikrosekwencer . Mikroprogram jest bardzo podobny do gry na pianinie. Każdy wpis w tablicy mikroprogramu steruje stanem każdego bitu sterującego komputerem. Następnie sekwencer zlicza, a zliczanie adresuje pamięć lub kombinacyjną maszynę logiczną, która zawiera mikroprogram. Bity z mikroprogramu kontrolują jednostkę arytmetyczną , pamięć i inne części komputera, w tym sam mikrosekwencer. W ten sposób złożone zadanie zaprojektowania elementów sterujących komputera zostaje zredukowane do prostszego zadania programowania zbioru znacznie prostszych maszyn logicznych.
Prawie wszystkie komputery są synchroniczne. Jednak zbudowano również komputery asynchroniczne . Jednym z przykładów jest rdzeń ASPIDA DLX . Inną zaoferowała firma ARM Holdings . Nie mają jednak żadnych zalet w zakresie szybkości, ponieważ nowoczesne projekty komputerów już działają z szybkością ich najwolniejszego komponentu, zwykle pamięci. Zużywają nieco mniej energii, ponieważ sieć dystrybucji zegara nie jest potrzebna. Nieoczekiwaną zaletą jest to, że komputery asynchroniczne nie wytwarzają widmowo czystego szumu radiowego. Są one używane w niektórych wrażliwych na fale radiowe kontrolerach stacji bazowych telefonów komórkowych. Mogą być bezpieczniejsze w zastosowaniach kryptograficznych, ponieważ ich emisje elektryczne i radiowe mogą być trudniejsze do odszyfrowania.
Architektura komputerowa
Architektura komputera to wyspecjalizowana działalność inżynierska, która stara się zorganizować rejestry, logikę obliczeniową, magistrale i inne części komputera w najlepszy możliwy sposób dla określonego celu. Architekci komputerów włożyli wiele pracy w obniżenie kosztów i zwiększenie szybkości komputerów, a także w zwiększenie ich odporności na błędy programistyczne. Coraz częstszym celem architektów komputerowych jest zmniejszenie zużycia energii w systemach komputerowych zasilanych bateryjnie, takich jak smartfony .
Zagadnienia projektowe w układach cyfrowych
Obwody cyfrowe są wykonane z elementów analogowych. Projekt musi zapewniać, że analogowy charakter komponentów nie zdominuje pożądanego zachowania cyfrowego. Systemy cyfrowe muszą zarządzać marginesami szumów i taktowania, pasożytniczymi indukcyjnościami i pojemnościami.
Złe projekty mają sporadyczne problemy, takie jak zakłócenia , zanikające szybkie impulsy, które mogą wyzwalać pewną logikę, ale nie inne, słabe impulsy , które nie osiągają prawidłowych napięć progowych .
Ponadto, gdy taktowane systemy cyfrowe łączą się z systemami analogowymi lub systemami sterowanymi z innego zegara, system cyfrowy może podlegać metastabilności , w której zmiana wejścia narusza czas konfiguracji zatrzasku wejścia cyfrowego.
Ponieważ obwody cyfrowe są wykonane z komponentów analogowych, obwody cyfrowe obliczają wolniej niż obwody analogowe o niskiej precyzji, które zużywają podobną ilość miejsca i mocy. Jednak obwód cyfrowy będzie obliczał bardziej powtarzalnie ze względu na wysoką odporność na zakłócenia.
Zautomatyzowane narzędzia do projektowania
Znaczna część wysiłku związanego z projektowaniem dużych maszyn logicznych została zautomatyzowana dzięki zastosowaniu automatyzacji projektowania elektronicznego (EDA).
Proste opisy logiki w stylu tabeli prawdy są często optymalizowane za pomocą EDA, które automatycznie tworzą zredukowane systemy bramek logicznych lub mniejsze tablice przeglądowe, które nadal generują pożądane wyniki. Najczęstszym przykładem tego rodzaju oprogramowania jest heurystyczny minimalizator logiki Espresso . Optymalizację dużych systemów logicznych można przeprowadzić za pomocą algorytmu Quine-McCluskey lub binarnych diagramów decyzyjnych . Istnieją obiecujące eksperymenty z algorytmami genetycznymi i optymalizacjami wyżarzania .
Aby zautomatyzować kosztowne procesy inżynieryjne, niektóre EDA mogą pobierać tablice stanów opisujące automaty stanów i automatycznie tworzyć tablicę prawdy lub tablicę funkcji dla logiki kombinacyjnej automatu stanów. Tabela stanów to fragment tekstu, który zawiera listę wszystkich stanów wraz z warunkami sterującymi przejściami między nimi i powiązanymi z nimi sygnałami wyjściowymi.
Często rzeczywiste systemy logiczne są projektowane jako seria podprojektów, które są łączone za pomocą przepływu narzędzi . Przepływ narzędzi jest zwykle kontrolowany za pomocą języka skryptowego , uproszczonego języka komputerowego, który może wywoływać narzędzia do projektowania oprogramowania we właściwej kolejności. Przepływy narzędzi dla dużych systemów logicznych, takich jak mikroprocesory , mogą składać się z tysięcy poleceń i łączyć pracę setek inżynierów. Przepływy narzędzi do pisania i debugowania to uznana specjalizacja inżynierska w firmach produkujących projekty cyfrowe. Przepływ narzędzia zwykle kończy się w szczegółowym pliku komputerowym lub zestawie plików, które opisują, jak fizycznie skonstruować logikę. Często składa się z instrukcji, jak narysować tranzystory i przewody na układzie scalonym lub płytce drukowanej .
Części przepływów narzędzi są debugowane poprzez weryfikację danych wyjściowych symulowanej logiki względem oczekiwanych danych wejściowych. Narzędzia testowe pobierają pliki komputerowe z zestawami wejść i wyjść i podkreślają rozbieżności między symulowanym zachowaniem a oczekiwanym zachowaniem. Po uznaniu danych wejściowych za poprawne, sam projekt musi jeszcze zostać zweryfikowany pod kątem poprawności. Niektóre przepływy narzędzi weryfikują projekty, najpierw tworząc projekt, a następnie skanując projekt w celu uzyskania zgodnych danych wejściowych dla przepływu narzędzi. Jeśli zeskanowane dane pasują do danych wejściowych, to przepływ narzędzia prawdopodobnie nie wprowadził błędów.
weryfikacji funkcjonalnej są zwykle nazywane wektorami testowymi . Funkcjonalne wektory testowe można zachować i wykorzystać w fabryce do sprawdzenia, czy nowo skonstruowana logika działa poprawnie. Jednak wzorce testów funkcjonalnych nie wykrywają wszystkich błędów produkcyjnych. Testy produkcyjne są często projektowane za pomocą narzędzi programowych do automatycznego generowania wzorców testowych . Generują one wektory testowe poprzez badanie struktury logiki i systematyczne generowanie testów ukierunkowanych na określone potencjalne usterki. W ten sposób pokrycie defektów może zbliżyć się do 100%, pod warunkiem, że projekt zostanie odpowiednio przetestowany (patrz następna sekcja).
Gdy projekt istnieje, jest zweryfikowany i możliwy do przetestowania, często musi zostać przetworzony, aby można go było również wyprodukować. Nowoczesne układy scalone mają cechy mniejsze niż długość fali światła użytego do naświetlenia fotorezystu. Oprogramowanie zaprojektowane z myślą o możliwościach produkcyjnych dodaje wzorce interferencji do masek ekspozycji, aby wyeliminować otwarte obwody i poprawić kontrast masek.
Projektuj pod kątem testowalności
Istnieje kilka powodów testowania obwodu logicznego. Kiedy obwód jest opracowywany po raz pierwszy, konieczne jest sprawdzenie, czy zaprojektowany obwód spełnia wymagane specyfikacje funkcjonalne i czasowe. Gdy powstaje wiele kopii poprawnie zaprojektowanego obwodu, konieczne jest przetestowanie każdej kopii, aby upewnić się, że proces produkcyjny nie wprowadził żadnych wad.
Duża maszyna logiczna (powiedzmy, z ponad setką zmiennych logicznych) może mieć astronomiczną liczbę możliwych stanów. Oczywiście fabryczne testowanie każdego stanu takiej maszyny jest niewykonalne, bo nawet jeśli testowanie każdego stanu zajęłoby tylko mikrosekundę, możliwych stanów jest więcej niż mikrosekund od początku wszechświata!
Duże maszyny logiczne są prawie zawsze projektowane jako zespoły mniejszych maszyn logicznych. Aby zaoszczędzić czas, mniejsze maszyny podrzędne są odizolowane przez trwale zainstalowaną konstrukcję dla obwodów testowych i są testowane niezależnie. Jeden z powszechnych schematów testowania zapewnia tryb testowy, który wymusza przejście pewnej części maszyny logicznej do cyklu testowego . Cykl testowy zwykle sprawdza duże niezależne części maszyny.
Skanowanie granic to powszechny schemat testowania, który wykorzystuje komunikację szeregową z zewnętrznymi urządzeniami testującymi przez jeden lub więcej rejestrów przesuwnych , zwanych łańcuchami skanowania . Skany szeregowe mają tylko jeden lub dwa przewody do przenoszenia danych i minimalizują fizyczny rozmiar i koszt rzadko używanej logiki testowej. Po ustawieniu wszystkich bitów danych testowych projekt jest rekonfigurowany do pracy w trybie normalnym i stosowany jest jeden lub więcej impulsów zegarowych w celu sprawdzenia błędów (np. przerzutniki lub zatrzaski w rejestrze przesuwnym skanowania. Ostatecznie wynik testu jest przesuwany na granicę bloku i porównywany z przewidywanym dobrym wynikiem maszyny .
W środowisku testowym płyt, testowanie szeregowe do równoległego zostało sformalizowane jako standard JTAG .
Kompromisy
Koszt
Ponieważ system cyfrowy może wykorzystywać wiele bramek logicznych, całkowity koszt budowy komputera jest silnie skorelowany z kosztem bramki logicznej. W latach trzydziestych XX wieku najwcześniejsze cyfrowe systemy logiczne zostały zbudowane z przekaźników telefonicznych, ponieważ były one niedrogie i stosunkowo niezawodne.
Najwcześniejsze układy scalone zostały skonstruowane w celu zmniejszenia masy i umożliwienia komputerowi nawigacyjnemu Apollo kontrolowania bezwładnościowego systemu naprowadzania statku kosmicznego. Pierwsze bramki logiczne z układami scalonymi kosztowały prawie 50 USD, co w 2021 r. stanowiłoby równowartość 458 USD. Masowo produkowane bramki na układach scalonych stały się najtańszą metodą konstruowania logiki cyfrowej.
Wraz z rozwojem układów scalonych zmniejszenie bezwzględnej liczby używanych układów scalonych stanowiło kolejny sposób na obniżenie kosztów. Celem projektanta nie jest tylko stworzenie najprostszego obwodu, ale także odliczanie komponentów. Czasami skutkuje to bardziej skomplikowanymi projektami w odniesieniu do podstawowej logiki cyfrowej, ale mimo to zmniejsza liczbę komponentów, rozmiar płytki, a nawet zużycie energii.
Niezawodność
Innym głównym powodem zmniejszenia liczby elementów na płytkach drukowanych jest zmniejszenie liczby defektów produkcyjnych spowodowanych nieudanymi połączeniami lutowanymi i zwiększenie niezawodności. Wskaźniki defektów i awarii zwykle rosną wraz z całkowitą liczbą styków komponentów.
Awaria pojedynczej bramki logicznej może spowodować awarię maszyny cyfrowej. Tam, gdzie wymagana jest dodatkowa niezawodność, można zapewnić nadmiarową logikę. Redundancja zwiększa koszt i zużycie energii w porównaniu z systemem bez redundancji.
Niezawodność bramki logicznej można opisać średnim czasem między awariami ( MTBF). Maszyny cyfrowe po raz pierwszy stały się przydatne, gdy MTBF dla przełącznika wzrósł powyżej kilkuset godzin. Mimo to wiele z tych maszyn miało złożone, dobrze przećwiczone procedury naprawcze i nie działało przez wiele godzin, ponieważ przepaliła się rura lub ćma utknęła w przekaźniku. Nowoczesne tranzystorowe bramki logiczne z układami scalonymi mają MTBF większe niż 82 miliardy godzin ( 8,2 × 10 10 h ). Ten poziom niezawodności jest wymagany, ponieważ układy scalone mają tak wiele bramek logicznych.
Fan-out
Fan-out opisuje, ile wejść logicznych może być kontrolowanych przez pojedyncze wyjście logiczne bez przekraczania znamionowego prądu elektrycznego wyjść bramki. Minimalny praktyczny wachlarz wynosi około pięciu. [ potrzebne źródło ] Nowoczesne elektroniczne bramki logiczne wykorzystujące tranzystory CMOS do przełączników mają wyższe rozwarcia.
Prędkość
Szybkość przełączania opisuje, jak długo wyjście logiczne zmienia się z prawdy na fałsz lub odwrotnie. Szybsza logika może wykonać więcej operacji w krótszym czasie. Nowoczesna elektroniczna logika cyfrowa rutynowo przełącza się z 5 GHz , a niektóre systemy laboratoryjne przełączają się z częstotliwością większą niż 1 THz . [ potrzebne źródło ] .
Rodziny logiczne
Cyfrowy projekt rozpoczął się od logiki przekaźnika , która jest powolna. Czasami dochodziło do awarii mechanicznych. Wyjściowe wentylatory wynosiły zwykle około 10, ograniczone rezystancją cewek i wyładowaniami łukowymi na stykach od wysokich napięć.
Później zastosowano lampy próżniowe . Były bardzo szybkie, ale wytwarzały ciepło i były zawodne, ponieważ włókna wypalały się. Wyloty wentylatorów wynosiły zwykle od 5 do 7, ograniczone przez ogrzewanie z prądu lamp. W latach pięćdziesiątych XX wieku opracowano specjalne lampy komputerowe z włóknami, w których pominięto lotne elementy, takie jak krzem. Działały one przez setki tysięcy godzin.
Pierwszą rodziną logiki półprzewodnikowej była logika rezystorowo-tranzystorowa . Było to tysiąc razy bardziej niezawodne niż lampy, działało chłodniej i zużywało mniej energii, ale miało bardzo niski współczynnik rozwarcia wynoszący 3. Logika diodowo-tranzystorowa poprawiła rozrzut do około 7 i zmniejszyła moc. Niektóre projekty DTL wykorzystywały dwa zasilacze z naprzemiennymi warstwami tranzystorów NPN i PNP, aby zwiększyć rozrzut.
Logika tranzystorowo-tranzystorowa (TTL) była w stosunku do nich wielkim ulepszeniem. We wczesnych urządzeniach rozrzut poprawiał się do 10, a późniejsze odmiany niezawodnie osiągały 20. TTL był również szybki, a niektóre odmiany osiągały czasy przełączania tak niskie, jak 20 ns. TTL jest nadal używany w niektórych projektach.
Logika sprzężona z emiterem jest bardzo szybka, ale zużywa dużo energii. Był szeroko stosowany w komputerach o wysokiej wydajności, takich jak Illiac IV , składających się z wielu komponentów o średniej skali.
Zdecydowanie najczęściej budowane obecnie cyfrowe układy scalone wykorzystują logikę CMOS , która jest szybka, oferuje dużą gęstość obwodów i niski pobór mocy na bramkę. Jest to używane nawet w dużych, szybkich komputerach, takich jak IBM System z .
Ostatnie zmiany
W 2009 roku naukowcy odkryli, że memrystory mogą zaimplementować pamięć stanu boolowskiego i zapewniają kompletną rodzinę logiki z bardzo małą ilością miejsca i mocy, wykorzystując znane procesy półprzewodnikowe CMOS.
Odkrycie nadprzewodnictwa umożliwiło opracowanie technologii szybkich obwodów kwantowych pojedynczego strumienia (RSFQ), w której zamiast tranzystorów wykorzystuje się złącza Josephsona . Ostatnio podejmowane są próby budowy czysto optycznych systemów obliczeniowych, zdolnych do przetwarzania informacji cyfrowych za pomocą nieliniowych elementów optycznych.
Zobacz też
- Prawa De Morgana
- Logiczny wysiłek
- Optymalizacja logiki
- Mikroelektronika
- Niekonwencjonalne obliczenia
Notatki
Dalsza lektura
- Douglas Lewin, Logiczny projekt obwodów przełączających , Nelson, 1974.
- RH Katz, Współczesne projektowanie logiki , The Benjamin/Cummings Publishing Company, 1994.
- PK Lala, Praktyczne projektowanie i testowanie logiki cyfrowej , Prentice Hall, 1996.
- YK Chan i SY Lim, Postęp w badaniach elektromagnetycznych B, tom. 1, 269–290, 2008, „Generowanie sygnału radaru z syntetyczną aperturą (SAR), Wydział Inżynierii i Technologii, Uniwersytet Multimedialny, Jalan Ayer Keroh Lama, Bukit Beruang, Melaka 75450, Malezja.