Акции
Блог
О 3DiY
  • О компании
  • Реквизиты
  • Партнеры
  • Клиенты
  • Вакансии
Оплата
Доставка
Гос. закупки
Товары под заказ
ВК Видео
Отзывы
Услуги
  • 3D печать
    • 3D печать пластиком FDM/FFF
    • 3D печать фотополимером
Контакты
  • Как до нас добраться
    8 (800) 500-45-93
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail

    info@3d-diy.ru — отдел продаж

    support@3d-diy.ru — тех. поддержка

    Адрес
    Москва, Павловская улица, 27с7
    м. Тульская
    Режим работы
    пн – пт 11:00—19:00
    8.05 – 11.05 не работаем
    3DIY
    3D принтеры
    Материалы для 3D печати
    Комплектующие 3D принтера
    Arduino и робототехника
    Комплектующие ЧПУ станка
    Инструменты
    Запчасти для 3D принтеров по брендам
    Товары снятые с продажи
    • 3D принтеры
      • Печать пластиком (FDM/FFF)
        Печать пластиком (FDM/FFF)
      • Печать фотополимером (SLA/DLP/LCD)
        Печать фотополимером (SLA/DLP/LCD)
      • Печать воском (MJP)
        Печать воском (MJP)
      • Для дома
        Для дома
      • Для бизнеса
        Для бизнеса
      • Для производства
        Для производства
      • Наборы для сборки
        Наборы для сборки
      • Промышленные
        Промышленные
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Материалы для 3D печати
      • Пластики
        Пластики
        • ABS
        • PLA
        • PETG
        • HIPS
        • PVA
        • FLEX (TPU)
        • Nylon/PA (Нейлон)
        • PC (Поликарбонат)
        • PEEK
        • POM (Полиацеталь)
        • PP (Полипропилен)
        • Резина
        • Стеклонаполненные
        • Термочувствительные
        • Угленаполненные
        • SBS
        • Светящиеся
        • Металлические
        • Спец. пластик
        • Пластик для 3D ручек
      • Фотополимеры
        Фотополимеры
        • Стандартные
        • ABS-типа
        • Гибкие
        • Водосмываемые
        • Выжигаемые
        • Инженерные
        • Стоматологические
        • Для хобби
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Комплектующие 3D принтера
      • Электроника
        Электроника
        • Платы управления
        • Шаговые двигатели (ШД)
        • Драйверы ШД 3D принтеров
        • Драйверы шаговых двигателей ЧПУ
        • Дисплеи
        • Датчики и модули
        • Блоки питания
        • Реле
        • Концевые выключатели
        • Вентиляторы      
          • Вентиляторы осевые
          • Вентиляторы радиальные (улитки)
          • Решетки и фильтры для вентиляторов
        • Провода, кабели и разъемы
      • Механика
        Механика
        • Зубчатые шкивы
        • Зубчатые ремни
        • Трапецеидальные винт-гайки
        • Шарико-винтовые передачи (ШВП)      
          • Гайки ШВП
          • Модули крепления гаек ШВП
          • Обратотанные ШВП
          • Опоры ШВП
        • Соединительные муфты
        • Ролики для зубчатых ремней
        • Цилиндрические направляющие
        • Рельсовые направляющие      
          • Профильные направляющие HIWIN
          • Профильные направляющие КИТАЙ
        • Держатели вала
        • Корпусные детали      
          • Корпуса
          • Апгрейды
          • Комплектующие для корпусов
        • Запчасти OpenBuilds
        • Подшипники качения
        • Пружины
      • Нагревательные столы и сопутствующие
        Нагревательные столы и сопутствующие
        • Нагревательные платформы
        • PEI пластины
        • Стекла и Зеркала
        • Теплоизоляция
        • Основания для столов
        • Силиконовые проставки (пружины)
        • Термисторы
        • Зажимы-фиксаторы
        • Пружины
      • Экструдеры
        Экструдеры
        • Экструдеры и механизмы подачи
        • Хотэнды
        • Сопла
        • Термобарьеры
        • Термисторы
        • Нагревательные блоки
        • Теплоизоляция нагревательных блоков
        • Тефлоновые трубки
        • Радиаторы
        • Нагревательные элементы
        • Шестерни
        • Фитинги
        • Сопутствующие товары
      • Сушилки для пластика
        Сушилки для пластика
      • УФ-камеры
        УФ-камеры
      • Мойки
        Мойки
      • Ультразвуковые ванны (мойки)
        Ультразвуковые ванны (мойки)
      • 3D ручки
        3D ручки
      • 3D-сканеры
        3D-сканеры
      • Расходные материалы для SLA / LCD
        Расходные материалы для SLA / LCD
      • Сопутствующие
        Сопутствующие
      • Наборы для мейкеров
        Наборы для мейкеров
      • Инструменты для 3D печатника
        Инструменты для 3D печатника
      • Постобработка
        Постобработка
      • Адгезивы
        Адгезивы
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Arduino и робототехника
      • Arduino
        Arduino
      • Raspberry Pi
        Raspberry Pi
        • Микрокомпьютеры
        • Дисплеи      
          • TFT-LCD дисплеи Raspberry Pi
          • IPS-LCD дисплеи Raspberry Pi
          • AMOLED дисплеи Raspberry Pi
        • Корпуса
        • Шилды
        • Камеры
        • Питание
        • Охлаждение
      • Обучающие наборы
        Обучающие наборы
      • Orange Pi
        Orange Pi
      • Одноплатники
        Одноплатники
      • Модули
        Модули
        • Платы расширения
        • Беспроводные модули
        • Интерфейсы
        • Релейные модули
        • Преобразователи питания
        • Лазерные модули
        • Аудио
        • Видео
        • Клавиатура
        • Драйверы моторов
        • Измерительные
        • Другие
      • Датчики
        Датчики
        • Аудио
        • Газа
        • Инфракрасные
        • Климатические
        • Жидкостные
        • Механического воздействия
        • Положения (акселерометры/компасы/гироскопы)
        • Пространства
        • Света и цвета
        • Тактильные
        • Тока и напряжения
      • Дисплеи
        Дисплеи
        • TFT-LCD дисплеи
        • STN-LCD дисплеи
        • LED дисплеи
        • OLED дисплеи
        • Дисплеи DWIN
        • E-Paper дисплеи
      • Механика
        Механика
        • Колёса
        • Коллекторные двигатели
        • Сервоприводы
        • Шаговые двигатели
        • Другие
        • Линейные актуаторы (приводы)
      • Макетные платы
        Макетные платы
      • Светодиоды
        Светодиоды
        • Светодиодные кольца
        • Светодиодные матрицы
        • Сегментные индикаторы
        • Светодиоды круглые
        • Другие
      • Провода и кабели
        Провода и кабели
      • Источники питания
        Источники питания
      • Радиодетали
        Радиодетали
        • Кварц
        • Кнопки
        • Конденсаторы
        • Резисторы
        • Транзисторы
        • Другие
        • Стабилизаторы
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Комплектующие ЧПУ станка
      • Шаговые двигатели и аксессуары
        Шаговые двигатели и аксессуары
        • NEMA 8
        • NEMA 11
        • NEMA 14
        • NEMA 17
        • NEMA 23
        • NEMA 34
        • NEMA 42
        • NEMA 52
        • Шаговые актуаторы
        • Шаговые двигатели с редуктором      
          • C планетарным редуктором
          • C цилиндрическим редуктором
        • Шаговые двигатели с тормозом
        • Круглые шаговые двигатели
        • Сопутствующие
      • Зубчатые ременные передачи
        Зубчатые ременные передачи
        • Зубчатые ремни      
          • Зубчатые ремни GT2
          • Зубчатые ремни HTD 3M
          • Зубчатые ремни HTD 5M
          • Зубчатые ремни T2.5
          • Зубчатые ремни T5
        • Зубчатые шкивы      
          • Зубчатые шкивы GT2
          • Зубчатые шкивы HTD 3M
        • Ролики
      • Шарико-винтовые передачи (ШВП)
        Шарико-винтовые передачи (ШВП)
        • Готовые ШВП, обработанные
        • Гайки ШВП
        • Опоры ШВП
        • Модули крепления гаек ШВП
        • Кронштейны-опоры ШВП
      • Трапецеидальные передачи винт-гайка
        Трапецеидальные передачи винт-гайка
        • Винты трапецеидальные
        • Гайки трапецеидальные
        • Муфты Oldham
        • Сопутствующие
      • Цилиндрические направляющие
        Цилиндрические направляющие
        • Полированные валы
        • Цилиндрические рельсы
        • Линейные подшипники
        • Модули с линейным подшипником
        • Втулки скольжения
        • Держатели вала
        • Пластиковые втулки скольжения
      • Профильные направляющие
        Профильные направляющие
        • Профильные направляющие HIWIN      
          • Каретки HIWIN
          • Рельсы HIWIN
        • Профильные направляющие      
          • Каретки
          • Рельсы
        • Роликовые направляющие
      • Муфты соединительные
        Муфты соединительные
        • Жесткие
        • Кулачковые
        • Спиральные
        • Мембрнные
        • Сильфонные
        • Пружинные
        • Гибкие
      • Электроника
        Электроника
        • Блоки питания
        • Вентиляторы электрические и аксессуары      
          • Вентиляторы осевые
          • Вентиляторы радиальные (улитки)
          • Решетки и фильтры для вентиляторов
        • Драйверы шаговых двигателей
        • Микропереключатели и концевики
        • Датчики касания инструмента
        • Кнопки и индикаторы
      • Фрезы
        Фрезы
        • Спиральные фрезы      
          • Стружка вверх
          • Стружка вниз
        • Компрессионные фрезы
        • Прямые фрезы
        • Конусные фрезы
        • Сферические фрезы
        • Фрезы рашпильные (кукуруза)
        • Цанги
        • Сопутствующие
      • Карбоновый профиль / трубки
        Карбоновый профиль / трубки
      • Пневматическое оборудование
        Пневматическое оборудование
        • Регуляторы давления, фильтры, лубрикаторы
      • Системы подачи смазки
        Системы подачи смазки
        • Автоматические смазочные насосы
        • Ручные смазочные насосы
        • Маслораспределительные аксессуары
      • Сопутствующие
        Сопутствующие
      • Шпиндели и сопутствующие
        Шпиндели и сопутствующие
        • Шпиндели воздушного охлаждения
        • Шпиндели жидкостного охлаждения
        • Частотные преобразователи
        • Крепления для шпинделей
        • Системы охлаждения шпинделей
        • Подведение СОЖ
        • Прижимы для шпинделей
        • Распылители масляного тумана
        • Щетка-насадка для шпинделя
        • Сопутствующие для шпинделей
      • Механика
        Механика
        • Кабель-каналы гибкие
        • Подшипники качения
        • Подшипниковые узлы
      • Конструкционный профиль
        Конструкционный профиль
        • Сухари пазовые
        • Т-болты
        • Т-гайки
        • Серия 15      
          • Анодированный
          • Без покрытия
        • Серия 20      
          • Анодированный
          • Без покрытия
        • Серия 20 (V-паз)      
          • Анодированный
          • Без покрытия
        • Серия 30      
          • Анодированный
          • Без покрытия
        • Серия 40      
          • Анодированный
          • Без покрытия
        • Серия 45      
          • Анодированный
          • Без покрытия
        • Серия 50      
          • Анодированный
          • Без покрытия
      • Комплектующие OpenBuilds
        Комплектующие OpenBuilds
        • Ролики OpenBuilds
      • Лазерные станки
        Лазерные станки
      • Лазерная резка и аксессуары
        Лазерная резка и аксессуары
        • Блоки розжига
        • Воздушные компрессоры
        • Датчики
        • Крепление лазерной трубки
        • Лазерные головки и держатели зеркал
        • Полупроводниковые лазерные модули
        • Системы охлаждения
        • Системы управления (Контроллеры)      
          • Контроллеры RuiDa
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Инструменты
      • Зачистка и обрезка кабеля
        Зачистка и обрезка кабеля
      • Измерительный инструмент
        Измерительный инструмент
        • Мультиметры
      • Кабель и провода
        Кабель и провода
        • Акустический кабель
        • Высоковольтный кабель
      • Клеевые пистолеты (термопистолеты)
        Клеевые пистолеты (термопистолеты)
      • Напильники и надфили
        Напильники и надфили
      • Обжимной инструмент
        Обжимной инструмент
      • Отвертки
        Отвертки
      • Паяльное оборудование
        Паяльное оборудование
        • Наборы для паяльных работ
        • Отсосы припоя
        • Паяльные принадлежности
        • Паяльные станции
        • Припой
        • Электрические паяльники
      • Пинцеты
        Пинцеты
      • Расходные материалы
        Расходные материалы
        • Изолента
        • Клеевые стержни
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Запчасти для 3D принтеров по брендам
      • 3DIY printers
        3DIY printers
        • Bizon 3
        • STRATEX 350
        • STRATEX 500
        • REX 6K Mono
        • P3 Steel 200 PRO
        • P3 Steel 300 PRO
        • P3 Steel 300 DUAL PRO
      • Bambu Lab
        Bambu Lab
        • Bambu Lab A1 mini
        • Bambu Lab A1
        • Bambu Lab P1 Series
        • Bambu Lab X1 Series
      • Creality
        Creality
        • Creality K1
        • Creality K1 MAX
        • Creality K1C
        • Creality K2 plus
      • Flashforge
        Flashforge
        • Adventurer 5M / 5M Pro
      • Qidi
        Qidi
        • Qidi Tech X-Plus 3
        • Qidi Tech X-Max 3
        • QIDI Plus 4
        • Qidi Q1 Pro
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Товары снятые с продажи
        Phrozen
        FlyingBear
        QIDI
        CreatBot
        FlashForge
        Bambu Lab
        ERYONE
        Elegoo
        eSUN
        Creality
        BIGTREETECH
        Anycubic
      Войти
      0Избранное
      0Корзина
      3D принтерыПластик для 3D принтераФотополимерыКомплектующие 3DКомплектующие ЧПУРобототехникаЗапчасти 3D принтеров по брендам
      3DIY
      Войти
      0Избранное
      0Корзина
      3DIY
      Телефоны
      8 (800) 500-45-93отдел продаж Россия
      8 (495) 565-35-93отдел продаж Москва
      E-mail

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Адрес
      Москва, Павловская улица, 27с7
      м. Тульская
      Режим работы
      пн – пт 11:00—19:00
      8.05 – 11.05 не работаем
      0
      0
      • Кабинет
      • 0Избранное
      • 0Корзина
      • Бренды
      • Акции
      • Услуги
        • Услуги
        • 3D печать
          • 3D печать
          • 3D печать пластиком FDM/FFF
          • 3D печать фотополимером
      • Компания
        • Компания
        • О компании
        • Реквизиты
        • Партнеры
        • Клиенты
        • Вакансии
      • Блог
      • Информация
        • Информация
        • Гарантия на товар
        • Возврат товара
        • Политика конфиденциальности
        • Договор-оферта
        • FAQ
      • Контакты
        • Контакты
        • Как до нас добраться
      8 (800) 500-45-93отдел продаж Россия
      • Телефоны
      • 8 (800) 500-45-93 отдел продаж Россия
      • 8 (495) 565-35-93 отдел продаж Москва
      • info@3d-diy.ru — отдел продаж

        support@3d-diy.ru — тех. поддержка

      • Москва, Павловская улица, 27с7
        м. Тульская
      • пн – пт 11:00—19:00
        8.05 – 11.05 не работаем
      Главная
      Блог
      Arduino платы
      Программируемые логические интегральные схемы (ПЛИС)

      Программируемые логические интегральные схемы (ПЛИС)

      Программируемые логические интегральные схемы (ПЛИС)
      Arduino платы
      Содержание

      • Особенности и назначение ПЛИС,
      • Разновидности ПЛИС,
      • Среда разработки,
      • Пример работы,
      • Вывод,
      • FAQ.

      Особенности и назначение ПЛИС

      ПЛИС - программируемая логическая интегральная схема. Это не контроллер и не специализированная логическая микросхема, хотя может стать ими при правильной настройке и программировании. Вообще, использовать слово “программирование” при проектировании устройства на базе ПЛИС не совсем правильно. Применительно к ней официально используется более подходящий термин “синтез”. В память известного нам контроллера загружается программа, то есть набор последовательно выполняющихся команд, и нужные для работы данные, у ПЛИС нет ни того, ни другого. ПЛИС состоит из большого количества простых логических элементов, между которыми, как следует из названия, программным путем устанавливаются связи, то есть архитектура возникает не при изготовлении микросхемы на заводе, а позже программистом, при помощи специального софта и оборудования. Наверное и слово “программист” тут уместнее заменить на “конструктор”. В результате, при должном умении и прочих сопутствующих факторах, микросхема приобретает любую конфигурацию и назначение, в рамках своих аппаратных возможностей.

      plis.jpg

      В чем преимущество и недостаток такого подхода? Программировать микроконтроллеры интуитивно понятнее и относительно проще, внутри происходит работа кода, исполняющая электронная схема, как правило, находится снаружи и обеспечивает выполнение команд. По такой логике работы команды выполняются последовательно, данные берутся из памяти или из внешних источников и обрабатываются шаг за шагом, точнее такт за тактом. Очевидно, что скорость работы микроконтроллера зависит от его тактовой частоты, разрядности, объема памяти и тому подобных критериев. ПЛИС конфигурируется под задачу аппаратно, зачастую схемы не нуждаются в тактировании вообще, а значит их производительность ограничивается лишь скоростью движения электронов по проводникам и логическим элементам. Более того, в одной микросхеме можно создать несколько независимых логических схем, как на простом примере внизу. Два инвертора со своими вводами и выводами никак друг с другом не взаимодействуют, но оба работают в одном физическом корпусе.

      image1.jpg

      Ряд структурных элементов ПЛИС могут использовать тактирование от внешнего источника или внутреннего генератора для привязки к фактору времени или циклического внешнего воздействия. Например, счетчики, часы, мультиплексоры и так далее. Но и в этом случае скорость работы схемы будет гораздо выше, чем в любой программируемой логике. Скорость, близкая к максимально возможной при сохранении некоторой гибкости конструкции - вот основное преимущество ПЛИС перед контроллерами.

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

      Разновидности ПЛИС

      На сегодня существует всего два основных вида ПЛИС: CPLD и FPGA.

      CPLD (Complex Programmable Logic Device) - классическая ПЛИС, структура которой строится на однородной матрице, состоящей из одинаковых логических блоков в количестве сотен и тысяч штук. CPLD обычно комплектуется небольшой встроенной энергонезависимой памятью для хранения прошивки и данных. Используется в устройствах, когда нужна высокая скорость и большое количество входов-выходов для выполнения относительно простых задач. К плюсам можно добавить сравнительно невысокую цену.

      FPGA (Field-Programmable Gate Array) - более развитая и сложная ПЛИС. Содержит большее количество элементов, может включать в себя готовые блоки для выполнения стандартных операций, например, мультиплексоров, обработки протоколов коммутации, аудио, видео и так далее. Прошивка, как правило, хранится во внешней энергонезависимой памяти. Дороже предыдущего варианта, но предоставляет широкие возможности и позволяет создавать более сложные устройства.

      Наиболее распространенными являются ПЛИС от двух производителей: Altera (теперь являющаяся частью Intel) и Xilinx (теперь принадлежащей AMD). У каждого производителя выпускается несколько серий микросхем, отличающихся размером, количеством выводов, дополнительным оснащением и прочими параметрами. Каждая серия содержит в себе несколько конкретных моделей. Altera более популярна у DIY-мастеров, так как довольно многочисленно представлена к продаже на популярном китайском ресурсе. Именно на одной из микросхем Altera мы попробуем что-нибудь сделать.

      У Altera и Xilinx имеется похожие, но собственные среды разработки. Трудно сказать, какая из них лучше, обе достаточно сложные и непривычные для программистов контроллеров, и по обеим очень мало информации на русском языке. Более того, на сегодняшний день, в связи с известными событиями, скачивание того и другого для россиян временно закрыто. При желании, обойти запрет, конечно, можно, но некоторые трудности с освоением все равно останутся.

      Среда разработки

      Кратко ознакомимся с GUI от Altera, под названием Quartus. Точнее его бесплатной последней версии (не считая ограничений, упомянутых ранее) - Quartus Prime Lite. Его вполне хватит для 99% проектов любительского и полупрофессионального уровня, создающихся почти на любой ПЛИС производителя.

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

      Тип микросхемы написан прямо на чипе, в нашем случае это “EPM240T100” из серии MAX II, что говорит о том, что на борту имеется 240 блоков логических массивов. Этого более чем достаточно для ознакомительных целей и даже для вполне рабочих конструкций.

      image10.jpg

      Программатор под названием “USB Blaster” типа “JTAG” зачастую идет в комплекте.

      USB Blaster.jpg

      Выглядеть все это в настройках программатора будет как-то так.

      image4.jpg

      Язык выберем “Verilog”, он относительно новый, потому сравнительно простой и чуть более документированный. Про него издано довольно много литературы, в том числе на русском языке, например, существует неплохая и понятная для начинающих книга В.В. Соловьева “Основы языка проектирования цифровой аппаратуры Verilog”, которую мы рекомендуем для прочтения в первую очередь.

      В.В. Соловьева “Основы языка проектирования цифровой аппаратуры Verilog”.jpg

      Итак, плата готова, софт установлен и настроен, давайте сделаем и запустим на ПЛИС простейший пример, своего рода “Hello World!” для цифровой аппаратуры - мигание светодиодом.

      Пример работы

      Немного усложним задачу, сделаем два мигающих светодиода, работающих в противофазе. На этом не успокоимся и “нарисуем” рядом еще одну элементарную схему хотя бы из одного элемента, чтобы убедиться, что она может работать параллельно и независимо.

      Перед этой статьей, разумеется, не стоит задача научить читателя с нуля писать структуры на Verilog под Quartus, для этого потребовалось бы порядка миллиона подобных статей. Мы лишь немного разъясним основные понятия и инструменты этой системы проектирования ПЛИС.

      “Программа”, она же - в конечном итоге - архитектура связей, состоит из так называемых “модулей”. У модуля есть привязка к входам и выходам, с которыми что-то происходит внутри модуля в процессе работы микросхемы. Часть структур статична, то есть представляет из себя логическую схему, не меняющуюся со временем. Другая часть гибкая, динамическая, позволяет производить изменения в ячейках памяти (“регистрах” - аналогах переменных), а так же что-то менять в структуре связей в зависимости от обстановки и обстоятельств, состояния упомянутых регистров и многого другого.

      У нас два модуля, один главный (он будет запускаться микросхемой автоматически при подаче питания) и второй дополнительный, который вызывается из первого, но никак с ним не связан структурно. Первый модуль “гибкий”, он считает такты от встроенного в плату кварцевого генератора и инвертирует выходы в то время, когда этих тактов случится нужное количество. Так будет продолжаться вечно, даря нам два бесконечно мигающих светодиода. Второй модуль представляет собой вход и выход, соединенный через логический элемент “НЕ”, то есть сигнал на выходе будет противоположным входу. Вот и весь проект.

      В текстовом виде “программа” достаточно компактна и выглядит так:
       module blink(ao, led, ledin, clk, ai); // главный модуль, запускающийся автоматически, в скобках вводы и выводы input clk; // ввод, который программно привяжем к тактовому сигналу от кварца output led; // вывод на первый светодиод output ledin; // вывод на второй (инвертированный) светодиод input ai; // вход второго модуля output ao; // выход второго модуля reg [26:0] longcnt; // счетчик тактов размером 27 бит, что достаточно для максимального размера переменной reg led; reg ledin; inv my_inv (ao, ai); // запускаем второй модуль parameter delay_max = 50000000; // максимальное значение счетчика 50 млн тактов, что соответствует 1 сек при кварце 50 МГц always @(posedge clk) // цикл, тактующийся от фронта на ножке clk begin if (longcnt==delay_max) // если счетчик достиг максимального значения begin longcnt <= 0; // перезапускаем счетчик led <= ~led; // инвертируем сигнал ledin <= led; end else // иначе выводим на светодиоды однообразную картину согласно последней установке begin led <= led; ledin <= ~led; longcnt <= longcnt+1; // увеличиваем счетчик на единицу end end endmodule module inv (aout, ain); // параллельная схема просто инвертирует сигнал на выходе input ain; output aout; assign aout = ~ain; // выход привязываем ко входу через элемент "НЕ" endmodule 
      Мы видим два модуля, начинающихся с объявления module и заканчивающихся endmodule. Первый называется blink, созвучно его назначению, второй inv. Входы, выходы и регистры, с которыми будет работать программа, объявляются в первых строках модулей. Далее следует либо циклическая часть подсчета тактов с инвертированием сигналов, либо простейшая схема инвертора.

      Теперь остается привязать абстрактные вводы и выводы модулей к реальным пинам микросхемы. Делается это во вкладке “Pin Planner”, где выбранная микросхема изображена во всей красе со всеми своими ста ножками. Генератор тактов в нашем случае жестко подключен к пину 64, его мы без вариантов связываем с вводом clk, остальные же можно прикрепить почти к любым ножкам за исключением занятых. На схеме хорошо видно, куда можно, а куда нет. В нашем проекте мы используем пины 94, 95, 96, 99 и 100. В итоге получается примерно такая картина.

      image7.jpg

      Запускаем компиляцию, которая здесь гордо называется “синтез”, и спустя несколько секунд раздумий получаем результат. Если все правильно, то проект можно заливать в микросхему.

      image6.jpg

      Мы “написали схему” в текстовом виде, что, в общем-то правильно, однако в Quartus есть возможность рисовать схемы сразу в графическом виде, что удобно для небольших “статичных” схем и не очень для сложных и “динамических”. А вот что удобно во всех случаях, так это возможность преобразовать текстовую программу в графическую, чтобы наглядно оценить, что мы наделали и правильно ли. Запустим инструмент “RTL Viewer” и посмотрим, что же у нас получилось.

      image12.jpg

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

      Прошиваем подопытную ПЛИС при помощи инструмента “Programmer”, убеждаемся, что все прошло успешно.

      image2.jpg

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

      image11.jpg

      Голубой - 99, желтый - 100. Период смены сигнала ровно 1 сек, как и было задумано. Изображение снято в процессе обновления, поэтому в одном месте картина слегка нарушена.

      Что до инвертора, то соединив ножку 99 с 95 (вход инвертора), на ножке 96 получим одинаковую картину с ножкой 100, что правильно, так как инвертированный сигнал, будучи инвертирован дважды, станет таким же, как был изначально.

      image8.jpg

      Для наглядности, чтобы сигналы не сливались, мы немного развели их нулевой уровень.

      Таким образом мы заставили ПЛИС Altera выполнять нашу задумку аж по двум независимым схемам на одном кристалле, что для микроконтроллера задача вообще немыслимая.

      Вывод

      ПЛИС - очень важное и интересное техническое решение для создания электронных устройств. Коренным образом отличаясь по логике работы от контроллеров, ПЛИС имеет собственные неоспоримые преимущества: высочайшую скорость при минимальном энергопотреблении и реальную многопоточность. Для какой задачи стоит предпочесть ПЛИС контроллеру, вопрос непростой и неоднозначный, многие устройства можно создать и на той, и на другой базе, главное, чтобы это оправдывало стоимость оборудования и затраченных сил. Стоит ли вам углубляться в изучение проектирования микросхем ПЛИС, решаете только вы, но важно помнить простую идею: знания не бывают лишними, они обязательно где-нибудь и когда-нибудь пригодятся.

      FAQ

      Чем отличаются семейства микросхем производителей Altera и Xilinx?
      Отличий много, в основном это количество программируемых логических ячеек, объема памяти, количества пинов, банков логических уровней, наличия готовых блоков, технологии производства и, как следствие, максимальной скорости работы, а также, разумеется, цены. Выбор зависит от поставленной задачи, для обработки видео больше подходит одно, для работы с памятью другое и так далее.

      Для каких целей выгодно использовать ПЛИС?
      Когда контроллер не справляется. Когда у контроллера катастрофически не хватает пинов. Когда нет готовой микросхемы в продаже, быстрее и дешевле сделать проект на ПЛИС от одной штуки до сотни-другой. К слову, стоимость ПЛИС начальных уровней сопоставима со стоимостью микроконтроллеров.

      В чем же преимущество микроконтроллеров?
      С ними привычнее и гораздо проще. Если сложность задачи немного выше, чем просто помигать светодиодами, решить ее программно значительно проще, чем аппаратно. Работа с объемными данными, периферийными устройствами, системами связи и коммуникации на порядки легче выполняется программированием контроллера. Существуют задачи и вовсе не предназначенные для ПЛИС (хотя, справедливости ради, можно сказать и обратное про МК).

      Это интересно

      Arduino LilyPad
      Arduino платы
      Arduino LilyPad
      Arduino Esplora
      Arduino платы
      Arduino Esplora
      Arduino Pro Mini
      Arduino платы
      Arduino Pro Mini
      Ethernet shield
      Arduino платы
      Ethernet shield
      Arduino Uno
      Arduino платы
      Arduino Uno
      Raspberry Pi
      Arduino платы
      Raspberry Pi
      • Комментарии
      Загрузка комментариев...
      Назад к списку
      • Все публикации248
        • 3D принтеры38
        • 3D печать57
        • ЧПУ10
        • Датчики27
        • Модули38
        • Arduino механика6
        • Arduino платы8
        • Дисплеи6
        • Кейсы1
        • Компоненты13
        • Мировые новости35
        • Проекты7
        • Сопутствующие2
      Связаться с нами
      8 (800) 500-45-93
      8 (800) 500-45-93отдел продаж Россия
      8 (495) 565-35-93отдел продаж Москва
      E-mail

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Адрес
      Москва, Павловская улица, 27с7
      м. Тульская
      Режим работы
      пн – пт 11:00—19:00
      8.05 – 11.05 не работаем

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Москва, Павловская улица, 27с7
      м. Тульская
      Магазин
      Бренды
      Акции
      Каталог
      Услуги
      Компания
      О компании
      Реквизиты
      Партнеры
      Клиенты
      Вакансии
      Информация
      Гарантия на товар
      Возврат товара
      Политика конфиденциальности
      Договор-оферта
      FAQ
      Помощь
      Условия оплаты
      Условия доставки
      Товары под заказ
      Гос. закупки
      Как сделать заказ
      Вопрос-ответ
      2013 - 2025 © 3DiY (Тридиай) - интернет-магазин комплектующих для 3D принтеров, ЧПУ станков и робототехники
      Конфиденциальность
      Оферта
      ГлавнаяКаталог0Корзина0ИзбранныеКабинет
      Уважаемые клиенты
      8-9 мая - выходные
      С праздником!