Jump to content

    

Lixlex

Участник
  • Content Count

    52
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Lixlex

  • Rank
    Участник
  • Birthday 01/24/1990

Информация

  • Город
    Array

Recent Profile Visitors

1568 profile views
  1. Возможно будет полезно: https://github.com/lucasbrasilino/net2axis https://fpga-systems.ru/publ/raznoe/interfaces/skript_net2axis/26-1-0-100
  2. Здравствуйте. Во сколько примерно обойдется производство мелкой партии (100-500 шт) подобных велофонарей? Только механические части, без электроники.
  3. А еще лучше не мучаться с генерацией ip-корок fifo, а вместо этого использовать XPM
  4. Вариантов куча. Из того, что сходу пришло в голову: Поднять Ethernet и слать даные UDP-пакетами Взять IP-ядро JTAG2AXI и подключить его к двухпортовой памяти. Использовать UART, если нет требований к скорости
  5. В этом случае мы лишь в 2 раза(и то не факт) выигрываем по утилизации, но в 64 раза проигрываем в пропускной способности.
  6. А с какой целью интересуетесь? Четких требований пока нет, я хотел бы выяснить, есть ли еще возможность для оптимизации на уровне lps-функций. Пробовал имплементацию под 325й кинтекс - целиком влезла одна E-функция.
  7. Если пойти тривиальным путём получается следующая картина: S-функция. На один байт входного вектора расходуется одна ячейка BRAM. Двухпортовой памяти соответственно требуется в два раза меньше. P-функция для FPGA бесплатно L-функция - 2000 lut. В процессорных реализациях используют таблицы предвычислений L и S функций: https://github.com/drobotun/stribog_precalc/blob/master/gost_3411_2012_const.h Но для финального вычисления требуется аж 64 обращения к таблицам, так что для FPGA этот метод выглядит бесполезным. Есть ли другие пути оптимизации этого алгоритма или вся оптимизация возможна только за счет потери пропускной способности?
  8. Был ли у кого опыт симуляции DDR4 EMIF ядра? Запустил тестбенч из example design, есть несколько вопросов. 1. Согласно таблице из ug-20115.pdf для 4х-рангового модуля цикл симуляции составляет 1 день. Опция skip calibration значительно сократить время симуляции не помогла, симулируется по прежнему в районе суток. Как получить заявленные ~25минут? 2. Во время симуляции линии DQ, DQS/DQS_n на временных диаграммах ModelSim постоянно в Z-состоянии. Однако тесты проходят, в логах появляются записанные/прочитанные данные. Как вообще такие чудеса возможны? 3. Был ли у кого-нибудь опыт использования Verilog-модели памяти Micron? Хотелось бы заменить интеловскую модель на микроновскую. https://www.micron.com/products/dram/ddr4-sdram/part-catalog/mt40a256m16ge-083e-aut
  9. Благодарю за ответ! А не подскажите в каком документе можно уточнить этот момент? Если действительно данные с одинаковым тегом приходят в строго определенном порядке это немного упростит жизнь. А не затруднит ли Вас подробнее рассказать про заполнение памяти? Из ядра выходит 256-битная axi-stream, соответственно память должна быть аналогичной разрядности. Учитывая, что граница дробления меньше разрядности шины данных, данные подаваемые на вход памяти нужно как-то динамически сдвигать. И всё это дело должно происходить на 250 МГц. Как это сделать не могу представить. Упростит ли мне задачу режим Address Aligned? Правильно ли я понимаю, что в этом режиме, если первый пакет имел валидные данные с 0 по 2й DWORD, то в следующем пакете валидные данные пойдут начиная с 3го DWORDа?
  10. Спрошу здесь, дабы не создавать отдельный топик. Есть IP-ядро UltraScale FPGA Gen3 Integrated Block for PCI Express. Необходимо обращаться к памяти, расположенной за root complex. Правильно ли я понимаю, что на одиночный запрос Memory Read Request может прийти как целый одиночный пакет с данными, так и несколько "дробленных", причем в произвольном порядке? Какая будет граница данных при дроблении? Как правильно организовать сбор принятых данных?
  11. Вы бы для начала описали используемый инструментарий(СПАР, семейство FPGA, симулятор), иначе о чем вообще говорить?
  12. Добрый день! Все верно описали. В простейшем случае используют IP-ядро. Для Xilinx это memory interface generator. Из ядра торчит пользовательский интерфейс - шина AXI 4 и физический интерфейс к памяти. Собственно через AXI 4 ядру передаются команды на чтение и запись. Для вашей платы должен быть reference design с DDR, советую посмотреть. https://www.xilinx.com/support/documentatio...kits/xtp047.pdf
  13. Оффтоп: А чем Вас не устроил способ настройки ILA через визард setup debug? Обычно я в отдельной секции кода дублирую исследуемые цепи(для уникальности к имени добавляю какой-нибудь выделяющийся префикс) и помечаю новые цепи директивой mark debug. Таким образом убиваю сразу двух зайцев: 1) Имеем доступ к выходам исследуемых регистров(как известно, если пометить регистр директивой mark debug это нам ничего не даст) 2) После отладки удаляем debug-секцию и получаем чистый код В качестве недостатка способа могу отметить необходимость написания двух строк кода на одну исследуемую цепь(если речь идет о verilog).
  14. Коллеги, досталась мне плата HTG-707 от хайтек глобал. К сожалению без документации. Писал в саппорт - благополучно отфутболили. Может у кого есть юзергайд на эту плату? Поделитесь пожалуйста.