Оценка RTL на основе FPGA - PullRequest
       47

Оценка RTL на основе FPGA

3 голосов
/ 31 марта 2009

В настоящее время я тестирую некоторые RTL, использую ncverilog, и это очень ... очень медленно. Я слышал, что если мы будем использовать какие-то платы на ПЛИС, то все будет быстрее. Это на самом деле?

Ответы [ 5 ]

3 голосов
/ 06 апреля 2009

Вы можете отслеживать активность сигналов в работающем проекте FPGA, используя программные инструменты «встроенный логический анализатор», такие как Altera SignalTap или Xilinx ChipScope. Прежде чем синтезировать / отобразить ваш RTL на устройство, вы должны использовать эти инструменты, чтобы прикрепить программные зонды к сигналам, которые вы хотите смотреть. Вы можете установить триггеры так, чтобы значения сигнала регистрировались только при определенных условиях. Затем вы генерируете битовый файл и программируете устройство с помощью JTAG. Логический анализатор связывается с вашим компьютером через JTAG и регистрирует активность на ваших пробниках, которые вы затем можете анализировать.

Это немного сложно настроить, так как эти инструменты не особенно просты в использовании, но вы получите результаты намного быстрее, чем при RTL-симуляции.

3 голосов
/ 31 марта 2009

Вы говорите о двух разных вещах.

NCVerilog - это инструмент для моделирования, в то время как плата FPGA - это настоящее аппаратное обеспечение. Итак, будут различия. Реальное аппаратное обеспечение будет в целом быстрее, но с симулятором вы сможете получить удовольствие от отладки. Попытка проверить определенный сигнал - это просто добавить строку в тестовую среду. Кроме того, вы можете легко вносить изменения в смоделированную модель вместо того, чтобы перепроектировать плату FPGA.

Если вы запускаете симуляцию на достаточно мощной машине, вы иногда можете приблизиться к реальной производительности (при условии, что ПЛИС медленная).

В общем, вы должны сделать оба. Используйте симулятор, чтобы сделать ваши основные разработки и оценки. Перейдите к оборудованию FPGA, как только ваш дизайн будет достаточно четко определен.

3 голосов
/ 31 марта 2009

У нас были те же проблемы со скоростью симуляции. Тем не менее, мы придерживаемся моделирования для большинства наших проверок. Каждый сим проверяет определенную функцию и работает намного быстрее симов системного уровня. Мы также сделали их самоконтролируемыми и полезными для регрессионных тестов (юнит-тестов).

Для длительных системных тестов на реальных сигналах, для моделирования которых требуется слишком много времени, мы переносим их в ПЛИС, если можем. Нам нужно вручную повторно проверить все эти тестовые сценарии после изменения кода, чтобы он мог быть медленным по-своему.

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

2 голосов
/ 31 марта 2009

Какой RTL вы тестируете? Если вы используете платы FPGA, то вы можете скомпилировать Ваш код при условии, что у вас есть правильный инструмент для правильной ПЛИС. Поскольку FPGA перепрограммируемы, то, конечно, вы можете протестировать свой код на плате и заставить цель (FPGA) выполнить ваш код (RTL)

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

Verilog или VHDL-симуляция похожи на выполнение кода с использованием отладчика. Тестирование FPGA больше похоже на отладку с помощью printf. Большая разница в том, что при моделировании ваш процессор должен симулировать поведение всех тех логических элементов, которые являются результатом вашего кода. На ПЛИС симуляция отсутствует, вы просто «запускаете» код, поэтому он работает намного быстрее, но у вас меньше информации.

Вы должны использовать симуляцию для очень маленьких компонентов, а затем протестировать всю программу на ПЛИС.

1 голос
/ 14 июля 2009

Возможно, вы спрашиваете об аппаратных ускорителях симуляции. Вот один из них: GateRocket

...