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

 
 
 
Reply to this topicStart new topic
> Vivado template PLL, MMCME2_ADV
addi II
сообщение Mar 13 2018, 06:24
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 271
Регистрация: 1-02-16
Пользователь №: 90 294



Здравствуйте!
Пытаюсь свой clk = 20Mhz умножить с помощью Vivado template PLL - MMCME2_ADV
Вот мой инстанс:
Код
   MMCME2_ADV #(
      .BANDWIDTH("OPTIMIZED"),        // Jitter programming (OPTIMIZED, HIGH, LOW)
      .CLKFBOUT_MULT_F(35.0),          // Multiply value for all CLKOUT (2.000-64.000).
      .CLKFBOUT_PHASE(0.0),           // Phase offset in degrees of CLKFB (-360.000-360.000).
      // CLKIN_PERIOD: Input clock period in ns to ps resolution (i.e. 33.333 is 30 MHz).
      .CLKIN1_PERIOD(50.0),
      .CLKIN2_PERIOD(0.0),
      // CLKOUT0_DIVIDE - CLKOUT6_DIVIDE: Divide amount for CLKOUT (1-128)
      .CLKOUT1_DIVIDE(1),
      .CLKOUT2_DIVIDE(1),
      .CLKOUT3_DIVIDE(1),
      .CLKOUT4_DIVIDE(1),
      .CLKOUT5_DIVIDE(1),
      .CLKOUT6_DIVIDE(1),
      .CLKOUT0_DIVIDE_F(1.0),         // Divide amount for CLKOUT0 (1.000-128.000).
      // CLKOUT0_DUTY_CYCLE - CLKOUT6_DUTY_CYCLE: Duty cycle for CLKOUT outputs (0.01-0.99).
      .CLKOUT0_DUTY_CYCLE(0.5),
      .CLKOUT1_DUTY_CYCLE(0.5),
      .CLKOUT2_DUTY_CYCLE(0.5),
      .CLKOUT3_DUTY_CYCLE(0.5),
      .CLKOUT4_DUTY_CYCLE(0.5),
      .CLKOUT5_DUTY_CYCLE(0.5),
      .CLKOUT6_DUTY_CYCLE(0.5),
      // CLKOUT0_PHASE - CLKOUT6_PHASE: Phase offset for CLKOUT outputs (-360.000-360.000).
      .CLKOUT0_PHASE(0.0),
      .CLKOUT1_PHASE(0.0),
      .CLKOUT2_PHASE(0.0),
      .CLKOUT3_PHASE(0.0),
      .CLKOUT4_PHASE(0.0),
      .CLKOUT5_PHASE(0.0),
      .CLKOUT6_PHASE(0.0),
      .CLKOUT4_CASCADE("FALSE"),      // Cascade CLKOUT4 counter with CLKOUT6 (FALSE, TRUE)
      .COMPENSATION("ZHOLD"),         // ZHOLD, BUF_IN, EXTERNAL, INTERNAL
      .DIVCLK_DIVIDE(1),              // Master division value (1-106)
      // REF_JITTER: Reference input jitter in UI (0.000-0.999).
      .REF_JITTER1(0.0),
      .REF_JITTER2(0.0),
      .STARTUP_WAIT("FALSE"),         // Delays DONE until MMCM is locked (FALSE, TRUE)
      // Spread Spectrum: Spread Spectrum Attributes
      .SS_EN("FALSE"),                // Enables spread spectrum (FALSE, TRUE)
      .SS_MODE("CENTER_HIGH"),        // CENTER_HIGH, CENTER_LOW, DOWN_HIGH, DOWN_LOW
      .SS_MOD_PERIOD(10000),          // Spread spectrum modulation period (ns) (VALUES)
      // USE_FINE_PS: Fine phase shift enable (TRUE/FALSE)
      .CLKFBOUT_USE_FINE_PS("FALSE"),
      .CLKOUT0_USE_FINE_PS("FALSE"),
      .CLKOUT1_USE_FINE_PS("FALSE"),
      .CLKOUT2_USE_FINE_PS("FALSE"),
      .CLKOUT3_USE_FINE_PS("FALSE"),
      .CLKOUT4_USE_FINE_PS("FALSE"),
      .CLKOUT5_USE_FINE_PS("FALSE"),
      .CLKOUT6_USE_FINE_PS("FALSE")
   )
   MMCME2_ADV_inst (
      // Clock Outputs: 1-bit (each) output: User configurable clock outputs
      .CLKOUT0(CLKOUT0),           // 1-bit output: CLKOUT0
      .CLKOUT0B(CLKOUT0B),         // 1-bit output: Inverted CLKOUT0
      .CLKOUT1(CLKOUT1),           // 1-bit output: CLKOUT1
      .CLKOUT1B(CLKOUT1B),         // 1-bit output: Inverted CLKOUT1
      .CLKOUT2(CLKOUT2),           // 1-bit output: CLKOUT2
      .CLKOUT2B(CLKOUT2B),         // 1-bit output: Inverted CLKOUT2
      .CLKOUT3(CLKOUT3),           // 1-bit output: CLKOUT3
      .CLKOUT3B(CLKOUT3B),         // 1-bit output: Inverted CLKOUT3
      .CLKOUT4(CLKOUT4),           // 1-bit output: CLKOUT4
      .CLKOUT5(CLKOUT5),           // 1-bit output: CLKOUT5
      .CLKOUT6(CLKOUT6),           // 1-bit output: CLKOUT6
      // DRP Ports: 16-bit (each) output: Dynamic reconfiguration ports
      .DO(DO),                     // 16-bit output: DRP data
      .DRDY(DRDY),                 // 1-bit output: DRP ready
      // Dynamic Phase Shift Ports: 1-bit (each) output: Ports used for dynamic phase shifting of the outputs
      .PSDONE(PSDONE),             // 1-bit output: Phase shift done
      // Feedback Clocks: 1-bit (each) output: Clock feedback ports
      .CLKFBOUT(CLKFBOUT),         // 1-bit output: Feedback clock
      .CLKFBOUTB(CLKFBOUTB),       // 1-bit output: Inverted CLKFBOUT
      // Status Ports: 1-bit (each) output: MMCM status ports
      .CLKFBSTOPPED(CLKFBSTOPPED), // 1-bit output: Feedback clock stopped
      .CLKINSTOPPED(CLKINSTOPPED), // 1-bit output: Input clock stopped
      .LOCKED(LOCKED),             // 1-bit output: LOCK
      // Clock Inputs: 1-bit (each) input: Clock inputs
      .CLKIN1(clk),             // 1-bit input: Primary clock
      .CLKIN2(CLKIN2),             // 1-bit input: Secondary clock
      // Control Ports: 1-bit (each) input: MMCM control ports
      .CLKINSEL(1),         // 1-bit input: Clock select, High=CLKIN1 Low=CLKIN2
      .PWRDWN(PWRDWN),             // 1-bit input: Power-down
      .RST(0),                   // 1-bit input: Reset
      // DRP Ports: 7-bit (each) input: Dynamic reconfiguration ports
      .DADDR(DADDR),               // 7-bit input: DRP address
      .DCLK(DCLK),                 // 1-bit input: DRP clock
      .DEN(DEN),                   // 1-bit input: DRP enable
      .DI(DI),                     // 16-bit input: DRP data
      .DWE(DWE),                   // 1-bit input: DRP write enable
      // Dynamic Phase Shift Ports: 1-bit (each) input: Ports used for dynamic phase shifting of the outputs
      .PSCLK(PSCLK),               // 1-bit input: Phase shift clock
      .PSEN(PSEN),                 // 1-bit input: Phase shift enable
      .PSINCDEC(PSINCDEC),         // 1-bit input: Phase shift increment/decrement
      // Feedback Clocks: 1-bit (each) input: Clock feedback ports
      .CLKFBIN(CLKFBIN)            // 1-bit input: Feedback clock
   );

Итого на выходе вместо ожидаемых 700МHz вижу наоборот деление частоты где в 2.5 раза
Подскажите пожалуйста, кто знает, что не так

Спасибо!
Go to the top of the page
 
+Quote Post
Andrew Su
сообщение Mar 13 2018, 08:01
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 295
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647



Цитата(addi II @ Mar 13 2018, 08:24) *
Здравствуйте!
Пытаюсь свой clk = 20Mhz умножить с помощью Vivado template PLL - MMCME2_ADV
Вот мой инстанс:
Код
   MMCME2_ADV #(
       .BANDWIDTH("OPTIMIZED"),        // Jitter programming (OPTIMIZED, HIGH, LOW)
       .CLKFBOUT_MULT_F(35.0),          // Multiply value for all CLKOUT (2.000-64.000).
       .CLKFBOUT_PHASE(0.0),           // Phase offset in degrees of CLKFB (-360.000-360.000).
       // CLKIN_PERIOD: Input clock period in ns to ps resolution (i.e. 33.333 is 30 MHz).
       .CLKIN1_PERIOD(50.0),
       .CLKIN2_PERIOD(0.0),
       // CLKOUT0_DIVIDE - CLKOUT6_DIVIDE: Divide amount for CLKOUT (1-128)
       .CLKOUT1_DIVIDE(1),
       .CLKOUT2_DIVIDE(1),
       .CLKOUT3_DIVIDE(1),
       .CLKOUT4_DIVIDE(1),
       .CLKOUT5_DIVIDE(1),
       .CLKOUT6_DIVIDE(1),
       .CLKOUT0_DIVIDE_F(1.0),         // Divide amount for CLKOUT0 (1.000-128.000).
       // CLKOUT0_DUTY_CYCLE - CLKOUT6_DUTY_CYCLE: Duty cycle for CLKOUT outputs (0.01-0.99).
       .CLKOUT0_DUTY_CYCLE(0.5),
       .CLKOUT1_DUTY_CYCLE(0.5),
       .CLKOUT2_DUTY_CYCLE(0.5),
       .CLKOUT3_DUTY_CYCLE(0.5),
       .CLKOUT4_DUTY_CYCLE(0.5),
       .CLKOUT5_DUTY_CYCLE(0.5),
       .CLKOUT6_DUTY_CYCLE(0.5),
       // CLKOUT0_PHASE - CLKOUT6_PHASE: Phase offset for CLKOUT outputs (-360.000-360.000).
       .CLKOUT0_PHASE(0.0),
       .CLKOUT1_PHASE(0.0),
       .CLKOUT2_PHASE(0.0),
       .CLKOUT3_PHASE(0.0),
       .CLKOUT4_PHASE(0.0),
       .CLKOUT5_PHASE(0.0),
       .CLKOUT6_PHASE(0.0),
       .CLKOUT4_CASCADE("FALSE"),      // Cascade CLKOUT4 counter with CLKOUT6 (FALSE, TRUE)
       .COMPENSATION("ZHOLD"),         // ZHOLD, BUF_IN, EXTERNAL, INTERNAL
       .DIVCLK_DIVIDE(1),              // Master division value (1-106)
       // REF_JITTER: Reference input jitter in UI (0.000-0.999).
       .REF_JITTER1(0.0),
       .REF_JITTER2(0.0),
       .STARTUP_WAIT("FALSE"),         // Delays DONE until MMCM is locked (FALSE, TRUE)
       // Spread Spectrum: Spread Spectrum Attributes
       .SS_EN("FALSE"),                // Enables spread spectrum (FALSE, TRUE)
       .SS_MODE("CENTER_HIGH"),        // CENTER_HIGH, CENTER_LOW, DOWN_HIGH, DOWN_LOW
       .SS_MOD_PERIOD(10000),          // Spread spectrum modulation period (ns) (VALUES)
       // USE_FINE_PS: Fine phase shift enable (TRUE/FALSE)
       .CLKFBOUT_USE_FINE_PS("FALSE"),
       .CLKOUT0_USE_FINE_PS("FALSE"),
       .CLKOUT1_USE_FINE_PS("FALSE"),
       .CLKOUT2_USE_FINE_PS("FALSE"),
       .CLKOUT3_USE_FINE_PS("FALSE"),
       .CLKOUT4_USE_FINE_PS("FALSE"),
       .CLKOUT5_USE_FINE_PS("FALSE"),
       .CLKOUT6_USE_FINE_PS("FALSE")
    )
    MMCME2_ADV_inst (
       // Clock Outputs: 1-bit (each) output: User configurable clock outputs
       .CLKOUT0(CLKOUT0),           // 1-bit output: CLKOUT0
       .CLKOUT0B(CLKOUT0B),         // 1-bit output: Inverted CLKOUT0
       .CLKOUT1(CLKOUT1),           // 1-bit output: CLKOUT1
       .CLKOUT1B(CLKOUT1B),         // 1-bit output: Inverted CLKOUT1
       .CLKOUT2(CLKOUT2),           // 1-bit output: CLKOUT2
       .CLKOUT2B(CLKOUT2B),         // 1-bit output: Inverted CLKOUT2
       .CLKOUT3(CLKOUT3),           // 1-bit output: CLKOUT3
       .CLKOUT3B(CLKOUT3B),         // 1-bit output: Inverted CLKOUT3
       .CLKOUT4(CLKOUT4),           // 1-bit output: CLKOUT4
       .CLKOUT5(CLKOUT5),           // 1-bit output: CLKOUT5
       .CLKOUT6(CLKOUT6),           // 1-bit output: CLKOUT6
       // DRP Ports: 16-bit (each) output: Dynamic reconfiguration ports
       .DO(DO),                     // 16-bit output: DRP data
       .DRDY(DRDY),                 // 1-bit output: DRP ready
       // Dynamic Phase Shift Ports: 1-bit (each) output: Ports used for dynamic phase shifting of the outputs
       .PSDONE(PSDONE),             // 1-bit output: Phase shift done
       // Feedback Clocks: 1-bit (each) output: Clock feedback ports
       .CLKFBOUT(CLKFBOUT),         // 1-bit output: Feedback clock
       .CLKFBOUTB(CLKFBOUTB),       // 1-bit output: Inverted CLKFBOUT
       // Status Ports: 1-bit (each) output: MMCM status ports
       .CLKFBSTOPPED(CLKFBSTOPPED), // 1-bit output: Feedback clock stopped
       .CLKINSTOPPED(CLKINSTOPPED), // 1-bit output: Input clock stopped
       .LOCKED(LOCKED),             // 1-bit output: LOCK
       // Clock Inputs: 1-bit (each) input: Clock inputs
       .CLKIN1(clk),             // 1-bit input: Primary clock
       .CLKIN2(CLKIN2),             // 1-bit input: Secondary clock
       // Control Ports: 1-bit (each) input: MMCM control ports
       .CLKINSEL(1),         // 1-bit input: Clock select, High=CLKIN1 Low=CLKIN2
       .PWRDWN(PWRDWN),             // 1-bit input: Power-down
       .RST(0),                   // 1-bit input: Reset
       // DRP Ports: 7-bit (each) input: Dynamic reconfiguration ports
       .DADDR(DADDR),               // 7-bit input: DRP address
       .DCLK(DCLK),                 // 1-bit input: DRP clock
       .DEN(DEN),                   // 1-bit input: DRP enable
       .DI(DI),                     // 16-bit input: DRP data
       .DWE(DWE),                   // 1-bit input: DRP write enable
       // Dynamic Phase Shift Ports: 1-bit (each) input: Ports used for dynamic phase shifting of the outputs
       .PSCLK(PSCLK),               // 1-bit input: Phase shift clock
       .PSEN(PSEN),                 // 1-bit input: Phase shift enable
       .PSINCDEC(PSINCDEC),         // 1-bit input: Phase shift increment/decrement
       // Feedback Clocks: 1-bit (each) input: Clock feedback ports
       .CLKFBIN(CLKFBIN)            // 1-bit input: Feedback clock
    );

