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

 
 
> Вопрос по DCM у Spartan-3
ovs_pavel
сообщение May 16 2013, 17:31
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249



Вечер добрый. Возникла необходимость написать проект для Spartan-3 (xc3s1500-4fg676). Как всегда неожиданно и срочно ((. В проекте необходимо подстроить фазу входного сигнала под данные. Стандартное решение - DCM. Но что то забуксовал. Для частот ниже 120 МГц все работает. Вижу выходную частоту равную входной и с изменяемым фазовым сдвигом. А вот для частоты 150 МГц проблема - нет выходного сигнала (причем на симуляторе тоже).

В тоже время в проекте для 6-го spartana все ок.

Ниже код (собственно задание DCM):

`timescale 1ns / 1ps
module dcm_proba (
input tx_in_clk,

output tx_out_clk

);


//--------------------------------------------------------------------------//
//------------------------- Буфер входной частоты. -------------------------//
//--------------------------------------------------------------------------//
wire w_tx_in_clk;

BUFG BUFG_tx_in_clk (
.I (tx_in_clk),
.O (w_tx_in_clk)
);


//--------------------------------------------------------------------------//
//----------------------- DCM модуль сдвига частоты. -----------------------//
//--------------------------------------------------------------------------//
wire w_clk0_out;
wire bufg_clk0_out;

DCM #(
.CLKDV_DIVIDE (2.0),
.CLKFX_DIVIDE (2),
.CLKFX_MULTIPLY (2),
.CLKIN_DIVIDE_BY_2 ("FALSE"),
.CLKIN_PERIOD (6.7),
.CLKOUT_PHASE_SHIFT ("FIXED"),
.CLK_FEEDBACK ("1X"),
.DESKEW_ADJUST ("SYSTEM_SYNCHRONOUS"),
.DLL_FREQUENCY_MODE ("LOW"),
.DUTY_CYCLE_CORRECTION ("TRUE"),
.PHASE_SHIFT (-90),
.STARTUP_WAIT ("FALSE")
) DCM_SP_Clk_118_shift (
.CLK0 (bufg_clk0_out),
.CLK180 (),
.CLK270 (),
.CLK2X (),
.CLK2X180 (),
.CLK90 (),
.CLKDV (),
.CLKFX (),
.CLKFX180 (),
.LOCKED (),
.PSDONE (),
.STATUS (),
.CLKFB (w_clk0_out),
.CLKIN (w_tx_in_clk),
.PSCLK (),
.PSEN (1'b0),
.DSSEN (),
.PSINCDEC (),
.RST (1'b0)
);


BUFG BUFG_118_shist (
.I (bufg_clk0_out),
.O (w_clk0_out)
);


wire w_tx_out_clk;


//spartan 3

OFDDRCPE OFDDRCPE_out (
.Q (w_tx_out_clk),
.C0 (w_clk0_out),
.C1 (~w_clk0_out),
.CE (1'b1),
.CLR (1'b0),
.D0 (1'b1),
.D1 (1'b0),
.PRE (1'b0)
);

/*
// spartan 6
ODDR2 #(
.DDR_ALIGNMENT ("NONE"),
.INIT (1'b0),
.SRTYPE ("SYNC")
) ODDR2_inst (
.Q (w_tx_out_clk),
.C0 (w_clk0_out),
.C1 (~w_clk0_out),
.CE (1'b1),
.D0 (1'b1),
.D1 (1'b0),
.R (1'b0),
.S (1'b0)
);
*/

assign tx_out_clk = w_tx_out_clk;

endmodule


В констрейнах прописываю лишь:

NET "tx_in_clk" CLOCK_DEDICATED_ROUTE = FALSE;


Гуру по 3-им спартанам не подскажите в чем загвоздка??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
Sergey_Bekrenyov
сообщение May 28 2013, 19:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Цитата(ovs_pavel @ May 16 2013, 21:31) *
.DLL_FREQUENCY_MODE ("LOW"),


Посмотрите какие частоты для Спартана-3 лежат в Low. а какие в High диапазоне


LOW Default. The DLL function unit operates in its low-frequency mode. All
DLL-related outputs are available. The frequency for all clock inputs and
outputs must fall within the low-frequency DLL limits specified in the
Spartan-3 Data Sheet.

HIGH The DLL function unit operates in its high-frequency mode. The Clock
Doubler (CLK2X, CLK2X180) outputs are not available. The Quadrant
Phase Shifted Outputs CLK90 and CLK270 are not available. The duty
cycle for the CLKDV output is not 50% if the CLKDV_DIVIDE attribute is
a non-integer. The frequency for all clock inputs and outputs must fall
within the high-frequency DLL limits specified in the Spartan-3 Data
Sheet
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:05
Рейтинг@Mail.ru


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