Я использую IP-адрес мастера синхронизации для генерации трех разных часов, начиная с тактовых импульсов ввода.
Это настройка для IP:
ЧАСЫ ВВОДА:
Частота входного сигнала: 12 МГц
Джиттер входа: 0,010
Источник: вывод с одинарным тактовым импульсом
ВЫХОД ЧАСОВ:
clk_out1: 100 МГц
clk_out2: 300 МГц
clk_out3: 10 МГц
Для всех из них: фаза = 0, коэффициент заполнения = 50%
Если я взгляну на Настройки MMCM , безвключив «Разрешить режим переопределения», я получаю:
CLKFBOUT_MULT_F = 50.000
CLKFBOUT_PHASE = 0.000
CLKIN1_PERIOD = 83.333
CLKIN2_PERIOD = 10.0
DIVCLK_DIVIDE = 1
clk_out1: Divide = 6.000
clk_out2: Divide = 2
clk_out3: Divide = 60
Этосвязанный код :
pll_ip pll_ip_0(
//input
.rstn (rstn),
.clk_sys (clk_sys), // 12MHz
//output
.clk_locked (clk_locked),
.clk_100 (clk_100), //100MHz
.clk_300 (clk_300), //300MHz
.clk_10 (clk_10) // 10MHZ
);
Для ограничений :
set_property -dict { PACKAGE_PIN L17 IOSTANDARD LVCMOS33 } [get_ports { clk_sys }]; #IO_L12P_T1_MRCC_14 Sch=gclk
create_clock -add -name sys_clk_pin -period 83.33 -waveform {0 41.66} [get_ports {clk_sys}];
Если я запускаю симуляцию и проверяю форму сигнала на выходные часы, они не ожидаемые, вхвосты:
clk_sys: 12 195 121,95 Гц
clk_out1: 9 756 097,56 Гц
clk_out2: 29 268 863,78 Гц
clk_out3: 975 609,75 Гц * 1065помогите мне понять, что я делаю неправильно?Спасибо!