Dyskretny układ logiczny

11

Zadanie polegało mi na zbudowaniu prostego urządzenia alarmowego. Wystarczy zmierzyć kilka wejść, a wyjścia zareagują odpowiednio (mówiąc bardzo prosto!). Wydawało mi się, że użycie kilku dyskretnych bramek logicznych wykona zadanie, ale kolega (który nad tym pracował ze mną) zdecydował, że zamiast tego powinniśmy użyć logiki programowalnej. Jego sprawa wygrała, ponieważ po pierwsze jest on starszy ode mnie, a po drugie, jego głównym argumentem było to, że programowalne urządzenia to przyszłość i chcemy tworzyć produkty przyszłościowe.

Moje pytanie brzmi: czy masz projekt, który można łatwo wdrożyć za pomocą kilku dyskretnych bramek logicznych, czy warto projektować z dyskretną logiką? Czy jest jakaś korzyść z ich używania nad programowalną? Czy może powoli zostanie całkowicie wycofany za pomocą programowalnej logiki? Żeby było jasne, nie chcę odpowiedzi: „Wierzę, że tak jest” lub „osobiście uważam, że tak, ale…” Chciałbym wiedzieć, czy istnieją jakieś rzeczywiste zalety projektowania z dyskretnym nad programowalnym i jest czy warto dziś z nimi projektować produkty elektroniki użytkowej?

Ciekawy
źródło
16
To brzmi jak pytanie z lat 90. ... µC wygrało, jego o wiele łatwiej jest wbić jednego i zrobić, niż myśleć o tym, jak połączyć ze sobą pół tuzina układów scalonych, nie mówiąc już o zużyciu przestrzeni.
PlasmaHH
9
Dyskretne bramy mają jedną wielką zaletę. Brak łańcucha narzędzi.
jonk
Brak łańcucha narzędzi? Co masz na myśli @jonk
Curious
@PlasmaHH, więc w zasadzie mówisz, że nie ma żadnej korzyści z projektowania dyskretnych w przyszłości?
Ciekawy
11
@Jonk oznacza, że ​​kiedy używany jest mikrokontroler, potrzebujesz oprogramowania do stworzenia programu dla mikrokontrolera, takiego jak IDE (graficzny lub tekstowy interfejs użytkownika) i kompilator / linker / inne narzędzie dedykowane dla używanego mikrokontrolera, zwane łańcuch narzędzi.
Michel Keijzers,

Odpowiedzi:

15

Dyskretna logika nie zostanie w pełni wycofana. Zawsze będą aplikacje, w których preferowane jest użycie dyskretnego układu logicznego. Jak już wspomniano, szybkość jest dużą zaletą, chociaż w wielu aplikacjach różnica prędkości nie jest tak ważna.

Jeśli chodzi o fazę projektowania, jeśli zaprojektujesz obwód, który musi wykonywać tylko 2 lub 3 proste funkcje logiczne w różnych punktach obwodu, lepiej będzie użyć dyskretnych bramek, aby zaoszczędzić czas projektowania na konieczności pisania program też.

W przypadku systemów, które muszą wykonywać bardziej złożone funkcje logiczne, głupotą byłoby spędzać cały czas na opracowywaniu tabeli prawdy, a następnie na ustalaniu, które bramki logiczne idą tam, gdzie itp., Gdy można po prostu napisać mały program. Zwykle im więcej danych wejściowych, tym więcej bramek jest wymaganych i im dłużej trwa projektowanie w trybie dyskretnym.

Jednak miejscem, w którym dyskretna logika naprawdę ma przewagę, jest nauka. Kiedy po raz pierwszy dowiadujesz się o projektowaniu logiki i o tym, jak działają bramki itp., To świetne jest zapoznanie się z rzeczywistymi bramkami logicznymi i projektowanie różnych funkcji z dyskretnymi częściami. Zawsze dobry pomysł, aby zrozumieć podstawy. Z tego powodu dyskretna logika zawsze będzie miała swoje miejsce na tym świecie. Co do elektroniki użytkowej? Przyszłość jest zdecydowanie programowalna.

MCG
źródło
Prosta odpowiedź, dobre punkty i odpowiedzi na wszystkie zadane pytania! Dzięki!
Ciekawy
Jako programista z wykształceniem elektronicznym chciałbym powiedzieć, że jeśli nie wypracujesz swojego stołu prawdy, poświęcisz tyle czasu na debugowanie programu, ile będziesz potrzebował czasu na ustawienie stołu prawdy. Twoja tabela prawdy będzie dobrą dokumentacją dla twojego programu.
chthon
Tak, zgadzam się, tabele prawdy są zawsze przydatne, zmodyfikuję odpowiedź, aby była bardziej adekwatna do tego scenariusza
MCG
1
Ostatni projekt, który wdrożyłem przy użyciu logiki dyskretnej, wymagał taktowania „jak najniższego” przy użyciu logiki 5 V i stosunkowo prostego wymogu programu. Mógłbym wydać mnóstwo pieniędzy na ładne, błyszczące układy FPGA lub po prostu zrobić to w „oldschoolowy” sposób. Żetony specyfikacji wojskowych przechodzą pełne wahanie napięcia w pikosekundach, przetrwają apokalipsę nuklearną wraz z karaluchami, a także nie kosztują prawie nic. Zawsze będzie miejsce na dyskretną logikę.
Landak,
14

