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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
Shevnnov
сообщение Apr 12 2010, 11:35
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 8-04-10
Из: Нижний Новгород
Пользователь №: 56 498



С двумя слейвами поэкспрементирую, сообщу об успехах или вопросах. В целои понял вроде идею работы через Avalon-MM.
А по поводу DMA ссылкой никто не поделится?
Тема не секрет - разработка програмно/аппаратного контроллера MAC для Fast Ethernet
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Apr 12 2010, 11:57
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Shevnnov @ Apr 12 2010, 17:21) *
Немного нt понял про разделение управления между DMA и NIOS CPU. Какова идеология и как это организовать? Если есть ссылка на литературу, скиньте плиз.

приемная часть MAC (это же справедливо и для передающей) обычно состоит из моста между шинами MII и Avalon (по сути буфер FIFO) и контроллера DMA. DMA нужен чтобы разгрузить процессор от тупого копирования. работа примерно выглядит так: проц выделяет сегмент памяти, отдает указатель на этот сегмент контроллеру DMA и разрешает прием. MAC принимает пакет, пишет его в память, проверяет контрольную сумму и генерит прерывание. все, пакет целиком загружен, процессор может его обрабатывать, а контроллеру DMA дает следующий кусок памяти. примеры реализации: альтеровский www.altera.com/literature/ug/ug_ethernet.pdf и опенкоровский http://www.opencores.org/project,ethmac. есть модификация последнего под Avalon http://www.alteraforum.com/forum/showthread.php?t=21005 исходники 2 последних открыты и неплохо документированы. мне опенкоровский вариант больше нравится, т.к. контроллер DMA интегрирован в компонент, а в альтеровском надо внешний цеплять, возни больше.
Цитата
А можно ли в рамках одного интерфейса Avalon Slave выводить просто регистры? Или обязательно они должны быть как блок памяти?

собственно, вся периферия memory mapped, не вижу проблемы. доступ ко всем регистрам i/o осуществляется как к памяти
Цитата
А пока всем управляет CPU и суть в том что когда приходит пакет, должно срабатывать прерывание и программа с помощью HAL считывает содержимое памяти.

ну разве что чисто в академических целях, чтобы понять почему так делать не нужно
Цитата
ТАк же требуются управляемые регистры для контроля контроллера процессором. Пока сейчас отлаживаю на симуляции в ModelSim считывание данных программой через драйвер, без прерываний - нужна просто группа регистров по состоянию которых буду судить о том что и как было принято.

делайте минимум 2 интерфейса, для регистров отдельный.
читайте тут, особенно главу 6 (Naming Signals for Automatic Type and Interface Recognition) http://www.altera.com/literature/hb/qts/qts_qii5v4.pdf
это тоже читайте www.altera.com/literature/manual/mnl_avalon_spec.pdf
Go to the top of the page
 
+Quote Post
DASM
сообщение Apr 12 2010, 12:24
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



разве MII это не шина между MAC и PHY уже ?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Apr 12 2010, 13:27
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(DASM @ Apr 12 2010, 19:39) *
разве MII это не шина между MAC и PHY уже ?

ну да, у MAC с одной стороны MII, с другой Avalon или другая системная шина. входная часть MAC использует сигналы rxd[3..0], rxer, и т.д, но главное тактируется от rxclk (25МГц для Fast Ethernet)
Go to the top of the page
 
+Quote Post
Shevnnov
сообщение Apr 12 2010, 19:03
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 8-04-10
Из: Нижний Новгород
Пользователь №: 56 498



С адресным пространством компонента и как оно формируется разобрался. Всё завязано на интерфейсе Avalon-MM. Главное в компоненте обеспечить совместимость с шиной и обеспечить адресацию. Спасибо кто подсказывал, очень помогли. smile.gif
Как тут советовали - сделал два итерфейса Avalon MM Slave. Теперь осталось компонент переписать немного. Задумался вообще об общей идеологии контроллера. СЕйчас он работает по принципу из интерфейса MII поступают данные, склеиваются в 4 байтные слова и записыватся в встроенный в компонент блок памяти (просто пока изучаю инструментарий и софт - так что пытаюсь на таком примитиве хотя бы пройти все стадии от RTL модели -> к SOPC системе на FPGA принимающей пакеты)
Вопрос - как в такую схему можно встроить DMA контроллер Alter'овский? И нужен ли он?
P.S. Диплом сдавать в июне месяце, поэтому приходиться сейчас очень активизироваться ))
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Apr 12 2010, 22:26
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Shevnnov @ Apr 13 2010, 02:18) *
Вопрос - как в такую схему можно встроить DMA контроллер Alter'овский? И нужен ли он?

если все правильно сделать, то одним из портов Avalon-MM MAC будет вылядеть как обычная память. DMA умеет копировать из одной памяти в другую, надо только гарантировать неизменность данных на время проведения DMA-транзакции (прием запретить).
Go to the top of the page
 
+Quote Post
Shevnnov
сообщение Apr 13 2010, 05:53
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 8-04-10
Из: Нижний Новгород
Пользователь №: 56 498



То есть фактически, как я понял. Модуль MAC принимает весь пакет себе во внутреннюю память.Когда пакет принялся, генерирует прерывание процессору, который в свою очередь дает команду DMA то что принято положить ему в тот участок памяти, который он выделяет програмно. Так? То есть фактически сейчас надо реализовать обработку прерывания по получению всего пакета. И програмно реализовать взаимодействие NIOS-DMA.
Cейчас ближайшая задача от руководителя - считать полученный пакет из памяти, отсимулировав это на ModelSim'e. Для этого не нужно DMA, но в дальнейшем эотпроблема будет актуальной. А считывать процессором принятый пакет по 4 байта - дело будет неблагодарное.
Go to the top of the page
 
+Quote Post
DASM
сообщение Apr 13 2010, 06:07
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



я вобщем-то так и делаю сейчас... по-моему все правильно
Go to the top of the page
 
+Quote Post

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

 


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


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