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

 
 
> Элементы задержки в DLL от Xilinx
Костян
сообщение Mar 28 2008, 10:19
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



Мучает любопытство : что есть физически элементы задержки в DLL Xilinx ? В документации Xilinx ни слова о их структуре не говорит (или плохо искал smile.gif )
Каждый отдельный элемент постоянной или переменной величины?

Расмотрим эти элементы задержки в DCM. В документации рисуют Delay1 , Delay2 .. Delay N . Чему равно это N?
Почему дискрет сдвига фазы равен 1/256 (1,4 градуса) ? Получается N=255 ? Тогда почему она постоянная для разных частот ? Каждый элемент задержки переменной величины ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dm.pogrebnoy
сообщение Mar 28 2008, 13:24
Сообщение #2


Знающий
****

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



Цитата(Костян @ Mar 28 2008, 13:19) *
Мучает любопытство : что есть физически элементы задержки в DLL Xilinx ? В документации Xilinx ни слова о их структуре не говорит (или плохо искал smile.gif )
Каждый отдельный элемент постоянной или переменной величины?

Расмотрим эти элементы задержки в DCM. В документации рисуют Delay1 , Delay2 .. Delay N . Чему равно это N?
Почему дискрет сдвига фазы равен 1/256 (1,4 градуса) ? Получается N=255 ? Тогда почему она постоянная для разных частот ? Каждый элемент задержки переменной величины ?


В документе на DCM имелись ввиду буферы с нормированной задержкой, выстроенные в цепочку. выход каждого буфера заводится ну мультиплексор, таким образом можно выбирать нужную задержку. Во четвертом виртексе, например, задержка меняется с шагом минимум 5 ps в быстром режиме. Элемент задержки, о котором вы говорили (DelayN) состоит как раз из таких буферов. Т.е. сама линия задержки состоит из кучи маленьких подстраиваемых задержекю. Это стандартная схема, задержка от частоты не зависит, а вот сдвиг фазы как раз зависит от частоты, т.е. зависит от того какой у вас входной сигнал.

Посмотрите DS302 у Xilinx на странице 41 характеристики Fine Phase Shifting и Delay Lines, думаю тогда все поймете.


--------------------
Go to the top of the page
 
+Quote Post
Ender
сообщение Mar 29 2008, 15:57
Сообщение #3


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

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Mar 31 2008, 08:08
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 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 и т.п. и только в крайних случаях прибегать к изворотам, в виде цепочки буферов.


--------------------
Go to the top of the page
 
+Quote Post
Ender
сообщение Mar 31 2008, 12:15
Сообщение #5


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

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



Цитата(dm.pogrebnoy @ Mar 31 2008, 12:08) *
...
Но по-мойму легче для входящих сигналов (если работаете с virtex-4/5) использовать линию задержки находящюуся в IOB, для внутренних сигналов использовать констрэйнты типа MAXDELAY и MAXSKEW и т.п. и только в крайних случаях прибегать к изворотам, в виде цепочки буферов.


Огромное спасибо! Ответ абсолютно исчерпывающий. beer.gif


--------------------
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.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Костян   Элементы задержки в 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


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

 


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


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