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

 
 
> pll в цык-2, как сделать
%-)
сообщение Dec 6 2009, 14:01
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331



нужно задействовать pll в циклон-2 фпга.

на вход CLK0 подана частота с кварцевого генератора 50мгц

требуется получить частоту 150 мгц и использовать внутри фпга. на внешнюю ножку не надо.

гуру, помогите vhdl-фрагментом как юзать PLL
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
%-)
сообщение Dec 9 2009, 01:01
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331



Подключил PLL следующим образом. В мегавизарде сформировал ALTPLL.
Далее перенёс компонент в основной текст:

Код
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_arith.all;

entity test is port
(
Clk:in std_logic;    --входной сигнал синхронизации 50 МГц
ClkOut:out std_logic; --выходной умноженный сигнал
CounterOut:out std_logic_vector(7 downto 0)
);
end test;

architecture test_arch of test is

signal c:std_logic; --сигнал на выходе умножителя

signal counter:std_logic_vector(7 downto 0):=(others => '0'); --счётчик

component pll port
(
inclk0:in std_logic:='0';
c0:out std_logic
);

end component;

begin

pll_inst:pll port map(Clk,c);

process(c)
begin
if rising_edge(c) then
  counter<=counter+1;
end if;
end process;

ClkOut<=counter(0); --ошибка

Counterout(0)<=counter(0); --нет ошибки

end test_arch;


1) Правильно ли сделал?

Также интересуют следующие вопросы:

2) Есть 4 режима PLL: normal mode, source-syncronous mode, in zero-delay buffer mode, with no compensation

какой из этих режимов позволяет выводить сигнал с PLL, чтоб он начинался с той же фазы что и входной сигнал? (тобишь синхронно менялся - в 1 такт входного сигнала вписывалось целое число тактов выходного сигнала с PLL) ?

3) что вообще даёт эта компенсация? Теорию ФАПЧ знаю (ГУН, ФНЧ, делитель, опорный генератор, ...)

4) В мега-визарде указываются входная частота и градация по скорости. Зачем? Не для параметров ФНЧ случайно ли? Заметил что если "обмануть" мегавизард - сказать ему входную частоту в 2 раза меньше, то стабильность частоты на выходе PLL улучшается (даже при самой безалаберной разводке цепей питания/земли PLL)

5) выбрал режим zero delay buffer. Почему-то в этом режиме из-за присвоения бита счётчика на выходной сигнал - ошибка(см. текст программы ыше - "ClkOut<=counter(0); --ошибка").

Тескт ошибки:

Цитата
Error: PLL "pll:pll_inst|altpll:altpll_component|pll" COMPENSATE_CLOCK port CLK0 must feed an output pin when OPERATION_MODE is set to ZERO_DELAY_BUFFER
Error: Quartus II Analysis & Synthesis was unsuccessful. 1 error, 16 warnings
Error: Peak virtual memory: 188 megabytes
Error: Processing ended: Wed Dec 09 10:47:14 2009
Error: Elapsed time: 00:00:02
Error: Total CPU time (on all processors): 00:00:02
Error: Quartus II Full Compilation was unsuccessful. 3 errors, 16 warnings


А конструкция типа: Counterout(0)<=counter(0); - не даёт ошибки.

6) можно ли более тонко осуществить настройку PLL? Например увеличить время установления, поставив более низкочастотный ФНЧ, и увеличить стабильность (без улучшения разводки питания/земли)?

7) каков процент отклонения частоты PLL на 150 МГц при отсутствии феритовой бусины и аналоговых полигонов? (входная кварцевый генератор 50мгц) - только 10нф +0.1мкф + 10мкф всё керамика
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 9 2009, 03:58
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(%-) @ Dec 8 2009, 19:01) *
1) Правильно ли сделал?


Собрать, проверить.

Цитата
2) Есть 4 режима PLL: normal mode, source-syncronous mode, in zero-delay buffer mode, with no compensation
какой из этих режимов позволяет выводить сигнал с PLL, чтоб он начинался с той же фазы что и входной сигнал? (тобишь синхронно менялся - в 1 такт входного сигнала вписывалось целое число тактов выходного сигнала с PLL) ?
3) что вообще даёт эта компенсация? Теорию ФАПЧ знаю (ГУН, ФНЧ, делитель, опорный генератор, ...)


в даташите на целевую фпга все разрисовано и объяснено. изучайте, там все есть.

