Перейти к содержанию
    

Повтор темы: выравнивание задержки глобального клока

Интересный результат. А скажите пожалуйста, в clock report этот момент как-то отражается? Какое семейство Вы использовали?

 

virtex-6, в clock report в данном случае не смотрел. да и что я там должен был увидеть? требуемые времянки сошлись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну и добавлю....

 

1) "нет такого в документации"клок три фиксировано" и не может быть" - в документации Xilinx это написано так: "Global Clock Network"

Скажите пожалуйста, можно ли менять "Global Clock Network"?

 

2) Xilinx DCM - это по-сути управляемая линия задержки (Delay-Locked loop). Их аж 4 в XC3S50!

DCM собственно то и делает что " бореться со SKEW играя синхросигналом (вставляя буфера)", аж до целого периода!

так-что в чём " самое последнее дело" - непонятно.

 

3) "Useful Skew" - бред (иногда это используют, но зачем здесь если есть более точные и удобные DCM)

- сколько тайминг виолейшинов Вы сможете пофиксить при помощи DCM?

- можно ли использовать DCM только для 2 флопов (которые виолейтят)?

- а случайно не для выравнивания SKEW между Global Clock Network или внешними девайсами эти DCM предназначены?

- как изменить SKEW между флопами, подключёнными к одной Global Clock Network?

 

4) А есть ли доступ FPGA дизайнера к ASIC "Useful Skew" технологии (пр и фиксированном Global Clock Network)?

Кажется я упоминал "Useful Skew" относительно к ASIC... Нетак-ли?

 

""нет такого в документации"клок три фиксировано" и не может быть" - в документации Xilinx это написано так: "Global Clock Network"

Скажите пожалуйста, можно ли менять "Global Clock Network"?"

 

- Я как раз и не собираюсь его менять, а вы да - "вставляя буфера, меняя их розмер".

Далее, т.е. как я понял, вы вместе с Shivers "Global Clock Network" переименовываете в "клок три фиксировано" и после этого волшебного деяния, переименования, этот клок становится магическим- имеет нулевые задержки и соответственно не зависящие от нагрузок. Интересно!, вам вместе Shivers надо срочно подавать на Нобелевскую премию пока кто-то не украл ваш большой секрет.

 

"Xilinx DCM - это по-сути управляемая линия задержки (Delay-Locked loop). Их аж 4 в XC3S50!

DCM собственно то и делает что " бореться со SKEW играя синхросигналом (вставляя буфера)", аж до целого периода!

так-что в чём " самое последнее дело" - непонятно."

 

- Печально что вам это не понятно. DCM это ещё и драйвер или синхронизированный источник синхросигнала и его задержка никакого влияния на распределение задержек по подключенному к нему Clock не имеет - это всего лишь будет абсолютное смещение (с точкой привязки в месте подключения CLKFB). А в случае двух или более DCM-ов будет влияние конечно, но это уже будет взаимодействие между разными клоками или разными фазами одного клока (последнее для многофазной синхронизации). Вы же рвёте клок или делаете ветви "вставляя буфера, меняя их розмер". Если же вы ничего не рвёте и не ветвите, а делаете это только над буфером у драйвера, то тогда опять же как и с DCM - это всего лишь будет абсолютное смещение, и тогда вообще ни понятно о чем реч и к чему, вы просто не понимаете вопроса топика и не только.

 

"- сколько тайминг виолейшинов Вы сможете пофиксить при помощи DCM?"

 

- да я как раз и пишу в моём первом сообщении, что не много, и предлогаю метод фри от этих проблем - многофазная синхронизация либо что делать в случае однофазной синхронозации.

 

"- можно ли использовать DCM только для 2 флопов (которые виолейтят)?"

 

- дети ой дети - смотрите предыдущий ответ (это наверное потому, что начинают изучение цифры с VHDL/Verilog).

 

"а случайно не для выравнивания SKEW между Global Clock Network или внешними девайсами эти DCM предназначены?"

 

- смотрите Figure 3-23: Using De-Skew as a Clock Mirror из "Virtex-II Platform FPGA User Guide" там по всякому подключается.

 

"- как изменить SKEW между флопами, подключёнными к одной Global Clock Network?"

 

