Projeto lógico discreto

11

Fui encarregado de construir um dispositivo de alarme simples. Ele só precisa medir algumas entradas e as saídas responderão de acordo (para simplificar!). Para mim, parecia que o uso de alguns portões lógicos discretos faria o trabalho, mas um colega (que estava trabalhando nisso comigo) decidiu que deveríamos usar a lógica programável. Seu caso venceu, porque, em primeiro lugar, ele é mais experiente do que eu e, em segundo lugar, seu principal argumento era que os dispositivos programáveis ​​são o futuro e queremos criar produtos à prova de futuro.

Minha pergunta é: se você tem um projeto que pode ser facilmente implementado por algumas portas lógicas discretas, vale a pena projetar com lógica discreta? Existe alguma vantagem em usá-los sobre os programáveis? Ou será lentamente eliminado completamente pela lógica programável? Para ser claro, não quero respostas de 'Acredito que seja esse o caso' ou 'Pessoalmente acho que sim, mas ...' Gostaria de saber se há alguma vantagem real em projetar com discreto sobre programável e vale a pena projetar com eles hoje em dia em produtos eletrônicos?

Curioso
fonte
16
Isso soa como uma pergunta dos anos 90 ... µC venceu, é muito mais fácil digitar um e fazer do que pensar em como conectar meia dúzia de CIs, sem falar no consumo de espaço.
PlasmaHH
9
Portões discretos têm uma grande vantagem. Nenhuma cadeia de ferramentas.
18718
Nenhuma cadeia de ferramentas? O que você quer dizer @jonk
Curioso #
@PlasmaHH, então basicamente você está dizendo que não há vantagem em projetar discretos no futuro?
curioso
11
O que o @jonk significa é que, quando um microcontrolador é usado, você precisa de software para criar o programa para o microcontrolador, como uma combinação de IDE (interface gráfica ou textual do usuário) e compilador / vinculador / outras ferramentas dedicadas ao microcontrolador usado, chamado de conjunto de ferramentas.
Michel Keijzers

Respostas:

15

O design lógico discreto não será totalmente eliminado. Sempre haverá aplicações em que é preferível usar um CI lógico discreto. Como foi apontado, a velocidade é uma grande vantagem, embora em muitas aplicações a diferença de velocidade não seja tão importante.

Quando se trata da fase de projeto, se você projetar um circuito que só precisa executar 2 ou 3 funções lógicas simples em pontos diferentes do circuito, será melhor usar portas discretas, apenas para economizar tempo de projeto e também escrever o programa também.

Para sistemas que precisam executar funções lógicas mais complexas, seria tolo passar o tempo todo trabalhando em uma tabela de verdade e depois descobrir quais portas lógicas vão para onde etc., quando você pode escrever um pequeno programa. Normalmente, quanto mais entradas significam, mais portas são necessárias e mais tempo é necessário para projetar discretamente.

O lugar onde a lógica discreta realmente tem a vantagem está no aprendizado. Quando você está aprendendo pela primeira vez sobre o design lógico e como os portões funcionam, etc., é aí que é ótimo começar com os portões lógicos reais e projetar diferentes funções com partes discretas. Sempre uma boa idéia para entender os fundamentos. Então, por causa disso, a lógica discreta sempre terá um lugar neste mundo. Quanto aos eletrônicos de consumo? O futuro é definitivamente programável.

MCG
fonte
Resposta simples, bons pontos e responde a todas as perguntas! Obrigado!
curioso
Como programador com experiência em eletrônica, gostaria de declarar que, se você não elaborar sua tabela verdade, gastará tanto tempo depurando seu programa quanto necessário para configurar sua tabela verdade. Sua tabela de verdade será uma boa documentação para o seu programa.
Chthon
Sim, eu concordo, tabelas de verdade são sempre útil ter, eu vou editar a resposta para torná-lo um pouco mais relevante para esse cenário
MCG
1
O último projeto que implementei usando lógica discreta tinha um requisito de tempo "o mais baixo possível" usando a lógica 5V e um requisito de programa comparativamente simples. Eu poderia gastar uma tonelada de dinheiro em bons FPGAs brilhantes ou apenas fazê-lo da maneira da "velha escola". Os chips de especificações militares sofrem oscilações de tensão total em picossegundos, sobreviverão ao apocalipse nuclear junto com as baratas e também custarão quase nada. Sempre haverá um lugar para lógica discreta.
Landak
14

