flawless2504 0 25 февраля, 2016 Опубликовано 25 февраля, 2016 (изменено) · Жалоба 1. По монстрам Bus2IP и IP2Bus я Вам уже не помогу - последний раз работал в ними года 3 назад и уже все забыл. 2. Vivado -> Tools -> "Create and package IP" -> и Next, Next, Next... :-) 3. Вам известно, а нам нет. Вы кажется даже не писали, что он к GPIO подключен. Далее, на приложенной картинке в видимом времени транзакции на шине AXI нет от слова вообще. Да и зачем вам 2 шины? Куда проще своим мастером писать в память видимую Microblaze и смотреть записалось ли. 1) Но вы уже помогли. Спасибо вам большое. Конечно, самому разбираться необходимо, но ваша помощь, учитывая, что для вас это забытая информация, не оценима:-) 2) Хорошо, с вивадо попробую посмотреть что это такое. А это случаем не то же самое что Core Generator IP в ISE, попробую в нём сначала? 3) Эм... :05: извините, упустил этот момент. Хм. Как нет... А у меня зажегся светодиод, кстати :laughing: , оказывается я забыл выставить регистр byte enable (BE) в единицы (и после этого по кнопке всё он загорелся). А вообще да, меня тоже частично смущает то, что я вижу на Chipscope'e. (А вообще светодиод зажегся после того, как я выставил wr_ack (подтверждение записи), BE, mst_go, addr, length (нужно ли её выставлять еще не уверен, но проверю сегодня). А также два регистра выходных это IP2Bus_MstWr_d и IP2Bus_Data. Но мне кажется, что последний не нужно писать, т.к. это шина может выдавать на выход различные регистры из mst_reg, который в свою очередь представляет собой массив из 16 8-ми разрядных регистров ( в нем регистры статуса, контроля, адреса, BE, mst_go). (Забыл сказать, на скрине последние строки в чипскопе data_out_d и data_out_addr это то, что явыставляю на шину адреса и IP2Bus_MstWr_d, IP2Bus_Data. А вообще меня напрягает, что нет ответа от слейва в виде сигнала M_AXI_BRESP, которое оповещает о нормальной транзакции) Да на самом деле не нужны 2 шины. Одна просто для моргания одним светодиодом. По этой же шине я хотел управлять своим светодиодом с кнопкой. Я разделил их на две разные шины, чтобы убедиться, что по кнопке загорится светодиод. Я сегодня проверю будет ли работать это на одной шине, но я не учитываю то, что нужен арбитр для 2х мастеров на шине, поэтому пока не уверен, что это сработает, а как арбитра настроить, я не знаю :-( В память видимую microblaze'oм? Ого! А подскажите как это сделать? Это было бы гораздо удобнее, чем проверять это через светодиод и чипскоп (особенно учитывая ту проблему, что у меня не работают одновременно chipscope и xmd) Изменено 25 февраля, 2016 пользователем TimeToSleep Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
akorud 0 25 февраля, 2016 Опубликовано 25 февраля, 2016 · Жалоба Да на самом деле не нужны 2 шины. Одна просто для моргания одним светодиодом. По этой же шине я хотел управлять своим светодиодом с кнопкой. Я разделил их на две разные шины, чтобы убедиться, что по кнопке загорится светодиод. Я сегодня проверю будет ли работать это на одной шине, но я не учитываю то, что нужен арбитр для 2х мастеров на шине, поэтому пока не уверен, что это сработает, а как арбитра настроить, я не знаю :-( В память видимую microblaze'oм? Ого! А подскажите как это сделать? Это было бы гораздо удобнее, чем проверять это через светодиод и чипскоп (особенно учитывая ту проблему, что у меня не работают одновременно chipscope и xmd) Если Вы подключите 2 мастера к одной "колонке" AXI арбитр будет сгенерирован автоматически. Далее просто из своего мастера пишите в любую память на AXI (согласно адресации на шине). Только я смотрю у Вас ее нет - создайте что-то вроде AXI BRAM если не хочется с DDR возиться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
flawless2504 0 25 февраля, 2016 Опубликовано 25 февраля, 2016 (изменено) · Жалоба Если Вы подключите 2 мастера к одной "колонке" AXI арбитр будет сгенерирован автоматически. Далее просто из своего мастера пишите в любую память на AXI (согласно адресации на шине). Только я смотрю у Вас ее нет - создайте что-то вроде AXI BRAM если не хочется с DDR возиться. Да, действительно. Арбитр автоматически формируется. Сделал сегодня на одной шине и microblaze и свой gpio (led), который по кнопке зажигается. И, кстати, length не нужно выставлять для нормальной транзакции. IP2Bus_Data тоже не нужен для передачи. Но на нём видимо будет ответ, когда я буду пытаться читать по адресу, это следующая задача. С DDR вроде не так всё просто, поэтому наверно начну с BRAM. Это ведь оно то, что на картинке? Изменено 26 февраля, 2016 пользователем TimeToSleep Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
akorud 0 25 февраля, 2016 Опубликовано 25 февраля, 2016 · Жалоба Да, оно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
flawless2504 0 26 февраля, 2016 Опубликовано 26 февраля, 2016 (изменено) · Жалоба Далее просто из своего мастера пишите в любую память на AXI (согласно адресации на шине). А можете подсказать как смотреть память, записалось ли туда какое либо значение? По XMD? Он разве не сбросит программу (точнее остановит и сбросит вроде как) на плате? Или читать посредством своего же мастера? Еще вопрос по поводу burst передачи. Можно тоже небольшую консультацию. У меня "окно" примерно на 40 тактов 100МГц сигнала на передачу single beat (единичная передача), при меньшем окне передача удачно не заканчивается, что-то подвисает и светодиод больше не реагирует на кнопку, но это вероятно связано с тем, как я строю "свой" протокол (сделанный вручную проще говоря и подгоняемый под стандартный). Насколько я понимаю при burst передаче всё должно происходить значительно быстрее? Или я не прав? Хочу попытаться реализовать что-то представленное на скрине (думаю, что всё прозрачно понятно на нём) Что-то BRAM далеко не такой простой. Как писать по шине AWID (которое характеризует ID компонента, как я понял) и WSTRB (это ведь строб? зачем он нужен?) ? Изменено 26 февраля, 2016 пользователем TimeToSleep Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
akorud 0 26 февраля, 2016 Опубликовано 26 февраля, 2016 · Жалоба А можете подсказать как смотреть память, записалось ли туда какое либо значение? По XMD? Он разве не сбросит программу (точнее остановит и сбросит вроде как) на плате? Ну написать простую программку на microblaze - UART консоль с командами (например команда "mr" прочитает память и напишет содержимое на консоли). Что-то BRAM далеко не такой простой. Как писать по шине AWID (которое характеризует ID компонента, как я понял) и WSTRB (это ведь строб? зачем он нужен?) ? Что-то Вы как-то путаете. Если используете Bus2IP то насколько я помню к AXI напрямую писать ничего не надо. Если непосредственно AXI - вся документация свободно доступна на сайте ARM - читайте и делайте по стандарту - увы, нет другого выхода. Если мешаете все в кучу - как мне кажется ничем хорошим не кончится. Что касается количества тактов - AXI ориентирована на пакетную передачу и накладные расходы на передачу одного байта весьма высоки, вполне может быть 40 тактов. В стандарте хорошо описано (и даже нарисовано :-) что и как происходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
flawless2504 0 9 марта, 2016 Опубликовано 9 марта, 2016 · Жалоба Что-то Вы как-то путаете. Если используете Bus2IP то насколько я помню к AXI напрямую писать ничего не надо. Если непосредственно AXI - вся документация свободно доступна на сайте ARM - читайте и делайте по стандарту - увы, нет другого выхода. Если мешаете все в кучу - как мне кажется ничем хорошим не кончится. Здравствуйте. Да, я вас понял, спасибо. Я сначала пробовал через Bus2IP, но не получилось, поэтому начал лазить в "потрохах", через которые у меня получилось мигать светодиодом. Дальше, я решил писать через Bus2IP, и у меня выставляется адрес, биты разрешения, длина пакета на выходе мастера, но данных на выходе нет, а при моделировании данные на выходе есть. Никак не могу понять с чем это связано. Необходимо ли управлять еще такими сигналами, как: -- bus2ip_mstrd_rem -- Bus to Ip master read data rem -- bus2ip_mstrd_sof_n -- Bus to Ip master read start of frame -- bus2ip_mstrd_eof_n -- Bus to Ip master read end of frame -- bus2ip_mstrd_src_rdy_n -- Bus to Ip master read source ready -- bus2ip_mstrd_src_dsc_n -- Bus to Ip master read source dsc -- bus2ip_mstwr_dst_rdy_n -- Bus to Ip master write dest. ready -- bus2ip_mstwr_dst_dsc_n -- Bus to Ip master write dest. ready При моделировании я использовал такие сигналы, как Bus2IP_MstRd_src_rdy_n Bus2IP_MstWr_dst_rdy_n и выставлял их в 0 (т.е. активное). Но их игнорирование, как и всех сигналов, что перечислил, всё равно позволяет выставить данные на шине ip2bus_mstwr_d Прикладываю скрины моделирования и chipscope'а после загрузки программы на плату. (ip2bus_mstwr_d на скринах выделен) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
flawless2504 0 11 марта, 2016 Опубликовано 11 марта, 2016 · Жалоба Что-то Вы как-то путаете. Если используете Bus2IP то насколько я помню к AXI напрямую писать ничего не надо. Если непосредственно AXI - вся документация свободно доступна на сайте ARM - читайте и делайте по стандарту - увы, нет другого выхода. Если мешаете все в кучу - как мне кажется ничем хорошим не кончится. Всё работает корректно, кроме srl_fifo_f. При моделировани отдельно от user_logic этот буфер выдаёт данные. Но при моделировании системы он также выдаёт их ,но не в случае загрузки кода на плату. Подскажите, пожалуйста, может стоит заменить fifo на собственную? Или же лучше подразобраться в этой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
flawless2504 0 18 марта, 2016 Опубликовано 18 марта, 2016 · Жалоба Подскажите, пожалуйста, сталкивался ли кто-то с тем, что при симуляции программы всё работает идеально, а при загрузке на плату работа совершенно отличается, сигналы, которые должны быть в активном уровне, находятся в "0", хотя сигналы, управляемые ими, изменяются? Абсолютно не понимаю почему так происходит :05: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться