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

 
 
 
Reply to this topicStart new topic
> Доступ к регистрам ПЛИС через GMII
wolfman
сообщение Apr 26 2011, 18:36
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Ситуация такая есть процессор, который через GMII подключен к ПЛИС. ПЛИС к внешнему миру подключена через SGMII. Проц с внешним миром общается через ПЛИС.
Нужно организовать доступ на чтение/запись к регистрам ПЛИС, а так же предавать приходящие пакеты на различные модули обработки в ПЛИС. Мак и IP-уровни используются для доступа к ПЛИС и CPU. ПЛИС- Cyclone 4 GX.

Первое о чем подумал: После IP-заголовка выделить поле под свой заголовок и у же нему все разруливать.

Может быть есть другой способ?
Был бы очень признателен если кто-нибудь подсказал как лучше это дело организовать.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
des333
сообщение Apr 26 2011, 19:23
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Конечным пунктом приходящих извне IP-пакеты является CPU? Или FPGA? Или и то и другое?
А пакеты на передачу формируются только в CPU или нет?


--------------------
Go to the top of the page
 
+Quote Post
wolfman
сообщение Apr 26 2011, 20:19
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Цитата(des333 @ Apr 27 2011, 05:53) *
Конечным пунктом приходящих извне IP-пакеты является CPU? Или FPGA? Или и то и другое?
А пакеты на передачу формируются только в CPU или нет?


И то и другое являются конечными пунктами. К CPU обращение по IP-адресу, к ПЛИС по Мак-адресу.

Пакеты будут формироваться и в CPU и в ПЛИС. CPU пакеты будет формировать периодически. Основную работу будет делать ПЛИС. ПЛИС принимает пакет от внешнего мира, сравнивает Маки, если совпадают, то проверяет IP-адрес, если IP-адрес = IP-адресу CPU, то пакет передается процу, если IP-адрес не равен IP-адресу CPU, то отдает на внутренние модули. Причем нужно как-то определить по какому признаку нужно отдавать на тот или иной модуль. После обработки пакет возвращается во внешний мир.

При этом с CPU могут лететь пакеты как во внешний мир, так и для контроля/управления ПЛИС-ой.

Т.е. в ПЛИС 3 итерфейса: 1 GMII для связи с CPU и 2 SGMII для связи с внешним миром.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
des333
сообщение Apr 26 2011, 20:24
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Цитата(wolfman @ Apr 27 2011, 00:19) *
При этом с CPU могут лететь пакеты как во внешний мир, так и для контроля/управления ПЛИС-ой.

А в CPU формирование пакетов как происходит? Все вручную?


--------------------
Go to the top of the page
 
+Quote Post
wolfman
сообщение Apr 26 2011, 20:35
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Цитата(des333 @ Apr 27 2011, 06:54) *
А в CPU формирование пакетов как происходит? Все вручную?


Не совсем понимаю, что такое формировать в ручную.
Изначально предполагалось, что на CPU будет жить Линукс.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
des333
сообщение Apr 26 2011, 21:14
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Цитата(wolfman @ Apr 27 2011, 00:35) *
Не совсем понимаю, что такое формировать в ручную.
Изначально предполагалось, что на CPU будет жить Линукс.


Имелось в виду - насколько низко по протоколам у Вас есть доступ к формирование пакетов.


Просто, если другого интерфейса между FPGA и CPU нет - то, естественно, придется чтение/записть регистров делать через GMII.

Но вот формировать настойщий IP-пакет для этого - излишество, только лишний оверхед. Если есть доступ к GMII непосредственно, то я бы лучше сделал для команд от CPU к FPGA другой формат, отличный от Ethernet-кадра. Но или, хотя бы, не использовал IP-уровень.

Если же такой возможности нет, то тогда вставить какую-либо метку поверх IP (или, например, в поле Protocol указывать неиспользуемое значение), наверное, единственный вариант.


--------------------
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 27 2011, 05:07
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(wolfman @ Apr 27 2011, 03:19) *
И то и другое являются конечными пунктами. К CPU обращение по IP-адресу, к ПЛИС по Мак-адресу.

Пакеты будут формироваться и в CPU и в ПЛИС. CPU пакеты будет формировать периодически. Основную работу будет делать ПЛИС. ПЛИС принимает пакет от внешнего мира, сравнивает Маки, если совпадают, то проверяет IP-адрес, если IP-адрес = IP-адресу CPU, то пакет передается процу, если IP-адрес не равен IP-адресу CPU, то отдает на внутренние модули. Причем нужно как-то определить по какому признаку нужно отдавать на тот или иной модуль. После обработки пакет возвращается во внешний мир.

