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

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


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

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



Приветствую!

Цитата(Kluwert @ Aug 15 2018, 12:01) *
Слушайте, Моделсим, конечно, убожество ещё то. У меня по этому поводу в совё время даже язвительная статья на другом ресурсе была. Но, с другой стороны, без него сейчас никуда. Ну можно ещё DSPbuilder задействовать, но он удобен для ваяния ...
Конечно - язвительная статья это веский аргумент. Учтем!

Цитата(Kluwert @ Aug 15 2018, 12:01) *
... алгоритмических вещей, "тупой" HDL-код лучше мучать в Моделсиме (ну или его урезанной версии - Квестасиме).
Ха ха ха ... QuestaSim обрезанная версия ModelSim .. повеселили sm.gif

Цитата(Kluwert @ Aug 15 2018, 12:01) *
Ещё учтите, что у Моделсима часто случается несварение желудка от верилоговского кода. Он по-моему нормально поедает только vhdl.
Вы наверно готовите ему прокисший верилог код crying.gif

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


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

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



Приветствую!
Цитата(Vengin @ Aug 15 2018, 11:07) *
... Кстати vcom Active-HDL позволяет такие вольности. И нормально хавает список файлов с составными строками аргументов типа "-opt1 file1"
Кстати! - совсем забыл - можно ведь и так над собой приколоться
Код
if {[llength [namespace which {vcom_}]]==0} {
  rename ::vcom vcom_

  proc ::vcom args {
    puts "Hook of vcom"

    # processing input options
    set cmd_line [list]
    
    for {set i 0} {$i < [llength $args]} {incr i} {
      set option [string trim [lindex $args $i]]
      switch -regexp -- $option {
        "-my_options1"  {
          lappend cmd_line [lindex $args [incr i]]]
        }
        "-my_options2"  {
          set sub_lst [lindex $args [incr i]]
          foreach sub_opt $sub_lst {
            lappend cmd_line $sub_opt
            # ...
          }
        default {
          lappend cmd_line $option
          # ...
        }
      }
    }
    vcom_ {*}$cmd_line
  }  
}
вставляете это в startup.tcl и получаете собственный уникальный vcom|vlog|... (c блэкджеком и ш...) sm.gif
Главное не забыть со временем про это smile3046.gif

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


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

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



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

Если симулятор оценивать по GUI, то Modelsim убог, но что если любить его внутреннюю красоту? sm.gif
А вообще, я чего нередко из консоли дергаю без "междумордия", под тот же UVM.
И да, Questasim >> Modelsim, не наоборот.


--------------------
Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 16 2018, 07:27
Сообщение #19


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

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



Цитата(RobFPGA @ Aug 15 2018, 17:30) *
вставляете это в startup.tcl и получаете собственный уникальный vcom|vlog|... (c блэкджеком и ш...) sm.gif
Не до конца уловил смысл всех этих махинаций. Насколько я понял, этот скрипт позволит парсить некую сложную строку/лист аргументов $args, анализируя инидвидуальные опции/флаги при помощи switch -regexp (а также анализировать составные элементы/sub_lst как в "-my_options2"). Всё это в итоге компонуется в лист $cmd_line, который потом во flatten виде (поэлементно) передаётся на вход vcom, вроде так?
Но если я правильно понимаю, при однократном вызове vcom всё равно применит опции/аргументы все сразу ко всем файлам (а не каждому файлу свой параметр)? Т.е. если есть 10 файлов и, допустим один с флагом -2008, то все 10 файлов будут компилится с этим флагом. А это некорректно (не то, что надо).

И ещё немного оффтопик. RobFPGA, если не секрет, что используете для дебага TCL скриптов (я так думаю не просто текствые файлы интерпретатору скармливаете)? Я в своё время остановился на связке Eclipse+Komodo Remote Debugging Package.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Aug 16 2018, 08:07
Сообщение #20


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

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



Приветствую!
Цитата(Vengin @ Aug 16 2018, 10:27) *
Не до конца уловил смысл всех этих махинаций. Насколько я понял, этот скрипт позволит парсить некую сложную строку/лист аргументов $args, анализируя инидвидуальные опции/флаги при помощи switch -regexp (а также анализировать составные элементы/sub_lst как в "-my_options2"). Всё это в итоге компонуется в лист $cmd_line, который потом во flatten виде (поэлементно) передаётся на вход vcom, вроде так?
Tcl позволяет подменить любой proc на свою реализацию. Для того чтобы подправит/изменить что то в поведении подменяемого proc, (ну или обрушить мозг коллеге блокируя какую либо опцию или выдавая черное за белое wink.gif)
Это всего лишь пример как можно порезвится в этом направлении. Добавить свои опции, развернуть список файлов в формат cmd строки, ну либо корректно распарсить сложный .f файл в вашем уникальном формате с несколькими запусками vcom_ для разных опций, и.т.д ... думаю Вы идею поняли biggrin.gif

Цитата(Vengin @ Aug 16 2018, 10:27) *
И ещё немного оффтопик. RobFPGA, если не секрет, что используете для дебага TCL скриптов (я так думаю не просто текствые файлы интерпретатору скармливаете)? Я в своё время остановился на связке Eclipse+Komodo Remote Debugging Package.
В основном хватает puts laughing.gif . Увы я не пишу профессионально на TCL. Для отладки больших и сложных скриптов иногда использую Komodo.

Удачи! Rob.

Go to the top of the page
 
+Quote Post
Tpeck
сообщение Aug 16 2018, 08:46
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



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

Немного оффтопа.
Подскажите, а что стало причиной перехода с Active-HDL на ModelSim?

Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 16 2018, 08:49
Сообщение #22


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

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



Цитата(Tpeck @ Aug 16 2018, 11:46) *
Немного оффтопа.
Подскажите, а что стало причиной перехода с Active-HDL на ModelSim?
То, что у меня Active-HDL v9.1, а нужно компилить корки Xilinx Vivado 2017.4. Долго пытался, часть удалось, но думаю в этой версии Active-HDL не светит (а более новую найти и попробовать увы не удалось).
Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 20 2018, 08:01
Сообщение #23


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

Группа: Свой
Сообщений: 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
Timmy
сообщение Aug 20 2018, 09:33
Сообщение #24


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Для косвенной передачи списков параметров в произвольную команду нужно использовать стандартную команду tcl eval:
Код
set arg "-2008 version.vhd"
eval vcom $arg
И никаких извращенийsm.gif.
Go to the top of the page
 
+Quote Post
Vengin
сообщение Aug 20 2018, 09:56
Сообщение #25


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

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



Цитата(Timmy @ Aug 20 2018, 12:33) *
Для косвенной передачи списков параметров в произвольную команду нужно использовать стандартную команду tcl eval:
Код
set arg "-2008 version.vhd"
eval vcom $arg
И никаких извращенийsm.gif.
Действительно работает. А я (т.к. смысла команды eval до конца честно говоря не понимаю), пытался делать как в экзамплах, со всякими доп скобками:
Код
eval {vcom $arg}
eval "vcom $arg"
eval [list vcom $arg]
и всё выдавало ошибки. А тут было так просто! Спасибо, будем знать.
Go to the top of the page
 
+Quote Post
Kluwert
сообщение Aug 21 2018, 20:00
Сообщение #26


Местный
***

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



Цитата(AVR @ Aug 15 2018, 22:11) *
И да, Questasim >> Modelsim, не наоборот.

Видимо что-то поменялось с тех времён, когда я последний раз юзал Квестасим. На тот момент Квестасим даже не понимал расширенного объявления входов и выходов в заголовках верилоговских модулей, в то время как даже урезанная альтеровская версия Моделсима прекрасно понимала объявления и в "старом" и в "новом" стиле. С тех пор к Квестасиму я потерял интерес.

Сейчас глянул на "Менторовский" сайт, да, теперь, типа, Квестасим в флагманах, ну рад за него.
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 22 2018, 03:36
Сообщение #27


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Мои 5 копеек. Насколько помню, квеста всегда была расширенной версией моделсима, по сути квеста = моделсим + верификационные шняжки.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

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

 


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


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