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

chipovod

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

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

  • Посещение

Сообщения, опубликованные chipovod


  1. Вы уже опробовали 13.4 с LwIp 1.4.0? Стабильнее работает?
    Я только проверил, что оно компилируется и запускается - соеднинение есть. Однако, кажется не все настройки lwIP 1.4.0 были перенесены в BSP Xilinx. По крайней мере NO_SYS_NO_TIMERS я там не нашел. IP core axi_ethernet и драйвер для нее тоже надо обновлять до последней версии в ISE 13.4.

     

    А по поводу стабильности, как выяснилось, сильно влияют настройки lwIP. По крайней мере, я подобрал такие, при которых 1.3.2 работает у меня стабильно. Наверно и 1.3.0 тоже бы так работало.

     

  2. В UCF файле был прописан самый обычный констрейн на входной тактовый сигнал :

    NET "CLK" TNM_NET = sys_clk_pin;
    TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 200000 kHz;

    В какой-то момент времени я увидел, что в отчете Place and route report -> Timings result он то присутствует, то нет. Причем, если его не было, никакой информации о причине его исчезновения (напрмер, в результате оптимизации цепи) в отчетах я не нашел.

     

    Не было времени разбираться, что и как: плюнул на это дело и написал по старинке (Xilinx говорит, что этот метод устарел и не рекомендуется). Теперь констрейн не пропадает.

    NET "CLK" PERIOD = 5 ns;

     

  3. По теме: были аналогичные проблемы при пошаговой отладки программы в MicroBlaze. Условные операторы делали неверный переход, происходил переход на совсем другое место кода, счетчики не инкрементировались, обнаруживались неизвестные инструкции, иногда просто elf файл не загружался - не проходил verify. Код и данные размещались в DDR3 памяти.

     

    Проверка показала, что данные в DDR3 бьются по черному. Проблема оказалась в констрейнах. ISE втихоря игнорировал констрейн на глобальный клок системы. После того как констрейн подтянулся - полтергейст сразу пропал.

  4. Полез повторять эксперимент и кажется разобрался в чем дело.

     

    При записи/чтении в мою корку из MicroBlaze данные проходят через кэш и с порта M_AXI_DC попадают в мою корку. Если я отключаю кэш, транзакции на M_AXI_DC пропадают. Подключил к своей корке порт M_AXI_DP от MicroBlaze, отключил кэширование адресов корки и все заработало. Время записи в мою корку сократилось в несколько раз после отказа от flush. Но осталось не понятным почему при отключении кэширования данные на M_AXI_DC не проходят? Ведь это основной порт для выхода на AXI шину.

  5. Да - здесь.

    Что значит "Пробовал так делать - запись в память вообще не проходит" ?

    У меня к AXI шине подключена корка, которая имеет внутренню память и, соответственно, диапазон адресного пространства для чтения/записи. При включенном Dcache запись/чтение из MicroBlaze хорошо работает, но приходится делать постоянный Flush кэша, чтобы заставить MicroBlaze обновить данные в корке. После исключения диапазона адресного пространства корки из кэширования и попытке чтения/записи обращений к корке по AXI шине нет. Из окошка Memory в Eclipse (среда SDK) по всему адресному пространству - нули и попытка записать туда что-либо ни к чему не приводит. Данные не изменяются, обращений к корке нет.

  6. Никак.

    Надо заранее указывать (еще перед синтезом FPGA) диапазон памяти который будет под кешем работать.

     

    Это, я так понимаю здесь задается? Пробовал так делать - запись в память вообще не проходит. Сейчас заметил чекбокс Use Cache Links for All Memory Accesses. Он меня спасет?

    2YMycuqD.png

  7. Только вот загвоздка в том с какого адреса начинаются кэш данных и команд в BRAM, среда сама как-то распределяет а вот как неизвестно.

     

    В программе кэш включается функцией microblaze_enable_icache(), но помимо этого нужно его проинициализировать, а вот для этого нужно знать адреса кэша в BRAM.

    Вы хотите просто включить кэш инструкций или что-то другое? У меня в программе для этого две функции по умолчанию. Работает, никто не жалуется.

        microblaze_invalidate_icache();
        microblaze_enable_icache();

     

    А у меня другая проблема: как отключить кэширование данных для части адресного пространства MicroBlaze. Подскажите, кто знает.

  8. Ну вот.. а я даже не знаю что такое констрейны, если не сложно, поясните пожалуйста :rolleyes:
    Ах, какой конфуз. Я поражен до глубины плисоводческой души! (Шутка, не воспринимайте всерьез :beer:)

     

    Вам нужен Xilinx Constraints Guide http://www.xilinx.com/support/documentatio...inx13_2/cgd.pdf (для ISE 13,2). Там все толково написано. Хотя бы глава 3 Xilinx Constraint Strategies.

     

    Если кратко, то Вы должны, как минимум, задать для ISE требования по частоте всех входных тактовых сигналов, которые используются в Вашем проекте, а также для других сигналов, если в этом есть необходимость.

     

    Делается это в файле с расширением UCF. Там же задаются расположение пинов ПЛИС и соответствие между сигналами и пинами. И если Вы пишите, что Ваш модуль иногда не выдает сигналы наружу, возможно Вы не задали такового соответствия. С другой стороны раз Ваш проект все-таки иногда работает, значит таковой файл имеется и подключен к проекту, вот в нем и надо сочинять.

     

     

     

  9. Похоже на нарушение констрейнов, я тоже похожую картину Репина у себя недавно наблюдал. Какие Вы констрейны задавали для системы и для глобального клока(ов) в частности? И успешно ли они выполнились?

  10. Легко!

     

    Если Вы используете для доступа к памяти корку axi_s6_ddrx, то там прямо такой человекоприятный gui, где можно и банк выбрать и тип микросхемы и все остальное. А ядро Microblaze настраивать не надо, разве что проверить скрипт для линкера, куда какой код загружать.

  11. Здарствуйте уважаемые коллеги. Есть следующая небольшая проблемка. Необходимо в ROM-память в Quartus-е записать 1024 слова.

    Очень уж нехочется делать это руками. Не подскажет ли кто нибудь, можно ли каким нибудь другим способом импортировать значения 1024 слов в mif файл.

    Например из Matlab или Exel. Заранее благодарен!

    А чем Вас не устраивает код Матлаба предыдущего поста?

     

  12. Спасибо, Rob

    Для начала посмотрел что и как сделано на AXI в Coregene и EDK - там почти все корки на AXI открыты.
    Ага, я таким же образом испек себе слейв на AXI, из корки axi_bram_cntrl.

     

    В EDК есть заготовки корок для создания своей периферии с AXI шиной.
    А где эти заготовки?

     

    На сайте ARM есть модуль assertions на SV для AXI
    Спасибо, покачал сей модуль на сайте ARM, и увидел там, что для верификации AXI они предлагают некий AXI Adaptive Verification IP (AVIP) http://infocenter.arm.com/help/topic/com.a...vip_r0p0_to.pdf Тоже некий пакет тестов для симуляции. Может кто знает где его можно раздобыть??

     

    доки на BFM изучаю, Xilinx как всегда радует своей настольной документацией.

  13. Помнится раньше у Xilinx были софтовые тесты для памяти. Может попробовать маленький софтик в BRAM, а DDR3 затестировать насмерть?
    Проблема в том, что ошибки я вижу так сказать не вооруженным глазом, но бывает так, что целый день работаю без ошибок. Все зависит от везения в разводке.

     

    Вообщем подозрение с самой микросхемы DDR3 памяти и сырости MCB Спартана я решил пока снять. Плата SP-605 Rev.D, микросхема оказалась все-таки Micron, та самая что на схематике.

     

    Пока лечил свой проект тем, что лочил в PlanAhead кусок с axi_ddr коркой, это работало, но при каждом серьезном изменении проекта эту работу приходилось делать заново, иначе Router не мог развести проект.

     

    Сейчас я временно облегчил проект до 60% - проблема исчезла.

     

     

  14. Здравствуйте,

     

    кто делал реализацию AXI Master просветите каким путем шли. Есть ли готовые тест-бенчи для отладки??

     

    В обозримом будущем надо будет делать Master под Spartan-6, пока довольствуюсь слейвом.

     

    Из реализации мастеров пока нашел лишь простейший пример от Xilinx ( http://www.xilinx.com/support/answers/37425.htm ) и корку от opencores, еще в ней не разбирался.

     

     

     

     

     

  15. Да, после ковыряния по поиску я тоже набрел на фирму semiconn и ее поделки. Однако меня смущает роговость и копытовость данной фирмы. Даташитов на сайте нету, хотя ее диллер Ineltek даташиты выкладывает, правда не на все, и не полные. Микросхем у поставщиков тоже нету, только под заказ в паре-тройке фирм. Что-то я боюсь закладываться на этого кота в мешке.

     

    А кто-нибудь пробовал изделия этой фирмы?

  16. Не встречал в даташитах на Spartan-3 ограничения потребления на корпус микросхемы. Предположу, что потребление ограничивается подогреванием кристалла ПЛИСины до красна, точнее до 125С по даташиту. А при каком количестве 16ма выходных пинов это наступит можно примерно рассчитать в утилитке Xpower. Понятное дело, что это зависит от многих факторов: теплоотвод, частота переключения пинов и логики, заполненность кристалла.

  17. Использовал корку FFT в Quartus 9.0, давно дело было. Долго не мог запустить в режиме FFT->IFFT. При подаче на вход только real сигнала на выходе FFT имел не симметричный спектр. Половинки были очень похожи, но не идентичны, видимо какие-то фокусы округления. В результате на выходе получал кривой синус (на входе был тоже синус), вроде похожее на картинку выше. У меня сложилось впечатление что эта корка предназначена для работы с комплексным сигналом.

  18. Добрый день. Собираюсь поработать с 5576хс1, пока только начинаю вникать в тему... подскажите, подходит для работы с ней usb blaster? по даташиту его, вроде он поддерживает флекс10к, но хз...
    Девайс успешно программится USB Blasterom, краткий отчет 7-ью постами выше в этой теме.

     

    Открываете Квартус. Ищете девайс 5576хс1. Если не нашли, дальше по тексту.

    :bb-offtopic: Все правильно, только нужно открывать Quartus Voronezh Edition :)

     

     

  19. Кажется он не понял, что это корка. У вас стоит опция в синтезе read cores, с указанием папки, где корки искать? Ну и посмотреть на строку 86 так и распирает.

  20. Здравствуйте!

     

    Необходимо принять сигнал DVI от видеокарты (dual link) и разветвить его на 2 выхода (тоже dual link). Поискал такие микросхемы у Analog Devices и TI, нашел только повторители, свичи и трансмиттеры/ресиверы.

     

    Как такое сделать? Неужели нужно городить огород из ПЛИСины и обвешивать ее трансмиттерами/ресиверами??

  21. 2 Чиповод

    у меня SP-605 с ES чипом, память микроновская. DDR3 пробовал давно и без Blaze-а, но бегало без ошибок :laughing:

    Это хорошо, а то народ жалуется, что в инженерных сэмплах MCB сырой был. А как вы кстати тестировали на ошибки?

     

    Я тут разбираюсь со своими зверушками. Clock для памяти среда XPS предложила мне сделать без глобальных клоковых буферов. Я, в таком случае, решил зажать его констрейном MAX_SKEW. Это помогло, из 8 разводок - 7 оказалось удачных (раньше было примерно 50 на 50). Но нужно, конечно, окончательно разобраться.

     

  22. Использую доску SP-605, по схематику на ней стоит MT41J64M16LA-187E. На самом деле, кажется что-то другое, по крайней мере логотипа микрона не видно. Кристалл на ней со спидгрейдом -3, НЕ инженерный сэмпл, слава Богу.

×
×
  • Создать...