Wcale nie jestem profesjonalnym inżynierem elektronikiem (właściwie dopiero początkującym), ale moje kilka centów jest takie, że dedykowane układy logiczne z dyskretną logiką powinny być używane tylko wtedy, gdy taktowanie jest ważne lub jeśli nie jest wymagane stosowanie programowalnej logiki.

Dzięki mikrokontrolerowi możesz zaimplementować znacznie bardziej skomplikowaną logikę i jest on bardziej elastyczny. Można go również przeprogramować bez konieczności zmiany sprzętu.

Również gdy potrzebne są bardzo szybkie czasy, których oprogramowanie nie jest w stanie nadążyć, można zastosować dedykowane układy logiczne. Ale w przypadku systemu alarmowego wydaje się to niepotrzebne (nie wymaga czasu reakcji w nanosekundach).

Poniżej moja interpretacja zalet / wad:

                          Discrete logic (ICs)      Programmable logic/
                                                    (Microcontrollers)
 Nanosecond speed                  x                         -
 Just a few 'operators' needed     x                         -
 No tool chain needed              x                         -
 Cost Efficiency *                 -                         x
 PCB / proto size                  -                         x
 Flexibility for changing          -                         x
 Production cost                   -                         x
 Possibility to extend features    -                         x

* Assuming more than a few (different) logic functions needed
Michel Keijzers
źródło
1
Czy Twoim zdaniem szybkość jest główną zaletą? +1 za odpowiedź, szczególnie podoba mi się twój stół!
Ciekawy
1
Tak, sprzęt jest szybszy niż oprogramowanie, więc jeśli NAPRAWDĘ potrzebujesz prędkości, potrzebujesz sprzętowych układów scalonych, w przeciwnym razie wybrałbym rozwiązania „programowe” (mikrokontroler). Btw, obecnie w przypadku bardziej skomplikowanych rozwiązań wrażliwych na prędkość, stosowane są układy FPGA.
Michel Keijzers,
1
Nie planowałem używać FPGA, główny inżynier już zdecydował o sprzęcie! Zadawałem to pytanie z ciekawości, żeby zobaczyć, gdzie leży jakakolwiek korzyść. Nawiasem mówiąc, przyjmuję twoją odpowiedź na czas, jeśli nie pojawią się inne odpowiedzi. Po prostu chcę dać innym szansę na odpowiedź, zanim zaakceptuje przedwcześnie!
Ciekawy
5
Myślę, że twój główny inżynier podjął właściwe decyzje. System alarmowy jest zwykle czymś, co zostanie rozszerzone (uzyskanie większej liczby danych wejściowych z wielu źródeł i działanie na nim), nawet tworzenie ich kombinacji, a później dodanie funkcji, takich jak wysyłanie automatycznego SMS-a, sygnalizowanie sygnału dźwiękowego / sygnału alarmowego, może pewne logowanie czujniki itp.
Michel Keijzers
2
@MichelKeijzers nowoczesne układy FPGA są znacznie szybsze niż wszystko, co można osiągnąć za pomocą tradycyjnych dyskretnych układów scalonych.
Tustique
10

Jeśli zamierzasz stworzyć produkt komercyjny, naprawdę nie powinieneś wybierać projektu, ponieważ „jest programowalny” lub dlatego, że zaproponował go starszy pracownik. Zamiast tego powinieneś oszacować ryzyko i koszty związane z każdym projektem i wybrać ten o najniższym koszcie i akceptowalnym poziomie ryzyka. Na początek:

  • cena poszczególnych elementów zwiększa koszt
  • wymagany rozmiar i złożoność PCB zwiększa koszt
  • wymagany wysiłek projektowy i narzędzia zwiększają koszty
  • wymagane testy i certyfikacja zwiększają koszty

  • brak elastyczności (np. zmiany w dyskretnej logice wymagającej nowej płytki drukowanej) stanowi ryzyko
  • brak doświadczenia z konkretną technologią w zespole jest zagrożeniem
  • niezdolność do spełnienia wymagań projektu (np. docelowy pobór mocy) stanowi ryzyko

Jeśli pozyskiwanie dyskretnych układów logicznych dla konkretnego projektu jest tańsze, Twój zespół ma doświadczenie w takim projektowaniu i uważasz, że brak elastyczności nie jest krytyczny, nie ma powodu, aby nie używać dyskretnej logiki.

Dmitrij Grigoriew
źródło
Bardzo prawdziwe. Więc myślisz, że jest przyszłość dla dyskretnej logiki?
Ciekawy
4
@Curious Wciąż widzę pojedyncze BJT i ​​MOSFETy używane do realizacji podstawowych funkcji logicznych tu i tam. Dyskretna logika jest przydatną abstrakcją dla niektórych prostych zadań, więc jestem przekonany, że nie zniknie całkowicie.
Dmitrij Grigoriew
7

