На многих машиностроительных предприятиях России активно проводится техническое перевооружение производства. Обновляется устаревший станочный парк для механообработки, а также для других видов обработки металлов (литье, термообработка, обработка металлов давлением и др.). Но не все понимают, что аппаратная автоматизация производства (станки с ЧПУ) должна быть неразрывно связана с программной автоматизацией (соответствующие CAD/CAM/CAE/PDM/MES-системы). Невозможно добиться качественного результата по повышению производительности только путем приобретения нового металлообрабатывающего станка, который очень часто программируется вручную оператором на стойке с ЧПУ, что делает финансовые затраты по его закупке бессмысленными. Управляющую программу надо проверять непосредственно на станке, все команды и функции приходится прописывать вручную на стойке. В настоящее время электронные устройства становятся все сложнее, а вычисления требуют все больше ресурсов. В связи с этим часто возникает проблема быстродействия выполнения различных команд при работе на станках с ЧПУ.
Для решения этой задачи чаще всего используют программируемые логические интегральные микросхемы (ПЛИС). Чтобы описать тот или иной алгоритм, специалист создает код. Однако, в отличие от программирования, мало лишь написать алгоритм в программе. Возникает необходимость корректной настройки аппаратуры, экономии ресурсов устройства и соблюдения потоковой логики.
Рассмотрим все этапы от написания кода до генерирования прошивки ПЛИС.
В качестве программных функций использованы синтез (Synthesis) и раскладка (Implementat) программного обеспечения Vivado by Xilinx. Собственноручно написанный модуль используется в качестве примера (FMAX). Модуль представляет собой устройство поиска максимума из четырех потоков данных.
Также хотелось бы отметить, что для отображения занимаемого количества логических элементов ПЛИС приведены соответствующие раскладке код и схема. Инженер или исполнитель по требуемому алгоритму пишет соответствующий код для программирования устройства, для удобства и наглядности может построить соответствующую схему. После чего запускает синтез, чтобы ПО сконфигурировало требуемые связи, а затем отправляет полученный синтез в раскладку, чтобы ПО оптимальным образом разложило элементы по кристаллу ПЛИС и протянуло между ними линии связи. Далее можно сгенерировать код, воспринимаемый ПЛИС, и загрузить его в устройство. Важно при всех этапах указывать ту модель, которая по факту имеется на руках.