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

v_mirgorodsky

Свой
  • Постов

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

  • Посещение

Весь контент v_mirgorodsky


  1. Чудес в электронике не бывает :( Один из триггеров успевает сброситься, а второй просто не успевает установиться. Можно попробовать упростить логику автомата и проверять его по частям. Кстати, если входной ассинхронный сигнал идет на два или более синхронизирующих триггера параллельно, то можно получить аналогичный еффект. У нас похожее поведение было с ассинхронными сигналами на машину. Полечилось установкой триггеров на все источники и отладкой логики КА. Больше без конкретной схемы и описания сказать будет сложно :cranky:
  2. А почему загрузка кристалла то 99%? При заполнении больше 70-80% что угодно может быть... Не попробовать ли убрать часть код и посмотреть ситуацию... А разводка платы здесь 99% ни при чем. <{POST_SNAPBACK}> А что может быть при 99% заполнения - времяночки, то все выполняються,которые в ucf задаю? На другой плате, где использую эту же компоненту и с заполнением 78%. Эффект тот же. :( <{POST_SNAPBACK}> Самая распространенная ошибка с КА - ассинхронные входы по отношению к входной тактовой частоте КА. Лечится установкой синхронных регистров на каждый управляющий вход автомата. Автомат дополняется состоянием XYZ и из всех рабочих состояний делается переход в XYZ если не выполняются все другие легальные переходы. Таким образом проверяется логика работы автомата - если XYZ появляется в процессе работы, то есть неучтенная комбинация управляющих сигналов, приводящая к ошибке. У нас даже было специальное название для этого сигнала - "хуз" :) Использование выходов автомата для управления ассинхронными сбросами регистров или счетчиков (самая большая лажа). Автомат может работать правильно, но на сигналах будут тонкие "шпильки" импульсов, которых хватает для сброса части (!) триггеров в счетчиках или регистрах. BTW, пытаться увидеть эти шпильки осциллографом/чипскопом/самодельным регистратором абсолютно бесполезно. На пин не выйдет по причине инерционности драйвера пина, а чипскопу/самодельному регистратору необходимы setup/hold, тогда как ассинхронный сброс вполне на них среагирует.
  3. А можно еще такой вопрос. Сигналы CS, DM и все остальные передаются по стандарту SSTL-II, который жестко определяет границы в которых может изменяться сигнал, по крайней мере я так понял из документации на стандарт. Как тогда быть с этим? Более того, вход CKE изначально сделан так, что после подачи питания "понимает" CMOS уровень логического нуля, а после подачи на него SSTL-II единицы переходит в режим приема SSTL-II уровней напряжения. Таким образом закорачивание сигналов DDR SDRAM на землю или питание стандартом не предусмотрены :( Как быть с этим?
  4. Оки, сорри, может я и высказался несколько резковато, но я очень хотел бы увидеть нормально работающую серийную плату с Cyclone II в корпусе FBGA-484 с шагом в 1мм и Micron DDR SDRAM в корпусе FBGA-60 с шагом 0.8мм разведенную по четырем слоям. BTW, для Altera Cyclone II FPGA пины шины данных, стробов и клоков имеют очень определенные места на корпусе и не могут быть изменены для облегчения трассировки "по месту". Материнские платы по четырем слоям - может быть это и возможно. Используемые там микросхемы специально "заточены" под оптимальную разводку, т.к. весь набор проектируется одним производителем. Не стоит также забывать, что связь между северным и южным мостом чипсета осуществляется в основном дифференциальными парами, легко поддающимися разводке. Еще, обе микросхемы чипсета имеют, в основном, всего четыре крайних ряда рабочих пинов и большие линейные размеры корпуса, т.е. "доставать" пины с большой глубины BGA-массива необходимости нет. Плюс к этому, DDR DIMM сам по себе очень широкий и его пины специально рассчитаны под оптимальную разводку параллельными шинами, что в свою очередь сильно упрощает жизнь трассировщикам. Потому, разводка чипсета материнки по четырем слоям не может быть показателем того, что то же самое можно сделать в общем случае с FPGA и DDR-памятью. Или я не прав?
  5. Добрый день, уважаемый Frob, А не подскажете ли какую литературу по этим самым остаточным классам (желательно в электронном виде) ? Вы говорите о операциях умножения, сложения и вычитания. А есть ли что-то подобное для деления? Все, что я встречал до сих пор для деления выглядело как многостадийный конвеййер и идея сделать то же самое за один такт выглядит очень привлекательной. Если я правильно понимаю, то все внутренние вычисления можно произвести используя числа в СОК, а результат преобразовать в позиционную (двоичную ) систему счисления уже по выходу. На сколько такой подход реализуем?
  6. А можно пример такой САПР? А чем определяется импеданс Power Delivery System? На данный момент проектирование PDS заключается в следовании принципу - много не мало. К каждому корпусу ставится количество блокировочных конденсаторов равное количеству пинов питания на корпусе, их емкость выбирается в пределах от 10 до 100 нанофарад, плюс некоторое количество 1 микрофарадных конденсаторов и электролиты. Все пока работало, но есть впечатление, что данная практика несколько избыточна, потому как без некоторого количества этих емкостей работоспособность устройства не изменилась. С точки зрения здравого смысла, PDS должна быть в состоянии поглощать помехи по питанию на частотах переключения компонентов, верно? Есть ли какие-либо рекомендации по расчету параметров PDS?
  7. Не-а, корпусов DDR памяти всего два, оба подключены к одной FPGA и полностью не зависимы по сигналам друг от друга, т.е. раздваивать управляющие сигналы необходимости нет. Интересуют просто конкретные материалы на тему как это сделать правильно. Сейчас пойду искать документацию на Micron и Samsung. Ваш пост, господин Solik выглядит минимум не профессионально. Либо Вы не прочитали вопрос, либо просто не компетентны :( BTW, DDR SDRAM по четырем слоям не разводится в принципе :( К каждому корпусу необходимо подвести питание - 2 слоя, напряжение терминации - 1 слой, ну и плюс к этому хотя бы пара сигнальных слоев. Т.к. рабочие частоты DDR памяти лежат выше 200 MHz, то разводку необходимо осуществлять дорожками с 50-омным импедансом, а это значит, что под каждый сигнальный слой надо подкладывать землю. Ко всему вышеперечисленному - TOP уходит под монтаж самих микросхем, BOTTOM - под монтаж блокировочных конденсаторов и согласующих резисторов. Таким образом имеем нечто в районе 6-8 слоев. Где-то в Сети есть документ, описывающий что лежит на каком слое, где лучше разместить блокировочные конденсаторы, как правильно провести дорожки и т.п. В первом приближении на Samsung'е и Micron'е этих документов я не нашел, потому и запостил этот вопрос на форум.
  8. Хочу добавить свои пять копеек в эту дискуссию. А что мешает законвеййеризировать процесс? Хлопните всю шину в регистр, поставьте n-разрядные сумматоры и сложите данные по их выходу. Результат суммирования снова в регистры, потом сложили регистры между собой и получили результат. Таких стадий можно сделать достаточно много. Будет несколько "жирнее" по ресурсам чем чисто ассинхронный сумматор, но будет эффективно и разводчик не запарится впихивать эту всю логику в кристалл.
  9. Добрый день всеуважаемый ALL, Есть следующий вопрос. Есть микросхема FPGA Altera Cyclone II в FBGA-484 корпусе, есть динамическая DDR память от Micron в корпусе FBGA-60, есть куча согласующих резисторов и блокировочных конденсаторов. Все это нужно грамотно разместить на плате с приемлемыми требованиями к технологическим нормам, разумным количеством слоев и минимальной площади. Я слышал, что в Сети есть документ, подробно описывающий разводку памяти в таких корпусах с похожими требованиями, однако живьем его найти не удалось. Есть ли у кого мысли как это сделать правильно? А может у кого есть вышеупомянутый документ?
  10. Может я конечно что-то не понимаю, но Virtex-E имеет на борту мегабит встроенной памяти и стоит порядка 500 вечнозеленых единиц, тогда как Virtex4 LX25 имеет более высокое быстродействие, больше логических ячеек, почти столько же памяти и стоит около 200, доже при единичных колличествах при закупках. Так зачем же платить больше?
  11. Как бы да, но дискретность для Cyclone II достаточно большая, следовательно согласование будет не всегда точным, как в случае со Spartan-ом. Потому, наверное, мы таки оставим series termination резисторы и попробуем взлететь без резисторов подтяжек. Парралельно попробуем вместо согласующих последовательных резисторов поставить закоротки и посмотреть как это оживет. Просто отлаживать дизайн без надлежащей терминации может оказаться мучительно - при возникновении ошибок не понятно на кого грешить - плохое согласование сигналов или лажа в VHDL-коде. :bb-offtopic: BTW, есть ли у кого материаллы по трассировке DDR памяти? Я как бы понимаю, что вопросы разводки обсуждаются в другом форуме, но считаю что для полноты дискусси было бы полезно оставить какую-то часть материала в этой ветке.
  12. Вот, собственно, Ваша схема и вызывает наибольшее количество вопросов. Вся теория, которую видел до сих пор, говорит о необходимости подтягивающих резисторов к напряжению терминации, а у Вас их нет :cranky: При чем в документации на микроновскую память было сказано, что это не столько согласование, как елемент включения выходного драйвера в режиме SSTL-II. Вот это-то и вызывает самое большое недоумение - как оно работает? Однозначно - против практики не попрешь. В любом случае, наш Cyclone-II не умеет управлять импедансом своих выходов, а потому резисторы последовательной терминации мы все же поставим, а потом попробуем включить плату не запаивая подтягивающих резисторных сборок и их фильтрующих конденсаторов. Если будет у нас работать, то в окончательной версии платы почикаем подтяжки и уменьшим размеры платы или освободим немного места :)
  13. Спасибо, Gorby. Половину фильтрующих конденсаторы уже почикали :) Будем надеяться, что оно будет работать нормально. На сколько я понял, резисторы подтяжек к напряжению терминации являются обязательными - верно? Танталы в непосредственной близости от микросхем памяти предусмотрели, правда из-за нехватки места поставили по одному 22uF super low-esr на корпус, будем надеяться, что им хватит :)
  14. В принципе, необходимо понимать принципы работы забугорного суппорта. Они просто тестировали память в такой конфигурации, она у них работала, так они и написали в даташите. Это не значит, что память не будет работать в другом варианте подключения, просто они должны написать нечто определенное в даташите, иначе к ним будут приходить идиотские письма от юзеров с вопросами а что же делать с неиспользуемыми пинами :) К сожалению, по существу вопроса ничего подсказать не могу :( По коду все выглядит правильно :cranky: К сожалению, времени повторить ваш експеримент сейчас нету, потому ничего больше сказать пока не могу.
  15. На сколько я знаю, неиспользуемые выводы необходимо подтягивать к неактивному логическому уровню сигнала. Для Virtex4 BRAM16 активным уровнем является логическая единица, потому синплифай с этой точки совершенно прав подтягивая неиспользуемые выводы к логическому нулю :) Ставили в одном из промежуточных вариантов схемы блок RAMB16 когда хотели сделать ширину порта записи 16 бит, а ширину порта чтения 8 бит. В Альдеке симулировалась без каких либо проблем. В финальном варианте отказались от установки RAMB16, т.к. не хотелось жестко подвязывать блок именно к Xilinx Virtex4. Сейчас нет под рукой даташита, потому сразу сказать в чем ошибка в описании не могу. Судя из описания проблемы, похоже на то, что запрещено обновление выходного регистра памяти.
  16. Добрый день всеуважаемый ALL! Есть пара чипов DDR SDRAM и ПЛИС. Общепринятая схема включения DDR SDRAM содержит резисторы последовательной терминации, резисторы подтяжек к напряжению терминации и параллельно резисторам подтяжек к напряжению терминации фильтрующие конденсаторы к напряжению терминации в количестве один конденсатор на два резистора. Короче, на 16Mx16 чип требуется порядка 100 :cranky: дискретных элементов. Конечно, положение немного спасают малогабаритные резисторные и конденсаторные сборки, но в любом случае, дополнительных элементов очень много :( Вот, собственно, и возник вопрос - какими из дискретных элементов можно пожертвовать ввиду очень коротких дорожек от ПЛИС до памяти, а какие из них относятся к схеме включения SSTL-II выводов.
  17. Просто в этом проекте нам было поставлено жесткое требование использовать Altera Cyclone II. Если бы можно было бы поставить Xilinx Spartan III, то вопрос бы решался именно с использованием Xilinx GMAC, с которым, кстати, уже есть положительный опыт работы :) В том то и вопрос, чтобы родить то же самое, но под Altera Cyclone II.
  18. Просто в этом проекте нам было поставлено жесткое требование использовать Altera Cyclone II. Если бы можно было бы поставить Xilinx Spartan III, то вопрос бы решался именно с использованием Xilinx GMAC, с которым, кстати, уже есть положительный опыт работы :) В том то и вопрос, чтобы родить то же самое, но под Altera Cyclone II.
  19. Утянул корку от MG для Ethernet и думал - будет мне счастье :cranky: Однако в реальной жизни все оказалось намного хуже. Со старта корка заточена исключительно под ASIC. При компиляции занимает порядка 2.5 тысяч макроячеек и на гигабите реально не работает, т.к. максимальная частота по TX и RX интерфейсам составляет меньше 100MHz в EP2C20F484C8, при необходимых 125MHz. Синтезировал Synplify 8.2, раскладывал Quartus 5.0 SP1. После получения такого результата пошел разбираться с исходниками сего чуда. Слов нет, одни выражения. И все не цензурные :twak: При генерации одного из модулей Synplify сгенерил FSM, смотрю исходник - куча регистров, логики и ничего похожего ее описание. Имена переменных в основном 4-х символьные, формируемые по следующему принципу - Data Transmit Ready Signal => dtrs. И так везде :maniac: Конечно, наличие (условно :cranky: ) рабочих исходников облегчит написание собственного ядра, но работы для рук все равно очень много.
  20. Минусовую температуру Marvel не держит. Даташит прислать, к сожалению, не могу.
  21. MAC использовали встроенный. Мы взяли схему Xilinx ML401 и тупо срисовали от туда :) Смысла придумывать велосипед нет, к тому же если есть возможность с ним ошибиться. На самом деле от PHY до разьема надо сигнальные линии обвязывать резисторами. У нас стоит разьем со встроенным трасформатором, потому отдельно трансформатор был нам не нужен. Больше никакой обвязки нет. Главное, чтобы дорожки были выровнены по длинне и разведены с 50 омным импедансом.
  22. Ну тут все просто. Поставили Marvell Alaska, он есть многоцелевой трансивер на весь набор стандартов 802.3 Сам чип очень понравился. Заработал с первого раза, очень прост в управлении. К стати, у нас получилось из Virtex4 FX20 выпихнуть в Ethernet около 123MBytes/s по обыкновенному 100MBit CAT5 кабелю 3-х метровой длинны. Ошибок в первом приближении не было, environment - просто офисное помещение. Короче, впечатления от Xilinx + Gigabit Ethernet просто самые хорошие :a14: Теперь то же самое надо прикрутить к Cyclone II :cranky: Впечатлениями от :smile3046: обязательно поделюсь. В первом приближении собираюсь воспользоваться коркой от Mentor Graphics, потому как MorethanIP врядли доставаемы на попробовать.
  23. Добрый день, Всеуважаемый ALL! Есть кристалл Altera Cyclone II. Его необходимо обучить передавать данные по Gigabit Ethernet без использования внешнего контроллера Ethernet, т.е. используя только внешний Ethernet трансивер. Есть ли у кого опыт подобной разработки? Какие могут быть подводные камни и проблемы? Какое коре лучше попробовать для начала?
  24. A Vi znaete kak viglyadit summator ? Esli vnimatel'no prismotret'sya, to mozhno zametit', chto eto on i est'. Prosto v dannom sluchae Vi vidite raskladku etogo summatora v kristalle s razbieniem na sostavnie chasti. Standartniy summator sostoit iz "XOR" i s'hemi propagirovaniya perenosa, sobrannoy na logicheskih "&". Sobstvenno eto tam i est', prosto nichego drugogo ne pridumali.
  25. Ostalos' tol'ko ponyat' chem mozhno posmotret' PostScript dlya teh, kto ne sidit po *nix'om :(
×
×
  • Создать...