Цитата
5) выбрал режим zero delay buffer. Почему-то в этом режиме из-за присвоения бита счётчика на выходной сигнал - ошибка(см. текст программы ыше - "ClkOut<=counter(0); --ошибка").


телепаты в отпуске

Цитата
6) можно ли более тонко осуществить настройку PLL? Например увеличить время установления, поставив более низкочастотный ФНЧ, и увеличить стабильность (без улучшения разводки питания/земли)?


можно но не во всех фпга.


--------------------
Go to the top of the page
 
+Quote Post
%-)
сообщение Dec 9 2009, 04:44
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331



Цитата(des00 @ Dec 9 2009, 07:58) *
телепаты в отпуске


тут вы погорячились. лог ошибки привёл в предыдущем сообщении. смотрите внимательнее smile.gif


на счёт мегавизарда.
чой-то он бред лепит - прошу из входной частоты 50 мгц сделать 100 мгц, выбираю умножитель 2 делитель 1

он автоматом делает частоту VCO 800 МГц cranky.gif

альтера требует чтобы 10 – 400 MHz без вывода на внешнюю ногу.

на вход допускается 11 – 311 MHz

какая польза тогда от мегавизарда, если потом файл компонента вручную править прийдётся? (исправлять множители)

и вообще он как-то странно подбирает частоту ГУН зависимо от коэффициентов mul, div

скриншот ниже
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 9 2009, 05:37
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(%-) @ Dec 8 2009, 22:44) *
тут вы погорячились. лог ошибки привёл в предыдущем сообщении. смотрите внимательнее smile.gif


Да не заметил. За это научу вас пользоваться RTFM smile.gif Ответ лежит там : Cyclone II Device Handbook, Volume 1 -> Section II. Clock Management -> Chapter 7. PLLs in Cyclone II Devices -> Clock Feedback Modes -> Zero Delay Buffer Mode -> In zero delay buffer mode, the clock signal on the PLL external clock output pin (FLL<#>_OUT), fed by the c2 counter, is phase-aligned with the PLL input clock for zero delay. И т.д. ответ лежи на поверхности

Кстати был не прав, для Source synchronus систем режим PLL называется по другому. Для асинхронной нарезки вам достаточно режима Normal

Цитата
на счёт мегавизарда.
чой-то он бред лепит - прошу из входной частоты 50 мгц сделать 100 мгц, выбираю умножитель 2 делитель 1
он автоматом делает частоту VCO 800 МГц cranky.gif


читаем Cyclone II Device Handbook, Volume 1 -> Section II. Clock Management -> Chapter 7. PLLs in Cyclone II Devices -> Hardware Features. Ответ лежит там

Цитата
какая польза тогда от мегавизарда, если потом файл компонента вручную править прийдётся? (исправлять множители)
и вообще он как-то странно подбирает частоту ГУН зависимо от коэффициентов mul, div


Думаю что проблема не в мегавизарде, а в вашем не понимании что происходит. Или вы думаете что разработчики альтеры настолько глупы что сделали не рабочий генератор PLL, который там со времен первых сборок квартуса. И это никто за 10-15 лет не заметил ? %)


--------------------
Go to the top of the page
 
+Quote Post
%-)
сообщение Dec 9 2009, 06:11
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331



Цитата(des00 @ Dec 9 2009, 09:37) *
Кстати был не прав, для Source synchronus систем режим PLL называется по другому. Для асинхронной нарезки вам достаточно режима Normal


спасибо за разъяснения и RTFM beer.gif

но всё-таки частоты VCO=800..1000 МГц вызывают у меня недоумение по поводу возможности их реализации в ПЛИС smile.gif

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



На счёт асинхронной нарезки. Согласно теореме Котельникова - нам нужен сигнал с периодом как минимум в 2 раза выше, чем исходный период.

Значит при частоте шины 133 МГц для того чтобы нарезать сигнал с точностью до 1 CLK , нам нужно частоту PLL выбрать не менее 266 МГц.

Я прав или нет?
Go to the top of the page
 
+Quote Post
Builder
сообщение Dec 9 2009, 06:36
Сообщение #7


iBuilder©
****

Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322



Цитата(%-) @ Dec 9 2009, 09:11) *
но всё-таки частоты VCO=800..1000 МГц вызывают у меня недоумение по поводу возможности их реализации в ПЛИС smile.gif
На счёт асинхронной нарезки. Согласно теореме Котельникова - нам нужен сигнал с периодом как минимум в 2 раза выше, чем исходный период.
Значит при частоте шины 133 МГц для того чтобы нарезать сигнал с точностью до 1 CLK , нам нужно частоту PLL выбрать не менее 266 МГц.

