pavlovconst 5 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба После реконфигурации нужно обязательно сбросить PLL. Сигнал асинхронный, в даташите должна быть написана минимальная длительность Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба Попробовал убрать сигнал сброса PLL - ничего не изменилось, значит неправильно формировал. Сделал сброс по-другому - фазы всегда стали правильные, но перестала работать подстройка фазы. Где-то еще ошибка у меня осталась. А частота меняется и без сброса PLL, поэтому думал, что со сбросом все правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба Ничего не понимаю. Давно делал динамический сдвиг фазы - все работало с 1-ого раза. Сейчас не работает. Конфигурацию и сброс не делаю, только сдвиг фазы. "phasedone" всегда в "1", и не падает в "0" после подачи "1" на "phasestep". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба Так и не поборол. Вообще-то у Циклона-4 есть errata на динамический сдвиг фазы в PLL, но другого плана. "phasedone" стал переключаться после правки "defparam altpll_component.inclk0_input_frequency = 40000" на " = 20000", хотя клок у меня 25МГц (раньше для некоторых кристаллов приходилось выставлять завышенную входную частоту, иначе PLL вообще не работала, даже со статической конфигурацией). Но динамические сдвиги все-равно не работают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба Заработало с такими параметрами (входная частота 25МГц, но указано 50МГц): altpll_component.vco_phase_shift_step = 100, altpll_component.inclk0_input_frequency = 20000, так что проблема была с кристаллом, или с параметрами конфигурации, но не с кодом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 25 февраля, 2021 Опубликовано 25 февраля, 2021 · Жалоба Одновременно реконфигурировать и частоту, и фазу у меня не получилось. Для заданной (в параметрах мегафункции) частоты фаза правильно управляется, для произвольной частоты после реконфигурации - получается неправильный шаг фазы. Хочу недостижимого? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 26 февраля, 2021 Опубликовано 26 февраля, 2021 · Жалоба Можете описать ваш процесс изменения частоты и потом фазы. Что получаете и что хотите. Я не совсем понимаю, как вы хотите двигать фазу сгенерированной произвольной частоты относительно неизменной опоры и как оцениваете результат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 26 февраля, 2021 Опубликовано 26 февраля, 2021 (изменено) · Жалоба Хочу получить генератор ступенчатой трапеции с меняемой частотой. Сложение N меандров со сдвинутыми фазами дает искомое. PLL с N выходами может дать N меандров одинаковой перестраиваемой частоты. Вопрос, как обеспечить требуемый относительный сдвиг фаз этих меандров. Изменено 26 февраля, 2021 пользователем Leka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 26 февраля, 2021 Опубликовано 26 февраля, 2021 · Жалоба Странная задача для ПЛИС. Вот что видится - при загрузке и активации прошивки сброс у вас всегда со входа PLL снимается в одно и то же время. Фаза при этом стабильна и вы ей управляете. Как только вы поменяли частоту - необходимо пересбросить PLL. И, в зависимости от её типа и характеристик, вы получите различные доступные варианты сдвигов фазы. И тут 2 проблемы: 1 - проверьте, будет ли работать сдвиг фазы для варианта частоты номер 2, если её установить сразу после загрузки ПЛИС (и в мегавизадре необходимо проверить и на модели); 2 - насколько точно вы снимаете сброс с PLL относительно вновь установленной выходной частоты (на входе 10 МГц, на выходе 127,764 МГц - фаза такого выходного клока будет плавать, ибо клок не кратен входному и предугадать начальный момент фазы едва ли возможно)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 26 февраля, 2021 Опубликовано 26 февраля, 2021 · Жалоба Я стесняюсь спросить, но что мешает сделать обычный проект на 100-200 MHz и посредством автоматов/логики + счётчиков реализовать задуманное? 200 Мегагерцовый проект позволяет спокойно создавать 5 фаз частотой до 40 MHz. За то всё будет в одном домене и никаких странных плясок с бубном и пересбросов PLL или ещё хуже - попыток повторить PLL-функционал на логике. И приведёт к необоснованной сложности на ровном месте. p.s. Если нужно увеличить разрешающую способность, можно сформировать 4 частоты на 200 MHz со сдвигом фаз в 1/4 периода. Итого миксуя установление/сброс с разных клоковых доменов, можно добиться 200*4=800 MHz разрешение. Думаю этого будет сверхдостаточно, чтобы сформировать любые выходные данные с частотой от 20 до 80 MHz с шагом дискретизации 1,25 ns. Правда я представляю как сойдёт с ума STA в таком проекте) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 26 февраля, 2021 Опубликовано 26 февраля, 2021 · Жалоба 7 minutes ago, Nick_K said: 200 Мегагерцовый проект позволяет спокойно создавать 5 фаз частотой до 40 MHz. Это уже есть, но нужна выходная частота минимум до 500МГц. 9 minutes ago, Nick_K said: За то всё будет в одном домене и никаких странных плясок с бубном Если клок перестраиваемый, единственность домена не гарантирует синхронность дизайна, и все-равно потребует "странных плясок". Пример нерабочего кода c перестраиваемым клоком genclk c выхода реконфигурируемой PLL: reg [`MSB:0] sr = `CONST; always@(posedge genclk) sr<={sr, sr[`MSB]}; Сохранение образа sr не гарантируется при перестройке частоты genclk. 56 minutes ago, warrior-2001 said: проверьте, будет ли работать сдвиг фазы для варианта частоты номер 2, если её установить сразу после загрузки ПЛИС (и в мегавизадре необходимо проверить и на модели); Да, это работает, поэтому запасной вариант - скриптом сделать прошивки на все требуемые частоты, и загружать в ПЛИС нужную. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 26 февраля, 2021 Опубликовано 26 февраля, 2021 · Жалоба 5 minutes ago, Leka said: Если клок перестраиваемый Я как раз и пытаюсь донести, что лучше воздержаться от перенастройки клока. Любое изменение частоты потребует 3 действий (что очень увеличивает латентность схемы): 1. Установка новой частоты и сброс PLL. Иначе рабочий режим может быть неопределён. 2. Конфигурация PLL, Происходит автоматически, но занимает время. 3. Выдержка времени, когда состояние PLL установится и заблокируется. А это очень много времени. Иногда до десятков микросекунд. Если такие ограничения Вас не смущают, чтоже можете продолжать проектировать) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 26 февраля, 2021 Опубликовано 26 февраля, 2021 · Жалоба Без перестройки частоты не получить малый относительный шаг изменения частоты. Латентность не имеет значения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 26 февраля, 2021 Опубликовано 26 февраля, 2021 (изменено) · Жалоба Вроде нашел компромиссное решение. Весь диапазон перестройки частоты ступенчатой трапеции надо разбить на октавы, тк частота VCO перестраивается примерно в 2 раза. Для каждого поддиапазона создать свои прошивки с заданными в конфигурации требуемыми сдвигами фаз. В пределах каждого поддиапазона можно перестраивать выходную частоту меандров обычным способом, без динамической подстройки фаз меандров - она сохраняется правильной. Для перекрытия с малым относительным шагом диапазона 5МГц...640МГц надо 7 прошивок (загружаемые с МК или ПК). Изменено 26 февраля, 2021 пользователем Leka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться