реклама на сайте
подробности

 
 
> Передатчик CSI-2 на CycloneIII, Error: Pin "ХХХ" requires a pseudo-differential I/O assignment
Max42
сообщение Apr 19 2018, 11:15
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 16-02-13
Из: Ленинградушка
Пользователь №: 75 653



Добрый день.
Пытаемся реализовать преобразователь 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). Нами были выбраны соответствующие диф пары и режимы работы выходных ног ПЛИС:



CODE
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 не удалось найти подходящий настроек, чтобы убрать данную ошибку. Да и не понятно откуда ей взяться, ведь всё повторили по примеру вышеуказанной эволюшен боард.
Кто-нибудь сталкивался с подобным? Что можете посоветовать попробовать?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
Realking
сообщение Apr 19 2018, 12:22
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 498
Регистрация: 4-10-04
Из: Нижний Новгород
Пользователь №: 771





https://www.altera.com/support/support-reso...032014_345.html


--------------------
Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается.
Go to the top of the page
 
+Quote Post
Max42
сообщение Apr 19 2018, 12:37
Сообщение #3





Группа: Участник
Сообщений: 12
Регистрация: 16-02-13
Из: Ленинградушка
Пользователь №: 75 653



Цитата(Realking @ Apr 19 2018, 15:22) *

Написано лишь:
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.
Go to the top of the page
 
+Quote Post
Realking
сообщение Apr 19 2018, 13:23
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 498
Регистрация: 4-10-04
Из: Нижний Новгород
Пользователь №: 771



Цитата(Max42 @ Apr 19 2018, 15:37) *
Написано лишь:
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.


код покажи
какой примитив юзаешь?


--------------------
Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается.
Go to the top of the page
 
+Quote Post
XVR
сообщение Apr 19 2018, 13:51
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Max42 @ Apr 19 2018, 14:15) *
CODE
set_location_assignment PIN_146 -to TX_HS_CN

Quartus выдал следующий варнинг:
Error: Pin "TX_HS_CP" requires a pseudo-differential I/O assignment.
Error: Can't fit design in device
Проверьте ваш PIN_146 на FPGA - скорее всего он не поддерживает 'pseudo-differential I/O'

Go to the top of the page
 
+Quote Post
Max42
сообщение Apr 19 2018, 14:13
Сообщение #6





Группа: Участник
Сообщений: 12
Регистрация: 16-02-13
Из: Ленинградушка
Пользователь №: 75 653



Цитата(Realking @ Apr 19 2018, 16:23) *
код покажи
какой примитив юзаешь?

Кода нет, есть простейшая реализация на счётчике и мегафункции ALTLVDS (в 9 Квартусе другого не нашёл) в графическом виде:



Цитата(XVR)
Проверьте ваш PIN_146 на FPGA - скорее всего он не поддерживает 'pseudo-differential I/O'

Дифференциальный режим точно поддерживает:


А как проверить его на соответствие псевдо-дифференциальности?

Сообщение отредактировал Max42 - Apr 19 2018, 14:16
Go to the top of the page
 
+Quote Post
AVR
сообщение Apr 19 2018, 14:23
Сообщение #7


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Max42 @ Apr 19 2018, 17:13) *
Кода нет, есть простейшая реализация на счётчике и мегафункции ALTLVDS (в 9 Квартусе другого не нашёл) в графическом виде:

Зачем на этой схеме буфер с управлением от button? Нельзя ли попробовать без него?
Для сериализации 56МГц*8бит в 448МГц*1бит точно ли нужен именно ALTLVDS, а не какое-то другое IP-ядро?


--------------------
Go to the top of the page
 
+Quote Post
Max42
сообщение Apr 19 2018, 14:36
Сообщение #8





Группа: Участник
Сообщений: 12
Регистрация: 16-02-13
Из: Ленинградушка
Пользователь №: 75 653



Цитата(AVR @ Apr 19 2018, 17:23) *
Зачем на этой схеме буфер с управлением от button? Нельзя ли попробовать без него?

Буфер нужен для возможности переводить вывод в z-состояние, это нужно для реализация CSI. Сам буфер физически размещается непосредственно в ноге ПЛИС ("Fast Output Enable Register" в Assignment Editor).
В любом случае, без него - та же самая ошибка вылезает.

Цитата(AVR @ Apr 19 2018, 17:23) *
Для сериализации 56МГц*8бит в 448МГц*1бит точно ли нужен именно ALTLVDS, а не какое-то другое IP-ядро?

Вот это и я бы хотел узнать.

Сообщение отредактировал Max42 - Apr 19 2018, 14:37
Go to the top of the page
 
+Quote Post
Realking
сообщение Apr 20 2018, 04:50
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 498
Регистрация: 4-10-04
Из: Нижний Новгород
Пользователь №: 771



