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

 
 
> Особенности 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
 
Start new topic
Ответов
Vengin
сообщение Aug 20 2018, 08:01
Сообщение #2


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

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



Опять небольшие грабли. Исходники открываются в режиме ReadOnly. Если открывать "обычным" способом (File -> Open), то файлы открываются и на запись. В то же время, когда файл открывается по другому (судя по всему внутренней командой edit), например, во время симуляции при дабл-клике в окнах Structure, Objects, Process и т.п. файл в окне Source открывается ReadOnly.
Вроде как есть специальная опция, отвечающая за это дело (ModelSim® SE User's Manua -> Chapter 17:Source Window -> Changing File Permissions):
Цитата
By default, files open in read-only mode even if the original source document file permissions allow you to edit the document. To change this behavior, set the PrefSource(ReadOnly) preference variable to 0.
Поменял через GUI (Tools -> Edit Preferences -> вкладка By Name -> Source -> ReadOnly = 0) - по-прежнему открываются в ReadOnly. Поменял в скрипте pref.tcl: set PrefSource(ReadOnly) 0 - ничего.

Может кто знает, как это побороть? Приходится каждый раз в окне Source делать правый клик и снимать флажок ReadOnly. Мелочь, но неприятно (тем более что по идее этого быть не должно).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Vengin   Особенности ModelSim   Jul 11 2018, 08:15
- - AVR   Цитата(Vengin @ Jul 11 2018, 11:15) Пожал...   Jul 11 2018, 10:21
|- - Vengin   Цитата(AVR @ Jul 11 2018, 13:21) Вынужден...   Jul 11 2018, 10:51
|- - Tpeck   Цитата(Vengin @ Jul 11 2018, 13:51) Ну, н...   Aug 16 2018, 08:46
|- - Vengin   Цитата(Tpeck @ Aug 16 2018, 11:46) Немног...   Aug 16 2018, 08:49
- - Vengin   Cудя по отсутствию комментариев, придётся набивать...   Aug 3 2018, 11:44
|- - RobFPGA   Приветствую! Цитата(Vengin @ Aug 3 2018, ...   Aug 3 2018, 13:28
|- - Vengin   Ещё кстати, как вариант решения проблемы со startu...   Aug 5 2018, 10:25
- - AVR   Вот мой пример как работать с ModelSim: Тут и тес...   Aug 5 2018, 15:46
- - Vengin   Очередная странность. Надо скопмилить vhdl файл с ...   Aug 13 2018, 12:12
|- - RobFPGA   Приветствую! Цитата(Vengin @ Aug 13 2018,...   Aug 13 2018, 13:32
|- - Vengin   Цитата(RobFPGA @ Aug 13 2018, 16:32) Пара...   Aug 13 2018, 13:51
||- - RobFPGA   Приветствую! Цитата(Vengin @ Aug 13 2018,...   Aug 13 2018, 14:16
|- - Vengin   Цитата(RobFPGA @ Aug 13 2018, 16:32) Это ...   Aug 15 2018, 08:07
|- - Kluwert   Слушайте, Моделсим, конечно, убожество ещё то. У м...   Aug 15 2018, 09:01
||- - RobFPGA   Приветствую! Цитата(Kluwert @ Aug 15 201...   Aug 15 2018, 11:30
||- - AVR   Цитата(Kluwert @ Aug 15 2018, 12:01) Слуш...   Aug 15 2018, 19:11
||- - Kluwert   Цитата(AVR @ Aug 15 2018, 22:11) И да, Qu...   Aug 21 2018, 20:00
|- - RobFPGA   Приветствую! Цитата(Vengin @ Aug 15 2018,...   Aug 15 2018, 09:52
||- - Vengin   Цитата(RobFPGA @ Aug 15 2018, 12:52) Прав...   Aug 15 2018, 10:37
|- - RobFPGA   Приветствую! Цитата(Vengin @ Aug 15 2018,...   Aug 15 2018, 14:30
|- - Vengin   Цитата(RobFPGA @ Aug 15 2018, 17:30) вста...   Aug 16 2018, 07:27
|- - RobFPGA   Приветствую! Цитата(Vengin @ Aug 16 2018,...   Aug 16 2018, 08:07
- - Timmy   Для косвенной передачи списков параметров в произв...   Aug 20 2018, 09:33
|- - Vengin   Цитата(Timmy @ Aug 20 2018, 12:33) Для ко...   Aug 20 2018, 09:56
- - dxp   Мои 5 копеек. Насколько помню, квеста всегда была ...   Aug 22 2018, 03:36


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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 11:38
Рейтинг@Mail.ru


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