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

Несоответствие питания банка указанному в проекте...

3 часа назад, Петр Юркевич сказал:

Здравствуйте! Расскажите, пожалуйста, как через Квартус настроить LVDS (Чип Cyclone V). Я пробовал несколько разных вариантов, но на все он выдаёт разные ошибки. Насколько я понял из вашего ответа, легально настроить никак не получится, если банк запитан от 3.3V?

Для Cyclone V  VCCIO и VCCPD должно быть 2,5 В для LVDS. Поэтому в Quartuse надо прописать, что банк запитан от 2,5 В, тогда он не будет выдавать ошибки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день!

Разделите задачи для себя.

1 - скомпилировать - тогда только ставить питание банка с LVDS выводом в 2.5.

2 - чтобы уверенно заработало - тут необходимо анализировать схемотехнику. Вполне допускаю, что при определённых раскладах даже будет работать, однако в серийное изделие такие костыли точно ставить не следует, ибо от устройства к устройству возможны сюрпризы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, Inanity said:

zombi, попробуйте этот эксперимент проделать, это недолго и несложно. Думаю, что результат будет интересен всем. 

Тюю, да пожалуйста. Вот проект ). Все пины в разных банках. Никаких временных ограничений не задавал. Чип MAX10.

Img.thumb.jpg.ab42d2f090b9a96257594c72b99cf55a.jpg

Скомпилировал три варианта :

M33 - всем банкам назначил 3.3В

M25 - IN-3.3, OutP & OutN - 2.5В

M18 - IN-3.3, OutP & OutN - 1.8В

Сравнил POF файлы :

Spoiler

Сравнение файлов M33.pof и M25.POF
00000096: BA 3D
0001D147: 6B EB
0001D14F: 67 E7
0001D153: EF 6F
0001D16B: BF 3F
0001D1C4: A1 E9
0001D1C5: 48 74
0001D42C: 04 00
0001D42E: 00 04
0001D435: 00 04
0001D438: 04 00
0001D440: 04 00
0001D442: 04 00
0001D443: 00 04
0001D4EC: 10 4E
0001D4ED: D7 9F
0001D93E: 08 00
0001D940: 00 08
0001D944: 08 00
0001D945: 00 08
0001D947: 00 08
0001D94A: 08 00
0001D952: 08 00
0001DA14: C2 55
0001DA15: 9D FB
0004E90A: D9 87
0004E90B: B8 6B

 

Spoiler

Сравнение файлов M33.pof и M18.POF
00000096: BA 32
00000097: 32 33
0001D15B: E7 67
0001D167: 3F BF
0001D16B: BF 3F
0001D1C4: A1 8D
0001D1C5: 48 88
0001D42A: 00 04
0001D42C: 04 00
0001D42D: 00 04
0001D42E: 00 04
0001D434: 00 04
0001D435: 00 04
0001D438: 04 00
0001D43B: 04 00
0001D440: 04 00
0001D441: 00 04
0001D442: 04 00
0001D4EC: 10 41
0001D4ED: D7 1B
0001D92C: F7 FF
0001D93D: 08 00
0001D93E: 08 00
0001D93F: 00 08
0001D940: 00 08
0001D944: 08 00
0001D946: 00 08
0001D947: 00 08
0001D94A: 08 00
0001D952: 08 00
0001D953: 00 08
0001DA14: C2 52
0001DA15: 9D 2D
0004E90A: D9 6B
0004E90B: B8 DF

 

Spoiler

Сравнение файлов M25.pof и M18.POF
00000096: 3D 32
00000097: 32 33
0001D147: EB 6B
0001D14F: E7 67
0001D153: 6F EF
0001D15B: E7 67
0001D167: 3F BF
0001D1C4: E9 8D
0001D1C5: 74 88
0001D42A: 00 04
0001D42D: 00 04
0001D434: 00 04
0001D43B: 04 00
0001D441: 00 04
0001D443: 04 00
0001D4EC: 4E 41
0001D4ED: 9F 1B
0001D92C: F7 FF
0001D93D: 08 00
0001D93F: 00 08
0001D945: 08 00
0001D946: 00 08
0001D953: 00 08
0001DA14: 55 52
0001DA15: FB 2D
0004E90A: 87 6B
0004E90B: 6B DF

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, dinam сказал:

Для Cyclone V  VCCIO и VCCPD должно быть 2,5 В для LVDS. Поэтому в Quartuse надо прописать, что банк запитан от 2,5 В, тогда он не будет выдавать ошибки

Подскажите, пожалуйста, где это в Квартусе сделать?

И ещё вопрос по поводу организации передачи и приёма. Это делается при помощи буфера, преобразующего сигнал из моно в дифференциальный? Или Квартус должен сам с этим разобраться и создать соответствующую логику, а мне надо только задать стандарт в PinPlanner?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 minutes ago, Петр Юркевич said:

Квартус должен сам с этим разобраться и создать соответствующую логику, а мне надо только задать стандарт в PinPlanner?

