Здравствуйте, akorud .
Тема достаточно забытая, но я столкнулся с подобной проблемой сейчас.
Задача состоит в том, чтобы по сути создать своего мастера на шину AXI руками.
Вы очень продвинутый человек по этой тематике, насколько я понял из сообщений, и я прошу вашей помощи.
Задача изначально сводится к тому, чтобы по нажатию кнопки загорался светодиод по шине акси от мастера, написанного
в user_logic. Плата KC705 (Kintex 7). Создан microblaze, далее периферия AXI с галочками на мастера и user_logic.
Кнопку естественно завел в юзера, прописал в .mhs и .ucf.
Прочитал также протокол передачи по шине. Шина AXI4 (создал обычную, но он вроде как переделал её в Lite).
Это всё делается для освоения мастера на шине, чтобы в будущем управлять устройствами в обход microblaze'a (ускорить его работу,
отвлекая его от ненужной нагрузки).
Я могу менять полностью внутреннюю корку User_logic, так ведь? Каким образом мне нужно выставлять данные на выход шины? Я должен управлять регистром mst_reg (control reg, address, status(?? его самому нужно задавать? ), byte enable,length,go), Задавать биты разрешения mst_read_ack,mst_reg_read_sel, писать данные в фифо внутри user_logic (единичку, чтобы зажегся светодиод). А потом соответственно у меня он сразу и зажгется? (Сделал всё то, что сказал, но оно не сработало

)
Цитата(akorud @ Jun 19 2013, 15:27)

BE - Byte Enable. Т.е. если Bus2IP_Data шире 8 бит, то BE указывает какие из байтов несут данные (если ширина данных < ширины Bus2IP_Data).
Типичные сценарии:
- запись 8-битного значения на 32-битной шине;
- при burst передаче если размер burst в байтах не кратный 4 (на 32-битной шине) - то при передаче последнего 32-битного слова не все биты Bus2IP_BE будут 1.
Если у вас все данные размерности шины можно записать туда все 1 и не париться.
Поясните, пожалуйста, поподробнее. Если, например, в последней передаче будет 27 бит информации, то какой будет BE? Он ведь читает лишь с 15 до 0 бита сигнала Bus2IP_Data
Код
-- be register (byte 8 to 9)
for byte_index in 4 to 14 loop
if ( mst_byte_we(byte_index) = '1' ) then
mst_reg(byte_index) <= Bus2IP_Data(
(byte_index-(byte_index/BE_WIDTH)*BE_WIDTH)*8+7 downto
(byte_index-(byte_index/BE_WIDTH)*BE_WIDTH)*8);
end if;
end loop;
Здравствуйте.
Если вы можете также помочь по сообщению выше, я буду невероятно признателен
Цитата(serg_k1 @ Jun 24 2013, 15:03)

я нашел только Tri_mod_Eth с AXI-stream и в нем там масса модулей...? и если это он , то можно поподробней.
Здравствуйте
Хотел бы подключить и вас к этой теме (указана выше в теме).
Буду очень признателен за помощь
Цитата(Golikov A. @ Jun 17 2013, 20:47)

да ничего там не условно

.
В модуль входит шина АКСИ - сложная.
Есть компонент от ксалинкса который сложную акси переделывает в Bus2IP и IP2Bus.
Один от шины в компонент, другой от компонента в шину. Зачем их делать 2 направленными то?
Сообщение отредактировал TimeToSleep - Feb 12 2016, 10:29