Я ж говорил, что натяжение на куб - процедура болезненная, т.к. используется тот же принцип, что и в картах Карно: показываются только переходы в соседние состояния. Остальные (если они есть) подразумеваются, но не показываются, что бы не усложнять рисунок.
Приведенная вами диаграмма не полумодулярна относительно состояний 000 и 111, т.к в них возбуждены все три выхода, а при переходе в любое рабочее состояние (- 1 возбуждение) остается возбужденным только 1 выход, следовательно еще 1 возбужденный стал устойчивым не поменяв своего значения. Не полумодулярность этой схемы доказанный факт, не зависимо от источника, откуда она срисована.
Про симуляцию я ничего возразить не могу, могу только посоветовать, если нельзя симулировать абстрактные логические элементы имеющие задержку, попробуйте вместо КМОП симулировать ТТЛ. Дорогу осилит идущий. Или не осилит.
Да, интересно было бы посмотреть обсуждаемую осцилляцию на симуляторе. А не получилось, конечно, не из-за соотношения вероятностей переходов, а либо из-за некорректного задания начальных условий моделирования, либо из-за некорректного алгоритма работы симулятора. Например, если при обработке очередного временного среза, симулятор вычисляет значение выходов элементов модели последовательно и при этом для каждого следующего использует не параметры на начало среза, а актуальные, т.е. с учетом уже вычисленных.
В начале карьеры я наблюдал обсуждаемую осцилляцию на электронном макете, правда последовательно с каждым из трех ТТЛ инверторов были включены линии задержки, но не RC, а какие-то электромагнитные, дающие задержку в миллисекундном диапазоне с большой точностью.
Хочу обратить внимание комментатора насколько симпатичней выглядит приведенный им граф переходов, если его натянуть на координатный куб (см. рис.1 статьи). Эта косметическая операция может и болезненная, но явно не бесполезная.
Когда еще сам чего-то паял (пол века назад) - это был ТТЛ и никаких проблем, типа описанных вами, не наблюдалось. С КМОП я имел дело чисто теоретически и поэтому ничего вразумительного по их поводу не сообщу, хотя некоторые мои схемы на КМОП защищены АС СССР.
Что касается отношения к самосинхронным схемам, то мое - совпадает с вашим и я их на данном этапе рассматриваю только как объекты для хобби, ну как другие хоббисты - простые числа, например. Хотя проблема подсчета количества этих объектов меня интересовала всегда.
В статье Последовательные схемы ч.3 рассматривается схемы для n=2, как композиция двух схем n=1. В Алгебре асинхронных схем рассматриваются операции объединения и пересечения, которые условно можно считать композиционными, но они не гарантируют что результат будет обладать заданными свойствами (дистрибутивность, например). Да и для поставленной задачи подсчета схем это (в смысле, композиция) бесполезно.
Вы демонстрируете недюжинные познания в программировании - я даже использованные вами термины не понимаю, но для n=3 поставленная задача на домашнем компьютере решается за несколько секунд, без сложных приемов, а при n=4 и предложенные вами ухищрения, думаю, бесполезны. Хотя никому не возбраняется попробовать. Что касается предлагаемой вами композиции, то в статьях "Последовательные схемы" из песочницы этот прием уже использован и проиллюстрирован. Ничего, кроме понимания устройства конкретных схем он не дает и для расчётов бесполезен. В обсуждаемых же статьях, автора интересовал только подсчет схем и поставленная задача, признайте, решена.
И маленькое замечание - Алгебра асинхронных схем тоже оперирует со схемами одной размерности, т. ч. ваш совет выдает ваше незнание предмета вашего суждения.
Еще раз напомню, что в статье рассматривается не синтез или композиция схем из логических элементов, а пересчет все существующих схем содержащих ровно n таких элементов. Этот процесс детализирован для схем различных классов, которые приняты в этой области знаний, а не придуманы автором.
В статьях оговорено, что указанные свойства (полумодулярнойсть, дистрибутивность, etc) проверяется для всех 2^n состояний схемы, поэтому, какое состояние не назови начальным, схема свой класс не поменяет. Кроме того в вашем вопрос закралась неточность - дистрибутивные схемы полумодулярны по определению - имеет место иерархия вложенности классов.
Вот наконец-то вопрос, свидетельствующий о понимании сути. Действительно, если схема задана на всех возможных состояниях, то выбор начального состояния - прихоть пользователя. Хотя если диаграмма имеет тупиковые состояния, то их выбор в качестве начального не может показаться неоправданным. Но возвращаясь к смыслу статей - они посвящены подсчету схем того или иного класса, а не их семантике, которая-то и определяет выбор начального состояния.
Более того на основе этого под руководством В.И. Варшавского была разработана система автоматического анализа схемы на полумодулярность успешно проработавшая много лет. Но никто и никогда не применял эту систему для подсчета таких схем, вероятно и в силу ее неэффективности. Одно дело за несколько секунд проверить одну схему, и совсем иное - несколько миллионов. Даже те упрощенные алгоритмы, что предложены авторы позволяют решить эту проблему только для n<4.
Вообще говоря минимизация эквивалентное преобразование, т.е. не должна влиять на поведение схемы, т.ч. ваше умозаключение лишено логики. А кроме того, я не могу обсуждать то, что выходит за рамки сделанных в статье предположений, а именно схемы подсчитываются схемы принадлежащие тому или иному классу для всех состояний. Т.о. схемы полностью определены и никаких don't care не имеют. Вопросы синтеза схем не рассматриваются.
Имеется в виду чтобы в рабочих состояниях схема вела себя как исходная. Да, всегда. Один способ сделать критические состояния тупиковыми мы обсуждали, другой - задать им переход в соседнее рабочее состояние или определить цепочку таких переходов. Одним транзистором тут, конечно, уже не обойтись
Кольцо из трех элементов, даже если это классические С элементы с одним инвертором на одном из двух входов перестает быть пайплайном. Вообще говоря пайплайн это не устройство, а принцип его функционирования. Кроме того есть и другие способы доопределения схемы в состояниях 000 и 111, которые делают распределитель последовательным относительно и этих состояний.
Кольцо из трех инверторов не является последовательной схемой (и даже полумодулярной) относительно состояний 000 и 111. Можно их, конечно, игнорировать, но я уже много раз говорил, что подсчитываю схемы последовательные, дистрибутивные и полумодулярные относительно всех 2**n состояний.
Ну и последнее - с учетом входов установки схема перестает быть такой уж компактной. Тем более, что я-то изучаю схемы без внешних входов.
Не надо требовать от математической модели всеядности. Она (модель) на это не претендует. А если принять эти не раз оговоренные ограничения модели, то и спорить не о чем.
Что такое ненадежное функционирование объясняется в статье, ссылку на которую я привел в предыдущем ответе. Что такое монструозность (в простоте - избыточность) транзисторной реализации И-НЕ поясняется на примере статьи "Распознавание цифровых схем...", которая вам наверняка известна. Никакого моего метода синтеза схем в моей статье нет - я только считаю количество схем. Пайплан здесь вообще не при чем. Более того - как бы вы не доопределяли схемы генераторов (ведь о них идет речь?) в состояниях 000 и 111 - они все равно остаются схемами, подсчитаны предложенными алгоритмами и отнесены к классу, соответствующему их поведению на всем множестве (2**n) состояний.
Да вы правы, за повышение качества схемы приходится платить ее сложностью. С другой стороны использование чистого базиса, например И-НЕ обеспечивает "критические" состояния, которые, как показано в статье"Последовательные схемы ч.4", делают ненадежным ее функционирование. Да и сами элементы И-НЕ, если посмотреть их транзисторную реализацию выглядят достаточно монструозно и их использование это просто дань традиции.
Я ж говорил, что натяжение на куб - процедура болезненная, т.к. используется тот же принцип, что и в картах Карно: показываются только переходы в соседние состояния. Остальные (если они есть) подразумеваются, но не показываются, что бы не усложнять рисунок.
Приведенная вами диаграмма не полумодулярна относительно состояний 000 и 111, т.к в них возбуждены все три выхода, а при переходе в любое рабочее состояние (- 1 возбуждение) остается возбужденным только 1 выход, следовательно еще 1 возбужденный стал устойчивым не поменяв своего значения. Не полумодулярность этой схемы доказанный факт, не зависимо от источника, откуда она срисована.
Про симуляцию я ничего возразить не могу, могу только посоветовать, если нельзя симулировать абстрактные логические элементы имеющие задержку, попробуйте вместо КМОП симулировать ТТЛ. Дорогу осилит идущий. Или не осилит.
Да, интересно было бы посмотреть обсуждаемую осцилляцию на симуляторе. А не получилось, конечно, не из-за соотношения вероятностей переходов, а либо из-за некорректного задания начальных условий моделирования, либо из-за некорректного алгоритма работы симулятора. Например, если при обработке очередного временного среза, симулятор вычисляет значение выходов элементов модели последовательно и при этом для каждого следующего использует не параметры на начало среза, а актуальные, т.е. с учетом уже вычисленных.
В начале карьеры я наблюдал обсуждаемую осцилляцию на электронном макете, правда последовательно с каждым из трех ТТЛ инверторов были включены линии задержки, но не RC, а какие-то электромагнитные, дающие задержку в миллисекундном диапазоне с большой точностью.
Хочу обратить внимание комментатора насколько симпатичней выглядит приведенный им граф переходов, если его натянуть на координатный куб (см. рис.1 статьи). Эта косметическая операция может и болезненная, но явно не бесполезная.
Спасибо за интересный комментарий!
Когда еще сам чего-то паял (пол века назад) - это был ТТЛ и никаких проблем, типа описанных вами, не наблюдалось. С КМОП я имел дело чисто теоретически и поэтому ничего вразумительного по их поводу не сообщу, хотя некоторые мои схемы на КМОП защищены АС СССР.
Что касается отношения к самосинхронным схемам, то мое - совпадает с вашим и я их на данном этапе рассматриваю только как объекты для хобби, ну как другие хоббисты - простые числа, например. Хотя проблема подсчета количества этих объектов меня интересовала всегда.
За комментарий спасибо!
В статье Последовательные схемы ч.3 рассматривается схемы для n=2, как композиция двух схем n=1. В Алгебре асинхронных схем рассматриваются операции объединения и пересечения, которые условно можно считать композиционными, но они не гарантируют что результат будет обладать заданными свойствами (дистрибутивность, например). Да и для поставленной задачи подсчета схем это (в смысле, композиция) бесполезно.
Вы демонстрируете недюжинные познания в программировании - я даже использованные вами термины не понимаю, но для n=3 поставленная задача на домашнем компьютере решается за несколько секунд, без сложных приемов, а при n=4 и предложенные вами ухищрения, думаю, бесполезны. Хотя никому не возбраняется попробовать. Что касается предлагаемой вами композиции, то в статьях "Последовательные схемы" из песочницы этот прием уже использован и проиллюстрирован. Ничего, кроме понимания устройства конкретных схем он не дает и для расчётов бесполезен. В обсуждаемых же статьях, автора интересовал только подсчет схем и поставленная задача, признайте, решена.
И маленькое замечание - Алгебра асинхронных схем тоже оперирует со схемами одной размерности, т. ч. ваш совет выдает ваше незнание предмета вашего суждения.
Еще раз напомню, что в статье рассматривается не синтез или композиция схем из логических элементов, а пересчет все существующих схем содержащих ровно n таких элементов. Этот процесс детализирован для схем различных классов, которые приняты в этой области знаний, а не придуманы автором.
В статьях оговорено, что указанные свойства (полумодулярнойсть, дистрибутивность, etc) проверяется для всех 2^n состояний схемы, поэтому, какое состояние не назови начальным, схема свой класс не поменяет. Кроме того в вашем вопрос закралась неточность - дистрибутивные схемы полумодулярны по определению - имеет место иерархия вложенности классов.
Вот наконец-то вопрос, свидетельствующий о понимании сути. Действительно, если схема задана на всех возможных состояниях, то выбор начального состояния - прихоть пользователя. Хотя если диаграмма имеет тупиковые состояния, то их выбор в качестве начального не может показаться неоправданным. Но возвращаясь к смыслу статей - они посвящены подсчету схем того или иного класса, а не их семантике, которая-то и определяет выбор начального состояния.
Я не настаиваю - я поставил - я решил. Ни кому не возбраняется ставить другие задачи и решать, если сумеет.
Более того на основе этого под руководством В.И. Варшавского была разработана система автоматического анализа схемы на полумодулярность успешно проработавшая много лет. Но никто и никогда не применял эту систему для подсчета таких схем, вероятно и в силу ее неэффективности. Одно дело за несколько секунд проверить одну схему, и совсем иное - несколько миллионов. Даже те упрощенные алгоритмы, что предложены авторы позволяют решить эту проблему только для n<4.
Спасибо, что напомнили.
Не угадали. Да и будет ли статья я еще не знаю.
Спасибо! Я обязательно учту ваши замечания при написании следующей статьи, если таковое случится.
Вообще говоря минимизация эквивалентное преобразование, т.е. не должна влиять на поведение схемы, т.ч. ваше умозаключение лишено логики. А кроме того, я не могу обсуждать то, что выходит за рамки сделанных в статье предположений, а именно схемы подсчитываются схемы принадлежащие тому или иному классу для всех состояний. Т.о. схемы полностью определены и никаких don't care не имеют. Вопросы синтеза схем не рассматриваются.
Имеется в виду чтобы в рабочих состояниях схема вела себя как исходная. Да, всегда. Один способ сделать критические состояния тупиковыми мы обсуждали, другой - задать им переход в соседнее рабочее состояние или определить цепочку таких переходов. Одним транзистором тут, конечно, уже не обойтись
Кольцо из трех элементов, даже если это классические С элементы с одним инвертором на одном из двух входов перестает быть пайплайном. Вообще говоря пайплайн это не устройство, а принцип его функционирования. Кроме того есть и другие способы доопределения схемы в состояниях 000 и 111, которые делают распределитель последовательным относительно и этих состояний.
Кольцо из трех инверторов не является последовательной схемой (и даже полумодулярной) относительно состояний 000 и 111. Можно их, конечно, игнорировать, но я уже много раз говорил, что подсчитываю схемы последовательные, дистрибутивные и полумодулярные относительно всех 2**n состояний.
Ну и последнее - с учетом входов установки схема перестает быть такой уж компактной. Тем более, что я-то изучаю схемы без внешних входов.
Не надо требовать от математической модели всеядности. Она (модель) на это не претендует. А если принять эти не раз оговоренные ограничения модели, то и спорить не о чем.
Что такое ненадежное функционирование объясняется в статье, ссылку на которую я привел в предыдущем ответе. Что такое монструозность (в простоте - избыточность) транзисторной реализации И-НЕ поясняется на примере статьи "Распознавание цифровых схем...", которая вам наверняка известна. Никакого моего метода синтеза схем в моей статье нет - я только считаю количество схем. Пайплан здесь вообще не при чем. Более того - как бы вы не доопределяли схемы генераторов (ведь о них идет речь?) в состояниях 000 и 111 - они все равно остаются схемами, подсчитаны предложенными алгоритмами и отнесены к классу, соответствующему их поведению на всем множестве (2**n) состояний.
Да вы правы, за повышение качества схемы приходится платить ее сложностью. С другой стороны использование чистого базиса, например И-НЕ обеспечивает "критические" состояния, которые, как показано в статье "Последовательные схемы ч.4", делают ненадежным ее функционирование. Да и сами элементы И-НЕ, если посмотреть их транзисторную реализацию выглядят достаточно монструозно и их использование это просто дань традиции.
Интересно было бы узнать, но кто вам мешает?
Наберитесь терпения, мой друг, и все узнаете своевременно или даже раньше.