Сумматор

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ต.ค. 2024
  • Разбираем работу компонента под названием сумматор, который может принимать на вход три значения и складывать их. Строим схему его работы и изучаем реализацию сумматора, собранную на макетной плате из базовых логических вентилей.

ความคิดเห็น • 20

  • @juliaryabchikova9593
    @juliaryabchikova9593 3 ปีที่แล้ว +6

    Очень интересно, для лучшего понимания пересмотрели несколько раз

  • @elyasd495
    @elyasd495 4 หลายเดือนก่อน

    Собираю полный однобитный сумматор на транзисторе и двух типах резисторов.
    Посмотрев это видео понял всю его работу.

  • @gulfstream1800
    @gulfstream1800 ปีที่แล้ว

    Прошел все видео, сейчас собираю сумматор, спасибо

  • @gulfstream1800
    @gulfstream1800 ปีที่แล้ว

    Сегодня собрал свой сумматор, не самый оптимальный, из 5 XOR и 1 AND. Смотрю, кайфую с решения автора.

    • @АлишерТашматов-п5й
      @АлишерТашматов-п5й หลายเดือนก่อน

      Можно использовать карту Карно для минимизации схемы

  • @hunter-speexz
    @hunter-speexz 2 ปีที่แล้ว +1

    Тут кстати можно логически вывести схему исходя из того, как на самом деле происходит суммирование. Можно представить, что сумматор последовательно выполняет следующие действия, а именно он суммирует сначала A и B, потом ещё суммирует с входящим C и при складывании учитывает флаги переноса:
    1) Сначала он складывает A и B (s1=A⊕B) и вычиляет значение флага переноса (c1=A&B).
    2) Затем он складывает получившееся значение из пункта 1 с входным Cвх (S=s1⊕Cвх). В итоге у нас получается значение S. Тут также вычисляем значение флага переноса (с2=s1&Свх).
    3) Объединяем флаги переноса из пунктов 1 и 2 и получаем Cout (Сout=c1ǀǀc2).
    В итоге получаем ту же самую схему, что и в видео.

    • @gulfstream1800
      @gulfstream1800 ปีที่แล้ว

      Хорошее объяснение, спасибо.

    • @ВладимирНиколаевич-ь4о
      @ВладимирНиколаевич-ь4о 24 วันที่ผ่านมา

      Черт, я только что такой же комментарий написал, с объяснениями 🤦‍♂️ Нужно сначала комментарии читать.
      Ну, у меня, вроде, чуть больше деталей, в частности о том почему там OR а не еще один полусумматор, так что наверное кому то будет полезен.

  • @ацетон-з8ч
    @ацетон-з8ч 3 ปีที่แล้ว +2

    Светодиоды всегда нужно подключать с резисторами, потому что он всегда будет потреблять тока больше, чем ему нужно и таким образом, даже если он не сгорел сейчас, то через некоторое время сгорит, если использовать его без резистора

  • @patssport9174
    @patssport9174 4 ปีที่แล้ว +4

    Предлагаю собирать схемы онлайн, так будет нагляднее. Мы видим результат, а его сложно сразу воспринять и повторить. Пожалуйста, сразу поясняйте, где и для чего используется конкретная схема, чтобы люди понимали, что в конечном итоге дадут все получаемые знания.

  • @ВладимирНиколаевич-ь4о
    @ВладимирНиколаевич-ь4о 24 วันที่ผ่านมา

    На самом деле все сильно проще и можно обойтись вообще без таблиц истинности. Первое что нужно понять - зачем это вообще нужно. Ответ - чтобы вычислять сумму многоразрядных чисел с помощью поразрядного сложения, так же как и в школе. Пусть p=a+b, где a, b - многоразрядные числа длиной n разрядов, p - их сумма, тоже n разрядов. Каждый разряд p будет вычисляться по правилу
    p[i] = (a[i] + b[i]) + c[i]
    Вот это действие выполняет полный сумматор. При этом, нам нужно вычислить 2 суммы одноразрядных чисел. Значит, нам нужна функция/схема, которая умеет складывать 2 одноразрядных (однобитных) числа - это наш полусумматор.
    Эта функция возвращает уже 2-разрядное число или, можно считать, что 2 одноразрядных числа - цифру d (младший разряд суммы) и перенос разряда в старший разряд (старший разряд суммы)
    half_adder(a, b) - > (c, d):
    с = a AND b
    d = a XOR b
    После вычисления первой суммы нам нужно сложить вот это уже 2-битное число результата с 1-битным числом переноса разряда - вторая сумма. А для этого нужно
    1) сложить их младшие разряды, взять перенос этой суммы
    2) сложить старшие разряды; при этом у второго числа тут 0 (оно ж у нас одноразрядное, помните), но из п.1 может прилететь перенос, значит вот что нужно сделать на этом шаге: сложить старший разряд первого числа с переносом из п. 1
    Получается вот такая реализация полного сумматора:
    func full_adder(a, b, c_in) -> (c_out, d_out) :
    1) c1, d1 := half_adder(a, b)
    2) c2, d2 := half_adder(d1, c_in)
    3) c3, d3 := half_adder(c1, c2)
    d_out := d2
    c_out := d3
    return (c_out, d_out)
    Здесь можно заметить что
    1) в 3-м полусумматоре мы не используем вычисленное значение переноса c3 (это значение всегда будет 0,можете проверить по таблицам истинности в видео) а значит от этого полусумматора нам нужна только половина, та которая вычисляет d, то есть, вот эта часть d = a XOR b
    2) c1 и с2 никогда совместно не принимают значение 1, можно проверить по таблицам истинности, но, вообще это свойство двоичной системы счисления), значит XOR для таких значений превращается в OR (таблица истинности для XOR и OR отличается лишь для аргументов 1 и 1).
    Значит вызов 3) превращается в
    3) d3 = c1 OR c2
    Вот и весь полный сумматор.
    Как теперь с помощью этого сумматора решить исходную задачу, сложение многоразрядных чисел? Для 8-битных чисел :
    func add_8b(a, b, c_in) -> (c_out, p) :
    c_0, d_0 := full_adder(a[0], b[0], c_in)
    p[0] := d_0
    c_1, d_1 := full_adder(a[1], b[1], c_0)
    p[1] := d_1
    ...
    c_7, d_7 := full_adder(a[7], b[7], c_6)
    p[7] := d_7
    c_out := c_7
    То есть, для вычисления каждого разряда результата нужен отдельный аппаратный сумматор, они соединены в цепочку. Более того, квждый сумматор не может начать вычислять разряд, пока не получил перенос от предыдущего сумматора. И это печально, потому что процесс становится сугубо последовательным. Для того чтобы это улучшить, есть отдельные схемы формирования ускоренного переноса.
    В реальных процессорах (точнее их АЛУ) c_in=0, значит первый полный сумматор можно заменить на полусумматор. А c_out = 1 сигнализирует об ошибке - арифметическое переполнение, вылезли за границу разрядной сетки.

  • @demid_php5337
    @demid_php5337 4 ปีที่แล้ว +3

    А как микросхемы называются, и принципиальную схему скачать можно???

  • @gamespro453
    @gamespro453 2 ปีที่แล้ว

    спасибо большое за обучение, жаль что новых видосов больше нет...Хотел спросить ещё марку провода который используете на макетной плате,провод тонкий а изоляция толстая.

    • @BitFlipChannel
      @BitFlipChannel  2 ปีที่แล้ว +5

      Использую одножильный провод калибра 22 AWG. Можно найти на AliExpress.

  • @Bezdarnyi_Master
    @Bezdarnyi_Master ปีที่แล้ว

    да, схему лучше было бы собрать при нас)) было бы нагляднее и понятнее, а времени ушло бы не намного больше, чем на разъяснение постфактум. Спасибо за урок

  • @Tony_Limitless
    @Tony_Limitless 2 ปีที่แล้ว

    Жирный лайк

  • @maslov3760
    @maslov3760 ปีที่แล้ว

    Какие диоды стоят?

  • @maslov3760
    @maslov3760 ปีที่แล้ว

    Схему можно элементов?

  • @ХатинМаликов
    @ХатинМаликов ปีที่แล้ว

    Прожег палец паяльником.