да.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, zombi said:

Тюю, да пожалуйста. Вот проект ). Все пины в разных банках. Никаких временных ограничений не задавал. Чип MAX10.

А RBF он генерирует? Давайте лучше его сравним. Это точно чистый битстрим без лишней шелухи, чего не могу сказать про POF.
И да, вы уверены, что если два раза подряд скомпилировать одно и то же, то разницы нет?

P.S. альтерщики, извините, но как же надоело разнообразие форматов по сути одного и того же: sof, pof, jic, rbf, rpd...

Изменено пользователем Inanity

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, Inanity said:

И да, вы уверены, что если два раза подряд скомпилировать одно и то же, то разницы нет?

Уверен на все 100%

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, zombi said:

Уверен на все 100%

Понятно, жаль.

Кстати, проделал почти тоже самое на xilinx spartan-7, только проект ещё проще, просто один порт выходит из модуля и выводит единицу. Скомпилировал с конфигом LVCMOS18, потом LVCMOS25. Сравнил, в итоге где-то в дебрях битстрима появилась разница, естественно разница была и в контрольной сумме в конце. Ещё была разница в заголовке, т.к. там в тексте сохраняется время компиляции, но это не в счёт. Для чистоты эксперимента вернул опять LVCMOS18, в итоге по сравнению с первой компиляцией разница только в заголовке в начале, время компиляции отличается, что логично. Другой разницы нет и контрольная сумма в конце та же самая.

Печаль, видимо всё таки эти настройки что-то изменяют в IO-портах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 hours ago, Inanity said:

А RBF он генерирует? Давайте лучше его сравним. Это точно чистый битстрим без лишней шелухи, чего не могу сказать про POF.

Хотел RBF сгенерить, но не смог ;-)

 

1.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, Inanity said:

Печаль, видимо всё таки эти настройки что-то изменяют в IO-портах.

Получается да. :-(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 часов назад, Inanity сказал:

Печаль, видимо всё таки эти настройки что-то изменяют в IO-портах.

А почему это вас так удивляет? Было бы странно, если бы изменеие настроек никак не отражалось на результате. Зачем бы тогда эти настройки были нужны?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, andrew_b said:

А почему это вас так удивляет? Было бы странно, если бы изменеие настроек никак не отражалось на результате. Зачем бы тогда эти настройки были нужны?

 

Возьмём какую-нибудь микросхему CMOS логики, например, тот же буферный элемент. У неё будет некоторый диапазон рабочего напряжения. Все пороговые уровни лог.единицы, нуля на вход и выход имеют некоторую естественную зависимость от напряжения питания микросхемы. Я, конечно, не тополог/микроэлектронщик, но насколько мне известно такая простая вещь не нуждается в какой-либо обратной связи от напряжения питания. Иными словами, буфер не знает каким напряжением он запитан, но характеристики его работы от входного напряжения известны. Если попытать спроектировать это видение на ПЛИС, то непонятно, зачем конфигурации знать каким напряжением питается тот же LVCMOS буфер. Я прекрасно понимаю, что есть разница, когда мы задействуем другой тип буфера или стандарт, LVDS/SSTL/HSTL и тд...но что там может дополнительно конфигурироваться при изменении питания LVCMOS - мне не очень понятно.

Да и потом есть ситуации, когда напряжение банка хочется изменять на ходу. Например тот же SDIO, там инициализация на 3.3, а потом подаётся карточке специальная команда и питание можно понижать до 1.8 и повышать частоту интерфейса. Как это грамотно сделать на ПЛИС, если конфигурация фактически не предполагает возможность изменения питания банка на горячую? Внешний буфер - не в счёт.

Изменено пользователем Inanity

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

1 minute ago, Inanity said:

...но что там может дополнительно конфигурироваться при изменении питания LVCMOS - мне не очень понятно.
 

Например менять настройки ограничения макс. выходного тока или slew rate  которые в FPGA программируется для выходных пинов.  

 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 minutes ago, RobFPGA said:

Приветствую!

Например менять настройки ограничения макс. выходного тока или slew rate  которые в FPGA программируется для выходных пинов.  

 

Удачи! Rob.

Нет, ну это то как раз понятно. Slew rate и drive strength это ок, принимаем, а напряжение то зачем ей знать? Оу...пока писал это предложение, кажется, понял. Напряжение то влияет на параметры тех же slew rate или drive strength. Вот компилятор и подкручивает эти параметры в соответствии с напряжением банка, например. Да, и получается, что если сменить напряжение без ведома ПЛИС, то характеристики буфера поплывут. Спасибо за наводку)

Изменено пользователем Inanity

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, Inanity said:

Вот компилятор и подкручивает эти параметры в соответствии с напряжением банка, например.

В моём эксперименте с тремя пинами в разных банках кроме указания напр. питания других настроек нет вообще никаких.

И тем не менее прошивки отличаются. Что там компилятор может подкручивать, и из каких соображений?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...