Итого на выходе вместо ожидаемых 700МHz вижу наоборот деление частоты где в 2.5 раза
Подскажите пожалуйста, кто знает, что не так

Спасибо!

Добрый день.
Сам пока не пользовался этим компонентом. У вас вход RST=0, может попробовать подать на него сначала 1? А при задании другого коэффициента умножения или коэффициента деления картина изменяется? LOCKED устанавливается?
Go to the top of the page
 
+Quote Post
addi II
сообщение Mar 13 2018, 08:19
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 271
Регистрация: 1-02-16
Пользователь №: 90 294



спасибо за поддержку, попробовал, клок не меняется
CLKOUT0, CLKOUT1,..., CLKFBOUT одинаковы, даже при изменении CLKOUT1DIVIDE >1
LOCKED в нуле при RST = 1 или 0
Похоже PLL не запускается и что-то генерит по умолчанию
Неужели необходимо ей что-то загонять по Dynamic Reconfiguration port чтобы она завелась?

Сообщение отредактировал addi II - Mar 13 2018, 08:48
Go to the top of the page
 
+Quote Post
addi II
сообщение Mar 13 2018, 09:20
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 271
Регистрация: 1-02-16
Пользователь №: 90 294



заработала PLLка, как ни странно надо было CLKFBIN завести на CLKFBOUT)...

