Почему? Кто-нибудь может ответить «почему»? Что ж, возможно, разработчик продукта или разработчик в Mentor, который привел к созданию такого поведения, сможет ответить на этот вопрос. Но об отсутствии этого можно только догадываться. И вот что я здесь делаю.
Я могу придумать несколько возможных вариантов использования, но это не то, что нельзя сделать другим способом. Например, у кого-то может быть общий «контроллер тестового стенда», который в зависимости от обобщений / параметров может вызывать определенное поведение симулятора. (Изменить: перечитав одну из ваших ссылок, я вижу, что это точный вариант использования.)
Например, скажем, у меня есть этот «общий» код тестовой среды как:
module testbench;
parameter LOG_SIGNALS = 1'b0;
initial
begin
if LOG_SIGNALS
begin
// Log all signals in the design
mti_fli::mti_Cmd("add wave -r /*")
end
endmodule
Тогда это можно было бы вызвать как:
vsim -c -gLOG_SIGNALS=1 work.testbench
Самый большой вариант использования для этого может быть, если vsim
вызывается из некоторой среды. Если бы нужно было сделать do
файл, я не уверен, что можно передать параметры в скрипт. Скажем, у одного был следующий do
файл:
if {$log_signals} {
add wave -r /*
}
Как установить $log_signals
из командной строки? Я полагаю, что это можно сделать с помощью переменных окружения, таких как:
if { [info exists ::env(LOG_SIGNALS)] } {
add wave -r /*
}
Другими вариантами использования могут быть включение / выключение сбора данных покрытия, файлов списков, возможно, даже необычный случай завершения моделирования.
Но, конечно, со всем этим можно справиться и по-другому. И манеры, на мой взгляд, намного яснее и легче в обслуживании.
Что касается VerTCL, я нахожу его захватывающим. Но неполный. Или хотя бы barebones. Я считаю, что сценарии тестирования чрезвычайно полезны (мы используем их там, где я работаю). И VerTCL - отличный способ сделать это (если вам нравится TCL). Но для считывания сигналов, управления сигналами и иного управления симуляцией требуется некоторая структура вокруг него.
person
PlayDough
schedule
23.06.2016