Двухлинейный полный сумматор (на элементах НЕ, исключающий ИЛИ, эл. ключ).
На анимации симуляции работающий полный сумматор из двух параллельных линий - одной переноса, и другой - суммирования. Удалил предыдущую запись, так как то что там было - не совсем нормально было. Приношу извнинения за предыдущие версии две (одна из тутошней удалённой записи, и из записи с её прототипом). Этот сумматор пройдёт тестирование на скорость с традиционными, для сравнения. Не берусь утверждать, что это хороший или лучше, но опыт будет интересный. Сначала мне показалось что свои сумматоры лучше, но потом понял что делаю не совсем хорошие вещи, и пришлось поработать ещё вечер над сумматором, этот вроде как выглядит получше, назову его "двухлинейным"... вроде не противоречит. Код в структурном стиле описания на Verilog Код:
module summator (input intransfer, term2, term1, output outtransfer, mresult); wire wi1; // line 1 xor x1(XORout,intransfer,term2); not n1(NOTout, XORout); bufif1 bf1(outtransfer, term2, NOTout); bufif1 bf2(outtransfer, term1, XORout); // line 2 xor x2(XORout1,term2,term1); not n2(NOTout2, intransfer); bufif1 bf3(mresult, XORout1, NOTout2); not n3(NOTout3, XORout1); bufif1 bf4(mresult, NOTout3, intransfer); endmodule Цитата:
Примитивы ключей
В Verilog используются шесть различных примитивов переключателей (модели транзисторов... За предыдущие версии прошу понять и простить, причём понять нужно эту, а простить предыдущие. Для сравнения прилагаю сумматор простейший, он же традиционный, практически стандартный. И ещё один - тоже не мой. Могу предположить, что мой может оказаться быстрее почти в два раза, так как разделён на параллельные линии и не имеет двух последовательных. и могу предположить, что мой можно оптимизировать, но это требует уже теоретической части именно по сумматорам и логике, меня пока устроит преимущество в два раза, ну или близкое к оному. Ожидал кучу гадостей в комментах, но не тут а на Хабре, или ещё где, ну ладно, пока нет, но думаю что на Хабре обязательно чего нибудь напишут сторонники всего идеального. |
Всего комментариев 4
Комментарии
-
Код стал выглядеть намного лучше и компилируется без предупреждений, в отличии от версии с удалённой записи
Код:module summator (input intransfer, term2, term1, output outtransfer, mresult); wire wi1; xor x1(XORout,intransfer,term2); not n1(NOTout, XORout); bufif1 bf1(outtransfer, term2, NOTout); bufif1 bf2(outtransfer, term1, XORout); xor x2(XORout1,term2,term1); not n2(NOTout2, intransfer); bufif1 bf3(mresult, XORout1, NOTout2); not n3(NOTout3, XORout1); bufif1 bf4(mresult, NOTout3, intransfer); endmodule
Запись от Hrethgir размещена 22.11.2024 в 05:34
Обновил(-а) Hrethgir 22.11.2024 в 22:19 -
Интересно, разговаривал на работе с мужиком - он типа тоже увлекается техникой, начали с фильмов, потом объяснил почему не слежу за новостями НФ и всяких теорий, и показал ему сумматор этот. Он мне говорит - это надо профессору показать, а так типа это ничего. Так такое-же ничего и показ профессору, так как у всех чиновников дети обучаются на Западе, и уверен они там в IT аж так и прут, а моя тема - всё западное IT перечёркивает, а профессор - лицо официальное, и делать будет только то, что ему кажут чины. Поэтому я считаю, что это так и останется борьбой в одного. И это нормальнее скорее всего, чем угождать или заискивать, или как минимум - чем быть обманутым. Единственный недостаток - отнимает много сил и времени, так как на это уходит всё свободное время, за исключением одного часа в день, правда уже пол-часа (момент достаточно ответственный), на пару каток в ранги корабельные. Не катай в ранги - мозги вообще закиснут, тем более я на киберспорте давно, тридцать лет назад мне правда и так хватало 30 минут в день, но в анрил, и уровень сложности ботов стоял по сложности перед божественным - этого хватало чтобы пол-часа обтекать потом, побеждать, но больше не запускать игру в этот день, вспоминая её как какой-то кошмар, но возвращаясь к ней изо дня в день, именно с целью заставить работать мозг, потому что на работе есть всё для его полной деградации (узнавать что-то новое в одной теме, не означает развиваться или совершенствоваться - это можно так же назвать и деградацией, если развитие не общее). Поэтому знаю точно - меньше чем пол-часа в день катать вряд-ли когда стану. И вряд-ли в чьей помощи нуждаюсь, так как всё получается сделать самому. Всё вполне рабочее.
Запись от Hrethgir размещена 23.11.2024 в 17:38
Обновил(-а) Hrethgir 23.11.2024 в 19:32 -
Не успел провести тестбенчи вчера вечером. Модули всех трёх сумматоров готовы и вообще все готово, но у меня были рабочие выходные -1, но даже так я успевал, проблема возникла при проведении тестбенчей, точнее при попытке их провести - обнаружился новый ббаг Gowin EDA, не менее шикарный и почти того же характера, только проявляющий себя при компиляции уже, поэтому причина вроде как понятна и как её обойти. Сегодня вечером может сделаю, должен сделать, так как исправить всё дело минутное, если я правильно конечно понимаю причину проблемы.
Запись от Hrethgir размещена 25.11.2024 в 05:45 -
Запись от Hrethgir размещена 25.11.2024 в 22:38