Jump to content

    

MaratZuev

Свой
  • Content Count

    137
  • Joined

  • Last visited

Community Reputation

0 Обычный

About MaratZuev

  • Rank
    Частый гость
  • Birthday 10/10/1974

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Москва

Recent Profile Visitors

336 profile views
  1. Спасибо, конечно, но я не увидел в приведённом скрипте Может, плохо смотрел?
  2. Всем добра! Всю свою сознательную жизнь сидел на Mentor-e, но пришла пора квалификации инструмента, для чего требуется сравнение результатов оного (ModelSim-a) с альтернативным ПО. Разумным решением представляется Aldec с его Active-HDL. Работая с ModelSim использовал его в основном в пакетном режиме, т.е. по запуску единственного командного файла, инициирующего обработку проекта, на выходе получал готовую временную диаграмму, которую потом успешно копировал в отчёт. Избаловавшись подобным подходом, захотелось применить оный и на новом инструменте, однако столкнулся с непреодолимыми (пока) для меня сложностями. Вопрос в следующем: возможно ли средствами Active-HDL проделать то же, что я проделывал с ModelSim? Есть ли у кого готовый пример этого (довольно подробный поиск в сети ничего, что дало хоть какие-то результаты, не принёс)? Для примера прилагаю свои изыскания, где я попробовал максимально подробно изложить своё видение маршрутов проектирования для упомянутых выше инструментов (для Active-HDL существует два маршрута, но ни на одном из них мне не улыбнулась удача): ЧЯДНТ? CompareDesignRoute.zip
  3. Всем спасибо, все свободны. Куда денег занести? )
  4. Симулятор не видит реализацию только при запуске маршрута coverage. При запуске маршрута functional с теми же самыми установками в том же самом симуляторе всё прекрасно видится. При запуске маршрута coverage с отключённой оптимизацией тоже всё видится. Так что просьба подсказать ещё...
  5. Всем добра! Я всё про тот же чужой мне проект на чужом языке. Функциональное моделирование, вроде бы, осилил, теперь нужно преодолеть code coverage. На своём SV-шном я этот путь прошёл, КМК, без особых проблем. Но тут, в VHDL, столкнулся с необъяснимыми мне сообщениями компилятора вида ** Warning: ../../mpm027.vhd(183): (vopt-3473) Component instance "/mpm027/b2v_inst : lcell" is not bound. Как полагаю, дело снова в оптимизации, ибо, если из маршрута убираю оную, ругательство пропадает. Но и сам маршрут рушится, ибо я его тупо скопировал из руководства к ModelSim-у. Вопрос: как, не разрушая маршрут, побороться с этими warning-ами, или же снова, как было предложено ранее, выставить переменные ModelSim-а? Какие? На всякий случай проект прилагаю. Скрипты запуска functional - ModelSim\Functional\functional_run.bat, coverage - ModelSim\Coverage\coverage_run.bat FunctionalVSCoverage.zip
  6. Удивляюсь: оказывается, есть ещё люди, которые про чёрточку не знают! )))
  7. разве в этом случае на вход не будет подано значение по умолчанию? разве выход однозначно не определятся входами? Да, спасибо, до этого уже добрался
  8. Век живи: всю жизнь считал, что именно входы надо инициализировать!
  9. Он тоже начинается в тестбенче и там же инициализирован signal FBCS5 : STD_LOGIC:='1'; Вообще, ModelSim даёт заглянуть внутрь этой мегафункции, и показывает, что там: -- ENTITY DECLARATION entity LPM_DECODE is generic ( -- Width of the data[] port, or the input value to be decoded. (Required) lpm_width : natural; -- Number of explicit decoder outputs. (Required) lpm_decodes : natural; -- Number of Clock cycles of latency lpm_pipeline : natural := 0; lpm_type : string := "LPM_DECODE"; lpm_hint : string := "UNUSED" ); port ( -- Data input. Treated as an unsigned binary encoded number. (Required) data : in std_logic_vector(lpm_width-1 downto 0); -- Enable. All outputs low when not active. enable : in std_logic := '1'; -- Clock for pipelined usage. clock : in std_logic := '0'; -- Asynchronous clear for pipelined usage. aclr : in std_logic := '0'; -- Clock enable for pipelined usage. clken : in std_logic := '1'; -- Decoded output. (Required) eq : out std_logic_vector(lpm_decodes-1 downto 0) ); end LPM_DECODE; -- END OF ENTITY тоже всё инициализировано. ARCHITECTURE SYN OF lpm_decode0 IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (3 DOWNTO 0):=(others=>'0'); SIGNAL sub_wire1 : STD_LOGIC := '0'; SIGNAL sub_wire2 : STD_LOGIC := '0'; SIGNAL sub_wire3 : STD_LOGIC := '0'; SIGNAL sub_wire4 : STD_LOGIC := '0'; не помогло
  10. set выводит в transcript результат присвоения, что ИМО засоряет вывод, в то время как variable - нет Берём lpm_decode_component из lpm_decode0.vhd: у него два входных порта PORT MAP ( enable => enable, data => data ); идём наверх lpm_decode0 в том же файле имеет порты PORT ( data : IN STD_LOGIC_VECTOR (1 DOWNTO 0); enable : IN STD_LOGIC ); далее b2v_inst8 : lpm_decode0 из файла mpm027.vhd PORT MAP(enable => SYNTHESIZED_WIRE_10, data => Add ); в этом файле по вашему совету я добавил инициализацию SIGNAL SYNTHESIZED_WIRE_10 : STD_LOGIC:= '0'; сигналы же Add здесь же описаны как Add(0) <= FBAd20; Add(1) <= FBAd21; а выше, в testbench-e mpm027_tb.vhd, signal FBAd21 : STD_LOGIC:='0'; signal FBAd20 : STD_LOGIC:='0'; т.е. всё, вроде, инициализировано. Или не всё? У меня (возможно, неправильная) привычка морочить себе голову по поводу любых ворнингов.
  11. Вот это сработало, спасибо. if {$FilesCompiled} { vsim -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L maxii -L maxv\ -L cycloneii -L work work.mpm027_tb variable StdArithNoWarnings 1 variable NumericStdNoWarnings 1 source wave_window_signals.tcl } else { puts "No file(s) to compile found!" } Спасибо, работает.
  12. Скрипте запуска чего? Если ставлю в свой скрипт: variable StdArithNoWarnings 1 variable NumericStdNoWarnings 1 # create library if [file exists work] { vdel -all } vlib work set FilesCompiled 0 # compile all source files set vhdl_files [glob -nocomplain ../../*.vhd] if {[llength $vhdl_files]} { vcom -2008 -explicit -work work ../../*.vhd set FilesCompiled 1 puts "VHDL file(s) are compiled!" } if {$FilesCompiled} { vsim -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L maxii -L maxv\ -L cycloneii -L work work.mpm027_tb source wave_window_signals.tcl } else { puts "No file(s) to compile found!" } ничего не меняется, warning-и остаются Зачем же во всех? Ругается только на /mpm027_tb/UUT/b2v_inst8/lpm_decode_component - на сигналы на его входах и надо ставить значения по умолчанию, нет? Это указанный вами SYNTHESIZED_WIRE_10 и пара FBAd20 и FBAd21. SYNTHESIZED_WIRE_10 я определил, как вы указали, а FBAd20 и FBAd21 были определены в testbench-e: signal FBAd21 : STD_LOGIC:='0'; signal FBAd20 : STD_LOGIC:='0'; Но warning-и остаются. Any other idea?
  13. Покажу весь (в скрепке) Да, дело было в оптимизации: https://forums.xilinx.com/t5/Simulation-and-Verification/Why-does-Modelsim-not-display-some-signals/td-p/297781 А вот этого по проекту я найти не могу: уже все глаза проглядел.. MPM027_16.02.ZIP Спасибо. Добавить именно при компиляции, а не при оптимизации? У меня же, вроде, two-step flow?