2014-10-08 1 views
3

Я хочу сделать скрипт, который может быть выполнен из оболочки, как: ./myscript -test1 или tclsh myscript.tcl -test1(? Tcl) Скрипт для запуска ModelSim с тестбенча в качестве параметра из оболочки

I хотите, чтобы он открывал ModelSim, компилировал единицы, загружал желаемый тестовый стенд, запускал симуляцию. Имя теста будет параметром. Я уже сделал файлы макросов (.do), содержащие команды modelsim для компиляции &, имитируя нужные единицы (+ добавление сигналов к форме волны). Я спрашиваю, потому что скрипты - это не моя область знаний.

Так вот мои вопросы:

  1. Как ,, сказать «» ModelSim (при запуске), чтобы сделать команды в указанном файле?

  2. Является ли TCL языком, который я ищу // это применимо в TCL? Если да, с какими командами я должен ознакомиться?

  3. Возможно, сценарий оболочки достаточно, и я должен искать конкретные команды Modelsim в справочном руководстве?

Спасибо вам за внимание!

EDIT: Проводка небольшого примера, который я сделал для всех, чтобы использовать. Использование: ./foo.tcl АСМАП

#!/usr/bin/tclsh 
# params 
set testname [lindex $argv 0] 
set testlist {test1 test2 test3} 
# run vsim test $testname 
if { [ lsearch $testlist $testname ] >= 0 } {  
    puts "Test found. Executing..." 
    open "|vsim -do $testname " 
} else { puts "Test not found on the list!" } 
+1

Вы, как ожидается, чтобы попытаться решить ваши перед тем, как обратиться за помощью к ним. Кроме того, вы обычно задаете только один вопрос одновременно. Поэтому выберите область этой проблемы и начните изучать, что нужно делать для этой области. Когда/если вы столкнетесь с проблемой, вернитесь и задайте вопрос об этом либо здесь, либо на более подходящем сайте stackexchange. –

ответ

3

Вы можете запустить vsim с произвольными командами с помощью опции -do <arg> командной строки. Аргумент может быть либо именем файла .do, содержащего произвольный код Tcl, либо строкой команд Tcl («run -all; quit» полезен для неинтерактивного режима командной строки с -c).

Tcl - полнофункциональный язык сценариев. Он может справиться с любой задачей автоматизации, которую вы должны выполнить. В конечном счете, вы не можете избежать Tcl с помощью Modelsim, так как почти все проходит через него внутри. Я бы рекомендовал вам собрать вместе то, что вам нужно в файле .do, и запустить его с помощью опции -do.

0

Если вы создаете сценарий .tcl (файлы .do могут запускать команды QuestaSim/ModelSim и команды tcl), вы можете делать все, что хотите, включить запуск других файлов .do/.tcl. Например:

ModelSim/QuestaSim командной строки:

так же, как то, что вы привыкли ...

$: do MyDoFile.do 

... вместо того, чтобы использовать файл Tcl, который можно назвать из ваших .Не файлов:

$: source ./MyDirectory/MyTCLScript.tcl 

С в этом MyTCLScript.TCL вы можете иметь буквально следующее:

В MyTCLScript.tcl:

... 
#Use tabs for aliases 
source ./MyDirectory/OtherDirectory/OtherTCLScript.tcl 
    MyAlias1 
    MyAlias2 

do ./MyDoFile.do 
... 

Наконец, чтобы можно было использовать команды для запуска одного testbenches и то, я предлагаю смотреть на Tcl документация по псевдонимам. Вот пример, хотя:

В OtherTCLScript.tcl:

... 
alias MyAlias1 { 
    eval <command><command flags> 
} 
alias MyAlias2 { 
    eval <command><command flags> 
} 
... 

Источники: 1. Опыт 2. Квеста SIM Руководство пользователя

Смежные вопросы