xy_ 0 13 марта, 2006 Опубликовано 13 марта, 2006 · Жалоба вот фрагмент отчета по синтезу.... А почему такие большие задержки? Что за плис? Вот тут внизу страници приведены задержки нармальный для pci. Откуда Minimum period: 25.590ns? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serg_Fry 0 14 марта, 2006 Опубликовано 14 марта, 2006 · Жалоба я делаю на Spartan2E Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v_mirgorodsky 0 15 марта, 2006 Опубликовано 15 марта, 2006 · Жалоба я делаю на Spartan2E А вот здесь и есть самая большая проблема. У вас вуыходная шина подключена к PCI через tri-state буффера. Как показывает опыт - они достаточно медленные. Для того, чтобы мастер работал надежно в такой ситуации необходимо в первый такт после получения PCI_Gnt включить tri-state буффера, оставив все сигналы в неактивном состоянии и только следующим тактом начинать активную работу. Эта техника называется address/data stepping. Вследствие негарантированных уровней на шине чипсет и ошибается, не декодирует адрес, выставленный вами на шине. 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'а и приводит к более предсказуемым результатам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serg_Fry 0 15 марта, 2006 Опубликовано 15 марта, 2006 · Жалоба А вот здесь и есть самая большая проблема. У вас вуыходная шина подключена к PCI через tri-state буффера. Как показывает опыт - они достаточно медленные. Для того, чтобы мастер работал надежно в такой ситуации необходимо в первый такт после получения PCI_Gnt включить tri-state буффера, оставив все сигналы в неактивном состоянии и только следующим тактом начинать активную работу. Эта техника называется address/data stepping. Вследствие негарантированных уровней на шине чипсет и ошибается, не декодирует адрес, выставленный вами на шине Разве есть альтернатива tri-state буфферу? Мне кажется медлительность tri-state буффера должна быть включена в <Maximum output required time after clock>, поэтому это не должно играть роли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v_mirgorodsky 0 16 марта, 2006 Опубликовано 16 марта, 2006 · Жалоба Да, время задержки tri-state буфферов включается в <Maximum output required time after clock>, однако выдержать его невозможно, поскольку скорость работы tri-state буфферов составляет "всего" 11-12ns, что явно недостаточно, чтобы выполнить спецификацию PCI. Однако специфика PCI позволяет выполнять address/data stepping, что спасает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xy_ 0 28 марта, 2006 Опубликовано 28 марта, 2006 · Жалоба В моем ядре все работает по нарастающему (положительному) фронту. Идея заключается в том, что несмотря на Th=0 все будет работать в том случае, если на плате сигнал CLK будет задержен. Т.е. дорожка этого сигнала преднамеренно делается удлиненной. Диапазон изменения длины этой трассы и прочее описано в спецификации. PS: Обратите внимание, как разведена дорожка CLK на большинстве плат с интерфейсом PCI. У меня такой ворос встал: в спартане в блоке ВВ есть программируемая задержка... А можно ли её использовать и не париться с разницей длин вообще? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serg_Fry 0 28 марта, 2006 Опубликовано 28 марта, 2006 · Жалоба Все вышеописаные советы пошли в дело, выходные задержки уложились, входные удалось свести к минимуму(макс. 8 с копейками нс.) Еще неплохо вырезать прямоугольную область в микросхеме для приоритетной раскладки PCI ядра в нее. Это несколько ограничивает полет фантазии PAR'а и приводит к более предсказуемым результатам. каким образом это можно сделать в ISE? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 28 марта, 2006 Опубликовано 28 марта, 2006 · Жалоба 2 xy_ Вы имеете в виду опции FAST/SLOW и DRIVE, которые приводят изменеиям в задержке падающей на выходном буфере? Крутя эти настройки вы получаете гарантированную наибольшую задержку на буфере (из группы) которая сильно зависит от температуры и напряжений питания. Не буду кривить душой, я почти всегда так и делаю (особенно для клока) :) 2 qwqw В PLACE редакторе рисуете область и присваиваете ее к нужному иодулю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xy_ 0 28 марта, 2006 Опубликовано 28 марта, 2006 · Жалоба 2 xy_ Вы имеете в виду опции FAST/SLOW и DRIVE, которые приводят изменеиям в задержке падающей на выходном буфере? Крутя эти настройки вы получаете гарантированную наибольшую задержку на буфере (из группы) которая сильно зависит от температуры и напряжений питания. Не буду кривить душой, я почти всегда так и делаю (особенно для клока) :) Ой, я напутал, в спартане 3 этого нет, но вот в 3е есть (помню где то воидел=) http://direct.xilinx.com/bvdocs/publications/ds312.pdf стр 10 я не разбирался отличается ли это от спартана3, но выглядит так, как будто это настоящая программируемая задержка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться