реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Особенности ModelSim, и сопутствующие вопросы
Vengin
сообщение Jul 11 2018, 08:15
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149



Добрый день. В очередной раз пытаюсь «пересеть» на ModelSim, и уже вроде пошёл процесс, но как-то всё весьма своеобразно. Уже закрыл глаза на убогийсвоеобразный и постоянно «прыгающий» GUI. И пока лишь только настораживают не столь уж редкие подвисания/вылеты без явных вроде причин.
Сейчас больше интересует непосредственно основной функционал моделсима, то бишь симуляция/верификация. Пытаюсь максимально всё делать через консоль и скриптами. Со «стандартными» командами (типа vcom, vsim и т.п.) всё очевидно - есть документация, примеры. Но в то же время есть ещё, скажем так, «второстепенные» команды, с которыми не всё так понятно. Как правило, это команды в формате CamelCase с более длинными названиями. Для примера, при экспорте wavefrom в файле wave.do появляются такие команды как WaveActivateNextPane, TreeUpdate, WaveRestoreCursors и т.п. И вот как именно с этими «второстепенными» командами работать не совсем понятно. В лучшем случае они мимоходом упоминаются в доках, но лишь поверхностно. В худшем и поисковики не выдают ничего вразумительного.

Да, с одной стороны «общее назначение» команды можно уловить исходя из названия. Но, для начала было бы неплохо хотя бы представлять количество таких команд. Например, если набирать в командной строке ModelSim скажем Wave, то в списке подсказанных команд насчиталось 13 штук.

Или вот, например команда WaveActivateNextPane. Поначалу не придавал ей внимания. Потом поэкспериментировал и оказалось, что например "WaveActivateNextPane {} 2" добавляет (или активирует уже добавленное) подокно (Wave Pane), т.е. разбивает единое окно wave на несколько подокон. Как раз нужен такой функционал при большом количестве сигналов, а найти это удалось лишь случайно, методом тыка. И пока по-прежнему не понятно, как закрывать эти самые добавленные подокна (panes). В GUI меню есть такое дело (Wave->”Delete Window Pane”), но соответствующей команды найти пока не удалось. А где и как искать неизвестно.
И это кстати не первый пример в ModelSIm, когда какое-то действие можно выполнить в GUI, а прямого аналога команд консоли вроде как нет. И зачастую нет прямого «отражения» (вывода) GUI действий в консоли, что уж совсем странно.
Может, есть какие-то команды, которые посылают события в GUI, имитация нажатия меню/иконок, макросы, хуки, …?

Ещё, не всегда понятно как интерпретировать вывод стандартных/второстепенных команд. Например, команда view выдаёт список открытых окон типа такого
Код
>view
# .main_pane.objects .main_pane.source .main_pane.structure .main_pane.transcript .main_pane.wave .main_pane.process .main_pane.library .main_pane.memory .main_pane.project
Тут ещё более менее понятно из названий. Но скажем, когда глубина элементов увеличивается, уже малопонятно. Та же команда WaveActivateNextPane может выдать что-то такое:
Код
.main_pane.wave.interior.cs.body.pw.wf.tree.tree1
Откуда вообще эта структура, как вообще устроена вся эта иерархия? И насколько вообще нужно/желательно её знать понимать (опять таки для управления через командную строку)? С одной стороны это представляет больше академический интерес. Но из-за определённой кривости ModelSim приходится ковыряться в этих дебрях.
Опять-таки, в качестве примера, можно привести вот эту тему: "Как сделать главное окно Modelsim при старте во весь экран?". Решение, подсказанное RobFPGA, выглядит так:
Код
wm state . zoomed
Вот только откуда всё это? В документации ModelSim этого нет. Судя по всему, это уже имеет отношение к Tcl/Tk, на котором вроде построен ModelSim?

Пожалуй хватит для начала для одного сообщения sm.gif. Хотелось бы услышать мнения общества по этому поводу.
И может заодно ответы на пару конкретных вопросов:
1) Есть ли где-то какой-то список/документация на «второстепенные» команды (API)?
2) Может есть команды «имитации» событий GUI (нажатия меню/иконок)?
3) Какой командой можно закрыть подокно (Wave Pane), открытое командой "WaveActivateNextPane {} 2" (без закрытия переоткрытия всего кона Wave)?
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 11 2018, 10:21
Сообщение #2


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Vengin @ Jul 11 2018, 11:15) *
Пожалуй хватит для начала для одного сообщения sm.gif. Хотелось бы услышать мнения общества по этому поводу.
И может заодно ответы на пару конкретных вопросов:
1) Есть ли где-то какой-то список/документация на «второстепенные» команды (API)?
2) Может есть команды «имитации» событий GUI (нажатия меню/иконок)?
3) Какой командой можно закрыть подокно (Wave Pane), открытое командой "WaveActivateNextPane {} 2" (без закрытия переоткрытия всего кона Wave)?

Вынужден спросить - зачем автоматизировать работу с GUI? Какой от этого выигрыш? Я бы посоветовал сменить принципы отладки и тестирования своих проектов, раз возникли такие вопросы, просто подозреваю недопонимание принципов тестирования и назначения такого инструмента как Modelsim...


--------------------
Go to the top of the page
 
+Quote Post
Vengin
сообщение Jul 11 2018, 10:51
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149



Цитата(AVR @ Jul 11 2018, 13:21) *
Вынужден спросить - зачем автоматизировать работу с GUI? Какой от этого выигрыш?
Ну, начать хотя бы с того, что GUI кривой. Для сравнения, в Active-HDL множество мелких вещей лично мне удобнее/быстрее делать через GUI/hotkeys. Более сложыне уже скриптами. В ModelSim пока даже многие мелкие вещи мне делать иногда проще в командной строке. Та же компиляция файлов, и симуляция ИМХО в ModelSim гораздо удобнее скриптом.
По поводу автоматизации - это не самоцель, а скорее необходимость. Просто вместо того чтобы тыкать десять кнопок, можно же упростить себе жизнь и сделать скрипт. Ну а в больших проектах по любому нужны скрипты. Да и можно ведь ModelSim вообще без GUI использовать, в режиме командой строки.

Цитата(AVR @ Jul 11 2018, 13:21) *
Я бы посоветовал сменить принципы отладки и тестирования своих проектов, раз возникли такие вопросы, просто подозреваю недопонимание принципов тестирования и назначения такого инструмента как Modelsim...
Можете посоветовать что-то конкретное? В своё время посматривал на всякие OVM и разные другие методы тестирования и автоматизации. Но пока особо не прижилось, т.к. затраты времени на освоение или зависимость от сторонних ресурсов не особо оправдывают себя.

Сообщение отредактировал Vengin - Jul 11 2018, 10:53
Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 3 2018, 11:44
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149



Cудя по отсутствию комментариев, придётся набивать шишки самому. Э-эх.

Вот конкретная проблема. Не могу до конца разобраться со скриптом startup.do. Пытаюсь заставить Modelsim стартовать окно во весь экран (как описано в этой теме).
Создаём файл $MODEL_TECH/startup.do, в котором одна строчка, которая максимизирует окно Моделсима:
Код
wm state . zoomed
В файле modelsim.ini прописываем следующее:
Код
; VSIM Startup command
Startup = do $MODEL_TECH/startup.do
Запускаем Modelsim и видим следующую ошибку:
Код
...
# do $MODEL_TECH/startup.do
can't read "MODEL_TECH": no such variable
Хотя в самом файле modelsim.ini переменнамя $MODEL_TECH фигурирует неоднократно.

