Ali Aliev, дойная инверсия -- это своеобразный "финт ушами", при помощи которого можно переводить в соответствующий базис. Вы же не просто так её делаете, а с целью потом применить закон де Моргана:
1. не (a и b) = (не a) или (не b)
2. не (a или b) = (не a) и (не b)
Если у вас выражение (a и b), и вы хотите перевести в базис ИЛИ-НЕ, то получается, что вам нужно два раза инвертировать его: не (не (a и b)),
а затем преобразовать по выражению 1: не ((не а) или (не б)).
И это важно понимать.
Другие аксиомы нужны для полной минимизации функции или подгонке её под нужную конфигурацию.
Если у вас функция выражена таблицей на 4, 5 и больше входов, то возможно вам придётся проводить ещё какие-либо манипуляции для получения минимальной функции.
Благо, сейчас такие задачки -- всего лишь тренировка для мозга (очень полезная, кстати), т. к. программы для разработки цифровых схем сами синтезируют нужную схему из HDL-кода, находя её оптимальный вид исходя из настроек синтезатора.
Перевод в базис И-НЕ и ИЛИ-НЕ обусловлен тем, что, во-первых, в этих базисах можно построить любую логическую функцию не применяя других элементов (И, ИЛИ, исключающее ИЛИ или же элементы "противоположного" базиса), во-вторых, такой подход сокращает номенклатуру покупных микросхем, если речь идёт о разработке на дискретной логике, в-третьих, вентили И-НЕ и ИЛИ-НЕ требуют меньше всего транзисторов, из-за чего у них задержка распространения сигнала от входа к выходу минимальна. Хотя два последних пункта сейчас почти не актуальны.
Ali Aliev, да, мало того, что вы тратите лишние вентили, так ещё на каждом вентиле будет задержка. Это не просто "дурной тон" в разработке, это расточительность, которая недопустима.
Ну и сам ход мысли у вас странный -- вы по единичкам строите карту Карно для вывода функции в базисе ИЛИ-НЕ, и из-за этого вам приходится выводить функцию шиворот на выворот, отчего у вас она не минимальна, но как я показал выше, функция в вашем случае выводится в одно действие, построй вы карту по нулям.
Ali Aliev, у вас какой-то бред получился, если честно)
Если бы я принимал задание у вас, то не зачёл, ибо важен ход мысли, а не результат.
Функция должна быть минимальна, а у вас -- огород.
Если вам интересно, то вы сами можете проверить, работает ваша функция -- просто подставляйте занчения входов из таблицы и сравнивайте с таблицей получившейся результат.
Вот схема в симуляторе для базиса И-НЕ, вы можете убедиться, что она работает, сравнив результат с таблицей из примера: https://tinyurl.com/2hqaj36t
Для ИЛИ-НЕ, в принципе, сами сообразите)
gleendo, да.
Т.к. снизу уже вам ответили, скажу немного -- почему так.
Обычно, автоматы делаются на D-триггерах, которые просто защёлкивают состояние на входе по фронту синхросигнала и хранят его до следующего такта. Как можете видеть, состояний в автомате из примера всего три, а выход всего один. Функции S1 и S0 -- это ничто иное, как функции входов для двух триггеров, хранящих 2-битную "переменную" состояния, позволяющуюю закодировать все три состояния. Функция выхода может вообще не касаться отдельных битов значения состояния, а напрямую зависеть только от одного триггера состояния (например, полностью копировать его значение или инвертировать).
Если вы собираетесь изучать какой-нибудь HDL, то такой способ синтеза автоматов не актуален, т. к. автомат обычно описывают через оператор "case", если речь про Verilog.
Описание же сводится к абстракции, и синтезатор сам оптимизирует способы кодирования алфовита состояний и вам незачем писать функции входа для каждого отдельного триггера.
Конечно, вы можете жестко задать логические функции и способ кодирования и тип автомата, но в большинсте случаев, в HDL-описании это излишне.
Холин Олег, Только лучше возьмите оригинальный: falstad.com/circuit/circuitjs.html
Он обновляется раньше, недавно в нём появился линейный стабилизатор и TL431 ну и ещё по-мелочи всякое)
Filipp42, вы бы уже давно собрали и посмотрели, как оно работает)
КТ315 - не тот элемент, который стоило бы жалеть. К тому же, в Китае можно купить штук 100 аналогичных транзисторов за 50 рублей)
То же самое и с ТТЛ-микросхемами -- они сейчас нафиг никому почти не нужны и стоят копейки.
Виктор, и где противоречие?
Многоэмиттерный транзистор заменяет собой транзисторы, чьи коллекторы и базы соединены. В ТТЛ-вентиле можно применить обычные транзисторы, соединив базы и коллекторы. Только в этом нет смысла, если речь идёт про микросхему, где лучше использовать многоэмиттерный транзистор.
Лучше сделайте по той схеме, что я вам показывал в симуляторе. Да, на двухводовой элемент надо три транзистора, зато это будет полноценный ТТЛ-элемент.
Виктор, для ТТЛ вовсе необязательно использовать многоэммитерный транзистор. Многоэммитерные транзисторы в интегральных микросхемах используют скорее для того, чтобы сэкономить место, т. к. вместо двух и более полноценных транзисторов вам надо поставить один, у которого будет одна база, один коллектор и несколько эммитеров.
Filipp42, в базисах И-НЕ или ИЛИ-НЕ можно реализовать любую логическую функцию.
Т. е. имея набор микросхем И-НЕ можно сделать всё что угодно в рамках цифровой схемотехники, точно так же и на ИЛИ-НЕ.
РТЛ и ТТЛ практически идентичны. Проще работать, как я уже сказал, с готовыми микросхемами)
В качестве "учебного" стенда имеет смысл сделать простые ТТЛ вентили на транзисторах.
Filipp42, плата за то, что pn-переход открывается -- это падение напряжения на нём. Падение напряжения на переходе база-эмиттер -- около 0,6 В, как и на любом другом. А теперь посмотрите, что будет на выходе каждого каскада при последовательном подключении трёх таких вентилей, если сигнал снимать с эмитера: https://tinyurl.com/2484aujj
Как видите, напряжение на выходе каждого последующего на 0,6 В меньше, чем на выходе предыдущиего. Далеко с такой "логикой" не уедешь.
Самое оптимальное решение -- делать выходные каскады с общим эмиттером, которые являются простейшими инверторами.
Более того, вы получаете таким образом вентили и-не и или-не, которые позволяют реализовать любую логическую функцию вообще. Отчего логические схемы сводят к одному базису для реализации СДНФ или СКНФ.
Ну это так, навскидку, что могу скзать. Если углубляться, то возможно есть еще куча разных причин, почему так.
Filipp42, если бы вы понимали принцип его работы, то не стали бы задавать такой вопрос))
В такой схеме транзистору точно бояться нечего, если вы её питаете от 5 В. Я же сказал -- соберите, и оно должно работать.
Filipp42, лучше, конечно, понимать, как работает транзистор.
Ну да ладно.
Я мог бы долго расписать и объяснять работу транзистора, но лучше сделайте так: https://tinyurl.com/293acbmr
Заодно можете изучить в симуляторе самомтоятельно, как оно работает. Там на вкладке "схемы", можно перейти в "логические семейства" и посомтреть, как делаются простейшие вентили в различных семействах логики.
Я практически уверен, что с кт315 даже номиналы резисторов менять не придётся.
1. не (a и b) = (не a) или (не b)
2. не (a или b) = (не a) и (не b)
Если у вас выражение (a и b), и вы хотите перевести в базис ИЛИ-НЕ, то получается, что вам нужно два раза инвертировать его: не (не (a и b)),
а затем преобразовать по выражению 1: не ((не а) или (не б)).
И это важно понимать.
Другие аксиомы нужны для полной минимизации функции или подгонке её под нужную конфигурацию.
Если у вас функция выражена таблицей на 4, 5 и больше входов, то возможно вам придётся проводить ещё какие-либо манипуляции для получения минимальной функции.
Благо, сейчас такие задачки -- всего лишь тренировка для мозга (очень полезная, кстати), т. к. программы для разработки цифровых схем сами синтезируют нужную схему из HDL-кода, находя её оптимальный вид исходя из настроек синтезатора.
Перевод в базис И-НЕ и ИЛИ-НЕ обусловлен тем, что, во-первых, в этих базисах можно построить любую логическую функцию не применяя других элементов (И, ИЛИ, исключающее ИЛИ или же элементы "противоположного" базиса), во-вторых, такой подход сокращает номенклатуру покупных микросхем, если речь идёт о разработке на дискретной логике, в-третьих, вентили И-НЕ и ИЛИ-НЕ требуют меньше всего транзисторов, из-за чего у них задержка распространения сигнала от входа к выходу минимальна. Хотя два последних пункта сейчас почти не актуальны.