Diskretes Logikdesign

11

Ich wurde beauftragt, ein einfaches Alarmgerät zu bauen. Es müssen nur ein paar Eingänge gemessen werden und die Ausgänge reagieren entsprechend (um es ganz einfach auszudrücken!). Mir schien, dass die Verwendung einiger diskreter Logikgatter die Arbeit erledigen würde, aber ein Kollege (der mit mir daran arbeitete) entschied, dass wir stattdessen programmierbare Logik verwenden sollten. Sein Fall hat gewonnen, weil er erstens älter ist als ich, und zweitens war sein Hauptargument, dass programmierbare Geräte die Zukunft sind und wir zukunftssichere Produkte herstellen wollen.

Meine Frage ist, ob Sie ein Design haben, das leicht durch ein paar diskrete Logikgatter implementiert werden kann. Lohnt es sich, nicht mehr mit diskreter Logik zu entwerfen? Gibt es einen Vorteil gegenüber programmierbaren? Oder wird es durch programmierbare Logik langsam vollständig auslaufen? Um es klar auszudrücken, ich möchte keine Antworten auf "Ich glaube, das ist der Fall" oder "Ich persönlich denke das, aber ...". Ich würde gerne wissen, ob das Entwerfen mit diskreten gegenüber programmierbaren und tatsächlichen Vorteilen tatsächlich Vorteile hat lohnt es sich heutzutage, mit ihnen in Unterhaltungselektronikprodukten zu entwerfen?

Neugierig
quelle
16
Das klingt nach einer Frage aus den 90ern ... µC hat gewonnen, es ist einfach viel einfacher, einen einzuschlagen und zu erledigen, als darüber nachzudenken, wie man ein halbes Dutzend ICs miteinander verbindet, geschweige denn den Platzverbrauch.
PlasmaHH
9
Diskrete Tore haben einen großen Vorteil. Keine Toolchain.
Jonk
Keine Toolchain? Was meinst du mit @jonk
Neugierig
@PlasmaHH Sie sagen also im Grunde, dass es keinen Vorteil hat, in Zukunft diskret zu entwerfen?
Neugierig
11
@Jonk bedeutet, dass bei Verwendung eines Mikrocontrollers eine Software zum Erstellen des Programms für den Mikrocontroller erforderlich ist, z. B. eine Kombination aus IDE (grafische oder textuelle Benutzeroberfläche) und Compiler / Linker / anderen Tools für den von Ihnen verwendeten Mikrocontroller (a) Werkzeugkette.
Michel Keijzers

Antworten:

15

Diskretes Logikdesign wird nicht vollständig auslaufen. Es wird immer Anwendungen geben, bei denen die Verwendung eines diskreten Logik-IC vorzuziehen ist. Wie bereits erwähnt, ist die Geschwindigkeit ein großer Vorteil, obwohl in vielen Anwendungen der Geschwindigkeitsunterschied einfach nicht so wichtig ist.

Wenn Sie in der Entwurfsphase eine Schaltung entwerfen, die nur zwei oder drei einfache Logikfunktionen an verschiedenen Punkten der Schaltung ausführen muss, ist es besser, diskrete Gatter zu verwenden, um Entwurfszeit zu sparen, da Sie auch schreiben müssen das Programm auch.

Für Systeme, die komplexere Logikfunktionen ausführen müssen, wäre es dumm, die ganze Zeit damit zu verbringen, eine Wahrheitstabelle zu erarbeiten und dann herauszufinden, welche Logikgatter wohin gehen usw., wenn Sie nur ein kleines Programm schreiben könnten. Je mehr Eingänge bedeuten, desto mehr Gates werden normalerweise benötigt und desto länger dauert es, diskret zu entwerfen.

