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

v_mirgorodsky

Свой
  • Постов

    341
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные v_mirgorodsky


  1. Угу, обсуждалось, однако никаких дельных ответов сформулировано не было :(

     

    Единственное возражение там замеченное было о "вертолетности" платы, однако мы собираемся залить все неиспользуемые площади полигонами. Это должно убрать предпосылки к появлению "вертолетности".

     

    Есть ли еще какие-нибудь серьезные причины не делать такой падстек?

  2. Мы собираемся изготовить ПП со следующим расположением слоев: первый - сигнальный, второй - полигон земли, третий - сигнальный, четвертый - полигон питания. Толщина диэлектрика между первым и вторым слоем - 0.125 мм, между вторым и третьим слоем - 5 мм, между третьим и четвертым слоем - 1.25 мм. Таким образом получаем два сигнальных слоя для разводки высокоскоростных сигнальных дорожек, а блокировочные конденсаторы под BGA корпусами не мешают разводке. На плате очень ограниченных габаритов собираются быть размещены две FPGA в FG256 корпусах, два корпуса 32-разрядной SDR SDRAM, плюс еще десятка полтора вспомогательных чипов.

     

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

     

    Какие могут быть проблемы с таким расположением слоев? Могут ли температурные деформации привести к разрушению проводников на плате?

     

    P.S. Прошу ответить на вопросы, по возможности, по существу с аргументацией точки зрения. Я осознаю, что данное решение может иметь недостатки и хочу понять насколько они существенны.

     

    P.P.S. При наборе оригинального сообщения вкралась досадная ошибка - между вторым и третьим слоем расстояние составляет 5 mil, что соответствует ~0.125 мм :cranky: Досадная неточность :blink:

  3. Класическая криптографическая теория подразумевает знание алгоритмов упаковки атакующей стороной. При использовании простой функции типа CRC32 перебор по исходному паролю, а не по полученному ключу будет самым эффективным методом атаки.

     

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

     

    Не знаю о других хешах, но CRC32 есть остаток от деления введенной байтовой строки на простой образующий полином в поле Галуа. Если совсем на пальцах, то считайте, что исходная строка - это очень большое число. Если разделить его на простое число, то в остатке будет число, однозначно характеризующее входную последовательность. Дальше идет куча выкладок из дискретной алгебры, показывающих замечательные свойства этих остатков, их корректирующую способность и так далее.

     

    Возможно, все остальные хеши построены по подобным принципам.

  4. Я эту эпопею проходил лет пять назад :

    - подписали NDA

    - получили документацию

    - сделали в Atmel'е заказ

    - Atmel заказ подтвердил

    - заплатили деньги в Atmel

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

     

    Потом ее раз, в том же порядке, но с атмеловскими смарт картами.

     

    Так что если Вам обещают их привезти, это еще не значит, что Вы их получите

     

    Да нам бы хотя бы документацию на них поиметь :( Сейчас даже не понятно подойдут ли они под нашу задачу полностью или нет.

  5. Эти два даташита мы видели. Это скорее не даташиты, а некое обобщенное описание. Там нет типов корпусов, системы команд, описания регистров и всего остального, необходимого для проектирования устройства на основе вышеупомянутых микроконтроллеров.

     

    НДА с Атмелом подписать мы пытались, однако ничего не получилось. Атмел выслать документацию после НДА отказался :(

     

    2 Stewart Little:

     

    Как раз с доставкой проблем не очень много. Деталей я не знаю, однако поставить их нам берутся. Проблема только с документацией, которая просто отсутствует.

  6. Ну, похоже я продвинулся все же дальше за свою практику программирования и проектирования электроники :) потому как по выше начертанному плану нахожусь где-то в средине пункта 2 и то потому, что не в курсе как настраивать Eclipse :)

     

    За то, теперь я знаю заветный каталог /pub/DOC/_unsorted/ldd3/, где можно найти все остальное ;)

  7. :help: При изучении pin-out таблиц на EP2C5F256 было обнаружено абсолютно идиотское расположение DQ пинов по корпусу микросхемы. Первым впечатлением было - Альтера сама знает как размещать пины, в этот раз сделала это несколько неудачно. При дальнейшем изучении оказалось, что при использовании DQ пинов ВСЯ DDR логика помещается в близлежащие ячейки и ничего, относящегося к DDR в IOB не пакуется :blink: Фиксированным оказалось только местоположение DQS пинов, имеющих программируемую задержку на входах и при этом могущих управлять глобальными клоковыми сетями. При детальном изучении даташитов на старшие семейства (Stratix, Stratix GX, Stratix II) обнаружилось, что там DQ пины действительно имеют пару DDR регистров в IOB и все остальное как должно быть. Соответственно вопрос - почему на Altera Cyclone EP2C5F256 DQ пины называются DQ и имеют четко выраженное по даташиту местоположение, хотя реально ничем не отличаются от пинов, находящихся рядом в том же банке?
  8. Да, время задержки tri-state буфферов включается в <Maximum output required time after clock>, однако выдержать его невозможно, поскольку скорость работы tri-state буфферов составляет "всего" 11-12ns, что явно недостаточно, чтобы выполнить спецификацию PCI. Однако специфика PCI позволяет выполнять address/data stepping, что спасает.

  9. я делаю на 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'а и приводит к более предсказуемым результатам.

  10. 2 v_mirgorodsky

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

    Саму спецификацию я только мельком давно смотрел, но по моему там ведь можно добавить необходимое количество тактов ожидания при ответе?

     

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

     

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

  11. 2 3.14:

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

     

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

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

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

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

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

    Какими же тогда фронтами(или одним) тактировать свою схему?

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

     

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

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

  14. По нашему опыту FX2 CY7C68013 превосходит способности ВСЕХ существующих на сегодняшний день хостов. Фактически он в состоянии "убить" любой USB 2.0 High-speed хост без каких бы то ни было проблем. В нашем случае получилось через USB 2.0 high-speed c использованием CY7C68013 пролить ~46MB/s, однако этот результат относится к разряду экстремальных и достижим только на некоторых материнских платах.

  15. Не знаю как для флешей, но для обычных жестких дисков самый первый сектор на диске - MBR. В нем содержится таблица разделов диска. Далее в начале каждого раздела находится BOOT. Так как MBR в вашем случае имеет неправильную структуру, поскольку он BOOT по формату, то винда и не хочет с ним корректно работать и пытается найти MBR на следующей дорожке. Для проверки данного утверждения необходимо все снести с флешки (забить ее нулями) и попытаться выполнить все операции по разметке средствами самой винды. Если запись/чтение реализованы корректно, то проблем быть не должно.

  16. Угу, Qartus 4.2 более расслабленно относился к таймингам и был лучше заточен под старые семейства. У нас была похожая проблема с одним нашим старым устройством. При компиляции Quartus 5.0 прошивка не помещалась в микросхему, а после обрезания некоторой функциональности все равно не работала как было необходимо. Прищлось поставить 4.2, внести изменения и перекомпилировать.

  17. Так и есть. PLL - прожорливые. Питание ядра 1A - зависит от тактовой частоты и частоты переключений триггеров. 1А - очень мало. Я думаю, что это в районе 100-160MHz, с toggle rate порядка 20-30%. При высоких уровнях заполненности и высокой рабочей частоте потребление данного чипа может вырасти до 2-2.5А.

     

    В максимуме ток можно прикинуть по количеству питающий болов из расчета порядка 400-500мА на каждый пин. Таким образом для EP2C5F256 с 4 питающими болами на ядро максимальный ток может быть в пределах 1.6-2А, для EP2C8F256 - 2.4-3А. Далее - по аналогии. Расчет подтвержден экспериментальными исследованиями в Квартусе. Было создано два FIFO - одно на памяти, второе - на ячейках. То, которое на памяти занимало всю свободную память, то, которое на ячейках - порядка 75-80% объема кристалла. После установки рабочей частоты порядка 170MHz и Power-симуляции были получены близкие цифры для обоих выше упомянутых образцов.

  18. Значится так, если плата распознается по PCI, значит в MAX'е сидит простейший Target, сливает прошивку с PCI и грузит ее в Cyclone. В хорошем случае для повторения этой платы будет необходима только прошивка Cyclone, потому как совсем немного может войти в MAX окромя таргетной прошивки.

     

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

  19. Собственно, $subj. Atmel не хочет отдавать даташит ни за деньги ни просто так :( Все что удалось найти в Тырнете это десяток PDF-ников, в которых он упоминается или двухстраничное описание его общей архитектуры без необходимых подробностей.

     

    Будем дико благодарны за любую информацию по даному вопросу.

  20. Никогда не задавался такими вопросами. Сама Altera к этому относится нормально. В даташите сказано, что миграция между C35-C50-C70 поддерживается, следовательно проблем с неопределенными уровнями внутри микросхемы быть не должно.

  21. H-m-m, на счет первых Циклонов не скажу - не работал, на счет вторых - скажу точно EP2C20F484 и EP2C35F484 полностью совместимы снизу вверх. Там где у EP2C20F484 NC пины там же у EP2C35F484 находятся VCCIO либо VCCINT пины. Аналогичное могу утверждать и о совместимости снизу вверх EP2C5F256 и EP2C8F256. Может быть у первых Циклонов это правило было нарушено :cranky:

     

    Теперь если все же IO попадает на пин питания в старшем семействе. Сконфигурируйте эти пины как входы и не используйте их в дизайне, либо сконфигурируйте как выход и переведите в третье состояние. Ну не вижу я здесь проблем ни с одним ни с другим подходом.

     

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

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