Design logico discreto


11

Mi è stato assegnato il compito di costruire un semplice dispositivo di allarme. Deve solo misurare alcuni input e gli output risponderanno di conseguenza (per dirla molto semplicemente!). A me sembrava che l'uso di alcune porte logiche discrete avrebbe portato a termine il lavoro, ma un collega (che ci stava lavorando con me) ha deciso di usare invece la logica programmabile. Il suo caso ha vinto, perché in primo luogo, è più anziano di me e, in secondo luogo, la sua argomentazione principale era che i dispositivi programmabili sono il futuro e vogliamo realizzare prodotti a prova di futuro.

La mia domanda è se hai un progetto che potrebbe essere facilmente implementato da alcune porte logiche discrete, vale la pena progettare più con una logica discreta? C'è qualche vantaggio nell'usarli rispetto ai programmabili? O verrà lentamente eliminato completamente dalla logica programmabile? Per essere chiari, non voglio risposte su "Credo che sia il caso" o "Personalmente penso che questo, ma ..." Mi piacerebbe sapere se ci sono vantaggi concreti nella progettazione con sistemi discreti rispetto a quelli programmabili ed è vale la pena progettare con loro in questi giorni in prodotti di elettronica di consumo?


16
Sembra una domanda degli anni '90 ... µC ha vinto, è molto più facile colpire e fare piuttosto che pensare a come collegare insieme una mezza dozzina di circuiti integrati, per non parlare del consumo di spazio.
PlasmaHH,

9
I cancelli discreti hanno un grande vantaggio. Nessuna toolchain.
Jon

Nessuna toolchain? Cosa intendi con @jonk
Curioso il

@PlasmaHH, quindi in pratica stai dicendo che non c'è alcun vantaggio nel progettare discreti in futuro?
Curioso il

11
Il significato di @jonk è che, quando viene utilizzato un microcontrollore, è necessario un software per creare il programma per il microcontrollore, come una combinazione IDE (interfaccia utente grafica o testuale) e compilatore / linker / altri strumenti dedicata per il microcontrollore che si utilizza, chiamato a catena degli attrezzi.
Michel Keijzers,

Risposte:


15

La progettazione logica discreta non verrà eliminata completamente. Ci saranno sempre applicazioni in cui è preferibile utilizzare un CI logico discreto. Come è stato sottolineato, la velocità è un grande vantaggio, sebbene in molte applicazioni la differenza di velocità non sia poi così importante.

Quando si tratta della fase di progettazione, se si progetta un circuito che deve solo eseguire 2 o 3 semplici funzioni logiche in diversi punti del circuito, sarà meglio usare porte discrete, solo per risparmiare tempo di progettazione sulla necessità di scrivere anche anche il programma.

Per i sistemi che hanno bisogno di svolgere funzioni logiche più complesse, sarebbe sciocco passare tutto il tempo a elaborare una tabella di verità, quindi capire quali porte logiche vanno dove ecc. Quando si può semplicemente scrivere un piccolo programma. Di solito, più input significano più gate sono necessari e più tempo ci vuole per progettare in modo discreto.

Il luogo in cui la logica discreta ha davvero il vantaggio è nell'apprendimento. Quando apprendi per la prima volta la progettazione logica e il modo in cui funzionano le porte, ecc. È qui che entrare in contatto con le porte logiche effettive e progettare funzioni diverse con parti discrete è fantastico. Sempre una buona idea per comprendere i fondamenti. Quindi, a causa di ciò, la logica discreta avrà sempre un posto in questo mondo. Per quanto riguarda l'elettronica di consumo? Il futuro è sicuramente programmabile.


Risposta semplice, buoni punti e risposte a tutte le domande poste! Grazie!
Curioso

Come programmatore con esperienza nel campo dell'elettronica, vorrei affermare che se non elaborate la tabella della verità, impiegherete tanto tempo a eseguire il debug del programma quanto avrete bisogno di tempo per impostare la tabella della verità. La tua tabella della verità sarà una buona documentazione per il tuo programma.
chthon,

Sì, sono d'accordo, le tabelle di verità sono sempre utili da avere, modificherò la risposta per renderla un po 'più rilevante per questo scenario
MCG