1. насчёт VCO я уже написал, что это за частота.
2. Кательников это хорошо, но применительно к ПЛИС, это имеет косвенное отношение, т.к. вариаций времянки много.
Учитывая что Вы топчетесь с этой шиной уже долго. Я давно, когда начинал этим заниматься, смотрел как делает асинронную шину альтера в своих IP модулях. Проанализируйте. Может на опенкорес что найдёте. На уартах, совместимых со стандартными должны ставить асинхронную шину, их и посмотрите.
Я уже не помню как там у Вас задача ставилась исходно, если 133 - это просто шина, это одно. Если это темп записи, это уже совсем другое. Первое можно и без высокой частоты сделать.
Смысл тут уже Вам писали много, повторяться не вижу смысла. Попробуйте сделать ещё заход с этой стороны-проанализируйте
доступные дизайны. Что не поймёте - спросите. Только вопросы поконкретнее, после того как сами подумаете...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- %-)   pll в цык-2   Dec 6 2009, 14:01
- - Kuzmi4   MegaWizard Plug-In Manager спасёт отца русской дем...   Dec 6 2009, 14:33
- - Methane   Цитата(%-) @ Dec 6 2009, 16:01) ...   Dec 6 2009, 14:38
||- - des00   Цитата(%-) @ Dec 9 2009, 00:11) ...   Dec 9 2009, 06:23
|||- - %-)   Цитата(des00 @ Dec 9 2009, 10:23) но у ва...   Dec 9 2009, 07:21
|||- - des00   Цитата(%-) @ Dec 9 2009, 01:21) ...   Dec 9 2009, 07:50
|||- - Builder   Цитата(des00 @ Dec 9 2009, 09:50) ИМХО я ...   Dec 9 2009, 08:09
|||- - %-)   Цитата(Builder @ Dec 9 2009, 12:09) Поищу...   Dec 9 2009, 08:52
|||- - Builder   Цитата(%-) @ Dec 9 2009, 10:52) ...   Dec 9 2009, 09:16
|- - Builder   Цитата(%-) @ Dec 9 2009, 07:44) ...   Dec 9 2009, 06:21
- - %-)   1) с PLL разобрался. работает 2) с памятью разобр...   Dec 9 2009, 11:13
|- - Builder   Может проблема в этом? Цитата(%-) @ ...   Dec 9 2009, 11:21
||- - %-)   Цитата(Builder @ Dec 9 2009, 15:21) Реком...   Dec 9 2009, 11:47
||- - %-)   Цитата(Builder @ Dec 9 2009, 15:21) Рискн...   Dec 9 2009, 13:25
|- - des00   Цитата(%-) @ Dec 9 2009, 05:13) ...   Dec 9 2009, 12:01
|- - %-)   Цитата(des00 @ Dec 9 2009, 16:01) 1. как ...   Dec 9 2009, 12:04
|- - des00   Цитата(%-) @ Dec 9 2009, 06:04) ...   Dec 9 2009, 17:29
|- - %-)   Цитата(des00 @ Dec 9 2009, 20:29) дорого ...   Dec 9 2009, 23:28
|- - des00   Цитата(%-) @ Dec 9 2009, 17:28) ...   Dec 10 2009, 06:30
- - %-)   Итак... После осознанного перепрочтения всех свои...   Dec 10 2009, 13:38
|- - Builder   Цитата(%-) @ Dec 10 2009, 15:38)...   Dec 10 2009, 16:47
|- - %-)   Цитата(Builder @ Dec 10 2009, 19:47) Вы х...   Dec 10 2009, 22:43
|- - Builder   Цитата(%-) @ Dec 11 2009, 00:43)...   Dec 11 2009, 00:43
|- - %-)   Цитата(Builder @ Dec 11 2009, 03:43) Вот ...   Dec 11 2009, 02:58
- - des00   Цитата(%-) @ Dec 10 2009, 07:38)...   Dec 11 2009, 05:01
- - %-)   Цитата(des00 @ Dec 11 2009, 08:01) если в...   Dec 11 2009, 05:35
- - des00   Цитата(%-) @ Dec 10 2009, 23:35)...   Dec 11 2009, 06:30


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:50
Рейтинг@Mail.ru


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