Перейти к содержанию
    

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

 

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

 

... алгоритмических вещей, "тупой" HDL-код лучше мучать в Моделсиме (ну или его урезанной версии - Квестасиме).
Ха ха ха ... QuestaSim обрезанная версия ModelSim .. повеселили :)

 

Ещё учтите, что у Моделсима часто случается несварение желудка от верилоговского кода. Он по-моему нормально поедает только vhdl.
Вы наверно готовите ему прокисший верилог код :crying:

 

Удачи! Rob.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

... Кстати 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 блэкджеком и ш...) :)

Главное не забыть со временем про это :smile3046:

 

Удачи! Rob.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Если симулятор оценивать по GUI, то Modelsim убог, но что если любить его внутреннюю красоту? :)

А вообще, я чего нередко из консоли дергаю без "междумордия", под тот же UVM.

И да, Questasim >> Modelsim, не наоборот.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вставляете это в startup.tcl и получаете собственный уникальный vcom|vlog|... (c блэкджеком и ш...) :)
Не до конца уловил смысл всех этих махинаций. Насколько я понял, этот скрипт позволит парсить некую сложную строку/лист аргументов $args, анализируя инидвидуальные опции/флаги при помощи switch -regexp (а также анализировать составные элементы/sub_lst как в "-my_options2"). Всё это в итоге компонуется в лист $cmd_line, который потом во flatten виде (поэлементно) передаётся на вход vcom, вроде так?

Но если я правильно понимаю, при однократном вызове vcom всё равно применит опции/аргументы все сразу ко всем файлам (а не каждому файлу свой параметр)? Т.е. если есть 10 файлов и, допустим один с флагом -2008, то все 10 файлов будут компилится с этим флагом. А это некорректно (не то, что надо).

 

И ещё немного оффтопик. RobFPGA, если не секрет, что используете для дебага TCL скриптов (я так думаю не просто текствые файлы интерпретатору скармливаете)? Я в своё время остановился на связке Eclipse+Komodo Remote Debugging Package.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Не до конца уловил смысл всех этих махинаций. Насколько я понял, этот скрипт позволит парсить некую сложную строку/лист аргументов $args, анализируя инидвидуальные опции/флаги при помощи switch -regexp (а также анализировать составные элементы/sub_lst как в "-my_options2"). Всё это в итоге компонуется в лист $cmd_line, который потом во flatten виде (поэлементно) передаётся на вход vcom, вроде так?
Tcl позволяет подменить любой proc на свою реализацию. Для того чтобы подправит/изменить что то в поведении подменяемого proc, (ну или обрушить мозг коллеге блокируя какую либо опцию или выдавая черное за белое ;))

Это всего лишь пример как можно порезвится в этом направлении. Добавить свои опции, развернуть список файлов в формат cmd строки, ну либо корректно распарсить сложный .f файл в вашем уникальном формате с несколькими запусками vcom_ для разных опций, и.т.д ... думаю Вы идею поняли :biggrin:

 

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

 

Удачи! Rob.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, начать хотя бы с того, что GUI кривой. Для сравнения, в Active-HDL множество мелких вещей лично мне удобнее/быстрее делать через GUI/hotkeys. Более сложыне уже скриптами. В ModelSim пока даже многие мелкие вещи мне делать иногда проще в командной строке. Та же компиляция файлов, и симуляция ИМХО в ModelSim гораздо удобнее скриптом.

Немного оффтопа.

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного оффтопа.

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

То, что у меня Active-HDL v9.1, а нужно компилить корки Xilinx Vivado 2017.4. Долго пытался, часть удалось, но думаю в этой версии Active-HDL не светит (а более новую найти и попробовать увы не удалось).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Опять небольшие грабли. Исходники открываются в режиме 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. Мелочь, но неприятно (тем более что по идее этого быть не должно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для косвенной передачи списков параметров в произвольную команду нужно использовать стандартную команду tcl eval:

set arg "-2008 version.vhd"
eval vcom $arg

И никаких извращений:).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для косвенной передачи списков параметров в произвольную команду нужно использовать стандартную команду tcl eval:
set arg "-2008 version.vhd"
eval vcom $arg

И никаких извращений:).

Действительно работает. А я (т.к. смысла команды eval до конца честно говоря не понимаю), пытался делать как в экзамплах, со всякими доп скобками:

eval {vcom $arg}
eval "vcom $arg"
eval [list vcom $arg]

и всё выдавало ошибки. А тут было так просто! Спасибо, будем знать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И да, Questasim >> Modelsim, не наоборот.

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

 

Сейчас глянул на "Менторовский" сайт, да, теперь, типа, Квестасим в флагманах, ну рад за него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стыдно спросить, но никак не могу понять в чём затык.

Есть некий простейший package, в котором определяются следующие alias:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.MATH_REAL.ALL;

package FUNCTIONS_PKG is
  alias conv_slv is ieee.std_logic_arith.CONV_STD_LOGIC_VECTOR [integer,integer return STD_LOGIC_VECTOR];
  alias conv_int is ieee.std_logic_unsigned.CONV_INTEGER [STD_LOGIC_VECTOR return INTEGER];
end FUNCTIONS_PKG;

package body FUNCTIONS_PKG is
end FUNCTIONS_PKG;

Пытаюсь компилировать это в ModelSim SE-64 10.5. Когда делаю просто "vcom functions_pkg.vhd" (по умолчанию стандарт 2002) всё норм. Когда же пытаюсь скомпилить под 2008 "vcom -2008 functions_pkg.vhd" , получаем:

# ** Error: d:/tmp/functions_pkg.vhd(9): Cannot find subprogram "CONV_STD_LOGIC_VECTOR" with corresponding signature.
# ** Error: d:/tmp/functions_pkg.vhd(10): Cannot find subprogram "CONV_INTEGER" with corresponding signature.

Не совсем улавливаю в чём причина. Когда делаю то же самое в Active-HDL - проблем нет.

functions_pkg.vhd

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

On 8/16/2018 at 11:49 AM, Vengin said:

То, что у меня Active-HDL v9.1

Что мешает обновиться, Вы же свой? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, AnatolySh сказал:

 

Что мешает обновиться, Вы же свой? 

На тот момент был "несвой". Теперь уже обновился.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...