реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Передача данных с ПЛИС через PCIe на ПК, Какова методология, какие подходы, что читать и что писать?
spbroma
сообщение Jan 29 2015, 18:41
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 23-07-14
Пользователь №: 82 337



Спасибо sm.gif
Надо будет, все-таки собраться духом. Сейчас я вообще временно на другую задачу переключился.

Но, я так понимаю, что вы говорите об обработке прерываний драйвером. А это меньшая из зол, как создавать эти прерывания - вот где проблема.
Go to the top of the page
 
+Quote Post
habenskiy
сообщение Jan 30 2015, 07:39
Сообщение #32





Группа: Участник
Сообщений: 13
Регистрация: 25-11-14
Пользователь №: 83 819



Цитата
Тестбенч, о котором вы говорите, как-то не попадался мне на глаза, так что ничего прокомментировать не могу. Пока с трудом понимаю, как можно использовать готовый пример для создания собственного проекта. Однако обрабатывать и генерить все сигналы вручную представляется ещё большим мраком и я немного в растерянности. Еще хотелось бы отойти от 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 опять в ступоре...
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 20:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016