Conception logique discrète

11

J'ai été chargé de construire un simple dispositif d'alarme. Il suffit de mesurer quelques entrées et les sorties répondront en conséquence (pour le dire très simplement!). Pour moi, il semblait que l'utilisation de quelques portes logiques discrètes ferait le travail, mais un collègue (qui y travaillait avec moi) a décidé que nous devrions plutôt utiliser la logique programmable. Son cas a gagné, parce que d'une part, il est plus âgé que moi, et d'autre part, son principal argument était que les appareils programmables sont l'avenir et nous voulons fabriquer des produits à l'épreuve du temps.

Ma question est si vous avez une conception qui pourrait être facilement mise en œuvre par quelques portes logiques discrètes, cela vaut-il la peine de concevoir avec une logique discrète? Y a-t-il un avantage à les utiliser par rapport à la programmation? Ou va-t-il lentement être complètement éliminé par une logique programmable? Pour être clair, je ne veux pas de réponses de «je crois que c'est le cas» ou «personnellement, je pense que cela, mais ...» Je voudrais savoir s'il y a des avantages réels à concevoir avec discret sur programmable et est cela vaut-il la peine de concevoir avec eux ces jours-ci des produits électroniques grand public?

Curieuse
la source
16
Cela ressemble à une question des années 90 ... µC a gagné, il est tellement plus facile d'en associer un et de le faire que de réfléchir à la façon de connecter une demi-douzaine de circuits intégrés, sans parler de la consommation d'espace.
PlasmaHH
9
Les portes discrètes ont un gros avantage. Pas de chaîne d'outils.
jonk
Pas de chaîne d'outils? Que voulez-vous dire @jonk
Curieux
@PlasmaHH donc, fondamentalement, vous dites qu'il n'y a aucun avantage à concevoir discret à l'avenir?
Curieux
11
Ce que signifie @jonk, lorsqu'un microcontrôleur est utilisé, vous avez besoin d'un logiciel pour créer le programme pour le microcontrôleur, comme une IDE (interface utilisateur graphique ou textuelle) et une combinaison compilateur / éditeur de liens / autres outils dédiés au microcontrôleur que vous utilisez, appelée un chaîne d'outils.
Michel Keijzers

Réponses:

15

La conception logique discrète ne sera pas complètement supprimée. Il y aura toujours des applications où l'utilisation d'un circuit intégré logique discret est préférable. Comme cela a été souligné, la vitesse est un gros avantage, même si dans de nombreuses applications, la différence de vitesse n'est tout simplement pas si importante.

En ce qui concerne la phase de conception, si vous concevez un circuit qui n'a besoin que de 2 ou 3 fonctions logiques simples à différents points du circuit, il sera préférable d'utiliser des portes discrètes, juste pour gagner du temps de conception en ayant à écrire également le programme aussi.

Pour les systèmes qui doivent effectuer des fonctions logiques plus complexes, il serait stupide de passer tout le temps à élaborer une table de vérité, puis à déterminer quelles portes logiques vont où, etc., lorsque vous pourriez simplement écrire un petit programme. Habituellement, plus il y a d'entrées, plus il faut de portes et plus il faut de temps pour concevoir en discret.

L'endroit où la logique discrète a vraiment l'avantage est bien dans l'apprentissage. Lorsque vous apprenez pour la première fois la conception logique et le fonctionnement des portes, etc., c'est là que se familiariser avec les portes logiques réelles et concevoir différentes fonctions avec des pièces discrètes est formidable. Toujours une bonne idée pour comprendre les fondamentaux. Donc, à cause de cela, la logique discrète aura toujours sa place dans ce monde. Quant à l'électronique grand public? L'avenir est définitivement programmable.

MCG
la source
Réponse simple, bons points et réponses à toutes les questions posées! Merci!
Curieux
En tant que programmeur avec une expérience en électronique, je voudrais dire que si vous ne travaillez pas sur votre table de vérité, vous passerez autant de temps à déboguer votre programme que vous aurez besoin de temps pour configurer votre table de vérité. Votre table de vérité sera une belle documentation pour votre programme.
chthon
Oui, je suis d'accord, les tables de vérité sont toujours utiles, je vais modifier la réponse pour la rendre un peu plus pertinente pour ce scénario
MCG
1
La dernière conception que j'ai mise en œuvre en utilisant une logique discrète avait une exigence de synchronisation "aussi faible que possible" en utilisant une logique 5V et une exigence de programme relativement simple. Je pourrais dépenser une tonne d'argent sur de beaux FPGA brillants ou simplement le faire à la "vieille école". Les puces de spécifications militaires subissent l'oscillation à pleine tension en picosecondes, survivront à l'apocalypse nucléaire avec les cafards, et s'avèrent également ne coûter presque rien. Il y aura toujours une place pour une logique discrète.
Landak
14

