lexus.mephi 0 24 января, 2020 Опубликовано 24 января, 2020 · Жалоба Есть тест, где самое интересное начинается после 10мс. Как лучше пропустить неинтересующую часть диаграммы, чтобы ускорить симуляцию? Если это делается только с помощью VPD (VCD), то поделитесь примером, пожалуйста. В идеале, хотелось бы просто поставить маркер и сказать VCS'у - рисуй вот отсюда. Пока единственное решение, которое придумал: - запустить симуляцию без вытаскивания сигналов на диаграмму и домоделить до 10мс - после 10мс вытащить интересующие сигналы и продолжить моделирование Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 24 января, 2020 Опубликовано 24 января, 2020 · Жалоба 24 минуты назад, lexus.mephi сказал: Есть тест, где самое интересное начинается после 10мс. Как лучше пропустить неинтересующую часть диаграммы, чтобы ускорить симуляцию? Как вариант - найти то место, которое требует 10мс. Зафорсить сигнал, который тормозит. Или скопировать в рабочую папку файл, который тормозит и в нем убрать задержку... Например, при использовании памяти в ISE, в файле при релизе должно быть ROC_WIDTH = 100000: module glbl (); parameter ROC_WIDTH = 10; //должно быть ROC_WIDTH = 100000, но я вручную ставлю так. это позволяет сократить время симуляции parameter TOC_WIDTH = 0; wire GSR; wire GTS; wire PRLD; А после симуляции пользуюсь исходным файлом.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexus.mephi 0 24 января, 2020 Опубликовано 24 января, 2020 · Жалоба 3 minutes ago, iosifk said: Как вариант - найти то место, которое требует 10мс. Зафорсить сигнал, который тормозит. Или скопировать в рабочую папку файл, который тормозит и в нем убрать задержку... Немного не понял про файл, который тормозит. Всякие DDR3 я уже заменил на легковесные модельки. Отключил UVM-ные мониторы, которые мне в этом тесте не нужны. В общем, ряд мер по ускорению симуляции уже предпринял. 10мс я собираю некоторые данные, которые поступают в обработку после 10мс. Т.е. пропусить эти 10 мс и получить интересующую картинку не получится (или получится, но с дикими костылями, которые уведут меня от исходной проверяемой системы). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 24 января, 2020 Опубликовано 24 января, 2020 · Жалоба 15 минут назад, lexus.mephi сказал: 10мс я собираю некоторые данные, которые поступают в обработку после 10мс. Т.е. пропусить эти 10 мс и получить интересующую картинку не получится (или получится, но с дикими костылями, которые уведут меня от исходной проверяемой системы). Если эти "некоторые данные" уже проверены и не сильно меняются, то запишите их в файл. Уберите часть симуляции для "я собираю некоторые данные" и просто зачитывайте их при симуляции из файла... И так до тех пор, пока не понадобится все вместе... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 24 января, 2020 Опубликовано 24 января, 2020 · Жалоба Приветствую! 1 hour ago, lexus.mephi said: Пока единственное решение, которое придумал: - запустить симуляцию без вытаскивания сигналов на диаграмму и домоделить до 10мс IMHO этот вариант наиболее ускоряет сим - так как вообще не тратит время на запись сигналов, особенно при большом их количестве. Как вариант посмотрите на системные таски $dumpvars $vcdpluson $vcdplusoff которыми можно из кода теста контролировать запись в VCD/VPD файл. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexus.mephi 0 24 января, 2020 Опубликовано 24 января, 2020 · Жалоба 24 minutes ago, RobFPGA said: Приветствую! IMHO этот вариант наиболее ускоряет сим - так как вообще не тратит время на запись сигналов, особенно при большом их количестве. Как вариант посмотрите на системные таски $dumpvars $vcdpluson $vcdplusoff которыми можно из кода теста контролировать запись в VCD/VPD файл. Значит на этом пока и остановимся. Вариант с $dumpvars $vcdpluson $vcdplusoff получается напряжным - в системе много кода. Все это фильтровать - что писать, что не писать. Может потом для регрессионных тестов такую работку проведем. Спасибо, коллеги! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 24 января, 2020 Опубликовано 24 января, 2020 · Жалоба К сожалению, сейчас нет доступа к документации Synopsys, но можно настроить так, чтобы симулятор начал собирать базу данных с определённого времени, с помощью tcl-скрипта, автоматически запускаемого при старте. Если правильно помню, в примерах от Synopsys, этот скрипт по умолчанию run.do, или simulation.do. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexx 0 29 января, 2020 Опубликовано 29 января, 2020 (изменено) · Жалоба Так или иначе все равно придётся использовать $dumpvars или подобное, в зависимости от того чем читать будете. Это стандартная практика, начало и конец чтения по events из кода или напрямую можно указать время. Изменено 29 января, 2020 пользователем lexx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться