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

Beby

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    1

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


  1. Для любой скважности задача решается одинаково: 1. Строится управляемый делитель частоты, выходом которого является выходной перенос (COut) загружаемого счетчика. 2. COut подается на схему, формирующую импульсы заданной (или даже измиеняемой) скважности.
  2. Посещали меня и такие мысли... но где гарантия, что на "другом" стенде я не увижу какую-либо отличную картину. А вообще-то хочется определись еще до изготовления своей аппаратуры (на ПЛИС), понадобиться ли Soft-MC или нет - дабы потом не пришлось его прикручивать на коленках. Да и возникает еще один вопрос - в IEEE 802.3 можно сказать описаны 4 разновидности Ethetner Frame: 1. с заголовком LLC. 2. с заголовком LLC/SNAP 3. с истолкованием поля L\T, как Type. 4. с истолкованием поля L\T, как Length. Пока я не нашел правила, в каких случаях какой пакет будет генерироваться Windows/Unix системами. Т.е. поддержку каких кадров и в каких случаях необходимо реализовать ? Также для меня непонятна процедура анализа Ethetner Frame (с истолкованием поля L\T, как Length) в смысле: как определить какому высокоуровневому протоколу он принадлежит (IP, IPX, а может и еще к 1000 других зарегистрированных протоколов) ?
  3. IBIS (наверное не IBS) модели обычно беруться у производителей микросхем и модулей.
  4. Подскажите пожалуйста, где можно прочитать по каким признакам потроха Ethernet пакетов передаются одному из следующих протоколов IP (TCP/UDP), IPX/SPX, NetBEUI и т.п. Т.е. каков формат заголовка, расположенного в данных Ethernet Frame, по которому производиться выбор протокола обработчика этого Ethernet Frame: IP (TCP/UDP), IPX/SPX, NetBEUI ?
  5. В Synthesis Options на закладке Xilinx Specific Options есть пункт: Number of Clock Buffers - этой опцией Вы указываете количество BUFG, которые может автоматически добавлять XST при синтезе проекта. Если Вам необходимо, чтобы XST не вставлял ни одного дополнительного BUFG, то поставьте 0.
  6. Так и есть,.. если правильно задать стандарт... и дать ПЛИС законфигурироваться. А вот что будет до конфигурации – не знаю. Если не секрет, где Вы нашли мамки с PCI 32bit 3.3В (не PCI-X !) ??! Мне, например, Desktop мамок с PCI 32bit 3.3В вообще обнаружить не удалось. У меня работает PCI плата на S2-200PQ208 с PCI33_5 - проблем нет. Плата втыкалась только в мамки с PCI v2.3 32bit 5V. Чего не знаю, того не знаю. Но ! Моя плата содержала 2 ПЛИС работавших с PCI одновременно. Spartan-2 я начал отлаживать значительно позднее первой ПЛИС, и некоторое время (недели с 2) незаконфигурированный Spartan-2 жил на PCI шине без прошивки - не сдох, повреждений не обнаружено; в чистом состоянии, при работающей PCI шине, Spartan-2 оставался холодным. Сиё было проверенно на VIA VT8235, VT8237, Intel мосте PCI-PCI (номер не вcпомню), nVidia nForce4 Ultra. Самыми жёсткими оказались VIA VT823x - они выставляли полноценные 5В уровни, остальные chipset'ы (как и сам Spartan-2) работали в режиме 5V толерантности. Да, да... воткнёт ! Именно в PCI 32bit 5V воткнёт (ибо PCI 5V плат огромное количество... обратите внимание на ключ в PCI слотах desktop мамок...). А потом еще и питание врубит, обязательно врубит. А вот сдохнет ваша плата или нет, зависит от прошивки ПЛИС и питания которое Вы на неё подаёте... Я надеюсь, Вы не используете ножки VCCIO на PCI разъёме, ибо на этих ногах напряжение зависит от разъёма в который Вы воткнёте плату.
  7. Обращаю Ваше внимание на кавычки, которые Вы использовали: ”3S50AN”, а надо "3S50AN". Я проверил на ISE 9.2.04i - c "правильными" кавычками всё откомпилировалось удачно.
  8. Опишите поподробнее: как Вы пытаетесь использовать элемент SPI_ACCESS, и где нет этого атрибута
  9. Нет плавать на банки не надо... у разных "сторон" ПЛИС имеются различные особенности IOB... обычно со "сторонами" ПЛИС связанны и конкретные банки. Например, в ПЛИС Xilinx для распространения clock на конечном участке обычно используются горизонтальные длинные линии, соответственно, IOB "сверху" и "снизу" имеют заметно более низкую разницу прихода фронтов clock, по сравнению с "боковыми" столбцами IOB. Вот на количество SSO (Simultaneously Switcing Outputs) необходимо обратить пристальное внимание, как и указал ранее ответивщий: Если у Вас высокая частота коммутации, или требуется большой постоянный ток, то игнорирование ограничений на SSO приведёт к плачевным последствиям. Например, есть у меня проект в котором ПЛИС эмулирует 23 пары LVPECL 3.3V, в итоге только статическое токопотребление составило 0.55А (!), а если учесть еще и динамическое токопотребление, то совсем тоскливо становиться... благо преобразователь питания расчитан на статическое потребление в 1А, а частота коммутаций не превышает 100МГц.
  10. От себя добавлю, что полученную откомпилированную версию проекта очень полезно проглядеть при помощи FPGA Editor'а - сразу становиться видно, что и в каких местах ПЛИС имеется, а чего не имеется. Как например в S3E250-TQ144, в IOB P36, P38, P41 - нету OBUF... и тут ничего не сделаешь. Хорошо, что у Вас еще применён ногатый корпус,.. а если бы шариковой поставили... При разводке платы (при смене положения IO pin на корпусе) мне частенько приходилось перекомпилировать прообраз проекта, для того, чтобы проанализировать, а насколько неудобно для внутренней структуры ПЛИС назначены внешние выходы. Такой подход даёт весьма хорошие результаты, как в плане достижения больших частот работы IO интерфейсов, так и разводка получается не такой убогой, как при жестко заданном (удобном для ПЛИС) расположении IO pin.
  11. Тут уже желательно уточнять, за какой промежуток времени эта нестабильность. Неверное, 0.1ppm - это суточная нестабильность... Работал с подобными генераторами - это были термостатированные Морионовские генераторы - хорошие штучки, хоть и не дешёвые. Сильно в сомневаюсь в том, что «генератор на ЛА3 с кварцем даст стабильность выше чем готовый кварцевый», но в этом случае стабильность больше зависит от кривизны рук - у кого кривее: у производителя корявых генераторов, или у человека, городящего решение на кварцевом резонаторе. Думаю, что вопрос о кривизне рук обсуждать бессмысленно. Я же доверяю только готовому решению - кварцевый генератор (желательно термокомпенсированный или термостатированный варианты, но это уже на любителя) потому, что у готового изделия есть паспорт, в котором прописаны параметры работы генератора и зависимости этих параметров от разных воздействий (например, уход частоты от изменения напряжения питания, температуры, старения). Да, хорошее готовое изделие стоит дороже рассыпухи, но во сколько оценить своё спокойствие ? (разработчик (я) должен же гарантировать, что его устройство будет иметь заданные характеристики)
  12. В нашей стране есть фирма ЗАО БМГ+, у них подобного добра - навалом. Может, конечно, не очень дёшево получается, но зато можно заказать на необходимые именно Вам частоты и оговорить условия работы изделия. По мимо обычных кварцевых генераторов БМГ+ выпускает еще и термокомпенсированные - тут можно получить стабильность и меньше 30 ppm. Если надо работать с генераторами частоты действительно высокой стабильности, тогда можно просмотреть изделия фирмы ОАО «Морион». У Мориона есть даже генераторы с двойным термостатированием, по стабильности подошедшие достаточно близко к рубидиевым стандартам частоты. Да и зависимости нестабильностей значительно подробней расписаны. Можно сказать, что БМГ+ ориентируется на рынок "дешевых" кварцевых генераторов, а Морион - на выпуск высокостабильных.
  13. Для XIlinx FPGA (Virtex-e/Spartan-2E и Spartan-3A) мухлевал так: 1. До некоторых под возможно скомпенсировать задержку clock IBUFG путём использования в IBUF данных элементов Delay. 2. Если есть возможно использовать ПЛИС'овый DLL/PLL (обратная связь внутрикристальная), то до некоторых под хватает его компенсации задержки + использования в IBUF данных элементов Delay. 3. Если всего вышеперечисленного не хватает, то тогда тоже использует ПЛИС'овый DLL/PLL, но обратную связь делаем с проходом через дополнительную пару ног (выход - вход). Мне обычно хватало и первого варианта,.. но т.к. случаи могут быть разные прорабатывал все 3. Во всех случаях данные фиксировались в InputFlipFlop. В случае необходимости перехода на внутреннею частоту, данные после InputFlipFlop подавались на двухпортовую память (часто на Distributed DpRAM, а не на блочную, т.к. объема Distributed DpRAM вполне хватает и размазана она по всему кристаллу - задержки от IOB получаются меньше).
  14. Что-то не разобрался. Эти updates на ISE 11.1 ставить ?
  15. Ещё бы флешечку туда сподобились упхать, как в Spartan-3AN модификации, и вообще бы замечательно было бы...
  16. Глоссарий с переводом специфических терминов может оказаться полезным только для новичков, т.к. Xilinx ISE англоязычная среда (вроде еще может быть и на японском языке, но я думаю этот вариант в СНГ практически никого не заинтересует). А как только новичок проработает со средой несколько недель, то он полностью запомнит все термины с которыми столкнётся. Такой глоссарий только немного ускорит процесс освоение среды, далее он будет пылиться в шкафчике. Если новичков не десятки, то я думаю, что Вы больше потеряете времени на создание подобного документа, чем приобретёте на сэкономленном времени обучения новичков.
  17. Пожалуйста, укажите конкретное место, в котором указанны даты выхода в свет этих микросхем, а то я ничего не смог найти кроме шлакоблока на шариках (искренне надеюсь, что это не пресловутые V-6/S-6). Что-то я не нашел PCISIG сертификат у Altera на PCI-E Root (у ATI, AMD, Intel, nForce, SYS, VIA - есть такие сертификаты, а ни у Altera ни у Xilinx - их нет)... Если возможно, то укажите ссылочку на сертификат - а то без него как-то несерьёзно получается. Вот, например, у Intel нет сертификата на 82x38 и 82x48 chipset'ы и в них живут жестокие глючи по поддержке PCI-e 1.1 (читай Eratta), что совсем не мешает Intel на всё забить и штамповать эти микросхемы.
  18. На сайте PCISIG обнаружил запись о том, что 28.05.2009ad Virtex-6 LXT и ML605 (Virtex-6 Reference Board) успешно прошли тестиравание на соответствие "PCI-E 2.0 Endpoint Controller" (max lane = x8).
  19. Думаю, что вашу цепь GND можно разбить на 2 цепи: GND и PWR_GND. Для каждой создать соответствующие правила, а объединить эти цепи можно через Poligon с атрибутом TIE. Вопрос применения TIE недавно обсуждался на форуме. Хотя необходимо отметить, что это несколько корявый путь.
  20. К сожалению, в этом случае Вы столкнётесь с зависимостью задержек от температуры и питания ядра, причём в различных партиях микросхем эти зависимости могут заметно отличаться. Т.к. я работал только с Xilinx FPGA, то и нижеперечисленные подходы ориентированы на ресурсы присущие Xilinx FPGA. Думаю в FPGA, есть только 2 варианта создания гарантированного временного сдвига между сигналами: 1. Если есть возможность, то использовать фазосдвигатели в PLL/DCM. В крайнем случае, если есть элементы задержки во входном буфере CLK, то можно используя их получить 2 ветви CLK разведенных во времени (но в этом случае, хоть и в слабой форме, уже будут иметь место все вышеперечисленных зависимости от температуры и т.д.). 2. Работать на очень большой частоте внутри ПЛИС, и выходные сигналы формировать по различным фронтам этого высокочастотного clock (например: по 1 положительному фронту выставлять данные, по 1 отрицательному - clock, затем подождать несколько тактов и продолжить всё с начала) - но этот подход работает только для низкочастотных интерфейсов.
  21. Для меня как-то непривычно выглядит Tos = 10 ns +- 2 ns. Пока что я встречался только например с: Tos minimum = 8 ns. А вот ято Вы не указали, так это Toh, которое очень важно. При clk_out 30 MHz получает период около 66нс. Тогда если Toh minimum меньше чем 33нс (пол периода 30 MHz), то работайте на удвоенной внутренней частоте: состояние data_out меняйте во время отрицательного фронта clk_out - достаточно будет одного внутреннего clock. Если вдруг Toh minimum больше чем 33нс, то тогда я бы работал на учетверенной (от 30 MHz) частоте, и соответственно тогда бы выдавал данные data_out со сдигом на 1/4 периода относительно clk_out. С этим кристаллом проблем быть не должно. От температуры и питания задержки должны уплывать для обоих clock на весьма близкое время (разница на уровне ps,.. а может и меньше), из-за заметной разницы fanout clock'и у Virtex-4 (по-моему) недолжны расходиться более чем на 1нс - что хорошо помещается в требуемые -+2нс, хотя лучше промоделировать. А ISE никак не сможет учесть разброс от fanout - т.к. тут больше зависимость от качества изготовления ПЛИС, на одной партии может быть очень малое время, на другой - очень большое... Soft это учесть не может, поэтому и нет constraint Mindelay - а его порой так нахватает...
  22. Ну неужели до этого так сложно догадаться имея два внутренних clock с заданными временными соотношениями ? - да точно также, как и в любом синхронном проекте обеспечивается это самое "заданное" соотношение между выходами одного clock domain вне зависимости от расположения IOPAD'ов по всему кристаллу - надо использовать тактируемые элементы IOB. Для ряда ПЛИС (Virtex-4/5, Spartan3x) это делается легко и просто: 1. Надо иметь внутри кристалла 2 линии clock, имеющих между собой заданное смещение (в данном случае 2нс) - как это сделать - это отдельный вопрос, ответ на который базируется на особенностях имеющихся ПЛИС (о которой пока ни слово не сказано !). 2. Все выходные сигналы выводятся с обязательным (!) тактирование в выходных IOB. 3. Данные выдаются через OFF, тактируемый "опережающим" внутренним clock. 4. Выходной clock формируется: либо при помощи DDR OMUX (от "запаздывающего" внутреннего clock номинальной частоты), либо при помощи OFF (но в этом случае, тактируется удвоенным "запаздывающим" внутренним clock).
  23. К сожалению Maxdelay не поможет - он задает наибольшее допустимое время распространения сигнала, а не наименьшее. И offset out наверное тоже ничем не поможет. Если у Вами используемой ПЛИС (было бы хорошо указать что же Вы всё-таки используете, а то гадать что у Вас есть из ресурсов очень тяжело, и телепаты уже уехали в летний отпуск) есть возможность завести 2 ветки clock'ов сдвинутых на 2ns относительно друг друга (при помощи DCM естественно), то тогда работайте с этими 2 clock'ами и обязательно положите в оба IOB выходные триггеры. Да и условие задачи у Вас странно сформулировано, вот ровно на 2 ns - это технически не реализуемо, из-за технологических разбросов параметров ПЛИС и из-за ухода этих же параметров в зависимости от рабочей температуры... Что-то мне подсказывает, что у Вас задан диапазон, что данные должны появиться не менее чем за 2 нс до прихода активного фронта clock; тогда оцените с другой стороны: а не раньше чем за сколько могут появиться данных ? Если можно выставить данные на пол периода clock раньше активного фронта clock, то поставьте в IOB выходные триггеры и работайте по различным фронтам.
  24. Лучше берите то решение, которое советует производитель ПЛИС - у всех этих решений есть один серьёзные '+' - они сертифицированы PCISIG. Обычно дешевле (и значительно быстрее) заплатить за хорошую PCI core (которая часто использует потаённые ресурсы ПЛИС), чем пухнуть самому. (ну можно еще и не платить... но всё равно использовать именно то, что рекомендует производитель)
  25. Как-то читая про повышенное напряжение питания для CPLD у Xilinx наткнулся на формулу, по которой Xilinx рекомендовала оценивать уменьшение времени жизни микросхем в зависимости от увеличения напряжения. Могу конечно и ошибаться, но мне кажется, что Вы своими действиями несколько "состарили" Вашу ПЛИС, следовательно: если Ваша плата предназначена для лабораторных занятий, то тогда можно её пока не перепаивать (что-то мне подсказывает, что при таком начале работы, у Вас еще будут ситуации при которых ПЛИС прийдется страдать), ну а соответственно перепаять тогда, когда от каких-либо тестов ПЛИС издохнет или её окончательно запереглючит. В тоже время, если это конкретное изделие должно гарантированно работать без сбоев (т.е. предназначено для заказчика), то я настоятельно рекомендую после окончания всех экспериментов заменить ПЛИС, т.к. Вы жестко нарушили Absolute Maximum Ratings для вашей ПЛИС и производитель уже никак не гарантирует её работоспособность.
×
×
  • Создать...