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

 
 
> Передатчик 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 - 19)
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
Flip-fl0p
сообщение Apr 24 2018, 08:04
Сообщение #16


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



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

Существует ли какой-нибудь ещё способ засерилизовать параллельный поток данных, чтоб несколько сот Мбит потянуло?

LVDS приемник я писал свой. Максимум по спецификации на чип вытягивал.
Не думаю, что нельзя написать свой передатчик.
P.S. Главное, чтобы выходы с DDR регистров можно было назначить на соответствующий стандарт.
Go to the top of the page
 
+Quote Post
AVR
сообщение Apr 24 2018, 08:16
Сообщение #17


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

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



Цитата(Flip-fl0p @ Apr 24 2018, 11:04) *
LVDS приемник я писал свой. Максимум по спецификации на чип вытягивал.
Не думаю, что нельзя написать свой передатчик.
P.S. Главное, чтобы выходы с DDR регистров можно было назначить на соответствующий стандарт.

Я немного удивлен, разве ALTLVDS не использует некий аппаратный компонент? Неужели там простейшая логика, которая тактируется на допустим восьмикратной частоте от обычного PLL? А как же синхронизация?

Насколько я понял, у автора темы проблема, что "по отдельности выводы работают в HSTL" на соответствующих выводах. А добавление ALTLVDS всё ломает.


--------------------
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Apr 24 2018, 09:25
Сообщение #18


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(AVR @ Apr 24 2018, 11:16) *
Я немного удивлен, разве ALTLVDS не использует некий аппаратный компонент? Неужели там простейшая логика, которая тактируется на допустим восьмикратной частоте от обычного PLL? А как же синхронизация?

Насколько я понял, у автора темы проблема, что "по отдельности выводы работают в HSTL" на соответствующих выводах. А добавление ALTLVDS всё ломает.

Писал свой приемник для cyclone V. Среди аппаратных блоков - там есть специальный высокоскоростной FIFO буфер и DDR регистр по входу. FIFO буфер подключается только при использовании мегафункции ALT_LVDS_RX. К сожалению, найти способ как получить доступ к этому буферу в обход мегафункции я не нашел. Однако полноценные 800 Mbs по спецификации и даже чуточку больше я получил.
Насколько я помню, в cyclone III есть только DDR регистры во входных\выходных ножках. А вот высокоскоростного FIFO там нет. Поэтому и считаю, что приемник или передатчик можно написать самому применяя примитивы DDR регистров.
Go to the top of the page
 
+Quote Post
AVR
сообщение Apr 24 2018, 09:29
Сообщение #19


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

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



Цитата(Flip-fl0p @ Apr 24 2018, 12:25) *
Насколько я помню, в cyclone III есть только DDR регистры во входных\выходных ножках. А вот высокоскоростного FIFO там нет. Поэтому и считаю, что приемник или передатчик можно написать самому применяя примитивы DDR регистров.

Ясно, получается, для вывода 400 Мбит достаточно лишь заклокать DDR регистр от 200 МГц? Учитывая малую локализацию этого кусочка схемы, на такой частоте вполне заведется.


--------------------
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Apr 24 2018, 09:40
Сообщение #20


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(AVR @ Apr 24 2018, 12:29) *
Ясно, получается, для вывода 400 Мбит достаточно лишь заклокать DDR регистр от 200 МГц? Учитывая малую локализацию этого кусочка схемы, на такой частоте вполне заведется.

Именно так.
Go to the top of the page
 
+Quote Post

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

 


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


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