В моей компании мы ранее проектировали несколько пользовательских плат FPGA и недавно начали использовать коммерческие готовые ("COTS") платы FPGA с настраиваемыми дочерними платами FMC.
Стадия прототипа
Если вы все еще находитесь на ранней стадии определения проекта, запланируйте покупку хотя бы одной платы COTS FPGA для создания прототипа. Вы можете подключить один из ваших датчиков к разъемам ввода / вывода и быстро проверить концепцию. Это дает вам представление о том, как может работать проект при масштабировании на множество датчиков, и оцените, сколько вы можете поддерживать с данной ПЛИС.
Если FPGA слишком маленькая или слишком медленная или инструменты не подходят для этой работы, на этом этапе легко заменить другую FPGA COTS. (Ну не легко, но, по крайней мере, управляемо ...)
Если прошивка не работает на этом этапе, это, очевидно, из-за проблемы прошивки, а не из-за ошибки пользовательского проектирования печатной платы. При использовании специальной прошивки и настраиваемой печатной платы иногда трудно определить, какая сторона виновата в проблеме.
Настраиваемая плата FPGA по сравнению с коммерческой платой FPGA
Проектирование собственной платы FPGA имеет смысл, если проект будет иметь короткий жизненный цикл, большую громкость или требует меньшего форм-фактора, чем вы можете достичь с помощью платы COTS FPGA и плат расширения PMOD или FMC.
Если жизненный цикл проекта превышает срок службы чипа памяти DDR (пару лет), то лучшим вариантом может стать разработка настраиваемой дочерней платы FMC.
Стоимость является фактором в этом решении. Большинство плат COTS FPGA несколько общего назначения, разработанные для максимальной гибкости. Если вы производите крупногабаритный, чувствительный к стоимости продукт, то, вероятно, стоит сделать нестандартный дизайн; но для малой громкости вам, вероятно, лучше сконцентрироваться на создании дочерней карты.
Независимо от того, какой подход вы выберете, существуют определенные интерфейсы, которые требуют четкой, основной документации: на интерфейсе между ПЛИС, предназначенным для верхнего уровня выводов ввода-вывода и остальной платы, и на интерфейсе разъема между платами. Это места, где расположение контактов, имена внутренних сетей и имена внешних сетей иногда не совпадают и меняются местами. В таблице достаточно документации; не забудьте сохранить эту интерфейсную таблицу версионной и под контролем исходного кода. Перед отправкой файлов PCB в производство, распечатайте копию этой интерфейсной таблицы, копию схемы и копию отчета о контактах / площадках ПЛИС. Перетащите маркер через бумаги, чтобы отметить каждый сигнал, соединяет, где это должно.
Что касается соединителей, я выучил сложный способ создания механического «системного чертежа», который показывает и платы, и соединительные разъемы вместе на одном, размерном чертеже. Сначала я был сожжен системой разъемов VME, где контакт «A1» на одном разъеме не соответствовал контакту «A1» на другом разъеме. Я также видел, как дизайнеры забыли, что пара прямоугольных разъемов приводит к зеркальному соединению (90 градусов + 90 градусов = 180 градусов). Это было проблемой, когда я отвечал за материнскую плату, а несколько других руководителей проектов отвечали за различные дочерние платы.
Пользовательские советы по платам FPGA
Начните с «эталонного дизайна» от производителя ПЛИС, а затем пропустите те части, которые не требуются для вашего приложения. Не удаляйте обходные конденсаторы из ПЛИС и не пытайтесь избежать использования меньшего количества слоев печатных плат. Обратите внимание на стопку слоев (часто встречается рядом с чертежом сверла); Компоненты с мелким шагом обычно используют 0,5 унции меди вместо стандартной толщины 1 унции медной фольги.
Пакет BGA - это боль, с которой работать. Доходность никогда не бывает такой же хорошей, как с пакетами TQFP или TQFN, и переделка BGA практически невозможна. Даже проверка на наличие проблем со сборкой требует рентгеновского сканера. Обязательно используйте поставщика услуг по контрактному производству, которому вы доверяете.
Источники питания всегда сложны при работе с платами FPGA. Фактические требования к питанию FPGA очень сильно зависят от потока битов конфигурации. Xilinx предоставляет инструмент «оценки мощности», но оценка действительна только после завершения прошивки. При последней смене прошивки существует риск, что требования к питанию превышают ожидаемые. Планируйте оставить некоторую поставку текущей маржи. Если первоначальная оценка мощности говорит о том, что вам нужно 560 мА, используйте регулятор 1000 мА. Дополнительный доступный выходной ток не причиняет вреда, но недостаточный выходной ток приведет к нарушению работы системы.
Если есть какие-либо незафиксированные выводы ПЛИС, выведите как можно больше заголовков. Когда есть проблема, эти незафиксированные контакты становятся ценным диагностическим ресурсом для исследования сигналов внутри FPGA.