|
задержки выходных сигналов, фронты #CLK в PCI |
|
|
|
Mar 10 2006, 18:16
|

Частый гость
 
Группа: Свой
Сообщений: 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
|
|
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 23)
|
Mar 13 2006, 21:01
|

Участник

Группа: Новичок
Сообщений: 31
Регистрация: 12-03-06
Пользователь №: 15 144

|
Цитата(qwqw @ Mar 13 2006, 20:14)  вот фрагмент отчета по синтезу.... А почему такие большие задержки? Что за плис? Вот тут внизу страници приведены задержки нармальный для pci. Откуда Minimum period: 25.590ns?
|
|
|
|
|
Mar 15 2006, 07:54
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804

|
Цитата(qwqw @ Mar 14 2006, 12:43)  я делаю на Spartan2E А вот здесь и есть самая большая проблема. У вас вуыходная шина подключена к PCI через tri-state буффера. Как показывает опыт - они достаточно медленные. Для того, чтобы мастер работал надежно в такой ситуации необходимо в первый такт после получения PCI_Gnt включить tri-state буффера, оставив все сигналы в неактивном состоянии и только следующим тактом начинать активную работу. Эта техника называется address/data stepping. Вследствие негарантированных уровней на шине чипсет и ошибается, не декодирует адрес, выставленный вами на шине. Цитата(qwqw @ Mar 13 2006, 19:14)  Minimum input arrival time before clock: 13.094ns Maximum output required time after clock: 12.528ns Maximum combinational path delay: 4.457ns Minimum input arrival time before clock должно быть меньше или равно 7 ns, maximum output required time after clock должно быть меньше 11 ns. Maximum combinational path delay в этом контексте не интересен. Как показывает практика, maximum output required time after clock проблем не вызывает. Minimum input arrival time before clock - выдержать более сложно, однако возможно. Необходимо очень аккуратно считать количество входных триггеров, управляемых с пинов микросхемы. По опыту, fan-in до 100 еще позволяет выдержать времянки, дальше уже проблемы с разными раскладками. Еще неплохо вырезать прямоугольную область в микросхеме для приоритетной раскладки PCI ядра в нее. Это несколько ограничивает полет фантазии PAR'а и приводит к более предсказуемым результатам.
--------------------
WBR, V. Mirgorodsky
|
|
|
|
|
Mar 15 2006, 11:33
|

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

|
Цитата А вот здесь и есть самая большая проблема. У вас вуыходная шина подключена к PCI через tri-state буффера. Как показывает опыт - они достаточно медленные. Для того, чтобы мастер работал надежно в такой ситуации необходимо в первый такт после получения PCI_Gnt включить tri-state буффера, оставив все сигналы в неактивном состоянии и только следующим тактом начинать активную работу. Эта техника называется address/data stepping. Вследствие негарантированных уровней на шине чипсет и ошибается, не декодирует адрес, выставленный вами на шине Разве есть альтернатива tri-state буфферу? Мне кажется медлительность tri-state буффера должна быть включена в <Maximum output required time after clock>, поэтому это не должно играть роли.
|
|
|
|
|
Mar 28 2006, 11:00
|

Участник

Группа: Новичок
Сообщений: 31
Регистрация: 12-03-06
Пользователь №: 15 144

|
Цитата(makc @ Mar 10 2006, 22:57)  В моем ядре все работает по нарастающему (положительному) фронту. Идея заключается в том, что несмотря на Th=0 все будет работать в том случае, если на плате сигнал CLK будет задержен. Т.е. дорожка этого сигнала преднамеренно делается удлиненной. Диапазон изменения длины этой трассы и прочее описано в спецификации.
PS: Обратите внимание, как разведена дорожка CLK на большинстве плат с интерфейсом PCI. У меня такой ворос встал: в спартане в блоке ВВ есть программируемая задержка... А можно ли её использовать и не париться с разницей длин вообще?
|
|
|
|
|
Mar 28 2006, 15:57
|

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

|
Все вышеописаные советы пошли в дело, выходные задержки уложились, входные удалось свести к минимуму(макс. 8 с копейками нс.) Цитата Еще неплохо вырезать прямоугольную область в микросхеме для приоритетной раскладки PCI ядра в нее. Это несколько ограничивает полет фантазии PAR'а и приводит к более предсказуемым результатам. каким образом это можно сделать в ISE?
|
|
|
|
|
Mar 28 2006, 20:46
|

Участник

Группа: Новичок
Сообщений: 31
Регистрация: 12-03-06
Пользователь №: 15 144

|
Цитата(3.14 @ Mar 28 2006, 21:50)  2 xy_ Вы имеете в виду опции FAST/SLOW и DRIVE, которые приводят изменеиям в задержке падающей на выходном буфере? Крутя эти настройки вы получаете гарантированную наибольшую задержку на буфере (из группы) которая сильно зависит от температуры и напряжений питания. Не буду кривить душой, я почти всегда так и делаю (особенно для клока)  Ой, я напутал, в спартане 3 этого нет, но вот в 3е есть (помню где то воидел=) http://direct.xilinx.com/bvdocs/publications/ds312.pdfстр 10 я не разбирался отличается ли это от спартана3, но выглядит так, как будто это настоящая программируемая задержка
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|