Je ne suis pas du tout un ingénieur en électronique professionnel (en fait juste un débutant), mais mes quelques centimes sont que les circuits intégrés logiques discrets dédiés ne devraient être utilisés que si le timing est important ou s'il est nécessaire de ne pas utiliser de logique programmable.

Avec un microcontrôleur, vous pouvez implémenter une logique beaucoup plus compliquée et plus flexible. Il peut également être reprogrammé sans avoir à changer le matériel.

De plus, lorsque des délais très rapides sont nécessaires et que le logiciel ne peut pas suivre, des circuits intégrés logiques dédiés peuvent être utilisés. Mais pour un système d'alarme, cela semble inutile (il n'a pas besoin d'un temps de réponse de nanosecondes).

Voici mon interprétation des avantages / inconvénients:

                          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
la source
1
La vitesse est donc le principal avantage selon vous? +1 pour la réponse, j'aime particulièrement votre table!
Curieux
1
Oui, le matériel est plus rapide que le logiciel, donc si vous avez vraiment besoin de la vitesse, vous avez besoin de circuits intégrés matériels, sinon j'opterais pour des solutions «logicielles» (microcontrôleur). Btw, de nos jours pour des solutions sensibles à la vitesse plus compliquées, des FPGA sont utilisés.
Michel Keijzers
1
Je ne prévoyais pas d'utiliser un FPGA, l'ingénieur en chef a déjà décidé du matériel maintenant! Je posais simplement la question par curiosité pour voir où se trouve un avantage. Soit dit en passant, j'accepterai votre réponse à temps si aucune autre réponse ne vient. Je veux juste donner aux autres une chance de répondre avant d'accepter prématurément!
Curieux
5
Je pense que votre ingénieur en chef a pris les bonnes décisions. Un système d'alarme est généralement quelque chose qui sera étendu (en obtenant plus d'entrées de plusieurs sources et en agissant), même en faisant des combinaisons d'entre elles, et en ajoutant plus tard des fonctionnalités comme l'envoi d'un SMS automatique, la signalisation d'un signal sonore / alarme, peut-être une journalisation de capteurs, etc.
Michel Keijzers
2
Les FPGA modernes @MichelKeijzers sont nettement plus rapides que tout ce que vous pourriez accomplir avec des circuits intégrés logiques discrets traditionnels.
Tustique
10

Si vous allez créer un produit commercial, vous ne devriez vraiment pas choisir un design parce que "c'est programmable" ou parce qu'un collègue plus âgé l'a proposé. Au lieu de cela, vous devez estimer les risques et les coûts associés à chaque conception et choisir celui qui présente le coût le plus bas et le niveau de risque acceptable. Pour un début:

  • le prix des composants individuels ajoute au coût
  • la taille et la complexité requises des PCB augmentent le coût
  • l'effort de conception et les outils requis augmentent le coût
  • les tests et la certification requis augmentent le coût

  • le manque de flexibilité (par exemple des changements dans la logique discrète nécessitant un nouveau PCB) est un risque
  • le manque d'expérience avec une technologie particulière dans votre équipe est un risque
  • l'incapacité à répondre aux exigences du projet (par exemple, la consommation d'énergie cible) est un risque

Si l'approvisionnement de circuits intégrés logiques discrets pour votre projet particulier est moins cher, votre équipe a de l'expérience avec une telle conception et vous considérez que le manque de flexibilité n'est pas critique, il n'y a aucune raison de ne pas utiliser de logique discrète.

Dmitry Grigoryev
la source
Très vrai. Vous pensez donc qu'il y a un avenir pour la logique discrète alors?
Curieux
4
@Curious Je vois toujours des BJT et MOSFET individuels utilisés pour implémenter des fonctions logiques de base ici et là. La logique discrète est une abstraction utile pour certaines tâches simples, je suis donc convaincu qu'elle ne disparaîtra pas complètement.
Dmitry Grigoryev
7

