Jump to content

    

R6L-025

Свой
  • Content Count

    84
  • Joined

  • Last visited

Community Reputation

0 Обычный

About R6L-025

  • Rank
    Частый гость
  • Birthday 06/13/1991

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

1708 profile views
  1. Под 18.1 запускал. Но и пробовал 19.1, там что-то похожее было, хотя подробно не ковырял вывод компилятора. Ну да, проблематично, если от версии gcc зависимость. У меня 9.3
  2. Доброго времени суток. Решил посмотреть что же из себя представляет intel HLS... и что то сразу не задалось. Попробовал, следуя getting starting guide скомпилить простой счетчик из их примеров, на что i++ выдал: /usr/lib/gcc/.../9.2.1/.../bits/stl_function.h:424:10: error: use of undeclared identifier '__UINTPTR_TYPE__' Причем можно хоть весь код кроме включения хедера "#include "HLS/hls.h" закоментить, ситуация не меняется. Запускаю под Arch'ем. Скрипт из состава hls инициализирующий пути к библиотекам запускал. Никто не сталкивался? Гугл из толковых ссылок только форум xilinx предложил, но и там конкретных ответов не нашел. Ну и несколько не к теме топика вопрос - кто что использует из высокоуровневых средств на подобии HLS? Хочется понять насколько вообще удобно и приемлемо по оверхеду использование таких средств. Причем именно для создания отдельных компонентов, корок. Смотрел в сторону openCL, но там как-то вообще не в ту сторону. Как я понял больше в ускорители, а не в самостоятельные модули. Chisel... как то уж эзотерически немного выглядит, да и не понятно на сколько он производителен
  3. dtb файл Вы же изменяли? Т.е. на старой плате убирали описание usb? А ядро кросскомпилятором собираете? Может (если есть возможность) попробовать на плате собрать?
  4. А регистр в который пишете, он расположен в HPS, или через мост в FPGA пишется? Я к тому что нет возможности посмотреть сигналтапом на процесс записи? Может waitrequest бесконечно висит, или еще что...
  5. Доброго времени суток! Ситуация: есть проект написанный на С. Есть желание использовать Sphinx для документирования. Разномастные README и пр. файлы документации уже перенес под него. Вопрос: как прикрутить генерирование документации из исходников? Смотрел как реализовано в исходниках Linux ядра, но запутался в их скриптах и Make файлах их вызывающих. Из офф. документации на сам Sphinx тоже не сильно много понял. Может кто опытом использования в проекте поделится?
  6. Доброго времени суток! Встала задача по некоторому событию грузить из под UserSpace прошивку в FPGA из набора прошивок лежащих на флешке. Все вроде бы хорошо, вот только в общем случае прошивки могут быть не совместимы на уровне конфигурации прелоадера (I/O мультеплексоры, , PLL, шины и пр). Собственно сам вопрос - что делать и как быть? Я вижу примерно такой вариант: имеем на флешке набор прошивок + набор соответствующих им бинарников прелоадеров. Находясь в US получаем команду сменить прошивку. Переписываем прелоадер под эту прошивку в нужный раздел на флешке, перезагружаемся. В скрипте бутлоадера читаем содержимое раздела с прелоадером (допустим, в конец прелоадера мы дописали сигнатуру говорящую о том какую прошивку хотим). В соответствии с прочитанной сигнатурой выбираем нужную прошивку, загружаемся... готово. Вот только не совсем понятно как из раздела с проелоадером считать данные из нужного места в u-boot. Вроде как можно через mmc read скопировать в свободное место в RAM, оттуда уже вычитать и сравнить с сигнатурой, но пока не вышло. Никто не сталкивался с подобным вопросом?
  7. Я несколько по другому делал, параметром в uboot'е указывал ОС использовать не всю память, а лишь первые, например, 1.8 ГБ памяти из 2 доступных физически на плате. В результате оставались 200 МБ неиспользуемой памяти вверху адресного пространства. Дальше делал отображение этого кусочка на виртуальную память через /dev/mem и работал как с обычным буфером. Никаких проблем с мусорными данными не замечал.
  8. Посмотрите тут: https://rocketboards.org/foswiki/view/Documentation/EmbeddedLinuxBeginnerSGuide и тут: https://github.com/digibird1/Cyclone-V-SoC-system_Base Вторая ссылка, как я понял, как раз Ваш случай
  9. Nick, Спасибо! Вот про bin2flash я и не подумал. Опробую
  10. Да вот тут я и встретил загадочную фразу "Boot Images The procedure described here assumes you have a Nios® II boot image in the format described in the “Boot Images” section." Вообще, по аналогии с другими способами, как я понял, можно использовать скрипт для создания файла из экземпла "advanced boot copier". Но с ним тоже не особо вышло. Там алгоритм подразумевает что первые 32 байта заголовок (для external boot не используется), дальше сразу начинаются записи вида "len0, addr0, data0, len1, addr1, data1...". Если посмотреть на сформированные скриптом *.srec и *.bin файлы - то в первых 4 байтах хранящих длину сегмента (вроде как) находится число равное нескольким миллиардам. Что-то не так. Пока не разобрался почему.
  11. Доброго времени суток! Возникла задача загрузки софта в NIOS из HPS (работающих на одном кристалле). Нашел у Альтеры в "Embeded design handbook" раздел с примером как из одного проца залить код в Nios проц. Все хорошо, вот только там предполагается неким способом получить ,как в документации его называют, "распакованный" elf, представляющий из себя бинарник с размещенными некоторым способом сегментами. Как это сделать... В разделе 5.3.9.3.1 "Boot Images" есть всего 2 строчки рассказывающие что информацию о получении файла см. в разделе "Boot Images". Сепульки какие-то. Кто-нибудь может подсказать какие доки читать, или как получить требуемый формат?
  12. Да, verilog, vhdl... Берете описание портов pll корки, подключаете выходы корки к портам Вашего модуля. Вообще, лучше не делитель клока использовать, а в корке pll создать второй клок, частоту которого настраиваете как вам нужно. Както так: module my_pll ( input wire in_clk, output wire out_clk0, output wire out_clk1 ); pll pll_inst ( .inclk0 (in_clk ), .c0 (out_clk0), .c1 (out_clk1) ); endmodule // my_pll Потом назначаете номера пинов к портам модуля. Можно вручную в *.qsf скрипте, но проще будет через квартусовский pin-planner. Посмотрите на даташит или иную документацию на плату, там должны быть указаны напряжения банков ввода-вывода. Назначаете согласно этому интерфейс, например, "3.3-V LVCMOS"
  13. Ну тогда попробуйте поиграть с директивами. Quartus при синтезе проводит оптимизацию, и может попросту решить что использовать триггеры вместо памяти целесообразней для такого малого объема
  14. А, еще есть quartus templates. В выпадающем меню Edit->Insert Template есть шаблоны кода и директив (чтоб это меню появилось нужно чтоб в квартусе было открыто окно встроенного редактора кода). Там, как раз, есть шаблоны работы с памятью.
  15. А почему эту самую корку использовать нельзя? Если хотите без корки реализовать память - посмотрите главу Recommended HDL Coding Styles в quartus handbook. Там есть примеры кода которые реализует память которая будет синтезирована именно на блоках памяти. Еще есть директивы самого Quartus позволяющие указать что вы хотите от него. Попробуйте погуглить по слову "ramstyle".