Jump to content

    

MaratZuev

Свой
  • Content Count

    96
  • Joined

  • Last visited

Community Reputation

0 Обычный

About MaratZuev

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

Контакты

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

Информация

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

Recent Profile Visitors

209 profile views
  1. Спасибо, преобразовал код в следующее: module tb; logic clk; initial begin clk = 0; forever #10ns clk = !clk; end; task process_zone; input logic [7:0] size; input logic start; enum {ST_IDLE, ST_ZONE, ST_END_ZONE} state_zone; integer i; $display("%g ns task started with size = %0d", $time, size); i = 0; state_zone <= ST_ZONE; while (i <= size) @(posedge clk) begin case (state_zone) ST_IDLE : state_zone <= start ? ST_ZONE : ST_IDLE; ST_ZONE : state_zone <= i == size ? ST_END_ZONE : ST_ZONE; ST_END_ZONE : state_zone <= ST_IDLE; default : state_zone <= ST_IDLE; endcase i = i + 1; end disable process_zone; endtask : process_zone event signal; logic start; task toggle_start; start = 1'b1; #10ns start = 1'b0; endtask : toggle_start initial begin #50ns -> signal; fork toggle_start; process_zone (8'd5, start); join -> signal; end initial begin #250ns -> signal; fork toggle_start; process_zone (8'd7, start); join -> signal; end endmodule : tb
  2. Доброго всем пятничного! Либо уже устал к концу недели, либо ещё что, но не могу понять в чём дело: module tb; logic clk; initial begin clk = 0; forever #10ns clk = !clk; end; task process_zone; input logic [7:0] size; output logic process_zone_end; enum {ST_ZONE_IDLE, ST_ZONE, ST_END_ZONE} state_zone; integer i; i = 0; forever @(posedge clk) begin case (state_zone) ST_ZONE_IDLE : state_zone <= ST_ZONE; ST_ZONE : state_zone <= i == size ? ST_END_ZONE : ST_ZONE; ST_END_ZONE : state_zone <= ST_END_ZONE; default : state_zone <= ST_ZONE_IDLE; endcase i = state_zone == ST_ZONE ? i + 1 : 0; process_zone_end = state_zone == ST_END_ZONE; end endtask : process_zone logic state_next_zone; initial #10ns process_zone (8'd5, state_next_zone); endmodule : tb state_next_zone остаётся в третьем состоянии, невзирая на process_zone_end: ЧЯДНТ? Проект на всякий случай также прилагаю. test.zip
  3. Вопрос снят: в файле 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
  4. Посмотрел (наверное поверхностно) и не увидел ничего для себя интересного. Есть инструменты 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
  5. Доброго всем! Позволю обновить тему. Вопрос участницам: изменилось ли за прошедшее время что-либо в данной сфере сертификации? Предстоит плотно заняться вопросом, но с какого бока подойти? Что ещё интересует, так это вот что: по РМ-254 имеем 2.4.4. При использовании HDL для уровня А должен быть достигнут и зарегистрирован целевой уровень верификационного покрытия в испытаниях, основанных на требованиях: a) Покрытие решений (каждая точка входа и выхода кода HDL пройдена хотя бы раз, а также каждое решение кода HDL было выбрано при всех возможных исходах хотя бы раз); b) Покрытие переходов при использовании конечного автомата. Правильно ли я понимаю, что, например, с т.з. МоделСима (Квесты) пункт а) говорит о покрытии statement, а b) - FSM при вызове команды vopt ниже? # 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
  6. Спасибо. Как понимаю, всё определяется этой строчкой в qsf: set_location_assignment HSSIPMALCPLL_1DB -to "txpll0:inst7|altera_xcvr_atx_pll_a10:txpll0_inst|a10_xcvr_atx_pll:a10_xcvr_atx_pll_inst|twentynm_atx_pll_inst" ? На всякий случай оставлю здесь валидную ссылку на вики из этого видео: Arria 10 Native PHY with ATX PLL location manually constrained design example И помещу текст сюда: Overview This basic design example with demonstrates how to manually constrain the Arria 10 ATX PLL location using Assignment Editor. In Arria 10 devices, ATX PLL spacing is required when two ATX PLLs operate at the same VCO frequency or within 100MHz difference. This is to avoid jitter performance issue with the ATX PLLs. In this design, the ATX PLL location has been pre-assigned. You can refer to the assignment example in the Assignment Editor. To manually constrain the ATX PLL location in the design, do the following steps: 1. Extract the project QAR 2. Run Analysis & Synthesis compilation 3. Open up RTL Viewer 4. Look for twentynm_atx_pll_inst (the lowest level node of ATX PLL in RTL viewer) 5. Right click on the twentynm_atx_pll_inst and Locate Node in Assignment Editor 6. Populate the twentynm_atx_pll_inst into the "To" column of Assignment Editor 7. Select Assignment Name = Location 8. At the "Value" column, look for Element = ATX PLL and select the target ATX PLL location 9. Save and recompile the design 10. Check the Fitter report -> GXB Reports -> Transmitter PLL for the location placed Design File Arria 10 Native PHY with ATX PLL location manually constrained design example QII v15.1 (QAR) Design Specifications The table below lists the specifications for this design: Attribute Specification Device Arria 10 GX Quartus version QuartusII v15.1 Datarate 1Gbps Number of channels 1 IP used Native PHY IP, ATX PLL, Transceiver PHY Reset Controller
  7. Увы: Microsemi SoC Licensing To obtain a FREE Libero Evaluation or Silver license, click the button below.The following Evaluation and Silver licenses support Libero SoC PolarFire, Libero SoC v11.8, and above versions only.Libero IDE v9.2 SP3, Libero SoC v11.7 SP3 and lower versions do not support Evaluation and Silver licenses. If you are using one of these Libero IDE or Libero SoC versions, you need to purchase Gold, Platinum or Standalone license.
  8. Добра всем! Мой коллега задаёт вопрос: есть, например, Циклон 2 с четырьмя ФАПЧами по углам. В проекте используется только один ФАПЧ, генерируемый визардом. Коллега утверждает (если я его правильно понял), что этот ФАПЧ может быть размещён в одной из двух возможных позиций в зависимости от тактового сигнала, что питает этот ФАПЧ. Но по какой-то причине (мне неизвестной) коллеге нужно, чтобы он мог управлять размещением этого ФАПЧа (он говорит, что в визарде такой возможности нет). Кто что может сказать: есть такая установка в Assingments, qsf или где, чтобы задать именно желаемый угол кристалла с ФАПЧем?
  9. Попробовать можно, но лицензию покупать для пробы не хочется Последнее, что там лежит с лекарством - 8.6, которую я сам туда и положил.
  10. KEY CAPTURE "9.0.0.15" В сети не ищется (
  11. Добра всем! Есть проект, прилагаемый к этому сообщению, который очень хочется компилировать здесь и сейчас, а не в том Libero (9.0 по-моему) в котором он был создан, тем более, что хвостов от того Libero сейчас и не найдёшь (или можно что-то (лицензию или что, но где взять сам Libero?!) купить пусть за (американские) деньги?). С перетаскиванием текста, конечно, никаких проблем нет, но, вот, что делать с графикой, которая под каждый чих Libero своя? В закромах лежит вскрытая версия 8.6, но она, боюсь, здесь не поможет. Кто что скажет? Был бы признателен. PS. Сам проектирую на Quartus, Libero видел только краем глаза, но установить и разобраться, думаю, смогу, особенно по серии статей в КиТ. Нужны руководящие указания или какой-то другой вариант решения вопроса ) ИВУК.468362.004 - модель
  12. https://cloud.mail.ru/public/3oMu/349B3gia6
  13. RE: ПЛИС в BGA Коваленко П.Ю. <pkov@vzpp-s.ru> 6 августа 2019 г., 15:51 Кому: Добрый день! Закралась ошибка. Во вложении исправленный файл. Технический директор АО "ВЗПП-С" Коваленко Павел Юрьевич тел.: (473) 237-98-83, факс: (473) 227-91-53 Назначение выводов на микросхему 5576ХС4Я.pdf
  14. Я пишу на SV, зачем мне что-то знать про VHDL? Спасибо. Установил версию 10.7с: буду смотреть.