Я пытаюсь исключить определенные файлы VHDL из отчета о покрытии кода, но не могу заставить его работать. В моем отчете всегда отображаются все доступные файлы.
Мой рабочий процесс выглядит следующим образом:
# Start simulation
vsim -coverage work.core_tb -t 1ps
do wave/core_wave.do
view wave -undock
when -label end_of_simulation {end_of_sim == '1'} {echo "End of simulation" ; stop ;
coverage exclude -src ../../../design/hdl/FILE_1.vhd
coverage exclude -src ../../../design/hdl/FILE_2.vhd
coverage exclude -src ../../../design/hdl/FILE_3.vhd
coverage report -output ../../../design/sim/cc_reports/report.txt -srcfile=* -assert -directive -cvg -codeAll};
run -all
wave zoomfull
# Copy simulation results to local directory
file copy -force ./_Log.txt ../../../design/sim/sim_reports/safety_core_sim_results.txt
Modelsim распознает мои исключения (в графическом интерфейсе) как «ожидающие исключения». Когда я применяю их вручную (в графическом интерфейсе), файлы, показанные в окне «Покрытие экземпляров», уменьшаются, как предполагалось. Но почему отчет не меняется/подстраивается? Что я делаю не так?
Редактировать: Похоже, что так оно и работало со старой версией Modelsim.
Решение состоит в том, чтобы отключить опцию «Двухэтапное исключение». Чтобы отключить его, перейдите в меню Modelsim:
Инструменты > Конфигурация покрытия и отключите пункт меню «Двухшаговые исключения».
В качестве альтернативы можно использовать следующую команду TCL:
coverage configure -2stepexclusion off
Когда опция «Двухэтапные исключения» активна, это означает, что любые примененные исключения всегда сначала переходят на вкладку «ожидающие исключения».