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

 
 
 
Reply to this topicStart new topic
> PLL от Cyclone 10 LP не моделируется в Modelsim, не выход в состояние locked
AVR
сообщение Aug 24 2018, 07:05
Сообщение #1


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

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



Использую Quartus Prime 17.1.0 build 590 + Modelsim Intel FPGA starter edition 10.5b.
Есть пример с PLL, который легко запустить - просто файл sim.bat, только пути поправить:
Прикрепленный файл  test_pll.zip ( 7.06 килобайт ) Кол-во скачиваний: 12

Наблюдается странная проблема:
Прикрепленное изображение

Делаю резет как положено, на вход 200 МГц, что допустимо, тем более в симуляторе. Locked никогда не поднимается. Что я делаю не так?

Читал о всех возможных причинах неработоспособности PLL при моделировании - отсутствие сброса, инициализации, недостаточная точность модели, но у меня ведь 1ns/1ps и этого достаточно.
Самое интересное, что внутри компонента altlvds_rx встроенный в него PLL работает в модели, а ведь там то же самое altpll.


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


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

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



Попробуйте подольше начальный сброс подержать....
Т.е сначала ничего не подаете. Потом подаете сброс, держите какое-то время и снимаете....
У меня только так на моделировании PLL Завелся. Но если есть возможность не моделировать PLL лучше так и делать. Иначе скорость моделирования уменьшается в разы. Фактически быстрее будет отладить автомат управления фазой, и отлаживаться по signal tap, чем ждать результатов моделирования.
Если запустите все-же моделирование PLL учтите, что в прошлых версиях сигнал ответа от PLL phase_done раньше формировался с ошибкой (ошибка только в моделировании, в реальном железе все нормально), исправили ли они в более новых версиях Quartus - не знаю.
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 24 2018, 07:21
Сообщение #3


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

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



Цитата(Flip-fl0p @ Aug 24 2018, 10:09) *
Попробуйте подольше начальный сброс подержать....
Т.е сначала ничего не подаете. Потом подаете сброс, держите какое-то время и снимаете....
У меня только так на моделировании PLL Завелся. Но если есть возможность не моделировать PLL лучше так и делать. Иначе скорость моделирования уменьшается в разы. Фактически быстрее будет отладить автомат управления фазой, и отлаживаться по signal tap, чем ждать результатов моделирования.

Вот, 15 мкс жду, потом 15 мкс сбрасываю, более чем достаточно:
Прикрепленное изображение

Результат нулевой.
Дело в том, что мне надо хитрые режимы работы PLL изучать, пытаться работать с интерфейсами, пока дожидаюсь отладочной платы, а она будет не скоро. Вот почему нужно моделировать именно этот блок PLL.

Так то в моделях я обычно делаю дурилку-заглушку, которая имитирует работу PLL и выдает частоту на выходы с такими же как у PLL названиями, так в самом деле быстрее пашет модель.


--------------------
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 24 2018, 07:21
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(AVR @ Aug 24 2018, 10:05) *
Locked никогда не поднимается. Что я делаю не так?
Читал о всех возможных причинах неработоспособности PLL при моделировании - отсутствие сброса, инициализации, недостаточная точность модели, но у меня ведь 1ns/1ps и этого достаточно.


Я думаю, что для altpll в ее описании где-то сидит задержка по срабатыванию захвата. Наверняка она зависит от разрядности счетчиков и от времени их заполнения входными импульсами...
Надо найти это место и сделать симуляцию больше по времени или солько для симуляции эту задержку покоцать.
Вот у Ксайлинкса есть примитив глобального сброса после загрузки. Он требуется для симуляции памяти, так как мне лень тупо ждать в RTL симуляции, я переношу его в рабочую папку и там убираю задержку...
Я не вижу, как вы в тесте ограничиваете время симуляции? Как Вы его задаете?

PS Но Вы же знаете коэфф деления счетчиков, так что можно даже не забираясь в описания pll, взять функцией и по коэфф. деления счетчиков, вычислить количество импульсов во входном и в выходном делителях и взять от них максимальное. К этому добавить запас и так задать время симуляции командами верилога.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 24 2018, 07:37
Сообщение #5


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

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



Цитата(iosifk @ Aug 24 2018, 10:21) *
Я думаю, что для altpll в ее описании где-то сидит задержка по срабатыванию захвата. Наверняка она зависит от разрядности счетчиков и от времени их заполнения входными импульсами...
Надо найти это место и сделать симуляцию больше по времени или солько для симуляции эту задержку покоцать.
Вот у Ксайлинкса есть примитив глобального сброса после загрузки. Он требуется для симуляции памяти, так как мне лень тупо ждать в RTL симуляции, я переношу его в рабочую папку и там убираю задержку...

100 мкс жду, 100 мкс сброс висит, далее 500 миллисекунд и ничего опять. Мне кажется это запредельно, в altlvds_rx это заводится за микросекунды.

Мне очевидно наличие бага. Слепо предположим - это баг. Что можно с этим сделать? Скомпилировать другую версию библиотек? Взять старую версию Modelsim? Нужно чтоб Cyclone 10 LP умела версия. Может Quartus Prime 18? Может версию для Linux?