Вопрос теперь как делать фазовый сдвиг и в чем он делается, где то вычитал что якобы к градусах(десятичные значения)
А как и куда эти градусы записывать не совсем понятно...
wacko.gif

и Еще вопрос , что-то теперь стал вивадо ругаться на превышении температуры, аж целых 17Вт рассчитала, теперь боюсь включать)
Наверно надо написать какие нибудь констрейны, но те которые я пишу похоже вивадо не воспринимает
Цитата
create_clock -name clk -period 1.428 -waveform { 0 6.665 } [get_ports clk]
create_clock -name clk_dac_out -period 1.428 -waveform { 0 6.665 } [get_ports clk_dac_out]


Сообщение отредактировал addi II - Mar 13 2018, 09:59
Go to the top of the page
 
+Quote Post
Andrew Su
сообщение Mar 13 2018, 11:02
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 295
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647



Если у вас кристалл 7-й серии, то руководство по MMCME2_ADV:


Прикрепленные файлы
Прикрепленный файл  ug472_7Series_Clocking.pdf ( 3.03 мегабайт ) Кол-во скачиваний: 6
 
Go to the top of the page
 
+Quote Post
addi II
сообщение Mar 13 2018, 14:47
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 271
Регистрация: 1-02-16
Пользователь №: 90 294



Цитата(Andrew Su @ Mar 13 2018, 11:02) *
Если у вас кристалл 7-й серии, то руководство по MMCME2_ADV:

кристал artix-7, читал этот док перед созданием темы на форуме)...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2018 - 07:31
Рейтинг@Mail.ru


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