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

Вопрос по Модельсиму

Всем доброго времени суток!

Давно мучает такой вопрос: имеется набор исходников, некоторые из них время от времени редактируются, для того чтобы отмоделировать систему нужно эти исходники (которые изменились) перекомпилировать, естесственно хочется чтобы тикль сам анализировал что изменилось и компилировал только то что изменилось... Может быть кто то такую весчь делал?

Заранее всем спасибо за ответы!

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


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

Так он вроде сам и отслеживает - при открытии проекта изменившееся перекомпилирует...

Только как-то встречал глюк, что мсим "не увидел", что файл изменился и не перекомпилировал - с тех пор ручками удаляю папку work, просто на всякий случай ;-)

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


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

У меня есть подобный скрипт, но он рассчитан на проверку модификации после перекомпиляции только в рамках одного сеанса. Хотя, если есть желание, его не сложно модифицировать для работы и между сеансами моделирования (запусками modelsim).

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


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

2 maks: можно послать суда: viktor (dot) motspan (at) sitronicsts (dot)com

что то нет времени самому писать а так бы с удовольствием

 

2 Viktor: так это для проекта... что то мне показалось геморным заводить проект, да и ведет он себя как то странно, без проекта все нормально складывается а в проекте что то его колбасит

а удалив предварительно ворк проблема исчезает автоматицки :)

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


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

2 vitus_strom: я по прежнему предлагаю вам жестко компилировать все файлы проекта из списка - текстового файла.

vcom -f project_files.txt

 

Сколько времени это занимает?

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


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

В большом проекте много.

в данный момент время компиляции примерно равно времени моделирования

Плюс зачем мне компилить файлы которые точно не изменялись? приведите хотябы один довод.

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


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

Если времена примерно одинаковые, то действительно не имеет смысла.

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

К тому же, этот же список файлов я использую в нц-верилоге и debussy.

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

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


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

2 maks: можно послать суда: viktor (dot) motspan (at) sitronicsts (dot)com

что то нет времени самому писать а так бы с удовольствием

 

См. приложение к сообщению.

 

Пример запускать так: "modelsim -do flipflop.do" или "questasim -do flipflop.do"

После старта симулятора, если начальная компиляция не удалась по причине ошибок, то ее можно перезапустить с помощью команды sim из командной строки.

После успешного начала моделирования можно использовать следующие команды:

save_wave - сохранить текущее отображение окна с сигналами (его режим).

load_wave - загрузить сохраненное отображение окна с сигналами (его режим).

r - сброс сеанста моделирования (reset).

c - перекомпилировать все изменившиеся исходники.

ca - принудительно перекомпилировать все исходники.

crs - перекомпилировать, сбросить (отресетить) и запустить моделирование.

rs - сбросить и запустить моделирование сначала.

 

 

2 Viktor: так это для проекта... что то мне показалось геморным заводить проект, да и ведет он себя как то странно, без проекта все нормально складывается а в проекте что то его колбасит

а удалив предварительно ворк проблема исчезает автоматицки :)

 

Проекты не всегда удобны. Куда удобнее .do-файл и правильный modelsim.ini.

sample_simulation.zip

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


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

Добрый день всем!

 

Решил спросить здесь что бы темы не плодить.

 

Есть проект на систем верилоге и его верификационное окружение. Теперь хочу пропустить rtl часть через code_coverage.

В хелпе указано что для этого нужно воспользоваться coverage save, coverage report.

Но вызванными после окончания или остановки моделирования.

 

У меня время моделирования определяется разработанным окружением и моделирование заканчивается вызовом $finish(2); Но в этой среде вызов $finish приводит к закрытию симулятора и окончанию выполнения команд из скрипта.

 

Существует ли способ, с помошью которого можно завершить верилог симуляцию и вернуть управление симулятору, для дальнейшего выполнения скрипта ?

 

ЗЫ. В пределах поставленной задачи можно решить проблему с помошью coverage save -onexit или $set_coverage_db_name(). Но это к вопросу не относиться.

 

ЗЗЫ. Что касается компиляции верилог исходников в среду заложена возможность инкрементальной компиляции vlog -incr. Странно что нет такого для вхдл.

 

Спасибо.

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


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

Существует ли способ, с помошью которого можно завершить верилог симуляцию и вернуть управление симулятору, для дальнейшего выполнения скрипта ?
Используйте $stop вместро $finish.

Или я чего-то не понял?

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


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

Используйте $stop вместро $finish.

Или я чего-то не понял?

 

