> Часть I
> Часть II

Во второй части спроектируем устройства, представленные в первой части, на микросхемах малой степени интеграции, а также в Verilog'е. Спроектируем схему, позволяющую складывать четырехразрядные числа. Нам понадобятся сумматор и аккумулятор.

Рассмотрим, как работает сумматор на примере микросхемы 155им3 (зарубежный аналог 7483). Для микросхем 155-й серии условимся, что на входах есть внутренний резистор, подтягивающий к плюсу (если ножка «висит в воздухе», то на ней присутствует логическая «единица»), поэтому при подключении питания на микросхему зажгутся все 5 светодиодов, присоединенных к выходу.

image

Так выглядит модель микросхемы в Logisim.

image

Для того, чтобы в Logisim спроектировать такую микросхему, необходимо выбрать «Меню» — «Проект» — «Добавить схему».

Вот как эта МС выглядит внутри подсхемы.

image


В качестве аккумулятора будем использовать микросхему 155тм8 (74175) — счетверённый D-триггер.

Триггеры, входящие в состав МС, пропускают насквозь всё время, пока на входе синхронизации присутствует 1, а не только по фронту (триггеры со статическим управлением), но в программе Logisim нам доступны только триггеры с динамическим управлением, но в данном случае это не важно; будем использовать то, что есть.

Подробнее про триггеры можно прочитать в Википедии.

Соберём из D-триггеров модель МС 155тм8.

image

Далее соберём схему, позволяющую складывать наборы чисел.

Например, если сложить набор из чисел 2 (0010), мы получим 2 (0010), 4 (0100), 6 (0110) и т.д.

image

Вот так выглядит «физическая» модель.

image

Сперва 2 появляется на выходе сумматора (красные светодиоды), затем 2 загружается в счетверенный D-тригер (желтые светодиоды), а на выходе сумматора появляется 4, затем 4 загружается в 155тм8, а на выходе сумматора появляется 6 и т.д.

Для того, чтобы спроектировать простой модуль памяти (статической), нам понадобится мультиплексор. Спроектируем сдвоенный мультиплексор 155кп2.

image

Также нам понадобится счетчик. Спроектируем микросхему 155ие5.


Это четырехразрядный счетчик, но нам понадобится только два младших разряда.

Будем хранить числа, например, 2 (0010), 3 (0011), 5 (0101).

image

«Физическая» модель.


Объединим все компоненты в одну схему. Будем складывать числа, которые хранятся в памяти
2 + 3 + 5.


«Физическая» модель.

image

Далее создадим устройство, позволяющее осуществлять операцию «вычитание». Для того, чтобы вычесть число, его надо сначала перевести в обратный код (заменить все 0 на 1; все 1 на 0), а затем в дополнительный код (прибавить 1).

Для хранения чисел будем использовать 155ру2 (ОЗУ), для перевода в обратный код будем использовать 155лн2 (шесть Элементов Не). Эти микросхемы имеют выходы с открытым коллектором. Светодиод к выходу с ОК надо подключать так (на примере 155лн2/7405)

image


Для МС 155ру2 будем считать, что вход синхронизации и вход разрешения записи объединены в одну линию. Этот (объединённый) вход является статическим, МС пропускает насквозь всё время, пока на входе присутствует 0 (низкий уровень).

Данные поступают в МС при появлении низкого уровня на этом (объединенном) входе, поэтому повесим Элемент Не к тактовому входу.

Выходы будут инвертированы, если подключать по схеме, которую я привел выше для выхода с ОК (повесим Элементы Не к выходам), вход выбора кристалла тоже инвертирован, МС осуществляет цикл записи или чтения только при нулевом уровне на этом входе (повесим Элемент Не ко входу выбора кристалла).

Также МС имеет отдельные входы для адреса и для данных, поэтому при выборе стандартного модуля ОЗУ (Боковое меню — Память — ОЗУ) на вкладке «Интерфейс данных» необходимо выбрать «Раздельные порты чтения и записи».

Т.о. наиболее близкой к 155ру2 будет такая модель:

image

Для выбора числа в прямом или обратном коде будем использовать мультиплексор. Будем хранить числа 8, 4 (в обратном коде), 1.

image

«Физическая» модель.

image

Объединим нашу схему с предыдущей и будем из 8 вычтать 4, т.е. 8 + 4 (в обратном коде) + 1.

image

Т.о. мы создали простейшее программируемое устройство, в котором командами осуществляется выбор числа в прямом или обратном коде.

Спроектируем наши схемы на ПЛИС/FPGA. Будем использовать Quartus II. Бесплатную версию с ограниченным функционалом можно скачать с официального сайта.

