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

 
 
> Проблема с DCM в Virtex2
L_Konstantin
сообщение Oct 13 2006, 10:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 13-10-06
Из: Новосибирск
Пользователь №: 21 282



С кварцевого генератора подается тактовый сигнал на вход кристалла.
далее он проводится через DCM.

Проблема в том что на выходе DCM тактвый сигнал есть, но при этом loc стоит в нуле!

Кто сталкивался? Как бороться?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
ilya79
сообщение Oct 13 2006, 11:02
Сообщение #2


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

Группа: Свой
Сообщений: 179
Регистрация: 26-08-04
Пользователь №: 549



Цитата(L_Konstantin @ Oct 13 2006, 14:35) *
С кварцевого генератора подается тактовый сигнал на вход кристалла.
далее он проводится через DCM.

Проблема в том что на выходе DCM тактвый сигнал есть, но при этом loc стоит в нуле!

Кто сталкивался? Как бороться?

1. Какие параметры тактового сигнала F, дрожание ?
2. В каком режиме работает DCM ?
3. Если пункт 1 удовлетворяет требованиям Xilinx, то попробуйте принудительно reset-ить DCM после загрузки.
Go to the top of the page
 
+Quote Post
Link
сообщение Oct 13 2006, 18:45
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 28
Регистрация: 1-12-05
Пользователь №: 11 671



Заодно проверьте
- режим работы DCM : low или high frequency
- есть ли обратная связь - feedback
Go to the top of the page
 
+Quote Post
L_Konstantin
сообщение Oct 14 2006, 07:58
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 13-10-06
Из: Новосибирск
Пользователь №: 21 282



Входная частота: 47 МГц.

Внутри DCM происходит умножение частоты на 2 и фазовый сдвиг.

Reset в DCM заведен, однако его активация ситуацию не изменяет. Помогает только выключение питания и повторение загрузки. Просто перезагрузка также не помогает. При этом loc не выставляется примерно в 30% случаев загрузки - то есть нестабильность присутствует.

Вот элемент кода (Kvartz_Clock - сигнал входящий в кристалл, Xilinx_DCM_Clock - тактовый сигнал для работы внутренней логики).

--********************************************************************************
*****

attribute CLK_FEEDBACK of Xilinx_DCM : label is "2X";
attribute DLL_FREQUENCY_MODE of Xilinx_DCM : label is "LOW";

attribute CLKOUT_PHASE_SHIFT of Xilinx_DCM : label is "FIXED";
attribute PHASE_SHIFT of Xilinx_DCM : label is 40.0;

--********************************************************************************
*****

Kvartz_CLK_IBUFG: IBUFG_LVCMOS33
port map(
I => Kvartz_Clock,
O => Kvartz_Clock_Int );

Kvartz_CLK_BUFGMUX: BUFGMUX
port map (
I0 => Kvartz_Clock_Int,
I1 => '0',
S => '0',
O => Kvartz_Clock_BufGMux
);


Xilinx_DCM_ClockFB <= Xilinx_DCM_Clock;

Xilinx_DCM: DCM
port map(
CLKIN => Kvartz_Clock_BufGMux,
RST => NOT PCIX_Bus_Reset_Int,
CLKFB => Xilinx_DCM_ClockFB,

CLK0 => open,

CLK2X => Xilinx_DCM_Clock_FromDLL,

LOCKED => Xilinx_DCM_Locked
);

Xilinx_Clock_BUFG: BUFG
port map(I => Xilinx_DCM_Clock_FromDLL, O => Xilinx_DCM_Clock);

Сообщение отредактировал L_Konstantin - Oct 14 2006, 08:00
Go to the top of the page
 
+Quote Post
klop
сообщение Oct 14 2006, 08:20
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



Цитата(L_Konstantin @ Oct 14 2006, 11:58) *
Входная частота: 47 МГц.

Внутри DCM происходит умножение частоты на 2 и фазовый сдвиг.

Reset в DCM заведен, однако его активация ситуацию не изменяет. Помогает только выключение питания и повторение загрузки. Просто перезагрузка также не помогает. При этом loc не выставляется примерно в 30% случаев загрузки - то есть нестабильность присутствует.

Вот элемент кода (Kvartz_Clock - сигнал входящий в кристалл, Xilinx_DCM_Clock - тактовый сигнал для работы внутренней логики).

--********************************************************************************
*****

attribute CLK_FEEDBACK of Xilinx_DCM : label is "2X";
attribute DLL_FREQUENCY_MODE of Xilinx_DCM : label is "LOW";

attribute CLKOUT_PHASE_SHIFT of Xilinx_DCM : label is "FIXED";
attribute PHASE_SHIFT of Xilinx_DCM : label is 40.0;

--********************************************************************************
*****

Kvartz_CLK_IBUFG: IBUFG_LVCMOS33
port map(
I => Kvartz_Clock,
O => Kvartz_Clock_Int );

Kvartz_CLK_BUFGMUX: BUFGMUX
port map (
I0 => Kvartz_Clock_Int,
I1 => '0',
S => '0',
O => Kvartz_Clock_BufGMux
);


Xilinx_DCM_ClockFB <= Xilinx_DCM_Clock;

Xilinx_DCM: DCM
port map(
CLKIN => Kvartz_Clock_BufGMux,
RST => NOT PCIX_Bus_Reset_Int,
CLKFB => Xilinx_DCM_ClockFB,

CLK0 => open,

CLK2X => Xilinx_DCM_Clock_FromDLL,

LOCKED => Xilinx_DCM_Locked
);

Xilinx_Clock_BUFG: BUFG
port map(I => Xilinx_DCM_Clock_FromDLL, O => Xilinx_DCM_Clock);


По моему на CLKFB должен быть заведен (через BUFG) CLK0.
Go to the top of the page
 
+Quote Post
Link
сообщение Oct 14 2006, 10:22
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 28
Регистрация: 1-12-05
Пользователь №: 11 671



А зачем вам "Kvartz_CLK_BUFGMUX" когда уже есть "Kvartz_CLK_IBUFG". "Kvartz_CLK_BUFGMUX" просто не нужен.

какие стоят значения аттрибутов
- DESKEW_ADJUST
- CLKIN_DIVIDE_BY_2
?

Вообще эти аттрибуты внедряются у вас при разводке Xilinx ?


klop
подавать на feedback CLK2x вроде можно, ведь стоит attribute CLK_FEEDBACK of Xilinx_DCM : label is "2X".
Попробовать вместо CLK2x подавать CLK0 стоит.
Go to the top of the page
 
+Quote Post
L_Konstantin
сообщение Oct 15 2006, 06:08
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 13-10-06
Из: Новосибирск
Пользователь №: 21 282



1. А зачем вам "Kvartz_CLK_BUFGMUX" когда уже есть "Kvartz_CLK_IBUFG". "Kvartz_CLK_BUFGMUX" просто не нужен.

Поставил я его специально. Дело в том, что если его не ставить, то после IBufG сигнал идет по обычным путям внутри кристалла. А если его провести через BUFGMUX, то он начинает распространяться через глобальные скоростные линии (узнал об это тогда, когда боролся с тем, что разные блоки срабатывал по фронту в разное время. Поразглядывал разводку во FPGA Editor и увидел такую штуку.

2. какие стоят значения аттрибутов
- DESKEW_ADJUST
- CLKIN_DIVIDE_BY_2

Значения этих аттритов я сам не определяю - то есть они умолчательные. Задал специльно только CLK_FEEDBACK, DLL_FREQUENCY_MODE, CLKOUT_PHASE_SHIFT и PHASE_SHIFT - исходя из их необходимости.

3. CLK0 конечно надо попробовать подать на FB, но смогу попробовать только завтра - выходной седеня smile.gif

Сообщение отредактировал L_Konstantin - Oct 15 2006, 06:14
Go to the top of the page
 
+Quote Post
BSV
сообщение Oct 15 2006, 07:09
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Цитата(L_Konstantin @ Oct 15 2006, 10:08) *
Поставил я его специально. Дело в том, что если его не ставить, то после IBufG сигнал идет по обычным путям внутри кристалла. А если его провести через BUFGMUX, то он начинает распространяться через глобальные скоростные линии (узнал об это тогда, когда боролся с тем, что разные блоки срабатывал по фронту в разное время. Поразглядывал разводку во FPGA Editor и увидел такую штуку.


Если Вы от этого клока кроме DCM ничего не тактируете, то ставить туда BUFGMUX - только зряшняя трата ресурсов.

Атрибуты Xilinx гораздо удобнее задавать через GENERIC - последние версии софта это позволяют, попробуйте воспользоваться вариантом из LANGUAGE TEMPLATES ISE.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
Link
сообщение Oct 15 2006, 21:12
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 28
Регистрация: 1-12-05
Пользователь №: 11 671



Цитата(L_Konstantin @ Oct 15 2006, 10:08) *
Поставил я его специально. Дело в том, что если его не ставить, то после IBufG сигнал идет по обычным путям внутри кристалла. А если его провести через BUFGMUX, то он начинает распространяться через глобальные скоростные линии (узнал об это тогда, когда боролся с тем, что разные блоки срабатывал по фронту в разное время. Поразглядывал разводку во FPGA Editor и увидел такую штуку.



Вообще-то после IBUFG сигнал идет по высокоскоростным (клоковым) цепям, это после IBUF он идет по обычным...

Чтобы блоки срабатывали когда надо, обычно constrant вешаются...
Go to the top of the page
 
+Quote Post

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

 


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


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