Прототипирование ПЛИС - FPGA prototyping
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Прототипирование программируемой вентильной матрицы (Прототипирование ПЛИС), также называемое прототипированием на основе FPGA, прототипированием ASIC или система на кристалле (SoC) прототипирование, это метод прототип система на кристалле и специализированная интегральная схема дизайн на ПЛИС для оборудования проверка и рано разработка программного обеспечения.
Методы проверки для аппаратное обеспечение дизайн, а также ранний программного обеспечения и прошивка совместное проектирование стало мейнстримом. Создание прототипов SoC и ASIC с одной или несколькими FPGA и автоматизация проектирования электроники Программное обеспечение (EDA) стало для этого хорошим методом.[1]
Почему прототипирование важно
- Запуск проекта SoC на прототипе FPGA - надежный способ убедиться в его функциональной правильности. Это по сравнению с дизайнерами, полагающимися только на программное обеспечение моделирования чтобы убедиться, что их аппаратное обеспечение исправно. Около трети всех текущих конструкций SoC исправны во время первого прохода кремния, причем почти половина всех повторных запусков вызвана функциональными логическими ошибками.[2] Единая платформа для прототипирования может обеспечить проверку функциональности аппаратного, микропрограммного обеспечения и прикладного программного обеспечения до первого прохода кремния.[3]
- Пора торговать (TTM) - это сокращение от прототипирования FPGA: в сегодняшнем технологическом обществе новые продукты вводятся быстро, а продукт не готов к заданному сроку. окно рынка может стоить компании значительных сумм доход.[4] Если продукт выпущен слишком поздно из рыночного окна, то он может быть стал бесполезным, стоившая компании ее инвестиционного капитала в продукт. После процесса проектирования ПЛИС готовы к производству, а стандартные ячейки ASIC на производство требуется более шести месяцев.[4]
- Стоимость разработки: стоимость разработки 90-нм ASIC / SoC ленточной ленты составляет около 20 миллионов долларов, при этом только набор масок стоит более 1 миллиона долларов.[2] Ожидается, что затраты на разработку 45-нм конструкций превысят 40 миллионов долларов. С увеличением стоимости наборов масок и постоянным уменьшением размера ИС минимизация числа повторных вращений становится жизненно важной для процесса разработки.
Дизайн для прототипирования
Дизайн для прототипирования[5] (DFP) относится к системам проектирования, которые поддаются прототипирование. Многие из препятствий, с которыми сталкиваются команды разработчиков, внедряющие прототипы FPGA, можно свести к трем «законам»:
- SoC больше, чем FPGA
- SoC быстрее, чем FPGA
- Конструкции SoC враждебны FPGA
Включение дизайна SoC в прототип FPGA требует тщательного планирования, чтобы достичь целей прототипирования с минимальными усилиями. Чтобы упростить разработку прототипа, лучшие практики, называемые Design-for-Prototyping, влияют как на Дизайн SoC стиль и процедуры проекта, применяемые проектными группами. Процедурные рекомендации включают добавление соглашений DFP к стандартам кодирования RTL, использование среды моделирования, совместимой с прототипами, и внедрение стратегии отладки системы совместно с командой разработчиков программного обеспечения.
Проблемы с разделением
Из-за повышенной сложности схем и сокращения времени вывода на рынок растет потребность в проверке конструкций интегральных схем (ASIC) и систем на кристалле (SoC) для конкретных приложений. Аппаратные платформы становятся все более заметными среди инженеров по верификации из-за способности тестировать проекты систем на скорости с тактовыми частотами встроенной шины, по сравнению с тактовыми импульсами моделирования, которые могут не обеспечивать точное считывание поведения системы.[6] Эти многомиллионные схемы вентилей обычно помещаются в платформу для прототипирования нескольких ПЛИС с шестью или более ПЛИС, поскольку они не могут полностью уместиться на одной ПЛИС. Чем меньше количество ПЛИС необходимо разделить, тем меньше усилий со стороны инженера-проектировщика.[7] Справа - изображение платформы для создания прототипов на основе ПЛИС, использующей конфигурацию с двумя ПЛИС.
Системные RTL-проекты или списки соединений должны быть разделены на каждую FPGA, чтобы можно было разместить проект на платформе прототипирования.[8] Это ставит перед инженером новые задачи, поскольку ручное разбиение требует огромных усилий и часто приводит к низкой скорости (тестируемого проекта).[7] Если количество разделов можно уменьшить или весь проект можно разместить на одной ПЛИС, реализация проекта на платформе прототипирования станет проще.
Баланс ресурсов FPGA при создании разделов проекта
При создании разделов схемы инженеры должны сначала изучить доступные ресурсы, предлагаемые FPGA, поскольку проект будет размещен на матрице FPGA.[7] Архитектура каждой ПЛИС зависит от производителя, но главная цель при проектировании разбиения на разделы - обеспечить равномерный баланс использования ресурсов ПЛИС. Различные ресурсы FPGA включают таблицы поиска (LUT), Шлепанцы D, блокировать RAM, цифровые сигнальные процессоры (DSP), тактовые буферы и т. Д. Перед балансировкой разделов проекта пользователю также полезно выполнить глобальную оптимизацию логики, чтобы удалить любую избыточную или неиспользуемую логику. Типичная проблема, возникающая при создании сбалансированных разделов, заключается в том, что это может привести к конфликту времени или ресурсов, если отключение происходит на многих сигнальных линиях. Чтобы иметь полностью оптимизированную стратегию разделения, инженер должен учитывать такие вопросы, как ограничения по времени / мощности, а также размещение и маршрутизация, сохраняя при этом сбалансированное разделение между FPGA. Строгое сосредоточение внимания на одной проблеме во время раздела может создать несколько проблем в другом.
Размещение и маршрутизация разделов
Чтобы достичь оптимального места и маршрутизации для многораздельных проектов, инженер должен сосредоточиться на количестве выводов ПЛИС и сигналах между ПЛИС. После разделения проекта на отдельные ПЛИС количество сигналов между ПЛИС не должно превышать количество выводов на ПЛИС.[9] Этого очень трудно избежать, когда схемы огромны, поэтому сигналы должны использовать такие стратегии, как мультиплексирование с временным разделением (TDM), при котором несколько сигналов могут передаваться по одной линии.[10] Эти множественные сигналы, называемые подканалами, по очереди передаются по линии в течение временного интервала. Когда коэффициент TDM высокий, тактовая частота шины должна быть уменьшена, чтобы учесть временные интервалы для каждого подканала. Уменьшение тактовой частоты снижает производительность системы.[7]
Требования к времени
Системные конструкции обычно охватывают несколько доменов часов с сигналами, проходящими через отдельные домены.[7] На борту тактовые генераторы и глобальные линии синхронизации обычно смягчают эти проблемы, но иногда эти ресурсы могут быть ограничены или не удовлетворять всем проектным требованиям. Внутренние тактовые импульсы должны быть реализованы в устройствах FPGA, поскольку соединения тактовой линии и тактовых буферов между FPGA ограничены. Внутренние тактовые схемы, которые разделены на несколько FPGA, должны копировать тактовый генератор внутри FPGA, обеспечивая низкий разброс тактовых импульсов между сигналами между FPGA. Кроме того, любая логика стробированных тактовых импульсов должна быть преобразована в тактовые импульсы, позволяющие уменьшить перекос при работе на высоких тактовых частотах.
Пересечения тактовых доменов не следует разделять на отдельные ПЛИС. Сигналы, проходящие через перекресток, должны храниться внутри одной FPGA, поскольку добавленное время задержки между FPGA может вызвать проблемы в другой области. Также рекомендуется, чтобы сигналы, маршрутизируемые между FPGA, синхронизировались в регистры.
Отладка
Одна из самых сложных и трудоемких задач при создании прототипов ПЛИС - это отладка системных проектов. Для этого используется термин «ад ПЛИС».[11][12] Отладка стала более сложной и требует много времени с появлением больших и сложных схем ASIC и SoC. Для отладки прототипа ПЛИС зонды добавляются непосредственно в конструкцию RTL, чтобы сделать определенные сигналы доступными для наблюдения, синтезирования и загрузки на платформу прототипа ПЛИС.
Поставщики FPGA предлагают ряд стандартных инструментов отладки, включая ChipScope и SignalTAP. Эти инструменты могут исследовать до 1024 сигналов и требуют обширных ресурсов LUT и памяти. Для SoC и других конструкций эффективная отладка часто требует одновременного доступа к 10 000 или более сигналов. Если ошибка не может быть обнаружена исходным набором зондов, получение доступа к дополнительным сигналам приводит к ситуации «домой на день». Это происходит из-за длинных и сложных потоков САПР для синтеза, а также размещения и маршрута, на выполнение которых может потребоваться от 8 до 18 часов.
Улучшенные подходы включают такие инструменты, как Certus от Tektronix[13] или EXOSTIV от Exostiv Labs.[14]
Certus обеспечивает улучшенную видимость на уровне RTL для отладки на основе FPGA. Он использует высокоэффективный многоступенчатый концентратор в качестве основы для своей сети наблюдения, чтобы уменьшить количество LUT, требуемых для каждого сигнала, чтобы увеличить количество сигналов, которые могут быть исследованы в данном пространстве. Возможность просмотра любой комбинации сигналов уникальна для Certus и позволяет преодолеть одно из самых критических узких мест при прототипировании.[15]
EXOSTIV использует большую внешнюю память и гигабитные трансиверы для извлечения глубоких трасс из FPGA, работающего на высокой скорости. Улучшение заключается в его способности видеть большие следы во времени как непрерывный поток или всплески. Это позволяет исследовать расширенные сценарии отладки, недоступные традиционным методам встроенного инструментария. Решение требует экономии ресурсов ввода-вывода ПЛИС и памяти ПЛИС за счет гигабитных приемопередатчиков для улучшения видимости в 100000 раз и более.[16][17]
Смотрите также
Рекомендации
- ^ «FPGA против ASIC: различия между ними и какой из них использовать? - Справочный центр Numato Lab». numato.com. Получено 17 октября, 2018.
- ^ а б «Архивная копия». Архивировано из оригинал 2 февраля 2013 г.. Получено 9 октября, 2012.CS1 maint: заархивированная копия как заголовок (связь)
- ^ Риттман, Дэнни (5 января 2006 г.). «Нанометрическое прототипирование» (PDF). Тайден Дизайн. Получено 7 октября, 2018.
- ^ а б «Создание прототипа ПЛИС для производства структурированных ASIC для снижения затрат, рисков и TTM». Дизайн и повторное использование. Получено 7 октября, 2018.
- ^ «Разработка прототипов систем на ПЛИС». Новая электроника. 22 марта 2011 г.. Получено 22 марта, 2011.
- ^ "Лучшие практики прототипирования алгоритмов MATLAB и Simulink на ПЛИС". EEJournal. 25 августа 2011 г.. Получено 8 октября, 2018.
- ^ а б c d е "Белая книга Aldec и Xilinx в соавторстве" Прототипирование HES-7 ASIC ", Требуется регистрация
- ^ «Архивная копия». Архивировано из оригинал 22 января 2013 г.. Получено 9 октября, 2012.CS1 maint: заархивированная копия как заголовок (связь)
- ^ http://www.fpga-faq.com/FAQ_Pages/prototyping.pdf
- ^ «Мультиплексирование с временным разделением». www.inetdaemon.com. Получено 8 октября, 2018.
- ^ "Ад ПЛИС". zipcpu.com. Получено 5 ноября, 2019.
- ^ «Начало работы с ПЛИС» (PDF).
- ^ «Tektronix обновляет прототипирование, встроенное оборудование повышает платы до статуса эмулятора». Электронный инженерный журнал. 30 октября 2012 г.. Получено 30 октября, 2012.
- ^ «Exostiv Labs объявляет о выпуске своего решения EXOSTIV для отладки FPGA». Дизайн и повторное использование. 14 октября 2015 г.. Получено 25 ноября, 2015.
- ^ «Преодолейте узкие места создания прототипов ASIC». 23 октября 2012 г.. Получено 30 октября, 2012.
- ^ "Почему EXOSTIV?". 14 октября 2015 г.. Получено 25 ноября, 2015.
- ^ «Прототипирование ASIC / SoC». Получено 12 апреля, 2020.
внешняя ссылка
- Решения для создания прототипов FPGA
- Документы и статьи по прототипированию ПЛИС