Der Ort, an dem diskrete Logik wirklich den Vorteil hat, ist das Lernen. Wenn Sie zum ersten Mal etwas über Logikdesign und die Funktionsweise von Gates usw. lernen, ist es großartig, sich mit tatsächlichen Logikgattern vertraut zu machen und verschiedene Funktionen mit diskreten Teilen zu entwerfen. Immer eine gute Idee, um die Grundlagen zu verstehen. Aus diesem Grund wird diskrete Logik immer einen Platz in dieser Welt haben. Was die Unterhaltungselektronik betrifft? Die Zukunft ist definitiv programmierbar.

MCG
quelle
Einfache Antwort, gute Punkte und beantwortet alle gestellten Fragen! Vielen Dank!
Neugierig
Als Programmierer mit elektronischem Hintergrund möchte ich sagen, dass Sie, wenn Sie Ihre Wahrheitstabelle nicht ausarbeiten, so viel Zeit damit verbringen, Ihr Programm zu debuggen, wie Sie Zeit benötigen, um Ihre Wahrheitstabelle einzurichten. Ihre Wahrheitstabelle wird eine schöne Dokumentation für Ihr Programm sein.
Chthon
Ja, ich stimme zu, Wahrheitstabellen sind immer nützlich. Ich werde die Antwort bearbeiten, um sie für dieses Szenario ein bisschen relevanter zu machen
MCG
1
Das letzte Design, das ich unter Verwendung diskreter Logik implementiert habe, hatte eine Zeitsteuerungsanforderung von "so niedrig wie möglich" unter Verwendung von 5-V-Logik und eine vergleichsweise einfache Programmanforderung. Ich könnte eine Menge Geld für schöne, glänzende FPGAs ausgeben oder es einfach auf die "alte Schule" machen. Militärische Chips unterliegen in Pikosekunden dem vollen Spannungshub, überleben die nukleare Apokalypse zusammen mit den Kakerlaken und kosten fast nichts. Es wird immer einen Platz für diskrete Logik geben.
Landak
14

Ich bin überhaupt kein professioneller Elektronikingenieur (eigentlich nur ein Anfänger), aber meine wenigen Cent sind, dass dedizierte diskrete Logik-ICs nur verwendet werden sollten, wenn das Timing wichtig ist oder wenn es erforderlich ist, keine programmierbare Logik zu verwenden.

Mit einem Mikrocontroller können Sie eine viel kompliziertere Logik implementieren und sie ist flexibler. Es kann auch neu programmiert werden, ohne dass die Hardware geändert werden muss.

Auch wenn sehr schnelle Timings benötigt werden, mit denen die Software nicht Schritt halten kann, können dedizierte Logik-ICs verwendet werden. Für ein Alarmsystem scheint dies jedoch nicht erforderlich zu sein (es benötigt keine Reaktionszeit von Nanosekunden).

Nachfolgend meine Interpretation der Vor- und Nachteile:

                          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
quelle
1
Geschwindigkeit ist Ihrer Meinung nach der Hauptvorteil? +1 für die Antwort, ich mag besonders Ihren Tisch!
Neugierig
1
Ja, Hardware ist schneller als Software. Wenn Sie also WIRKLICH die Geschwindigkeit benötigen, benötigen Sie Hardware-ICs. Andernfalls würde ich mich für Software-Lösungen (Mikrocontroller) entscheiden. Übrigens werden heutzutage für kompliziertere geschwindigkeitsabhängige Lösungen FPGAs verwendet.
Michel Keijzers
1
Ich hatte nicht vor, ein FPGA zu verwenden, der Chefingenieur hat die Hardware bereits jetzt entschieden! Ich habe die Frage nur aus Neugier gestellt, um zu sehen, wo ein Vorteil liegt. Übrigens werde ich Ihre Antwort rechtzeitig annehmen, wenn keine anderen Antworten eingehen. Ich möchte nur anderen die Möglichkeit geben, zu antworten, bevor ich sie vorzeitig akzeptiere!
Neugierig
5
Ich denke, Ihr Chefingenieur hat die richtigen Entscheidungen getroffen. Ein Alarmsystem wird in der Regel erweitert (es werden mehr Eingaben von mehreren Quellen abgerufen und darauf reagiert), es werden sogar Kombinationen daraus erstellt und später Funktionen wie das Senden einer automatischen SMS, das Signalisieren eines Piepser- / Alarmsignals oder möglicherweise das Protokollieren von hinzugefügt Sensoren usw.
Michel Keijzers
2
@MichelKeijzers moderne FPGAs sind deutlich schneller als alles, was Sie mit herkömmlichen diskreten Logik-ICs erreichen können.
Tustique
10