При этом с CPU могут лететь пакеты как во внешний мир, так и для контроля/управления ПЛИС-ой.

Т.е. в ПЛИС 3 итерфейса: 1 GMII для связи с CPU и 2 SGMII для связи с внешним миром.
Другими словами, Вы реализовали в ПЛИС обычный Ethernet Switch? Да, согласен с des333, тут вопрос: вы использовали готовые корки MAC подуровня или писали всё сами с нуля? Если второе, то влезть в структуру пакета вполне возможно так, как Вы задумывали в первом сообщении. Можно и другими способами. Но если MAC готовый - то всё сложнее.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
XVR
сообщение Apr 27 2011, 06:16
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



ПЛИС может общаться с внешним миром и CPU посредством UDP пакетов. Во первых, это сильно упрощает жизнь как CPU так и внешнему миру - не надо никаких вмешательств в TCP/IP стек. А во вторых, это не сильно накладно для самой ПЛИС - UDP пакет довольно простой и отсутствуют какие либо протоколы вокруг него, т.е. достаточно уметь принять/отправить один Ethernet кадр (с IP/UDP уровнями).

NB. При такой схеме фрагментация UDP конечно не поддерживается.
Go to the top of the page
 
+Quote Post
wolfman
сообщение Apr 27 2011, 06:37
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Цитата
Другими словами, Вы реализовали в ПЛИС обычный Ethernet Switch? Да, согласен с des333, тут вопрос: вы использовали готовые корки MAC подуровня или писали всё сами с нуля? Если второе, то влезть в структуру пакета вполне возможно так, как Вы задумывали в первом сообщении. Можно и другими способами. Но если MAC готовый - то всё сложнее.

Мак свой, т.к. делаю не совсем обычный свич.

Цитата
ПЛИС может общаться с внешним миром и CPU посредством UDP пакетов. Во первых, это сильно упрощает жизнь как CPU так и внешнему миру - не надо никаких вмешательств в TCP/IP стек. А во вторых, это не сильно накладно для самой ПЛИС - UDP пакет довольно простой и отсутствуют какие либо протоколы вокруг него, т.е. достаточно уметь принять/отправить один Ethernet кадр (с IP/UDP уровнями).

NB. При такой схеме фрагментация UDP конечно не поддерживается.

К сожалению не может, основная работа с ip-пакетами. Нужно из ip-пакета извлечь данные, отдать их на один из модулей обработки, затем снова собрать пакет и отдать в сеть. Либо принять пакет, проанализировать ip-заголовок и отдать пакет на CPU без всякой обработки.

Цитата
Имелось в виду - насколько низко по протоколам у Вас есть доступ к формирование пакетов.

Понял, в CPU ip-уровень для внешнего мира, для общения с ПЛИС думаю можно и любой другой уровень использовать.

Цитата
Просто, если другого интерфейса между FPGA и CPU нет - то, естественно, придется чтение/записть регистров делать через GMII.

Но вот формировать настойщий IP-пакет для этого - излишество, только лишний оверхед. Если есть доступ к GMII непосредственно, то я бы лучше сделал для команд от CPU к FPGA другой формат, отличный от Ethernet-кадра. Но или, хотя бы, не использовал IP-уровень.

Если же такой возможности нет, то тогда вставить какую-либо метку поверх IP (или, например, в поле Protocol указывать неиспользуемое значение), наверное, единственный вариант.

Тогда, наверное, лучше теги VLAN использовать для работы с ПЛИС.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
XVR
сообщение Apr 27 2011, 06:46
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
К сожалению не может, основная работа с ip-пакетами.
Так UDP это тоже IP пакет sm.gif
Принимаете пакет, смотрите формат - если UDP и ваш (т.е. ПЛИСины) адрес (IP+Порт), то тело пакета отправляете на обработку внутрь ПЛИСины. Если нет, то отправляете пакет дальше (в CPU или внешний мир)
Пакеты с ответами формируются аналогично.

Или у вас ПЛИС занимается фильтрацией всех пакетов на IP уровне?
Go to the top of the page
 
+Quote Post
wolfman
сообщение Apr 27 2011, 07:19
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Цитата(XVR @ Apr 27 2011, 16:16) *
Так UDP это тоже IP пакет sm.gif
Принимаете пакет, смотрите формат - если UDP и ваш (т.е. ПЛИСины) адрес (IP+Порт), то тело пакета отправляете на обработку внутрь ПЛИСины. Если нет, то отправляете пакет дальше (в CPU или внешний мир)
Пакеты с ответами формируются аналогично.

Или у вас ПЛИС занимается фильтрацией всех пакетов на IP уровне?

все пакеты на ip-уровне.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 5th July 2025 - 10:01
Рейтинг@Mail.ru


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