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

Max42

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

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

  • Посещение

Репутация

0 Обычный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

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

998 просмотров профиля
  1. Получается так, что если убрать функцию ALTLVDS, то появляется возможность управлять выводами по отдельности (в стандарте 1.8-V HSTL Class I). А с ней - не хочет хоть ты убейся. Существует ли какой-нибудь ещё способ засерилизовать параллельный поток данных, чтоб несколько сот Мбит потянуло?
  2. Когда тестировал назначение дифференциального режима выбирал пин 117 для p-полярности. Второй (пин 118) Квартус для n-полярности подставил сам. Это и есть PLL4_CLKOUTx - выводы у моего циклона. Получается, ошибок быть не должно, но они есть.
  3. Выбранные мной пины поддерживают дифференциальный режим, в таблице это указано ровно как и в пинпланере (рисунок прикреплял ранее). Но поддержка псевдо-дифференциальности не указана нигде. Сами то смотрели? Мегафункция ALTIOBUF нашлась. Режим псевдо-дифференциальных выходов подключился. Но фиттер всё равно ругается: 1) Если стандарты выводов выбираем 1.8-V HSTL Class I: Error: Can't place node "TX_HS_CP" -- node is a differential I/O node 2) Если стандарты выводов выбираем Differential 1.8-V HSTL Class I: Error: Can't place differential I/O pins and/or associated SERDES transmitters or receivers -- location assignments are illegal Error: Pin "TX_HS_CP" with Differential 1.8-V HSTL Class I I/O standard must be driven by the external clock output of an enhanced PLL Т.е. вроде как продвижение есть. Получается, что выводы выбраны правильно, осталось только подключить некую enhanced PLL. Кто-нибудь знает что это за зверь такой? В мегафункции сериализации ALTLVDS есть такая галка Use External PLL, но при её активации ничего не меняется.
  4. Буфер нужен для возможности переводить вывод в z-состояние, это нужно для реализация CSI. Сам буфер физически размещается непосредственно в ноге ПЛИС ("Fast Output Enable Register" в Assignment Editor). В любом случае, без него - та же самая ошибка вылезает. Вот это и я бы хотел узнать.
  5. Кода нет, есть простейшая реализация на счётчике и мегафункции ALTLVDS (в 9 Квартусе другого не нашёл) в графическом виде: Дифференциальный режим точно поддерживает: А как проверить его на соответствие псевдо-дифференциальности?
  6. Написано лишь: differential SSTL or HSTL outputs can only be implemented as single-ended pseudo-differential outputs Но оно и так понятно, не зря мы в качестве I/O стандарта в Pin Planer выбрали 1.8-V HSTL Class I (который как раз single-ended), хотя там можно было б указать Differential 1.8-V HSTL Class I.
  7. Добрый день. Пытаемся реализовать преобразователь HD-SDI видео в формат MIPI CSI-2. Схема проста: SDI проходит эквалайзер, реклокер и десериализотор, затем в виде 20-разрядного параллельного потока поступает в ПЛИС (EP3C16Q240C8), которая должна его должным образом обработать и в виде CSI-2 выдать наружу, чтобы затем подцепить Raspberry. Интерфейс CSI-2 оказался весьма непростым, его физический уровень представляет собой сочетание дифференциального тактового сигнала и от 1 до N двухуровневых дифференциальных пар, работающих в низкоскоростном служебном (LP, low power) и высокоскоростном (HS, high speed, для передачи данных) режимах: Как реализовать такой режим подсмотрели в отладочной плате 10m50 eval board от той же Altera. С единственным отличием - там используется другое семейство ПЛИС, MAX10 (10M50DAF484C6GES). Нами были выбраны соответствующие диф пары и режимы работы выходных ног ПЛИС: set_location_assignment PIN_146 -to TX_HS_CN set_location_assignment PIN_147 -to TX_HS_CP set_location_assignment PIN_135 -to TX_HS_DN0 set_location_assignment PIN_142 -to TX_HS_DN1 set_location_assignment PIN_137 -to TX_HS_DP0 set_location_assignment PIN_143 -to TX_HS_DP1 set_instance_assignment -name IO_STANDARD "1.8-V HSTL CLASS I" -to TX_HS_CN set_instance_assignment -name IO_STANDARD "1.8-V HSTL CLASS I" -to TX_HS_CP set_instance_assignment -name IO_STANDARD "1.8-V HSTL CLASS I" -to TX_HS_DN0 set_instance_assignment -name IO_STANDARD "1.8-V HSTL CLASS I" -to TX_HS_DN1 set_instance_assignment -name IO_STANDARD "1.8-V HSTL CLASS I" -to TX_HS_DP0 set_instance_assignment -name IO_STANDARD "1.8-V HSTL CLASS I" -to TX_HS_DP1 Таким образом на физическом уровне мы выдержали все рекомендации, которые удалось найти. Далее создали простой тестовый проект в Quartus9.1 для передатчика данных по SCI-2. На данном этапе нам необходимо убедиться, что выбранные нами порты ПЛИС поддерживают требуемые стандарты, и что фиттер всё сможет развести хотя бы в таком примитивном виде. Не хотелось бы попадать в ситуацию, когда печатные платы уже произведены, и только потом обнаружить, что развели их неправильно. Quartus выдал следующий варнинг: Error: Pin "TX_HS_CP" requires a pseudo-differential I/O assignment. Error: Can't fit design in device В Assignment Editor не удалось найти подходящий настроек, чтобы убрать данную ошибку. Да и не понятно откуда ей взяться, ведь всё повторили по примеру вышеуказанной эволюшен боард. Кто-нибудь сталкивался с подобным? Что можете посоветовать попробовать?
  8. Благодарю за подсказки. Описал всё на VHDL, проект компилиуется, ошибок не возникает. Будет ли работать в железе - увидим.
  9. Это уже была бы аппаратная проблема. Если вы имеете ввиду "I/O Standard" в ПинПланере - я выставляю Bus LVDS. Любопытно, а такое вообще практикуют ?)
  10. Задача: передать 10-разрядные данные с одной Альтеры на другую со скоростью 27 Мбит/с. Представляю это так: Альтера-передатчик 10-разрядный поток данных(27Мбит/с) -> сериализатор(270Мбит/с) -> скремблирование(270Мбит/с) -> выходной порт(270Мбит/с) Альтера-приемник входной порт(270Мбит/с) -> дескремблирование(270Мбит/с) -> десериализатор(27Мбит/с) -> 10-разрядный поток данных(27Мбит/с) Для операции сериализации/десериализации использую МегаВизард и функции ALTLVDS_TX и ALTLVDS_RX. Скремблирование - на триггерах и XOR по SMPTE 259M. И вот тут Квартус выдаёт ошибку: Error (15873): Output port DATAOUT of DDIO_OUT primitive "Ser:inst1|altlvds_tx:ALTLVDS_TX_component|Ser_lvds_tx:auto_generated|Ser_ddio_out:ddio_out|ddio_outa_0" must drive input port I of an I/O OBUF primitive Error: Quartus II 32-bit Analysis & Synthesis was unsuccessful. 1 error, 33 warnings Когда делаю на 10Мбит/с и без операции скремблирования - всё работает как часы. Ошибка возникает при добавлении любого лог элемента между выходом сериализатора и выходным портом. Замечу, что на приемной стороне между входным портом и десериализатором никакой ошибки не возникает ни при каких условиях. Думаю, как вариант, можно самому реализовать функцию сериализации на том же VHDL, но не уверен что тогда ПЛИС 270Мбит/с вытянет. Может быть где-нибудь в настройках ALTLVDS или САПРа нужно снять/поставить "галочку", дабы Квартус не ворчал?
  11. Эфо устраивают пару раз в год недорогие курсы по Альтере в СПБ. Здесь на сайте тоже их баннер появлялся. Раз группы набираются значит дело актуальное. Дипломы и сертификаты - это себя потешить, когда инженера берут на работу от него требуют знание и практический опыт, а не бумажки эти. Еще бывает здорово, когда после курсов остаётся обратная связь с преподавателями. Наличие человека с опытом вообще всегда хорошее дело.
  12. http://easyelectronics.ru Освоить AVR по силам любому школьнику. Сам изучил с нуля по книгам и даташитам. Рекомендую "Самоучитель разработчика устройств на микроконтроллерах AVR" А.В.Белова. А затем Евстифеева до дыр.
×
×
  • Создать...