|
|
|
PLL от Cyclone 10 LP не моделируется в Modelsim, не выход в состояние locked |
|
|
|
Aug 24 2018, 07:05
|
фанат 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.
--------------------
|
|
|
|
|
Aug 24 2018, 07:21
|
фанат 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 названиями, так в самом деле быстрее пашет модель.
--------------------
|
|
|
|
|
Aug 24 2018, 07:21
|
Гуру
Группа: Модераторы
Сообщений: 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
|
|
|
|
|
Aug 24 2018, 07:43
|
Гуру
Группа: Модераторы
Сообщений: 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
|
|
|
|
|
Aug 24 2018, 07:52
|
фанат 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 вообще ноль - работает с пол оборота в обоих ихних симуляторах.
--------------------
|
|
|
|
|
Aug 24 2018, 09:23
|
фанат 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
--------------------
|
|
|
|
|
Aug 24 2018, 17:55
|
Местный
Группа: Свой
Сообщений: 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" компилирует
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|