1
L'ultimo progetto che ho implementato usando la logica discreta aveva un requisito di temporizzazione "il più basso possibile" usando la logica 5V e un requisito di programma relativamente semplice. Potrei spendere un sacco di soldi per un bel FPGA brillante o semplicemente farlo alla "vecchia scuola". I chip delle specifiche militari subiscono l'oscillazione a piena tensione in picosecondi, sopravvivranno all'apocalisse nucleare insieme agli scarafaggi e non costano quasi nulla. Ci sarà sempre un posto per la logica discreta.
Landak

14

Non sono affatto un ingegnere elettronico professionista (in realtà solo un principiante), ma i miei pochi centesimi sono che i CI logici dedicati dedicati dovrebbero essere usati solo se il tempismo è importante o se è un requisito non usare la logica programmabile.

Con un microcontrollore puoi implementare una logica molto più complicata ed è più flessibile. Inoltre può essere riprogrammato senza dover cambiare l'hardware.

Inoltre, quando sono necessari tempi molto rapidi che il software non riesce a tenere il passo, è possibile utilizzare circuiti integrati logici dedicati. Ma per un sistema di allarme questo sembra non necessario (non ha bisogno di un tempo di risposta di nanosecondi).

Di seguito è la mia interpretazione dei vantaggi / svantaggi:

                          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

1
Quindi la velocità è il vantaggio principale secondo te? +1 per la risposta, mi piace particolarmente il tuo tavolo!
Curioso il

1
Sì, l'hardware è più veloce del software, quindi se hai davvero bisogno della velocità, hai bisogno di circuiti integrati hardware, altrimenti sceglierei soluzioni "software" (microcontrollore). A proposito, oggigiorno vengono utilizzate soluzioni FPGA più complicate in termini di velocità.
Michel Keijzers,

1
Non avevo intenzione di utilizzare un FPGA, il capo ingegnere ha già deciso l'hardware ora! Stavo solo facendo la domanda per curiosità per vedere dove si trova un vantaggio. A proposito, accetterò la tua risposta in tempo se non arrivano altre risposte. Voglio solo dare agli altri la possibilità di rispondere prima di accettare prematuramente!
Curioso il

5
Penso che il tuo ingegnere capo abbia preso le giuste decisioni. Un sistema di allarme è in genere qualcosa che verrà esteso (ottenere più input da fonti multiple e agire su di esso), anche facendo combinazioni di essi, e successivamente aggiungere funzionalità come l'invio di un SMS automatico, la segnalazione di un segnale acustico / segnale di allarme, forse un po 'di registrazione di sensori ecc.
Michel Keijzers,

2
I moderni FPGA di @MichelKeijzer sono significativamente più veloci di qualsiasi cosa si possa realizzare con i tradizionali circuiti integrati a logica discreta.
Tustique,

10

Se hai intenzione di creare un prodotto commerciale, non dovresti davvero scegliere un design perché "è programmabile" o perché è stato proposto da un collega più anziano. Dovresti invece stimare i rischi e i costi associati a ciascun progetto e scegliere quello con il costo più basso e il livello di rischio accettabile. Per iniziare:

  • il prezzo dei singoli componenti aumenta il costo
  • le dimensioni e la complessità del PCB richieste aumentano il costo
  • lo sforzo di progettazione richiesto e gli strumenti aumentano il costo
  • i test richiesti e la certificazione aumentano il costo

  • la mancanza di flessibilità (ad es. cambiamenti nella logica discreta che richiedono un nuovo PCB) è un rischio
  • la mancanza di esperienza con una particolare tecnologia nella tua squadra è un rischio
  • l'incapacità di soddisfare i requisiti del progetto (ad es. consumo di energia target) è un rischio

Se l'approvvigionamento di circuiti integrati logici discreti per il tuo particolare progetto è più economico, il tuo team ha esperienza con tale progettazione e ritieni che la mancanza di flessibilità non sia critica, non c'è motivo di non utilizzare la logica discreta.


Verissimo. Quindi pensi che ci sia un futuro per la logica discreta?
Curioso

4
@Curious Vedo ancora singoli BJT e MOSFET utilizzati per implementare funzioni logiche di base qua e là. La logica discreta è un'astrazione utile per alcuni semplici compiti, quindi sono convinto che non scomparirà del tutto.
Dmitry Grigoryev,

7

Un aspetto che le altre risposte dimenticano è la sicurezza. I circuiti logici discreti sono molto più affidabili dei progetti di microcontrollori molto più complessi. Ho aiutato a costruire un'auto prototipo a idrogeno, tutti i circuiti di sicurezza sono stati progettati utilizzando una logica discreta. La sicurezza e l'affidabilità sono un aspetto che potresti prendere in considerazione per progettare un sistema di allarme.


3
Questo non è generalmente vero. Si potrebbe costruire un sistema discreto orrendamente pericoloso e un sistema incredibilmente sicuro e robusto su un processore. Il tuo team non aveva le competenze per utilizzare un processore, ma ciò non lo rende intrinsecamente pericoloso. Puoi avere una duplicazione massiccia in un processore, il che sarebbe impraticabile in un sistema discreto.
awjlogan,

1
@awjlogan Puoi fare entrambe queste cose, ma il tuo arresto di emergenza logico discreto non fallirà mai perché una condizione imprevista ne ha inviato un'altra parte in un ciclo infinito. I sistemi critici per la sicurezza devono essere il più semplici possibile .
user253751

1
@immibis Questo è cattivo design e specifiche, non inerente a un processore. Esiste sempre la possibilità di guasto in un sistema, discreto, FPGA o altro. Concordato sul fatto che le casseforti non funzionanti dovrebbero essere il più semplice possibile, ciò non significa che debbano essere discrete.
awjlogan,

5
@immibis La logica discreta diventa meno affidabile delle MCU oltre una certa dimensione di progettazione a causa dei soli difetti di saldatura. E se la logica discreta include i trigger, si finisce per avere esattamente lo stesso problema con gli stati di sistema proibiti che si fa nel software.
Dmitry Grigoryev,

4
Le parti discrete potrebbero agire in modo più prevedibile IN caso di guasto ...
rackandboneman,

4

Devo ammettere, ogni volta che devo fare una complessa logica combinatoria più alcuni timer, non mi preoccupo affatto della logica discreta ma codifico sempre un programma di assemblatore minimo per un ATtiny (usa un PIC se ti piacciono quelli migliori).

La logica combinatoria è al massimo di 20 linee di assemblatore (diverse tabelle di ricerca). Ogni timer software aggiunge altre 10 righe. Timer hardware ancora meno. Hai anche il vantaggio di avere un convertitore A / D, Comparator, generazione PWM a bordo, se ne hai bisogno.

L'unico svantaggio è che hai dovuto eseguire il flashing di questa parte. A volte è uno spettacolo, ma raramente è il caso. Il grande vantaggio è che hai bisogno di molto meno spazio sulla scheda, il routing è molto più semplice e, se necessario, puoi modificare facilmente le funzioni logiche.


Il caso d'uso rimanente per circuiti integrati logici separati è quando le cose devono funzionare più velocemente di 1µs.


Un po 'fuori tema, ma le parti ATTiny x17 / x16 hanno due LUT a 3 ingressi integrati. Molto utile davvero!
awjlogan,

4

Nel prodotto finale - probabilmente non ci sono molti vantaggi rispetto alla logica discreta se stiamo parlando di un dispositivo consumer. Le eccezioni sarebbero qualcosa che deve essere molto robusto rispetto alle condizioni avverse, o molto facile da caratterizzare completamente (la complessità e il potenziale effettivi per i bug nascosti è molto maggiore con qualcosa basato sul firmware), o che si desidera poter ricostruire da molto parti simili per decenni a venire (74xx impronte cambiano molto lentamente anche se cambiano le lettere della tecnologia :)).

Qualcosa che puoi effettivamente fare meglio con i discreti è l'autosincronismo, la logica asincrona (il completamento di una cosa fa scattare immediatamente un'altra cosa). La legittimità di tali progetti è un argomento di guerra santa. Non ti preoccupare, le persone sincrone vorranno batterti ma devi solo togliere il loro orologio, aspetteranno senza senso per sempre.

Quando si tratta di metodologia di progettazione, direi che dipende dallo stile preferito del progettista: un dispositivo CPLD che potresti letteralmente ricollegare dal vivo ("tocchiamo quel filo ai pin fino a quando qualcosa non scatta"), in una vista più rana, e sotto il potere di un PC host (con scintille simulate quando si tocca un filo su un pin, preferibilmente, solo per l'ambiente) sarebbe sicuramente apprezzato dalle persone che preferiscono la logica discreta :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.