Leka 1 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба Фазы выходных клоков после реконфигурации случайные. Пример - задаем одинаковую частоту для всех выходных клоков, фазы получаются с точностью 180град, случайным образом. Как избежать этого, и получать заданную фазу? Если без реконфигурации, фазы получаются такие, как задано в корке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 8 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба может там делители (триггера) какие есть - то есть в них случайные 1 и 0 остаются, чтобы фазы выровнять должен быть сброс это про плл вообще, насколько для циклона справедливо - хз Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 2 часа назад, Leka сказал: Фазы выходных клоков после реконфигурации случайные. Пример - задаем одинаковую частоту для всех выходных клоков, фазы получаются с точностью 180град, случайным образом. Как избежать этого, и получать заданную фазу? Если без реконфигурации, фазы получаются такие, как задано в корке. А как реконфигурируете PLL ? Как получаете конфиги ? Какие настройки изначальные ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба В документе https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cyclone-iv/cyiv-52003.pdf упоминается Quote ALTPLL_RECONFIG Instance Dynamic PLL reconfiguration controller instance generated by the ALTPLL_RECONFIG Megawizard Plug-In Manager Может Вам его применить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба Один раз создал при помощи мегавизарда Верилоговский файл мегафункции ALTPLL, далее все изменения делаю непосредственно в этом файле. Все стабильно работает, если не делать реконфигурацию, все фазы всегда правильные. Реконфигурацию делаю при помощи этой-же функции, загоняя 144 бит данных. Все работает, кроме фазы, она м/б повернута на 180град (даже если ее не двигаю, и задаю "0" в мегафункции). Где-то в доках написано, что такое может быть. Как-же тогда работает статическая конфигурация, там фазы всегда правильные ? // megafunction wizard: %ALTPLL% module pllreconfshift ( input inclk0, input areset, input configupdate, input phasestep, input [2:0] phasecounterselect, input phaseupdown, input scanclk, input scanclkena, input scandata, output [4:0] cout, output phasedone, //output scandataout, output scandone ); altpll altpll_component ( .areset (areset), .configupdate (configupdate), .inclk ({1'h0, inclk0}), .phasecounterselect (phasecounterselect), .phasestep (phasestep), .phaseupdown (phaseupdown), .scanclk (scanclk), .scanclkena (scanclkena), .scandata (scandata), // .locked (locked), .clk (cout), .phasedone (phasedone), // .scandataout (scandataout), .scandone (scandone), .clkena ({6{1'b1}}), .clkswitch (1'b0), .extclkena ({4{1'b1}}), .fbin (1'b1), .pfdena (1'b1), .pllena (1'b1), .scanaclr (1'b0), .scanread (1'b0), .scanwrite (1'b0) ); defparam // altpll_component.scan_chain_mif_file = "pllreconf.mif", altpll_component.bandwidth_type = "AUTO", altpll_component.clk0_divide_by = 1, altpll_component.clk0_duty_cycle = 50, altpll_component.clk0_multiply_by = 1, altpll_component.clk0_phase_shift = "0", altpll_component.clk1_divide_by = 1, altpll_component.clk1_duty_cycle = 50, altpll_component.clk1_multiply_by = 1, altpll_component.clk1_phase_shift = "0", altpll_component.clk2_divide_by = 1, altpll_component.clk2_duty_cycle = 50, altpll_component.clk2_multiply_by = 1, altpll_component.clk2_phase_shift = "0", altpll_component.clk3_divide_by = 1, altpll_component.clk3_duty_cycle = 50, altpll_component.clk3_multiply_by = 1, altpll_component.clk3_phase_shift = "0", altpll_component.clk4_divide_by = 1, altpll_component.clk4_duty_cycle = 50, altpll_component.clk4_multiply_by = 1, altpll_component.clk4_phase_shift = "0", altpll_component.compensate_clock = "CLK0", altpll_component.inclk0_input_frequency = 40000, altpll_component.intended_device_family = "Cyclone IV E", altpll_component.lpm_type = "altpll", altpll_component.operation_mode = "NORMAL", altpll_component.pll_type = "AUTO", altpll_component.port_areset = "PORT_USED", altpll_component.port_configupdate = "PORT_USED", altpll_component.port_inclk0 = "PORT_USED", // altpll_component.port_locked = "PORT_USED", altpll_component.port_phasecounterselect = "PORT_USED", altpll_component.port_phasedone = "PORT_USED", altpll_component.port_phasestep = "PORT_USED", altpll_component.port_phaseupdown = "PORT_USED", altpll_component.port_scanclk = "PORT_USED", altpll_component.port_scanclkena = "PORT_USED", altpll_component.port_scandata = "PORT_USED", // altpll_component.port_scandataout = "PORT_USED", altpll_component.port_scandone = "PORT_USED", altpll_component.port_clk0 = "PORT_USED", altpll_component.port_clk1 = "PORT_USED", altpll_component.port_clk2 = "PORT_USED", altpll_component.port_clk3 = "PORT_USED", altpll_component.port_clk4 = "PORT_USED", altpll_component.self_reset_on_loss_lock = "OFF", altpll_component.vco_frequency_control = "MANUAL_PHASE", altpll_component.vco_phase_shift_step = 100, altpll_component.width_clock = 5, altpll_component.width_phasecounterselect = 3; endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба Как то очень давно мучался подстраивал фазы PLL, может после реконфига подстроить просто надо с помощью сигналов управляющих phasexxxx? Интересно, если после реконфига сделать резет pll, новые настройки сбросятся? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 1 hour ago, Leka said: создал при помощи мегавизарда Верилоговский файл мегафункции ALTPLL Реконфигурацию делаю при помощи этой-же функции а если сравнить, что делает альтеровский реконфигурационный контроллер? Или - тупо его добавить в проект, и делать реконфигурацию уже с его помощью? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба Подскажите, можно ли с помощью Cyclone-овской PLL управлять внешним VCO? Режим внешней обратной связи вроде в некоторых реализациях ALTPLL упоминается, а вот как вытащить сигналы для аналогового ФД из микросхемы- непонятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба Внешние связи - прочерк для Циклонов. 19 minutes ago, Yuri124 said: тупо его добавить в проект Не получится, использую только чистый Верилог + мегафункции. 57 minutes ago, new123 said: после реконфига подстроить просто надо с помощью сигналов управляющих phasexxxx? Сложно, частоты то высокие, 500МГц может быть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 10 minutes ago, Leka said: Внешние связи - прочерк для Циклонов. Думаю - это цифровые выходы, а товарищу, как понимаю, нужен аналоговый сигнал для управления внешним VCO. Теоретически - можно попробовать вывести наружуFPGA цифровое представление аналогового сигнала (например, ШИМ), но вряд ли это будет работоспособно при замкнутой петле ФАПЧ - т.к. время реакции, боюсь, будет огромное. Если есть желание погрузиться в теорию ФАПЧ -можно попробовать теоретически рассчитать устойчивость такой петли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба Приветствую! 4 hours ago, Leka said: Фазы выходных клоков после реконфигурации случайные. Пример - задаем одинаковую частоту для всех выходных клоков, фазы получаются с точностью 180град, случайным образом. Как избежать этого, и получать заданную фазу? Если без реконфигурации, фазы получаются такие, как задано в корке. На сколько я помню фазы выходных клоков в PLL в Altera определяются выбором одной из 8 фаз VCO и начальным состоянием выходных делителей. А точность установки фазы зависит от частоты VCO. Поэтому после (или в процессе) переконфигурирования нужно коректно сбросить/установить начальные значения этих счетчиков. IMHO нужно копать в эту сторону. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 26 minutes ago, Leka said: использую только чистый Верилог + мегафункции так он - разве не мегафункция? Ну или если именно его нельзя - разобраться, как он работает, чтобы понять - чего не хватает еще, кроме тех 144 бит. Выше - дельную мысль подбросили ИМХО. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 39 minutes ago, Yuri124 said: так он - разве не мегафункция? Да, посмотрел - на первый взгляд только лишние сущности добавляет, ничего не увидел по установке заданной фазы. 49 minutes ago, RobFPGA said: сбросить/установить начальные значения этих счетчиков Вот не могу нигде найти про это. Есть только сигналы сдвига фазы на 1/8 VCO. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 5 часов назад, Leka сказал: Фазы выходных клоков после реконфигурации случайные. Пример - задаем одинаковую частоту для всех выходных клоков, фазы получаются с точностью 180град, случайным образом. Как избежать этого, и получать заданную фазу? Если без реконфигурации, фазы получаются такие, как задано в корке. Доброго времени суток! Сброс должен выполняться синхронно с синфазно требуемому сигналу. Скажу больше - если внешний начальный сброс у вас сделан каким-нибудь асинхронным контроллером, то "Если без реконфигурации, фазы получаются такие, как задано в корке. " - чистое везение. Конкретно на Cyclone таких задач не решал, но в StratixV такие вопросы возникали и решались синхронным сбросом синфазно и с требуемой точностью. П.С. Выше уже написали ответ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 1 hour ago, Yuri124 said: Думаю - это цифровые выходы, а товарищу, как понимаю, нужен аналоговый сигнал для управления внешним VCO. Внутренняя ФАПЧ не тянет по фазовому шуму, поэтому понадобился внешний VCO. Да, типа как в этом проекте. http://www.aholme.co.uk/Frac2/Main.htm Но тут древняя альтеровская CPLD используется, запрограммирована в графике. И ФД немного криво сделан. Выводить наружулучше два сигнала цифровых с ФД ( to_slow/to_fast) и суммировать их и фильтровать на ОУ. Так задержки компенсируются лучше. Или вообще ставить внешний ФД на дискретных триггерах. Вот и хотелось эти сигналы вытянуть из существующей мегакорки чтобы самому не писать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться