Форум программистов, компьютерный форум, киберфорум
Hrethgir
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Двухлинейный полный сумматор (на элементах НЕ, исключающий ИЛИ, эл. ключ).

Запись от Hrethgir размещена 21.11.2024 в 20:23
Обновил(-а) Hrethgir 24.11.2024 в 00:02

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

Удалил предыдущую запись, так как то что там было - не совсем нормально было. Приношу извнинения за предыдущие версии две (одна из тутошней удалённой записи, и из записи с её прототипом).



Этот сумматор пройдёт тестирование на скорость с традиционными, для сравнения. Не берусь утверждать, что это хороший или лучше, но опыт будет интересный. Сначала мне показалось что свои сумматоры лучше, но потом понял что делаю не совсем хорошие вещи, и пришлось поработать ещё вечер над сумматором, этот вроде как выглядит получше, назову его "двухлинейным"... вроде не противоречит.
Код в структурном стиле описания на 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
Даже если примитив bufif1 тяжёл, что вряд-ли, потому что не может быть получен посредством базовых логических у которых допустимых состояний сигнала только два - сигнал нуля и сигнал единицы,,, то позднее я заменю его электронным ключом - у него точно такая-же таблица истинности и функция
Цитата:
Примитивы ключей
В Verilog используются шесть различных примитивов переключателей (модели транзисторов...
Про традиционные ничего писать не стану и впредь, кроме тестбенчей.


За предыдущие версии прошу понять и простить, причём понять нужно эту, а простить предыдущие.

Для сравнения прилагаю сумматор простейший, он же традиционный, практически стандартный.
И ещё один - тоже не мой.
Могу предположить, что мой может оказаться быстрее почти в два раза, так как разделён на параллельные линии и не имеет двух последовательных. и могу предположить, что мой можно оптимизировать, но это требует уже теоретической части именно по сумматорам и логике, меня пока устроит преимущество в два раза, ну или близкое к оному.
Ожидал кучу гадостей в комментах, но не тут а на Хабре, или ещё где, ну ладно, пока нет, но думаю что на Хабре обязательно чего нибудь напишут сторонники всего идеального.
Миниатюры
Нажмите на изображение для увеличения
Название: Peek 2024-11-21 22-48.gif
Просмотров: 317
Размер:	100.9 Кб
ID:	9051   Нажмите на изображение для увеличения
Название: Screenshot from 2024-11-21 23-08-31.png
Просмотров: 53
Размер:	254.3 Кб
ID:	9052   Нажмите на изображение для увеличения
Название: Screenshot from 2024-11-23 20-05-17.png
Просмотров: 165
Размер:	26.2 Кб
ID:	9053  

Размещено в Без категории
Показов 918 Комментарии 4
Всего комментариев 4
Комментарии
  1. Старый комментарий
    Аватар для Hrethgir
    Код стал выглядеть намного лучше и компилируется без предупреждений, в отличии от версии с удалённой записи
    Код:
    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
    Стоит учесть, что после каждого XOR идёт отдельная параллельная линия, так что можно смело сказать, что этот сумматор почти в два раза короче цепи обычного. На теоретические отступления просто банально не хватает времени.
    Запись от Hrethgir размещена 22.11.2024 в 05:34 Hrethgir вне форума
    Обновил(-а) Hrethgir 22.11.2024 в 22:19
  2. Старый комментарий
    Аватар для Hrethgir
    Интересно, разговаривал на работе с мужиком - он типа тоже увлекается техникой, начали с фильмов, потом объяснил почему не слежу за новостями НФ и всяких теорий, и показал ему сумматор этот. Он мне говорит - это надо профессору показать, а так типа это ничего. Так такое-же ничего и показ профессору, так как у всех чиновников дети обучаются на Западе, и уверен они там в IT аж так и прут, а моя тема - всё западное IT перечёркивает, а профессор - лицо официальное, и делать будет только то, что ему кажут чины. Поэтому я считаю, что это так и останется борьбой в одного. И это нормальнее скорее всего, чем угождать или заискивать, или как минимум - чем быть обманутым. Единственный недостаток - отнимает много сил и времени, так как на это уходит всё свободное время, за исключением одного часа в день, правда уже пол-часа (момент достаточно ответственный), на пару каток в ранги корабельные. Не катай в ранги - мозги вообще закиснут, тем более я на киберспорте давно, тридцать лет назад мне правда и так хватало 30 минут в день, но в анрил, и уровень сложности ботов стоял по сложности перед божественным - этого хватало чтобы пол-часа обтекать потом, побеждать, но больше не запускать игру в этот день, вспоминая её как какой-то кошмар, но возвращаясь к ней изо дня в день, именно с целью заставить работать мозг, потому что на работе есть всё для его полной деградации (узнавать что-то новое в одной теме, не означает развиваться или совершенствоваться - это можно так же назвать и деградацией, если развитие не общее). Поэтому знаю точно - меньше чем пол-часа в день катать вряд-ли когда стану. И вряд-ли в чьей помощи нуждаюсь, так как всё получается сделать самому. Всё вполне рабочее.
    Запись от Hrethgir размещена 23.11.2024 в 17:38 Hrethgir вне форума
    Обновил(-а) Hrethgir 23.11.2024 в 19:32
  3. Старый комментарий
    Аватар для Hrethgir
    Не успел провести тестбенчи вчера вечером. Модули всех трёх сумматоров готовы и вообще все готово, но у меня были рабочие выходные -1, но даже так я успевал, проблема возникла при проведении тестбенчей, точнее при попытке их провести - обнаружился новый ббаг Gowin EDA, не менее шикарный и почти того же характера, только проявляющий себя при компиляции уже, поэтому причина вроде как понятна и как её обойти. Сегодня вечером может сделаю, должен сделать, так как исправить всё дело минутное, если я правильно конечно понимаю причину проблемы.
    Запись от Hrethgir размещена 25.11.2024 в 05:45 Hrethgir вне форума
  4. Старый комментарий
    Аватар для Hrethgir
    Это проблема. Мои 700 последовательно подключенных сумматоров на семь действий расключенные проводами срабатывают быстрее чем за один такт 2.7 ГГц. Сейчас попробую чужие. Всё что мне нужно - закомментировать свой и попробовать чужой, первый будет паравозоподобный.
    Запись от Hrethgir размещена 25.11.2024 в 22:38 Hrethgir вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru