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

 
 
> Работа с синхросигналами, нужна помощь.
Михаил_K
сообщение Mar 4 2009, 05:47
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Добрый день. Вопрос в следующем. Работаю с Virtex5. Есть два канала данных, и два синхросигнала SCLK и SCLKx2, где SCLKx2 - частота в два раза больше чем у SCLK. Оба синхросигнала получаются с DLL и соотвественно синхронны и, если можно так сказать "синфазны". В схеме есть места, где данные передаются с триггера тактируемого SCLK на триггер, тактируемый SCLKx2 и наоборот. Тут вроде проблем нету. Но оба канала данных обрабатываются либо параллельно, на SCLK, либо последовательно, на SLCKx2. И тут появляется огромное желание сигнал SCLK использовать еще и как логический, т.е. заводить его на Ce триггера или управлять при помощи него мультиплексором. Но чувствую, что можно нарваться. Кто-нить встречал и может дать ссылку на доку, желательно Xilinx-кую, где написано, можно так делать или нет?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andrew_b
сообщение Mar 4 2009, 07:17
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Михаил_K @ Mar 4 2009, 08:47) *
Но чувствую, что можно нарваться. Кто-нить встречал и может дать ссылку на доку, желательно Xilinx-кую, где написано, можно так делать или нет?
Делал я так. Но в качестве CE использовал не сам SCLK, а стробированный SCLKx2.

Код
process (Reset, SCLKx2)
begin
    if (Reset = '1') then
        CE <= '0';
    elsif (rising_edge(SCLKx2)) then
        CE <= SCLK;
     end if;
end process;
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Mar 4 2009, 07:32
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(andrew_b @ Mar 4 2009, 10:17) *
Делал я так. Но в качестве CE использовал не сам SCLK, а стробированный SCLKx2.

Код
process (Reset, SCLKx2)
begin
    if (Reset = '1') then
        CE <= '0';
    elsif (rising_edge(SCLKx2)) then
        CE <= SCLK;
     end if;
end process;

А вот где почитать, можно ли так делать и что будет на выходе?
В зависимости от того, как DCM выравнит фазы клоков, возможно два варианта соотношения фазы CE и синхросигнала SCLK. А уж если DCM будет заниматься подстройкой в процессе работы (чем она и занимается), и фаза SCLK будет то опережать, то от SCLKx2 (ессно, на величину указанную в спецификации), то возможно, что Ce вообще будет два такта иметь одинаковое значение (будет проскок). Если только задержка при входе на триггер будет больше чем возможное опережение фазы SCLK, тогда можно применить такую схему.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Mar 4 2009, 07:48
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Михаил_K @ Mar 4 2009, 10:32) *
А уж если DCM будет заниматься подстройкой в процессе работы (чем она и занимается), и фаза SCLK будет то опережать, то от SCLKx2 (ессно, на величину указанную в спецификации)
Вы же сами написали:
Цитата
В схеме есть места, где данные передаются с триггера тактируемого SCLK на триггер, тактируемый SCLKx2 и наоборот. Тут вроде проблем нету.
Вы не находите некоторое противоречие?
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Mar 4 2009, 08:18
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(andrew_b @ Mar 4 2009, 10:48) *
Вы не находите некоторое противоречие?


Нет. Потому-что данные с триггера выходят с задержкой. И задержка эта, вместе с линиями коммутаций такова, что имеющийся разброс фаз на DCM не приводит к сбою в работе схемы.

Цитата(Shtirlits @ Mar 4 2009, 10:53) *
Делать так можно, но есть способ, при котором клок не выходит за пределы специально для него сделанных сетей и все части микросхемы и среды разработки используются по назначению.
Смысл заключается в том, чтобы сделать регистр, который бы инвертировался на каждом такте быстрого клока. Тогда он будет менять свой уровень как и медленный клок. Чтобы фаза этого регистра имела связь с фазой медленного клока, нужно начинать инвертировать с привязкой к медленному клоку. Для этого нужен еще один регистр сброса.
Констрейны в этом случае записываются проще и соблюдать их легче.

Спасибо, от этом я думал. Здесь один недостаток - этот сигнал придется дополнительно таскать по всему кристаллу, и у отдельных узлов делать вход для этого сигнала. Этакое неудобство, но видимо обойти его не удастся. rolleyes.gif

