Прототипирование ПЛИС
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Программируемое пользователем прототипирование вентильной матрицы ( прототипирование FPGA ), также называемое прототипированием на основе FPGA, прототипированием ASIC или прототипированием системы на кристалле (SoC), представляет собой метод прототипирования систем на кристалле и интегральных схем для конкретных приложений . по FPGA оборудования для проверки и ранней разработки программного обеспечения .
Методы проверки конструкции аппаратного обеспечения , а также совместная разработка программного обеспечения и встроенного ПО стали обычным явлением. прототипирование проектов SoC и ASIC с использованием одной или нескольких FPGA и программного обеспечения для автоматизации электронного проектирования (EDA). Хорошим методом для этого стало [1]
Важность [ править ]
- Запуск проекта SoC на прототипе FPGA — это надежный способ убедиться в его функциональной корректности. Это можно сравнить с ситуацией, когда проектировщики полагаются только на программное моделирование для проверки правильности конструкции своего оборудования. Около трети всех современных конструкций SoC безошибочны при первом проходе кремния, при этом почти половина всех повторных вращений вызвана ошибками функциональной логики. [2] Единая платформа прототипирования может обеспечить проверку функциональности аппаратного обеспечения, встроенного ПО и прикладного программного обеспечения перед первым проходом кремния. [3]
- Время выхода на рынок (TTM) сокращается благодаря прототипированию FPGA: в современном технологическом обществе новые продукты выводятся на рынок быстро, и неспособность подготовить продукт на данном рыночном окне может стоить компании значительной суммы дохода . [4] Если продукт будет выпущен на рынке слишком поздно, он может стать бесполезным , что будет стоить компании инвестиций в продукт. После процесса проектирования FPGA готовы к производству, в то время как ASIC стандартных ячеек занимает более шести месяцев. производство [4]
- Стоимость разработки: Стоимость разработки 90-нм конструкции ASIC/SoC составляет около 20 миллионов долларов, а один только набор масок стоит более 1 миллиона долларов. [2] Ожидается, что затраты на разработку 45-нм конструкции превысят 40 миллионов долларов. С ростом стоимости наборов масок и постоянным уменьшением размера микросхем минимизация количества повторных вращений имеет жизненно важное значение для процесса разработки.
Дизайн для прототипирования [ править ]
Дизайн для прототипирования [5] ( DFP ) относится к проектированию систем, поддающихся прототипированию . Многие из препятствий, с которыми сталкиваются команды разработчиков, внедряющие прототипы FPGA, можно свести к трем «законам»:
- SoC больше, чем FPGA
- SoC быстрее, чем FPGA
- Проекты SoC враждебны FPGA
Включение конструкции SoC в прототип FPGA требует тщательного планирования, чтобы достичь целей прототипирования с минимальными усилиями. Чтобы облегчить разработку прототипа, лучшие практики, называемые «Проектирование для прототипирования», влияют как на стиль проектирования SoC , так и на проектные процедуры, применяемые группами дизайнеров. Процедурные рекомендации включают добавление соглашений DFP к стандартам кодирования RTL, использование среды моделирования, совместимой с прототипами, и разработку стратегии отладки системы совместно с командой разработчиков программного обеспечения.
Проблемы с разделением [ править ]
Из-за увеличения сложности схем и сокращения времени выхода на рынок растет потребность в проверке конструкций специализированных интегральных схем (ASIC) и систем на кристалле (SoC). Аппаратные платформы становятся все более популярными среди инженеров по верификации благодаря возможности быстро тестировать конструкции систем с помощью встроенных тактовых импульсов шины по сравнению с тактовыми генераторами моделирования, которые могут не обеспечить точное считывание поведения системы. [6] Эти многомиллионные конструкции вентилей обычно размещаются на платформе прототипирования с несколькими FPGA с шестью или более FPGA, поскольку они не могут полностью поместиться в одну FPGA. Чем меньшее количество FPGA необходимо разделить на части, чтобы уменьшить усилия инженера-проектировщика. [7] Справа показано изображение платформы прототипирования на основе FPGA, использующей конфигурацию с двумя FPGA.
Системные проекты RTL или списки соединений должны быть разделены на каждую FPGA, чтобы иметь возможность разместить проект на платформе прототипирования. [8] Это создает новые проблемы для инженера, поскольку ручное разделение требует огромных усилий и часто приводит к низкой скорости (тестируемого проекта). [7] Если количество разделов можно уменьшить или весь проект можно поместить на одну ПЛИС, реализация проекта на платформе прототипирования становится проще.
Балансируйте ресурсы FPGA при создании разделов проекта [ править ]
При создании разделов схемы инженеры должны сначала изучить доступные ресурсы, которые предлагает FPGA, поскольку проект будет помещен в структуру FPGA. [7] Архитектура каждой FPGA зависит от производителя, но основная цель разделения проекта — обеспечить равномерный баланс использования ресурсов FPGA. Различные ресурсы FPGA включают в себя таблицы поиска (LUT), D-триггеры , блочные ОЗУ , процессоры цифровых сигналов (DSP), тактовые буферы и т. д. Перед балансировкой разделов проекта пользователю также полезно выполнить глобальную логическую оптимизацию , чтобы удалите любую избыточную или неиспользуемую логику. Типичная проблема, возникающая при создании сбалансированных разделов, заключается в том, что это может привести к конфликту времени или ресурсов, если обрезание происходит на многих сигнальных линиях. Чтобы иметь полностью оптимизированную стратегию разделения, инженер должен учитывать такие вопросы, как ограничения по времени/мощности, а также размещение и маршрутизация, сохраняя при этом сбалансированное разделение между FPGA. Строгое сосредоточение внимания на одной проблеме в одном разделе может создать несколько проблем в другом.
Размещение и маршрутизация разделов [ править ]
Чтобы добиться оптимального размещения и маршрутизации для разделенных конструкций, инженер должен сосредоточиться на количестве выводов FPGA и сигналах между FPGA. После разделения проекта на отдельные FPGA количество сигналов между FPGA не должно превышать количество контактов FPGA. [9] Этого очень трудно избежать, когда конструкции схем огромны, поэтому в сигналах должны использоваться такие стратегии, как мультиплексирование с временным разделением (TDM), при котором несколько сигналов могут передаваться по одной линии. [10] Эти многочисленные сигналы, называемые подканалами, по очереди передаются по линии в течение определенного временного интервала. Когда коэффициент TDM высок, тактовую частоту шины необходимо уменьшить, чтобы разместить временные интервалы для каждого подканала. При уменьшении тактовой частоты снижается пропускная способность системы. [7]
Требования к срокам [ править ]
Проекты систем обычно охватывают несколько тактовых доменов , при этом сигналы проходят через отдельные домены. [7] Встроенные тактовые генераторы и глобальные тактовые линии обычно решают эти проблемы, но иногда эти ресурсы могут быть ограничены или не соответствовать всем проектным требованиям. Внутренние часы должны быть реализованы в устройствах FPGA, поскольку соединения линии тактовой частоты и буферов тактовой частоты между FPGA ограничены. Конструкции с внутренней тактовой частотой, которые разделены на несколько FPGA, должны копировать генератор тактовой частоты внутри FPGA, обеспечивая низкий сдвиг тактовой частоты между сигналами между FPGA. Кроме того, любая логика стробируемых тактовых импульсов должна быть преобразована в тактовую, позволяющую уменьшить перекосы при работе на высоких тактовых частотах.
Пересечения тактовых доменов не должны быть разделены на отдельные FPGA. Сигналы, проходящие через пересечение, должны оставаться внутренними для одной FPGA, поскольку дополнительное время задержки между FPGA может вызвать проблемы в другом домене. Также рекомендуется, чтобы сигналы, маршрутизируемые между FPGA, синхронизировались в регистры.
Отладка [ править ]
Одной из самых сложных и трудоемких задач при прототипировании FPGA является отладка конструкции системы. Для этого был придуман термин «ад FPGA». [11] [12] Отладка стала более сложной и трудоемкой с появлением больших и сложных конструкций ASIC и SoC. Для отладки прототипа FPGA датчики добавляются непосредственно в конструкцию RTL, чтобы сделать определенные сигналы доступными для наблюдения, синтезируются и загружаются на платформу прототипа FPGA.
Поставщики 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, работающих на высокой скорости. Улучшение заключается в его способности видеть большие следы во времени в виде непрерывного потока или пакетами. Это позволяет исследовать расширенные сценарии отладки, которые невозможно реализовать с помощью традиционных встроенных инструментов . В решении утверждается экономия как ресурсов ввода-вывода FPGA, так и памяти FPGA за счет гигабитных трансиверов, для улучшения видимости в 100 000 и более раз. [16] [17]
См. также [ править ]
Ссылки [ править ]
- ^ «FPGA и ASIC: различия между ними и какой из них использовать? – Справочный центр Numato Lab» . numato.com . 17 июля 2018 г. Проверено 17 октября 2018 г.
- ↑ Перейти обратно: Перейти обратно: а б «SOCcentral: получение максимальной отдачи от прототипирования ASIC с помощью FPGA (EE Times Programmable Logic Designline 30794)» . Архивировано из оригинала 2 февраля 2013 года . Проверено 9 октября 2012 г.
- ^ Риттман, Дэнни (5 января 2006 г.). «Нанометровое прототипирование» (PDF) . Тайден Дизайн . Проверено 7 октября 2018 г.
- ↑ Перейти обратно: Перейти обратно: а б «Прототипирование FPGA для структурированного производства ASIC для снижения затрат, рисков и TTM» . Проектирование и повторное использование . Проверено 7 октября 2018 г.
- ^ «Прототипирование системных проектов на FPGA» . Новая электроника. 22 марта 2011. Архивировано из оригинала 6 марта 2012 года . Проверено 22 марта 2011 г.
- ^ «Лучшие практики для прототипирования FPGA алгоритмов MATLAB и Simulink» . Электронный журнал . 25 августа 2011 года . Проверено 8 октября 2018 г.
- ↑ Перейти обратно: Перейти обратно: а б с д и «Белая книга Aldec и Xilinx «Прототипирование ASIC HES-7» , необходима регистрация.
- ^ «Прототипирование ПЛИС: Речь о программном обеспечении — 02.11.2007 — Electronics Weekly» . Архивировано из оригинала 22 января 2013 года . Проверено 9 октября 2012 г.
- ^ http://www.fpga-faq.com/FAQ_Pages/prototyping.pdf [ пустой URL PDF ]
- ^ «Мультиплексирование с временным разделением» . www.inetdaemon.com . Проверено 8 октября 2018 г.
- ^ «Ад FPGA» . zipcpu.com . Проверено 5 ноября 2019 г.
- ^ «Начало работы с FPGA» (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
- Документы и статьи по прототипированию FPGA