Un aspect que les autres réponses oublient est la sécurité. Les circuits logiques discrets sont bien plus fiables que les conceptions de microcontrôleurs beaucoup plus complexes. J'ai aidé à construire un prototype de voiture à hydrogène, tous les circuits de sécurité ont été conçus en utilisant une logique discrète. La sécurité et la fiabilité sont des aspects que vous voudrez peut-être envisager de concevoir un système d'alarme.

LukeHappyValley
la source
3
Ce n'est généralement pas vrai. On pourrait construire un système discret extrêmement dangereux et un système incroyablement sûr et robuste sur un processeur. Votre équipe n'avait pas les compétences nécessaires pour utiliser un processeur, mais cela ne le rend pas intrinsèquement dangereux. Vous pouvez avoir une duplication massive dans un processeur, ce qui ne serait pas pratique dans un système discret.
awjlogan
1
@awjlogan Vous pouvez faire ces deux choses, mais votre arrêt d'urgence à logique discrète ne manquera jamais de s'activer car une condition inattendue en a envoyé une autre partie dans une boucle infinie. Les systèmes critiques pour la sécurité doivent être aussi simples que possible .
user253751
1
@immibis C'est une mauvaise conception et spécifications, non inhérente à un processeur. Il y a toujours une possibilité de panne dans un système, discret, FPGA, ou autre. Il est convenu que les coffres-forts défaillants doivent être aussi simples que possible, cela ne signifie pas qu'ils doivent être discrets.
awjlogan
5
@immibis La logique discrète devient moins fiable que les microcontrôleurs au-delà d'une certaine taille de conception en raison des seuls défauts de soudure. Et si la logique discrète inclut des déclencheurs, vous finissez par avoir exactement le même problème avec les états du système interdits que vous le faites dans le logiciel.
Dmitry Grigoryev
4
Les pièces discrètes pourraient agir de façon plus prévisible en cas de panne ...
rackandboneman
4

Je dois admettre que chaque fois que je dois faire une logique combinatoire complexe et des temporisateurs, je ne me soucie pas du tout de la logique discrète, mais je code toujours un programme assembleur minimal pour un ATtiny (utilisez un PIC si vous préférez ceux-ci).

La logique combinatoire est au maximum de 20 lignes d'assembleur (plusieurs tables de recherche). Chaque temporisateur logiciel ajoute 10 autres lignes. Minuteries matérielles encore moins. Vous avez même l'avantage d'avoir un convertisseur A / N, un comparateur, une génération PWM à bord, si vous en avez besoin.

Le seul inconvénient est que vous avez dû flasher cette partie. Parfois, c'est un spectacle, mais c'est rarement le cas. Le gros avantage est que vous avez besoin de beaucoup moins d'espace sur la carte, le routage est beaucoup plus simple et vous pouvez facilement changer les fonctions logiques si nécessaire.


Le cas d'utilisation restant pour les circuits intégrés logiques séparés est lorsque les choses doivent fonctionner plus rapidement que 1 µs.

Janka
la source
Un peu hors sujet, mais les pièces ATTiny x17 / x16 ont deux LUT à 3 entrées intégrées. Très pratique en effet!
awjlogan
4

En fin de compte - probablement pas beaucoup d'avantages à la logique discrète si nous parlons d'un appareil grand public. Les exceptions devraient être quelque chose qui doit être très robuste contre des conditions défavorables, ou très facile à caractériser complètement (la complexité réelle et le potentiel de bogues cachés sont beaucoup plus élevés avec quelque chose basé sur le firmware), ou que vous souhaitez pouvoir reconstruire à partir de très pièces similaires pour les décennies à venir (les empreintes 74xx changent très très lentement même si les lettres technologiques changent :)).

Quelque chose que vous pouvez réellement faire mieux avec les discrets est la logique asynchrone à synchronisation automatique (l'achèvement d'une chose en déclenche immédiatement une autre). La légitimité de ces conceptions est un sujet de guerre sainte. Ne vous inquiétez pas, les personnes synchrones voudront vous battre, mais il vous suffit de retirer leur horloge, elles l'attendront de façon absurde pour toujours.

En ce qui concerne la méthodologie de conception, je dirais que cela dépend du style préféré du concepteur - un appareil CPLD que vous pourriez littéralement recâbler en direct ("touchons ce fil aux broches jusqu'à ce que quelque chose clique"), dans une vue la plus simple, et sous l'alimentation d'un PC hôte (avec des étincelles simulées lorsque vous touchez un fil à une broche, de préférence, juste pour l'ambiance) serait certainement bien aimé par les personnes préférant la logique discrète :)

rackandboneman
la source