- ну если у вас эти триггера для чего-то особого и уже как-бы за пределами синхронной схемы, тогда и правила другие и с учетом требований схемы по точности, джиттеру, потреблению надо и смотреть.

 

"Кажется я упоминал "Useful Skew" относительно к ASIC... Нетак-ли?"

 

- к сожалению, не так:

"Цитата(a123-flex @ May 19 2012, 01:53)

если даже просто клок задерживать во всех узлах кроме загруженных, по моему получится хрень.

2) Вэтом случае будет не хрень а Useful Skew

При этом можно как буферы вставлять так и подключать флопы кудато в середину дерева"

 

- Вы отвечаете a123-flex, а он, a123-flex, даже как-бы и не заикался про ASIC, sorry.

 

kondensator42

Изменено пользователем kondensator42

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне одному кажется что здесь никто не понимает как все-таки устроена ПЛИС, и как там выравнивается этот самый пресловутый skew?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здесь наверное имеет смысл разделить детали клоковых деревьев между FPGA и ASIC.

Про FPGA - конкретно Xilinx:

У них есть возможность получать локальные клоковые деревья, а так же, есть два набора предварительно разведенных клоковых деревьев - Global и Regional. Дискутировать по поводу их "фиксированности" с точки зрения их разводки по кристаллу на мой взгляд бессмысленно, потому как если бы это было не так, то в FPGA просто небыло бы этих наборов и все клоковые деревья были бы сформированны по типу локальных.

Как использовать DCM для получения de-skewed глобального или регионального клока относительно какого либо внешнешнего или локально сгенеренного клока достаточно очевидно. Как использовать DCM совместно с локальным клоковым деревом с целью сделать что-либо с clock skew мне пока не приходит в голову.

Про ASIC:

Здесь, я так понимаю, есть просто клоковые деревья. Как они формируются и "ложаться" на кристалл зависит от разработчика и тулзы которую он использует.

В процессе обсуждения темы обозначилось два метода работы с клоковыми деревьями:

1. Описанный Torpeda "skew тул выравнивает: вставляя буфера, меняя их розмер, делая оптимальний плейсмент, меняя точки подключение листьев, строя физически симетричную или несиметричную структуру."

2. Описанный kondensator42 "Даже любой более или менее профессиональный тополог знает что синхросигнал нужно разводить аккуратно с минимизацией переходов и без никакого там поликремния."

 

kondensator42 не могли бы Вы порекомендовать литературу по упомянутоми Вами методу работы с клоковыми деревьями или может быть поподробнее описать его здесть на форуме?

 

"Дискутировать по поводу их "фиксированности" с точки зрения их разводки по кристаллу на мой взгляд бессмысленно"

 

- Совершенно верно, но дискуссия здесь о 4-м измерении - о временном. Кое-кто утверждает, что если "Global Clock Network" переименовывать в "клок три фиксировано" то все проблемы с выравниванием клока чудесным (божественным) образом решаются автоматически, но правда при этом они же пытаются ещё и править его, это божество , а это, вы знаете, БОЛЬШОЙ ГРЕХ.

 

"1. Описанный Torpeda "skew тул выравнивает: вставляя буфера, меняя их розмер, делая оптимальний плейсмент, меняя точки подключение листьев, строя физически симетричную или несиметричную структуру."

 

- это не метод, а без системное и без грамотное ковыряние в стиле "метод тыка".

 

"2. Описанный kondensator42 "Даже любой более или менее профессиональный тополог знает что синхросигнал нужно разводить аккуратно с минимизацией переходов и без никакого там поликремния.""

 

- это не метод тоже, а знане, правило или элементарная истина, а методы (и кстати не мои, а известные и обще принятые) смотрите в моём первом сообщении.

 

"kondensator42 не могли бы Вы порекомендовать литературу по упомянутоми Вами методу работы с клоковыми деревьями или может быть поподробнее описать его здесть на форуме? "

 

- Я вам пока даю одну книгу, я её не читал (и вообще мало читаю, хотя книги собираю) но с виду вроде не плохая книга и её рекомендуют и хвалят:

William J. Dally, John W. Poulton, 1998 Digital Systems Engineering.

Если что попадётся на глаза, то сообщу.

 

kondensator42

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

- Я как раз и не собираюсь его менять, а вы да - "вставляя буфера, меняя их розмер".

