Jump to content

    
zombi

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

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites

Добрый день!

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

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

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

Share this post


Link to post
Share on other sites
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

 

 

Share this post


Link to post
Share on other sites
9 часов назад, dinam сказал:

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

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

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

Share this post


Link to post
Share on other sites
20 minutes ago, Петр Юркевич said:

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

да.

Share this post


Link to post
Share on other sites
7 hours ago, zombi said:

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

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

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

Edited by Inanity

Share this post


Link to post
Share on other sites
3 hours ago, zombi said:

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

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

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

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

Share this post


Link to post
Share on other sites
18 hours ago, Inanity said:

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

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

 

1.jpg

Share this post


Link to post
Share on other sites
12 часов назад, Inanity сказал:

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

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

 

Share this post


Link to post
Share on other sites
10 hours ago, andrew_b said:

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

 

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

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

Edited by Inanity

Share this post


Link to post
Share on other sites

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

1 minute ago, Inanity said:

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

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

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
7 minutes ago, RobFPGA said:

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

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

 

Удачи! Rob.

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

Edited by Inanity

Share this post


Link to post
Share on other sites
7 hours ago, Inanity said:

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.