Перейти к содержанию
    

Reffum2

Участник
  • Постов

    177
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Reffum2

  • Звание
    Частый гость
    Частый гость

Посетители профиля

3 131 просмотр профиля
  1. Да, Вы правильно поняли. Это "удлинитель" Ethernet.
  2. Да, именно так. Для MAX10 такого модуля IP нет. Есть Ethernet IP, но он принимает данные в формате MII.
  3. В моем случае данные приходят на ПЛИС по 2-м линиям LVDS: TX и RX. В таком же формате, в котором они приходят на SFP-модуль, например.
  4. Использую Altera MAX10. Quartus 16.1. Код программы NIOS записываю в UFM. Увидел непонятную мне вещь: секция .bss полностью записывается в UFM, видимо, чтобы потом скопировать ее в RAM, как и секцию .rwdata. То есть, во flash записано 4 кБ нулей. Ниже кусок из objdump. 0000ab40 - это адрес в UFM. Sections: Idx Name Size VMA LMA File off Algn 0 .entry 00000020 00008000 00008000 00001000 2**5 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .exceptions 00000160 00008020 00008020 00001020 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .text 00002808 00008180 00008180 00001180 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 3 .rodata 00000094 0000a988 0000a988 00003988 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .rwdata 00000124 00010000 0000aa1c 00004000 2**2 CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA 5 .bss 000011f8 00010124 0000ab40 00004124 2**2 ALLOC, SMALL_DATA Скрипт компоновщика сгенерирован автоматом, я его не менял, вот кусок из него. onchip_memory2_0 - это RAM. .bss : { __bss_start = ABSOLUTE(.); PROVIDE (__sbss_start = ABSOLUTE(.)); PROVIDE (___sbss_start = ABSOLUTE(.)); *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) *(.scommon) PROVIDE (__sbss_end = ABSOLUTE(.)); PROVIDE (___sbss_end = ABSOLUTE(.)); *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) . = ALIGN(4); __bss_end = ABSOLUTE(.); } > onchip_memory2_0 Пробовал писать так: .bss (NOLOAD) : ... - никакого эффекта, ничего не меняется.
  5. Свой физический уровень я должен реализовать, так как в MAX10 нет готового IP для обмена по LVDS по протоколу ETHERNET. То, что есть, работает через MII. Расстояние до 0.5 м.
  6. Нужно сделать приемопередатчик ETHERNET 100BASE-X на MAX10. Данные ETHERNET приходят не по витой паре, а по 2-м линиям LVDS(RX/TX). Готового IP для MAX10 нет. Подскажите, как лучше это сделать? Подскажите стандарты 802.3, в которых описан формат MAC-фрейма и символы кодирования 8B/10B.
  7. Подскажите, пожалуйста, стандарты, в которых описано физическое кодирование ETHERNET 100BASE-X. Нужно реализовать приемопередатчик 100BASE-X на ПЛИС ALTERA MAX10. Сами Ethernet данные приходят по 2-м линиям LVDS. Я плохо знаю протоколы 802.3, не могу разобраться, где описан формат MAC-фрейма и кодирование символов 8B/10B.
  8. В nVidia? Как найти примеры nVidia? В официальной документации есть "Hello World"-примеры. Но из них непонятно, зачем нужно UVM. Хотелось бы найти как-раз работающий пример из реальной жизни, чтобы понять преимущества UVM-методологии.
  9. Где можно найти примеры применения UVM, OVM, VMM?
  10. Хочу разобраться с тем, что такое UVM. На официальном сайте скачивал примеры и документацию. Но не смог разобраться по ней. Я понял, что это некая методология тестирования, но не понял, в чем ее смысл. Прошу тех, кто пользуется UVM поделиться примерами, ссылками. Рассказать о UVM. Спасибо!
  11. На ПЛИС MAX 10 подается сигнал LVPECL. Он развязан по постоянному току, то есть на выходе LVPECL стоят конденсаторы. В руководстве сказано, что на вход необходимо подать смещение по постоянному току. Можно ли это смещение получить из простого делителя напряжений? Не приведет ли это к сильному рассогласованию волнового сопротивления? Напряжение банка I/O 2.5 В.
  12. Создается проект на XILINX VIRTEX-6. В нем также используется АЦП ADS42LB49. Данные идут в режиме DDR. Данные от АЦП в ПЛИС идут по 7 линиям в режиме DDR, то есть на каждой линии данных передается 1 бит на фронте, и 1 бит на спаде CLK. CLK также идет от АЦП. Скорость 250 MSPS. Я хочу спросить, как сделать правильно прием данных от АЦП в ПЛИС, и как затем передать эти данные от тактового домена с CLK АЦП в домен ПЛИС? Мне не понятны следующие вопросы: 1. Руководства XILINX говорит, что так как на такой большой скорости между линиями CLK и линиями данных возникает разброс по времени, лучше не захватывать данные АЦП по CLK АЦП, а подать CLK АЦП на PLL в ПЛИС, и сдвинуть выходной CLK PLL на правильную фазу. Эту фазу нужно подобрать динамически, так чтобы фронты CLK PLL приходились посередине бита данных от АЦП. Это описано, например, здесь http://www.elec.canterbury.ac.nz/intranet/...tes/xapp268.pdf. Однако, там рассматривают АЦП с 1 линией данных. А у ADS42LB49 линий 7. Если я правильно понимаю, мне нужно сформировать 7 CLK PLL, по 1 для каждой линии данных, и захватывать DDR данные по нему? 2. Как передать захваченные данные от домена с CLK PLL в тактовый домен, по которому работает логика ПЛИС? Если через FIFO, то по какому CLK записывать данные в это FIFO? Спасибо за ответы!
  13. Можно Вас попросить подробнее описать, как Вы это делали?
×
×
  • Создать...