Далее, т.е. как я понял, вы вместе с Shivers "Global Clock Network" переименовываете в "клок три фиксировано"

1) Ну начнём по порядку:

- "Global Clock Network" это то, что есщё называется "клоковым деревом" (это термин ASIC тулзов, а не волшебное переименование).

- Клоковое дерево строится в любой синхронной схеме. Правда FPGA дизайнеры про это не знают....

- Один из его параметров это SKEW - розбросс времени прихода сигнала на различные листья (~10-100ps).

Другой параметр - insertion delay - задержка от корня дерева до листьев (~10ns)

- FPGA дизайнер не может менять клоковое дерево - оно встроено производителем раз и навсегда (поэтому "клок три фиксировано").

ASIC дизайнер полностью может его контролировать, т.к. он лично его создаёт.

и после этого волшебного деяния, переименования, этот клок становится магическим- имеет нулевые задержки и соответственно не зависящие от нагрузок. Интересно!, вам вместе Shivers надо срочно подавать на Нобелевскую премию пока кто-то не украл ваш большой секрет.

2) Какой параметр клок три Вы имеете ввиду под "нулевые задержки и соответственно не зависящие от нагрузок" не понятно.

Предположу что это SKEW.

Как сказано в п.1), SKEW это параметр клок три обеспеченый в FPGA раз и навсегда и он !=0.

Также добавлю, что SKEW и insertion delay зависит от нагрузок только в момент создания клок три.

Собственно целью построения клок три и есть выполнение заданных SKEW и insertion delay при заданных нагрузках.

Таким образом, проектировщик FPGA кристала создаёт клок три, которое имеет заданные SKEW и insertion delay при любих прошивках.

(навсякий случай скажу, что клоковое дерево представляет из себя набор инверторов, подключённых друг к друшу в виде дерева....т.е. каждый FPGA.LUT драйверится своим буфером)

Врядли это на Нобелевку правда тянет.....

- Печально что вам это не понятно. DCM это ещё и драйвер или синхронизированный источник синхросигнала и его задержка никакого влияния на распределение задержек по подключенному к нему Clock не имеет - это всего лишь будет абсолютное смещение (с точкой привязки в месте подключения CLKFB). А в случае двух или более DCM-ов будет влияние конечно, но это уже будет взаимодействие между разными клоками или разными фазами одного клока (последнее для многофазной синхронизации).

скажу проще, DCM это линия задержки которая может выровнять SKEW между разными деревьями ("Global Clock Network" в разных корпусах напр.).

На SKEW в пределах одного клок три DCM конечно-же не влияет, ибо этло параметр фиксированной "Global Clock Network".

Или дайте Ваше определение SKEW, которое можно выровнять при помощи DCM.

Вы же рвёте клок или делаете ветви "вставляя буфера, меняя их розмер".

Да, такое можно и нужно делать в ASIC для устранения локальных тайминг виолейшенов.

Вы читали уже http://www.cadence.com/rl/Resources/confer...resentation.pdf

"- сколько тайминг виолейшинов Вы сможете пофиксить при помощи DCM?"

- да я как раз и пишу в моём первом сообщении, что не много, и предлогаю метод фри от этих проблем - многофазная синхронизация либо что делать в случае однофазной синхронозации.

Кстати прочитал Ваш первый пост.....

Что такое по Вашему "Использовать двух или более фазную синхронизацию."

Это например когда тригер источник срабатывает по наростающему фронту, а приёмник по падающему (или сдвинутому на 0.5 периода)?

"Кажется я упоминал "Useful Skew" относительно к ASIC... Нетак-ли?"- к сожалению, не так:

Надо быть чуть внимательней: "Дополню просто для понимания как это можна в ASIC...."

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробую изложить свое видение. Специально для kondensator42 постараюсь сделать это более аргументировано.

Возможно все, что я пишу сейчас не нужно и достаточно почитать Virtex-6 FPGA Clocking Resources User Guide

 

1. Clock Tree.

Clock Tree - то есть дерево распространения синхросигналов. В FPGA действительно есть такое понятие. Причем, их там не одно, а несколько. Аж до 12 в каждом регионе! То есть с некоторыми ограничениями пара соседних триггеров (умоляю не будем вдаваться в особенности ограничений) может тактироваться совершенно разными клоками. Причем регионов таких в ПЛИСе - несколько, и в каждом из них эти 12 синхросигналов могут быть разными.