Eu não sou um engenheiro eletrônico profissional (na verdade, apenas um iniciante), mas meus poucos centavos são que CIs lógicos discretos dedicados devem ser usados ​​apenas se o tempo for importante ou se for um requisito para não usar a lógica programável.

Com um microcontrolador, você pode implementar uma lógica muito mais complicada e é mais flexível. Também pode ser reprogramado sem precisar alterar o hardware.

Além disso, quando são necessários tempos muito rápidos que o software não consegue acompanhar, ICs lógicos dedicados podem ser usados. Mas para um sistema de alarme isso parece desnecessário (não precisa de um tempo de resposta de nanossegundos).

Abaixo está minha interpretação das vantagens / desvantagens:

                          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
fonte
1
Então a velocidade é a principal vantagem na sua opinião? +1 para a resposta, gosto especialmente da sua mesa!
curioso
1
Sim, o hardware é mais rápido que o software; portanto, se você REALMENTE precisa da velocidade, precisa de ICs de hardware; caso contrário, eu usaria soluções de 'software' (microcontrolador). Atualmente, para FPGAs de soluções sensíveis à velocidade, mais complicadas, são usadas.
Michel Keijzers
1
Eu não estava pensando em usar um FPGA, o engenheiro chefe já decidiu o hardware agora! Eu estava apenas fazendo a pergunta por curiosidade para ver onde está a vantagem. A propósito, aceitarei sua resposta a tempo, se não houver outras respostas. Só quero dar aos outros a chance de responder antes de aceitar prematuramente!
curioso
5
Acho que seu engenheiro chefe tomou as decisões corretas. Um sistema de alarme normalmente é algo que será estendido (obtendo mais entradas de várias fontes e agindo sobre ele), até fazendo combinações delas e, posteriormente, adicione funcionalidades como enviar um SMS automático, sinalizar um sinal sonoro / alarme, talvez algum registro de sensores, etc.
Michel Keijzers
2
Os FPGAs modernos do @MichelKeijzers são significativamente mais rápidos do que qualquer coisa que você poderia realizar com os ICs lógicos discretos tradicionais.
Tustique
10

Se você deseja criar um produto comercial, não deve escolher um design porque "é programável" ou porque um colega mais experiente o propôs. Em vez disso, você deve estimar riscos e custos associados a cada projeto e escolher aquele com o menor custo e o nível de risco aceitável. Para começar:

  • preço de componentes individuais aumenta o custo
  • o tamanho e a complexidade necessários de PCB aumentam o custo
  • o esforço e as ferramentas de projeto necessários aumentam o custo
  • testes e certificação exigidos aumentam o custo

  • falta de flexibilidade (por exemplo, mudanças na lógica discreta que exija um novo PCB) é um risco
  • falta de experiência com uma tecnologia específica em sua equipe é um risco
  • A incapacidade de atender aos requisitos do projeto (por exemplo, consumo alvo de energia) é um risco

Se o fornecimento de ICs de lógica discreta para seu projeto em particular for mais barato, sua equipe terá experiência com esse design e você considerará que a falta de flexibilidade não é crítica, não há razão para não usar lógica discreta.

Dmitry Grigoryev
fonte
Muito verdadeiro. Então você acha que existe um futuro para a lógica discreta?
curioso
4
@Curious Ainda vejo BJTs e MOSFETs individuais sendo usados ​​para implementar funções lógicas básicas aqui e ali. A lógica discreta é uma abstração útil para algumas tarefas simples, por isso estou convencido de que não desaparecerá completamente.
Dmitry Grigoryev
7

