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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> задержки выходных сигналов, фронты #CLK в PCI
qwqw
сообщение Mar 10 2006, 18:16
Сообщение #1


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

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



Делаю PCI 32 33 в Xilinx ISE,
Для PCI определена валидность сигнала на восходящем фронте, я не долго думая сделал все по нисподающему(только входные сигналы захватывал по положительному), устройство заработало, но при тестировании на др. матерях стало зависать. Перечитав спецификацию обнаружил странную вещь:
захватыать вх. сигналы, используя триггеры, тактируемые положительным фронтом небезопасно т.к Th(см. спецификацию) снизу ограничено 0 с., в то время, как любой триггер имеет некоторую задержку.
Какими же тогда фронтами(или одним) тактировать свою схему?
При всем при этом в моем проекте входные и выходные задержки (сигналов PCI относительно clk'а) составляют примерно 11 нс. Мне кажется, это слишком много, но если разработчики PCI изначально закладывали невозможность захвата сигнала по отриц. фронту, тоесть необходимость учитывать значительные задержки и с их учетом оперировать сигналами, тогда это вполне естественные величины.
Возможно я чего-то не понимаю и мой проект необходимо круто оптимизировать, поэтому хотелось бы узнать:
- величины задержек, которых добиватись другие (для сравнения)
- по каким фронтам #clk'а надо работать.

Сообщение отредактировал qwqw - Mar 10 2006, 18:18
Go to the top of the page
 
+Quote Post
makc
сообщение Mar 10 2006, 18:57
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



В моем ядре все работает по нарастающему (положительному) фронту. Идея заключается в том, что несмотря на Th=0 все будет работать в том случае, если на плате сигнал CLK будет задержен. Т.е. дорожка этого сигнала преднамеренно делается удлиненной. Диапазон изменения длины этой трассы и прочее описано в спецификации.

PS: Обратите внимание, как разведена дорожка CLK на большинстве плат с интерфейсом PCI.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Gate
сообщение Mar 10 2006, 21:28
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



qwqw, не понял, что Вас смущает. Работать надо по фронту. На шине сначала появится фронт клока, затем через некоторое время (22 нс если не изменяет память) изменятся выходные сигналы - они будут зафиксированы приемником по следующему фронту клока. Или я не понял вопроса?
makc, я думаю, что Вы ошибаетесь: клок разводится цепью 2.5", а остальные сигналы не более 1.5", т.е разница 1" - на нем задержка что-нибудь около 0.2нс.


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post
makc
сообщение Mar 11 2006, 07:11
Сообщение #4


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Gate @ Mar 11 2006, 00:28) *
makc, я думаю, что Вы ошибаетесь: клок разводится цепью 2.5", а остальные сигналы не более 1.5", т.е разница 1" - на нем задержка что-нибудь около 0.2нс.


Чем же тогда объясняется необходимость в этой разнице длин проводников клока и сигналов?


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
3.14
сообщение Mar 11 2006, 07:35
Сообщение #5


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



2 qwqw
Меня вот что смущает, Вы говорите я не долго думая сделал все по нисподающему(только входные сигналы захватывал по положительному), Вы не уточнили но думаю что задержка FFT -> PAD у Вас то же порядка 10-15нс. Та вот, когда матери тактируются по переднему фронту они просто обречены попадать на метастабильность.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
Gate
сообщение Mar 11 2006, 16:31
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



