TamRazZ 0 5 сентября, 2019 Опубликовано 5 сентября, 2019 (изменено) · Жалоба Добрый день! Прошу помощи у опытных пользователей. Опишите подробно ваш флоу создания и отладки проекта под альтеровскую ПЛИСу. Я не часто этим занимаюсь и мой процесс выглядит следующим образом: 1. Написание исходников в текстовом редакторе с поддержкой синтаксиса SV (обычно это встроенный Qurtus текстовый редактор). 2. Создание проекта под ModelSim, в котором происходит функциональная симуляция и исправление логических ошибок. 3. Создание проекта под Qurtus II на основе отлаженных исходников, где происходит оптимизация по затраченным ресурсам и создание Netlist для следующего этапа. 4. Создание нового проекта (или модификация созданного) под ModelSim для временной отладки. 5. TimeQuest, написание констрейнов при необходимости. Понятно, что такой рабочий процесс как минимум не оптимален и не логичен. Известно, что есть способы подружить Quartus II и ModelSim (иначе не было бы в интерфейсе Quartus настроек Nativelink для ModelSim). Но как это грамотно осуществить я не разобрался, и хотелось бы узнать как выглядит рабочий процесс у профессионалов. ЗЫ: Чтобы не показалось, что я сам ничего не пытался сделать и хочу, чтоб мне на шару расписали, что куда нажимать, приведу пример того, как я делаю на, мой взгляд, "не так": 1. Создаю проект в квартусе, пишу исходники на SV и тестбенч. 2. Компилирую библиотеки Altera для своего кристалла. 3. В настройках Simulation в Quartus выбираю ModelSim (прописываю путь к екзешнику), указываю выходную директорию для файлов симуляции, настраиваю тестбенч (картинка в аттаче). 4. В Nativelink указываю путь к скомпилированным библиотекам. 3. Далее при запуске функционального моделирования запускается ModelSim и начинает перекомпилировать все библиотеки и мапить их в указанную директорию. При повторном запуске происходит ровно тоже самое, несмотря на то, что все папки созданы и лежат на своих местах. Выполняется это согласно автоматически созданному скрипту, в котором написано: transcript on if ![file isdirectory verilog_libs] { file mkdir verilog_libs } vlib verilog_libs/altera_ver vmap altera_ver ./verilog_libs/altera_ver vlog -vlog01compat -work altera_ver {c:/altera/13.1/quartus/eda/sim_lib/altera_primitives.v} vlib verilog_libs/lpm_ver vmap lpm_ver ./verilog_libs/lpm_ver vlog -vlog01compat -work lpm_ver {c:/altera/13.1/quartus/eda/sim_lib/220model.v} vlib verilog_libs/sgate_ver vmap sgate_ver ./verilog_libs/sgate_ver vlog -vlog01compat -work sgate_ver {c:/altera/13.1/quartus/eda/sim_lib/sgate.v} vlib verilog_libs/altera_mf_ver vmap altera_mf_ver ./verilog_libs/altera_mf_ver vlog -vlog01compat -work altera_mf_ver {c:/altera/13.1/quartus/eda/sim_lib/altera_mf.v} vlib verilog_libs/altera_lnsim_ver vmap altera_lnsim_ver ./verilog_libs/altera_lnsim_ver vlog -sv -work altera_lnsim_ver {c:/altera/13.1/quartus/eda/sim_lib/altera_lnsim.sv} vlib verilog_libs/cycloneiii_ver vmap cycloneiii_ver ./verilog_libs/cycloneiii_ver vlog -vlog01compat -work cycloneiii_ver {c:/altera/13.1/quartus/eda/sim_lib/cycloneiii_atoms.v} Но как мне его изменить или заменить, чтобы каждый раз он не компилил то, что и так скомпилено. Или может я совсем все не так делаю и мой флоу изначально не верен, расскажите, как действуете вы. Изменено 5 сентября, 2019 пользователем TamRazZ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 5 сентября, 2019 Опубликовано 5 сентября, 2019 · Жалоба У меня часть скрипта моделирования выглядит так: if {!([vsimAuth] == "ALTERA")} { # https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=122907 # main window at full screen wm state . zoomed } # clear transript window of Modelsim .main clear # Turns off the transcript echo for all commands transcript quietly # close previous waveform window quit -sim # delete old libs if exist if {[file exists work/_info]} { vdel -lib work -all } # create and map work lib vlib work vmap work work # compile all verilog and systemverilog modules vlog *.sv vlog *.v # simulate with libraries vsim -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver \ -L cycloneii_ver -L work work.$current_tb -onfinish stop -voptargs="+acc" -debugDB и ещё вот сюда посмотрите:https://www.doulos.com/knowhow/tcltk/examples/modelsim/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 5 сентября, 2019 Опубликовано 5 сентября, 2019 · Жалоба 1 час назад, TamRazZ сказал: Прошу помощи у опытных пользователей. Или может я совсем все не так делаю и мой флоу изначально не верен, расскажите, как действуете вы. Почту посмотрите... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TamRazZ 0 6 сентября, 2019 Опубликовано 6 сентября, 2019 · Жалоба 15 hours ago, MaratZuev said: У меня часть скрипта моделирования выглядит так: Спасибо! Как вы запускаете этот скрипт из Quartus? Или вся отладка у вас в интерфейсе ModelSim происходит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 6 сентября, 2019 Опубликовано 6 сентября, 2019 · Жалоба Второе Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TamRazZ 0 6 сентября, 2019 Опубликовано 6 сентября, 2019 · Жалоба 38 minutes ago, MaratZuev said: Второе Понятно... В моделсиме я более менее разобрался, вопрос, как их подружить с квартусом. Но спасибо за ваш скрипт, некоторые команды взял на вооружение Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 6 сентября, 2019 Опубликовано 6 сентября, 2019 · Жалоба Посмотрите скрепку. quartus_and_modelsim.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TamRazZ 0 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба С запуском ModelSim из Qurtus разобрался! Спасибо! Компилируется и симмулится как надо. НО... При запуске ModelSim (именно ModelSim а не AlteraEdition) из Quartus происходит компиляция множества библиотек под конкретный кристалл, занимает изрядное количество времени и процедура бесполезная т.к. я запускаю функциональную симуляцию. Не понятно куда деваются эти библиотеки однажды откомпиленные, почему это происходит при каждом запуске симулятора (только из Quartus, при запуске ModelSim как самостоятельное приложение такого не происходит)? Каждый запуск ModelSim из Quartus сопровождется обновлением *.ini файла, из чего делаю вывод, что именно в Quartus-gui надо искать-отключать настройки. Перерыл все настройки связанные с запуском EDA Tools пока ничего не нашел. Помогите, кто с этим сталкивался... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба А зачем вам именно ModelSim SE и прочие, а не родной AE? Вы пути к скомпилённым библиотекам в *.ini прописали? Вот кусочек моего *.ini: [Library] std = $MODEL_TECH/../std ieee = $MODEL_TECH/../ieee vital2000 = $MODEL_TECH/../vital2000 ; ; VITAL concerns: ; ; The library ieee contains (among other packages) the packages of the ; VITAL 2000 standard. When a design uses VITAL 2000 exclusively, it should use ; the physical library ieee (recommended), or use the physical library ; vital2000, but not both. The design can use logical library ieee and/or ; vital2000 as long as each of these maps to the same physical library, either ; ieee or vital2000. ; ; A design using the 1995 version of the VITAL packages, whether or not ; it also uses the 2000 version of the VITAL packages, must have logical library ; name ieee mapped to physical library vital1995. (A design cannot use library ; vital1995 directly because some packages in this library use logical name ieee ; when referring to the other packages in the library.) The design source ; should use logical name ieee when referring to any packages there except the ; VITAL 2000 packages. Any VITAL 2000 present in the design must use logical ; name vital2000 (mapped to physical library vital2000) to refer to those ; packages. ; ieee = $MODEL_TECH/../vital1995 ; ; For compatiblity with previous releases, logical library name vital2000 maps ; to library vital2000 (a different library than library ieee, containing the ; same packages). ; A design should not reference VITAL from both the ieee library and the ; vital2000 library because the vital packages are effectively different. ; A design that references both the ieee and vital2000 libraries must have ; both logical names ieee and vital2000 mapped to the same library, either of ; these: ; $MODEL_TECH/../ieee ; $MODEL_TECH/../vital2000 ; verilog = $MODEL_TECH/../verilog std_developerskit = $MODEL_TECH/../std_developerskit synopsys = $MODEL_TECH/../synopsys modelsim_lib = $MODEL_TECH/../modelsim_lib sv_std = $MODEL_TECH/../sv_std mtiAvm = $MODEL_TECH/../avm mtiRnm = $MODEL_TECH/../rnm mtiOvm = $MODEL_TECH/../ovm-2.1.2 mtiUvm = $MODEL_TECH/../uvm-1.1d mtiUPF = $MODEL_TECH/../upf_lib mtiPA = $MODEL_TECH/../pa_lib floatfixlib = $MODEL_TECH/../floatfixlib mc2_lib = $MODEL_TECH/../mc2_lib osvvm = $MODEL_TECH/../osvvm ; added mapping for ADMS mgc_ams = $MODEL_TECH/../mgc_ams ieee_env = $MODEL_TECH/../ieee_env ;vhdl_psl_checkers = $MODEL_TECH/../vhdl_psl_checkers // Source files only for this release ;verilog_psl_checkers = $MODEL_TECH/../verilog_psl_checkers // Source files only for this release ;mvc_lib = $MODEL_TECH/../mvc_lib infact = $MODEL_TECH/../infact vhdlopt_lib = $MODEL_TECH/../vhdlopt_lib ; Automatically perform logical->physical mapping for physical libraries that ; appear in -L/-Lf options with filesystem path delimiters (e.g. '.' or '/'). ; The tail of the filesystem path name is chosen as the logical library name. ; For example, in the command “vopt -L ./path/to/lib1 –o opttop top”, ; vopt automatically performs the mapping “lib1 -> ./path/to/lib1”. ; See the User Manual for more details. ; ; AutoLibMapping = 0 altera_ver = $MODEL_TECH/../altera/verilog_libs/altera_ver lpm_ver = $MODEL_TECH/../altera/verilog_libs/lpm_ver sgate_ver = $MODEL_TECH/../altera/verilog_libs/sgate_ver altera_mf_ver = $MODEL_TECH/../altera/verilog_libs/altera_mf_ver altera_lnsim_ver = $MODEL_TECH/../altera/verilog_libs/altera_lnsim_ver cycloneii_ver = $MODEL_TECH/../altera/verilog_libs/cycloneii_ver Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TamRazZ 0 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба 26 minutes ago, MaratZuev said: А зачем вам именно ModelSim SE и прочие, а не родной AE? AlteraEdition накладывает некоторые ограничения на проект (использование разных языков, размер исходников), что в некоторых ситуациях критично, поэтому чтобы не искать ошибок в будущем осваиваю оригинальный МС. 27 minutes ago, MaratZuev said: Вы пути к скомпилённым библиотекам в *.ini прописали? В этом и проблема... Я не прописывал путей к скомпилированным библиотекам. Quartus, как я понимаю, сам правит ini файл МС и все изменения, которые я пытаюсь сотворить с ним вручную теряют смысл. Видимо в Квартусе стоят какие-то опции, влияющие на запуск МС из под Ква и надо править их, но какие это опции я пока не вкурил... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 33 10 сентября, 2019 Опубликовано 10 сентября, 2019 · Жалоба Ещё АЕ раза в три+ медленнее, чем SE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться