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

lexus.mephi

Свой
  • Постов

    268
  • Зарегистрирован

  • Посещение

Весь контент lexus.mephi


  1. Нашел кучу софта 2020 года под этот патчер. Нужен кто-то, кто может качать с https://pan.baidu.com Напишите в личку - скину ссылки и пароли.
  2. Скачал. ОГРОМНОЕ спасибо! =)
  3. Коллеги, у кого есть доступы к https://bbs.eetop.cn/ ? Посмотрите, пожалуйста, есть в этом топике софт для скачивания? : https://bbs.eetop.cn/thread-890275-1-1.html При регистрации требуют какое-то платное приглашение. Оплата через AliPay. Хочу понять, есть смысл дальше заморачиваться.
  4. Если получится, буду очень признателен. Самого vManager'a в доступности сейчас нет, поэтому практическую часть полностью посмотреть не смогу.
  5. Курсы просто бомбические. Спасибо ОГРОМНОЕ! Верификаторов со знанием UVM на рынке труда сейчас немного. С этими курсами можно воспитать новых )) Помимо базовых вещей много инфы из категории advanced. P.S. А такого курса у Вас нет? - Metric Driven Verification Using Cadence vManager =))
  6. Значит на этом пока и остановимся. Вариант с $dumpvars $vcdpluson $vcdplusoff получается напряжным - в системе много кода. Все это фильтровать - что писать, что не писать. Может потом для регрессионных тестов такую работку проведем. Спасибо, коллеги!
  7. Немного не понял про файл, который тормозит. Всякие DDR3 я уже заменил на легковесные модельки. Отключил UVM-ные мониторы, которые мне в этом тесте не нужны. В общем, ряд мер по ускорению симуляции уже предпринял. 10мс я собираю некоторые данные, которые поступают в обработку после 10мс. Т.е. пропусить эти 10 мс и получить интересующую картинку не получится (или получится, но с дикими костылями, которые уведут меня от исходной проверяемой системы).
  8. Есть тест, где самое интересное начинается после 10мс. Как лучше пропустить неинтересующую часть диаграммы, чтобы ускорить симуляцию? Если это делается только с помощью VPD (VCD), то поделитесь примером, пожалуйста. В идеале, хотелось бы просто поставить маркер и сказать VCS'у - рисуй вот отсюда. Пока единственное решение, которое придумал: - запустить симуляцию без вытаскивания сигналов на диаграмму и домоделить до 10мс - после 10мс вытащить интересующие сигналы и продолжить моделирование
  9. Использую стороннее IP-ядро PCIe на Cyclone V. Наблюдаются регулярные сбои в работе трансивера на RX (встает rx_errdetect, падает rx_syncstatus). - Работоспособность приемопередатчиков проверена - Качество тактового сигнала проверено Нашел специализированные настройки трансивера для протоколов PCIe, SATA, SAS: - Receiver Signal Detection Unit Enable/Disable (XCVR_RX_SD_ENABLE) - Receiver Cycle Count Before Signal Detect Block Declares Presence Of Signal (XCVR_RX_SD_ON) и т.д. Я так понимаю, что при использовании родной альтеровской PCIe корки какие-то из этих опций включаются по умолчанию. Может мне не хватает именно их. Попробовал скомпилить проект и включить эти настройки - не нашел в репортах, получилось это или нет. Откликнитесь, кто решал подобную задачу. Спасибо!
  10. Тренд как раз - это SystemVerilog в связке с методологиями верификации (UVM, OVM и т.д.). Чтобы быть в чем-то уверенным - надо сначала попробовать. SystemC не используют, как основной инструмент верификации RTL. Это инструмент имитационного моделирования цифровой аппаратуры. Эффективен при развитом рынке IP-ядер, когда вместе с этими самыми IP-ядрами поставляются модели на SystemC. Можно собрать имитационную модель, например, будущей Системы-на-Кристалле. Посмотреть хватает ли памяти, пропускной способности.
  11. Тут по названию темы сразу было ясно, что это будет повод для холивара )) Давненько что-то не было. Я начинал с VHDL, и даже готов согласиться, что для изучения основ схемотехники он будет предпочтительнее Verilog'а. Но если рассматривать не только возможности описания аппаратуры, но и функциональной верификации, то тут Verilog/SystemVerilog гораздо поинтереснее. Перевес в сторону Verilog уже давно бы был, если б не персонажи, которые каждый свой HDL-высер сразу грузят в ПЛИС и отлаживают в железе с помощью логических анализаторов.
  12. Вот еще статистика отдельно для VHDL и Verilog - https://www.fpgarelated.com/showarticle/19.php Статистика 2011 года - видно, что по разным странам статистика различается. И Verilog за счет более стремительного развития нагоняет VHDL.
  13. Имелся ввиду pnysical layer. Есть трансиверная корка, на выходе/входе которой должны быть кодовые символы в соответствии со стандартом PCIе. Остальные уровни (Data, Trancation) пока не интересуют. P.S. Полная корка на Verilog тож подойдет =)
  14. Не, задача - передать данные по оптике. Для этого нужен какой-то протокол. Решили пока пощупать PCIe, т.к. у начальства был какой-то опыт работы с этим интерфейсом.
  15. Зная, как у альтеры корки зашифрованы, даже не пробовал смотреть. Там прямо читабельный verilog можно получить? ISE нужен?
  16. Стоит задача сделать для оптики протокол на основе PCIe. Пока интересует реализация PHY уровня. Нашел на фтп VHDL-ную корку. Может у кого есть Verilog-ная? Спасибо!
  17. В этом посте (ссылка) расписал процедуру для исключения ветки из отчета Branch Coverage. Аналогичным образом можно скорректировать и покрытие строк.
  18. Для корректировки отчетов Toggle и Branch у Synopsys отдельный инструмент. 1) Запускаем в графическом режиме DVE для просмотра отчетов: $ dve -cov -covdir simv.vdb 2) Там находим ненужную ветку и отключаем: 3) Дальше выгружаем все исключения в файл *.el: testtt.el: CHECKSUM: "4091565883 3988933883" MODULE: dut Branch 0 "2970113050" "(~rst_n)" (3) "(~rst_n) 0,C " 4) Генерим отчет с учетом исключений: $ urg -lca -dir ./simv.vdb -elfile testtt.el и получаем:
  19. Существуют разные метрики покрытия (ссылка). Ваш пример я дополнил, чтобы сделать покрытие комбинационной логики (Combinational Logic Coverage) - 100%. Если речь идет о покрытии строк кода (Line Coverage) (1-й скриншот), то тут нет никаких illegal_bins/ignore_bins - есть только строки кода. Этот отчет показывает, какие строки исполнялись в процессе моделирования, а какие - нет. Пусть состояние C и неправильное, но оно описано у Вас в коде, а значит должно быть проверено. Или: ... case (sel) A: out <= 4'h0; B: out <= 4'h1; // C: out <= 4'h2; default: out <= 4'hF; endcase ...
  20. При таком описании coverpoint конструкция illegal_bins действительно не срабатывает. У меня такая версия - для точек покрытия (coverpoint) создаются списки ожидаемых значений (EXPECTED). Если явно не задать диапазон значений, то в этот список попадут все возможные значения без учета illegal_bins/ignore_bins. Добавил в Ваш пример: //dut.sv ... covergroup cg (); option.per_instance = 0; cvp: coverpoint sel { bins sel_bin[] = {[A:C]}; illegal_bins exlude_C = {C}; } endgroup ... При таком описании значение C не попадает в список EXPECTED - получаем покрытие 100%. P.S. В примере не хватает скрипта для запуска симуляции. Вот вариант tcl для VCS: vcs_run.tcl: #!/usr/bin/tclsh set VLOG_SIM_OPT {-sverilog -timescale=1ns/1ns} set VLOG_CMD "exec vlogan ${VLOG_SIM_OPT}" eval ${VLOG_CMD} dut.sv eval ${VLOG_CMD} tb.sv eval "exec vcs -lca -cm line+cond+fsm+tgl+path+assert -debug_all tb -R -l vcs.log" #eval "dve -cov -covdir simv.vdb" eval "urg -lca -dir simv.db"
  21. Пробовали поиграться с "covergroup instance specific options" - weight, per_instance? Вот тут есть интересная фраза на 31 стр.: "Illegal bins can be used to remove unused or illegal values from the overall coverage calculation." Походу Вам достаточно заменить ignore_bins на illegal_bins, чтобы убрать ненужные состояния этого enum'а из общего отчета по покрытию.
  22. Вопросы, связанные с методологиями верификации, обсуждаются в разделе "Языки проектирования на ПЛИС (FPGA)". VMM уже заброшенная методология: Рекомендую вместо нее использовать UVM - там побольше информации будет. И напишите, какая у Вас среда моделирования?
  23. Про поддержку интерфейсов у Xilinx тут: ug900-vivado-logic-simulation.pdf Страницы 196-197. Если порт B действительно интерфейс: module foo_block #() ( input logic [7:0] port_a, port_b_intf port_b, output logic [7:0] port_c ); //------------------- parameter N = 8; logic [N-1:0][7:0] a_values; logic [N-1:0][7:0] c_rez; port_b_intf port_b_intf_inst[N](); for (i = 0; i<N; i++) begin my_gen foo_block #( ) u_foo_block ( .port_a ( a_values [ i ] ), .port_b ( port_b_intf_inst [ i ] ), .port_c ( c_rez [ i ] ) ); end
  24. Здравствуйте! Появилась в распоряжении NVidia Tesla - возник вопрос, можно ли использовать ее ресурс для EDA-тулов. Последний раз данная тема поднималась на форуме 3 года назад (ссылка). С тех пор что-нибудь изменилось? Удалось кому-нибудь попробовать в действии симулятор RocketSim? Спасибо!
×
×
  • Создать...