Diseño de lógica discreta

11

Se me ha encomendado la tarea de construir un dispositivo de alarma simple. Solo necesita medir algunas entradas y las salidas responderán en consecuencia (para decirlo de manera muy simple). Para mí, parecía que usar algunas puertas lógicas discretas haría el trabajo, pero un colega (que estaba trabajando conmigo) decidió que deberíamos usar la lógica programable en su lugar. Su caso ganó, porque en primer lugar, él es más alto que yo, y en segundo lugar, su argumento principal fue que los dispositivos programables son el futuro y queremos hacer productos a prueba de futuro.

Mi pregunta es si tiene un diseño que podría implementarse fácilmente con algunas puertas de lógica discreta, ¿vale la pena diseñarlo con lógica discreta? ¿Hay alguna ventaja en usarlos en lugar de los programables? ¿O va a ser eliminado gradualmente por completo por la lógica programable? Para ser claros, no quiero respuestas de 'Creo que este es el caso' o 'personalmente creo que esto, pero ...' Me gustaría saber si existen ventajas reales de diseñar con discreto sobre programable y es Vale la pena diseñar con ellos en estos días en productos de electrónica de consumo?

Curioso
fuente
16
Esto suena como una pregunta de los años 90 ... µC ha ganado, es mucho más fácil golpear uno y hacerlo que pensar en cómo conectar media docena de circuitos integrados, y mucho menos el consumo de espacio.
PlasmaHH
99
Las puertas discretas tienen una gran ventaja. Sin cadena de herramientas.
jonk
¿Sin cadena de herramientas? ¿Qué quieres decir @jonk
Curioso
@PlasmaHH, entonces, ¿básicamente estás diciendo que no hay ninguna ventaja en el diseño discreto en el futuro?
Curioso
11
Lo que @jonk significa es que, cuando se utiliza un microcontrolador, necesita un software para crear el programa para el microcontrolador, como un IDE (interfaz de usuario gráfica o textual) y una combinación de compilador / enlazador / otras herramientas dedicadas para el microcontrolador que usa, llamado cadena de herramientas
Michel Keijzers

Respuestas:

15

El diseño de lógica discreta no se eliminará por completo. Siempre habrá aplicaciones en las que sea preferible usar un IC de lógica discreta. Como se ha señalado, la velocidad es una gran ventaja, aunque en muchas aplicaciones, la diferencia de velocidad no es tan importante.

Cuando se trata de la fase de diseño, si diseña un circuito que solo necesita realizar 2 o 3 funciones lógicas simples en diferentes puntos del circuito, será mejor usar puertas discretas, solo para ahorrar tiempo de diseño al tener que escribir también El programa también.

Para los sistemas que necesitan realizar funciones lógicas más complejas, sería una tontería dedicar todo el tiempo a elaborar una tabla de verdad, luego averiguar qué puertas lógicas van a dónde, etc., cuando simplemente podría escribir un pequeño programa. Por lo general, mientras más entradas signifiquen más compuertas requeridas y más tiempo se necesita para diseñar en forma discreta.

Sin embargo, el lugar donde la lógica discreta realmente tiene la ventaja es el aprendizaje. Cuando está aprendiendo por primera vez sobre el diseño lógico y cómo funcionan las puertas, etc., es allí donde es útil tener acceso a las puertas lógicas reales y diseñar diferentes funciones con partes discretas. Siempre es una buena idea comprender los fundamentos. Entonces, debido a eso, la lógica discreta siempre tendrá un lugar en este mundo. En cuanto a la electrónica de consumo? El futuro es definitivamente programable.

MCG
fuente
¡Respuesta simple, buenos puntos y respuestas a todas las preguntas formuladas! ¡Gracias!
Curioso
Como programador con experiencia en electrónica, me gustaría decir que si no elabora su tabla de verdad, pasará tanto tiempo depurando su programa como necesitará tiempo para configurar su tabla de verdad. Su tabla de verdad será una buena documentación para su programa.
chthon
Sí, estoy de acuerdo, las tablas de verdad siempre son útiles, editaré la respuesta para que sea un poco más relevante para este escenario
MCG
1
El último diseño que implementé usando lógica discreta tenía un requisito de tiempo "lo más bajo posible" usando lógica de 5V y un requisito de programa comparativamente simple. Podría gastar una tonelada de dinero en un bonito FPGA brillante o simplemente hacerlo a la "vieja escuela". Los chips de especificaciones militares experimentan la oscilación de voltaje completo en picosegundos, sobrevivirán al apocalipsis nuclear junto con las cucarachas, y también costarán casi nada. Siempre habrá un lugar para la lógica discreta.
Landak
14

No soy un ingeniero electrónico profesional en absoluto (en realidad solo soy un principiante), pero mis pocos centavos son que los circuitos integrados de lógica discreta solo deben usarse si el tiempo es importante o si es un requisito no usar lógica programable.

Con un microcontrolador puede implementar una lógica mucho más complicada y es más flexible. También se puede reprogramar sin tener que cambiar el hardware.

Además, cuando se necesitan tiempos muy rápidos que el software no puede seguir, se pueden usar circuitos integrados lógicos dedicados. Pero para un sistema de alarma esto parece innecesario (no necesita un tiempo de respuesta de nanosegundos).

A continuación se muestra mi interpretación de las ventajas / desventajas:

                          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
fuente
1
¿Entonces la velocidad es la principal ventaja en tu opinión? ¡+1 por la respuesta, me gusta especialmente tu mesa!
Curioso
1
Sí, el hardware es más rápido que el software, por lo que si REALMENTE necesita la velocidad, necesitará circuitos integrados de hardware, de lo contrario, buscaría soluciones de 'software' (microcontrolador). Por cierto, hoy en día para soluciones sensibles a la velocidad más complicadas se utilizan FPGA.
Michel Keijzers
1
No estaba planeando usar un FPGA, ¡el ingeniero en jefe ya ha decidido el hardware ahora! Estaba haciendo la pregunta por curiosidad para ver dónde se encuentra alguna ventaja. Por cierto, aceptaré tu respuesta a tiempo si no aparecen otras respuestas. ¡Solo quiero darles a otros la oportunidad de responder antes de aceptar prematuramente!
Curioso
55
Creo que su ingeniero jefe tomó las decisiones correctas. Un sistema de alarma es típicamente algo que se extenderá (obtener más entradas de múltiples fuentes y actuar sobre él), incluso haciendo combinaciones de ellas, y luego agregar funcionalidad como enviar un SMS automático, señalizando una señal de alarma / alarma, tal vez algún registro de sensores, etc.
Michel Keijzers
2
Los FPGA modernos de @MichelKeijzers son significativamente más rápidos que cualquier cosa que pueda lograr con los circuitos integrados de lógica discreta tradicionales.
Tustique
10

Si va a crear un producto comercial, realmente no debería elegir un diseño porque "es programable" o porque lo propuso un colega más experimentado. En cambio, debe estimar los riesgos y costos asociados con cada diseño, y elegir el que tenga el costo más bajo y el nivel de riesgo aceptable. Para comenzar:

  • el precio de los componentes individuales aumenta el costo
  • El tamaño de PCB requerido y la complejidad aumentan el costo
  • el esfuerzo de diseño y las herramientas requeridas aumentan el costo
  • las pruebas y certificaciones requeridas se suman al costo

  • la falta de flexibilidad (por ejemplo, cambios en la lógica discreta que requieren una nueva PCB) es un riesgo
  • La falta de experiencia con una tecnología particular en su equipo es un riesgo
  • la incapacidad de cumplir con los requisitos del proyecto (por ejemplo, el consumo de energía objetivo) es un riesgo

Si el suministro de circuitos integrados de lógica discreta para su proyecto particular es más barato, su equipo tiene experiencia con dicho diseño y considera que la falta de flexibilidad no es crítica, no hay razón para no usar lógica discreta.

Dmitry Grigoryev
fuente
Muy cierto. ¿Entonces crees que hay un futuro para la lógica discreta?
Curioso
44
@Curious Todavía veo BJT y MOSFET individuales que se utilizan para implementar funciones lógicas básicas aquí y allá. La lógica discreta es una abstracción útil para algunas tareas simples, por lo que estoy convencido de que no desaparecerá por completo.
Dmitry Grigoryev
7

Un aspecto que las otras respuestas están olvidando es la seguridad. Los circuitos lógicos discretos son mucho más confiables que los diseños de microcontroladores mucho más complejos. Ayudé a construir un prototipo de automóvil de hidrógeno, todos los circuitos de seguridad fueron diseñados utilizando una lógica discreta. La seguridad y la confiabilidad es un aspecto que quizás desee considerar al diseñar un sistema de alarma.

LukeFelizValley
fuente
3
Esto no es generalmente cierto. Se podría construir un sistema discreto terriblemente inseguro y un sistema increíblemente seguro y robusto en un procesador. Su equipo no tenía las habilidades para usar un procesador, pero esto no lo hace inherentemente inseguro. Puede tener una duplicación masiva en un procesador, lo que no sería práctico en un sistema discreto.
awjlogan
1
@awjlogan Puede hacer ambas cosas, pero su parada de emergencia de lógica discreta nunca dejará de activarse porque una condición inesperada envió otra parte a un bucle infinito. Los sistemas críticos para la seguridad deben ser lo más simples posible .
user253751
1
@immibis Eso es un mal diseño y especificaciones, no inherente a un procesador. Siempre existe la posibilidad de falla en un sistema, discreto, FPGA o lo que sea. Convino en que las cajas fuertes de falla deberían ser lo más simples posible, eso no significa que deban ser discretas.
awjlogan
55
@immibis La lógica discreta se vuelve menos confiable que las MCU más allá de cierto tamaño de diseño debido solo a defectos de soldadura. Y si la lógica discreta incluye desencadenantes, terminará teniendo exactamente el mismo problema con los estados de sistema prohibidos que en el software.
Dmitry Grigoryev
44
Las partes discretas podrían actuar de manera más predecible EN caso de falla ...
rackandboneman
4

Tengo que admitir que cada vez que tengo que hacer una lógica combinatoria compleja más algunos temporizadores, no me molesto en absoluto con la lógica discreta, sino que siempre codifico un programa de ensamblador mínimo para un ATtiny (use un PIC si le gustan más).

La lógica combinatoria es como máximo 20 líneas de ensamblador (varias tablas de búsqueda). Cada temporizador de software agrega otras 10 líneas. Temporizadores de hardware aún menos. Incluso tiene la ventaja de tener un convertidor A / D, Comparador, generación PWM a bordo, si los necesita.

La única desventaja es que tuvo que mostrar esta parte. A veces eso es un obstáculo, pero rara vez es el caso. La gran ventaja es que necesita mucho menos espacio en el tablero, el enrutamiento es mucho más simple y puede cambiar fácilmente las funciones lógicas si es necesario.


El caso de uso restante para los circuitos integrados lógicos separados es cuando las cosas tienen que funcionar más rápido que 1 µs.

Janka
fuente
Un poco fuera de tema, pero las partes ATTiny x17 / x16 tienen dos LUT incorporados de 3 entradas. Muy práctico de hecho!
awjlogan
4

En el producto final, probablemente no haya muchas ventajas para la lógica discreta si estamos hablando de un dispositivo de consumo. Las excepciones serían algo que debe ser muy resistente a las condiciones adversas, o muy fácil de caracterizar por completo (la complejidad real y el potencial de errores ocultos es mucho mayor con algo basado en firmware), o que desea poder construir de nuevo desde muy partes similares en las próximas décadas (las huellas 74xx cambian muy muy lentamente, incluso si cambian las letras de la tecnología :)).

Algo que realmente puede hacer mejor con los discretos es la lógica asíncrona de temporización automática (la finalización de una cosa desencadena inmediatamente otra). La legitimidad de tales diseños es un tema de guerra santa. No te preocupes, las personas sincrónicas querrán vencerte, pero solo tienes que quitarles el reloj, lo estarán esperando sin sentido.

Cuando se trata de la metodología de diseño, diría que depende del estilo preferido del diseñador: un dispositivo CPLD que literalmente podría volver a cablear en vivo ("toquemos ese cable a los pines hasta que algo haga clic"), en una vista más rara, y bajo el poder de una PC host (con chispas simuladas cuando se toca un cable a un pin, preferiblemente, solo por el ambiente) sin duda sería bien apreciado por las personas que prefieren la lógica discreta :)

rackandboneman
fuente