-
Постов
85 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные chipovod
-
-
В 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;
-
По теме: были аналогичные проблемы при пошаговой отладки программы в MicroBlaze. Условные операторы делали неверный переход, происходил переход на совсем другое место кода, счетчики не инкрементировались, обнаруживались неизвестные инструкции, иногда просто elf файл не загружался - не проходил verify. Код и данные размещались в DDR3 памяти.
Проверка показала, что данные в DDR3 бьются по черному. Проблема оказалась в констрейнах. ISE втихоря игнорировал констрейн на глобальный клок системы. После того как констрейн подтянулся - полтергейст сразу пропал.
-
Кстати, сообщаю что в BSP ISE 13.4 обновился lwIP до 1.4.0
-
Полез повторять эксперимент и кажется разобрался в чем дело.
При записи/чтении в мою корку из MicroBlaze данные проходят через кэш и с порта M_AXI_DC попадают в мою корку. Если я отключаю кэш, транзакции на M_AXI_DC пропадают. Подключил к своей корке порт M_AXI_DP от MicroBlaze, отключил кэширование адресов корки и все заработало. Время записи в мою корку сократилось в несколько раз после отказа от flush. Но осталось не понятным почему при отключении кэширования данные на M_AXI_DC не проходят? Ведь это основной порт для выхода на AXI шину.
-
Да - здесь.
Что значит "Пробовал так делать - запись в память вообще не проходит" ?
У меня к AXI шине подключена корка, которая имеет внутренню память и, соответственно, диапазон адресного пространства для чтения/записи. При включенном Dcache запись/чтение из MicroBlaze хорошо работает, но приходится делать постоянный Flush кэша, чтобы заставить MicroBlaze обновить данные в корке. После исключения диапазона адресного пространства корки из кэширования и попытке чтения/записи обращений к корке по AXI шине нет. Из окошка Memory в Eclipse (среда SDK) по всему адресному пространству - нули и попытка записать туда что-либо ни к чему не приводит. Данные не изменяются, обращений к корке нет.
-
-
Только вот загвоздка в том с какого адреса начинаются кэш данных и команд в BRAM, среда сама как-то распределяет а вот как неизвестно.
В программе кэш включается функцией microblaze_enable_icache(), но помимо этого нужно его проинициализировать, а вот для этого нужно знать адреса кэша в BRAM.
Вы хотите просто включить кэш инструкций или что-то другое? У меня в программе для этого две функции по умолчанию. Работает, никто не жалуется.
microblaze_invalidate_icache(); microblaze_enable_icache();
А у меня другая проблема: как отключить кэширование данных для части адресного пространства MicroBlaze. Подскажите, кто знает.
-
Ах, какой конфуз. Я поражен до глубины плисоводческой души! (Шутка, не воспринимайте всерьез :beer:)Ну вот.. а я даже не знаю что такое констрейны, если не сложно, поясните пожалуйста :rolleyes:Вам нужен Xilinx Constraints Guide http://www.xilinx.com/support/documentatio...inx13_2/cgd.pdf (для ISE 13,2). Там все толково написано. Хотя бы глава 3 Xilinx Constraint Strategies.
Если кратко, то Вы должны, как минимум, задать для ISE требования по частоте всех входных тактовых сигналов, которые используются в Вашем проекте, а также для других сигналов, если в этом есть необходимость.
Делается это в файле с расширением UCF. Там же задаются расположение пинов ПЛИС и соответствие между сигналами и пинами. И если Вы пишите, что Ваш модуль иногда не выдает сигналы наружу, возможно Вы не задали такового соответствия. С другой стороны раз Ваш проект все-таки иногда работает, значит таковой файл имеется и подключен к проекту, вот в нем и надо сочинять.
-
Похоже на нарушение констрейнов, я тоже похожую картину Репина у себя недавно наблюдал. Какие Вы констрейны задавали для системы и для глобального клока(ов) в частности? И успешно ли они выполнились?
-
Легко!
Если Вы используете для доступа к памяти корку axi_s6_ddrx, то там прямо такой человекоприятный gui, где можно и банк выбрать и тип микросхемы и все остальное. А ядро Microblaze настраивать не надо, разве что проверить скрипт для линкера, куда какой код загружать.
-
А чем Вас не устраивает код Матлаба предыдущего поста?Здарствуйте уважаемые коллеги. Есть следующая небольшая проблемка. Необходимо в ROM-память в Quartus-е записать 1024 слова.Очень уж нехочется делать это руками. Не подскажет ли кто нибудь, можно ли каким нибудь другим способом импортировать значения 1024 слов в mif файл.
Например из Matlab или Exel. Заранее благодарен!
-
Спасибо, Rob
Ага, я таким же образом испек себе слейв на AXI, из корки axi_bram_cntrl.Для начала посмотрел что и как сделано на AXI в Coregene и EDK - там почти все корки на AXI открыты.
А где эти заготовки?В EDК есть заготовки корок для создания своей периферии с AXI шиной.
Спасибо, покачал сей модуль на сайте ARM, и увидел там, что для верификации AXI они предлагают некий AXI Adaptive Verification IP (AVIP) http://infocenter.arm.com/help/topic/com.a...vip_r0p0_to.pdf Тоже некий пакет тестов для симуляции. Может кто знает где его можно раздобыть??На сайте ARM есть модуль assertions на SV для AXIдоки на BFM изучаю, Xilinx как всегда радует своей настольной документацией.
-
Проблема в том, что ошибки я вижу так сказать не вооруженным глазом, но бывает так, что целый день работаю без ошибок. Все зависит от везения в разводке.Помнится раньше у Xilinx были софтовые тесты для памяти. Может попробовать маленький софтик в BRAM, а DDR3 затестировать насмерть?Вообщем подозрение с самой микросхемы DDR3 памяти и сырости MCB Спартана я решил пока снять. Плата SP-605 Rev.D, микросхема оказалась все-таки Micron, та самая что на схематике.
Пока лечил свой проект тем, что лочил в PlanAhead кусок с axi_ddr коркой, это работало, но при каждом серьезном изменении проекта эту работу приходилось делать заново, иначе Router не мог развести проект.
Сейчас я временно облегчил проект до 60% - проблема исчезла.
-
Здравствуйте,
кто делал реализацию AXI Master просветите каким путем шли. Есть ли готовые тест-бенчи для отладки??
В обозримом будущем надо будет делать Master под Spartan-6, пока довольствуюсь слейвом.
Из реализации мастеров пока нашел лишь простейший пример от Xilinx ( http://www.xilinx.com/support/answers/37425.htm ) и корку от opencores, еще в ней не разбирался.
-
Да, после ковыряния по поиску я тоже набрел на фирму semiconn и ее поделки. Однако меня смущает роговость и копытовость данной фирмы. Даташитов на сайте нету, хотя ее диллер Ineltek даташиты выкладывает, правда не на все, и не полные. Микросхем у поставщиков тоже нету, только под заказ в паре-тройке фирм. Что-то я боюсь закладываться на этого кота в мешке.
А кто-нибудь пробовал изделия этой фирмы?
-
Не встречал в даташитах на Spartan-3 ограничения потребления на корпус микросхемы. Предположу, что потребление ограничивается подогреванием кристалла ПЛИСины до красна, точнее до 125С по даташиту. А при каком количестве 16ма выходных пинов это наступит можно примерно рассчитать в утилитке Xpower. Понятное дело, что это зависит от многих факторов: теплоотвод, частота переключения пинов и логики, заполненность кристалла.
-
Использовал корку FFT в Quartus 9.0, давно дело было. Долго не мог запустить в режиме FFT->IFFT. При подаче на вход только real сигнала на выходе FFT имел не симметричный спектр. Половинки были очень похожи, но не идентичны, видимо какие-то фокусы округления. В результате на выходе получал кривой синус (на входе был тоже синус), вроде похожее на картинку выше. У меня сложилось впечатление что эта корка предназначена для работы с комплексным сигналом.
-
Вижу такой месседж часто на ModelSim 6.4SE. Иногда не помогает даже do <script>, тогда удаляю библиотеку work и заново ее создаю.
-
Опубликовано · Изменено пользователем Чиповод · Пожаловаться
Девайс успешно программится USB Blasterom, краткий отчет 7-ью постами выше в этой теме.Добрый день. Собираюсь поработать с 5576хс1, пока только начинаю вникать в тему... подскажите, подходит для работы с ней usb blaster? по даташиту его, вроде он поддерживает флекс10к, но хз...Открываете Квартус. Ищете девайс 5576хс1. Если не нашли, дальше по тексту.:bb-offtopic: Все правильно, только нужно открывать Quartus Voronezh Edition :)
-
Опубликовано · Изменено пользователем Чиповод · Пожаловаться
Кажется он не понял, что это корка. У вас стоит опция в синтезе read cores, с указанием папки, где корки искать? Ну и посмотреть на строку 86 так и распирает.
-
Здравствуйте!
Необходимо принять сигнал DVI от видеокарты (dual link) и разветвить его на 2 выхода (тоже dual link). Поискал такие микросхемы у Analog Devices и TI, нашел только повторители, свичи и трансмиттеры/ресиверы.
Как такое сделать? Неужели нужно городить огород из ПЛИСины и обвешивать ее трансмиттерами/ресиверами??
-
Ага, ну корегены и не такие чудеса могут вытворять, типа преобразование рязрядности шин.UPD. Стоп! А почему РАЗНАЯ ширина шин адресов и данных на двух портах?? -
Это хорошо, а то народ жалуется, что в инженерных сэмплах MCB сырой был. А как вы кстати тестировали на ошибки?2 Чиповоду меня SP-605 с ES чипом, память микроновская. DDR3 пробовал давно и без Blaze-а, но бегало без ошибок :laughing:
Я тут разбираюсь со своими зверушками. Clock для памяти среда XPS предложила мне сделать без глобальных клоковых буферов. Я, в таком случае, решил зажать его констрейном MAX_SKEW. Это помогло, из 8 разводок - 7 оказалось удачных (раньше было примерно 50 на 50). Но нужно, конечно, окончательно разобраться.
-
Использую доску SP-605, по схематику на ней стоит MT41J64M16LA-187E. На самом деле, кажется что-то другое, по крайней мере логотипа микрона не видно. Кристалл на ней со спидгрейдом -3, НЕ инженерный сэмпл, слава Богу.
Проблема с lwIP на microblaze
в Системы на ПЛИС - System on a Programmable Chip (SoPC)
Опубликовано · Пожаловаться
А по поводу стабильности, как выяснилось, сильно влияют настройки lwIP. По крайней мере, я подобрал такие, при которых 1.3.2 работает у меня стабильно. Наверно и 1.3.0 тоже бы так работало.