|
Клоки, Использование нескольких синх. сиг. в пр |
|
|
|
Jul 21 2004, 13:07
|
Участник

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

|
Ситуация: В большом проекте нужно использовать несколько клоков (не кратных). Есть компоненты которые работают синхронно от разных клоков. Вопрос: Как грамотно соеденить эти компоненты между собой?
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Jul 21 2004, 20:10
|
Знающий
   
Группа: Админы
Сообщений: 689
Регистрация: 24-06-04
Из: South Africa
Пользователь №: 164

|
Цитата(DimaV @ Jul 21 2004, 05:07 PM) Есть компоненты которые работают синхронно от разных клоков. А чего бы это значило??? Поподробнее можно...
--------------------
"В мире есть две бесконечные вещи: Вселенная и человеческая глупость. За Вселенную, впрочем, поручиться не могу". (С)
А. Эйнштейн.
|
|
|
|
|
Jul 22 2004, 06:57
|
Участник

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

|
Цитата(LeonY @ Jul 22 2004, 12:10 AM) А чего бы это значило??? Поподробнее можно... Поясняю. Есть уже отлаженные компоненты которые работают синхронно. Компоненты коммутируются шинами (адрес, данные, энейблы). Нужно обмениваться данными как можно быстрее. Я тут слышал про эластичный буфер, кто нибудь может сказать подробнее как он работает, хотя двупортовая память это тоже выход, но её может и нехватить :-))))
|
|
|
|
|
Jul 22 2004, 10:49
|
Участник

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

|
Наверное самое лучшее писать проект сверху вниз, для начала определить основные принципы работы всего устройства - распределение тактовых частот и их фазы для работы конкретных устройств нижнего уровня, а уже затем проектировать частные куски. Если не хочется терять старые наработки, то связь отлаженых модулей вполне возможна через FIFO, но если в начале не разработана общая идеология работы, то может получиться, что работа будет называться "подпорки под костыли". Подобные "грабли" уже неоднократно встречались в моем личном опыте.
|
|
|
|
|
Jul 22 2004, 11:24
|
Участник

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

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

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

|
Извини про эластичный буфер не слышал, если кто проявится с разяснениями, очень интересная тема - "граблей" старых почти как блох. Проблема сихронизации изначально несинхронных источников данных с минимальными временными потерями почти, что основная моя работа в различных системах.
|
|
|
|
|
Jul 22 2004, 14:55
|
Участник

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

|
Если у кого есть полезные ссыски где можно посмотреть статьи про сопряжение компонетов работающих от различных клоков, пожалуйста сообщите.
|
|
|
|
Guest_Guest_*
|
Jul 23 2004, 17:41
|
Guests

|
есть такое понятие как синхронизаторы (блок из триггеров) нужен вот для чего: если есть схема в которой есть разные тактовые домены работающие на одной частоте но не факт что фазы совпадают,а надо передавать данные из одного в другой и чтоб голова не болела по поводу проскальзываний или метасостояний, то делаем так: (вых данных, и такты1) -> триггер1 (выход триггер1, такты2) ->триггер2 (выход триггер2, такты2) ->триггер3 с выхода триггера3 уже имеем стабильные данные но нужным нам тактам.
Не помню где читал, пдфка какая-то была... udofun
|
|
|
|
|
Jul 26 2004, 12:14
|
Местный
  
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Aug 23 2004, 12:03
|
Группа: Свой
Сообщений: 7
Регистрация: 30-06-04
Пользователь №: 222

|
Эластичный буфер - это просто FIFO со специальной логикой и решает оно вполне конкретную задачу. Есть синхронный источник сигналов, есть схема, которая восстанавливает из входного сигнала клок и на нем принимает входной сигнал. Эта схема должна пересадить принятый сигнал на мастер-клок всего устройства и частота этой пересадки равняется частоте входного сигнала, но в среднем! А в реальности из-за джиттера и входных помех эта частота плавает вокруг среднего значения. чтобы в результате не возникала ситуация, когда очередные данные не приходят к очередному клоку или наоборот, старые данные еще не передана а поступили новые, используется FIFO, которое в этом случае называется эластичным буфером. Глобально алгоритм работы этого буфера достаточно прост (детали могут сильно отличаться в зависимости от характеристик всей системы и ее реализации) - FIFO заполняется и опустошается таким образом, чтобы поддерживать его заполненость примерно на половину(номинально). Из всего вышесказанного следует, что эластичный буфер вряд ли подойдет для решения указанной задачи. Что касается проблемы сопряжения передачи данных из доменов с разными клоками, то ее решение сильно зависит от вида пересылок данных на исходных шинах. Два крайних случая: 1. Исходные данные на шинах поступают блочно (PCI в режиме блочного обмена и т.д.) - в этом случае поможет только 2-х портовое ОЗУ с разными частотами записи/чтения. 2. Исходно данные передаются одиночными словами. В этом случае достаточно из одного домена в другой передать строб сопровождения данных, защитив его от возможной метастабильности, причем этот строб должен сбрасываться из приемного домена, где также следует учесть возможную метастабильность. В промежутке лежит все многообразие практических задач, которые решаются комбинацией вышеописанных приемов.
Успехов! zov
|
|
|
|
|
Sep 19 2010, 03:56
|
Группа: Новичок
Сообщений: 4
Регистрация: 12-09-10
Пользователь №: 59 432

|
Вы можете представить схему и обьяснить, каков принцип построения и действия эластичного буфера???
|
|
|
|
|
Sep 19 2010, 06:50
|
Местный
  
Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006

|
Цитата(judge47 @ Sep 19 2010, 06:56)  Вы можете представить схему и обьяснить, каков принцип построения и действия эластичного буфера??? Как уже сказано в посте, предшествующем вашему (эта информация не устарела  ) эластичный буфер==Фифо. А дальше - в гугль, пепрепечатывать сюда азбуку как-то неинтересно. По поводу ньюансов реализации полезно почитать статьи Клиффорда Каммингса (Clifford Cummings), но это уже не для новичков. Новичкам дорога в Megawizard Plugin menager, или в корегенератор (или как оно там у XILINX называется)
|
|
|
|
|
Sep 19 2010, 17:14
|
Знающий
   
Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032

|
Цитата(judge47 @ Sep 19 2010, 13:26)  Вы можете представить схему и обьяснить, каков принцип построения и действия эластичного буфера??? Некоторое подобие можете посмотреть в книге Сухмана "Синхронизация в телекоммуникационных системах. Анализ инженерных решений". Есть на месном ftp, или легко находится с помощью того же яндекса.
--------------------
Россия это даже не страна. Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|