Правда для совпадения фазы я все-таки по другому сделал. Через триггер, как было предложено выше, только на вход D подал клок с выхода DCM, сдвинутого на 270 градусов. smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Михаил_K   Работа с синхросигналами   Mar 4 2009, 05:47
||- - andrew_b   Цитата(Михаил_K @ Mar 4 2009, 11:18) Прав...   Mar 4 2009, 08:23
|||- - Михаил_K   Цитата(andrew_b @ Mar 4 2009, 11:23) Фазы...   Mar 4 2009, 08:37
|||- - andrew_b   Цитата(Михаил_K @ Mar 4 2009, 11:37) Отку...   Mar 4 2009, 09:05
|||- - DmitryR   Я при возникновении похожих задач (хлопать быстрым...   Mar 4 2009, 09:10
|||- - Shtirlits   Цитата(DmitryR @ Mar 4 2009, 12:10) Я при...   Mar 4 2009, 09:32
|||- - Михаил_K   Цитата(DmitryR @ Mar 4 2009, 12:10) Я при...   Mar 4 2009, 09:32
||- - Shtirlits   Цитата(Михаил_K @ Mar 4 2009, 11:18) Здес...   Mar 4 2009, 09:02
||- - Михаил_K   Цитата(Shtirlits @ Mar 4 2009, 12:02) А е...   Mar 4 2009, 09:27
||- - petrov   А почему нельзя использовать глобальный SCLKx2, а ...   Mar 4 2009, 09:39
||- - Михаил_K   Цитата(petrov @ Mar 4 2009, 12:39) А поче...   Mar 4 2009, 09:52
||- - petrov   Цитата(Михаил_K @ Mar 4 2009, 12:48) Ну т...   Mar 4 2009, 09:53
|||- - Михаил_K   Цитата(petrov @ Mar 4 2009, 12:53) Ошибки...   Mar 4 2009, 10:33
|||- - petrov   Цитата(Михаил_K @ Mar 4 2009, 13:33) Иног...   Mar 4 2009, 10:48
||||- - Михаил_K   Цитата(petrov @ Mar 4 2009, 13:48) Порочн...   Mar 4 2009, 10:52
||||- - Shtirlits   Цитата(Михаил_K @ Mar 4 2009, 13:52) Вот ...   Mar 4 2009, 11:13
||||- - petrov   Цитата(Михаил_K @ Mar 4 2009, 13:52) А кт...   Mar 4 2009, 11:15
||||- - Михаил_K   Цитата(petrov @ Mar 4 2009, 14:15) Наскол...   Mar 4 2009, 11:42
||||- - Shtirlits   Цитата(Михаил_K @ Mar 4 2009, 14:42) К со...   Mar 4 2009, 12:04
|||||- - Михаил_K   Цитата(Shtirlits @ Mar 4 2009, 15:04) Ну ...   Mar 4 2009, 12:12
||||- - DmitryR   Цитата(Михаил_K @ Mar 4 2009, 14:42) К со...   Mar 4 2009, 12:22
|||- - sergunas   Цитата(Михаил_K @ Mar 4 2009, 13:33) Речь...   Mar 4 2009, 10:55
||||- - Михаил_K   Цитата(sergunas @ Mar 4 2009, 13:55) Клок...   Mar 4 2009, 11:01
||||- - sergunas   Цитата(Михаил_K @ Mar 4 2009, 14:01) Поче...   Mar 4 2009, 11:09
|||- - andrew_b   Цитата(Михаил_K @ Mar 4 2009, 13:33) Вот ...   Mar 4 2009, 11:02
||- - DmitryR   Цитата(Михаил_K @ Mar 4 2009, 12:52) Посм...   Mar 4 2009, 11:42
|- - Shtirlits   Делать так можно, но есть способ, при котором клок...   Mar 4 2009, 07:53
- - sergunas   Цитата(Михаил_K @ Mar 4 2009, 08:47) И ту...   Mar 4 2009, 10:19
- - Михаил_K   Ну в общем ответ на свой вопрос я получил. В лоб з...   Mar 4 2009, 12:35
- - dvladim   Цитата(Михаил_K @ Mar 4 2009, 15:35) Ну в...   Mar 4 2009, 19:31
- - Shtirlits   Цитата(dvladim @ Mar 4 2009, 22:31) Почем...   Mar 4 2009, 21:42
- - Михаил_K   Цитата(dvladim @ Mar 4 2009, 22:31) Опа, ...   Mar 5 2009, 05:56


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

 


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


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