Цитата(Max42 @ Apr 19 2018, 17:36) *
Буфер нужен для возможности переводить вывод в z-состояние, это нужно для реализация CSI. Сам буфер физически размещается непосредственно в ноге ПЛИС ("Fast Output Enable Register" в Assignment Editor).
В любом случае, без него - та же самая ошибка вылезает.


Вот это и я бы хотел узнать.


просто в циклоне 5 я юзал cyclonev_pseudo_diff_out

и уже после него 2 ALTIOBUF

в циклоне 3 скорее всего тоже есть чтото подобное

думаю (даже уверен), что в мегавизарде ALTIOBUF , если поставить use differential mode - pseudo_diff автоматом встроится


--------------------
Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается.
Go to the top of the page
 
+Quote Post
XVR
сообщение Apr 20 2018, 05:50
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Max42 @ Apr 19 2018, 17:13) *
А как проверить его на соответствие псевдо-дифференциальности?

Скачайте отсюда https://www.altera.com/support/literature/l...tml#cyclone-iii таблицу с пинаутом и посмотрите в ней
Go to the top of the page
 
+Quote Post
AVR
сообщение Apr 22 2018, 13:51
Сообщение #11


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(XVR @ Apr 20 2018, 08:50) *
Скачайте отсюда https://www.altera.com/support/literature/l...tml#cyclone-iii таблицу с пинаутом и посмотрите в ней

Мне стало любопытно и я скачал для примера https://www.altera.com/content/dam/altera-w...one3/ep3c16.pdf
Чтоб мне провалиться на этом самом месте, если там есть хоть единое упоминание слова "pseudo".
Нет ли никакой ошибки? Это правильная ссылка? На что смотреть в таблице???


--------------------
Go to the top of the page
 
+Quote Post
Max42
сообщение Apr 23 2018, 07:02
Сообщение #12





Группа: Участник
Сообщений: 12
Регистрация: 16-02-13
Из: Ленинградушка
Пользователь №: 75 653



Цитата(XVR @ Apr 20 2018, 08:50) *
Скачайте отсюда https://www.altera.com/support/literature/l...tml#cyclone-iii таблицу с пинаутом и посмотрите в ней

Выбранные мной пины поддерживают дифференциальный режим, в таблице это указано ровно как и в пинпланере (рисунок прикреплял ранее). Но поддержка псевдо-дифференциальности не указана нигде. Сами то смотрели?

Цитата(Realking)
думаю (даже уверен), что в мегавизарде ALTIOBUF , если поставить use differential mode - pseudo_diff автоматом встроится

Мегафункция 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, но при её активации ничего не меняется.
Go to the top of the page
 
+Quote Post
XVR
сообщение Apr 23 2018, 14:23
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Про дифференциальные HSTL можете забыть сразу:
Цитата
The
differential HSTL input standard is available on GCLK pins only, treating the
differential inputs as two single-ended HSTL and only decoding one of them. The
differential HSTL output standard is only supported at the PLL#_CLKOUT pins using
two single-ended HSTL output buffers (PLL#_CLKOUTp and PLL#_CLKOUTn), with the
second output programmed to have opposite polarity.

https://www.altera.com/content/dam/altera-w...iv/cyiv-5v1.pdf стр 141 (6-35)
Go to the top of the page
 
+Quote Post
Max42
сообщение Apr 23 2018, 14:58
Сообщение #14





Группа: Участник
Сообщений: 12
Регистрация: 16-02-13
Из: Ленинградушка
Пользователь №: 75 653



Цитата(XVR @ Apr 23 2018, 17:23) *
Про дифференциальные HSTL можете забыть сразу:

https://www.altera.com/content/dam/altera-w...iv/cyiv-5v1.pdf стр 141 (6-35)

Когда тестировал назначение дифференциального режима выбирал пин 117 для p-полярности. Второй (пин 118) Квартус для n-полярности подставил сам. Это и есть PLL4_CLKOUTx - выводы у моего циклона. Получается, ошибок быть не должно, но они есть.
Go to the top of the page
 
+Quote Post
Max42
сообщение Apr 24 2018, 07:55
Сообщение #15





Группа: Участник
Сообщений: 12
Регистрация: 16-02-13
Из: Ленинградушка
Пользователь №: 75 653



Получается так, что если убрать функцию ALTLVDS, то появляется возможность управлять выводами по отдельности (в стандарте 1.8-V HSTL Class I).
А с ней - не хочет хоть ты убейся.

Существует ли какой-нибудь ещё способ засерилизовать параллельный поток данных, чтоб несколько сот Мбит потянуло?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 20:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01494 секунд с 7
ELECTRONIX ©2004-2016