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

 
 
> Клоки, Использование нескольких синх. сиг. в пр
DimaV
сообщение Jul 21 2004, 13:07
Сообщение #1


Участник
*

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



Ситуация: В большом проекте нужно использовать несколько клоков (не кратных). Есть компоненты которые работают синхронно от разных клоков.
Вопрос: Как грамотно соеденить эти компоненты между собой?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
Esquire
сообщение Jul 21 2004, 15:52
Сообщение #2


Эсквайр
*****

Группа: Почетный участник
Сообщений: 1 013
Регистрация: 19-06-04
Из: • ℮lectronﭑχ •
Пользователь №: 62



Смотря какая связь компонентов требуется. Если обмен данными, то помогает буферирование (двухпортовая память, FIFO и т. д. в зависимости от конкретной задачи).


--------------------
Кто ищет, тот всегда найдет
Go to the top of the page
 
+Quote Post
LeonY
сообщение Jul 21 2004, 20:10
Сообщение #3


Знающий
****

Группа: Админы
Сообщений: 689
Регистрация: 24-06-04
Из: South Africa
Пользователь №: 164



Цитата(DimaV @ Jul 21 2004, 05:07 PM)
Есть компоненты которые работают синхронно от разных клоков.

А чего бы это значило??? Поподробнее можно...


--------------------
"В мире есть две бесконечные вещи: Вселенная и человеческая глупость. За Вселенную, впрочем, поручиться не могу". (С)

А. Эйнштейн.
Go to the top of the page
 
+Quote Post
DimaV
сообщение Jul 22 2004, 06:57
Сообщение #4


Участник
*

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



Цитата(LeonY @ Jul 22 2004, 12:10 AM)
А чего бы это значило??? Поподробнее можно...

Поясняю. Есть уже отлаженные компоненты которые работают синхронно. Компоненты коммутируются шинами (адрес, данные, энейблы). Нужно обмениваться данными как можно быстрее. Я тут слышал про эластичный буфер, кто нибудь может сказать подробнее как он работает, хотя двупортовая память это тоже выход, но её может и нехватить :-))))
Go to the top of the page
 
+Quote Post
Hadgehog
сообщение Jul 22 2004, 10:49
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 21-07-04
Из: Великий Новгород, Российская Федерация
Пользователь №: 346



Наверное самое лучшее писать проект сверху вниз, для начала определить основные принципы работы всего устройства - распределение тактовых частот и их фазы для работы конкретных устройств нижнего уровня, а уже затем проектировать частные куски.
Если не хочется терять старые наработки, то связь отлаженых модулей вполне возможна через FIFO, но если в начале не разработана общая идеология работы, то может получиться, что работа будет называться "подпорки под костыли".
Подобные "грабли" уже неоднократно встречались в моем личном опыте.
Go to the top of the page
 
+Quote Post
DimaV
сообщение Jul 22 2004, 11:24
Сообщение #6


Участник
*

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



Цитата(Hadgehog @ Jul 22 2004, 02:49 PM)
Наверное самое лучшее писать проект сверху вниз, для начала определить основные принципы работы всего устройства - распределение тактовых частот и их фазы для работы конкретных устройств нижнего уровня, а уже затем проектировать частные куски.

Я конечно же согласен, что начиная делать большой проект надо сначала разобраться с глобальными вещами (т.е. структурой, связями между компонентами и т.д.), но тем не менее большие проекты пишуться по частям, да и отлаживать отдельно компоненты намного продуктивнее. Так что такое эластичный буфер.
Go to the top of the page
 
+Quote Post
Hadgehog
сообщение Jul 22 2004, 11:35
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 21-07-04
Из: Великий Новгород, Российская Федерация
Пользователь №: 346



Извини про эластичный буфер не слышал, если кто проявится с разяснениями, очень интересная тема - "граблей" старых почти как блох. Проблема сихронизации изначально несинхронных источников данных с минимальными временными потерями почти, что основная моя работа в различных системах.
Go to the top of the page
 
+Quote Post
DimaV
сообщение Jul 22 2004, 14:55
Сообщение #8


Участник
*

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



Если у кого есть полезные ссыски где можно посмотреть статьи про сопряжение компонетов работающих от различных клоков, пожалуйста сообщите.
Go to the top of the page
 
+Quote Post
vladz
сообщение Jul 23 2004, 16:02
Сообщение #9


Участник
*

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



есть статья Каммингса Synthesis and Scripting Techniques for Designing Multi-Asynchronous Clock Designs скачать можно с http://www.sunburst-design.com/papers/Cumm...cClk_rev1_1.pdf

на сайте http://www.sunburst-design.com/papers/
много еще чего интересного есть.
Go to the top of the page
 
+Quote Post
Guest_Guest_*
сообщение Jul 23 2004, 17:41
Сообщение #10





Guests






