spbroma 0 29 января, 2015 Опубликовано 29 января, 2015 · Жалоба Спасибо :) Надо будет, все-таки собраться духом. Сейчас я вообще временно на другую задачу переключился. Но, я так понимаю, что вы говорите об обработке прерываний драйвером. А это меньшая из зол, как создавать эти прерывания - вот где проблема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
habenskiy 0 30 января, 2015 Опубликовано 30 января, 2015 · Жалоба Тестбенч, о котором вы говорите, как-то не попадался мне на глаза, так что ничего прокомментировать не могу. Пока с трудом понимаю, как можно использовать готовый пример для создания собственного проекта. Однако обрабатывать и генерить все сигналы вручную представляется ещё большим мраком и я немного в растерянности. Еще хотелось бы отойти от AXI, а то разбираться ещё и в нём надо. Данный тестбенч находится в проекте примера. По сути просто выбираете "Run Behavioral Simulation" и ждете результата. Я вот как раз и хотел взять какой то готовый пример, и посмотреть как и что в нем реализовано, а за тем уже прикинуть что нужно заменить. А то уже чем больше нахожу информации, тем больше погружаюсь в мрак - все таки одной теорией сыт не будешь, нужно что то железячное (по моему данный пример от xilinx подходящий для этой цели). А в какую сторону вы хотели бы отойти от AXI? Он же вроде довольно прост - шина даных (tdata), сигнал валидности данных (tvalid), сигнал готовности принимать данные (tready). Остальные сигналы "расширяют возможности". Это касательно AXI-Stream, а он как раз у нас и используется. С остальными типами AXI сложнее. Или вы имеете в виду вообще какой то другой интерфейс, более заточеный под определенный круг задач (как в этой статье http://habrahabr.ru/post/244997/ интерфейс target)? И все же - кто-нибудь может подсказать, что за активность идет, в мною описаном примере? Да и помочь разобраться с самой структурой транзакций... А то если взять примеры и сравнить, что то не складывается: axis_rx_tdata: 01a0_0a0f_0000_0001 de03_7320_0000_0010 (tkeep = 0f) axis_[b]tx[/b]_tdata: 01a0_0004_4a00_0001 0403_0201_01a0_0a10 01a0 - ID отправителя (почему совпадает для обоих случаев?). 0а - Tag. Что то вобще не понял его назначние "Tag[7:0] is an 8-bit field generated by each Requester, and it must be unique for all outstanding Requests that require a Completion for that Requester" - вроде как уникальное поле для каждого запроса. В данном случае, насколько я понял, выбрали порядковый номер. Но тогда не понятно как он распределяется (его изменения: 0, 0, 1, 2, ..., d, 0, 1, 2, ..., a). 0f (для axis_rx_tdata) / 04 (для axis_tx_tdata) - на сколько я понял это Byte Enable (Last/First). Про Last и First для axis_rx_tdata вроде понятно "If the Length field for this Request indicates a length of 1 DW, then the value for the 1st DW Byte Enables is implied to be 1111b and the value for the Last DW Byte Enables is implied to be 0000b.", а вот First для axis_tx_tdata - не понятно. Следующее DW вроде понятно - тип транзакции и длина. Следующее DW вроде тоже понятно - данные. 0000_0010 - адрес и PH (кстаи так и не понял про это PH). Для axis_rx_tdata вроде без вопросов, а вот для axis_tx_tdata опять в ступоре... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться