Вопрос

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

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

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

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

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

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

Вам следует использовать моделирование для очень маленьких компонентов, а затем протестировать всю программу на FPGA.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top