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

Burenkov

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о Burenkov

  • Звание
    Частый гость

Контакты

  • Сайт
    http://www.bjdevices
  • ICQ
    412085162

Старые поля

  • skype
    burenkov_s
  • Facebook
    http://www.facebook.com/burenkov.sergey
  • LinkedIn
    http://www.linkedin.com/pub/sergey-burenkov/61/b30/a77
  1. Начал разбираться в написании драйвера, но пока даже не могу собрать тот что у уважаемого Des333 на гитхабе. Скачал исходники линукса 4.5(такая версия на образе флешки), указываю в Makefile переменную с путями до исходников KDIR ?= /cygdrive/e/Users/bur/downloads/linux-socfpga-socfpga-4.5/ Получаю: $ make C:/intelFPGA/18.0/embedded/host_tools/gnu/make/H-x86_64-mingw32/bin/make -C /cygdrive/e/..../linux-socfpga-socfpga-4.5/ M=/cygdrive/e/Users/bur/projects/.../DE10_NANO_SoC_GHRD/software/drv modules make: *** /cygdrive/e/Users/bur/downloads/linux-socfpga-socfpga-4.5: No such file or directory. Stop. make: *** [default] Error 2 Как правильно собирать это?)
  2. Спасибо, изучаю. Жаль про драйвер написано очень мало:)
  3. Доброго дня коллеги. Стоит задача с помощью мастера в fpga записать достаточно большой массив данных в DDR память на стороне HPS и потом процессором его обработать. В данный момент сделал через буферную ончип память - мой мастер пишет в двух-портовый ончип, а программа в юзерспейсе запущенная на арме читает вручную через h2f_axi_master. Хочу выкинуть ончип память и писать напрямую в ддр через f2h_axi_slave или f2h_sdram0, но не очень понимаю как мне получить физический адрес от линукса. С линуксом работал очень мало, но подозреваю что простой malloc не поможет, т.к. физический адрес в памяти он не вернет, и еще не гарантируется непрерывность выделенного адресного пространства. Может у кого то был опыт подобный?
  4. Два дня мучаюсь, не могу понять в чем дело ) Использую Q13.1, поэтому, к сожалению, использую старый EPCS/EPCQx1 Flash Controller. Мой проект запускается с EPCQ, код ниоса копируется в ддр при включении питания. Вектор исключений настроен на ончип, вектор прерываний на Flash Controller по нулевому смещению. В BSP все тоже настроено как написано в доках. hex генерирую тоже как написано в мануалах: #Create a flash image of your FPGA configuration file sof2flash --input=hw.sof --output=hw.flash --epcq --verbose #Note: We are using --epcq instead of --epcs here for EPCQ devices #Create a flash image of your NIOS II .elf file elf2flash --input=sw.elf --output=sw.flash --epcs --after=hw.flash –verbose #Create the .hex image of your Nios II software nios2-elf-objcopy --input-target srec --output-target ihexsw.flash sw.hex Далее конвертирую все в JIC с помощью Convert Programming Files, загружаю флешку и все работает! Но как только я включаю шифрование на SOF файле, ниос перестает стартовать, либо стартует через минуту. Как я понимаю лоадер промахивается где-то с адресами и начинает молотить все подряд пока не попадет вдруг в начало программы, если вообще попадет. В MAP файле видно что страница с шифрованным sof немного больше по размеру, на пару десятков байт, может быть в этом причина кроется... Интересно что это не сразу началось, поначалу проект собирался нормально. Потом толи какие то смещения поменялись, толи размер компресированного sof поменялся немного, в общем не могу запустить с тех пор. Откатывался на старую версию проекта, добивал изменения, пересобирал - все ок, но через пару недель опять словил такую же фигню... Очень хотелось бы разобраться в корне пробелмы, т.к. откат на струю версию это метод так себе. Прошу о помощи!
  5. Вот тут, страница 10-12, объясняется почему так не надо делать http://www.sunburst-design.com/papers/Cumm...8Boston_CDC.pdf
  6. Ему не нравится что у вас между регистрами которые формируют сигнал row_ready и регистром внутри синхронизатора есть логика. Добавьте либо триггер на выходе Buff_controller, либо в синхронизаторе сделайте вход для исходной частоты и защелкните data_async в регистр по его родной частоте прежде чем подавать на сдвиговый регистр.
  7. Делал очень давно на Vitrex 4, система рабочая) Readback делается с помощью ICAP, считанные данные прогоняются через файл маски, который генерирует сапр, затем считаем CRC и сравниваем с оригинальным. Чип при этом останавливать не надо
  8. PISO VHDL

    Цитата(MAXHAX @ Apr 12 2018, 16:31) мне надо, чтобы перед 3-им time bar было пол такта в нуле что-то я вообще не могу придумать как это сделать, вообще под конец дня голова не варит У вас данные при загрузке 0x81, младший бит в 1. Сделайте его в 0 и тогда будет пол такта в 0
  9. PISO VHDL

    Цитата(MAXHAX @ Apr 12 2018, 16:20) теперь здесь идет не по clk, а по load идет, на скрине видно что по первому и 3-ему time bar они идут неверно load у вас асинхронный, так и будет. Хотите чтоб он был синхронный, перенесите его внутрь if (clk'event and clk = '1') Все достаточно прозрачно - если load - параллельная загрузка. если не load, то ждем клок. load главнее if (load = '1') then ... elsif (clk'event and clk = '1') ...
  10. PISO VHDL

    Цитата(MAXHAX @ Apr 12 2018, 15:59) В квартусовском симуляторе могу выбрать только timing и functional functional значит выбирайте
  11. PISO VHDL

    У вас timing simulation, сделайте behavioral С кодом все ок, должно работать
  12. Цитата(sf9 @ Mar 28 2018, 10:08) Спасибо! Очень интересная идея. Вы уже пробовали собирать подобный проект? Я в основном с альтерой работаю. Когда то давно я делал проект где ниос стартовал из ончип и потом запускалась "большая" прошивка из ddr
  13. Цитата(sf9 @ Mar 27 2018, 14:23) Сергей, используется загрузчик, который выгружает исполняемый код для McBlaze из Flash в DDR. Настройки в .ld файле (при компиляции) выполнены для работы из DDR. Кэширование задается при сборке платформы в настройках коры McBlaze, область памяти, как у DDR. Наверное две отдельные прошивки не нужны. Сделайте общее адресное пространство для обеих микросхем, и две сборки софта где просто разные регионы будут указаны. Бутлоадер у вас должен стартовать из ончип, проверять микросхемы и загружать тот hex который соответствует рабочей памяти. Ну и в коде MB нельзя будет писать в память по абсолютным адресам, только по смещениям внутри регионов
  14. Цитата(sf9 @ Mar 27 2018, 11:02) DDR используется MicroBlaze для кеширования. Вопрос состоит в том, можно ли программно выполнить выбор DDR, с которой нужно работать системе? Достаточно ли для этого одной прошивки или нужно организовать хранение 2х прошивок для первой или второй DDR? Микроблейз у вас работает на ончип памяти? Я имею ввиду код, стек, куча и тд? Обычно кэш это кусок ончип памяти, куда складываются данные из медленной DDR. Каким образом у вас кеширование производится?
  15. Здравствуйте. Попробуйте запустить квартус от админа. Еще куча проблем возникает если учетная запись на русском языке. По крайней мере на восьмерке я это словил. Цитата(AnatolySh @ Mar 13 2018, 18:12) Доброго всем! Прошу подсказать, куда смотреть в простой, вроде-бы, ситуации: пытаюсь скомпилировать библиотеки по руководству, но вместо успешного завершения получаю это CODEInfo: Changing the current directory to output directory C:/intelFPGA/16.1/active_hdl_libs .. Info: Using Path C:/Aldec/Active-HDL-10.3-x64/BIN that was set in EDA Simulation Library Compiler Options Info: Generating commands to compile library altera_ver ... Info: Generating commands to compile library lpm_ver ... Info: Generating commands to compile library sgate_ver ... Info: Generating commands to compile library altera_mf_ver ... Info: Generating commands to compile library altera_lnsim_ver ... Info: Executing command file containing library compilation commands Info: VHDL/Verilog/EDIF/SystemC Simulator build 10.3.3558.6081 Info: © 1997-2016 Aldec, Inc. All rights reserved. Info: License Number 0 Info: VSIMSA: Configuration files: `C:\Aldec\Active-HDL-10.3-x64\vlib\library.cfg', `C:\Aldec\Active-HDL-10.3-x64\BIN\vsimsa.cfg' Info: Welcome to VSIMSA! Info: This message was printed from `startup.do' macro file. Info: alib -global altera_ver "C:/intelFPGA/16.1/active_hdl_libs/verilog_libs/altera_ver" Info: "attrib" не является внутренней или внешней Info: командой, исполняемой программой или пакетным файлом. Info: "attrib" не является внутренней или внешней Info: командой, исполняемой программой или пакетным файлом. Error: ALIB: Error: Cannot create library Info: temp_simlib_comp.tmp(2) Script: Break at line 2. Info: onerror { exit }