Comments 4
Изобретательство - хорошо, но лично мне куда больше импонирует GALA-подход: отдельно строим схему управления, в данном случае это будет закольцованный пайплайн из 3х элементов (меньше нельзя), скажем на основе ячеек Давида, или лучше - двувходовых С-элементов с инвертором в обратной связи. А управлять эта схема будет всего лишь одним клеточным автоматом, состоящим из RS защелки с отсечкой, и выходы которого замкнуты на входы. Получится автомат, считающий в логическом времени: 01-10-01 где '-' надо заменить на спейсер 00 или 11, в зависимости от типа защелки. Ну и добавить индикацию окончания переходных процессов в автомате. Вот и все. Просто по кирпичикам (базируясь на теореме Маллера о соединении полумодулярных схем - если правильно помню название) построили автомат. Который можно наращивать как угодно с помощью перекрестного преобразования из обычных не-самосинхронных логических схем. Чем и хорош GALA-подход, он получился более технологичным, поскольку можно писать на языках высокого уровня типа верилога, и использовать современные синтезаторы. Жаль, что это все уже (или пока еще?) не актуально.
Спасибо за конструктивный комментарий.
Синтез цифровых схем имеет много методов,- это как изобразительное искусство - рисовать можно разными красками, карандашами, мелками - важен результат. И если в искусстве результатом может считаться и испачканный лист бумаги или даже размалеванная стена,- в технике основной критерий - выполнение спроектированным устройством заданных функций.
В свое время основными параметрами для сравнения полученных результатов синтеза были быстродействие и сложность полученного устройства, сейчас это видимо стало не актуально и предложенный комментатором метод, наверное, имеет право на существование.
В сущности, изложенный в статье способ построения pipelint счетчика опирается на те же основания, но использует их, так сказать, на "молекулярном" уровне.
Я не думаю, что изменились параметры для сравнения: по прежнему имеет смысл вылизывать дизайн, к примеру, отдельных элементов библиотеки. Но и время на разработку должно укладываться в разумные рамки, отсюда обязательное использование и библиотек, и тулов - в ущерб остальному. Для больших дизайнов, конечно.
В данном же случае один разряд счетчика можно считать элементом библиотеки, и изобретательский подход оправдан, однако если говорить, к примеру, о 16три разрядном счетчике со сбросом, загрузкой и т.д., то приемлемые сроки уже можно достичь только "строя из кирпичиков".
В принципе, частные решения тоже получили некоторую автоматизацию, и скажем так -верификацию. У Вас это совсем не затронуто, хотя решению уже лет 30: проверять полученную схему на основе анализа сигнального графа с помощью тулов, таких как Petrify. 10 лет назад, по совпадению, я описывал это на примере практически такого же счетчика, взятого то ли из патента, то ли из книг: https://habr.com/ru/articles/306056/ В этой публикации важно то, что возможности тулов ограничены примерно 50 вершинами графа. А как это вручную проверять, строить куб, я даже не представляю. Слишком сложно.
Приведенный вами счетный триггер хорошо известен еще по популярной в свое время книге Микроэлектронные схемы цифровых устройств - Букреев И.Н., Горячев В.И., Мансуров Б.М. - 2009, а в книге Автоматное управление асинхронными процессами в ЭВМ и дискретных системах, показано как с помощью всего лишь одного элемента И-НЕ превратить эту схему в полумодулярную,- факт принадлежности ее этому классу и исследуется в вашей статье. И конечно используя известные способы соединения таких схем (в т.ч. и теорему Маллера) можно получить многоразрядный счетчик обладающий такими же свойствами, но с последовательным или параллельным переносом.
В данной статье рассматривалось построение pipeline счетчика, где перенос обрабатывается по принципу конвейера. В последней из указанных книг приведены примеры таких счетчиков в т.ч. и на основе понравившегося вам известного триггера, но, очевидно за недостатком места не объяснено, как они получены. Именно на этот вопрос я и попытался ответить в своей статье и на счастье получилась схема неизвестная раньше. В противном случае эта статья не увидела бы свет.
Pipeline счетчик