В настоящее время я тестирую RTL, я использую ncverilog, и это очень ... очень медленно. Я слышал, что если мы будем использовать какие-то платы FPGA, то все будет быстрее. Это по-настоящему?Оценка RTL на основе ПЛИС
ответ
Вы говорите о двух разных вещах.
NCVerilog - это инструмент моделирования, а плата FPGA - это реальное оборудование. Таким образом, будут различия. Реальное оборудование будет, как правило, быстрее, но с симулятором вы можете получать удовольствие от отладки. Попытка проверить конкретный сигнал - это просто вопрос о добавлении строки в тестовую стенку. Кроме того, вы можете легко вносить изменения в моделированную модель вместо необходимости перепроектировать плату FPGA.
Если вы запускаете симуляцию на достаточно мощной машине, вы иногда можете приблизить реальную производительность (предполагая, что FPGA является медленным).
В целом, вы должны сделать то и другое. Используйте симулятор, чтобы выполнить свою основную разработку и оценку. Перемещайтесь на свое оборудование FPGA, как только ваша конструкция будет достаточно четко определена.
Хороший ответ (легко понять для новичка, подобного мне). Спасибо! – Alphaneo
Какой RTL вы испытываете? Если вы используете платы FPGA, вы можете скомпилировать свой код, если у вас есть подходящий инструмент для правильной FPGA. Так как FPGA являются перегружаемыми, то, конечно, вы можете протестировать свой код на плате и выполнить свой код (RTL)
Но это не более симуляция, это тест с заданным аппаратное обеспечение, с заданной тактовой частотой. И вы не получите хороший результат на экране, вам нужно использовать физический зонд и область действия. Кроме того, вы не видите, как работает внутренняя часть вашего кода.
Моделирование Verilog или VHDL похоже на работу с использованием отладчика. Тестирование FPGA больше похоже на отладку с помощью printf. Большая разница заключается в том, что при моделировании ваш процессор должен моделировать поведение всех этих логических ворот, которые являются результатом вашего кода. На FPGA нет симуляции, вы просто «запускаете» код, поэтому он намного быстрее, но у вас меньше информации.
Вы должны использовать симуляцию для очень маленьких компонентов, а затем проверить всю свою программу на FPGA.
У нас были те же проблемы со скоростью моделирования. Однако мы придерживаемся симуляций для большинства наших проверок. Каждый сим проверяет определенную функцию и намного быстрее, чем симы на системном уровне. Мы также сделали их самоконтролем и полезны для тестов регрессии (модульные тесты).
Для длинных системных тестов на реальных сигналах, которые занимают слишком много времени для имитации, мы перемещаем их в ПЛИС, если можем. Мы должны снова повторно проверить все эти тестовые таблицы после изменения кода, поэтому он может быть медленным по-своему.
Иногда, хотя FPGAing дизайн просто невозможно. Иногда полные рисунки слишком велики, чтобы вписаться в FPGA или слишком высокая частота. Но помните, что вам не обязательно иметь FPGA весь ваш дизайн, этого может быть достаточно, чтобы получить важный блок, который вам интересен, и полностью проверить это.
Вы можете отслеживать активность сигналов в бегущей FPGA-схеме с использованием программных инструментов «встроенного логического анализатора», таких как Altera SignalTap или Xilinx ChipScope. Прежде чем синтезировать/отображать RTL на устройство, вы должны использовать эти инструменты для подключения мягких зондов к сигналам, которые вы хотите посмотреть. Вы можете установить триггеры, чтобы значения сигнала регистрировались только при определенных условиях. Затем вы создаете бит-файл и программируете устройство с помощью JTAG. Логический анализатор взаимодействует с вашим ПК над JTAG и регистрирует активность на ваших пробках, которые затем можно анализировать.
Это немного сложно настроить, так как эти инструменты не особенно удобны в использовании, но вы получите результаты намного быстрее, чем при моделировании RTL.
Возможно, вы спрашиваете об ускорителях аппаратного имитационного моделирования. Вот один из них: GateRocket
В прошлом году GateRocket вышел из бизнеса. – FarhadA
Что вы считаете очень медленным? Минуты или часы. –
@Brian: Когда дело доходит до одного запуска тестирования, разница во времени будет составлять порядка минуты. Но, когда мы проводим всесторонний тест, разница составляет порядка дней ~ (я имею в виду, дней ~~) – Alphaneo