RobFPGA 27 15 августа, 2018 Опубликовано 15 августа, 2018 · Жалоба Приветствую! Слушайте, Моделсим, конечно, убожество ещё то. У меня по этому поводу в совё время даже язвительная статья на другом ресурсе была. Но, с другой стороны, без него сейчас никуда. Ну можно ещё DSPbuilder задействовать, но он удобен для ваяния ...Конечно - язвительная статья это веский аргумент. Учтем! ... алгоритмических вещей, "тупой" HDL-код лучше мучать в Моделсиме (ну или его урезанной версии - Квестасиме).Ха ха ха ... QuestaSim обрезанная версия ModelSim .. повеселили :) Ещё учтите, что у Моделсима часто случается несварение желудка от верилоговского кода. Он по-моему нормально поедает только vhdl.Вы наверно готовите ему прокисший верилог код :crying: Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 15 августа, 2018 Опубликовано 15 августа, 2018 · Жалоба Приветствую! ... Кстати 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 15 августа, 2018 Опубликовано 15 августа, 2018 · Жалоба Слушайте, Моделсим, конечно, убожество ещё то. У меня по этому поводу в совё время даже язвительная статья на другом ресурсе была. Но, с другой стороны, без него сейчас никуда. Ну можно ещё DSPbuilder задействовать, но он удобен для ваяния алгоритмических вещей, "тупой" HDL-код лучше мучать в Моделсиме (ну или его урезанной версии - Квестасиме). Если симулятор оценивать по GUI, то Modelsim убог, но что если любить его внутреннюю красоту? :) А вообще, я чего нередко из консоли дергаю без "междумордия", под тот же UVM. И да, Questasim >> Modelsim, не наоборот. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 16 августа, 2018 Опубликовано 16 августа, 2018 · Жалоба вставляете это в 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 16 августа, 2018 Опубликовано 16 августа, 2018 · Жалоба Приветствую! Не до конца уловил смысл всех этих махинаций. Насколько я понял, этот скрипт позволит парсить некую сложную строку/лист аргументов $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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 16 августа, 2018 Опубликовано 16 августа, 2018 · Жалоба Ну, начать хотя бы с того, что GUI кривой. Для сравнения, в Active-HDL множество мелких вещей лично мне удобнее/быстрее делать через GUI/hotkeys. Более сложыне уже скриптами. В ModelSim пока даже многие мелкие вещи мне делать иногда проще в командной строке. Та же компиляция файлов, и симуляция ИМХО в ModelSim гораздо удобнее скриптом. Немного оффтопа. Подскажите, а что стало причиной перехода с Active-HDL на ModelSim? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 16 августа, 2018 Опубликовано 16 августа, 2018 · Жалоба Немного оффтопа. Подскажите, а что стало причиной перехода с Active-HDL на ModelSim? То, что у меня Active-HDL v9.1, а нужно компилить корки Xilinx Vivado 2017.4. Долго пытался, часть удалось, но думаю в этой версии Active-HDL не светит (а более новую найти и попробовать увы не удалось). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 20 августа, 2018 Опубликовано 20 августа, 2018 · Жалоба Опять небольшие грабли. Исходники открываются в режиме 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. Мелочь, но неприятно (тем более что по идее этого быть не должно). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 20 августа, 2018 Опубликовано 20 августа, 2018 · Жалоба Для косвенной передачи списков параметров в произвольную команду нужно использовать стандартную команду tcl eval: set arg "-2008 version.vhd" eval vcom $arg И никаких извращений:). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 20 августа, 2018 Опубликовано 20 августа, 2018 · Жалоба Для косвенной передачи списков параметров в произвольную команду нужно использовать стандартную команду tcl eval:set arg "-2008 version.vhd" eval vcom $arg И никаких извращений:). Действительно работает. А я (т.к. смысла команды eval до конца честно говоря не понимаю), пытался делать как в экзамплах, со всякими доп скобками: eval {vcom $arg} eval "vcom $arg" eval [list vcom $arg] и всё выдавало ошибки. А тут было так просто! Спасибо, будем знать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kluwer 0 21 августа, 2018 Опубликовано 21 августа, 2018 · Жалоба И да, Questasim >> Modelsim, не наоборот. Видимо что-то поменялось с тех времён, когда я последний раз юзал Квестасим. На тот момент Квестасим даже не понимал расширенного объявления входов и выходов в заголовках верилоговских модулей, в то время как даже урезанная альтеровская версия Моделсима прекрасно понимала объявления и в "старом" и в "новом" стиле. С тех пор к Квестасиму я потерял интерес. Сейчас глянул на "Менторовский" сайт, да, теперь, типа, Квестасим в флагманах, ну рад за него. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 22 августа, 2018 Опубликовано 22 августа, 2018 · Жалоба Мои 5 копеек. Насколько помню, квеста всегда была расширенной версией моделсима, по сути квеста = моделсим + верификационные шняжки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 13 октября, 2018 Опубликовано 13 октября, 2018 · Жалоба Стыдно спросить, но никак не могу понять в чём затык. Есть некий простейший 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolySh 0 15 октября, 2018 Опубликовано 15 октября, 2018 · Жалоба On 8/16/2018 at 11:49 AM, Vengin said: То, что у меня Active-HDL v9.1 Что мешает обновиться, Вы же свой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 15 октября, 2018 Опубликовано 15 октября, 2018 · Жалоба 15 минут назад, AnatolySh сказал: Что мешает обновиться, Вы же свой? На тот момент был "несвой". Теперь уже обновился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться