5576ХС4Т
5576ХС4Т
Микросхема 5576ХС4Т представляет собой программируемую логическую интегральную схему (ПЛИС) изготовленную по КМОП-технологии с возможностью многократного перепрограммирования и изменения конфигурации.
ПЛИС 5576ХС4Т предназначена для применения в изделиях, требующих нестандартных схемотехнических решений при разработке оригинальной аппаратуры и представляет собой матрицу произвольно коммутируемых эквивалентных вентилей.
Имеет встроенную систему конфигурирования, обеспечивающую многократное перепрограммирование посредством внешних конфигурационных устройств и режим последовательной или параллельной загрузки конфигурации через специальный загрузочный порт.
Предназначена для использования в цифровых интегральных модулях средств связи, для управления бортовым комплексом радиосвязи летательных аппаратов, приёма, обработки и передачи речевой и телекодовой информации и в другом радиоэлектронном оборудовании специального назначения.
Кроме того, может быть использованы в системах управления, обнаружения и пеленгации, обработки видеоизображений, мультипроцессорных средствах вычислительной техники, радио- и звуколокации, при создании аппаратуры специального назначения с высокими технико-экономическими показателями.
Микросхема 5576ХС4Т выпускается в планарном 256-выводном металлокерамическом корпусе с разнонаправленными жёсткими выводами для монтажа на печатную плату.
Маркировка микросхемы и схема соединения электродов с выводами указывается на корпусе.
Тип корпуса: 4244.256-3.
Выпускается с категорией качества «ВП».
Технические условия:
— приёмка «5» — АЕЯР.431260.734ТУ.
Функционально совместима с микросхемой EPF10K200S(E) фирмы Altera.
Для проектирования используется САПР фирмы Altera − MAX+PLUS II или Quartus II.
Гарантийные обязательства микросхемы 5576ХС4Т:
Изготовитель гарантирует соответствие качества микросхемы требованиям технических условий АЕЯР.431260.734ТУ при соблюдении потребителем условий и правил хранения, транспортирования, монтажа и условий эксплуатации, установленных ТУ.
Гарантийный срок хранения 25 лет со дня приёмки заказчиком.
Минимальная наработка:
— 100000 часов — в режимах и условиях, допускаемых ТУ;
— 120000 часов — в облегчённом режиме.
Гарантийная наработка исчисляется в пределах гарантийного срока хранения.
Основные технические и эксплуатационные характеристики ПЛИС 5576ХС4Т:
● типовая логическая ёмкость, вентилей . 200000;
● количество логических элементов . 9984;
● количество логических блоков . 1248;
● объем встроенной памяти, бит . 98304;
● количество триггеров . 10155;
● количество пользовательских выводов . 171;
● напряжение питания ядра . 1,8 ±10% В;
● ток потребления ядра, не более . 20 мА;
● напряжение питания периферии . 3,3 ±0,3 В;
● встроенная система конфигурирования, обеспечивающая многократное перепрограммирование;
● программируемый режим верификации конфигурационной памяти без выхода и рабочего состояния;
● режим последовательной и параллельной загрузки конфигурации ПЛИС по специальному загрузочному порту;
● для конфигурирования рекомендуется использовать ПЗУ 5576РС1У;
● диапазон рабочих температур от минус 60 до +125 °С.
- Характеристики
- Задать вопрос
- Предприятие ВПК России
Характеристики
| В наличии | Нет |
| Тех. характеристики | /pdf/mikroskhema/5576xc4t.pdf |
Как поставить плис Altera вместо плис 5576хс4т

ПЛИС (программируемая логическая интегральная схема) 5576ХС4Т является одной из наиболее популярных и востребованных в своем классе. Однако, со временем новые технологии и разработки могут обесценивать старые модели, и в итоге возникает потребность в замене PLD на более современную альтернативу.
Одной из таких альтернатив является плис Altera, которая предлагает более широкие возможности и функциональность. Если вы решили заменить ПЛИС 5576ХС4Т на плис Altera, но не знаете, с чего начать, следуйте этой пошаговой инструкции.
Шаг 1: Проведите необходимую подготовку.
Перед заменой ПЛИС необходимо проанализировать задачи, которые стоят перед вашей системой, и определить требования к новой ПЛИС. Узнайте, какие особенности и функции вам необходимы, чтобы правильно выбрать модель плис Altera.
Шаг 2: Изучите документацию и руководства к плис Altera.
Ознакомьтесь с документацией, предоставленной производителем плис Altera. Изучите технические характеристики, описание функций и спецификации. Познакомьтесь с руководствами, инструкциями и примерами настройки и использования плис Altera.
Что такое ПЛИС 5576ХС4Т?
ПЛИС 5576ХС4Т — это программируемая логическая интегральная схема (ПЛИС) производства компании Altera. ПЛИС — это специальный вид интегральной схемы, который позволяет программно настраивать ее функциональность после производства.
ПЛИС 5576ХС4Т имеет следующие характеристики:
ПЛИСы являются очень гибким решением для разработки электронных систем, так как позволяют быстро изменять и дорабатывать функциональность схемы без необходимости выпуска новой версии аппаратного обеспечения.
ПЛИС 5576ХС4Т может использоваться во множестве различных приложений, таких как:
- Цифровая обработка сигналов
- Системы связи
- Медицинская техника
- Автоматизация промышленных процессов
Использование ПЛИС Altera позволяет ускорить процесс разработки, снизить затраты на создание и модификацию электронных систем, и обеспечить гибкость и масштабируемость в работе.
Почему нужно заменить ПЛИС 5576ХС4Т?
ПЛИС 5576ХС4Т — это устаревшая программируемая логическая интегральная схема, которая имеет ряд ограничений и недостатков. Вот несколько причин, по которым рекомендуется заменить данную ПЛИС на плис Altera:
- Уровень производительности: ПЛИС 5576ХС4Т имеет ограниченные возможности и низкую производительность по сравнению с современными моделями плис Altera. Замена позволит улучшить работу устройства и повысить скорость обработки данных.
- Расширенные возможности: ПЛИС Altera предлагает больше функциональности и гибкости для реализации различных алгоритмов и задач. Вы сможете использовать новые возможности, улучшить алгоритмы и сделать ваше устройство более эффективным.
- Наличие документации и поддержки: ПЛИС 5576ХС4Т может быть устаревшей моделью, для которой сложно найти актуальную документацию, обновления ПО и получить поддержку от производителя. Замена на плис Altera обеспечит доступ к современной документации и поддержке разработчиков.
- Совместимость и интеграция: Если вы планируете расширить функциональность своего устройства или интегрировать его с другими системами, замена ПЛИС на современную модель Altera будет более предпочтительным решением. Вы сможете легче интегрировать новую плис в систему и использовать современные интерфейсы связи.
В целом, замена ПЛИС 5576ХС4Т на плис Altera позволит повысить производительность, функциональность и гибкость вашего устройства, а также обеспечит доступ к современной документации и поддержке. Это важный шаг для развития и улучшения вашего проекта.
Подготовка
Перед заменой ПЛИС 5576ХС4Т на плис Altera необходимо выполнить ряд подготовительных шагов:
- Изучите документацию Altera для выбранной ПЛИС. Ознакомьтесь с особенностями работы, примерами использования и рекомендованными настройками.
- Создайте резервные копии всех проектов и файлов, связанных с ПЛИС 5576ХС4Т. Это гарантирует сохранность вашей работы и возможность восстановления, если что-то пойдет не так.
- Закажите необходимую ПЛИС Altera и убедитесь, что она совместима с вашей системой и требованиями проекта.
- Установите необходимое программное обеспечение для работы с ПЛИС Altera. Обычно это включает в себя Quartus Prime, пакет разработки ПЛИС от компании Altera.
- Проверьте работоспособность установленного программного обеспечения. Запустите Quartus Prime и убедитесь, что оно успешно работает и может обнаружить вашу ПЛИС.
- Импортируйте свой проект из ПЛИС 5576ХС4Т в среду разработки Quartus Prime. Проверьте, что все файлы и настройки корректно загружены и проект готов к работе.
После выполнения всех подготовительных шагов вы будете готовы заменить ПЛИС 5576ХС4Т на плис Altera и продолжить работу над вашим проектом.
Выбор плис Altera для замены
При выборе плис Altera для замены ПЛИС 5576ХС4Т необходимо учитывать следующие факторы:
- Технические требования проекта: перед выбором плис необходимо определить, какие функциональные возможности и характеристики должны быть реализованы. Это позволит подобрать плис с необходимыми параметрами, такими как количество логических элементов, количество блоков памяти, скорость работы и др.
- Совместимость с остальными компонентами системы: при замене плис необходимо учесть совместимость с другими компонентами, такими как микроконтроллеры, периферийные устройства и интерфейсы. Также следует учитывать поддерживаемые интерфейсы, например, Ethernet, USB, HDMI и др.
- Доступность и цена: важным фактором является доступность выбранной плис и ее цена. Необходимо убедиться, что выбранная модель плис легко доступна и что ее цена соответствует бюджету проекта.
После анализа вышеперечисленных факторов можно приступать к выбору конкретной модели плис Altera. Для этого можно использовать каталоги и специализированные сайты производителя. Поиск можно осуществлять по параметрам и характеристикам плис, а также по функциональным возможностям и поддерживаемым интерфейсам.
Важно помнить, что при замене ПЛИС 5576ХС4Т на плис Altera необходимо учесть различия в архитектуре и программировании плис. Возможно, потребуется перенос и адаптация кода проекта для новой плис.
Примерные модели плис Altera для замены ПЛИС 5576ХС4Т:
Выбор плис Altera для замены ПЛИС 5576ХС4Т требует тщательного анализа технических требований проекта, совместимости с другими компонентами и доступности. Также необходимо учесть различия в архитектуре и программировании плис. Начиная с 50-ти лет, назад процессоры создавались в исключительно специалистами, имеющими настоящие навыки работы с железом. Теперь же проектирование оборудования и разработка программного обеспечения проходят максимально независимо друг от друга. Это позволяет каждому специалисту уделить наибольшее внимание своей области применения и не держать в голове тонны «хардвара». Процессоры и плис имеют тот же функционал, но их основная черта заключается в том, что плис, в отличие от процессоров, могут быть програнмируемыми и кастомизируемыми непосредственно для нужд проекта.
Получение необходимых материалов для замены
Перед тем, как начать замену ПЛИС 5576ХС4Т на плис Altera, необходимо подготовить все необходимые материалы. Ниже приведен список необходимых компонентов:
- Плис Altera, совместимая с вашей системой и требованиями проекта.
- Отвертка и другие инструменты для снятия и установки ПЛИС.
- Набор проводов и разъемов, необходимых для соединения новой плис с системой.
- Руководство по замене ПЛИС для вашей конкретной системы.
Перед началом замены ПЛИС, убедитесь, что у вас есть все необходимые компоненты и материалы. Если вы не уверены в правильности подбора плис или других компонентов, обратитесь за помощью к специалисту или производителю пытаемой системы.
Замена ПЛИС 5576ХС4Т на плис Altera
Если вам требуется заменить ПЛИС модели 5576ХС4Т на ПЛИС Altera, в данной статье представлены пошаговые инструкции для выполнения данной операции. Следуя этим рекомендациям, вы сможете успешно осуществить замену и продолжить работу с устройством.
- Перед началом замены убедитесь, что вы имеете все необходимые инструменты и компоненты.
- Выключите питание устройства и отсоедините все провода и кабели, подключенные к ПЛИС 5576ХС4Т.
- Осторожно удалите старую ПЛИС из её разъёмов. Для этого может потребоваться использование инструментов, таких как пинцет или отвертка.
- Подготовьте новую ПЛИС Altera, убедившись, что она совместима с вашим устройством.
- Следуя инструкциям производителя ПЛИС Altera, аккуратно установите её в разъёмы, обратив внимание на правильную ориентацию.
- Обратно подключите все провода и кабели к новой ПЛИС Altera.
- Включите питание устройства и проверьте его работоспособность. Убедитесь, что все функции работают корректно и нет неполадок.
- Если при замене возникают какие-либо проблемы или ошибки, обратитесь за помощью к специалистам или производителю ПЛИС Altera.
Теперь вы знаете, как выполнить замену ПЛИС 5576ХС4Т на ПЛИС Altera. Следуя этой пошаговой инструкции, вы сможете успешно выполнить данную операцию без проблем.
Подключение плис Altera к существующей системе
Подключение плис Altera к уже существующей системе требует выполнения нескольких шагов:
- Определение интерфейсов: перед началом подключения плис Altera к системе необходимо определить требуемые интерфейсы для общения с остальными компонентами системы. Это может включать в себя выбор протоколов связи, определение количества входов и выходов и другие параметры.
- Разработка схемы: на основе определенных интерфейсов необходимо разработать схему, которая определит, как плис Altera будет взаимодействовать с остальными компонентами системы. В данном шаге могут использоваться специальные программы для разработки и моделирования схем, такие как Quartus II.
- Проектирование и реализация: после разработки схемы необходимо перейти к проектированию и реализации платы с плис. Этот шаг включает в себя выбор и размещение необходимых компонентов на плате, проведение трассировки и проверку соответствия схемы проекту.
- Наладка и тестирование: после проектирования платы и установки плис Altera необходимо провести наладку и тестирование системы. При проведении тестов рекомендуется использовать специальные программные средства, позволяющие проверить работоспособность плис и ее взаимодействие с остальными компонентами системы.
Подключение плис Altera к существующей системе требует специальных знаний и навыков в области проектирования электронных устройств. Рекомендуется обращаться к специалистам или использовать готовые решения и схемы, разработанные производителем плис, для упрощения и ускорения данного процесса.
Программирование плис Altera для работы с системой
Программирование плис Altera является важной частью процесса создания системы на базе данного устройства. Для работы с системой необходимо правильно настроить и программировать плис Altera.
Вот пошаговая инструкция, которая поможет вам программировать плис Altera:
- Подготовьте необходимые инструменты: плату разработки Altera, кабель USB, программное обеспечение Quartus Prime.
- Подключите плату разработки Altera к компьютеру с помощью кабеля USB.
- Установите программное обеспечение Quartus Prime на компьютер и запустите его.
- Создайте новый проект в Quartus Prime. Укажите необходимые параметры проекта, такие как имя проекта, целевое устройство и место сохранения проекта.
- Откройте в Quartus Prime файл описания плис Altera (обычно с расширением .v или .vhdl) и добавьте его в проект.
- Скомпилируйте проект, чтобы проверить его на наличие ошибок и предупреждений.
- Программируйте плис Altera, нажав на соответствующую кнопку в Quartus Prime.
- Дождитесь окончания процесса программирования и проверьте статус программирования.
После выполнения всех этих шагов плис Altera будет правильно настроена и программирована для работы с системой. Вы можете приступить к тестированию и отладке системы на базе плис Altera.
Не забывайте сохранять изменения в проекте и регулярно делать резервные копии программы плис Altera, чтобы избежать потери данных при возможных сбоях или сбросах.
Настройка системы после замены
После замены ПЛИС 5576ХС4Т на плис Altera необходимо выполнить ряд настроек системы для корректной работы. Далее приведены основные шаги, которые следует выполнить:
- Загрузите соответствующее программное обеспечение для ПЛИС Altera на ваш компьютер.
- Подключите программатор к ПЛИС Altera и убедитесь, что он правильно распознал устройство.
- Откройте программу для настройки ПЛИС и выберите соответствующую модель ПЛИС Altera.
- Загрузите на ПЛИС проект, который вы использовали с предыдущей ПЛИС 5576ХС4Т.
- Убедитесь, что настройки проекта соответствуют новой ПЛИС Altera. Если необходимо, внесите соответствующие изменения в проект.
- Скомпилируйте проект и убедитесь, что он проходит проверку на ошибки и валидацию.
- Подключите ПЛИС Altera к целевой системе и убедитесь, что все соединения выполнены корректно.
- Запустите загрузку проекта на ПЛИС Altera с помощью программатора.
- Дождитесь успешного завершения загрузки проекта и проверьте его работоспособность в системе.
После выполнения этих шагов система должна успешно работать с новой ПЛИС Altera. Если возникнут проблемы, рекомендуется проверить все соединения и настройки проекта, а также прочитать документацию по ПЛИС Altera для получения дополнительной информации.
Вопрос-ответ
В чем преимущества замены ПЛИС 5576ХС4Т на плис Altera?
Замена ПЛИС 5576ХС4Т на ПЛИС Altera может иметь несколько преимуществ. Некоторые из них могут быть более высокая производительность, большая емкость памяти, более широкий набор функциональности и возможность более глубокого интегрирования с другими компонентами системы.
Как выбрать подходящую ПЛИС Altera для замены 5576ХС4Т?
Выбор подходящей ПЛИС Altera для замены 5576ХС4Т зависит от нескольких факторов, таких как требуемая производительность, емкость памяти, требования к входным и выходным интерфейсам и функциональность. Для выбора подходящей плис следует обратиться к спецификациям и документации ПЛИС Altera и сравнить их с требованиями вашей системы.
Можно ли без проблем заменить ПЛИС 5576ХС4Т на плис Altera в любой схеме?
Замена ПЛИС 5576ХС4Т на ПЛИС Altera может быть связана с некоторыми трудностями в зависимости от конкретной схемы. Возможно потребуется внесение изменений в схему и программное обеспечение для обеспечения совместимости с новой ПЛИС Altera. Важно обратиться к документации, спецификациям и руководствам по замене, чтобы убедиться, что все необходимые изменения будут внесены.
ПЛИС — мои первые шаги

Недавно я все-таки сделал свой первый шаг к ПЛИС и призвал вас за собой. Мое фанатическое увлечение ПЛИС и идея о том, что ПЛИС является лучшей платформой для создания любых устройств приобрела религиозный характер. Моя секта ПЛИСоводов проповедует полный отказ от микроконтроллеров, а особо экстремистская ветвь проповедует отказ не только от софт процессоров, но и вообще от последовательных вычислений!
Как всегда, постижению истин помогло решение реальных задач. В сегодняшней проповеди я хотел бы рассказать об испытаниях, которые выпадают на долю молодого ПЛИСовода. Преодолевая испытания мы постигаем истину. Но остаются вопросы, на которые я не нашел ответов. Поэтому я бы очень хотел, чтобы братья-хабровчане — ПЛИСоводы с опытом, поучаствовали в обсуждении, протянули руку помощи своим младшим собратьям.
Эта статья для новичков. В ней я опишу типичные проблемы, вопросы, заблуждения, ошибки, которые могут появиться в самом начале обучения (потому что они появились у меня). Однако, контекст статьи ограничен тем, что разработка ведется на ПЛИС от Altera в среде Quartus на языке Verilog.
Трудно жить ничего не делая, но мы не боимся трудностей!
Одна из причин, по которой многие не начинают изучать Verilog вот прямо сейчас — это отсутствие реальной ПЛИС. Кто-то не может заказать, потому что дорого, а кто-то потому, что не знает, что именно взять (вопрос выбора рассмотрен в предыдущей статье). Кому-то ПЛИС пока еще едет по почте.

Но в своих разработках я пришел к тому, что наличие реальной ПЛИС мне требуется уже на финальном этапе разработки, когда нужно протестировать проект «в железе». Речь о том, что бóльшую часть времени я провожу в отладке своего кода с помощью симуляторов.
Поэтому мой совет: отсутствие ПЛИС — это не повод бездействовать. Пишите и отлаживайте модули для ПЛИС в симуляторах!
Симулятор для Verilog
Итак, чем же развлечь себя скучными длинными рабочими днями (если они таковыми являются)? Конечно же освоеним ПЛИС! Но как же затащить на работу целую среду разработки от Altera, если она весит 3 ежемесячных рабочих лимита интернета? Можно принести на флешке! Но если предметом изучения является Verilog, то можно ограничиться блокнотом, компилятором IcarusVerilog, а результат смотреть в GTK Wave.
Попробовать прямо сейчас
Для начала работы в среде Windows, достаточно скачать по ссылке http://bleyer.org/icarus/ файл установки iverilog-20130827_setup.exe (development snapshot) [11.2MB]
Установка трудностей не вызывает. Теперь немного забежим вперед: создадим папку для проекта и в ней пару файлов с пока что не понятным содержимым:
Файл-модуль с кодом для тестирования модулей — bench.v
`timescale 1ns / 100 ps module testbench(); reg clk; initial begin $display("start"); $dumpfile("test.vcd"); $dumpvars(0,testbench); clk
В файле bench.v описан тестовый модуль testbench, в нем создан тестовый источник сигнала clk (меандр). Другие модули будут создаваться в отдельных файлах, либо логику можно протестировать сначала в этом модуле, а потом вынести в отдельный модуль. Потом в модуль testbench будут добавляться экземпляры этих модулей, где мы будем подавать на их входы тестовые сигналы и получать из них результаты. Из модулей мы можем строить иерархию, думаю это понятно всем.
BAT Файл, который скомпилирует и просимулирует главный модуль, добавив другие модули из текущей папки - makev.bat
iverilog -o test -I./ -y./ bench.v vvp test pause
После запуска этого файла мы увидим на экране текст, заданный в $display (это отладочный вывод), значение же сигналов и регистров схемы будут находиться в файле test.vcd. Кликаем по файлу и выбираем программу для просмотра — GTKWave (в моем случае D:\iverilog\gtkwave\bin\gtkwave.exe). Еще пару кликов и мы увидим наш clk.
Практически, каждый свой новый модуль я создаю в блокноте и отлаживаю IcarusVerilog. Следующим этапом после такой отладки идет проверка модулей в Quartus. Хотя в Quartus тоже есть свой симулятор, но я его использую реже. Причина в простоте обновления кода и просмотра результата в IcarusVerilog: сохранил изменения в файле, запустил BAT, нажал кнопку «обновить» в GTKWave — все! В ModelSim для этого требуется чуть больше движений, но он тоже не плох, особенно на данных сложных структур.
После симуляции наступает пора запуска Quartus. Но загружать прошивку в ПЛИС пока еще рано. Нужно убедиться, что божественная вычислительная машина правильно поняла, какую схему мы хотим получить, изложив свои мысли в виде Verilog'а.
Разница между симуляцией и работой в реальном железе
Первое время я, подобно слепому котенку, бился головой об косяки. Казалось бы правильный код, не работает совсем, либо работает не так, как предполагаешь. Либо вот только что работал, а теперь внезапно перестал!
Пытливый котенок, начинает искать взаимосвязь между своими действиями и результатом («голубиное суеверием»).
Самая большая драма
Ниже будет список странностей, но сначала самая большая драма, с которой я столкнулся: не все конструкции Verilog могут быть синтезированы в железе. Это связано с тем, что на Verilog описывается не только аппаратная логика, которая объединяется в модули и работает в железе. На том же Verilog описываются тестовые модули, которые объединяют тестируемые модули, подают на их входы тестовые сигналы и в целом существуют только для проверки на компьютере. Изменение значений сигналов во времени задается конструкциями, содержащим знак "#" в тексте Verilog. Такой знак означает задержку во времени. В примере выше именно так генерируется сигнал CLK. И я грешным делом думал, что таким же образом внутри настоящей ПЛИС можно генерировать, к примеру, последовательность бит для отправки сообщения по RS232. Ведь на вход ПЛИС подан сигнал от генератора 50 МГц! Может быть она как-то на него ориентируется. Как оказалось, я не единственный, кто надеялся на чудо: 1, 2, 3, 4, 5. Реальность как всегда оказывается более суровой: ПЛИС это набор логики и временная задержка в ней может появиться при использовании счетчика, значение которого увеличивается тактами от генератора до заданной величины, либо как-то иначе (но всегда аппаратно).
Список найденных странностей
Удивительные вещи, однако, прочтение книг [1,2] проливает свет на эту бесовщину. Более того, обретается благодать.
Если обозначить reg, то не факт, что он будет создан
Как я пришел к проблеме? Допустим есть один модуль, на вход которого я должен подавать значение (по типу параметра). В перспективе, этот параметр должен будет изменяться во времени в зависимости от каких-то внешних событий. Поэтому значение должно хранится в регистре (reg). Но реализация приема внешних событий пока не реализована, поэтому я регистр не меняю, а просто задаю ему изначальное значение, которое в дальнейшем не меняется.
//задаю 8 битный регистр reg [7:0] val; //инициирую его значением initial val

Казалось бы в чем подвох? В императивных ЯП мы часто задаем переменные в качестве констант и потом ни разу их не меняем и все работает. Что же мы видим в железе?
Во-первых, мы не видим регистра. Во-вторых, на вход модуля подано 8'hFF вместо наших 8'd0240! И этого уже достаточно для того, чтобы схема заработала не так, как мы планировали. То, что регистра нет — это нормально. В Verilog можно описывать логику разными способами, в то же время, синтезатор всегда оптимизирует аппаратную реализацию. Даже если написать блок always и в нем работать с регистрами, но при этом выходное значение всегда будет определяться входными, то применение регистра тут окажется лишним и синтезатор его не поставит. И наоборот, если при каких то значениях входных данных выходное значение не меняется, то тут никак не обойтись без регистра-защелки и синтезатор его создаст. (Книга 1 стр. 88-89). Что из этого следует? Если мы начнем менять значение регистра, например, в зависимости от нажатии кнопок, то геристр уже будет создан и все будет работать так, как нужно. Если же окажется, что кнопки ничего не меняют, то синтезатор его опять же выкинет и опять все поломается. Что же делать с константой? Нужно подать ее напрямую на вход модуля:
bbox bb_01(.in_data(8'd0240), .out_data(out_data));

Теперь на входе модуля мы имеем правильное значение:
Остается загадкой, почему при сокращении регистра, его значение в initial не подставляется на вход модуля.
Размерность wire лучше задавать самому.
При разработке в среде Quartus, допускается не задавать линии wire заранее. В этом случае они будут созданы автоматически, но об этом будет выдано предупреждение (warning). Проблема заключается в том, что разрядность wire будет 1-бит, а если порты будут иметь разрядность больше 1 бита, то значение не будет передано.
bbox bb_01(.in_data(8'd0240), .out_data(int_data)); other_bbox bb_02(.in_data(int_data), .out_data(out_data));
Предупреждение
Warning (10236): Verilog HDL Implicit Net warning at test.v(15): created implicit net for "int_data"

Результат:
Как видим, один бит подключен, а остальные 7 бит получаются не подключены (NC). Чтобы такой проблемы не было — нужно создать wire самостоятельно. Не зря компилятор IcarusVerilog выдает не warning, а ошибку, если wire не задан заранее.
wire [7:0] int_data; bbox bb_01(.in_data(8'd0240), .out_data(int_data)); other_bbox bb_02(.in_data(int_data), .out_data(out_data));

Компьютер не будет лазать по модулям, смотреть, какая разрядность портов. К тому же, разрядность может оказаться разной, а на вход модуля или с выхода берутся не все биты, а какие-то определенные.
Нельзя использовать выход логической функции, в качестве тактового сигнала
Иногда в проекте требуется снизить тактовую частоту, либо ввести временную задержку в N тактов. Новичёк может применить счетчик и дополнительную схему определения достижения счетчиком определенного значения (схема сравнения). Однако, если напрямую использовать выход со схемы сравнения в качестве тактового, то могут возникнуть проблемы. Это связано с тем, что логической схеме требуется некоторое время для установки стабильного значения на выходе. Эта задержка смещает фронт сигнала, проходящего через разные части логической схемы относительно тактового, в итоге получаются гонки, метастабильность, асинхронщина. Даже довелось однажды услышать реплику об этом в качестве критики ПЛИС: «с ПЛИС постоянные проблемы — гонки сигналов».
то становится ясно, каким образом разрабатываются устройства на ПЛИС: вся задача делится на аппаратные блоки, а данные между ними движутся по конвеерам, синхронно защелкиваясь в регистрах по тактовому сигналу. Таким образом, зная общую тактовую частоту, синтезатор рассчитывает максимальную частоту работы всех комбинаторных схем, определяет, укладывается ли их скорость к период такта и делает вывод — будет или не будет работать схема в ПЛИС. Все это происходит на этапе синтеза. Если схемы укладываются в параметры, то можно прошивать ПЛИС.
Для полного понимания, стоит прочитать Altera handbook на предмет «clock domains», а так же разобраться с тем, как задавать параметры рассчета TimeQuest для проекта.
Таким образом, для разработчиков устройств на базе ПЛИС созданы все необходимые методологии, и если их придерживаться, то проблем не будет.
А что, если я хочу пойти против системы?
Порядок разработки и поведение синтезатора схем подводит нас к выводу о том, что же такое ПЛИС на аппаратном уровне. Это синхронные схемы. Поэтому, среди целей синтезатора — уложиться во временные интервалы. Для этого он, к примеру, упрощает логические выражения, выбрасывает из синтеза части схем, которые не используются другими схемами и не привязаны к физическим выводам ПЛИС. Асинхронные решения и аналоговые трюки не приветствуются, потому что их работа может быть непредсказуемой и зависеть от чего угодно (напряжение, температура, техпроцесс, партия, поколение ПЛИС), а поэтому не дает гарантированного, повторяемого, переносимого результата. А всем же нужен стабильный результат и общие подходы к проектированию!
Но что же делать, если вы не согласны с мнением синтезатора о том, что нужно выкидывать неизменяемые регистры, сокращать логические схемы? Как быть, если хотите делать схемы с асинхронной логикой? Нужна тонкая настройка? А может быть вы сами хотите собрать схему на низкоуровневых компонентах ПЛИС? Легко! Спасибо разработчикам Altera за такую возможность и подробную документацию!
Как это сделать? Можно попробовать графический редактор схем. Вы, возможно, слышали о том, что Quartus позволяет рисовать схемы? Можно самому выбрать стандартные блоки и соединить их. Но это не решение! Даже нарисованная схема будет оптимизирована синтезатором, если на это будет возможность.
В итоге мы приходим к старой истине: если ничего не помогает — прочитайте инструкцию. А именно «Altera Handbook» часть под названием «Quartus II Synthesis Options».
Начнем с того, что описывая архитектуру на Verilog определенным образом, можно получить определенный результат. Вот примеры кода для получения синхронного и асинхронного RS триггера:
//модуль синхронного RS триггера module rs(clk, r, s, q); input wire clk, r,s; output reg q; always @(posedge clk) begin if (r) begin q

В этом случае получится синхронный триггер.
Если не брать во внимание тактовый сигнал и переключаться в зависимости от любых изменений r и s, то в результате получится элемент с асинхронной установной значений — защелка (latch).
//пример модуль асинхронного RS триггера module ModuleTester(clk, r, s, q); input wire clk, r,s; output reg q; always @(r or s) begin if (r) begin q

Но можно пойти еще дальше и самому создать защелку из примитива (примитивы доступны так же, как любой другой модуль Verilog):
module ModuleTester(clk, r, s, q); input wire clk, r,s; output reg q; DLATCH lt(.q(q), .clrn(~r), .prn(~s)); endmodule
В итоге, весь «обвес» на входе защелки, который синтезатор посчитал ненужным, исчезнет и мы получим именно то, что хотели:

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

Но для увеличения периода я возьму 4 элемента, но только один из них будет с инверсией:
module ModuleTester(q); output wire q; wire a,b,c,d; assign a = b; assign b = c; assign c = d; assign d = ~a; assign q = a; endmodule
Но получается сокращение (1 элемент, вместо четырех). Что логично. Но мы то задумывали линию задержки.


Но если поставить синтезатору условие, что линии a,b,c,d не сокращать, то получится то, что мы задумали. Для подсказки синтезатору применяются директивы. Один из способов указания — это текст в комментарии:
module ModuleTester(q); output wire q; wire a,b,c,d /* synthesis keep */; // ^^^--- это директива для синтезатора assign a = b; assign b = c; assign c = d; assign d = ~a; assign q = a; endmodule
А вот и результат — цепочка из четырех элементов: 

И это далеко не все! Оставлю на радость самостоятельного изучения: работу с case и директиву для реализации его в качестве RAM/ROM или логической схемой; работу со встроенными блоками памяти (RAM/ROM); выбор реализации умножения — аппаратным умножителем или логической схемой.
Выводы
Цитируя статью, хочу сказать, что «ПЛИС-ы / FPGA — не процессоры, «программируя» ПЛИС (заполняя конфигурационную память ПЛИС-а) вы создаете электронную схему (хардвер), в то время как при программировании процессора (фиксированного хардвера) вы подсовываете ему цепочку написанных в память последовательных инструкций программы (софтвер)».
Причем, как бы мне изначально не хотелось сильно не привязываться к конкретной железяке, но иногда, чтобы более эффективно и экономно использовать ресурсы, приходится работать на низком уровне. Часто этого можно избежать, если правильно разрабатывать синхронные схемы. Однако совсем забыть, что это железо — не получается.
Еще хочу сказать, что фанатизма и максимализма со временем поубавилось. Сначала я стремился все действия и рассчеты на ПЛИС выполнять за один такт, потому что ПЛИС это позволяет. Однако, это требуется далеко не всегда. Вычислительные ядра софт процессоров мне пока не довелось использовать, однако применение state machines для работы по определенному алгоритму — стало нормой. Вычисления не за 1 такт, временные задержки в несколько тактов из за применения конвееров — это норма.
Книги, которые мне очень помогли
1. В.В. Соловьев — Основы языка проектирования цифровой аппаратуры Verilog. 2014
2. Altera: Quartus II Handbook
3. Altera: Advanced Synthesis Cookbook
4. Altera: Designing with Low-Level Primitives
Статьи по тематике ПЛИС, Altera и Verilog
PS
Спасибо всем, кто прочитал до этого места. Надеюсь, что что с этой статьей принцип работы и использования ПЛИС станет хотя бы немного ближе и понятнее. А в качестве примера применения в реальном проекте, я готовлю к выпуску на этой неделе еще одну статью. Проект Функциональный DDS rенератор на ПЛИС
- Программирование
- FPGA
- Программирование микроконтроллеров
НОВАЯ АРХИТЕКТУРА ПОДЧИНЕННЫХ УСТРОЙСТВ ETHERNET POWERLINK НА БАЗЕ ПРОГРАММИРУЕМЫХ ЛОГИЧЕСКИХ ИНТЕГРАЛЬНЫХ СХЕМ Текст научной статьи по специальности «Компьютерные и информационные науки»
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Романов Алексей Михайлович
В работе решается проблема реализации подчиненных устройств Ethernet POWERLINK на базе программируемых логических интегральных схем (ПЛИС) с минимальным использованием логических ячеек и блоков памяти. Для этого предлагается новая модульная архитектура, ресурсоемкость которой может гибко настраиваться в зависимости от требуемого функционала. На базе предложенной архитектуры было создано первое в России устройство Ethernet POWERLINK, прошедшее сертификацию Ethernet POWERLINK Standartization Group на соответствие стандарту. По результатам экспериментальных исследований было продемонстрировано, что новая архитектура требует от 3.5 до 9 раз меньше логических ресурсов ПЛИС и до 126 раз меньший объём блочной памяти для реализации устройств Ethernet POWERLINK. Также важным результатом является возможность реализации разработанных решений на базе отечественных микросхем ПЛИС, в том числе в радиационно-стойком исполнении, что позволяет использовать их при создании авиационной и космической технике.
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Романов Алексей Михайлович
БЕСПРОВОДНАЯ СИНХРОНИЗАЦИЯ БОРТОВЫХ ВЫЧИСЛИТЕЛЬНЫХ УСТРОЙСТВ ПРИ ПОМОЩИ WIFI
ОБЕСПЕЧЕНИЕ МАСШТАБИРОВАНИЯ И ЗАДАННОГО УРОВНЯ ОТКАЗОУСТОЙЧИВОСТИ СИСТЕМ УПРАВЛЕНИЯ РОБОТОВ
СОЗДАНИЕ И ОТРАБОТКА МАРШРУТИЗАТОРА В СТАНДАРТЕ SPACEWIRE НА ОТЕЧЕСТВЕННОЙ ПРОГРАММИРУЕМОЙ ЛОГИЧЕСКОЙ ИНТЕГРАЛЬНОЙ СХЕМЕ
ОЦЕНКА ТОЧНОСТИ И СИНТЕЗ НЕЛИНЕЙНЫХ ИМПУЛЬСНЫХ МАТЕМАТИЧЕСКИХ ОПЕРАЦИЙ
Проектирование конфигурируемых процессоров на базе ПЛИС
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
A NOVEL ARCHITECTURE FOR FIELD-PROGRAMMABLE GATE ARRAY-BASED ETHERNET POWERLINK CONTROLLED NODES
The article solves the problem of Field-Programmable Gate Array (FPGA)-based Ethernet POWERLINK controlled node implementation with minimal application of both logical cells and memory blocks. As a solution, a novel modular architecture is proposed, which resource intensiveness can be flexibly adjusted depending on the required functionality. Unlike previously known solutions, the proposed architecture does not employ soft-processors and does not require the incoming frames buffering. All data is processed “on the fly”, which allows the node to send a response to the request from the managing node with the minimum latency allowable by the Ethernet standard. The novel architecture employs one shared kernel for interaction with the Ethernet physical layer chip (PHY). This kernel forms a common data channel to which all other modules are connected. Each module processes frames of a certain type (synchronous, asynchronous, cross-traffic frame) and generates corresponding responses. Based on the proposed architecture, the first Russian Ethernet POWERLINK device was created, which compliance with the Standard was certified by Ethernet POWERLINK Standardization Group. By the results of experimental studies, it was demonstrated that the novel architecture requires from 3.5 to 9 times less FPGA logic resources, and up to 126 times less block memory for the of Ethernet POWERLINK devices implementation. The result of no less importance is the possibility of proposed solutions implementation based on FPGA chips from Russian vendors, including those in radiation-resistant version, which allows apply them in aerospace technology.
Текст научной работы на тему «НОВАЯ АРХИТЕКТУРА ПОДЧИНЕННЫХ УСТРОЙСТВ ETHERNET POWERLINK НА БАЗЕ ПРОГРАММИРУЕМЫХ ЛОГИЧЕСКИХ ИНТЕГРАЛЬНЫХ СХЕМ»
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
Новая архитектура подчиненных устройств Ethernet POWERLINK на базе программируемых логических интегральных схем
МИРЭА - Российский технологический университет, проспект Вернадского, 78, Москва, 119454, Россия e-mail: romanov@mirea.ru
В работе решается проблема реализации подчиненных устройств Ethernet POWERLINK на базе программируемых логических интегральных схем (ПЛИС) с минимальным использованием логических ячеек и блоков памяти. Для этого предлагается новая модульная архитектура, ресурсоемкость которой может гибко настраиваться в зависимости от требуемого функционала. На базе предложенной архитектуры было создано первое в России устройство Ethernet POWERLINK, прошедшее сертификацию Ethernet POWERLINK Standartization Group на соответствие стандарту. По результатам экспериментальных исследований было продемонстрировано, что новая архитектура требует от 3.5 до 9 раз меньше логических ресурсов ПЛИС и до 126 раз меньший объём блочной памяти для реализации устройств Ethernet POWERLINK. Также важным результатом является возможность реализации разработанных решений на базе отечественных микросхем ПЛИС, в том числе в радиационно-стойком исполнении, что позволяет использовать их при создании авиационной и космической технике.
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
Ключевые слова: полевая шина, программируемые логические интегральные
схемы, Ethernet POWERLINK, стандарт 61158, отечественная элементная база.
Ethernet POWERLINK, наравне с PROFINET IRT, EtherCAT и SERCOS III, является на сегодняшний день одной из наиболее распространённых промышленных полевых шин реального времени на базе Ethernet [1, 2], применяемых в робототехнике, мехатронике и автоматизированных системах управления технологическим процессом (АСУ ТП). Она имеет высокую пропускную способность, обеспечивает точную синхронизацию устройств между собой, возможность информационного обмена с циклами до 200 мкс и джиттером менее 1 мкс. Благодаря открытому стандарту IEEE 61158 и лицензии BSD, под которой распространяется все программное обеспечение, необходимое для создания новых узлов Ethernet POWERLINK, использование данной шины не может быть ограничено со стороны зарубежных правообладателей, что делает её крайне перспективной с точки зрения импортозамещения.
Рассмотрим пример системы управления роботизированной конвейерной линией (рис. 1 ), информационный обмен в которой реализован при помощи шины Ethernet POWERLINK, с точки зрения реализации отдельных ее элементов.
За реализацию общего закона управления отвечает программируемый
логический контроллер (ПЛК) или промышленный компьютер. Он же с точки зрения
полевой шины Ethernet POWERLINK является ведущим устройством. Как правило,
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
устройства данного типа имеют высокую вычислительную мощность и оснащаются
полнофункциональными операционными системами реально времени, такими как
VxWorks, QNX или Linux с патчем ядра RT PREEMPT. Для построения на их базе
ведущего устройства Ethernet POWERLINK существуют готовые программные
решения [3-7], построенные на основе открытого стека протоколов
Остальные элементы рассматриваемой системы управления (рис. 1) служат для реализации сформированного закона управления и с точки зрения полевой шины Ethernet POWERLINK является подчиненными устройствами. Их условно можно разделить на две группы: «сложные» и «простые» устройства (рис. 2).
Рис. 1. Пример системы управления роботизированной конвейерной линией с информационным обменом по шине Ethernet POWERLINK. Ведущие устройство: 1 — ПЛК или промышленный компьютер. Подчиненные устройства: 2 — асинхронные приводы, 3 — датчик расхода электроэнергии, 4 — световой барьер, 5 — робот, 6 — упаковочная машина с системой диагностики, подключаемой по полевой шине
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
Четкая граница разделения между данными группами отсутствует, при этом
для каждой из них можно выделить ряд общих особенностей, характерных для входящих в нее устройств.
К «сложным» устройствам относятся роботы, специализированные машины и станки с ЧПУ, подключаемые по полевой шине, многофункциональные сервоприводы, промышленные системы технического зрения и т. д. Основными отличительными признаками данной группы являются: широкий функционал, сложные алгоритмы управления, большой объем данных передаваемых между подчиненным и ведущим устройствами. Как правило, такие устройства имеют высокую вычислительную мощность, а в некоторых случаях они оснащаются полнофункциональными операционными системами. Для реализации функционала Ethernet POWERLINK на их основе, как и в случае с ведущими устройствами, подходят решения на базе openPOWERLINK. При этом стоимость элементов полевой шины несоизмеримо мала по сравнению с себестоимостью «сложного» устройства.
Рис. 2. Условное распределение подчиненных устройств Ethernet POWERLINK на две группы: «сложный» и «простые» устройства. Цветом показана степень соответствия устройств каждой группе (черный цвет показывает максимальное соответствие)
К «простым» устройствам относятся системы дискретного и аналогового ввода/вывода, интеллектуальные датчики, частотные преобразователи и т. д. Отличительными чертами данной группы являются: монофункциональность (например измерение одной физической величины или управление одним исполнительным устройством), простые алгоритмы управления и обработки сигналов, малый объем данных передаваемых между подчиненным и ведущим устройствами. Такие устройства, как правило, реализуются на базе сигнальных процессоров, микроконтроллеров и программируемых логических интегральных схем (ПЛИС) без использования операционных систем. Себестоимость является ключевой характеристикой устройств данной группы, на которую существенно влияет каждый дополнительный элемент, в том числе компоненты, необходимые для организации связи по полевой шине. При этом количество устанавливаемых
«простых» устройств, как правило существенно превосходит количество
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
«сложных», что делает снижение себестоимости реализации Ethernet POWERLINK
актуальным именно за счёт «простых» подчиненных устройств, поскольку это
позволит наиболее существенно снизить себестоимость внедрения данной шины в
Целью данной работы является разработка новой модульной архитектуры
аппаратно-программного обеспечения ПЛИС, предназначенной для реализации
«простых» подчиненных устройств Ethernet POWERLINK.
1. Способы реализации подчиненных устройств Ethernet POWERLINK На сегодняшний день существует три наиболее распространённых способа реализации подчиненных устройств Ethernet POWERLINK. Первым является использование специализированных микросхем, например Hilscher netX. Они позволяют в кратчайшие сроки вывести новое устройство на рынок, добавив в него поддержку не только Ethernet POWERLINK, но и других наиболее распространённых полевых шин, таких как EtherCAT, SERCOS-III или Ethernet/IP. Однако за счёт избыточного функционала данные микросхемы имеют достаточно высокую стоимость, что может быть не существенно при подготовке прототипа или для «сложных» устройств, но становится серьезной проблемой на пути сокращения себестоимости «простого» устройства. Также недостатком использования специализированных микросхем является их плохая взаимозаменяемость, что может привести к существенной переработке как программного, так и аппаратного обеспечения конечных продукта в случае снятия конкретной микросхемы с
производства или запрета на ее поставки в Россию.
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
Более универсальным способом является программная реализация на базе
стека протоколов openPOWERLINK, которая может быть выполнена как на базе
операционной системы Linux [7], так и на базе микроконтроллера без операционной
системы. Стоит отметить, что данных способ не позволяет работать с малыми
временами циклов (400 мкс и менее) даже на встраиваемых компьютерах, которые
фактически не применяются в «простых» устройствах. Это связано с особенностями
информационного обмена в сетях Ethernet POWERLINK (рис. 3) [8]. На каждом
цикле, который начинается с SoC пакета (здесь и далее названия пакетов о
протоколов передачи, используемых при реализации шины Ethernet POWERLINK
даны согласно [8]), ведущее устройство передает каждому подчиненному устройству
пакет PollRequest, содержащий уставки для регуляторов и исполнительных
устройств, в ответ на который получает от подчиненного устройства пакет
PollResponse, содержащий показания датчиков. Синхронную часть цикла завершает
пакет SoA, после которого могут передаваться служебные данные, не требующие
жесткой привязки ко времени.
Рис. 3. Порядок информационного обмена в сетях Ethernet POWERLINK
Поскольку время передачи пакетов PollRequest (Tpreq) и PollResponse (Tpres)
определяется исключительно объемом передаваемых данных между подчиненными и ведущим устройствами, единственным способом уменьшения минимально возможного времени цикла при фиксированном объеме передаваемой информации является сокращение времени Tg между пакетами PollResponse и PollRequest, а также сокращение временного слота Tf на передачу PollResponse, который фактически равен сумме Tg, Tpres и Tj, где Tj — максимальный джиттер задержки Tg. При реализации Ethernet POWERLINK на микроконтроллере обработка пакета PollRequest начинается только после того, как он целиком был принят и завершилась проверка контрольной суммы, что не минуемо приводит к увеличению Tg. Интерфейс обмена с микроконтроллером большинства микросхем Ethernet Media Access Control (MAC) включает в себя First-In-First-Out (FIFO) буффер, который не позволяет точно управлять моментом отправки пакета, увеличивая джиттер Tj, а в случае использования операционной системы Tj, может оказаться еще больше,
увеличиваясь за счет джиггера вносимого драйверами сетевого адаптера. Для
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
преодоления этих проблем применяется обработка Ethernet пакетов на аппаратном
уровне, которая позволяет «на лету» определить предназначенный узлу пакет
PollRequest и начать отправку ответного пакета сразу после окончания его приема,
снизив Tg до минимально допустимых в сетях Ethernet 960 нс и обеспечив Tj менее 1
мкс. В некоторых микроконтроллерах (например, TI AM335x Sitara) для аппаратной
обработки Ethernet пакетов предусмотрено специальное ядро, однако в большинстве
случаев разработчики реализуют этот функционал на ПЛИС.
Создание подчиненных устройств Ethernet POWERLINK на базе ПЛИС является наиболее перспективным способом реализации «простых» устройств, поскольку позволяет не только обеспечить работу в циклах менее 400 мкс с джиттером менее 1 мкс, но и реализовать все устройства по принципу системы-на-кристалле на базе одной микросхемы ПЛИС [9-12]. На сегодняшний день на рынке присутствуют ПЛИС в подавляющем большинстве корпусов: от TQFP, позволяющего проводить ремонт в полевых условиях, до миниатюрных BGA корпусов размером 2x2 мм и меньше; изготавливаются микросхемы стойкие к радиации, воздействию сверхнизких и сверхвысоких температур, что позволяет подобрать микросхему под любую задачу. При этом в случае использовании ПЛИС практически отсутствуют ограничения на количественный и качественный состав периферии, в то время как периферия микропроцессора строго определена в момент изготовления (например, если на микропроцессоре реализовано 3 интерфейса UART, то реализовать на нем 4 независимых RS-485 не возможно).
Подавляющее большинство описанных реализаций Ethernet POWERLINK при помощи ПЛИС (например, [6, 9, 13-15]), основаны на стеке openPOWERLINK, для которого существуют решения на базе микросхем Xilinx и Altera [7]. Их обобщенная структурная схема представлена на рис. 4.
Рис. 4. Структура схема решений Ethernet POWERLINK на базе стека openPOWERLINK
Архитектура данных решений создавалась для обеспечения максимальной
совместимости с исходным кодом стека openPOWERLINK, используемого в микропроцессорных системах. Её основными компонентами являются софт-процессор, на котором исполняется программный код openPOWERLINK, и подключенный к нему блок openMAC, который осуществляет приём, фильтрацию, буферизацию и своевременную отправку пакетов по сети Ethernet POWERLINK. К несомненным плюсам данной архитектуры можно отнести поддержку большинства дополнительных возможностей протокола Ethernet POWERLINK, таких, как динамическое переназначение состава пакетов, передаваемых в изохронной фазе цикла, возможность организации асинхронного обмена при помощи Service Data
Objects (SDO) пакетов, инициированного подчиненным узлом, простоту работы с
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
большими объектными словарями, поддержку асинхронного обмена через UDP и так
В тоже время, надо отметить, что этот функционал востребован в первую очередь в «сложных» подчиненных устройствах, а для большинства «простых» устройств его поддержка выражается в первую очередь в увеличении требуемого объема логической ёмкости ПЛИС, что в конечном счете сказывается на себестоимости продукта. И здесь проявляется главный недостаток решений на базе openPOWERLINK - их низкая масштабируемость. Из-за того, что стек реализован по сути программно, отключение или подключение дополнительных функций не позволяет существенно сократить объем используемых ресурсов ПЛИС, так как для запуска программы нельзя использовать 2/3 софт-процессора, даже если сократить эту программу на 30%. Использование программно реализованного стека также приводит к увеличению требований к объему памяти, что в конечном счете выражается в необходимости установки дополнительных внешних микросхем, что не только увеличивает массогабаритные размеры изделия и себестоимость за счет удорожания монтажа, но и потенциально снижает надежность конечного изделия.
2. Анализ требований и выбор путей реализации новой архитектуры
При разработке новой модульной архитектуры аппаратно-программного
обеспечения ПЛИС, предназначенной для реализации «простых» подчиненных
устройств Ethernet POWERLINK, основными требованиями предъявляемыми к
новой архитектуре являются: соответствие стандарту Ethernet POWERLINK [8],
возможность работы в циклах до 200 мкс, существенное снижение требований к
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
ресурсам ПЛИС по сравнению с решениями на базе стека openPOWERLINK. Также
исходя из запроса российской промышленности на импортозамещение к
разрабатываемому аппаратно-программному обеспечению предъявляется
требование совместимости с отечественной элементной базой.
На основе анализа стандарта Ethernet POWERLINK [8], функционала и объемов передаваемых данных для всех основных типов «простых устройств» (рис. 2) были выделены четыре типа информационного обмена, которые необходимо реализовать в разрабатываемой архитектуре: инициализация и управление подчиненным устройством при помощи NMT команд, синхронная передача данных в пакетах PollRequest/PollResponse, асинхронная передача данных по протоколу SDO via Asnd, прямой обмен между подчиненными устройствами (кросс-траффик). Первые два вида информационного обмена являются строго обязательными согласно [8], в то время как два других являются опциональными. Исходя из этого предлагается обработку NMT-команд и синхронную передачу данных реализовать в виде основного модуля аппаратно-программного обеспечения ПЛИС, а оставшиеся способы информационного обмена выполнить в виде дополнительных модулей, которые могут при необходимости добавляться или исключаться разработчиком в зависимости от функционала требуемого в конкретном изделии.
Как отмечалось выше, для обеспечения работы в циклах с периодом 200 мкс и
менее необходимо в первую очередь снижать время и джиттер формирования
ответного пакета PollResponse на запрос ведущего устройства, полученный в виде
пакета PollRequest. Для достижения минимально возможной задержки при отправке
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
PollResponse предлагается осуществлять обработку всех входящих пакетов «на лету»
без использования буферов и софт-процессоров.
Анализ отечественной элементной базы показал крайне ограниченный набор компонент, которые могут быть использованы для реализации современных полевых шин реального времени на базе Ethernet.
На данный момент на рынке присутствует всего одна микросхема физического уровня Fast Ethernet российского производства: Миландр 5600ВВ3Т. Она имеет интерфейс Media Independent Interface (MII) тактируемый частотой 25 МГц, в то время как большинство зарубежных аналогов оснащаются интерфейсом Reduced Media Independent Interface (RMII), который тактируется частотой 50 МГц. В связи с этим предлагается в рамках новой архитектуры выделить сопряжение с микросхемами физического уровня Ethernet в отдельный модуль, который будет выполнен в двух версия для интерфейсов MII и RMII соответственно.
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
Также анализ элементной базы показал, что в качестве платформы для создания подчиненных устройств на базе новой архитектуры, аналога зарубежных ПЛИС, могут выступать российские ПЛИС ВЗПП-С серий 5576 и 5578, а также полузаказные СБИС НПК ТЦ серий 5521 и 5529. Существующие решения на базе openPOWERLINK не могут быть реализованы при помощи данных микросхем сразу по нескольким причинам. Для ПЛИС главными проблемами является их недостаточная логическая ёмкость и высокие транспортные задержки, не позволяющие обеспечить работу аппаратно-программного обеспечения
подчиненного устройства Ethernet POWERLINK с необходимой частотой в 50 МГц.
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
При использовании полузаказных СБИС основной сложностью становится замена
проприетарных софт-процессоров Nios II и MicroBlaze, на которых основаны
решения openPOWERLINK и которые могут быть реализованы только на основе
микросхем Altera и Xilinx соответственно.
Для обеспечения совместимости с отечественной элементной базой при
создании новой архитектуры были приняты следующие требования и ограничения:
разработка аппаратно-программного обеспечения должна вестись на основе чистого
языка Verilog стандарта IEEE 1364-2001 без использования любых проприетарных
ядер ПЛИС; возможность работы как на частоте тактового генератора 25 МГц при
использовании интерфейса MII к микросхеме физического уровня, так и на частоте
50 МГц при использовании интерфейса RMII; малая ресурсоёмкость, позволяющая
реализовать подчиненное устройство Ethernet POWERLINK на микросхеме ПЛИС
серии 5576 (микросхемы данной серии имеют наименьшую степень интеграции из
рассмотренных в данной работе отечественных ПЛИС и СБИС, поэтому реализация
на их основе будет косвенно говорить о возможности реализации и на упомянутых
выше микросхемах других серий).
3. Новая архитектура для реализации подчиненных устройств на ПЛИС
В основе предложенной архитектуры лежит использование общего канала
данных (рис. 5), который формируется при помощи модуля сопряжения с
интерфейсами MII/RMII, идущими к микросхеме физического уровня. Во время
приема Ethernet пакета он побайтно поступает в общий канал данных. Все модули,
участвующие в обработке пакета независимо забирают данные из общего канала и
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
«на лету» их обрабатывают без применения какой-либо буферизации. Такой подход
позволяет не только оптимизировать каждый блок на прием именно тех пакетов, для
которых обработки которых он предназначен, но и сделать все модули аппаратно-
программного обеспечения ПЛИС максимально независимыми, позволяя их
компоновать в любом сочетании в зависимости от требуемого функционала.
Обработав пакет, каждый из блоков может сформировать ответный пакет, который
тут же поступает в общей канал данных откуда отправляется в сеть через
микросхему физического уровня. Отсутствие коллизий в общем канале данных при
отправке пакетов от нескольких независимых блоков гарантируется за счет того, что
разные модули предложенной архитектуры формируют ответы на различные
запросы ведущего устройства.
Рис. 5. Структурная схема аппаратно-программного обеспечения ПЛИС подчиненного устройства Ethernet POWERLINK на базе предложенной архитектуры
Минимально возможная конфигурация ведущего устройства включает в себя
помимо интерфейса к микросхеме физического уровня только модуль epl_tiny_cn и
память объектного словаря объемом 259Б. Модуль epl_tiny_cn является
обязательным для всех конфигураций новой архитектуры, он включает в себя: блок
epl_recv для обработки входящих пакетов SoC, PollRequest, SoA и ASnd (только
содержащих NMT команды ведущего устройства); блок epl_send, который
формирует ответные пакеты PollResponse, IdentResponse и StatusResponse; конечный
автомат, который обеспечивает управления режимами работы и переход узла от
неактивного состояния (NMT_CS_NOT_ACTIVE) в режим циклического обмена
(NMT_CS_OPERATIONAL) согласно [8]; блок расчета контрольной суммы. Блок
памяти объектного словаря используется модулем epl_tiny_cn только в режиме
чтения при формировании пакетов IdentResponse и StatusResponse. Поэтому для
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
оптимизации ресурсоемкости записи объектного словаря располагаются в памяти
строго в том же порядке, в котором они располагаются в указанных выше пакетах.
Это позволяет при формировании ответа ведущему устройству просто вычитывать
данные подряд из блока памяти, отказавшись от сложных схем выборки.
Для обеспечения настройки подчинённого устройства в асинхронной фазе цикла Ethernet POWERLINK в рамках предлагаемой архитектуры необходимо добавить на общий канал данных модуль epl_sdo_io, который реализует обмен при помощи SDO пакетов. Он включает в себя блоки epl_recv_sdo_asnd_ecrc и epl_send_sdo_asnd, которые служат для обработки входящих и формирования исходящих SDO пакетов соответственно, а также конечный автомат, который обеспечивает чтение и запись значений в поля объектного словаря, реализуя операции WriteByIndex и ReadByIndex протокола SDO via ASnd [8]. Для обеспечения минимальной ресурсоёмкости epl_sdo_io использует для проверки и формирования контрольных сумм соответствующий блок в составе epl_tiny_cn, для чего в обоих модулях предусмотрен специальный интерфейс. Также epl_tiny_cn используется для формирования разрешения модулю epl_sdo_io на отправку исходящих SDO пакетов, которое формируется на основе обработки пакетов SoA, полученных от ведущего устройства. Таким образом, обработка и формирование пакетов Ethernet POWERLINK в описанных модулях происходит независимо, в то время как за общее управление режимом информационного обмена и порядком отправки пакетов осуществляется по команде модуля epl_tiny_cn.
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
Технически для реализации полноценного обмена с подчиненным устройством
в синхронном и асинхронном режимах Ethernet POWERLINK в рамках прикладной задачи достаточно модулей epl_tiny_cn и epl_sdo_io, однако для того, чтобы устройство полностью соответствовало стандарту [8Ошибка! Источник ссылки не найден.] и могло пройти сертификацию, необходимо, чтобы в нем был реализован минимальный объектный словарь, объем которого четко определен в [8]. В рамках предлагаемой архитектуры для этих целей используется модуль базового объектного словаря epl_tiny_od, который в процессе обработки данных входящего SDO пакета «на лету» преобразует индекс поля объектного словаря в адрес памяти, а в момент формирования исходящего SDO пакета также «на лету» подставляет в него вычитанные из памяти данные. В конфигурациях использующих модуль epl_tiny_od объем блока памяти объектного словаря увеличивается с 259 байт до 4 Кбайт. При этом в младших 259 байт записываются те поля, которые используются модулем epl_tiny_cn для формирования пакетов IdentResponse и StatusResponse, байты с 259 по 2047 используются для хранения остальных полей обязательного подмножества объектного словаря, а старшие 2048 байт хранят начальные значения для всех полей и копируются в младшие 2048 байт памяти при поступлении команды на сброс настроек подчиненного устройства.
Модуль обработки кросс-траффика epl_recv_cross_ecrc является аналогом
модуля epl_recv с той лишь разницей, что он обрабатывает не пакеты PollRequest от
ведущего устройства, а пакеты PollResponse от другого подчиненного устройства.
Данный модуль может использоваться как совместно с epl_tiny_cn, так и отдельно от
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
него, позволяя создавать устройства не являющиеся самостоятельными узлами
Ethernet POWERLINK, но следящие за функционированием других устройств
подключенных к полевой шине. В последнем случае необходимо использование
дополнительного блока расчета контрольной суммы. Если устройство должно
обрабатывать кросс-траффик от нескольких устройств, то для каждого устройства на
общий канал данных должен быть подключен отдельный модуль epl_recv_cross_ecrc.
На основе предложенной архитектуры был создан блок дискретного ввода/вывода FPGA Tiny CN DirectIO, который в декабре 2017 г. прошел сертификацию Ethernet POWERLINK Standardization Group, став первым сертифицированным устройством Ethernet POWERLINK, разработанным в России. В ходе сертификации была подтверждена работоспособность всего функционала предложенной архитектуры, включая синхронный обмен в циклах с периодом до 200 мкс включительно, асинхронный обмен по протоколу SDO via ASnd, а также обработку кросс-траффика. По условиям проведения сертификации её результаты распространяются на все подчиненные устройства Ethernet POWERLINK на базе предложенной в данной работе архитекторы.
В таблице 1 представлено сравнение ресурсоемкости аналогичных по функционалу систем подчиненных устройств на базе стека openPOWERLINK и различных конфигураций предложенной архитектуры.
Таблица 1. Сравнение пресурсоемкости решений на базе openPOWERLINK и различных конфигураций предложенной архитектуры на примере микросхемы Altera EP4CE15F17I7
Конфигурация Логическая ёмкость Требуемый объем памяти
Система ввода/вывода на базе openPOWERLINK версии 2.5.2 6786 LE 32 КБ встроенной блочной памяти; 32 КБ внешней энергонезависимой памяти; 2 МБ внешней статической памяти
Система ввода/вывода на базе предложенной архитектуры (поддержка только синхронного обмена) 733 LE 259 Б встроенной блочной памяти
Система ввода/вывода на базе предложенной архитектуры (поддержка синхронного обмена и асинхронного обмена) 1387 LE 259 Б встроенной блочной памяти
Система ввода/вывода на базе предложенной архитектуры (поддержка синхронного обмена и асинхронного обмена, а также базового объектного словаря согласно [8]) 1870 LE 4 КБ встроенной блочной памяти
Дополнительный модуль приема кросс-траффика от одного узла 111 LE —
Наиболее полная конфигурация предложенной архитектуры, включающая в себя модули ер1_ту_сп, epl_sdo_io и epl_tiny_od, а также блок памяти объектного словаря объемом 4 КБ требует для реализации на ПЛИС ВЗПП-С 5576ХС4Т 2812 LE (28% логической емкости ПЛИС) и 49152 Кбит блочной памяти (50% объема блочной памяти ПЛИС). Максимальная частота по результатам синтеза составила 40.32 МГц, что в 1.6 раза выше необходимых для работы с интерфейсом МП 25 МГц. Таким образом подтверждается возможность реализации предложенной архитектуры на отечественной элементной базе.
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
Как видно из таблицы 1, даже в максимальной конфигурации устройство на
базе предложенной архитектуры требует в 3.5 раза меньше ресурсов ПЛИС по
сравнению с решением на базе openPOWERLINK, а наибольший потенциальный
выигрыш в логической ресурсоемкости составляет чуть больше 9 раз, а в
используемой памяти более 126 раз. В сочетании с ранее предложенными автором
ресурсо-эффективными подходами к реализации систем управления и обработки
данных с использованием ПЛИС [16-18], предложенная архитектура позволяет
создавать законченные модули распределенных систем управления, как системы-на-
кристалле на базе бюджетных микросхем, таких как Lattice ICE40 HX и Altera
MAX10. Данные ПЛИС оснащены встроенной памятью для хранения
конфигураций, что позволяет реализовать законченное устройство, подключаемое по
шине Ethernet POWERLINK при помощи всего трех основных компонент на
печатной плате: ПЛИС, микросхемы физического уровня Ethernet и тактового
В работе предложена новая модульная архитектура для реализации подчиненных устройств Ethernet POWERLINK. Её основным достоинством является высокая эффективность использования ресурсов ПЛИС. Как результат, в зависимости от конфигурации, ядро информационного обмена, построенное на базе предложенной архитектуры требует от 3.5 до 9 раз меньше логических ячеек ПЛИС и до 126 раз меньший объём блоков памяти по сравнению с ранее известным решением на базе стека протоколов openPOWERLINK.
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
Благодаря тому, что новая архитектура может быть реализована на чистом
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
языке Verilog без использования проприетарных ядер, привязанных к конкретному
производителю микросхем, она совместима с максимально широким набором ПЛИС
как зарубежного так и российского производства, являясь единственным известным
на данный момент подходом к аппаратной реализации устройств Ethernet
POWERLINK на отечественной элементной базе.
На основе предложенной архитектуры было сделано первое российское
устройство, получившее сертификат Ethernet POWERLINK Standardization Group,
что говорит о полном её соответствии стандарту Ethernet POWERLINK.
Одним из ключевых требований к элементной базе для авиационной и
космической техники является стойкость к воздействию радиации. Отечественные
микросхемы ПЛИС имеют радиационно-стойкое исполнение, что позволяет при
реализации на них устройств управления и информационного обмена не применять
дополнительные схемы резервирования на уровне конфигурируемой логики [19].
Предложенная архитектура для реализации узлов Ethernet POWERLINK полностью
совместима с российскими микросхемами серий 5576 и 5578, которые уже
используются в бортовых системах управления для космических применений [20],
что говорит о возможности её применения в авиационной и космической технике.
1. Смакова Е. Индустриальный и синхронный протоколы Ethernet // Электронные компоненты. 2009. № 4. С. 1 - 4.
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
2. Romanov A., Romanov M., Kharchenko A., Kholopov V. Unified architecture of execution level hardware and software for discrete machinery manufacturing control systems // Research and Development (SCOReD), 2016 IEEE Student Conference on, IEEE, 2016. DOI: 10.1109/SCORED.2016.7810088
3. Baumgartner J., Schoenegger S. POWERLINK and real-time Linux: A perfect match for highest performance in real applications // Twelfth Real-Time Linux Workshop, 2010, available at: https://manualzilla.com/doc/5985800/powerlink-and-real-time-linux--a-perfect-match-for
4. Wallner W., Baumgartner J. openPOWERLINK in Linux Userspace: Implementation and Performance Evaluation of the Real-Time Ethernet Protocol Stack in Linux Userspace // Proc. 13th Real-Time Linux Workshop (RTLWS), Prague, Czech Republic, 2011, С. 155 - 164.
5. Andren F., Strasser T. Distributed open source control with Industrial Ethernet I/O devices // 16th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA'2011), September 5-9, Toulouse, France ETFA2011. IEEE, DOI: 10.1109/ETFA.2011.6059141
6. Schalk K. et al. Microsecond-precision time stamping in a deterministic distributed sensor network utilizing openPOWERLINK // 2017 IEEE International Conference on Wireless for Space and Extreme Environments (WiSEE 2017), 10-12 October 2017, Montreal, Quebec, Canada, pp. 52 - 56.
7. openPOWERLINK, available at:
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
8. IEEE Standard for Industrial Hard Real-Time Communication. IEEE Std 61158-2017
(Adoption of EPSG DS 301).
9. Viveka J.S.V., Navaneethan S. Open source motor control using Xilinx Spartan-6 // International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE), 2015, vol. 4, issue 5, pp. 1277 - 1280.
10. Idkhajine L. et al. Fully integrated FPGA-based controller for synchronous motor drive // IEEE Transactions on Industrial Electronics, 2009, vol. 5, no. 10, pp. 4006 - 4017.
11. Liu J. et al. The development of a novel servo motor controller based on EtherCAT and FPGA // 2016 Chinese Control and Decision Conference (CCDC), IEEE, 2016, pp. 3174 -3179. DOI: 10.1109/CCDC.2016.7531529
12. Попов Б.Н., Фам Т.Т. Логические автоматы управления электродвигателями на платформе программируемой логики // Труды МАИ. 2005. № 18. URL: http : //trudymai .ru/published.php?ID=34193
13. Knezic M., Dokic B., Ivanovic Z. Performance analysis of the ethernet powerlink pollresponse chaining mechanism // Factory Communication Systems (WFCS), 2015 IEEE World Conference on, IEEE, July 2015, pp. 1 - 4. DOI: 10.1109/WFCS.2015.7160578
14. Baumgartner J., Schoenegger S. POWERLINK and Real-time Linux: A perfect match for highest performance in real applications // Twelfth Real-Time Linux Workshop, Nairobi, Kenya, 2010, available at: https: //www. osadl. org/fileadmin/dam/rtlws/12/Baumgartner. pdf
Труды МАИ. Выпуск № 106_ http://trudymai.ru/
15. Reinhart G. et al. Automatic configuration (plug & produce) of industrial ethernet networks // 9th IEEE/IAS International Conference on Industry Applications (INDUSCON), Brazil, 2010.
166. Романов А.М. Анализ и синтез элементов устройств управления мехатронно-модульными системами на базе ПЛИС с использованием сигма-дельта модуляции // Естественные и технические науки. 2013. № 6. C. 348 - 361.
177. Лохин В.М., Манько С.В., Романов М.П., Романов А.М. Универсальная бортовая система управления роботами различных типов базирования и назначения (реализация принципов унификации и импортозамещения) // Вестник МГТУ МИРЭА. 2015. № 3-1 (8). С. 230 - 248.
18. Romanov A., Romanow M. FPGA based implementation of content-addressed memory based on using direct sigma-delta bitstream processing // 2016 IEEE NW Russia Young Researchers in Electrical and Electronic Engineering Conference (EIConRusNW), Saint Petersburg, Russia, 2016, pp. 320 - 324.