Небольшие FPGA семейства AMD, такие как AMD Spartan™ 7 и AMD Artix™ 7, идеально подходят для многих приложений, поскольку они обеспечивают детерминированность, низкую задержку и очень гибкий ввод-вывод.
В этом проекте мы создадим небольшой модуль, содержащий FPGA AMD Spartan 7, а также его вспомогательные компоненты для создания буфера. Эта площадка будет представлять собой простую и небольшую печатную плату, которую можно будет легко включать в другие проекты, что избавит от необходимости каждый раз проектировать ее с нуля.
Цель состоит не только в том, чтобы сделать его как можно более маленьким и дешевым, но и в том, чтобы найти применение нескольким устройствам Spartan 7 FPGA, оставшимся у меня от другого проекта.
Из-за характера этого проекта, поскольку мы разрабатываем физический объект, мы не сможем немедленно протестировать окончательный дизайн.
Таким образом, этот проект будет посвящен разработке требований, архитектуре, выбору компонентов и схематическому проектированию.
Как только все будет готово, я отправлю плату на проектирование и изготовление.
В следующем проекте будет тестирование и реализация модели Spartan 7 FPGA.
Схемы и макеты будут доступны в исходном формате для желающих.
ТребованияВсе проекты должны начинаться с набора требований, определяющих функциональное и нефункциональное поведение проекта. Эти требования также будут содержать требования к интерфейсу.
- REQ1 — штамп должен включать FPGA AMD Spartan 7 XC7S6 в корпусе CSGA225.
- REQ2 — Буфер должен быть спроектирован для размещения больших значений в семействе FPGA AMD Spartan 7, включая XC7S15 и XC7S25.
- REQ3 — Буфер должен обеспечивать энергонезависимую память для хранения потока конфигурации FPGA.
- REQ4 — Штамп должен быть выполнен в квадратном формате.
- REQ5 — Штамп должен обеспечивать 20 входов/выходов на каждом краю квадрата.
- REQ6. Там, где это возможно, следует использовать дифференциальные пары ввода/вывода.
- REQ7 — Штамп должен обеспечивать JTAG через свои контакты ввода-вывода.
- REQ8 — Штамп должен позволять программирование через USB
- REQ9 — конфигурация FPGA должна выбираться между NVRAM и JTAG.
- REQ10 — тон должен обеспечивать генератор частотой 25 МГц.
- REQ11 — Звуковой сигнал должен питаться от напряжения 5 В.
- REQ12 — Штамп должен генерировать все необходимые базовые напряжения и напряжения ввода-вывода.
- REQ13 — необходимо наличие нескольких входов 5 В — хотя бы по одному с каждой стороны.
- REQ14 — необходимо предоставить несколько заземлений — хотя бы по одному на каждую сторону.
- REQ15 — Расстояние между соединениями должно быть таким, чтобы можно было установить разъемы с шагом 0,1 мм.
- REQ16 — на штампе должен быть хотя бы один светодиод, доступный пользователю.
Следующим шагом в этом процессе является создание архитектуры, отражающей требования. Хотя это довольно просто, это все же стоит сделать.
Элемент питания будет принимать 5 В от платы и генерировать базовое, вспомогательное напряжение и напряжение ввода-вывода для FPGA. Данные конфигурации будут храниться в NVRAM, а USB JTAG обеспечит возможности программирования для FPGA и NVRAM.
Ожидается, что на выходе JTAG между USB JTAG и FPGA также будут подключены разъемы, обеспечивающие прямой доступ к JTAG с использованием программатора Digilent HS3 или Smart Link.
Генератор будет стандартным на 100 МГц и будет создавать диапазон частот с использованием внутренних систем ФАПЧ.
Матрица соответствияВ профессиональном инженерном проекте матрица соответствия — это метод, с помощью которого мы демонстрируем соответствие нашего решения требованиям.
Матрица соответствия показывает, что мы соблюдаем требования, за исключением одного требования, которое соответствует частично. Частичное соответствие обусловлено тем, что мы предоставим устройство программирования USB JTAG на планшете; однако настоящий USB-разъем на планшете не будет. Это позволяет пользователю планшета расположить USB-разъем там, где ему удобнее всего.
Фоновые показанияПрежде чем мы приступим к созданию схем, нам нужно кое-что прочитать, чтобы убедиться, что мы проектируем систему правильно, и это поможет мне спроектировать ее. Я прочитал следующее
ДизайнПрежде чем приступить к схематическому процессу, мы должны провести проектирование и анализ, чтобы гарантировать, что наша система будет работать так, как задумано.
Первый шаг — убедиться, что у нас есть точная оценка мощности, которая будет учитываться при расчете мощности.
Основное энергопотребление будет исходить от FPGA. Поэтому нам необходимо создать точную оценку потребления.
Для этого мы можем использовать одну из таблиц оценки мощности AMD.
Этот инструмент позволяет нам определить использование ресурсов, тактовую частоту и частоту аварийного переключения, чтобы определить точную оценку мощности устройства.
Поскольку XC7S6 является устройством с наименьшей емкостью, устройства, как правило, будут иметь высокую загрузку.
Таким образом, оценка мощности будет предполагать, что используются все ресурсы FPGA.
Это дает мне общую оценку мощности на кристалле 0,351 Вт.
Распределение мощности и графики
Использование логики
Нам также необходимо выбрать другие компоненты, чтобы мы могли определить их требования к питанию. Основными компонентами являются
- FT232H — Чип USB-JTAG
- 93LC56BT — JTAG PROM используется с FT232H
- ИС25ЛП256Д — FPGA PROM сохраняет конфигурацию
- КС2520З100.000С15ХХК — Генератор 100 МГц
Базовой FPGA требуется 4,3 Мбит конфигурационной памяти, и мы также хотим поддерживать устройство XC7S25, которому требуется 9,9 Мбит конфигурационных данных. Поэтому мы выбрали память QSPI объемом 256 МБ. Это предоставит разработчикам возможность реализовать мультизагрузочные и резервные решения.
Я выбрал FT232H, потому что это одно из устройств, поддерживаемых AMD Vivado™ Design Suite для программирования через USB для реализации функций USB JTAG.
Следующим шагом после определения компонентов является создание общего бюджета мощности системы, чтобы обеспечить правильность размеров решения по электропитанию.
В качестве устройства питания выбран RICHTEK RT7273GQW, импульсный стабилизатор с тремя выходами, рассчитанный на выходной ток 3 А, чего будет более чем достаточно.
Преимущество трехканальной конструкции заключается в том, что она очень компактна и позволяет использовать решение меньшего размера, чем это было бы возможно с тремя дискретными источниками питания.
Из таблицы данных RT7273 нам необходимо определить максимальную и минимальную энергоэффективность для прогнозируемой эффективности и токов нагрузки в наихудшем случае.
Нам необходимо учитывать эффективность выбранных преобразователей мощности.
После того, как компоненты выбраны и определена оценка мощности, мы можем приступить к созданию схемы модуля.
После выбора компонентов и определения номинальной мощности мы можем приступить к созданию схемы модуля.
СхемыДля создания схем я использовал Altium Designer — инструмент, который у меня был уже некоторое время, но в последнее время я лично не использовал его. Схемы организованы в иерархическую структуру, что позволяет при необходимости повторно использовать их в нескольких проектах.
Элементами дизайна являются:
- Власть: Этот модуль создает мощность 1v0, 1v8 и 3v3 из входного напряжения.
- Энергонезависимая оперативная память (NVRAM): Этот модуль содержит энергонезависимую память конфигурации.
- ПЛИС: Он содержит устройство AMD Spartan 7 XC7S6 и прерывает ввод-вывод.
- JTAG: Этот модуль содержит устройство FTDI FT4232, которое обеспечивает доступ JTAG к FPGA и программирует NVRAM.
Как и в большинстве моих проектов, мне нравится делать верхний уровень максимально простым. Схемы прикреплены к проекту внизу.
Ниже описан конструктивный элемент блока питания: он формирует необходимые напряжения 1в0, 1в8 и 3в3. Я включил контрольные точки на каждой выходной и входной шине, а также несколько контрольных точек на земле.
Мой план в отношении макета — предоставить два метода интерфейса. Первыми будут слоты, которые можно припаять для поверхностного монтажа платы.
Второй вариант, который я, вероятно, буду использовать для размещения, — это проделать ответное отверстие головки диаметром 0,1 дюйма для каждого зубца.
Поэтому для питания и земли я добавил по пять контактов на каждый. Мы можем изменить отпечаток до желаемой формы, как только доберемся до стадии макета.
Настроить NVRAM довольно просто, как показано ниже. Я добавил последовательно подтягивающие и согласующие резисторы на случай, если они понадобятся.
Самый сложный элемент конструкции — страница ПЛИС. На этой странице мы управляем настройками конфигурации, распределением входов/выходов и подключением питания.
Первым шагом является назначение внешнего входа/выхода тембра в соответствии с требованиями. Я планирую сделать доступными контакты JTAG, а также VIN и землю. Чтобы повысить гибкость конструкции, я позволю BANK 34 использовать выбираемое напряжение ввода/вывода, которое может питаться от любого тембра, на который установлен.
Общее количество пользовательских вводов/выводов составит 77 контактов.
Чтобы сделать страницу FPGA максимально простой, я буду использовать иерархическую структуру для управления неиспользуемыми вводами-выводами, а также подключениями питания и заземления.
Чтобы запрограммировать проект, нам нужно реализовать интерфейс JTAG. Я планирую использовать устройство USB и FTDI, запрограммированное через AMD Vivado. Чтобы сохранить гибкость планшета, я не буду размещать USB-разъем непосредственно на планшете.
Вместо этого я разделю сигналы DP и DM по граничным слотам. Я также планирую сделать сигналы JTAG доступными в слотах платы. Причина этого заключается в том, чтобы при необходимости разрешить создание каналов JTAG в системе с помощью S7 Stamp.
Следующие шагиПроект завершен и готов к производству. Ниже вы можете увидеть некоторые фотографии процесса проектирования.
Еще один проект будет завершен позднее летом, как только марка будет у меня на руках. Мы надеемся, что этот проект будет сосредоточен на реализации дизайна.
При поддержке AMD