Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 10_100_1000 Mbps Ethernet MAC + Gb eth UDP/IP Stack с opencores.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
wert101
Коллеги, поделитесь опытом работы с данными IP с opencores.
Насколько они "оживляемы" по отдельности и в связке?
Kuzmi4
2 wert101
"в принципе" оно рабочее, надо только подпилить под свои хотелки. А что вас именно интересует?
wert101
Цитата(Kuzmi4 @ Mar 20 2017, 11:02) *
2 wert101
"в принципе" оно рабочее, надо только подпилить под свои хотелки. А что вас именно интересует?

Нужно изменить интерфейс в одном из проектов цифровой камеры на Ethernet.
Ранее, с реализацией Ethernet на ПЛИС я не сталкивался.
В результате изучения форума и поиска информации по данной теме остановился
на варианте, изложенном Алексеем Пашиновым в журнале КиТ №5/2015г.
http://kit-e.ru/articles/circuit/2015_05_100.php
Там описан вариант реализации Ethernet контроллера на ПЛИС на основе связки :
User layer (castom) + UDP/IP Stack (opencores) + TSE MAC (Xilinx core) + PHY (Marvell 88Е1111).

Под Альтеру я хочу использовать в качестве МАСа
10_100_1000 Mbps Ethernet MAC (opencores) или TSE от Альтеры (нужна лицензия, это "-").
Физ. уровень на тестовой плате - Marvell 88Е1512 в режиме RGMII.

Сначала был сделан тестовый проект в Ква генератора UDP-пакетов для "знакомства"
с 88Е1512. Плата и ПК соединены кроссоверным патч-кордом.
На ПК вижу прием UDP-пакетов Wireshark-ом.
На плате СигналТапом вижу пакеты (ARP) от ПК на выходе 88Е1512 и переходника RGMII/GMII.

Далее в проект добавлен 10_100_1000 Mbps Ethernet MAC с opencores.
По нему и вопросы :
В доке описано конфигурирование МАСа запуском скрипта #vish start.tcl и записью
конфигурации в файл "CPU.dat".
Это обязательно? Можно записать конфиг. регистры в проекте через
Host interface CSB, WRB, [15:0] CD_in, [15:0] CD_out, [7:0] CA ?
Судя по исходникам, модуль reg_int.v отвечает за инициализацию конф. регистров при сбросе?
Kuzmi4
Цитата(wert101 @ Mar 20 2017, 14:40) *
Можно записать конфиг. регистры в проекте через
Host interface CSB, WRB, [15:0] CD_in, [15:0] CD_out, [7:0] CA ?

Можно. Для этого вам нужен какой то софт-проц или ваш самописный мастер.

Цитата(wert101 @ Mar 20 2017, 14:40) *
Судя по исходникам, модуль reg_int.v отвечает за инициализацию конф. регистров при сбросе?

Модуль "reg_int.v" - контейнер регистров MAC-а, с предустановками для регистров по сбросу.

Советую так же ознакомиться вот с этим:
../ethernet_tri_mode/trunk/EDK/edk_user_repository.tar.gz -> ../edk_user_repository/MyProcessorIPLib/drivers/opencore_tri_mac_v1_00_a/src/


wert101
Цитата(Kuzmi4 @ Mar 21 2017, 14:14) *
Можно. Для этого вам нужен какой то софт-проц или ваш самописный мастер.


Модуль "reg_int.v" - контейнер регистров MAC-а, с предустановками для регистров по сбросу.

Советую так же ознакомиться вот с этим:
../ethernet_tri_mode/trunk/EDK/edk_user_repository.tar.gz -> ../edk_user_repository/MyProcessorIPLib/drivers/opencore_tri_mac_v1_00_a/src/


Написан простой VHDL модуль для записи всех регистров МАС после сигнала сброса.

Но, еще до принудительной перезаписи регистров внешним модулем,
в Сигналтапе я вижу несоответствие содержимого конф. регистров значениям,
указанным reg_int.v.
Например, согласно reg_int.v :
- регистр Tx_Hwmark д.б. инициализирован в 16'h001E, в железе после ресета он равен 16'h0019.
- регистр Tx_Lwmark д.б. инициализирован в 16'h0019, в железе после ресета он равен 16'h0000.

Хотя, в reg_int.v указаны след. строки для их первоначальной установки :
RegCPUData U_0_000(Tx_Hwmark ,7'd000,16'h001E,Reset,Clk_reg,!WRB,CSB,CA,CD_in);
RegCPUData U_0_001(Tx_Lwmark ,7'd001,16'h0019,Reset,Clk_reg,!WRB,CSB,CA,CD_in);

Если я правильно понял Верилог, которым не пользуюсь.
Содержимое EDK я смотрел, спасибо.
Kuzmi4
2 wert101
Если вы уверены что смотрите те регистры которые хотите, и у вас прошёл сброс перед этим - значит кто то переписал их. Проверяйте, например в симуляции, поведение вашей системы после сброса.
wert101
Цитата(Kuzmi4 @ Mar 21 2017, 16:01) *
2 wert101
Если вы уверены что смотрите те регистры которые хотите, и у вас прошёл сброс перед этим - значит кто то переписал их. Проверяйте, например в симуляции, поведение вашей системы после сброса.

Проверил в Сигналтапе еще раз.
Инициализация регистров МАС после сброса проходит как указано в reg_int.v.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.