Дискретная логика

11

Мне было поручено создать простое устройство сигнализации. Просто нужно измерить несколько входов, и выходы будут реагировать соответствующим образом (проще говоря!). Мне казалось, что с помощью нескольких дискретных логических элементов работа будет выполнена, но коллега (который работал над этим со мной) решил, что вместо этого мы должны использовать программируемую логику. Его дело выиграло, потому что, во-первых, он старше меня, а во-вторых, его главный аргумент состоял в том, что программируемые устройства - это будущее, и мы хотим создавать продукты, пригодные для будущего.

У меня вопрос: есть ли у вас дизайн, который можно было бы легко реализовать с помощью нескольких дискретных логических элементов? Стоит ли больше проектировать с помощью дискретной логики? Есть ли преимущество их использования перед программируемыми? Или это будет постепенно прекращаться программируемой логикой? Чтобы быть ясным, я не хочу ответов «Я верю, что это так» или «лично я так думаю, но ...» Я хотел бы знать, есть ли какие-либо реальные преимущества в проектировании с дискретным, а не программируемым стоит ли разрабатывать с ними в наши дни продукцию бытовой электроники?

любознательный
источник
16
Это звучит как вопрос из 90-х годов ... µC победил, просто гораздо проще разобраться с этим, чем подумать о том, как соединить полдюжины микросхем, не говоря уже о потреблении места.
PlasmaHH
9
Дискретные ворота имеют одно большое преимущество. Нет цепочки инструментов.
jonk
Нет цепочки инструментов? Что ты имеешь в виду @jonk
Любопытно
@PlasmaHH, так что, по сути, вы говорите, что нет никакого преимущества в разработке дискретного в будущем?
Любопытно
11
@Jonk означает, что при использовании микроконтроллера вам необходимо программное обеспечение для создания программы для микроконтроллера, например, IDE (графический или текстовый интерфейс пользователя) и комбинация компилятор / компоновщик / другие инструменты, выделенные для используемого вами микроконтроллера, называемые цепочка инструментов.
Мишель Кейзерс

Ответы:

15

Дискретная логика не будет полностью прекращена. Всегда найдутся приложения, в которых использование дискретной логической ИС предпочтительнее. Как уже указывалось, скорость является большим преимуществом, хотя во многих приложениях разница в скорости не так уж важна.

Когда дело доходит до фазы проектирования, если вы проектируете схему, которая должна выполнять только 2 или 3 простых логических функции в разных точках схемы, будет лучше использовать дискретные вентили, просто чтобы сэкономить время проектирования на необходимость также писать программа тоже.

Для систем, которые должны выполнять более сложные логические функции, было бы глупо тратить все время на разработку таблицы истинности, а затем выяснять, куда идут логические элементы и т. Д., Когда вы могли бы просто написать небольшую программу. Обычно, чем больше входных данных, тем больше требуется затворов и тем больше времени требуется для дискретного проектирования.

Место, где дискретная логика действительно имеет преимущество, - это обучение. Когда вы впервые узнаете о дизайне логики и о том, как работают ворота и т. Д., То здесь хорошо работать с реальными логическими элементами и проектировать различные функции с дискретными частями. Всегда хорошая идея, чтобы получить понимание основ. Таким образом, дискретная логика всегда будет иметь место в этом мире. Что касается бытовой электроники? Будущее определенно программируемо.

MCG
источник
Простой ответ, хорошие моменты и ответы на все вопросы! Спасибо!
любопытно
Как программист с опытом работы с электроникой, я хотел бы заявить, что если вы не работаете с таблицей истинности, вы потратите столько же времени на отладку своей программы, сколько потребуется времени для настройки таблицы истинности. Ваша таблица истинности будет хорошей документацией для вашей программы.
chthon
Да, я согласен, таблицы правды всегда полезны, я отредактирую ответ, чтобы сделать его более подходящим для этого сценария
MCG
1
Последний проект, который я реализовал с использованием дискретной логики, имел требование синхронизации «как можно ниже» с использованием логики 5 В и сравнительно простое требование программы. Я мог бы потратить кучу денег на красивые блестящие ПЛИС или просто сделать это «старой школой». Чипы военных спецификаций претерпевают полный скачок напряжения в пикосекундах, переживут ядерный апокалипсис вместе с тараканами, а также почти ничего не стоят. Всегда будет место для дискретной логики.
Ландак
14

Я вообще не профессиональный инженер-электронщик (на самом деле я новичок), но мои несколько центов в том, что выделенные дискретные логические ИС следует использовать только в том случае, если важно время или если требуется не использовать программируемую логику.

С микроконтроллером вы можете реализовать гораздо более сложную логику, и она более гибкая. Также его можно перепрограммировать, не меняя аппаратное обеспечение.

Также, когда требуются очень быстрые тайминги, с которыми программное обеспечение не может справиться, могут использоваться выделенные логические ИС. Но для системы сигнализации это кажется ненужным (ей не нужно время отклика наносекунд).

Ниже моя интерпретация преимуществ / недостатков:

                          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
Так скорость, на твой взгляд, главное преимущество? +1 за ответ, мне особенно нравится твой стол!
Любопытно
1
Да, аппаратное обеспечение быстрее программного, поэтому, если вам ДЕЙСТВИТЕЛЬНО нужна скорость, вам нужны аппаратные ИС, в противном случае я бы выбрал «программные» (микроконтроллерные) решения. Кстати, в настоящее время для более сложных чувствительных к скорости решений используются FPGA.
Мишель Кейзерс
1
Я не планировал использовать FPGA, главный инженер уже определил аппаратное обеспечение сейчас! Я просто из любопытства задавал вопрос, чтобы увидеть, в чем заключается какое-либо преимущество. Кстати, я приму ваш ответ вовремя, если другие ответы не придут. Просто хочу дать другим шанс ответить, прежде чем принимать преждевременно!
Любопытно
5
Я думаю, что ваш главный инженер принял правильные решения. Система аварийной сигнализации, как правило, является чем-то, что будет расширено (получая больше входных данных из нескольких источников и воздействуя на него), даже создавая их комбинации, а позже добавит такие функции, как отправка автоматического SMS, сигнализация звукового сигнала / сигнала тревоги, возможно, некоторая регистрация датчики и т. д.
Мишель Кейзерс
2
@MichelKeijzers современные ПЛИС значительно быстрее, чем все, что вы могли бы достичь с помощью традиционных дискретных логических ИС.
Tustique
10

Если вы собираетесь создавать коммерческий продукт, вам действительно не следует выбирать дизайн, потому что он «программируемый» или потому, что его предложил более старший коллега. Вместо этого вы должны оценить риски и затраты, связанные с каждым проектом, и выбрать тот, который имеет наименьшую стоимость и приемлемый уровень риска. Для начала:

  • цена отдельных компонентов добавляет к стоимости
  • требуемый размер и сложность печатной платы увеличивает стоимость
  • необходимые усилия по проектированию и инструменты увеличивают стоимость
  • необходимое тестирование и сертификация добавляет к стоимости

  • Недостаток гибкости (например, изменения в дискретной логике, требующие новой платы) - это риск
  • недостаток опыта работы с конкретной технологией в вашей команде - это риск
  • Неспособность удовлетворить требования проекта (например, целевое потребление энергии) является риском

Если поиск микросхем с дискретной логикой для вашего конкретного проекта обходится дешевле, ваша команда имеет опыт работы с такой конструкцией, и вы считаете, что отсутствие гибкости не критично, нет причин не использовать дискретную логику.

Дмитрий Григорьев
источник
Очень верно. Так вы думаете, что у дискретной логики есть будущее?
любопытно
4
@ Любопытно, что я все еще вижу отдельные BJT и MOSFET, используемые для реализации основных логических функций здесь и там. Дискретная логика - полезная абстракция для некоторых простых задач, поэтому я уверен, что она не исчезнет полностью.
Дмитрий Григорьев
7

Один аспект, который забывают другие ответы - это безопасность. Дискретные логические схемы намного надежнее, чем гораздо более сложные конструкции микроконтроллеров. Я помог построить водородный прототип автомобиля, все схемы безопасности были разработаны с использованием дискретной логики. Безопасность и надежность - это аспект, который вы могли бы рассмотреть при разработке системы сигнализации.

LukeHappyValley
источник
3
Это не совсем так. Можно создать ужасно небезопасную дискретную систему и невероятно безопасную и надежную систему на процессоре. У вашей команды не было навыков использования процессора, но это не делает его небезопасным. Вы можете иметь огромное дублирование в процессоре, что было бы непрактично в дискретной системе.
awjlogan
1
@awjlogan Вы можете сделать обе эти вещи, но ваша дискретная логическая аварийная остановка никогда не будет активирована, потому что непредвиденное состояние отправило другую ее часть в бесконечный цикл. Критические системы безопасности должны быть максимально простыми .
user253751
1
@immibis Это плохой дизайн и спецификация, не присущие процессору. Всегда существует вероятность сбоя в системе, дискретной, FPGA или любой другой. Согласитесь, что неудачные сейфы должны быть максимально простыми, но это не значит, что они должны быть дискретными.
awjlogan
5
@immibis Дискретная логика становится менее надежной, чем микроконтроллеры после определенного размера конструкции из-за одних только дефектов пайки. И если дискретная логика включает триггеры, у вас в конечном итоге возникает та же проблема с запрещенными состояниями системы, что и в программном обеспечении.
Дмитрий Григорьев
4
Дискретные части могут действовать более предсказуемо в случае ошибки ...
rackandboneman
4

Я должен признать, что всякий раз, когда мне приходится делать некоторую сложную комбинаторную логику и некоторые таймеры, я вообще не беспокоюсь о дискретной логике, а всегда пишу минимальную программу на ассемблере для ATtiny (используйте PIC, если вам это нравится больше).

Комбинаторная логика состоит максимум из 20 строк ассемблера (несколько таблиц поиска). Каждый программный таймер добавляет еще 10 строк. Аппаратные таймеры еще меньше. Вы даже получите преимущество от наличия на плате аналого-цифрового преобразователя Comparator поколения PWM, если он вам понадобится.

Единственным недостатком является то, что вы должны были прошить эту часть. Иногда это шоу-стопор, но это редко так. Большим преимуществом является то, что вам нужно гораздо меньше места на плате, маршрутизация намного проще, и вы можете легко изменить логические функции, если это необходимо.


Оставшийся вариант использования для отдельных логических ИС - это когда все должно работать быстрее, чем 1 мкс.

Янка
источник
Немного не по теме, но детали ATTiny x17 / x16 имеют две встроенные 3-входные LUT. Очень удобно!
awjlogan
4

В конечном продукте - вероятно, не так много преимуществ для дискретной логики, если речь идет о потребительском устройстве. Исключениями может быть что-то, что должно быть очень устойчивым к неблагоприятным условиям или очень легко полностью охарактеризовать (реальная сложность и потенциал для скрытых ошибок гораздо выше при использовании какой-либо прошивки) или что вы хотите иметь возможность строить заново из очень похожие детали на десятилетия вперед (74xx следы меняются очень-очень медленно, даже если меняются буквенные обозначения технологии :)).

Что-то, что вы можете сделать лучше с дискретными данными, - это самосинхронная, асинхронная логика (завершение одной вещи немедленно вызывает другую вещь). Законность таких замыслов - тема священной войны. Не волнуйтесь, синхронные люди захотят побить вас, но вы просто должны забрать их часы, они будут бессмысленно ждать этого вечно.

Когда дело доходит до методологии проектирования, я бы сказал, что это зависит от предпочтительного стиля дизайнера - устройства CPLD, которое вы могли бы буквально перемонтировать вживую («давайте прикоснемся к этому проводу до контактов, пока что-то не защелкнется»), в режиме ratsnest и при питании от главного компьютера (с симулированными искрами при касании провода к контакту, желательно, просто для окружения), безусловно, понравятся люди, предпочитающие дискретную логику :)

rackandboneman
источник