Выдержка из вышеуказанного документа:

Clock Tree and Nets - GCLK

Virtex-6 FPGA clock trees are designed for low-skew and low-power operation. Any 
unused branch is disconnected. The clock trees also manage the load/fanout when all the 
logic resources are used.
All global clock lines and buffers are implemented differentially. This facilitates much 
better duty cycles and common-mode noise rejection.
In the Virtex-6 architecture, the pin access of the global clock lines are not limited to the 
logic resources clock pins. The global clock lines can drive pins in the CLB other than CLK 
pins (for example: the control pins SR and CE). Applications requiring a very fast signal 
connection and large load/fanout benefit from this architecture.

Clock Regions

Virtex-6 devices improve the clocking distribution by the use of clock regions. Each clock 
region can have up to 12 global clock domains. These 12 global clocks can be driven by any 
combination of the 32 global clock buffers. The dimensions of a clock region are fixed to 40 
CLBs tall (40 IOBs) and spanning half of the die (Figure 1-20). By fixing the dimensions of 
the clock region, larger Virtex-6 devices can have more clock regions. As a result, Virtex-6 
devices can support many more multiple clock domains than previous FPGA 
architectures. Ta ble 1- 5 shows the number of clock regions in each Virtex-6 device. The 
CMT and global clocking resources are located to the right of the center column containing 
the configuration pins.

 

Насколько я понимаю, изначально при разработке ПЛИСа Clock Tree создается таким образом, чтобы разброс (то есть относительная задержка) между его концами (лисьтями, как наверное правильно заметил Torpeda) был минимален. При этом о задержке (то есть абсолютной задержке от корня дерева до листьев) беспокоятся меньше, так как именно задержка может быть скомпенсирована при помощи MMCM (см. ниже).

 

2. DCM и зачем они нужны.

В данном случае оно называется MMCM, но суть работы такая же.

Всего лишь один из возможных режимов работы MMCM - это выравнивание задержек синхросигнала. Как правило это нужно именно для выравнивания внутреннего синхросигнала ПЛИСа с внешним синхросигналом.

Подробнее:

Схема такого применения указана на рисунке на 57-й странице документа (см. 2-ю строку сообщения).
Там 1 точка - это вход внешнего синхросигнала. При этом он идет по специальной короткой линии,
не набирая большой задержки и не запитывая огромное дерево синхросигнала. Поэтому в точке 1 синхросигнал практически равен входному.
В точке 2 (см. риунок справа с фронтами) сигнал слегка задерживается (на картинке - не совсем слегка для наглядности).
Сейчас обратим внимание на обратную связь. Она идет от точки 6 до точки 3 и проходит через bufg - это по сути означает,
что она идет через Global Clock Tree и набирает точно такую же задержку как между точками 4 и 5.
MCM подстраивает сигнал в точке 6 (а в точке 4 он такой же) таким образом, чтобы в синхросигналы в точке 3 (а в точке 5 он такой же) и в точке 2 совпадали (обратите внимание,
для этого фронт в точке 6 появляется раньше чем фронт в точке 2, а может и раньше чем в точке 1).

Таким образом синхросигнал в точке 2 и в точке 5 (а это по суди вход в триггер) - совпадают.

Если MMCM не использовать, то фронт в точке 5 будет запаздывать на задержку между точками 4 и 2.

Уфф... Надеюсь понятно объяснил. Нужно это как правило для приема входных сигналов на триггер с меньшими требованиями к временам setup/hold.

 

А кроме этого, MMCM умеет: умножать частоту в (n/(m+1)) раз, где n=1..32, m=0..31, устанавливать фиксированное значение фазы между точками 2 и 3 (в приведенном примере - 0), динамически смещать фазу по управляющим командам из схемы ПЛИС. Возможно ещё что-нибудь я забыл.

 

ЗЫ. Про асики - ничего не знаю, извините. Случайно сюда зашел. На вопросы по теме попробую ответить.

ЗЗЫ. А почему вы вопросы связанные с ПЛИСами задаете в форуме про асики? Может надо в форуме про ПЛИСы спрашивать? И тогда не будет странных ощущений:

Мне одному кажется что здесь никто не понимает как все-таки устроена ПЛИС, и как там выравнивается этот самый пресловутый skew?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...