Wenn Sie ein kommerzielles Produkt erstellen möchten, sollten Sie ein Design wirklich nicht wählen, weil es "programmierbar" ist oder weil es von einem älteren Kollegen vorgeschlagen wurde. Stattdessen sollten Sie die mit jedem Entwurf verbundenen Risiken und Kosten abschätzen und das mit den niedrigsten Kosten und dem akzeptablen Risikograd auswählen. Für den Anfang:

  • Der Preis der einzelnen Komponenten erhöht die Kosten
  • Die erforderliche Größe und Komplexität der Leiterplatte erhöht die Kosten
  • Der erforderliche Konstruktionsaufwand und die erforderlichen Werkzeuge erhöhen die Kosten
  • Erforderliche Tests und Zertifizierungen erhöhen die Kosten

  • Ein Mangel an Flexibilität (z. B. Änderungen in der diskreten Logik, die eine neue Leiterplatte erfordern) ist ein Risiko
  • Mangelnde Erfahrung mit einer bestimmten Technologie in Ihrem Team ist ein Risiko
  • Die Unfähigkeit, die Projektanforderungen (z. B. den angestrebten Stromverbrauch) zu erfüllen, ist ein Risiko

Wenn die Beschaffung von ICs mit diskreter Logik für Ihr spezielles Projekt billiger ist, Ihr Team Erfahrung mit einem solchen Design hat und Sie der Meinung sind, dass mangelnde Flexibilität nicht kritisch ist, gibt es keinen Grund, keine diskrete Logik zu verwenden.

Dmitry Grigoryev
quelle
Sehr richtig. Sie denken also, dass diskrete Logik eine Zukunft hat?
Neugierig
4
@Curious Ich sehe immer noch einzelne BJTs und MOSFETs, die hier und da verwendet werden, um grundlegende Logikfunktionen zu implementieren. Diskrete Logik ist eine nützliche Abstraktion für einige einfache Aufgaben, daher bin ich überzeugt, dass sie nicht vollständig verschwinden wird.
Dmitry Grigoryev
7

Ein Aspekt, den die anderen Antworten vergessen, ist die Sicherheit. Diskrete Logikschaltungen sind weitaus zuverlässiger als viel komplexere Mikrocontroller-Designs. Ich half beim Bau eines Wasserstoff-Prototypautos. Alle Sicherheitsschaltungen wurden mit diskreter Logik entworfen. Sicherheit und Zuverlässigkeit sind ein Aspekt, den Sie möglicherweise beim Entwurf eines Alarmsystems in Betracht ziehen sollten.

LukeHappyValley
quelle
3
Dies ist im Allgemeinen nicht wahr. Man könnte ein schrecklich unsicheres diskretes System und ein unglaublich sicheres und robustes System auf einem Prozessor bauen. Ihr Team hatte nicht die Fähigkeiten, einen Prozessor zu verwenden, aber dies macht ihn nicht von Natur aus unsicher. In einem Prozessor kann es zu massiven Duplikaten kommen, was in einem diskreten System unpraktisch wäre.
Awjlogan
1
@awjlogan Sie können beide Dinge tun, aber Ihr diskreter logischer Not-Aus wird niemals fehlschlagen, weil ein unerwarteter Zustand einen anderen Teil davon in eine Endlosschleife geschickt hat. Sicherheitskritische Systeme müssen so einfach wie möglich sein .
user253751
1
@immibis Das ist schlechtes Design und schlechte Spezifikationen, die einem Prozessor nicht eigen sind. Es besteht immer die Möglichkeit eines Ausfalls in einem System, einem diskreten System, einem FPGA oder was auch immer. Einverstanden, dass Fail-Safes so einfach wie möglich sein sollten, bedeutet nicht, dass sie diskret sein müssen.
Awjlogan
5
@immibis Diskrete Logik wird ab einer bestimmten Designgröße weniger zuverlässig als MCUs, allein aufgrund von Lötfehlern. Und wenn diskrete Logik Trigger enthält, haben Sie am Ende genau das gleiche Problem mit verbotenen Systemzuständen wie in Software.
Dmitry Grigoryev
4
Diskrete Teile könnten im Fehlerfall vorhersehbarer sein ...
Rackandboneman
4

