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

проблема с симуляцией

Добрый!

Пытаюсь сделать симуляцию с библиотечными элементами (квартус 18.1). Написал do файл (вложение). Моделсим выдает странные ошибки:

# ** Error (suppressible): (vsim-10000) ./moduls/calc_base/ipcore/divider_base.v(66): Unresolved defparam reference to 'LPM_DIVIDE_component' in LPM_DIVIDE_component.lpm_drepresentation.
#    Time: 0 ps  Iteration: 0  Instance: /dpp_vhd_tst/i1/b2v_inst8/divider_base_inst File: ./moduls/calc_base/ipcore/divider_base.v
# ** Error (suppressible): (vsim-10000) ./moduls/calc_base/ipcore/divider_base.v(67): Unresolved defparam reference to 'LPM_DIVIDE_component' in LPM_DIVIDE_component.lpm_hint.
#    Time: 0 ps  Iteration: 0  Instance: /dpp_vhd_tst/i1/b2v_inst8/divider_base_inst File: ./moduls/calc_base/ipcore/divider_base.v
# ** Error (suppressible): (vsim-10000) ./moduls/calc_base/ipcore/divider_base.v(68): Unresolved defparam reference to 'LPM_DIVIDE_component' in LPM_DIVIDE_component.lpm_nrepresentation.
#    Time: 0 ps  Iteration: 0  Instance: /dpp_vhd_tst/i1/b2v_inst8/divider_base_inst File: ./moduls/calc_base/ipcore/divider_base.v
# ** Error (suppressible): (vsim-10000) ./moduls/calc_base/ipcore/divider_base.v(69): Unresolved defparam reference to 'LPM_DIVIDE_component' in LPM_DIVIDE_component.lpm_pipeline.
#    Time: 0 ps  Iteration: 0  Instance: /dpp_vhd_tst/i1/b2v_inst8/divider_base_inst File: ./moduls/calc_base/ipcore/divider_base.v
# ** Error (suppressible): (vsim-10000) ./moduls/calc_base/ipcore/divider_base.v(70): Unresolved defparam reference to 'LPM_DIVIDE_component' in LPM_DIVIDE_component.lpm_type.
#    Time: 0 ps  Iteration: 0  Instance: /dpp_vhd_tst/i1/b2v_inst8/divider_base_inst File: ./moduls/calc_base/ipcore/divider_base.v
# ** Error (suppressible): (vsim-10000) ./moduls/calc_base/ipcore/divider_base.v(71): Unresolved defparam reference to 'LPM_DIVIDE_component' in LPM_DIVIDE_component.lpm_widthd.
#    Time: 0 ps  Iteration: 0  Instance: /dpp_vhd_tst/i1/b2v_inst8/divider_base_inst File: ./moduls/calc_base/ipcore/divider_base.v
# ** Error (suppressible): (vsim-10000) ./moduls/calc_base/ipcore/divider_base.v(72): Unresolved defparam reference to 'LPM_DIVIDE_component' in LPM_DIVIDE_component.lpm_widthn.
#    Time: 0 ps  Iteration: 0  Instance: /dpp_vhd_tst/i1/b2v_inst8/divider_base_inst File: ./moduls/calc_base/ipcore/divider_base.v
# Error loading design
# Error: Error loading design
#        Pausing macro execution
# MACRO ./c.do PAUSED at line 69

 

Ошибки в модуле который визард генерирует - на его параметры.

alg_base_calc_1calc.v - модуль в который делитель (divider_base.v) входит как компонент

c.do - произвожу запуск симуляции в моделсиме

Пошел альтернативным путем:

Пытался запустить симуляцию через native link (из квартуса):

prj_elvatech_run_msim_rtl_vhdl.do - файл созданный квартусом для симуляции

ошибки аналогичные:

# vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L cyclonev -L rtl_work -L work -voptargs="+acc"  dpp_vhd_tst
# vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L cyclonev -L rtl_work -L work -voptargs=""+acc"" dpp_vhd_tst 
# Start time: 19:33:40 on Nov 15,2022
# ** Note: (vsim-3812) Design is being optimized...
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(66): Illegal target for defparam.
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(67): Illegal target for defparam.
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(68): Illegal target for defparam.
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(69): Invalid reference 'lpm_pipeline' in defparam; target resolves below VHDL scope 'LPM_DIVIDE_component'.
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(69): Illegal target for defparam.
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(70): Illegal target for defparam.
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(71): Invalid reference 'lpm_widthd' in defparam; target resolves below VHDL scope 'LPM_DIVIDE_component'.
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(71): Illegal target for defparam.
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(72): Invalid reference 'lpm_widthn' in defparam; target resolves below VHDL scope 'LPM_DIVIDE_component'.
# ** Error: D:/hdl_projects/Elvatech/prj_elvatech/moduls/calc_base/ipcore/divider_base.v(72): Illegal target for defparam.
# Optimization failed
# Error loading design
# Error: Error loading design
#        Pausing macro execution
# MACRO ./prj_elvatech_run_msim_rtl_vhdl.do PAUSED at line 59

 

Подскажите пожалуйста как исправить ошибки в моделсиме?

 

divider_base_inst.v divider_base.qip divider_base.v divider_base_bb.v alg_base_calc_1calc.v c.do

prj_elvatech_run_msim_rtl_vhdl.do

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


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

Попробуйте отключить отптимизациию:

vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L cyclonev -L rtl_work -L work -voptargs="+acc" -novopt dpp_vhd_tst

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


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

29 minutes ago, Flip-fl0p said:

Попробуйте отключить отптимизациию:

vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L cyclonev -L rtl_work -L work -voptargs="+acc" -novopt dpp_vhd_tst

она и так отключена. в старших квестах опции -novopt нет, вместо нее, как раз +acc используется)

судя по тому что он пишет "Unresolved defparam reference to 'LPM_DIVIDE_component' in LPM_DIVIDE_component.lpm_drepresentation" у него либо глюк с конфликтом имен, либо глюк с либой, убрать все либы из строки запуска, скомпилировать напрямую сорцы и запустить. Но что-то мне подсказывает, что не надо было давать имя LPM_DIVIDE_ххх компоненту lpm_divide, кто его знает как там строка поиска элементов сделана)

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


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

 

4 hours ago, des00 said:

она и так отключена. в старших квестах опции -novopt нет, вместо нее, как раз +acc используется)

судя по тому что он пишет "Unresolved defparam reference to 'LPM_DIVIDE_component' in LPM_DIVIDE_component.lpm_drepresentation" у него либо глюк с конфликтом имен, либо глюк с либой, убрать все либы из строки запуска, скомпилировать напрямую сорцы и запустить. Но что-то мне подсказывает, что не надо было давать имя LPM_DIVIDE_ххх компоненту lpm_divide, кто его знает как там строка поиска элементов сделана)

У меня в проекте два делителя используется с разными параметрами для синтеза.

image.thumb.png.158e33a1ac281e0a69693152d4ea50ed.png

Неужели я не могу более одного компонента использовать в проекте - бред какой то

 

4 hours ago, Flip-fl0p said:

Попробуйте отключить отптимизациию:

vsim -t 1ps -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L cyclonev -L rtl_work -L work -voptargs="+acc" -novopt dpp_vhd_tst

в первом описаном случае я не использую оптимизацию вообще - c.do  файл.

Оптимизацию добавляет native link (из квартуса) - prj_elvatech_run_msim_rtl_vhdl.do

 

Как мне переделать проект чтобы не было повторов имен IP CORE LPM_DIVIDE? Cейчас ругается на имя divider_base которое дал визарду при создании IP CORE

Но divider_base (см вложение первого поста) это обвертка в которой прописан LPM_DIVIDE с параметрами настроек. Аналогично и с lpm_divider

Помниться я вначале 2000 годов (вначале своей карьеры) я моделировал схемы из схематик едитора - там то повторов IP CORE было множество...

Что то получается я делаю не правильно, понять бы что и где

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


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

5 hours ago, Maverick_ said:

Что то получается я делаю не правильно, понять бы что и где

очень давно с квестой было что-то похожее, как я вам уже написал, почистите рабочую либу, возьмите сорцы этих корок, скомпилируйте в work и пробуйте запускать. Без отдельно скомпилированных библиотек. Если заработает, то можно уже идти дальше, в сторону компиляции библиотек

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


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

Убрал один модуль деления из проекта - моделсим компилирует...

продолжу исследования)))

PS где-то лажа...  квартус <=> моделсим

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


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

В 16.11.2022 в 19:51, Maverick_ сказал:

продолжу исследования)))

Если не know-how, кидайте проект: можем распараллелить наши изыскания в целях познавания глубины ихних глубин )))

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


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

что-то мне подсказывает что внешний модуль пытается переопределить какойто localparam во внутреннем, нижестоящем модуле, но либо лезет не туда, либо библиотека не от той версии.

Возможен ещё вариант, что в нескольких местах используется этот одинаково называнный LPM_DIVIDE, но в одной части он должен быть одной версии, а в другой - соответственно другой версии библиотеки.

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


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

On 11/24/2022 at 10:29 PM, krux said:

что-то мне подсказывает что внешний модуль пытается переопределить какойто localparam во внутреннем, нижестоящем модуле, но либо лезет не туда, либо библиотека не от той версии.

Возможен ещё вариант, что в нескольких местах используется этот одинаково называнный LPM_DIVIDE, но в одной части он должен быть одной версии, а в другой - соответственно другой версии библиотеки.

что делать со случаем "в нескольких местах используется этот одинаково называнный LPM_DIVIDE, но в одной части он должен быть одной версии, а в другой - соответственно другой версии библиотеки."

как исправить?

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


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

В 26.11.2022 в 02:41, Maverick_ сказал:

"в нескольких местах используется этот одинаково называнный LPM_DIVIDE, но в одной части он должен быть одной версии, а в другой - соответственно другой версии библиотеки."

как исправить?

Упрости максимально твою задачу с этими разными библиотеками и пришли мне.  И личку, конечно, прочитай. Я готов продолжить с тобой работу.

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


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

В 26.11.2022 в 02:41, Maverick_ сказал:

что делать со случаем "в нескольких местах используется этот одинаково называнный LPM_DIVIDE, но в одной части он должен быть одной версии, а в другой - соответственно другой версии библиотеки."

как исправить?

В тулах различных вендоров используются ключи, разрешающие элаборацию модулей с одинаковыми названиями, но различным содержимым (очень похоже на "перегрузку операторов" из программирования). Однако, делать это крайне не рекомендую, может привести к очень странным последствиям, которые тяжело отлаживать.

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

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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