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

    

Burenkov

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

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

  • Посещение

Репутация

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

Посетители профиля

2 385 просмотров профиля
  1. При генерации этой коры создается тестбенч, посмотрите его код, станет понятнее. Я моделирую а ActiveHDL, все работает
  2. Почему не хотите взять IP Core от альтеры, которая с квартусом идет?
  3. Есть готовые темплейты, сам юзаю их с небольшим допилом, очень удобные https://www.intel.com/content/www/us/en/programmable/support/support-resources/design-examples/intellectual-property/embedded/nios-ii/exm-avalon-mm.html
  4. Начал разбираться в написании драйвера, но пока даже не могу собрать тот что у уважаемого 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 Как правильно собирать это?)
  5. Спасибо, изучаю. Жаль про драйвер написано очень мало:)
  6. Доброго дня коллеги. Стоит задача с помощью мастера в fpga записать достаточно большой массив данных в DDR память на стороне HPS и потом процессором его обработать. В данный момент сделал через буферную ончип память - мой мастер пишет в двух-портовый ончип, а программа в юзерспейсе запущенная на арме читает вручную через h2f_axi_master. Хочу выкинуть ончип память и писать напрямую в ддр через f2h_axi_slave или f2h_sdram0, но не очень понимаю как мне получить физический адрес от линукса. С линуксом работал очень мало, но подозреваю что простой malloc не поможет, т.к. физический адрес в памяти он не вернет, и еще не гарантируется непрерывность выделенного адресного пространства. Может у кого то был опыт подобный?
  7. Два дня мучаюсь, не могу понять в чем дело ) Использую 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 поменялся немного, в общем не могу запустить с тех пор. Откатывался на старую версию проекта, добивал изменения, пересобирал - все ок, но через пару недель опять словил такую же фигню... Очень хотелось бы разобраться в корне пробелмы, т.к. откат на струю версию это метод так себе. Прошу о помощи!
  8. Вот тут, страница 10-12, объясняется почему так не надо делать http://www.sunburst-design.com/papers/Cumm...8Boston_CDC.pdf
  9. Ему не нравится что у вас между регистрами которые формируют сигнал row_ready и регистром внутри синхронизатора есть логика. Добавьте либо триггер на выходе Buff_controller, либо в синхронизаторе сделайте вход для исходной частоты и защелкните data_async в регистр по его родной частоте прежде чем подавать на сдвиговый регистр.
  10. Делал очень давно на Vitrex 4, система рабочая) Readback делается с помощью ICAP, считанные данные прогоняются через файл маски, который генерирует сапр, затем считаем CRC и сравниваем с оригинальным. Чип при этом останавливать не надо
  11. PISO VHDL

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

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

    У вас timing simulation, сделайте behavioral С кодом все ок, должно работать
  15. Цитата(sf9 @ Mar 28 2018, 10:08) Спасибо! Очень интересная идея. Вы уже пробовали собирать подобный проект? Я в основном с альтерой работаю. Когда то давно я делал проект где ниос стартовал из ончип и потом запускалась "большая" прошивка из ddr