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

Raven

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    4

Сообщения, опубликованные Raven


  1. 46 minutes ago, StewartLittle said:

    Как в данном случае вывести сообщение в консоль, я не знаю.

    А зачем все вызывать из Квартусовского Tcl-shell через прокладку exec? Может, попробовать вызвать нативнее - прямо из командной строки Win (вроде как jtagconfig.exe - исполняемый файл), или из Квартусовской CygWin-среды?

     

    Последнее лучше запустить как "Nios II Command Shell.bat" (там уже все хорошо обустроено, хотя в довесок идет ниосовский обвес), но и если просто запустить Cygwin.bat - тоже должно пойти.

  2. Работаем с сетевыми адаптерами через Pcap-драйверы

     

    Но иногда требуется не просто работать с сетью, а делать это с предопределёнными параметрами, будь то расстояние между пакетами либо какое-то нестандартное их содержимое. Понятно, что речь идёт не о повседневной жизни, а об отладке либо тестировании проектов. В этом нам поможет работа через Pcap-драйверы. Например, через драйвер Npcap, устанавливающийся вместе с программой Wireshark.

     

  3. 3 hours ago, Jul'etta said:

    Имеется в виду, что грузится флэш-память, об этом сигнализирует уведомление в окне и светодиод done на плате. Однако процессор как будто "не видит", что ему надо делать (а надо зажечь светодиод и выдать приветствие в консоль).

    Это не загрузка флэш. Показан лог программирования, "прошивки" флэш bit-файлом FPGA (для последующего автоматического конфигурирования FPGA этим проектом после включения питания). Надо все-таки аккуратнее быть с терминологией, а то непонятно, о чем идет речь.

    Кстати, а после этой прошивки вы производили загрузку FPGA из флэш? Это можно сделать либо выключив-включив питание платы, либо в этом же инструменте, выбрав в контекстном меню что-то вроде "Boot from configuration FLASH".

  4. 3 hours ago, Jul'etta said:

    Спасибо за ответ. Я собрала проект (мигание светодиодом и приветствие в консольке) плата Artix ac701. Все делала в соответствии с Вашей статьей ПРОГРАММИРОВАНИЕ ЗАГРУЗОЧНОЙ FLASH ДЛЯ ЗАПУСКА MICROBLAZE ...

    Ну, для начала, это не мои статьи и не мой сайт. Статьи размещены на сайте уважаемого KeisN13 .

    Я просто ответил.

    3 hours ago, Jul'etta said:

    Я собрала проект (мигание светодиодом и приветствие в консольке) плата Artix ac701. Все делала в соответствии с Вашей статьей ПРОГРАММИРОВАНИЕ ЗАГРУЗОЧНОЙ FLASH ДЛЯ ЗАПУСКА MICROBLAZE, все грузится, выводится сообщение об успешной загрузке, светодиод done загорается, но больше ничего (ни мигания, ни приветствия).

    "Все грузится" - что здесь имеется в виду? FPGA грузится, или Microblaze запускается? Он все-таки стартует, грузится и даже зажигает светодиод? Или нет? Если да, значит, с ресета снимается, но потом что-то идет не так.

    3 hours ago, Jul'etta said:

    И только когда я изменила проект (было как у Вас с блоком constant) на блок utility vector logic (картинку прикрепила) все заработало. Теперь жму  на кнопку reset на плате, все загорается и приветствуется.

    Возможно ли, что если поставить на вход RESET все 1 – т.е. нет его, то вивада на этапе синтеза провела какую-то оптимизацию проекта, т.е. не делать сброса никогда – при этом вся логика ресетов из ядра RESET и общего проекта была выброшена? 

    Нет, блок "Processor System Reset" не мог соптимизироваться, уже хотя бы потому, что к нему подключены другие источники ресетов: clk_wiz_1 и mdm_1. Причина неработоспособности первого варианта в другом. Если хотите докопаться до сути, поисследуйте соотношение сигналов ресетов (входных и генерируемых блоком формирования системных ресетов), моментов их снятия и начала оперирования Microblaze на шине с помощью ILA. Например, если в системе есть блок SDRAM, то он довольно долго инициализируется, а обратной связи от него к блоку ресетов на приведенном фрагменте я не вижу. Но возможно, что причина какая-то еще более простая.

    Умение находить корень проблемы - важная составляющая навыков любого инженера. А тут еще такой удобный инструмент есть - ILA. Так что время не будет потрачено зря.

     

    Дополнение. А точно в варианте 1 блок xlconstant_0 генерирует лог.1? Может, все-таки 0? Проверьте в свойствах блока.

  5. On 10/25/2021 at 3:01 PM, Jul'etta said:

    Добрый день! У Вас отличные руководства. У меня вопрос относительно первой части "разработки..", а конкретно насчет 30 рисунка и вышестоящего описания к нему. У входов aux_reset_in и ext_reset_in блока rst_clk_wiz_1_100M полярность всегда задана как ACTIVE LOW. Плюс входы еще и инвертированы. Вы подаете на вход константу 1. Далее она инвертируется в 0 и выходит, что процессор всегда будет в состоянии сброса. Или я ошибаюсь? Поправьте, пожалуйста, если ошибаюсь. Спасибо.

    Входы ext_reset_in и aux_reset_in как раз для того изображены с кружочками, чтобы показать их инверсную логику (т.е., что они active low). Так что подача на них лог.1 - это подача пассивного уровня, чтобы эти входы не болтались в воздухе (т.е., не были floating). Вернее, это для того, чтобы была определенность с сигналами на этих входах (ведь иначе это сделает Vivado, а зачем же нам лишняя произвольность в таком чувствительном вопросе, как reset).

  6. 27 minutes ago, makc said:

    В открытом доступе есть только SCR1, если у вас есть SCR3 или SCR4 я бы их с удовольствием попробовал.

    Мысль была лишь в том, что предъявлять претензии по производительности к SCR1 в сравнении с Cortex-M3 - это некорректно. Разные весовые категории.

  7. 4 minutes ago, makc said:

    С другой стороны я лично не заметил существенного уменьшения размера прошивки для Cortex-M0|M4 при переходе от gcc 7.x->8.x->10.x, поэтому предполагаю, что то же самое справедливо и для RISC-V.

    GCC for ARM - вещь уже устоявшаяся, там особых улучшений ждать не приходится. Другое дело - GCC for RISC-V, тут еще большое пространство для улучшений, ведется работа, и каждый новый релиз добавляет что-то заметное. В общем, надо использовать свежатину.

    10 minutes ago, makc said:

    Для теста использовалось открытое ядро SCR1 от Syntacore, хотя за давность лет могу и ошибаться. Причём кроме этого ядра пробовал ещё парочку и ни одно не дотянуло на равной частоте до microblaze и тем более до ситезируемого Cortex-M3.

    Супротив Cortex-M3 надо было выставлять SCR3, по крайней мере (а может - и SCR4, надо смотреть их микроархитектурные параметры), а не SCR1 - ядро начального уровня.

  8. 2 hours ago, makc said:

    Согласен, нужно попробовать на 10ке. 

    .....

    Кстати, вот презентация с очень сходными с результатами моих экспериментов данными: CARRV2020_slides_12_Perotti.pdf

    Да, интересный материал. Они вообще проверяли на GCC 7.x, что для 2019-2020 уже несколько странно (вероятно, он был выбран из-за доступных метрик по ARM).

     

    Но уже даже при таком раскладе многие компании сочтут плату в +11% code size вполне приемлемой при существенном уменьшении стоимости роялти за ядро. Да и вообще, разница в 11% не выглядит подавляющей. И это при том, что оптимизация по размеру влияет также почти на все остальные важные характеристики кода: производительность, потребление и т.п. (и в презентации тоже это отмечают). Так что надо, ко всему прочему, еще и общий системный баланс рассматривать.

  9. 9 hours ago, makc said:

    Это было 2.5 года назад, поэтому могу ошибаться, но по-моему gcc был из серии 8.х для arm, а для микроба по-моему 7.х или вроде того.

    Со времен GCC 8 поддержка в нем RISC-V улучшилась, так что сравнивать надо на чем-то более свежем.

  10. 2 hours ago, makc said:

    Это довольно спорное утверждение, т.к. из моей практики получается, что по плотности кода тестового проекта с размером выходного бинарника порядка 120 кБ на первом месте (меньший по объему бинарник) была сборка для Cortex-M3, следом с небольшим отрывом шла сборка для microblaze и далее с заметным отрывом сборка для RV32IMC. Всё собиралось gcc с -Os. Поэтому сравнивать нужно не на одной функции, а на проекте.

    Какой GCC версии? И какое отставание в процентах (хотя бы приблизительно)?

  11. 24 minutes ago, RobFPGA said:

    Получите число бит в числе возвращаемого методом .num()  -  фактически это будет $bits(int)  :scratch_one-s_head:

    Ну, все же не $bits(int). Здесь мы имеем вариант применения

    $bits(expression)

    т.е., должно возвращать как раз кол-во битов, достаточное для представления результата выражения в скобках. Но, раз по словам ТС это не работает, проблема опять в особенностях/ограничениях реализации SystemVerilog в конкретном инструменте.

  12. 11 hours ago, BaN said:

    Но Platform Designer ругается на определение avs_s0_address:

    Есть ли какие-то способы обойти это ограничение?

    А если попробовать вот так:

    $bits(S_ADDR_ENUM.num())

    ?

  13. Хорошо, что хоть путем замены GDB server удалось продвинуться. Но я бы еще с OpenOCD в командном режиме поработал бы. Есть ощущение, что работать должно, нужно только правильно приготовить.

     

    Во всяком случае, опыт работы с OpenOCD пригодится.

  14. Ну, вообще, Eclipse + OpenOCD - это почти конструктор, очень настраиваемая и приспособляемая вещь. При условии, конечно, что ядро поддерживается аппаратным адаптером и OpenOCD. Надо вам повнимательнее посмотреть на все установки Eclipse для этого проекта.

     

    Почему, например, он у вас 2 раза останавливается (судя по логу)? И чему соответствуют адреса 0x00002c64, 0x00000114 ? Соответствующие вкладки Debug configuration можете показать?

     

    Для проверки по частям (чтобы понять, кто виноват - Eclipse/GDB или уже OpenOCD не так работает) можно попробовать пройти начальную последовательность (от ресета) с прямым ручным управлением OpenOCD (не задействуя Eclipse).

  15. 10 hours ago, Vasily_A said:

    я такой и купил на али. с описанием, что там ципрес и цплд, но там такое:

    половину денег с китайца назад забрал, но лучше от этого не стало...

    Сочувствую... С Али такое бывает.

    А что за главный чип у него запаян, ближе к USB-разъему? И как он распознается операционной системой (какие VID/PID), а также в Vivado и iMPACT'е? Как DLC9?

     

    По виду чип похож на FT232H (на них собраны HS2), но хотелось бы уточнить. А то чайные люди и на микроконтроллерах еще подобные адаптеры делают (Alter'овские адаптеры точно).

     

    А вообще на просторах Али должны быть и более честные клоны DLC9 - на Cypress. Только стоят немного дороже. Или вот, например, Waveshare DLC10.

     

    10 hours ago, Vasily_A said:

    проблема, откуда не ждал - взял на время родной красный DLC10, а он под 14.7 не хочет работать (в виваде все нормально). решение с сайта ксайлинкса не смог повторить, в импакте порт не видится.

    А что за решение? Какие сообщения выдает?

  16. 12 minutes ago, carver said:

    в принципе там все не сложно, единственная лажа, что-то у меня проц - постоянно отваливается от jtag ((
    если линейно там RAM считать, все ОК, а когда какой-то скриптик c остановками, то сотня-три циклов, и проц отваливается.
    скорость что 20Mhz что 200kHz - особой разницы нет.
     

    А что у вас за адаптер? И что из себя представляет соединение адаптер-плата? Даже для 1-2 МГц тактовой частоты может быть критично качество соединения.

  17. 23 hours ago, Vasily_A said:

    вот это печаль...

    мне он под цинк7010 нужен. пункт в меню импакта есть, а не нажимается.

    может как его перешить попытаться с другим еепромом? или может импакт кто лечил?

    Думаю, лучшее решение - приобрести клон Xilinx USB Platform Cable: типа такого. На случай срочной необходимости - они есть и в местных магазинах, торгующих разным добром с Алиэкспресс.

  18. 4 hours ago, Vasily_A said:

    может какие шаманские действия с этим Digilent JTAG-HS2 нужны, чтоб он с xc9572xl заработал?

    Нет, не поможет - это семейство не поддерживается (выглядит как ограничение софта, а не аппаратуры, но имеем ровно это...). Выдержка из Reference Manual:

    The JTAG-HS2 is capable of targeting the following Xilinx devices:
    1. Ordered List Item Xilinx FPGAs
    2. Xilinx Zynq-7000
    3. Xilinx CoolRunner™/CoolRunner-II CPLDs
    4. Xilinx Platform Flash ISP configuration PROMs
    5. Select third-party SPI PROMs
    6. Select third-party BPI PROMs
    The following devices cannot be targeted by the JTAG-HS2:
    1. Ordered List Item Xilinx 9500/9500XL CPLDs
    2. Xilinx 1700 and 18V00 ISP configuration PROMs
    3. Xilinx FPGA eFUSE programming
    

     

  19. 1. А что - такой прием, как инициализация массива, здесь не работает?

    2. В качестве синтезатора используется Synplify Pro? Так у него-то с документацией все должно быть в порядке - можно узнать обо всех вариантах работы с ROM и RAM (их там далеко не один только /* synthesis syn_romstyle = "lsram" */).

  20. 3 hours ago, misyachniy said:

    Сижу разбираюсь, как в китайском  Platform Cable определить ревизию

    А разве iMPACT (раз он готов работать с этим адаптером) не идентифицирует его тип? По идее должен.

×
×
  • Создать...