--------------------
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 24 2018, 07:43
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(AVR @ Aug 24 2018, 10:37) *
100 мкс жду, 100 мкс сброс висит, далее 500 миллисекунд и ничего опять. Мне кажется это запредельно, в altlvds_rx это заводится за микросекунды.

Мне очевидно наличие бага. Слепо предположим - это баг. Что можно с этим сделать? Скомпилировать другую версию библиотек? Взять старую версию Modelsim? Нужно чтоб Cyclone 10 LP умела версия. Может Quartus Prime 18? Может версию для Linux?


Первое что надо делать - официально обратиться в техподдержку Альтеры. Второе - тоже самое написать на Альтеровский форум.
Просто, если это баг, то там статистика больше.
Потом на калькуляторе посчитать, как я написал в предыдущем посте про время симуляции. Наверняка в ПЛЛ задержка определяется счетчиками, и задается в параметрах. Поэтому время может и отличаться на порядки...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 24 2018, 07:52
Сообщение #7


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

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



Цитата(iosifk @ Aug 24 2018, 10:43) *
Первое что надо делать - официально обратиться в техподдержку Альтеры. Второе - тоже самое написать на Альтеровский форум.
Просто, если это баг, то там статистика больше.
Потом на калькуляторе посчитать, как я написал в предыдущем посте про время симуляции. Наверняка в ПЛЛ задержка определяется счетчиками, и задается в параметрах. Поэтому время может и отличаться на порядки...

Время задается в sim.do, run 500ms. Прописал в файле pll масштаб из 1ps/1ps в 1ps/1fs, в основном файле теста тоже такие единицы и поправил периоды - опять ноль эффекта.

Я сейчас напишу им в техподдержку, но создавал тему и думал многие этим пользуются, уж PLL это вообще товар первой необходимости. Странно что ни у кого бага с PLL нет, или решается большим временем моделирования. В Xilinx ISE/Vivado проблем с PLL вообще ноль - работает с пол оборота в обоих ихних симуляторах.


--------------------
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Aug 24 2018, 08:59
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Приветствую.
Даю наводку - а что за порт такой у pll - inclk0(inclk0)?
И где он на времянке?


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 24 2018, 09:23
Сообщение #9


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

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



Цитата(warrior-2001 @ Aug 24 2018, 11:59) *
Даю наводку - а что за порт такой у pll - inclk0(inclk0)?
И где он на времянке?

Ох елки, это эпический фейспалм с пробитием моей пустой черепной коробки...
Тем не менее, после исправления - результат такой же. Неделю назад пробовал аналогичный пример в составе другого проекта, тогда я подать входную частоту не забыл. Результат все равно - на выходах Z.

Вот версия с исправлением:
Прикрепленный файл  test_pll2.zip ( 7.19 килобайт ) Кол-во скачиваний: 9

Не работает все равно. Выведены внутренние сигналы модели PLL, этих сигналов там много. Многие висят в Z состоянии. Не понимаю почему. Входная тактовая теперь видна.

Сообщение отредактировал AVR - Aug 24 2018, 09:39


--------------------
Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение Aug 24 2018, 17:55
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Цитата(AVR @ Aug 24 2018, 12:23) *
Ох елки, это эпический фейспалм с пробитием моей пустой черепной коробки...
Тем не менее, после исправления - результат такой же. Неделю назад пробовал аналогичный пример в составе другого проекта, тогда я подать входную частоту не забыл. Результат все равно - на выходах Z.

Вот версия с исправлением:
Прикрепленный файл  test_pll2.zip ( 7.19 килобайт ) Кол-во скачиваний: 9

Не работает все равно. Выведены внутренние сигналы модели PLL, этих сигналов там много. Многие висят в Z состоянии. Не понимаю почему. Входная тактовая теперь видна.


еще в Cyclone V надо было модель PLL использовать, а не файл для синтеза. У Вас скорее всего Modelsim пишет warning типа "PLL is not bound"

поищите у себя в папке проекта msim_setup.tcl и проверьте какой файл команда "com" компилирует
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 25 2018, 19:09
Сообщение #11


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

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



Цитата(Sergey_Bekrenyov @ Aug 24 2018, 20:55) *
еще в Cyclone V надо было модель PLL использовать, а не файл для синтеза. У Вас скорее всего Modelsim пишет warning типа "PLL is not bound"
поищите у себя в папке проекта msim_setup.tcl и проверьте какой файл команда "com" компилирует

Вот том то и беда, что не припоминаю такого варнинга, ни единой ошибки. Самое смешное что в altlvds_rx/tx если включать PLL - всё прекрасно моделируется! Но отдельный PLL я ничего не компилирую, вот что есть в связке Quartus+Modelsim - то и должно по идее быть идеально совместимо между собой.


--------------------
Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение Aug 26 2018, 16:47
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Цитата(AVR @ Aug 25 2018, 22:09) *
.. вот что есть в связке Quartus+Modelsim - то и должно по идее быть идеально совместимо между собой.


Нy ведь и программировать надо без ошибок в идеальном случае sm.gif

Я лучше сам напишу скрипт и буду свои ошибки исправлять, а не "индийского GUI" ( привет Кузьмичу sm.gif )
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th April 2024 - 09:18
Рейтинг@Mail.ru


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