Повышение скорости моделирования Xilinx ISim

У меня есть большой проект ISim для Spartan-6, использующий около 6 IP-ядер Spartan-6 FPGA. Он должен работать в течение времени моделирования 13 секунд, но в настоящее время требуется 40 секунд для запуска времени моделирования 1 мс. В течение 13 секунд он также запишет 480000 24-битных std_logic_vectors в текстовый файл.

Это соответствует времени работы 144 часа для запуска всей симуляции (почти неделя!).

Есть ли способ, например, увеличить размер шага или отключить настройки для построения графика формы волны и т. д., или какие-либо другие настройки, которые я могу использовать для увеличения скорости моделирования?

До сих пор я пытался не строить форму волны, но, похоже, это не увеличивает скорость.

Спасибо большое


person davidhood2    schedule 01.05.2016    source источник
comment
Почему вы запускаете свою симуляцию для 6 FPGA?   -  person Paebbels    schedule 01.05.2016
comment
Извиняюсь! Должно быть 6 IP ядер   -  person davidhood2    schedule 01.05.2016
comment
Изменение предела разрешения (-time_precision_vhdl ‹time_precision) увеличивает симулируемое время, а не продолжительность симуляции. Это связано с тем, как работает цикл моделирования, управляемый событиями, а не дополнительным временем.   -  person    schedule 01.05.2016


Ответы (1)


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

Вы можете проверить свой код и:

  • улучшить списки чувствительности, чтобы сократить циклы вычислений
  • некоторые IP-ядра имеют режим быстрой симуляции, который можно включить с помощью общего параметра.

Но в целом выход один: использовать другой симулятор. Особенно с оптимизацией. (В бесплатных версиях можно отключить или ограничить) Например:

  • GHDL — с открытым исходным кодом и довольно быстрый.
  • QuestaSim / ModelSim
    ModelSim, например, включен в Altera Quartus Prime (WebPack) бесплатно в качестве версии для начинающих.
  • Active-HDL
    Active-HDL Student Edition можно использовать бесплатно. В качестве альтернативы он включен в Lattice Diamond.

P.S. 40 секунд за 1 мс (25 мкс в секунду) — это очень быстро. Мои симуляции интеграции обычно рассчитывают 20 нс в секунду. Так ты в 1000 раз быстрее)

person Paebbels    schedule 01.05.2016
comment
Будут ли IP-ядра Xilinx моделировать в другом симуляторе? - person davidhood2; 01.05.2016
comment
Какое имя ядра IP? Это список соединений или исходный код? Примитивы Xilinx можно моделировать с помощью других симуляторов. ISE может компилировать свои примитивы для других симуляторов, таких как QuestaSim или ModelSim. Также может быть скомпилирован для GHDL. Сложные IP-ядра в виде списка соединений более сложны, но некоторые из них можно сгенерировать с помощью имитационной модели (большой файл VHDL). Этот файл можно использовать в качестве входных данных для других симуляторов. - person Paebbels; 01.05.2016
comment
Это должно работать в других симуляторах. Так что вопрос остается, зачем вам 13 секунд? Ни один тестовый стенд не должен работать так долго. Если вы рассчитываете результаты, поместите их в FPGA, это будет намного быстрее => моделирование с аппаратным ускорением. - person Paebbels; 01.05.2016
comment
Это графический трассировщик лучей для экрана 600x800. При наличии дедлайна я не успеваю его полностью связать на ПЛИС с другими частями. Вместо этого мой план состоял в том, чтобы смоделировать кадр в текстовом файле и отобразить его... - person davidhood2; 01.05.2016
comment
Так что вам нужно решить: подождать неделю или реализовать это на FPGA менее чем за неделю... Что, если ваша симуляция не удалась? Подождать еще недельку или начать реализовывать дизайн? Как долго вы собираетесь смотреть, как умирает ваша симуляция, пока вы не решите пойти трудным путем и реализовать ее? Я (HDL) дизайнер, у которого всегда есть кувалда в пределах досягаемости (ChipScope, встроенный 8-битный процессор для управления тестированием или Gigabit Ethernet для потоковой передачи данных / трассировки), чтобы взломать гайку / ошибку. - person Paebbels; 01.05.2016
comment
Затем установите для X_size и Y_size значения 80 и 60 для симуляции и сократите время до едва переносимого часа или около того. - person user_1818839; 02.05.2016
comment
Я выделил это как ответ, потому что я выбрал рекомендацию @Paebbels по использованию оборудования - я создал экземпляр ядра UART, запустил его на оборудовании и собрал результаты с помощью PuTTY за целых 14 секунд (а не 144 часа). Хотя я знаю, что это необычно, я также хотел бы поблагодарить Пэббельса, Брайана Драммона и других за бесконечное терпение и помощь в SO за последние 9 месяцев, без которых мой студенческий проект, скорее всего, давно бы провалился. ...Спасибо еще раз. - person davidhood2; 04.05.2016