Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Ikos NSIM-64 Ускоритель аппаратного моделирования.

В интегральной схеме , эмуляции аппаратного обеспечения является процессом имитирующего поведения одной или несколько частей аппаратных средств ( как правило, систем на стадии проектирования) с другой частью аппаратных средств, как правило , специальной системой эмуляции назначения. Модель эмуляции обычно основана на исходном коде языка описания оборудования (например, Verilog ), который компилируется в формат, используемый системой эмуляции. Обычно целью является отладка и функциональная проверка проектируемой системы. Часто эмулятор оказывается достаточно быстрым, чтобы его можно было подключить к работающей целевой системе вместо чипа, который еще предстоит построить, поэтому всю систему можно отлаживать с помощью оперативных данных. Это частный случай внутрисхемной эмуляции .

Иногда аппаратную эмуляцию можно спутать с аппаратными устройствами, такими как карты расширения с аппаратными процессорами, которые помогают выполнять функции программной эмуляции, например, более старые дочерние платы с чипами x86, позволяющие операционным системам x86 работать на материнских платах с различными семействами процессоров.

Введение [ править ]

Наибольшая доля повторных изменений и степпингов кремниевых интегральных схем , по крайней мере частично, связана с функциональными ошибками и ошибками, непреднамеренно введенными на этапе RTL процесса проектирования. Таким образом, комплексная функциональная проверка является ключом к снижению затрат на разработку и своевременной доставке продукта. Функциональная проверка проекта чаще всего выполняется с помощью логического моделирования и / или прототипирования на программируемых вентильных массивах.(ПЛИС). У каждого есть свои преимущества и недостатки, и часто используются оба. Логическое моделирование простое, точное, гибкое и недорогое. Однако моделирование часто оказывается недостаточно быстрым для больших проектов и почти всегда слишком медленным, чтобы запускать прикладное программное обеспечение по сравнению с конструкцией оборудования. ПЛИСпрототипы на основе быстрых и недорогих, но время, необходимое для реализации большого проекта в нескольких ПЛИС, может быть очень долгим и подверженным ошибкам. Внесение изменений для исправления недостатков конструкции также требует много времени и может потребовать изменения проводки платы. С традиционными инструментами поставщиков прототипы FPGA имеют мало возможностей для отладки, зондирование сигналов внутри FPGA в реальном времени очень сложно, а перекомпиляция FPGA для перемещения зондов занимает слишком много времени. Ситуация меняется с появлением более совершенных инструментов отладки прототипов FPGA [1]снимающие ограничения на видимость сигнала. Обычным компромиссом является использование моделирования на ранних этапах процесса проверки, когда часто встречаются ошибки и исправления, и создание прототипа в конце цикла разработки, когда дизайн в основном завершен и требуется скорость, чтобы провести достаточное тестирование для выявления любых оставшихся ошибок системного уровня . Прототипирование FPGA также популярно для тестирования программного обеспечения.

Ускорение моделирования может в некоторой степени устранить недостатки моделирования. Здесь дизайн отображается в аппаратном ускорителе, чтобы работать намного быстрее, а тестовая среда (и любой код поведенческого дизайна) продолжает работать на симуляторе на рабочей станции. Канал с высокой пропускной способностью и малой задержкой соединяет рабочую станцию ​​с ускорителем для обмена данными сигнала между испытательным стендом и конструктором. По закону Амдала самое медленное устройство в цепи определяет достижимую скорость. Обычно это тестовый стенд в симуляторе. С очень эффективным средством тестирования (написанным на C или основанным на транзакциях) канал может стать узким местом. В некоторых случаях тестовая среда на уровне транзакции может передать в эмулируемый дизайн столько данных, сколько «живой» стимул.

Внутрисхемная эмуляция несколько сокращает время реализации прототипов ПЛИС и обеспечивает комплексные и эффективные возможности отладки. Эмуляция делает это за счет скорости работы и высокой стоимости (более 1 миллиона долларов) по сравнению с прототипами FPGA (75 тысяч долларов). [ согласно кому? ] Если посмотреть на эмуляцию с другой стороны, то можно сказать, что она улучшает характеристики ускорения за счет замены смоделированного тестового стенда «живым» стимулом. Этот стимул может исходить от целевой системы (разрабатываемого продукта) или от испытательного оборудования. Эмуляция, скорость которой в 10–100 раз превышает скорость моделирования, позволяет тестировать прикладное программное обеспечение, обеспечивая при этом комплексную среду отладки оборудования.

Отладка моделирования против эмуляции / прототипирования [ править ]

Стоит отметить, что моделирование и прототипирование включают два разных стиля выполнения. Моделирование выполняет код RTL последовательно, в то время как прототип выполняется полностью параллельно. Это приводит к различиям в отладке. В симуляции:

  • Пользователь может установить точку останова и остановить моделирование, чтобы проверить состояние проекта, взаимодействовать с проектом и возобновить моделирование.
  • Пользователь может остановить выполнение «в середине цикла», как если бы была выполнена только часть кода.
  • Пользователь может увидеть любой сигнал в дизайне и содержимое любой ячейки памяти в любое время.
  • Пользователь может даже резервировать время (если они сохранили контрольные точки) и повторно запускать.

С прототипом:

  • Пользователь использует логический анализатор для наглядности и поэтому может видеть только ограниченное количество сигналов, которые они определили заранее (путем отсечения зондов). Ситуация меняется с появлением новых инструментов-прототипов FPGA, которые обеспечивают полную видимость 10 000 внутренних сигналов, таких как Certus. [2]
  • Цель не останавливается при срабатывании логического анализатора, поэтому каждый раз, когда пользователь меняет зонды или условие запуска, он должен сбрасывать среду и начинать заново с самого начала.
  • Зонды добавляются непосредственно в конструкцию RTL, чтобы сделать определенные сигналы доступными для наблюдения. Когда система запущена, датчик на основе RTL, подключенный к каждому из инструментованных сигналов, собирает значение сигнала в каждом тактовом цикле. Данные хранятся в буфере трассировки в ОЗУ блока ПЛИС. Анализатор, подключенный к прототипу, загружает информацию, предоставляя пользователю видимость в автономном режиме в систему для эффективной отладки. [3]

Ускорение и эмуляция больше похожи на прототипирование и кремний с точки зрения выполнения и отладки RTL, поскольку весь проект выполняется одновременно, как и в кремнии. Поскольку для ускорения моделирования и внутрисхемной эмуляции часто используется одно и то же оборудование, эти системы обеспечивают сочетание этих двух очень разных стилей отладки.

Эмуляторы оборудования высокого класса предоставляют среду отладки со многими функциями, которые можно найти в симуляторах логики, а в некоторых случаях даже превосходят их возможности отладки:

  • Пользователь может установить точку останова и остановить эмуляцию, чтобы проверить состояние проекта, взаимодействовать с проектом и возобновить эмуляцию. Эмулятор всегда останавливается на границах цикла.
  • Пользователь видит любой сигнал или содержимое памяти в проекте без необходимости настраивать датчики перед запуском. Хотя видимость предоставляется и для прошлого времени, количество времени, которое она может показать в прошлом, может быть ограничено в некоторых случаях глубиной памяти трассировки эмулятора.
  • Пользователь может даже резервировать время (если они сохранили контрольные точки) и повторно запускать.
  • Из-за своей высокой стоимости эмуляторы недоступны для многих разработчиков, что привело к появлению передовых платформ для создания прототипов FPGA и средств отладки.

Эмуляция и логика с двумя состояниями [ править ]

Еще одно различие между моделированием, ускорением и эмуляцией - это следствие того, что ускорители используют аппаратное обеспечение для реализации - они имеют только два логических состояния, действующих так же, как кремний при изготовлении. Из этого следует:

  • Они бесполезны для анализа инициализации X-состояния.
  • Они не могут анализировать разрешение силы, или, по крайней мере, это должно выполняться статически во время компиляции.
  • Эмуляторы не моделируют точную синхронизацию схемы, и, следовательно, они, вероятно, не обнаружат каких-либо условий гонки или нарушений времени установки и удержания.

Эти задачи правильно выполняются во время логического моделирования или с помощью инструмента статического временного анализа .

Эмуляция против прототипирования [ править ]

Ключевое традиционное различие между эмулятором и системой прототипирования ПЛИС состоит в том, что эмулятор предоставляет богатую среду отладки, в то время как система прототипирования практически не имеет возможности отладки и в основном используется после отладки проекта для создания нескольких копий для анализа системы и разработка программного обеспечения. Появляются новые инструменты, которые обеспечивают полную видимость сигнала RTL с небольшим воздействием на FPGA LUT, обеспечивают глубокую глубину захвата и обеспечивают анализ нескольких микросхем и тактовой частоты, чтобы обеспечить эффективную отладку, сравнимую с эмулятором. [2]

См. Также [ править ]

Ссылки [ править ]

  1. ^ "Tektronix встряхивает прототипы, встроенное оборудование повышает платы до статуса эмулятора" . Электронный инженерный журнал. 30 октября 2012 . Проверено 30 октября 2012 года .
  2. ^ a b «Tektronix надеется перевернуть прототипы ASIC» . EE Times. 30 октября 2012 . Проверено 30 октября 2012 года .
  3. ^ «Преодолейте узкие места создания прототипов ASIC» . 23 октября 2012 . Проверено 30 октября 2012 года .
  • Руководство по автоматизации проектирования электроники для интегральных схем , составленное Лаваньо, Мартином и Шеффером, ISBN 0-8493-3096-3 Обзор области, из которой было получено приведенное выше резюме, с разрешения. 

Дальнейшее чтение [ править ]

  • SNEAK PEEK: ВНУТРИ ЛАБОРАТОРИИ ЭМУЛЯЦИИ NVIDIA
  • Платформа корпоративной эмуляции Cadence Palladium Z1
  • Эмулятор Synopsys Zebu Server
  • Системы эмуляции Mentor Graphics Veloce