Um aspecto que as outras respostas estão esquecendo é a segurança. Os circuitos lógicos discretos são muito mais confiáveis ​​do que os projetos de microcontroladores muito mais complexos. Ajudei a construir um protótipo de hidrogênio, todos os circuitos de segurança foram projetados usando lógica discreta. Segurança e confiabilidade é um aspecto que você pode considerar projetar um sistema de alarmes.

LukeHappyValley
fonte
3
Isso geralmente não é verdade. Pode-se construir um sistema discretamente horrivelmente inseguro e um sistema incrivelmente seguro e robusto em um processador. Sua equipe não tinha habilidades para usar um processador, mas isso não o torna inerentemente inseguro. Você pode ter duplicação em massa em um processador, o que seria impraticável em um sistema discreto.
awjlogan
1
@awjlogan Você pode fazer as duas coisas, mas sua parada lógica de emergência discreta nunca falhará na ativação porque uma condição inesperada enviou outra parte dela para um loop infinito. Os sistemas críticos de segurança devem ser o mais simples possível .
usar o seguinte comando
1
@immibis Isso é design e especificações ruins, não inerentes a um processador. Sempre existe a possibilidade de falha em um sistema, discreto, FPGA ou qualquer outra coisa. Concordou que os cofres com falha devem ser o mais simples possível, o que não significa que eles precisam ser discretos.
awjlogan
5
@immibis A lógica discreta se torna menos confiável do que as MCUs após um determinado tamanho de projeto devido apenas a defeitos de solda. E se a lógica discreta incluir gatilhos, você acabará tendo exatamente o mesmo problema com os estados proibidos do sistema que no software.
Dmitry Grigoryev
4
Partes distintas pode agir caso em mais previsível de uma falha ...
rackandboneman
4

Devo admitir que, sempre que tenho que fazer uma lógica combinatória complexa mais alguns timers, não me incomodo com lógica discreta, mas sempre codifico um programa assembler mínimo para um ATtiny (use um PIC se você preferir).

A lógica combinatória é de no máximo 20 linhas de assembler (várias tabelas de pesquisa). Cada timer de software adiciona outras 10 linhas. Temporizadores de hardware ainda menos. Você ainda ganha a vantagem de ter um conversor A / D, comparador, geração PWM a bordo, caso precise deles.

A única desvantagem é que você teve que exibir esta parte. Às vezes, isso é um estrago, mas raramente é o caso. A grande vantagem é que você precisa de muito menos espaço na placa, o roteamento é muito mais simples e pode alterar facilmente as funções lógicas, se necessário.


O caso de uso restante para ICs lógicos separados é quando as coisas precisam funcionar mais rápido que 1µs.

Janka
fonte
Um pouco fora de tópico, mas as partes ATTiny x17 / x16 possuem duas LUTs integradas de 3 entradas. Muito útil mesmo!
awjlogan
4

No produto final - provavelmente não há muitas vantagens para a lógica discreta se estivermos falando de um dispositivo de consumidor. Exceções seria algo que precisa ser muito resistente a condições adversas ou muito fácil de caracterizar completamente (a complexidade e o potencial reais de erros ocultos são muito maiores com algo baseado em firmware) ou que você deseja poder construir novamente a partir de muito peças semelhantes nas próximas décadas (as pegadas 74xx mudam muito lentamente, mesmo que as letras da tecnologia mudem :)).

Algo que você pode realmente fazer melhor com os discretos é a lógica assíncrona e de sincronismo automático (a conclusão de uma coisa desencadeia outra imediatamente). A legitimidade de tais projetos é um tópico da guerra santa. Não se preocupe, as pessoas síncronas vão querer vencê-lo, mas você só precisa levar o relógio delas, pois elas ficarão sem sentido esperando para sempre.

No que diz respeito à metodologia de design, eu diria que depende do estilo preferido do designer - um dispositivo de CPLD que você pode literalmente religar ao vivo ("vamos tocar esse fio nos pinos até que algo se encaixe"), em uma exibição de ratos, e sob o poder de um PC host (com faíscas simuladas quando você toca um fio em um pino, de preferência, apenas por ambiente) certamente seria apreciado por pessoas que preferem lógica discreta :)

rackandboneman
fonte