Попытался сделать через $env(), т.е. в modelsim.ini пишем:
Код
; VSIM Startup command
Startup = do $env(MODEL_TECH)/startup.do
Modelsim успешно запускается, и окно во весь экран. Однако затем, при дальнейше работе в Modelsim проблема всё равно всплывает. Для примера, пытаемся прогнать простейший example входящий в состав моделсима (лежит в папке $MODEL_TECH/../examples/vhdl/io_utils/:
Код
cd ../examples/vhdl/io_utils
source run.do
Скрипт run.do успешно создаёт библиотеку, комплит в ней исходники. Но когда дело доходит до симуляции, и вызывается команда vsim, вываливается ошибка
# Cannot open macro file: (MODEL_TECH)/startup.do
Т.е. непосредственно в самом моделсиме при любом явном вызове команды vsim повторно пытается запуститься скрикт startup.do (видно заново парсится файл modelsim.ini), но при этом почему-то конструкция $env(MODEL_TECH) уже не срабатывает (хотя если написать только $MODEL_TECH/startup.do то сработает, но, как и описывалось выше, будет ошибка при первоначальном запуске Моделсим).

Как разорвать этот порочный круг? Можно конечно прописать абсолютный путь к startup.do, но неужто нельзя через относительный с переменной $MODEL_TECH?
P.S.: в аттаче описанный экзампл и полный транскрипт (ошибка на строке 44).
Прикрепленные файлы
Прикрепленный файл  examples.zip ( 4.27 килобайт ) Кол-во скачиваний: 6
 
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Aug 3 2018, 13:28
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(Vengin @ Aug 3 2018, 14:44) *
Cудя по отсутствию комментариев, придётся набивать шишки самому. Э-эх.
...
А то - нам в чужих синяках облом ходить sm.gif
Тут видимо проблемы в контексте запуска vsim. Можно с ними бодаться - а можно и подстроится.
Я обычно держу startup.tcl файл в локальных sim папках проектов. А в нем уже можно сделать ссылку и на глобальный в $::env(MODEL_TECH)/..

Хотя вот попробовал задать как и Вы
Код
Startup = source "$::env(MODEL_TECH)/../setup.tcl"

То при запуске на симуляцию vsim действительно ругается НО при этом потом все равно запускает
Код
Error: (vsim-21) Unable to expand "$::env(MODEL_TECH)../setup.tcl".
> execute source of .../Msim64/win64/../setup.tcl

Успехов! Rob.
Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 5 2018, 10:25
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149



Ещё кстати, как вариант решения проблемы со startup скриптом, можно работать с файлом проекта .mpf (который по структуре во многом копирует modelsim.ini) и в этом файле проекта закоментировать/не использовать VSIM Startup command.
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 5 2018, 15:46
Сообщение #7


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Вот мой пример как работать с ModelSim: Прикрепленный файл  test_msim.rar ( 773 байт ) Кол-во скачиваний: 24

Тут и тестовый модуль и тестбенч, и bat-файл для запуска (на Linux тоже работает именно этот же пример, по аналогии bat на bash, только modelsim заменить на vsim в скрипте запуска). Только свои пути прописать и оно полетит.


--------------------
Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 13 2018, 12:12
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149



Очередная странность. Надо скопмилить vhdl файл с поддержкой 2008 стандарта. Например,
Код
vcom -2008 version.vhd
отрабатывает нормально. В то же время, если параметры для vcom передать через переменную, имеем ошибку:
Код
> set arg "-2008 version.vhd"
> vcom $arg
# Model Technology ModelSim SE-64 vcom 10.5 Compiler 2016.02 Feb 13 2016
# ** Error (suppressible): (vcom-1902) Option "-2008 version.vhd" is either unknown, requires an argument, or was given with a bad argument.
# Use the -help option for complete vcom usage.
# Errors: 1, Warnings: 0
Почему-то при замене переменной возникают "кавычки", которые вводят vcom в ступор. Как это перебороть пока не понимаю.

Вообще изначально пытаюсь скомпилить множество файлов используюя опцию vcom (-F | -file | -f) <filename>. Некоторые (не все) файлы нужно скомпилить с поддержкой 2008 стандарта. Т.е. делаю лист файлов с аргументами и без, пишу в файл и этот файл пытаюсь скармливать vcom. Когда индивидуальный аргрумент это имя файла (без доп параметров) - процесс нормальный. Т.е. если есть файл flist.tmp:
Код
functions_pkg.vhd
version.vhd
то vcom -f flist.tmp отрабатывает без проблем. Если же нужно скажем какой-то файл скомпилить с доп аргументом, то всё ломается:
flist2008.tmp:
Код
functions_pkg.vhd
-2008 version.vhd
параметр -2008 как бы "передаётся" первому файлу, а тот выдаёт ошибку
Код
> vcom -f flist2008.tmp
# Model Technology ModelSim SE-64 vcom 10.5 Compiler 2016.02 Feb 13 2016
# Start time: 15:29:09 on Aug 13,2018
# vcom -reportprogress 300 -2008 functions_pkg.vhd
# -- Loading package STANDARD
# -- Loading package TEXTIO
# -- Loading package std_logic_1164
# -- Loading package MATH_REAL
# -- Compiling package FUNCTIONS_PKG
# -- Loading package std_logic_arith
# ** Error: functions_pkg.vhd(19): Cannot find subprogram "CONV_STD_LOGIC_VECTOR" with corresponding signature.
# -- Loading package STD_LOGIC_UNSIGNED
# ** Error: functions_pkg.vhd(20): Cannot find subprogram "CONV_INTEGER" with corresponding signature.
# ** Error: functions_pkg.vhd(34): VHDL Compiler exiting
# End time: 15:29:09 on Aug 13,2018, Elapsed time: 0:00:00
# Errors: 3, Warnings: 0

Как по человечески это сделать? Пока только нашёл полуобходной вариант: если строка аргумента "составная" вручную разбивать её на индивидуальные элементы и передавать их поотделности, но это ерунда какая-то:
Код
set arg {-2008 version.vhd}
vcom [lindex $arg 0] [lindex $arg 1]; #ok


Прикрепленные файлы
Прикрепленный файл  vcom_2008_example.zip ( 2.06 килобайт ) Кол-во скачиваний: 3
 
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Aug 13 2018, 13:32
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(Vengin @ Aug 13 2018, 15:12) *
Очередная странность. Надо скопмилить vhdl файл с поддержкой 2008 стандарта. ...
В то же время, если параметры для vcom передать через переменную, имеем ошибку:
Код
> set arg "-2008 version.vhd"
> vcom $arg
Это особенность TCL а не MdelSim. Параметром для proc (коими являются vcom/vlog ..) должен быть list аргументов - то есть когда вы пишете vcom -opt1 -opt2 agr2 file1 file2 то на вход vcom поступает vcom [list -opt1 -opt2 agr2 file1 file2]
Естественно если задать set arg "-2008 version.vhd" то это будет одна строка которая сама по себе в list не разобьется
тут надо извращаться например так:
Код
vcom [lappend [list [split $arg " "]] version.vhd]


Цитата(Vengin @ Aug 13 2018, 15:12) *
Вообще изначально пытаюсь скомпилить множество файлов используюя опцию vcom (-F | -file | -f) <filename>. Некоторые (не все) файлы нужно скомпилить с поддержкой 2008 стандарта. Т.е. делаю лист файлов с аргументами и без, пишу в файл и этот файл пытаюсь скармливать vcom. Когда индивидуальный аргрумент это имя файла (без доп параметров) - процесс нормальный. Т.е. если есть файл flist.tmp:
Код
functions_pkg.vhd
version.vhd
то vcom -f flist.tmp отрабатывает без проблем. Если же нужно скажем какой-то файл скомпилить с доп аргументом, то всё ломается:
Ясный х. пень - Параметры в .f файле применяются все сразу а не по очереди. Поэтому не получится менять опции для отдельных файлов! Делайте отдельные .f файлы с разными параметрами. Ну или пишите свой велосипед для структурирования файлов проекта. У меня когда то был такой трех-колесник:
CODE

#{
# {work library} {vlog options} {vcom options} {
# source_file
# }
#}

{
{CoreGen} {+define+GLBL +incdir+$DSN/src/Core/CoreGen} {} {
$DSN/src/Core/CoreGen/*.v
}
{misc} {-sv} {-2008} {
$DSN/src/misc/module1.v
$DSN/src/misc/module2.vhd
}
{work} {} {} {
[file normalize $env(XILINX)/verilog/src/glbl.v]

$DSN/src/top_pq.sv
$DSN/src/top.sv
}
}

# process all .src files
# read next .src file to module_src
...
foreach {lib opt_sv opt_vhd srclist} $module_src{
foreach srcline [split $srclist "\n"] {
set fext [string tolower [file extension $srcline]]
switch $fext {
".v" {...}
".vhd" {...}
...
default { }
}
}
}


Удачи! Rob.
Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 13 2018, 13:51
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149



Цитата(RobFPGA @ Aug 13 2018, 16:32) *
Параметры в .f файле применяются все сразу а не по очереди.
Да уж, даже мысли такой не было. Как-то этот "параллелизм" боком вылазит.
По поводу всяких извращиней - что-то мне подсказывает что оно того не будет стоить. Имеется пара сотня файлов, и комплитиь нужно смешанно - часть из них с параметрами, а часть нет. А так как для компиляции vhdl важен порядок, то эти отдельные .f файлы может чуть и помогут, но в целом ситуация конечно грустная.
Ладно, благодарю за помощь, будем дальше сражаться. smile3009.gif
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Aug 13 2018, 14:16
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(Vengin @ Aug 13 2018, 16:51) *
Да уж, даже мысли такой не было. Как-то этот "параллелизм" боком вылазит.
Это не "параллелизм" это просто другой вариант командной строки. Соответственно сначала все что попало в нее (непосредственно из строки или из .f файлов) парсится и только потом запускается компиляция с одним набором параметров.

Цитата(Vengin @ Aug 13 2018, 16:51) *
По поводу всяких извращиней - что-то мне подсказывает что оно того не будет стоить. Имеется пара сотня файлов, и комплитиь нужно смешанно - часть из них с параметрами, а часть нет. А так как для компиляции vhdl важен порядок, то эти отдельные .f файлы может чуть и помогут, но в целом ситуация конечно грустная.
Наоборот - чем более "извращенее" придумаете тем проще будет в последствии.
Ну пара сотен файлов это немного - можно тупо забить в локальном setup.tcl например так и не парится.
Код
proc com_module_abc {{mode ""}} {
  if {$mode!=""} {
    puts "$mode:  Compile module_abc"
    return
  }
  vcom -opt1 -opt2 arg2 \
    $::DSN/src/module1.vhd \
    $::DSN/src/module2.vhd
}
proc com_module_def {{mode ""}} { .. }

proc com_all {{mode ""}} {
  com_module_abc  $mode
  com_module_def  $mode
}

proc help {} {
  com_all "help"
}


Удачи! Rob.
Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 15 2018, 08:07
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149



Цитата(RobFPGA @ Aug 13 2018, 16:32) *
Это особенность TCL а не MdelSim. Параметром для proc (коими являются vcom/vlog ..) должен быть list аргументов - то есть когда вы пишете vcom -opt1 -opt2 agr2 file1 file2 то на вход vcom поступает vcom [list -opt1 -opt2 agr2 file1 file2]
Естественно если задать set arg "-2008 version.vhd" то это будет одна строка которая сама по себе в list не разобьется
тут надо извращаться например так:
Код
vcom [lappend [list [split $arg " "]] version.vhd]
Так как раз передавать через list и не получается:
Код
> vcom [list -2008 verions.vhd]
# ** Error (suppressible): (vcom-1902) Option "-2008 version.vhd" is either unknown, requires an argument, or was given with a bad argument.
В идеале удобнее всего работать через лист (один общий или несколько поменьше). И не надо этот же лист писать во временный файл и передавать его c опцией vcom -f f.tmp.
Пока мне в vcom удаётся скормить только "ручками прописанные" файлы с параметрами. Но чем мне не нравится такой подход:
Код
vcom -opt1 -opt2 arg2 \
  $::DSN/src/module1.vhd \
  $::DSN/src/module2.vhd
нельзя закомментировать какую-то строку/файл (т.к. комментируется всё до конца бэкслешей).
Кстати vcom Active-HDL позволяет такие вольности. И нормально хавает список файлов с составными строками аргументов типа "-opt1 file1"
Go to the top of the page
 
+Quote Post
Kluwert
сообщение Aug 15 2018, 09:01
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 15-11-09
Из: Санкт-Петербург
Пользователь №: 53 639



Слушайте, Моделсим, конечно, убожество ещё то. У меня по этому поводу в совё время даже язвительная статья на другом ресурсе была. Но, с другой стороны, без него сейчас никуда. Ну можно ещё DSPbuilder задействовать, но он удобен для ваяния алгоритмических вещей, "тупой" HDL-код лучше мучать в Моделсиме (ну или его урезанной версии - Квестасиме).

А по поводу всех этих ваших проблем с синтаксисом я, например, не заморачиваюсь даже особо: генерю вхолостую какую-нибудь кору, поставив галочку "сгенерить тестбенчы для Моделсим", дальше эти тестбенчи вместе с командным батничком (тоже терпеть не могу копаться в убогом моделсимовском gui) копирую себе и подставляю свои файлы. Всегда так работало, никаких проблем. Ещё учтите, что у Моделсима часто случается несварение желудка от верилоговского кода. Он по-моему нормально поедает только vhdl.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Aug 15 2018, 09:52
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(Vengin @ Aug 15 2018, 11:07) *
Так как раз передавать через list и не получается:
Виноват - как говорится поспешиш людей насмешиш sad.gif
Правильнее наверное будет vcom {*}[list -2008 file1.vhd file2.vhd]

Цитата(Vengin @ Aug 15 2018, 11:07) *
Код
vcom -opt1 -opt2 arg2 \
  $::DSN/src/module1.vhd \
  $::DSN/src/module2.vhd
нельзя закомментировать какую-то строку/файл (т.к. комментируется всё до конца бэкслешей).
Тут уж уж выбирайте как проще - либо городить какую либо надстройку со структурой фалов и парсингом либо так побыстренькому. Мне это не мешает - не так уж и часто приходится коментить файлы в списке.

Цитата(Vengin @ Aug 15 2018, 11:07) *
Кстати vcom Active-HDL позволяет такие вольности. И нормально хавает список файлов с составными строками аргументов типа "-opt1 file1"
Увы нет в мире идеала. Хотя в этом случае я пердпочитаю единобразие - тогда не болит голова при смене интрументов. А то например привык использовать опцию -F file.f а ее оказывется в старых ModelSim (у заказчика) нет sad.gif Пришлось часть скриптов "упрощать"

Удачи! Rob.
Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 15 2018, 10:37
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-02-07
Из: Беларусь, г. Минск
Пользователь №: 25 149



Цитата(RobFPGA @ Aug 15 2018, 12:52) *
Правильнее наверное будет vcom {*}[list -2008 file1.vhd file2.vhd]
То что надо! yeah.gif

Цитата(Kluwert @ Aug 15 2018, 12:01) *
А по поводу всех этих ваших проблем с синтаксисом я, например, не заморачиваюсь даже особо: генерю вхолостую какую-нибудь кору, поставив галочку "сгенерить тестбенчы для Моделсим", дальше эти тестбенчи вместе с командным батничком (тоже терпеть не могу копаться в убогом моделсимовском gui) копирую себе и подставляю свои файлы. Всегда так работало, никаких проблем.
Работать-то работает. Но для большого количества файлов дейстивтельно быстрее получается компилировать не "поштучно" (на каждый файл свой vcom), а пачкой. Плюс всё равно мне нужно делать более сложный скрипт, чтобы учитывать разные конфигурации и прочие нюансы. Так что есть смысл заморочиться, да и полезно "для общего развития".
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th April 2024 - 23:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01535 секунд с 7
ELECTRONIX ©2004-2016