Запустить ModelSim из командной строки — различия между версиями

Материал из Модулярная арифметики
Перейти к: навигация, поиск
 
(не показаны 2 промежуточные версии этого же участника)
Строка 16: Строка 16:
 
* замените '''adder''' на имя своего модуля верхнего уровня
 
* замените '''adder''' на имя своего модуля верхнего уровня
 
* директория '''work''' должна отсутствовать при первом запуске скрипта, вы так же можете поменять её им на любое другое
 
* директория '''work''' должна отсутствовать при первом запуске скрипта, вы так же можете поменять её им на любое другое
 +
* если в проекте у вас используется несколько Verilog-файлов то вы можете указать их через пробел (во второй строчке BAT-файла)
  
 
Этот исполняемый BAT-файл по двойному клику запустит компиляцию Verilog-файла и затем запустит задание на моделирование, которое надо будет написать в файле test.do. В большинстве случаев структура у test.do файла будет одинаковая:
 
Этот исполняемый BAT-файл по двойному клику запустит компиляцию Verilog-файла и затем запустит задание на моделирование, которое надо будет написать в файле test.do. В большинстве случаев структура у test.do файла будет одинаковая:
Строка 26: Строка 27:
 
Поскольку вы озаботились запуском ModelSim из командной строки значит вы скорее всего автоматизируете работу моделирования. И в этом случае вместо команд $display в Test Bench пригодится запись в файл. Запись в файл обеспечивается следующими функциями:
 
Поскольку вы озаботились запуском ModelSim из командной строки значит вы скорее всего автоматизируете работу моделирования. И в этом случае вместо команд $display в Test Bench пригодится запись в файл. Запись в файл обеспечивается следующими функциями:
  
<pre>file = $fopen("output.dat");
+
<pre>
 +
integer file;
 +
file = $fopen("output.dat", "w");
 
$fwrite (file, "%f", var);
 
$fwrite (file, "%f", var);
 
$fclose(file);</pre>
 
$fclose(file);</pre>
  
 
Данная последовательность команд запишет в файл с именем output.dat значение вещественной переменной var.
 
Данная последовательность команд запишет в файл с именем output.dat значение вещественной переменной var.

Текущая версия на 13:27, 7 мая 2014

Решение приводится для Windows-систем для классической простой задачи. Пусть на входе имеется файл test.v, в котором задана схема для моделирования и записан тест-бенч.

Порядок действий

Для начала необходимо найти расположение папки с ModelSim. Сделать это можно к примеру нажав правой кнопкой мыши на ярлык программы. Выбрав "Свойтсва/Properties" и далее в открывшемся окошке "Open file location".

В нашем случае путь такой:

C:\Programs\Altera\modelsim_ase\win32aloem\modelsim.exe

Создайте в той же папке что и module.v файл run.bat. И запишите в нем следующие команды:

C:\Programs\Altera\modelsim_ase\win32aloem\vlib.exe work
C:\Programs\Altera\modelsim_ase\win32aloem\vlog.exe -work work test.v
C:\Programs\Altera\modelsim_ase\win32aloem\vsim.exe -c -do test.do adder

Замечания:

  • замените пути до файлов "C:\Programs\Altera\modelsim_ase\win32aloem\" на свои
  • замените adder на имя своего модуля верхнего уровня
  • директория work должна отсутствовать при первом запуске скрипта, вы так же можете поменять её им на любое другое
  • если в проекте у вас используется несколько Verilog-файлов то вы можете указать их через пробел (во второй строчке BAT-файла)

Этот исполняемый BAT-файл по двойному клику запустит компиляцию Verilog-файла и затем запустит задание на моделирование, которое надо будет написать в файле test.do. В большинстве случаев структура у test.do файла будет одинаковая:

run -all
quit

Полезные функции для Test Bench

Поскольку вы озаботились запуском ModelSim из командной строки значит вы скорее всего автоматизируете работу моделирования. И в этом случае вместо команд $display в Test Bench пригодится запись в файл. Запись в файл обеспечивается следующими функциями:

integer file;
file = $fopen("output.dat", "w");
$fwrite (file, "%f", var);
$fclose(file);

Данная последовательность команд запишет в файл с именем output.dat значение вещественной переменной var.