wert101 0 19 марта, 2017 Опубликовано 19 марта, 2017 · Жалоба Коллеги, поделитесь опытом работы с данными IP с opencores. Насколько они "оживляемы" по отдельности и в связке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 20 марта, 2017 Опубликовано 20 марта, 2017 · Жалоба 2 wert101 "в принципе" оно рабочее, надо только подпилить под свои хотелки. А что вас именно интересует? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wert101 0 20 марта, 2017 Опубликовано 20 марта, 2017 · Жалоба 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 отвечает за инициализацию конф. регистров при сбросе? reg_int.v Tri_mode_Ethernet_MAC_Specifications.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 21 марта, 2017 Опубликовано 21 марта, 2017 · Жалоба Можно записать конфиг. регистры в проекте через Host interface CSB, WRB, [15:0] CD_in, [15:0] CD_out, [7:0] CA ? Можно. Для этого вам нужен какой то софт-проц или ваш самописный мастер. Судя по исходникам, модуль 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 0 21 марта, 2017 Опубликовано 21 марта, 2017 · Жалоба Можно. Для этого вам нужен какой то софт-проц или ваш самописный мастер. Модуль "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 0 21 марта, 2017 Опубликовано 21 марта, 2017 · Жалоба 2 wert101 Если вы уверены что смотрите те регистры которые хотите, и у вас прошёл сброс перед этим - значит кто то переписал их. Проверяйте, например в симуляции, поведение вашей системы после сброса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wert101 0 21 марта, 2017 Опубликовано 21 марта, 2017 · Жалоба 2 wert101 Если вы уверены что смотрите те регистры которые хотите, и у вас прошёл сброс перед этим - значит кто то переписал их. Проверяйте, например в симуляции, поведение вашей системы после сброса. Проверил в Сигналтапе еще раз. Инициализация регистров МАС после сброса проходит как указано в reg_int.v. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться