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

 
 
> ep3c5e pll не захватывает частоту
sergey sva
сообщение May 2 2015, 18:17
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Пытаюсь запустить pll в циклоне ep3c5 но не как не хочет запускаться, не устанавливается сигнал phazelocked. Питание vcca=2.5v от отдельного регулятора. vccd_pll = 1.2 входная частота 50мгц на пин22 clk0. vccio = 3.3v megawizartom сделал настройки вот файл верилог, может в нем ошибка, проверил уже все что можно, может нужно что то настроить в квартусе?
Код
module pll (
    areset,
    inclk0,
    c0,
    c1,
    c2,
    c3,
    locked);

    input      areset;
    input      inclk0;
    output      c0;
    output      c1;
    output      c2;
    output      c3;
    output      locked;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_off
`endif
    tri0      areset;
`ifndef ALTERA_RESERVED_QIS
// synopsys translate_on
`endif

    wire [4:0] sub_wire0;
    wire  sub_wire3;
    wire [0:0] sub_wire8 = 1'h0;
    wire [2:2] sub_wire5 = sub_wire0[2:2];
    wire [0:0] sub_wire4 = sub_wire0[0:0];
    wire [3:3] sub_wire2 = sub_wire0[3:3];
    wire [1:1] sub_wire1 = sub_wire0[1:1];
    wire  c1 = sub_wire1;
    wire  c3 = sub_wire2;
    wire  locked = sub_wire3;
    wire  c0 = sub_wire4;
    wire  c2 = sub_wire5;
    wire  sub_wire6 = inclk0;
    wire [1:0] sub_wire7 = {sub_wire8, sub_wire6};

    altpll    altpll_component (
                .areset (areset),
                .inclk (sub_wire7),
                .clk (sub_wire0),
                .locked (sub_wire3),
                .activeclock (),
                .clkbad (),
                .clkena ({6{1'b1}}),
                .clkloss (),
                .clkswitch (1'b0),
                .configupdate (1'b0),
                .enable0 (),
                .enable1 (),
                .extclk (),
                .extclkena ({4{1'b1}}),
                .fbin (1'b1),
                .fbmimicbidir (),
                .fbout (),
                .fref (),
                .icdrclk (),
                .pfdena (1'b1),
                .phasecounterselect ({4{1'b1}}),
                .phasedone (),
                .phasestep (1'b1),
                .phaseupdown (1'b1),
                .pllena (1'b1),
                .scanaclr (1'b0),
                .scanclk (1'b0),
                .scanclkena (1'b1),
                .scandata (1'b0),
                .scandataout (),
                .scandone (),
                .scanread (1'b0),
                .scanwrite (1'b0),
                .sclkout0 (),
                .sclkout1 (),
                .vcooverrange (),
                .vcounderrange ());
    defparam
        altpll_component.bandwidth_type = "LOW",
        altpll_component.clk0_divide_by = 5,
        altpll_component.clk0_duty_cycle = 50,
        altpll_component.clk0_multiply_by = 36,
        altpll_component.clk0_phase_shift = "0",
        altpll_component.clk1_divide_by = 5,
        altpll_component.clk1_duty_cycle = 50,
        altpll_component.clk1_multiply_by = 36,
        altpll_component.clk1_phase_shift = "347",
        altpll_component.clk2_divide_by = 5,
        altpll_component.clk2_duty_cycle = 50,
        altpll_component.clk2_multiply_by = 36,
        altpll_component.clk2_phase_shift = "694",
        altpll_component.clk3_divide_by = 5,
        altpll_component.clk3_duty_cycle = 50,
        altpll_component.clk3_multiply_by = 36,
        altpll_component.clk3_phase_shift = "1042",
        altpll_component.compensate_clock = "CLK3",
        altpll_component.inclk0_input_frequency = 20000,
        altpll_component.intended_device_family = "Cyclone III",
        altpll_component.lpm_hint = "CBX_MODULE_PREFIX=pll",
        altpll_component.lpm_type = "altpll",
        altpll_component.operation_mode = "NORMAL",
        altpll_component.pll_type = "AUTO",
        altpll_component.port_activeclock = "PORT_UNUSED",
        altpll_component.port_areset = "PORT_USED",
        altpll_component.port_clkbad0 = "PORT_UNUSED",
        altpll_component.port_clkbad1 = "PORT_UNUSED",
        altpll_component.port_clkloss = "PORT_UNUSED",
        altpll_component.port_clkswitch = "PORT_UNUSED",
        altpll_component.port_configupdate = "PORT_UNUSED",
        altpll_component.port_fbin = "PORT_UNUSED",
        altpll_component.port_inclk0 = "PORT_USED",
        altpll_component.port_inclk1 = "PORT_UNUSED",
        altpll_component.port_locked = "PORT_USED",
        altpll_component.port_pfdena = "PORT_UNUSED",
        altpll_component.port_phasecounterselect = "PORT_UNUSED",
        altpll_component.port_phasedone = "PORT_UNUSED",
        altpll_component.port_phasestep = "PORT_UNUSED",
        altpll_component.port_phaseupdown = "PORT_UNUSED",
        altpll_component.port_pllena = "PORT_UNUSED",
        altpll_component.port_scanaclr = "PORT_UNUSED",
        altpll_component.port_scanclk = "PORT_UNUSED",
        altpll_component.port_scanclkena = "PORT_UNUSED",
        altpll_component.port_scandata = "PORT_UNUSED",
        altpll_component.port_scandataout = "PORT_UNUSED",
        altpll_component.port_scandone = "PORT_UNUSED",
        altpll_component.port_scanread = "PORT_UNUSED",
        altpll_component.port_scanwrite = "PORT_UNUSED",
        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_UNUSED",
        altpll_component.port_clk5 = "PORT_UNUSED",
        altpll_component.port_clkena0 = "PORT_UNUSED",
        altpll_component.port_clkena1 = "PORT_UNUSED",
        altpll_component.port_clkena2 = "PORT_UNUSED",
        altpll_component.port_clkena3 = "PORT_UNUSED",
        altpll_component.port_clkena4 = "PORT_UNUSED",
        altpll_component.port_clkena5 = "PORT_UNUSED",
        altpll_component.port_extclk0 = "PORT_UNUSED",
        altpll_component.port_extclk1 = "PORT_UNUSED",
        altpll_component.port_extclk2 = "PORT_UNUSED",
        altpll_component.port_extclk3 = "PORT_UNUSED",
        altpll_component.self_reset_on_loss_lock = "OFF",
        altpll_component.width_clock = 5;


endmodule
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 14)
alexPec
сообщение May 2 2015, 20:24
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Использую вот прямо сейчас именно EP3C5, оба PLL, питаю от отдельного регулятора линейного, входная частота именно 50МГц. Оба ПЛЛ сразу встают в 1 (сигнал Locked, а не phazelocked, как у Вас) и вниз не опускаются. Делаю проект в Q91, ПЛЛ конфигурил мегавизардом, правда ставил его в графике, в bdf. '
Давным давно была проблема, что у PLL срывался захват (locked падал вниз, затем снова в 1), но хоть убей не помню из-за чего так было и как решил.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение May 3 2015, 02:44
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



А как пины сконфигурированы? у меня все 3,3в LVTTL? из предупреждений критических только что по времени не все цепи укладываются, pll все равно должен запуститься? Еще есть не критические предупреждения logic latch доступно только с subscription лицензией.
Go to the top of the page
 
+Quote Post
alexPec
сообщение May 3 2015, 03:09
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(sergey sva @ May 3 2015, 06:44) *
А как пины сконфигурированы? у меня все 3,3в LVTTL? из предупреждений критических только что по времени не все цепи укладываются, pll все равно должен запуститься? Еще есть не критические предупреждения logic latch доступно только с subscription лицензией.

Да, все пины в 3.3В, но LVCMOS. А у Вас генератор TTL? Может у Вас уровень нижний до лог.0 ТТЛ не доходит? И вообще, Вам точно LVTTL нужен? Может порог переключения все-таки на середине питания сделать (LVCMOS)? Землю PLL проверьте тоже. Они вроде неприхотливые, емкости 0,1u повесить на 2,5В поближе к ногам и все обычно работает.

О, нате ка проект маленький, там плл точно работает Если не заработает у вас, значит в железе искать.
Прикрепленные файлы
Прикрепленный файл  sample.rar ( 607.58 килобайт ) Кол-во скачиваний: 4
 
Go to the top of the page
 
+Quote Post
sergey sva
сообщение May 3 2015, 03:59
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Генератор ttl cmos пробовал выводить этот клок через плис на другую ногу, смотрел осциллографом сигнал проходит нормально. Земля не разделена gnda gnd через бусинку, конденсаторы по 0,22мкф. Смотрел рекомендации там рекомендуют для vcc pll 470мкф. Такую большую емкость не использовал, поставил керамику параллельно по 10мкф 4шт и отдельный регулятор.
Сейчас попробую загрузить ваш проект.
Go to the top of the page
 
+Quote Post
krux
сообщение May 3 2015, 07:39
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



попробуйте на areset подавать сигнал сброса минимальной длительностью 150 мсек.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
alexPec
сообщение May 3 2015, 07:47
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



areset никогда не задействовал, емкости - на каждый PLL по 0,1мк +4,7мк керамику на выходе стабилизатора 2,5В.

Ну сравните мою PCB со своей что ли. Хотя делал ее давно и наспех, все в автомате разводил. Кстати, если TQFP - пузо обязательно припаять надо к земле. Иначе ведет себя как попало.
Прикрепленные файлы
Прикрепленный файл  fnpn_ctrl.PCB ( 255.99 килобайт ) Кол-во скачиваний: 11
 
Go to the top of the page
 
+Quote Post
sergey sva
сообщение May 3 2015, 16:42
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Что то ни в какую не хочет запускаться pll ( . Создал новый проект ничего в нем нет только pll и выход на pin7. На 7 io всегда висит 1. Если меняю always@(posedge pll1clck0 ) на always@(posedge CLCKIN50Mhz) на io7 идут импульсы. Может pll сломался может быть такое? Полигон под микросхемой припаян к ней и присоединен к gnd. проект quartus 13.1 Прикрепленный файл  nest.zip ( 1.69 мегабайт ) Кол-во скачиваний: 29

begin
Код
reg[7:0] counter;
always@(posedge pll1clck0 )
begin
if(counter < 10)
begin

counter = counter + 7'd1;

end
else begin

counter = 0;
end

end
Go to the top of the page
 
+Quote Post
alexPec
сообщение May 3 2015, 20:05
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(sergey sva @ May 3 2015, 20:42) *
Что то ни в какую не хочет запускаться pll ( . Создал новый проект ничего в нем нет только pll и выход на pin7. На 7 io всегда висит 1. Если меняю always@(posedge pll1clck0 ) на always@(posedge CLCKIN50Mhz) на io7 идут импульсы. Может pll сломался может быть такое? Полигон под микросхемой припаян к ней и присоединен к gnd. проект quartus 13.1


Я бы попробовал так:

1. Снизить частоту ПЛЛ и попробовать на частоте , скажем 100МГц, а не 360МГц. Хотя по даташиту и вроде проходит, но мне кажется есть какой-то подвох, много это 360МГц для -С8. На такой частоте если и будет что-то работать- так это маленький счетчик какой-нибудь. Но это мои тараканы, субъективное мое мнение.

2. Убрать areset в визарде и вывести наружу locked, чтобы мониторить его при любых изменениях проекта.

3. Никто не отменял моделирование, попробуйте промоделировать в modelsim, если там не будет лочиться - значит и в железе тоже. На Q91 сравнивал как-то - PLL довольно точно моделировался, в частности, смотрел время захвата. Но там был не моделсим, а встроенный графический симулятор.

4. Насчет ПЛЛ сломался - было такое, перегрел видимо корпус (правда BGA256), один ПЛЛ работал, второй - нет. Не было захвата. Перенес в ассайнментах физически с одного ПЛЛ на другой - все заработало. Но чип такой не использовал - ХЗ что у него там еще сломалось внутри.
Go to the top of the page
 
+Quote Post
tvcam
сообщение May 3 2015, 21:12
Сообщение #10


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

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



sergey sva
Для таких моментов держу 8-й квартус, там быстро можно симулировать.
Ваш проект просто так не заработал, закомментировал четыре строки в файле testpll.qsf иначе 8-й не берёт.
Вывел тестовые сигналы, вывел отдельно res. Разбираться в ваших счётчиках не встал. После этого заработало.
Вроде 13 -й диаграммы testpll.vwf должен показывать. Проект в 8-м с симуляцией. Прикрепленный файл  nest.zip ( 1.25 мегабайт ) Кол-во скачиваний: 29
Go to the top of the page
 
+Quote Post
Alex11
сообщение May 3 2015, 21:43
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



В Вашем проекте стоит входная частота 20 МГц, Вы пишете про 50 - умножитель 36 - чатота генератора 1.8 ГГц. Мне кажется, многовато. Поставьте в визарде Ваши 50 и посмотрите, что он сгенерит. Скорее всего, заработает.
Go to the top of the page
 
+Quote Post
alexPec
сообщение May 4 2015, 03:34
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(Alex11 @ May 4 2015, 01:43) *
В Вашем проекте стоит входная частота 20 МГц, Вы пишете про 50 - умножитель 36 - чатота генератора 1.8 ГГц. Мне кажется, многовато. Поставьте в визарде Ваши 50 и посмотрите, что он сгенерит. Скорее всего, заработает.


Там все нормально, входная PLL указана 50, делитель 5, умножитель 36 = 360МГц
Go to the top of the page
 
+Quote Post
Александр77
сообщение May 5 2015, 12:56
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111



Если не ошибаюсь, у циклона в планарном корпусе максимальная частота на выводе может быть не выше 240МГц. Может в этом причина Ваших бед? Попробуйте раскачать pll до указанного порога.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение May 5 2015, 15:56
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Нашел причину, после продолжительных мучений платы феном и паяльником sm.gif pll начал запускаться но на частоте кгц. Тут сразу стало понятно дело где то в плате внимательно осмотрел и нашел не пропаянную не пропаянную ножку vccd_pll она расположена с краю корпуса lqfp144. Буду дальше экспериментировать ))
Go to the top of the page
 
+Quote Post
Magnum
сообщение May 6 2015, 09:02
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 26-05-05
Пользователь №: 5 397



Цитата(sergey sva @ May 5 2015, 21:56) *
Нашел причину, после продолжительных мучений платы феном и паяльником sm.gif pll начал запускаться но на частоте кгц. Тут сразу стало понятно дело где то в плате внимательно осмотрел и нашел не пропаянную не пропаянную ножку vccd_pll она расположена с краю корпуса lqfp144. Буду дальше экспериментировать ))

Проверьте соответствует ли напряжение питания, для PLL должно быть 2,5В
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 13:57
Рейтинг@Mail.ru


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