Приветствую!
Цитата(Vengin @ May 26 2018, 18:51)

Честно говоря, не совсем уловил мысль. Вот сейчас у меня проект, который с нуля компилируется (Elaboration) в Active-HDL минут 3-5 (в зависимости от конфигурации проекта).
Compilation и Elaboration это две разные сущности. Первая компилирует ваш исходник в некий "obj" формат и incremental опция применяется именно тут. То есть tools смотрит на дату файла и решает нужно ли обновлять obj в библиотеке или нет.
Затем Elaboration линкует и оптимизирует все obj модули в один целый "exe" для симуляции. Вот на этом этапе сделать incremental обновления уже тяжело (если вообще возможно). А обычно именно этот этап занимает большую часть времени на старте.
Другое дело надо смотреть как IDE запускает проект на сим. В Aldec я давно уже не работал но вроде помню что например если надо скомпилировать сотню файлов то IDE генерирует скрипт типа такого:
Код
alog/acom [options] folder/file_1
...
alog/acom [options] folder/file_N
Соответствен
каждый раз загружается и запускается компилятор alog/acom!
А ведь ручками можно сделать так
Код
alog/acom [options] file1 file2 ...
# или так
alog/acom [options] folder/*.v folder/*.vhd
# ну или так
alog/acom [options] -f file_list.f -f file_list.f
В этом случае alog/acom загружается только
один раз!
При этом время компиляции для большого числа файлов в разы меньше чем в первом случае.
Цитата(Vengin @ May 26 2018, 18:51)

...
Т.е. сейчас есть немаленький проект, который изначально проверяется в симуляции (а релизы в железе). И естественно если после любого малейшего изменения для симуляции требуется перекомпиляция всего проекта – это крайне неэффективно. Поэтому меня и настораживает отсутствие(?) Incremental compilation.
А зачем перекомпилировать все после небольшой правки ? Конечно иногда это необходимо (например после правки глобального pkg)
Но обычно нужно перекомпилить только то что правилось.
Другое дело - вы что то поправили и жмете кнопку "Run Simulation" по который IDE генерирует скрипт типа приведенного выше в котором туеву хучу раз запускается alog/acom с опцией -incremental чтобы убедится что данный файл не нужно перекомпилировать
Цитата(Vengin @ May 26 2018, 18:51)

Изначально пытался делать тестбенчи для индивидуальных компонентов, но на каком-то этапе это потеряло смысл - всё равно нужно проверять работоспособность всей системы. В конечном итоге всё естественно проверяется в железе, но это тоже не очень эффективно, т.к. полная раскладка проекта занимает 1.5 – 4+ часа. Да и с железом приходится работать удалённо, что тоже накладывает определённые ограничения.
А по другому и ни как - Сначала TB покрывающие все более менее функционально законченные блоки - от самых низов до всего проекта целиком. Потом проверка (ну и debug) в железе. Причем чем полнее этап TB тем меньше гемороя c HW. И при этом накапливая TB для различных ситуаций со временем значительно сокращаются затраты на debug в железе.
Удачи! Rob.