Крайне важный и ответственный этап разработки каждого проекта, который позволяет реализовать в инженерном решении:
- высокую производительность, гибкость и быструю адаптацию
- развитие и совершенствование систем
- относительно низкие энергопотребление и габариты изделий
На каждом проекте работает группа FPGA-архитекторов, дизайнеров и верификаторов
Они не просто пишут исходный код
- Они проектируют и выстраивают архитектуру
- Разрабатывают и оптимизируют интерфейсы
- Формируют логическую последовательность работы модулей
- Создают условия для максимальной загрузки всех логических элементов
Благодаря выстроенным процессам внутри компании, каждый модуль тщательно прорабатывается и тестируется как независимо, так и в контексте системы. HDL-описания модулей формируем на основе ранее разработанных и верифицированных математических моделей.
В разрабатываемых проектах приоритетно используем программируемые логические интегральные схемы (ПЛИС). Проектирование осуществляем в САПР с применением языков описания аппаратуры VHDL и SystemVerilog. Для разных типов устройств обосновываем выбор используемого семейства ПЛИС под специфические требования решаемых задач:
- энергоэффективные и малогабаритные устройства
- мощные вычислители
Наработки и решения
Прекрасно ориентируемся в коммерческих библиотеках IP-ядер. Используем сформированную за 10+ лет опыта собственную библиотеку мягких и оптимизированных жестких IP-ядер. Для каждой задачи предлагаем несколько технических решений, из которых для конечной реализации выбираем оптимальное по заданным критериям:
- это ускоряет процесс разработки
- повышает надежность проекта
- позволяет проверить уже готовые блоки в новых кейсах
- обеспечивает получение решения при самых жестких требованиях и ограничениях
Успешно преодолеваем типичные узкие места
Известная для любого FPGA-дизайнера проблема – в кристалле заканчивается ресурс. Например, проект просто не помещается в кристалл, прошивка не собирается или не проходят тайминги.
Обладая достаточной квалификацией, мы исключаем такие проблемы еще на стадии проработки решений, либо успешно оптимизируем код при возникновении подобной ситуации.