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

Reffum2

Участник
  • Постов

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

  • Посещение

Весь контент Reffum2


  1. Вопрос общий. Какие варианты реализации существуют. Их плюсы и минусы. Известные мне: Linux. Не использовал. lwIP. Использовал. Но не раз читал, что он плохо подходит для высокой нагрузки Аппаратная реализация. Мне известны только реализации от Xilinx в виде IP ядер. Не пользовался, так как дорогие.
  2. Дополнительный вопрос: Почему Linux? На нем быстрее компиляция идет?
  3. Общий вопрос по всему ПО Xilinx. Под сборкой я имею ввиду процесс Synthes/Implementatoin, хотя мой вопрос конкретно о Implementaion. Если у меня есть проект, он уже собран. Изменилась какая-то маленькая часть. Если я запускаю Implementation, то весь проект пересобирается. На это уходит много времени и при этом могут ухудшиться какие-то временные параметры, даже перестать выполняться ограничения. Какие существуют методы чтобы этого избежать? На этапе синтеза можно сделать так, чтобы отдельный модуль проекта синтезировался в отдельный NGC Netlist и повторно не синтезировался. Но на этапе Implementation(MAP и Place & Route)? Я знаю о 2-х: smartguid и введение топологических ограничений, когда какой-то модуль жестко фиксируется в ПЛИС. Я не смог разобраться, как именно работает smartguid, если я ее просто запускаю, то не вижу чтобы время сборки проекта уменьшилось, и временные параметры тоже могут ухудшаться. Коллеги по работе не рекомендуют использовать топологические ограничения, так как по их мнению это ухудшает временные параметры. Если у кого-то есть мнения на этот счет, поделитесь.
  4. Я запуская XMD из командной строки. Подключаюсь к процессору. При подключении создается gdbserver с портом TCP 1234. К этому порту подключаюсь из Eclipse.
  5. Столкнулся со следующей проблемой при использовании функции malloc() в программе. ПЛИС Virtex-6, ISE 14.7. Создан проект в EDK 128 Кб памяти, в настройках сборщика 8 Кб отдано куче(heap). В программе вызывается функция malloc(). При первом старте программы вызов происходит нормально, память выделяется нормально. После сброса МП(внешним RST), программа стартует, но вызов malloc() завершается неудачей. Почему?
  6. Проблема решилась установкой порога BOR в VBOR3
  7. Простите, я не очень понял. Я знаю, что есть встроенная система, которая удержит МК в сбросе, пока питание не в норме, я пробовал регулировать ее пороги(через OPT bytes), но это не помогает. Также было замечено, что питание на МК при срабатывании Hard Fault нарастает очень медленно, за 500 мс до 3.3 В. На выводе NRST конденсатор не установлен(хотя это рекомендовано по datasheet).
  8. При подаче питания на МК он переходит к обработчику Hard Fault, FORCED, то есть до этого несколько раз было исключение Bus Fault. Происходит это крайне редко, почти сразу после старта программы(видно что выполнялись какие-то инструкции из __main_init). Это происходит после того как питание сначала сняли, а затем опять включили через короткое время. Поделитесь, хотя бы общими соображениями, почему такое может быть. Проект собирается в Keil 4.53. Было также замечено, что при этом цифровое питание МК VDD нарастает необычно медленно, за 500 мс. На выводе NRST конденсатор не установлен(хотя это рекомендовано по datasheet).
  9. Конкретно, можно ли защититься от метастабильности, если на вход ПЛИС приходят асинхронные сигналы, и затем идут на внутренние регистры? Любым способом, то есть, если в блоках IO ПЛИС есть какие-то триггры Шмидта или что-нибудь еще?
  10. Конкретно, используется Kintex-7. Слышал, что регистры ПЛИС обладают защитой от метастабильности и синхронизатор не нужно.
  11. Проектируется система на Kintex-7. Используется ПО Xilinx ISE 14.7. Проект создан в Plan Ahead, кроме того, создана МП Microblaze система в XPS, как подмодуль. В проекте используется UART, с двумя выводами из ПЛИС - RX и TX. В XPS системе для обмена по UART использован axi_uart16550. Синтез проходит нормально, но MAP выдает ошибку и предупреждение: ERROR:Pack:2530 - The dual data rate register "system_i/axi_uart16550_0/axi_uart16550_0/XUART_I_1/UART16550_I_1/NO_EXTERNAL _XIN.ODDR_GEN.BAUD_FF" failed to join an OLOGIC component as required. WARNING:Pack:2780 - The register "system_i/axi_spi_0/axi_spi_0/AXI_SPI_CORE_INTERFACE_I/SPI_MODULE_I/OTHER_RAT IO_GENERATE.MISO_I_REG" has the property IOB=TRUE, but it did not join an IO component because it is not connected to any IO element. Я понимаю, что это значит, что в модулях axi_uart16550 и axi_spi используются элементы из IO(ODDR, OLOGIC, триггер), а появились они из-за того, что моя XPS система не является системой верхнего уровня и ее входы/выходы не подключены к IO. выводам(подключены, но через промежуточные цепи). Как это исправить?
  12. Используется Xilinx Kintex-7. В составе системы есть модуль AXI_UART16550. Я задал для него PBlock. Ресурсов выделил достаточно, но в статистике этого компонента сказано, что ему нужен 1 IO. Когда я выполняю MAP, появляется ошибка: ERROR:Pack:2530 - The dual data rate register "system_i/axi_uart16550_0/axi_uart16550_0/XUART_I_1/UART16550_I_1/NO_EXTERNAL _XIN.ODDR_GEN.BAUD_FF" failed to join an OLOGIC component as required. Если я правильно понимаю, это вызвано тем, что в PBlock, назначенный данному модулю не включен IO. Вопрос, как включить IO в PBlock, или, возможно, как-то иначе указать, что он нужен данному компоненту, так чтобы остальная логика этого модуля осталось в тех же ресурсах, которые я выделил PBlock-у?
  13. В Microblaze SDK входит драйвер EEPROM LibXil Isf. Но в нем поддерживаются только микросхемы AT45. Возможно ли использовать его для AT25?
  14. В компоненте AXI Lite IPIF есть шина адреса на стороне IP Bus2IP_Addr. Что именно выставляется на ней, когда происходит чтение/запись по шине AXI Lite, полный адрес записи/чтения или какой-то модифицированный?
  15. В смысле, если я определяю uint32_t *register = (0x44000000); то гарантировано обращение к нему будет только сразу словом? Интересно, а в каком стандарте это описано?
  16. Делается система на Xilinx, Kintex-7. Используется МП система на Microblaze. Шина AXI4-lite. К этой шине подключена периферия(моя), которая допускает запись только по словам 32 бита. Если попробовать записать туда по 8 или 16 бит, возникнет ошибка(периферия не обрабатывает Byte Enable). Для компиляции используется GNU C Microblaze. Как правильно в программе описать доступ к этому пространству памяти, чтобы компилятор знал, что писать туда можно только по 32 бита зараз?
  17. Проектируется система на ПЛИС Xilinx Kintex-7. Она состоит из процессорной системы, разработанной в XPS. Один из модулей написан мной, как XPS перифирия. Он будет меняться, остальная система - нет. Я бы хотел сделать так, чтобы при моего модуля синтез/трассировка/размещение по-новой для остальных блоков МП системы не производились. Технически в этом проблемы нет, так как весь проект не занимает и 10 % ресурсов. Подскажите, как это правильно сделать, то есть как сделать так, чтобы вся МП система(Microblaze процессор и вся его перефирия кроме одного моего модуля) раз и навсегда была зафиксирована в ПЛИС, а менялся только 1 мой модуль?
  18. Необходимо сделать генерацию произвольной последовательности импульсов на ПЛИС. Последовательность задается кол-вом тактов на которых импульс будет равен 1 и 0, например 1 такт 1 3 такта 0 5 тактов 1 2 такта 0 ... Как это лучше сделать? То есть, как сохранить в ПЛИС эту информацию и как ее отрабатывать? Используется Xilinx Kintex-7, частота тактов ~ 100-500 МГц
  19. Вопрос общий. Из-за чего может возникать слышимый свист в катушках индуктивности?
  20. Как расчитать сопротивление переходного отверстия на печатной плате и допустимый ток через него?
  21. А можно узнать, как можно достать исходники Microblaze?
  22. При создании проекта для Microblaze в BSP генерируется библиотека языка C. Ее недостаток - размер, printf, например, занимает 50 kB. Существуют ли доступные альтернативы этой библиотеке? Я зная, что в этой библиотеке есть некоторые упрощенные и меньшие по размеру функции(xil_printf например), но я хочу перенести уже имеющийся работающий код на Microblaze и не хотелось бы его менять.
  23. А разве исходники MCS доступны? У меня есть только исходники для симуляции, в которых разобраться слишком сложно.
  24. Это-то понятно, что на ПК я его и не проверю. Но какая-то часть ошибок все же будет устранена.
×
×
  • Создать...