Цитата(makc @ Mar 11 2006, 10:11) *
[Чем же тогда объясняется необходимость в этой разнице длин проводников клока и сигналов?

Имхо борьбой за минимальный skew clock - там ведь клок разводится звездой, а не по шине. А 2.5" взяли, посчитав, что этого хватит для всех типоразмеров плат.
Кстати, замечу, что более длинный путь клока приводит к уменьшению Thold на эти самые 0.2нс, а не к увеличению.


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post
qwqw
сообщение Mar 11 2006, 18:40
Сообщение #7


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

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



2 makc: величина Th указана на диаграмме "Input Timing Measurement Conditions", тоесть она учитывает эту узадержку.
Поразмыслив, я решил сделать по положительному фронту, но вопрос остался открытым.
----
to 3.14: в моем случае опаздывали именно мои выходные сигналы, тоесть сигнал, который я выставлял но отрицательному фронту clk'а реально устонавливался только через 11ns (по спецификации к маменту наступления положительного фронта сигнал должен быть стабилен >7ns, см. Tsu )
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Mar 11 2006, 19:01
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Цитата
Для PCI определена валидность сигнала на восходящем фронте, я не долго думая сделал все по нисподающему(только входные сигналы захватывал по положительному), устройство заработало, но при тестировании на др. матерях стало зависать. Перечитав спецификацию обнаружил странную вещь:
захватыать вх. сигналы, используя триггеры, тактируемые положительным фронтом небезопасно т.к Th(см. спецификацию) снизу ограничено 0 с., в то время, как любой триггер имеет некоторую задержку.
Какими же тогда фронтами(или одним) тактировать свою схему?

Только по положительному. Входные пины современных FPGA имеют специальные схемы аналоговой задержки, обеспечивающие нулевое время удержания th, потому никаких проблем быть не должно.

Цитата
При всем при этом в моем проекте входные и выходные задержки (сигналов PCI относительно clk'а) составляют примерно 11 нс.

Вот здесь и есть ваша проблема. Задержка входного сигнала Tsetup не должна превышать 7ns. Могу с уверенностью сказать, что это возможно. Мы закончили наше PCI ядро около месяца назад. Именно с этим временем была связана основная головная боль и проблемы, однако при некоторых ухищрениях выдержать его все же возможно.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Mar 11 2006, 19:16
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Цитата
в моем случае опаздывали именно мои выходные сигналы, тоесть сигнал, который я выставлял но отрицательному фронту clk'а реально устонавливался только через 11ns (по спецификации к маменту наступления положительного фронта сигнал должен быть стабилен >7ns, см. Tsu )

Забыли еще Propagation Delay smile.gif Вот он то все и портит. PCI revision 2.3, секция 7.6.2. Я тоже долгое время не мог понять почему Tsu и Tval ограничены такими незначительными величинами, пока не добрался до этой секции в седьмой главе.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
3.14
сообщение Mar 11 2006, 19:28
Сообщение #10


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Чего то я не пойму, у товарища qwqw, при тактировании от переднего фронта в запасе получается 22нс, все должно быть нормально. Может у вас фаза тактового в FPGA "накрутилась", я полагаю пользуетесь глобальным буфером, а сдвиг фазы тактового на буфере компенсируета через DLL или DCM, хотя сдется мне что то тут не то, все и так должно работать.

2 v_mirgorodsky
Вот мне сдается что 11нс на выходе это не только на трассировке "падает" еще и комбинаторка стоит, как "лечили", кроме как добавить регистры и разместить их в IOB?


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Mar 11 2006, 20:09
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



2 3.14:
максимум один уровень логики после триггеров и регистры не в IOB, но затянутые выходными констраинами по самое не-могу smile.gif

А не получилось у qwqw потому, что есть Propagation Delay, равный 10нс, т.е. Tcyc ≥ Tval + Tprop + Tskew + Tsu, Tval = 11ns, Tprop = 10ns, Tskew = 2ns, Tsu=7ns. Под Tprop понимается время распространения сигнала от устройства до устройства и до самого чипсета.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
qwqw
сообщение Mar 11 2006, 20:09
Сообщение #12


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

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



2 v_mirgorodsky:
Цитата
Вот здесь и есть ваша проблема. Задержка входного сигнала Tsetup не должна превышать 7ns. Могу с уверенностью сказать, что это возможно. Мы закончили наше PCI ядро около месяца назад. Именно с этим временем была связана основная головная боль и проблемы, однако при некоторых ухищрениях выдержать его все же возможно.

- думаю с этим справлюсь, в крайнем случае оргонизую свой clk, запаздывающий по фазе на (<период> - <вх. задержка>) секунд или что то же самое "опережающий" реальный на время моей вх. задержки.
Цитата
PCI revision 2.3, секция 7.6.2. Я тоже долгое время не мог понять почему Tsu и Tval ограничены такими незначительными величинами, пока не добрался до этой секции в седьмой главе

обязательно ознакомлюсь, спасибо
to 3.14:
Цитата
полагаю пользуетесь глобальным буфером, а сдвиг фазы тактового на буфере компенсируета через DLL или DCM, хотя сдется мне что то тут не то, все и так должно работать.

все именно так, пользуюсь DLL, просто я использовал отрицательный фронт клока, теперь понял что нужно делать по положительному, в этом и была моя ошибка, сижу исправляю.
Go to the top of the page
 
+Quote Post
3.14
сообщение Mar 11 2006, 20:20
Сообщение #13


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



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

И все-таки Tcyc получается 30нс а не 33.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Mar 13 2006, 11:50
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Цитата(3.14 @ Mar 11 2006, 22:20) *
2 v_mirgorodsky
Мда-а это ж чистый геморой будет на сильно заполненном критсталле ...
Саму спецификацию я только мельком давно смотрел, но по моему там ведь можно добавить необходимое количество тактов ожидания при ответе?

И все-таки Tcyc получается 30нс а не 33.


Угу sad.gif Но ничего сделать нельзя cranky.gif Я просмотрел несколько PCI Master/Target блоков от разных производителей - все используют нерегистровые версии PCI сигналов, иначе дизайн получается слишком медленным. Пришлось считать fan-in'ы, прижимать регистры к входным пинам, затягивать констраины. В принципе мы сейчас компилим дизайн с приоритетной раскладкой именно PCI блока в выбранный прямоугольный регион. Этого констраина вкупе с затянутыми Tsetup, Thold и Tout хватает. Получился еще небольшой запас в 1.5ns на Tsetup и порядка 2-2.5ns на Tout.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
qwqw
сообщение Mar 13 2006, 17:14
Сообщение #15


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

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



что-то я совсем запутался:

вот фрагмент отчета по синтезу:
Цитата
Speed Grade: -7

Minimum period: 25.590ns (Maximum Frequency: 39.078MHz)
Minimum input arrival time before clock: 13.094ns
Maximum output required time after clock: 12.528ns
Maximum combinational path delay: 4.457ns


а вот из отчета P&R:
Цитата
The NUMBER OF SIGNALS NOT COMPLETELY ROUTED for this design is: 0

The AVERAGE CONNECTION DELAY for this design is: 1.584
The MAXIMUM PIN DELAY IS: 6.432
The AVERAGE CONNECTION DELAY on the 10 WORST NETS is: 5.455


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

промоделировал все(все что смог) в ModelSIM'e(P&R-Simulation), там все как надо, запас есть, насчет входных задержек понять труднее, но судя по тому, что на все вх. сигналы схема реагирует вовремя, делаю вывод, что с ними тоже все в порядке.
В жизни:
Target-часть работает нормально,
Master (мое устройство только пишет в комп, burst'ом) часто выдает Master-Abort , тоесть комп не отвечает на свой адрес, из чего получается, что выходы не поспевают.
***
осциллограф у меня не тянет, поэтому нет возможности посмотреть что на самом деле происходит на шине, хотя я вообще не уверен, что это возможно: задержки накрутятся в щупах и все такое.
Как же адекватно оценить задержки?
Go to the top of the page
 
+Quote Post

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

 


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


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