Я планирую разработать собственную печатную плату FPGA. PCB будет содержать датчики. Мне нужно прочитать выходные данные датчиков и обработать их в процессоре. Я выполнил множество проектов с использованием ПЛИС, но это будет мой первый нестандартный проект, в котором я должен также учитывать конфигурацию оборудования. В последнее время я проводил исследования, но мне все еще трудно начинать с какой-то точки. Поэтому я прошу вас помочь мне и другим людям, которые хотят разработать свою собственную ПЛИС, какие моменты они должны учитывать на каждом этапе. Существуют ли книги / онлайн-ресурсы, которые могут помочь нам в этом процессе? Я также сделаю документ после того, как закончу свой проект, чтобы люди могли его использовать.
9
Ответы:
В моей компании мы ранее проектировали несколько пользовательских плат 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.
источник
Я разработал более десятка плат на основе ПЛИС, в которых использовался широкий спектр различных типов ПЛИС: от маломощных Lattice Mach X02 до высокопроизводительных Virtex 6 с 24 каналами SERDES. Обычные шаги, которые я выполняю:
Найдите плату COT (похожую на MarkU) и получите общее представление о внутренних ресурсах FPGA, которые вам понадобятся, в частности, я обращаю внимание на:
Используя уравнение [P = (1/2) CV ^ 2 * (f)], где C = входная емкость, f = частота. входной сигнал, который должна выполнять ваша ПЛИС (для каждого сигнала!). Вы можете узнать худшую оценку того, сколько энергии требуется для управления всеми выходными сигналами.
Вам также необходимо учитывать потери мощности, связанные с внутренними согласующими резисторами (на основе используемых вами стандартов ввода / вывода).
Я также с большим успехом использую инструмент TI Webbench в последнее время:
TI Webbench (я не работаю на TI)
Schematics:
Создайте свою схему с учетом идиота. Вы и все дизайнеры HDL будете часто возвращаться к этой схеме, поэтому каждый сможет быстро найти то, что ему нужно, не требуя от вас или вас в будущем исследовать всю схему, чтобы выяснить это. если контакт 20 является входом часов. Это включает в себя множество заметок на схеме (если возможно), описывают цель схемы, ожидаемый результат и даже проблемы. Поскольку ПЛИС можно разбить на банки, рассмотрите возможность разделения компонента ПЛИС на несколько частей и, возможно, даже выделите целую страницу схемы для отдельного банка.
ОСТАВЬТЕ ОГРОМНЫЕ НОСИТЕЛИ В ВАШЕМ СХЕМАТИКЕ, КАСАЮЩИЕСЯ ПОДКЛЮЧЕНИЯ К ПРАВИЛЬНЫМ ПИН-КОДАМ: Я ударился головой о многие стены, когда строил свое первое изображение для дизайна, и получал страшный «сигнал часов, перенаправленный на не-включенный штырь» , Жить в страхе от различных типов контактов на FPGA. Убедитесь, что вы понимаете, что некоторые тактовые выводы предназначены для использования в квадранте FPGA, иначе вы столкнетесь с тем, что все говорят: «Привет, вы знали, что есть определенные тактовые контакты, которые предназначены для использования в квадранте FPGA». Требуется только 15 человек, говорящих вам это, чтобы убедиться, что вы никогда не сделаете это снова.
ТРАТИТЕ МНОГО ВРЕМЕНИ НА ДИЗАЙН КОНФИГУРАЦИИ ПЛИС: Убедитесь, что вы вытащили контакты JTAG, даже если вы не планируете их использовать. Это разница между допустимой ошибкой и роковым недостатком.
Если есть сомнения, выведите дополнительные кнопки сигналов и светодиоды и DIP-переключатели: я много рассказывал о дополнительной работе, связанной с маршрутизацией дополнительных сигналов на светодиоды заголовков, DIP-переключатели и кнопки, но это всегда помогало.
Макет :
Своевременное общение с Fab house: особенно, если вам может понадобиться маршрутизация с контролируемым импедансом, попросите накопить слой для нужного количества слоев. Гораздо проще направить высокоскоростные сигналы, когда сначала определены ширины трасс, а также выяснить, что вы могли бы использовать 6 мил трасс вместо 8 мил трасс для достижения своего сопротивления 50 Ом.
Начните с обходных заглушек: разработайте систему питания заранее. Первое, что я делаю, начинаю с того, что помещаю все маленькие колпачки под ПЛИС или рядом с выводами. Более крупные за пределами ПЛИС проложить всю цепь питания и расположить ее примерно там, где я ожидаю. Таким образом, вы не будете бороться с головоломкой и идти на компромиссы.
Высокоскоростные сигналы секунды: это те, которые вы не хотите прыгать слишком много слоев.
Я всегда учусь чему-то большему и буду рад любым советам, с которыми сталкиваются другие дизайнеры, поэтому, пожалуйста, добавьте их.
источник
Я думаю, что хорошей отправной точкой для настраиваемой печатной платы, оснащенной ПЛИС, будут эталонные платы от производителя ПЛИС. Вы можете проверить эти конструкции, например, на предмет источника питания, но имейте в виду, что эталонные платы дизайна иногда бывают меньше. У нас было много проблем с платами Xilinx ML605, потерявшими конфигурацию из-за недостаточного питания.
Ответ на комментарий omid:
Один из моих коллег реализовал алгоритм систолического вычисления на Virtex-6 LXT240. Ввод данных был предоставлен Gigabit Ethernet. Из-за систолического подхода FPGA почти ничего не делала, если во входных данных не было никаких данных, или в основном все триггеры FPGA переключались с частотой 200 МГц, если поступал новый кадр Ethernet. Этот дисбаланс в вычислениях заставил цепи электропитания TI отключить плату ML605, которая могла быть восстановлена только из этого состояния путем переключения главного выключателя питания.
Мы передали эту конструкцию на кафедру электротехники в нашем университете, и они выяснили, что невозможно отрегулировать коэффициенты регулятора на основе установленных конденсаторов.
Да, можно сказать: плохой дизайн или использовать большие пятерки или ...
Решение моих коллег было снижение использования FPGA на 80%.
Тем не менее, макетная плата и эталонный дизайн должны быть способны справляться с экстремальными рабочими нагрузками, особенно если на этой плате установлена FPGA, которая не имеет столь же регулярного энергопотребления, как ЦП.
источник