есть такое понятие как синхронизаторы (блок из триггеров) нужен вот для чего: если есть схема в которой есть разные тактовые домены работающие на одной частоте но не факт что фазы совпадают,а надо передавать данные из одного в другой и чтоб голова не болела по поводу проскальзываний или метасостояний, то делаем так:
(вых данных, и такты1) -> триггер1
(выход триггер1, такты2) ->триггер2
(выход триггер2, такты2) ->триггер3
с выхода триггера3 уже имеем стабильные данные но нужным нам тактам.

Не помню где читал, пдфка какая-то была...
udofun
Go to the top of the page
 
+Quote Post
gab
сообщение Jul 26 2004, 12:14
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 376
Регистрация: 30-06-04
Из: Moskow
Пользователь №: 218



Цитата(DimaV @ Jul 21 2004, 05:07 PM)
Ситуация: В большом проекте нужно использовать несколько клоков (не кратных). Есть компоненты которые работают синхронно от разных клоков.
Вопрос: Как грамотно соеденить эти компоненты между собой?

FIFO. Глубину можно посчитать исходя из синхросигналов. Если нельзя -- переделывать проект. Лучше это сделать сейчас, чем после месяца безуспешной отладки.
У Xilinx на эту тему есть XAPP. Номер, к глубокому сожалению, не помню. На мой взгляд, клоков в схеме должно быть как можно меньше.


--------------------
serpents on the way to paradise -
dying for love, fighting for ages.

Go to the top of the page
 
+Quote Post
zov
сообщение Aug 23 2004, 12:03
Сообщение #12





Группа: Свой
Сообщений: 7
Регистрация: 30-06-04
Пользователь №: 222



Эластичный буфер - это просто FIFO со специальной логикой и решает оно вполне конкретную задачу. Есть синхронный источник сигналов, есть схема, которая восстанавливает из входного сигнала клок и на нем принимает входной сигнал. Эта схема должна пересадить принятый сигнал на мастер-клок всего устройства и частота этой пересадки равняется частоте входного сигнала, но в среднем! А в реальности из-за джиттера и входных помех эта частота плавает вокруг среднего значения. чтобы в результате не возникала ситуация, когда очередные данные не приходят к очередному клоку или наоборот, старые данные еще не передана а поступили новые, используется FIFO, которое в этом случае называется эластичным буфером. Глобально алгоритм работы этого буфера достаточно прост (детали могут сильно отличаться в зависимости от характеристик всей системы и ее реализации) - FIFO заполняется и опустошается таким образом, чтобы поддерживать его заполненость примерно на половину(номинально). Из всего вышесказанного следует, что эластичный буфер вряд ли подойдет для решения указанной задачи.
Что касается проблемы сопряжения передачи данных из доменов с разными клоками, то ее решение сильно зависит от вида пересылок данных на исходных шинах. Два крайних случая:
1. Исходные данные на шинах поступают блочно (PCI в режиме блочного обмена и т.д.) - в этом случае поможет только 2-х портовое ОЗУ с разными частотами записи/чтения.
2. Исходно данные передаются одиночными словами. В этом случае достаточно из одного домена в другой передать строб сопровождения данных, защитив его от возможной метастабильности, причем этот строб должен сбрасываться из приемного домена, где также следует учесть возможную метастабильность.
В промежутке лежит все многообразие практических задач, которые решаются комбинацией вышеописанных приемов.

Успехов!
zov
Go to the top of the page
 
+Quote Post
judge47
сообщение Sep 19 2010, 03:56
Сообщение #13





Группа: Новичок
Сообщений: 4
Регистрация: 12-09-10
Пользователь №: 59 432



Вы можете представить схему и обьяснить, каков принцип построения и действия эластичного буфера???
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Sep 19 2010, 06:50
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Цитата(judge47 @ Sep 19 2010, 06:56) *
Вы можете представить схему и обьяснить, каков принцип построения и действия эластичного буфера???

Как уже сказано в посте, предшествующем вашему (эта информация не устарела smile.gif ) эластичный буфер==Фифо. А дальше - в гугль, пепрепечатывать сюда азбуку как-то неинтересно.

По поводу ньюансов реализации полезно почитать статьи Клиффорда Каммингса (Clifford Cummings), но это уже не для новичков. Новичкам дорога в Megawizard Plugin menager, или в корегенератор (или как оно там у XILINX называется)
Go to the top of the page
 
+Quote Post
wolfman
сообщение Sep 19 2010, 17:14
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Цитата(judge47 @ Sep 19 2010, 13:26) *
Вы можете представить схему и обьяснить, каков принцип построения и действия эластичного буфера???


Некоторое подобие можете посмотреть в книге Сухмана "Синхронизация в телекоммуникационных системах. Анализ инженерных решений". Есть на месном ftp, или легко находится с помощью того же яндекса.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post

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

 


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


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