Перейти к содержанию
    

VCS - отрисовка диаграммы, начиная, например, с 10мс

Есть тест, где самое интересное начинается после 10мс. Как лучше пропустить неинтересующую часть диаграммы, чтобы ускорить симуляцию?
Если это делается только с помощью VPD (VCD), то поделитесь примером, пожалуйста.
В идеале, хотелось бы просто поставить маркер и сказать VCS'у - рисуй вот отсюда.

Пока единственное решение, которое придумал:
- запустить симуляцию без вытаскивания сигналов на диаграмму и домоделить до 10мс

- после 10мс вытащить интересующие сигналы и продолжить моделирование

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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; 

 

А после симуляции пользуюсь исходным файлом..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, iosifk said:

Как вариант - найти то место, которое требует 10мс. Зафорсить сигнал, который тормозит.

Или скопировать в рабочую папку файл, который тормозит и в нем убрать задержку... 

Немного не понял про файл, который тормозит. Всякие DDR3 я уже заменил на легковесные модельки. Отключил UVM-ные мониторы, которые мне в этом тесте не нужны. В общем, ряд мер по ускорению симуляции уже предпринял.
10мс я собираю некоторые данные, которые поступают в обработку после 10мс. Т.е. пропусить эти 10 мс и получить интересующую картинку не получится (или получится, но с дикими костылями, которые уведут меня от исходной проверяемой системы).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, lexus.mephi сказал:

10мс я собираю некоторые данные, которые поступают в обработку после 10мс. Т.е. пропусить эти 10 мс и получить интересующую картинку не получится (или получится, но с дикими костылями, которые уведут меня от исходной проверяемой системы).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

1 hour ago, lexus.mephi said:

Пока единственное решение, которое придумал:
- запустить симуляцию без вытаскивания сигналов на диаграмму и домоделить до 10мс

IMHO этот вариант наиболее ускоряет сим  - так как вообще не тратит время на запись сигналов, особенно при большом их количестве.

Как вариант посмотрите на системные таски $dumpvars $vcdpluson $vcdplusoff которыми можно из кода  теста контролировать запись в VCD/VPD файл.

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 minutes ago, RobFPGA said:

Приветствую!

IMHO этот вариант наиболее ускоряет сим  - так как вообще не тратит время на запись сигналов, особенно при большом их количестве.

Как вариант посмотрите на системные таски $dumpvars $vcdpluson $vcdplusoff которыми можно из кода  теста контролировать запись в VCD/VPD файл.

Значит на этом пока и остановимся. Вариант с $dumpvars $vcdpluson $vcdplusoff получается напряжным - в системе много кода. Все это фильтровать - что писать, что не писать. Может потом для регрессионных тестов такую работку проведем.

Спасибо, коллеги!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению, сейчас нет доступа к документации Synopsys, но можно настроить так, чтобы симулятор начал собирать базу данных с определённого времени, с помощью tcl-скрипта, автоматически запускаемого при старте. Если правильно помню, в примерах от Synopsys, этот скрипт по умолчанию run.do, или simulation.do.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так или  иначе все равно придётся использовать $dumpvars или подобное, в зависимости от того чем читать будете.

Это стандартная практика, начало и конец чтения по events из кода или напрямую можно указать время.

Изменено пользователем lexx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...