MaratZuev 0 5 августа, 2019 Опубликовано 5 августа, 2019 (изменено) · Жалоба Добра всем! Поискал в форуме в разных ветках, но сразу не нашёл ответа на такой вопрос: поставлена задача для наших проектов доказать соответствие оных директивам DO-254 и иже с ними. Проекты написаны как на VHDL и Verilog (SV), так и в схематике. Причём ПЛИС Actel и Altera. Вопрос: откуда нам, первый раз столкнувшимся со словами Code Coverage, начать сей нелёгкий и тернистый путь? Всё комментарии, а тем паче, ссылки, книги и прочее, приветствуются. Оптимально Mentor (ModelSim и QuestaSim), но и Aldec пойдёт, если он умеет это лучше. Изменено 5 августа, 2019 пользователем MaratZuev Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 5 августа, 2019 Опубликовано 5 августа, 2019 · Жалоба 15 minutes ago, MaratZuev said: Вопрос: откуда нам, первый раз столкнувшимся со словами Code Coverage, начать сей нелёгкий и тернистый путь? с руководства по симулятору Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viktuar 0 5 августа, 2019 Опубликовано 5 августа, 2019 · Жалоба Был у Ментора такой ресурс Verification Academy, если первый раз столкнулись, рекомендую, чтоб понять что это такое, какие виды покрытия бывают, как понять, чтовсе ok, и т.п.. Особенно если потом потребуется функциональное покрытие и пр. А по поводу симулятора - читайте описание, моделсим умеет такое, ну а схематик, скорее всего, придется переводить на код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 5 августа, 2019 Опубликовано 5 августа, 2019 · Жалоба 1 hour ago, des00 said: с руководства по симулятору Нашёл в QuestaSim 10.4e tutorial, но рисунок (Figure 13-1. Code Coverage Windows) на стр. 163 в нём почему-то не соответствует тому, что я вижу на экране: ЧЯДНТ? О_о 1 hour ago, Viktuar said: Был у Ментора такой ресурс Verification Academy Да, знаю, спасибо за напоминание, оставлю ещё (для себя) такую ссылку здесь: http://www.testbench.in/TB_24_ABOUT_CODE_COVERAGE.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 1 5 августа, 2019 Опубликовано 5 августа, 2019 · Жалоба 2 hours ago, Viktuar said: ну а схематик, скорее всего, придется переводить на код. да, мне вот тоже не очень понимается что такое "кодовое" покрытие "схемы" ... ...тем паче в соответствии с DO-254 и иже с ним 55 minutes ago, MaratZuev said: ЧЯДНТ? О_о начните с методологии: что делать и для чего.. не кидайтесь сразу на амбразуру инструмент методология вполне вероятно ответит и на вопрос надо ли покрывать сам код тестбенчей (нет). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 5 августа, 2019 Опубликовано 5 августа, 2019 · Жалоба 3 hours ago, Doka said: не кидайтесь сразу на амбразуру инструмент Там ещё есть такие инструменты как ALINT и иже с ними: я в раздумьях, нужны ли они мне? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 6 августа, 2019 Опубликовано 6 августа, 2019 · Жалоба 10 hours ago, MaratZuev said: Нашёл в QuestaSim 10.4e tutorial, но рисунок (Figure 13-1. Code Coverage Windows) на стр. 163 кхх...\docs\pdfdocs\questa_sim_user.pdf Questa® SIM User’s Manual Including Support for Questa SV/AFV -> Chapter 19 Code Coverage Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KeisN13 6 6 августа, 2019 Опубликовано 6 августа, 2019 (изменено) · Жалоба Покрытия есть в systemverilog как стандартная фича. Прям раздел в стандарте Coverage. Если используется vhdl, то здесь стоит смотреть на osvvm Изменено 6 августа, 2019 пользователем KeisN13 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KeisN13 6 6 августа, 2019 Опубликовано 6 августа, 2019 · Жалоба Думаю я не прав. Покрытие в св и осввм показывает насколько процентов были использованы возможные состояния сигналов, шин, автоматов, переходов в автомате и тд. Не думаю, что это имеет отношение к покрытию кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 6 августа, 2019 Опубликовано 6 августа, 2019 · Жалоба 43 minutes ago, KeisN13 said: Думаю я не прав. Покрытие в св и осввм показывает насколько процентов были использованы возможные состояния сигналов, шин, автоматов, переходов в автомате и тд. Не думаю, что это имеет отношение к покрытию кода. А зачем смотреть OSVVM? Я глядел-глядел, толку ноль. Если есть проектировщик на SV, можно сделать покрытие 100% даже кода на VHDL, там полно фич и инструкций, которые залезут в недри. И не придётся разбираться в непонятном инструменте, которой к тому же не везде поддерживается (в связи с описанием конструкций на VHDL-2008 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 6 августа, 2019 Опубликовано 6 августа, 2019 · Жалоба 42 minutes ago, Nick_K said: в связи с описанием конструкций на VHDL-2008 Я пишу на SV, зачем мне что-то знать про VHDL? 5 hours ago, des00 said: кхх...\docs\pdfdocs\questa_sim_user.pdf Questa® SIM User’s Manual Including Support for Questa SV/AFV -> Chapter 19 Code Coverage Спасибо. Установил версию 10.7с: буду смотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 0 6 августа, 2019 Опубликовано 6 августа, 2019 · Жалоба В матлабе есть какие-то пакеты для проверки на соответствие авиастандартам DO. Там проверяется с формированием сертификата соответствия, вроде , hdl код. Посмотрите в этом направлении. https://matlab.ru/promo/standards Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба On 8/6/2019 at 9:50 PM, Skryppy said: В матлабе есть какие-то пакеты для проверки на соответствие авиастандартам DO. Посмотрел (наверное поверхностно) и не увидел ничего для себя интересного. Есть инструменты Mentor-а и Aldec-а - вот их и хочу использовать. Есть такой вопрос: взял примитивный проект, который прилагаю к этому комментарию, по результатам обработки которого ModelSim (QuestaSim) в своём GUI показывает 100% покрытие statemеnts, и тоже самое я вижу в текстовом отчёте (test_tb_opt.txt). Но в html отчёте покрытия вообще никакого нет! Вкратце (кто не полезет в проект) так: design under test - test.sv module test ( input logic clk, input logic data, input logic ena, output logic q ); always_ff @(posedge clk) q <= ena ? data : q; endmodule : test Test bench - test_tb.sv module test_tb; logic clk; logic data; logic ena; logic q; initial begin clk = 0; forever #10 clk = ~clk; end initial begin data = 0; ena = 0; end test test(.*); endmodule : test_tb tcl скрипт для обработки проекта в ModelSime (QuestaSime) - coverage_test.tcl proc coverage_proc {main_coverage_file_name coverage_letters_string current_module} { # http://read.pudn.com/downloads190/doc/comm/895124/ofdm_cp_insertion_v71/ofdm_cp_insertion/scripts/ofdm_kernel_msim.tcl__.htm 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 re QuestaSim .main clear onbreak {resume} # create library if [file exists work] { vdel -all } vlib work set FilesCompiled 0 # compile all source files # https://stackoverflow.com/questions/51409347/how-to-copy-or-move-multiple-files-with-same-extension set verilog_files [glob -nocomplain *.v] if {[llength $verilog_files]} { vlog -O0 +fcover +acc *.v set FilesCompiled 1 puts "Verilog file(s) are compiled!" } set system_verilog_files [glob -nocomplain *.sv] if {[llength $system_verilog_files]} { vlog -O0 +fcover +acc *.sv set FilesCompiled 1 puts "SystemVerilog file(s) are compiled!" } if {$FilesCompiled == 1} { set main_coverage_file_name_opt $main_coverage_file_name append main_coverage_file_name_opt "_opt" # puts $main_coverage_file_name # puts $main_coverage_file_name_opt # optimize design vopt +cover=$coverage_letters_string $main_coverage_file_name -o $main_coverage_file_name_opt # ModelSim® SE Command Reference Manual, v10.5 page 855 # Commands # vopt # # +cover=<spec> # <spec> — one or more of the following characters: # b — Collect branch statistics. # c — Collect condition statistics. Collects only FEC statistics, # unless -coverudp is specified. # e — Collect expression statistics, Collects only FEC statistics, # unless -coverudp is specified. # s — Collect statement statistics. # t — Collect toggle statistics. Overridden if ‘x’ is specified elsewhere # x — Collect extended toggle statistics (Refer to “Toggle Coverage” for details). # This takes precedence, if ‘t’ is specified elsewhere. # f — Collect Finite State Machine statistics # https://stackoverflow.com/questions/49789252/how-to-generate-a-detail-report-of-functional-coverage-in-questasim # load simulator with optimized design vsim -cvgperinstance -c -coverage work.$main_coverage_file_name_opt coverage save $main_coverage_file_name_opt.ucdb run 1ms # vsim -cvgperinstance -viewcov $main_coverage_file_name_opt.ucdb coverage report -file $main_coverage_file_name_opt.txt -detail -code $coverage_letters_string -noannotate -cvg # vcover report -html $main_coverage_file_name_opt.ucdb -details -code $coverage_letters_string -cvg vsim -cvgperinstance -c -coverage work.$main_coverage_file_name_opt -do "run 1ms; vcover report -html $main_coverage_file_name_opt.ucdb -details -code $coverage_letters_string -cvg" } else { puts "No file(s) to compile found!" } } coverage_proc test_tb s test командный файл для запуска всего этого хозяйства на исполнение - coverage_test.bat c:\Mentor_Graphics\QuestaSimx64_10.7c\win64\questasim.exe -do coverage_test.tcl Файл отчёта - test_tb_opt.txt Coverage Report by file with details ================================================================================= === File: test.sv ================================================================================= Statement Coverage: Enabled Coverage Active Hits Misses % Covered ---------------- ------ ---- ------ --------- Stmts 2 2 0 100.00 ================================Statement Details================================ Statement Coverage for file test.sv -- 8 1 1 9 1 1 ================================================================================= === File: test_tb.sv ================================================================================= Statement Coverage: Enabled Coverage Active Hits Misses % Covered ---------------- ------ ---- ------ --------- Stmts 6 6 0 100.00 ================================Statement Details================================ Statement Coverage for file test_tb.sv -- 9 1 1 10 1 1 10 2 100001 10 3 100000 14 1 1 15 1 1 Total Coverage By File (code coverage only, filtered view): 100.00% Окно Questa: И, наконец, html отчёт Quest-ы - пустой?! Почему? ЧЯДНТ?! test_coverage.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба Вопрос снят: в файле coverage_test.tcl в строке vsim -cvgperinstance -c -coverage work.$main_coverage_file_name_opt -do "run 1ms; vcover report -html $main_coverage_file_name_opt.ucdb -details -code $coverage_letters_string -cvg" вместо vcover д.б.б. coverage Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 19 августа, 2019 Опубликовано 19 августа, 2019 · Жалоба В 05.08.2019 в 16:04, MaratZuev сказал: ... поставлена задача для наших проектов доказать соответствие оных директивам DO-254 и иже с ними. ... Доброго времени суток! Не с той стороны подходите к проблеме! Сперва вам необходимо прочитать собственно сам стандарт DO-254. Потом связаться с официальными поставщиками САПР. Тех, что используете в своём маршруте проектирования. У поставщиков запросите поддержку для DO-254 и много чего интересного узнаете! И тогда станет понятно, какой маршрут вы ДОЛЖНЫ выбрать, какие способы анализа покрытия и автоматического документирования вы должны использовать, и прочее прочее прочее. И стоит эта красота на порядок дороже, чем без этой красоты. :) Как-то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться