Jump to content

    

Reffum2

Участник
  • Content Count

    177
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Reffum2

  • Rank
    Частый гость

Recent Profile Visitors

2720 profile views
  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. Можно Вас попросить подробнее описать, как Вы это делали?