|
Элементы задержки в DLL от Xilinx |
|
|
|
Mar 28 2008, 10:19
|
Знающий
   
Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059

|
Мучает любопытство : что есть физически элементы задержки в DLL Xilinx ? В документации Xilinx ни слова о их структуре не говорит (или плохо искал  ) Каждый отдельный элемент постоянной или переменной величины? Расмотрим эти элементы задержки в DCM. В документации рисуют Delay1 , Delay2 .. Delay N . Чему равно это N? Почему дискрет сдвига фазы равен 1/256 (1,4 градуса) ? Получается N=255 ? Тогда почему она постоянная для разных частот ? Каждый элемент задержки переменной величины ?
|
|
|
|
|
 |
Ответов
|
Mar 28 2008, 13:24
|

Знающий
   
Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933

|
Цитата(Костян @ Mar 28 2008, 13:19)  Мучает любопытство : что есть физически элементы задержки в DLL Xilinx ? В документации Xilinx ни слова о их структуре не говорит (или плохо искал  ) Каждый отдельный элемент постоянной или переменной величины? Расмотрим эти элементы задержки в DCM. В документации рисуют Delay1 , Delay2 .. Delay N . Чему равно это N? Почему дискрет сдвига фазы равен 1/256 (1,4 градуса) ? Получается N=255 ? Тогда почему она постоянная для разных частот ? Каждый элемент задержки переменной величины ? В документе на DCM имелись ввиду буферы с нормированной задержкой, выстроенные в цепочку. выход каждого буфера заводится ну мультиплексор, таким образом можно выбирать нужную задержку. Во четвертом виртексе, например, задержка меняется с шагом минимум 5 ps в быстром режиме. Элемент задержки, о котором вы говорили (DelayN) состоит как раз из таких буферов. Т.е. сама линия задержки состоит из кучи маленьких подстраиваемых задержекю. Это стандартная схема, задержка от частоты не зависит, а вот сдвиг фазы как раз зависит от частоты, т.е. зависит от того какой у вас входной сигнал. Посмотрите DS302 у Xilinx на странице 41 характеристики Fine Phase Shifting и Delay Lines, думаю тогда все поймете.
--------------------
|
|
|
|
|
Mar 29 2008, 15:57
|

Частый гость
 
Группа: Свой
Сообщений: 88
Регистрация: 5-11-07
Пользователь №: 32 072

|
Цитата(dm.pogrebnoy @ Mar 28 2008, 16:24)  В документе на DCM имелись ввиду буферы с нормированной задержкой, выстроенные в цепочку. выход каждого буфера заводится ну мультиплексор, таким образом можно выбирать нужную задержку. Во четвертом виртексе, например, задержка меняется с шагом минимум 5 ps в быстром режиме. Элемент задержки, о котором вы говорили (DelayN) состоит как раз из таких буферов. Т.е. сама линия задержки состоит из кучи маленьких подстраиваемых задержекю. Это стандартная схема, задержка от частоты не зависит, а вот сдвиг фазы как раз зависит от частоты, т.е. зависит от того какой у вас входной сигнал.
Посмотрите DS302 у Xilinx на странице 41 характеристики Fine Phase Shifting и Delay Lines, думаю тогда все поймете. Вопрос - возможно ли использовать самому такую структуру задержки? Напрямую пытался выстраивать, давно еще, последовательность из буферов, из инверторов, из лутов.... Задержка фиксированная получается для любой длины последовательности, этот гад ИСЕ все оптимизирует) Как корректно реализовать? До сих пор приходится делать, если требуется задержка для подстройки, на быстродействующих сдвиговых регистрах с тактированием)
--------------------
I have nothing... Because only my dreams. And i put my dreams under your feet. Tread softly.. because you tread on my dreams. W. Yeats.
|
|
|
|
|
Mar 31 2008, 08:08
|

Знающий
   
Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933

|
Цитата(Ender @ Mar 29 2008, 19:57)  Вопрос - возможно ли использовать самому такую структуру задержки? Напрямую пытался выстраивать, давно еще, последовательность из буферов, из инверторов, из лутов.... Задержка фиксированная получается для любой длины последовательности, этот гад ИСЕ все оптимизирует) Как корректно реализовать? До сих пор приходится делать, если требуется задержка для подстройки, на быстродействующих сдвиговых регистрах с тактированием) В принципе можно делать задержку и на буферах. Для того что бы ISE не оптимизировал структуру необходимо применить специальный атрибут в VHDL описнии элемента задержки. (noopt) Вот код, использующий две LUT в режиме буфера (хотя это и безразлично, потому что величина задержки не меняется от типа функиции в LUT) для задержки. Каждая LUT дает 0,17 нс задержки. Можно их выстроить в цепочку и для уверенности еще прибить гвоздями (атрибут rloc). ИМХО время задржки великовато, подходит для сигналов 250-300 Мгц и меньше. Код library ieee; use ieee.std_logic_1164.all;
library unisim; use unisim.vcomponents.all;
entity delay is port( i : in std_logic; o : out std_logic ); end delay;
architecture delay of delay is
attribute noopt : boolean; attribute noopt of xlut0 : label is TRUE; attribute noopt of xlut1 : label is TRUE;
attribute rloc: string; attribute rloc of xlut0 : label is "X0Y0"; attribute rloc of xlut1 : label is "X0Y0";
component LUT1 -- synthesis translate_off generic ( INIT : bit_vector := X"2"); -- synthesis translate_on port ( O : out STD_ULOGIC; I0 : in STD_ULOGIC); end component;
attribute INIT : string; attribute INIT of xlut0 : label is "2"; attribute INIT of xlut1 : label is "2";
signal s0, s1 : std_logic;
begin xlut0: LUT1 -- synthesis translate_off generic map( INIT => x"2" ) -- режим буфера -- synthesis translate_on port map (O => s0, I0 => i);
xlut1: LUT1 -- synthesis translate_off generic map( INIT => x"2" ) -- режим буфера -- synthesis translate_on port map (O => s1, I0 => s0);
o<=s1;
end s_delay; Но по-мойму легче для входящих сигналов (если работаете с virtex-4/5) использовать линию задержки находящюуся в IOB, для внутренних сигналов использовать констрэйнты типа MAXDELAY и MAXSKEW и т.п. и только в крайних случаях прибегать к изворотам, в виде цепочки буферов.
--------------------
|
|
|
|
|
Mar 31 2008, 12:15
|

Частый гость
 
Группа: Свой
Сообщений: 88
Регистрация: 5-11-07
Пользователь №: 32 072

|
Цитата(dm.pogrebnoy @ Mar 31 2008, 12:08)  ... Но по-мойму легче для входящих сигналов (если работаете с virtex-4/5) использовать линию задержки находящюуся в IOB, для внутренних сигналов использовать констрэйнты типа MAXDELAY и MAXSKEW и т.п. и только в крайних случаях прибегать к изворотам, в виде цепочки буферов. Огромное спасибо! Ответ абсолютно исчерпывающий.
--------------------
I have nothing... Because only my dreams. And i put my dreams under your feet. Tread softly.. because you tread on my dreams. W. Yeats.
|
|
|
|
Сообщений в этой теме
Костян Элементы задержки в DLL от Xilinx Mar 28 2008, 10:19 DmitryR Поставьте MicroWave Office, там в примерах есть по... Mar 28 2008, 10:52    andrew_b Цитата(Ender @ Mar 31 2008, 15:15) Огромн... Mar 31 2008, 13:22     Ender Цитата(andrew_b @ Mar 31 2008, 17:22) Кол... Mar 31 2008, 14:44 Fat Robot http://en.wikipedia.org/wiki/Delay-locked_loop Mar 29 2008, 19:18 avesat DLL или DCM это так называемые hard core, добратьс... Mar 29 2008, 19:44 Ender Цитата(avesat @ Mar 29 2008, 22:44) DLL и... Mar 29 2008, 20:43 Fat Robot можете использовать
кварцевые, ртутные, коаксиальн... Mar 29 2008, 21:03 avesat Ну так и делайте на синхронных регистрах или счетч... Mar 29 2008, 21:06 Ender ЦитатаВ документе на DCM имелись ввиду буферы с но... Mar 30 2008, 05:54  leevv Цитата(Ender @ Mar 30 2008, 01:54) Я дума... Mar 30 2008, 19:19   Ender Цитата(leevv @ Mar 30 2008, 23:19) Есть р... Mar 30 2008, 20:35    leevv Цитата(Ender @ Mar 30 2008, 16:35) Да, ве... Mar 31 2008, 00:25     Ender Цитата(leevv @ Mar 31 2008, 04:25) Ну зав... Mar 31 2008, 07:35
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|