Ich muss zugeben, wenn ich eine komplexe kombinatorische Logik plus einige Timer ausführen muss , beschäftige ich mich überhaupt nicht mit diskreter Logik, sondern codiere immer ein minimales Assembler-Programm für ein ATtiny (verwenden Sie einen PIC, wenn Sie diese besser mögen).

Die kombinatorische Logik besteht aus maximal 20 Assembler-Zeilen (mehrere Nachschlagetabellen). Jeder Software-Timer fügt weitere 10 Zeilen hinzu. Hardware-Timer noch weniger. Sie haben sogar den Vorteil, einen A / D-Wandler, einen Komparator und eine PWM-Erzeugung an Bord zu haben, falls Sie diese benötigen.

Der einzige Nachteil ist, dass Sie diesen Teil flashen mussten. Manchmal ist das ein Show-Stopper, aber das ist selten der Fall. Der große Vorteil ist, dass Sie viel weniger Platz auf der Platine benötigen, das Routing viel einfacher ist und Sie die Logikfunktionen bei Bedarf einfach ändern können.


Der verbleibende Anwendungsfall für separate Logik-ICs ist, wenn die Dinge schneller als 1 µs arbeiten müssen.

Janka
quelle
Ein wenig abseits des Themas, aber die ATTiny x17 / x16-Teile verfügen über zwei integrierte LUTs mit 3 Eingängen. Sehr praktisch!
Awjlogan
4

Im Endprodukt - wahrscheinlich nicht viele Vorteile gegenüber diskreter Logik, wenn es sich um ein Consumer-Gerät handelt. Ausnahmen sind etwas, das sehr robust gegen widrige Bedingungen sein muss oder sehr einfach vollständig zu charakterisieren ist (die tatsächliche Komplexität und das Potenzial für versteckte Fehler ist bei etwas Firmware-basiertem viel höher), oder das Sie in der Lage sein möchten, aus sehr neu zu erstellen ähnliche Teile für die kommenden Jahrzehnte (74xx Fußabdrücke ändern sich sehr sehr langsam, selbst wenn sich die Technologiebuchstaben ändern :)).

Etwas, das Sie mit Diskreten tatsächlich besser machen können, ist asynchrone Logik mit Selbststeuerung (die Fertigstellung einer Sache löst sofort eine andere Sache aus). Die Legitimität solcher Entwürfe ist ein heiliges Kriegsthema. Mach dir keine Sorgen, die synchronen Leute werden dich schlagen wollen, aber du musst nur ihre Uhr wegnehmen, sie werden unsinnig ewig darauf warten.

Wenn es um die Entwurfsmethodik geht, würde ich sagen, dass dies vom bevorzugten Stil des Designers abhängt - einem CPLD-Gerät, das Sie buchstäblich live neu verkabeln können ("Berühren Sie den Draht mit den Stiften, bis etwas einrastet"). und unter Strom von einem Host-PC (mit simulierten Funken, wenn Sie einen Stift mit einem Draht berühren, vorzugsweise nur für das Ambiente) würden sicherlich Leute mögen, die diskrete Logik bevorzugen :)

Rackandboneman
quelle