Jednym z aspektów, o którym inne odpowiedzi zapominają, jest bezpieczeństwo. Dyskretne układy logiczne są znacznie bardziej niezawodne niż znacznie bardziej złożone konstrukcje mikrokontrolerów. Pomogłem zbudować prototypowy samochód, wszystkie obwody bezpieczeństwa zostały zaprojektowane z wykorzystaniem dyskretnej logiki. Bezpieczeństwo i niezawodność to aspekt, który warto rozważyć przy projektowaniu systemu alarmowego.

LukeHappyValley
źródło
3
Zasadniczo nie jest to prawdą. Można zbudować strasznie niebezpieczny dyskretny system oraz niesamowicie bezpieczny i solidny system na procesorze. Twój zespół nie miał umiejętności korzystania z procesora, ale nie jest to z natury niebezpieczne. W procesorze można uzyskać ogromne powielanie, co byłoby niepraktyczne w systemie dyskretnym.
awjlogan
1
@awjlogan Możesz zrobić obie te rzeczy, ale twój dyskretny logiczny wyłącznik awaryjny nigdy nie przestanie działać, ponieważ nieoczekiwany stan wysłał kolejną jego część do nieskończonej pętli. Systemy krytyczne dla bezpieczeństwa muszą być tak proste, jak to możliwe .
user253751
1
@immibis To zły projekt i specyfikacja, nie związana z procesorem. Zawsze istnieje możliwość awarii w systemie, dyskretnym, FPGA lub czymkolwiek. Uzgodniono, że sejfy awaryjne powinny być tak proste, jak to możliwe, co nie znaczy, że muszą być dyskretne.
awjlogan
5
@immibis Dyskretna logika staje się mniej niezawodna niż MCU powyżej określonego rozmiaru z powodu samych wad lutowania. A jeśli logika dyskretna zawiera wyzwalacze, to w przypadku zabronionych stanów systemowych występuje dokładnie taki sam problem, jak w oprogramowaniu.
Dmitrij Grigoriew
4
Części dyskretne mogą działać bardziej przewidywalnie W przypadku usterki ...
rackandboneman
4

Muszę przyznać, że za każdym razem, gdy muszę wykonać złożoną logikę kombinatoryczną i kilka timerów, nie zawracam sobie głowy logiką dyskretną, ale zawsze koduję minimalny program asemblera dla ATtiny (użyj PIC, jeśli bardziej ci się podobają).

Kombinatoryczna logika ma maksymalnie 20 wierszy asemblera (kilka tabel odnośników). Każdy zegar programowy dodaje kolejne 10 linii. Timery sprzętowe jeszcze mniej. Możesz nawet zyskać przewagę dzięki konwerterowi A / D, komparatorowi, generacji PWM na pokładzie, jeśli będziesz ich potrzebować.

Jedyną wadą jest to, że musiałeś sflashować tę część. Czasami jest to przeszkoda, ale rzadko tak jest. Dużą zaletą jest to, że potrzebujesz dużo mniej miejsca na płycie, routing jest znacznie prostszy i możesz łatwo zmienić funkcje logiczne w razie potrzeby.


Pozostały przypadek użycia oddzielnych układów logicznych to sytuacja, w której rzeczy muszą działać szybciej niż 1µs.

Janka
źródło
Trochę nie na temat, ale części ATTiny x17 / x16 mają dwie wbudowane 3-wejściowe LUT. Rzeczywiście bardzo przydatny!
awjlogan
4

W produkcie końcowym - prawdopodobnie nie ma wielu zalet dyskretnej logiki, jeśli mówimy o urządzeniu konsumenckim. Wyjątkiem może być coś, co musi być bardzo odporne na niekorzystne warunki lub bardzo łatwe do pełnego scharakteryzowania (rzeczywista złożoność i potencjał ukrytych błędów jest znacznie wyższy w przypadku czegoś opartego na oprogramowaniu układowym), lub że chcesz móc budować ponownie z bardzo podobne części przez wiele dziesięcioleci (ślady 74xx zmieniają się bardzo powoli, nawet jeśli zmieniają się litery technologii :)).

Coś, co można zrobić lepiej dzięki dyskrecjom, to samowyzwalająca się, asynchroniczna logika (ukończenie jednej rzeczy natychmiast wyzwala inną). Legalność takich projektów to temat świętej wojny. Nie martw się, synchroniczni ludzie będą chcieli cię pokonać, ale musisz tylko zabrać swój zegar, będą nonsensownie czekać na to na zawsze.

Jeśli chodzi o metodologię projektowania, powiedziałbym, że zależy to od preferowanego stylu projektanta - urządzenia CPLD, które można dosłownie przełączyć na żywo („dotknijmy tego drutu do pinów, aż coś kliknie”), w najszczerszym widoku, i pod napięciem z komputera głównego (z symulowanymi iskrami, kiedy dotkniesz drutu do pinu, najlepiej, tylko dla atmosfery) z pewnością spodoba się osobom preferującym dyskretną logikę :)

rackandboneman
źródło