тоже не работает :( вот пример :

 

timeunit 1ns;
timeprecision 100ps;

module tb; 
  logic a; 
  initial begin
    a = 0; 
    forever a = #10ns !a; 
  end 

  logic b; 
  always_comb     b = a;

  logic c; 
  always_ff @(posedge a or negedge b) begin
    c <= 1 + b; 
  end 

  initial begin  
    #100ns;
    $display ("done");
    $stop;
  end
endmodule

 

вот батник запуска

vsim -c -do do.do

 

где в do файле прописано

vlog -sv tst.v -cover bcesxf
vsim -coverage work.tb
run -all
coverage report -lines -file coverage_rep
coverage save coverage.ucdb
quit

 

а вот и печальный результат

# do do.do 
# QuestaSim vlog 6.2f Compiler 2007.01 Jan 12 2007
# -- Compiling module tb
# 
# Top level modules:
#     tb
# vsim -coverage work.tb 
# ** Note: (vsim-3813) Design is being optimized due to module recompilation...
# //  QuestaSim 6.2f Jan 12 2007 
# //
# //  Copyright 1991-2007 Mentor Graphics Corporation
# //              All Rights Reserved.
# //
# //  THIS WORK CONTAINS TRADE SECRET AND 
# //  PROPRIETARY INFORMATION WHICH IS THE PROPERTY
# //  OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS
# //  AND IS SUBJECT TO LICENSE TERMS.
# //
# Loading C:\QuestaSim_6.2f\win32/../sv_std.std
# Loading work.tb(fast)
# done
# Break in Module tb at tst.v line 28
# Stopped at tst.v line 28 
# Simulation Breakpoint: Break in Module tb at tst.v line 28
# MACRO ./do.do PAUSED at line 7

 

после $stop, $finish вываливается консоль с приглашением ввести следущую команду.

 

если запускать не в консольном режиме результат тот же самый

 

# Break in Module tb at tst.v line 28
# Simulation Breakpoint: Break in Module tb at tst.v line 28
# MACRO ./do.do PAUSED at line 7

 

Может я что то не так делаю ?

 

Спасибо.

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


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

См. приложение к сообщению.

Скрипты на TCL - это, конечно, замечательно. Но это надо учить этот язык - еще один язык среди прочих. И только для того, чтобы пилотировать симулятором. Как-то в такой постановке оно не очень располагает к изучению.

 

У меня вопрос: вот я гляжу в доку на симулятор и вижу, что помимо команд консоли та же функциональность достигается и из командной строки (шелла). Для Ривьеры, например, в консоли для компиляции используется команда alog (для Verilog'а), а из командной строки vlog. Для создания библиотеки в консоли - alib, в командной строке - vlib. И т.д. Так вот, не выходит ли так, что все эти действия по компиляции, симуляции, работе с библиотеками и прочим можно делать вообще извне по отношению к консоли симулятора - например, записав все команды в качестве целей системе сборки (или вообще в виде набора батников) и пускать их хоть из того же Far'а или из любимого редактора HDL, что, вообще-то, и является желаемой целью - кодить описание в редакторе и из него все тулзы пускать (компиляцию, симуляцию, просмотр диаграмм)... В чем подвох?

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


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

Скрипты на TCL - это, конечно, замечательно. Но это надо учить этот язык - еще один язык среди прочих. И только для того, чтобы пилотировать симулятором. Как-то в такой постановке оно не очень располагает к изучению.

 

У меня вопрос: вот я гляжу в доку на симулятор и вижу, что помимо команд консоли та же функциональность достигается и из командной строки (шелла). Для Ривьеры, например, в консоли для компиляции используется команда alog (для Verilog'а), а из командной строки vlog. Для создания библиотеки в консоли - alib, в командной строке - vlib. И т.д. Так вот, не выходит ли так, что все эти действия по компиляции, симуляции, работе с библиотеками и прочим можно делать вообще извне по отношению к консоли симулятора - например, записав все команды в качестве целей системе сборки (или вообще в виде набора батников) и пускать их хоть из того же Far'а или из любимого редактора HDL, что, вообще-то, и является желаемой целью - кодить описание в редакторе и из него все тулзы пускать (компиляцию, симуляцию, просмотр диаграмм)... В чем подвох?

 

Вы абсолютно правы :)) когда я плотно сидел на активе, то верхом его использования была компиляция и симуляция с коммандной строки. (доходил до запуска на 4 башковой машине сразу 4 тестов на 3-4 часа. Все работало хорошо).

 

Самое главное пути верные прописать. Все работает с обычных батников. Ну а когда переполз на ментор, о тут вообще все просто, правда иногда бывают затыки описанные выше.

 

Подключил его к слику, работаю практически как в активе :)

 

ЗЫ. Шас работаю с альтерой так и квартус запускаю только с командной строки. Получается просто и быстро. И логи просто обрабатывать.

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


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

Скрипты на TCL - это, конечно, замечательно. Но это надо учить этот язык - еще один язык среди прочих. И только для того, чтобы пилотировать симулятором. Как-то в такой постановке оно не очень располагает к изучению.

 

.. & Altera Quartus, Xilinx ISE, Synplify, more MG product (all?), all Synopsys product, all Cadence product, etc.. (& more-more EDA-tools)

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


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

.. & Altera Quartus, Xilinx ISE, Synplify, more MG product (all?), all Synopsys product, all Cadence product, etc.. (& more-more EDA-tools)

Я это все знаю, но там оно не так актуально (исключая синопсисы и иже с ними).

 

У меня в арсенале, например, есть простой и мощный ЯП Python (который по возможностям кроет TCL как бык овцу, и изучать который было много сильных мотивов), и меня бы куда больше устроило использовать его для целей скриптописания. Беда лишь в том, что тулзы (возможно, пока) не поддерживают его. Хотя в той же Ривьере есть возможность пускать Perl'овые скрипты, это уже прогресс - Perl язык того же калибра, что и Python, т.ч. есть надежда. А пока я, в общем, иду по этому же пути, только скрипт у меня в системе сборки и запуск тулзов производится как commad-line.

 

Самое главное пути верные прописать. Все работает с обычных батников. Ну а когда переполз на ментор, о тут вообще все просто, правда иногда бывают затыки описанные выше.

"Все просто" - это вы TCL освоили? Или что?

 

 

Подключил его к слику, работаю практически как в активе :)

 

ЗЫ. Шас работаю с альтерой так и квартус запускаю только с командной строки. Получается просто и быстро. И логи просто обрабатывать.

Логи чем обрабатываете?

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


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

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

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

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

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

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

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

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

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

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