При регистрации в разделе My Primary Job Function is* необходимо выбрать пункт Student.
Далее необходимо скачать драйвер для программатора (драйвер для usb-blaster'a можно установить из C:\altera\...\quartus\drivers\usb-blaster).

В среде Quartus создадим новый проект («File»-«New»-«New Quartus II Project») и добавим к проекту Block Diagram/Schematic File («File»-«New»-«Block Diagram/Schematic File»).

Нам понадобятся сумматор (7483) и аккумулятор (74175).

Эти микросхемы можно добавить из Symbol Tool:

image


Добавив порты ввода-вывода, получаем схему, позволяющую складывать набор четырехразрядных чисел.


Если использовать внешний источник тактового сигнала, тактовую ногу источника надо стянуть к «земле».

Схемы, спроектированные в Logisim, можно скачать одним файлом.

Комментарии (20)


  1. Sdima1357
    24.10.2017 22:42

    Прочитал и удивился, 155 серия ещё жива.


    1. skoptsev
      25.10.2017 06:11

      Живее всех живых, в гос закупках военные еще и 133 серию закупают, у них прогресс застрял в 70-х. А для данных опытов 155, 555 и рядом с ними самое оно.


      1. zartarn
        25.10.2017 06:38

        Я бы не сказал что застрял, просто длительная поддержка своих устройств. ;).
        Новые вполне себе на более-менее современной комплектухе. Съездите в августе на ту же выставку «Армия 2018», там очень даже ничего :)
        Другое дело, что новое очень медленно проходит, так как нужны тесты, сертификация и т.д. и т.п.


      1. Costic
        25.10.2017 19:15
        +1

        Золотая 133 серия это наша версия с приёмкой, аналог 74 серии… Ещё 100+ лет будет использоваться.


        1. Sdima1357
          25.10.2017 21:01

          Не знаю насчет приёмки, но мне встречались экземпляры 133 с боязнью темноты :). На свету работает, а в темноте нет. Видимо за счет металло-стеклянного корпуса. Ох и намучился я тогда с ними. Правда давно это было, в 1987…


          1. seri0shka
            26.10.2017 10:20

            Ну не такой он и стеклянный. Вроде металлическая крышечка на керамической «ванночке», так ведь? А как выяснили про боязнь темноты?


            1. Sdima1357
              26.10.2017 13:27

              Случайно. Завинчиваю корпус устройства (а он тяжелый сволочь, чугунный )- не работает, отвинчиваю — работает. И все контрольные точки в порядке. Случайно рукой над корзинкой провел, ближе к вечеру тень от лампы упала- и от опа на. Часов пять проковырялся, золотистых 133 около сотни на каждой плате.


  1. joker2k1
    25.10.2017 01:22

    Эвм, системы и сети, второй курс .)


    1. BaLaMuTt
      25.10.2017 09:48

      У кого как. У нас на третьем курсе это преподавали)))


  1. Vasily_T
    25.10.2017 06:12

    Вспомнил старые добрые МИФИшные стенды на 12 кафедре


  1. skoptsev
    25.10.2017 06:22

    Спасибо за статью. Можно с полной уверенностью сказать: всем желающим разобраться, как работает Ардуино изнутри посвящается.


    1. AVKinc
      25.10.2017 08:16

      Ну то есть вы очевидно даже не понимаете, что такое Ардуино, ибо это таки не процессор вообще.
      Да и реальный процессор намного, намного сложнее чем этот сумматор. И что-бы разобраться реально как он работает явно недостаточно понимать как работает сумматор. Хотя так то всего три элемента, куда уж проще. И, НЕ да ИЛИ.


      1. demser Автор
        25.10.2017 08:51

        «Попутно, пользуясь поводом, мы пропиарим отличный проект Marsohod.org как раз активно описывающий работу с ПЛИС. Рекомендую зайти к ним в гости и пошариться там. Найдете много интересного. Там есть и всякие пищалки музыкальные, USB устройства, разные протоколы и даже создание упрощенного AVR ядра в недрах ПЛИС, с компиляцией кода под него в AVR Studio :) И это при том, что ПЛИС EPM240T100C5 реально небольшая.»
        ссылка


      1. seri0shka
        26.10.2017 10:26

        Интересно, а реально ли построить прототип Ардуино только на трёх типах элементов? Если да, то сколько сотен-тысяч корпусов понадобилось бы?


    1. korgoth
      25.10.2017 22:20

      Увидел ваш комметарий и вспомнил про это: www.aloriumtech.com/xlr8


  1. sim2q
    25.10.2017 08:56

    удивительно, что этот комок проводов работает без керамики по питанию…
    ТТЛ же!
    ps нашел в детстве где то 155ИП3, разобрался по книжке и даже что то считала как надо, но применить куда то в то время не смог. Хотя даже была и статическая память 1 кб, счётчики, мультиплексоры и дешифраторы от ЕС ЭВМ, но больше конечно беспонтовых ЛР*, ЛП* и ЛА*. Тогда кстати и пришло понимание, что без кондёров, толстых шин и витых проводов — ТТЛ не стабильно не живёт


    1. seri0shka
      26.10.2017 10:48

      удивительно, что этот комок проводов работает без керамики по питанию…

      Несколько факторов. Во-первых, всего несколько корпусов. Во-вторых, помех на лабораторном столе может быть намного меньше, чем в условиях реальной эксплуатации. Ну и помех боятся только D-триггеры и более сложные корпуса с их использованием, в схеме с использованием простых логических злементов несколько случайных импульсов на входе (помехи) вызовут несколько импульсов на выходе с мгновенным возвратом в исходное состояние (в отличии от триггера, который изменит своё состояние). По светодиодам этого не заметить. В своё время, когда активно увлёкся цифровой логикой, старался обходиться без триггеров там, где была возможность.


  1. Wuzaza
    25.10.2017 09:13

    Очень интересный канал. Автор собирает 8 битный процессор, параллельно объясняет устройство. На английском языке.
    www.youtube.com/user/eaterbc/videos


  1. GeMir
    25.10.2017 10:54

    Год назад собирал демонстрационные схемы, похожие на представленную на первом снимке, но с использованием AND, OR и XOR (SN74ACT08, SN74ACT32 и SN74ACT86) и на большинстве форумов хватались за голову и рекомендовали собрать как минимум что-то вроде этого:

    image

    Не подскажете, что почитать для ликбеза совсем уж начинающему строителю схем?


    1. demser Автор
      25.10.2017 14:00

      «…Это очень просто!» Евгений Айсберг